Compare commits

2 Commits

Author SHA1 Message Date
qsh
183416a1b3 sc 2025-08-20 11:46:34 +08:00
qsh
c786995532 sc 2025-08-12 11:05:11 +08:00
5 changed files with 69 additions and 6 deletions

View File

@@ -7,7 +7,6 @@ VITE_DEV=true
# VITE_BASE_URL='http://localhost:48080'
VITE_BASE_URL='http://47.98.161.246:48080'
# VITE_BASE_URL='http://114.55.169.15:48080'
# VITE_BASE_URL='http://114.215.207.150:48080'
# 上传路径

View File

@@ -62,10 +62,23 @@ router.beforeEach(async (to, from, next) => {
if (whiteList.indexOf(to.path) !== -1) {
next()
} else {
const tenantId = getTenantId()
const appId = getAppId()
const tenantId = getTenantId() || to.query?.tenantId
const appId = getAppId() || to.query?.appId
if (tenantId && appId) {
next(`/login?tenantId=${tenantId}&appId=${appId}&redirect=${to.fullPath}`) // 否则全部重定向到登录页
let redirectPath = to.fullPath
const p = to.fullPath.split('?')
if (p.length > 1) {
// 过滤掉query参数中的tenantId和appId
redirectPath =
p[0] +
'?' +
p[1]
.split('&')
.filter((item) => !item.startsWith('tenantId=') && !item.startsWith('appId='))
.join('&')
}
next(`/login?tenantId=${tenantId}&appId=${appId}&redirect=${redirectPath}`) // 否则全部重定向到登录页
} else {
// next(`/login?redirect=${to.fullPath}`)
// 否则全部重定向到平台登陆页

View File

@@ -225,6 +225,7 @@
<script setup name="MeetingInfo">
import { listToTree } from '@/utils/tree'
import { getAllNodeTree } from '@/api/okr/okr'
import { getWaitPage } from '@/api/okr/wait'
import * as MeetingApi from '@/api/okr/meeting'
import { formatDate } from '@/utils/formatTime'
import { getEmployeeSimpleList } from '@/api/pers/employee'
@@ -270,6 +271,7 @@ onMounted(async () => {
}
]
currentContentId.value = 0
searchUserWait([userStore.getUser.id])
}
})
@@ -426,6 +428,7 @@ function meetingSummaryEdit(targetName, action) {
}
}
const checkedUsers = ref([])
function handleUserChange(val) {
// 当预约参会人员变化时,更新实际参会人员选项
expectUserOptions.value = userOptions.value.filter((user) =>
@@ -452,6 +455,39 @@ function handleUserChange(val) {
})
}
})
if (!form.value.meetingId) {
searchUserWait(val)
}
}
function searchUserWait(val) {
val.map((item) => {
if (!checkedUsers.value.includes(item)) {
checkedUsers.value.push(item)
// 新增会议时,根据参会人员拉取代办事项
getWaitPage({
pageNo: 1,
pageSize: -1,
workUserId: item,
creator: userStore.getUser.id,
completeStatus: 1
}).then((resp) => {
joinContent(resp.list)
})
}
})
}
function joinContent(arr) {
arr.map((wait) => {
let text = '<p>未完成事项:' + wait.title + '</p>'
text += wait.content
text += `<p>执行人:${wait.userNameStr}</p>`
text += `<p>截止日期:${formatDate(wait.endDate, 'YYYY-MM-DD')}</p>`
text += '<p><br></p>'
form.value.meetingContentList[0].userMeetingContentList[0].content =
text + form.value.meetingContentList[0].userMeetingContentList[0].content
})
}
const router = useRouter()

View File

@@ -4,7 +4,7 @@
<el-form
:model="form"
ref="formRef"
:disabled="formType == 'do'"
:disabled="['do', 'detail'].includes(formType)"
:rules="rules"
label-width="80px"
class="flex-1"
@@ -239,7 +239,9 @@ const followList = ref([])
function open(type, id) {
show.value = true
title.value = { create: '新增待办', update: '修改待办', do: '更新待办进度' }[type]
title.value = { create: '新增待办', update: '修改待办', do: '更新待办进度', detail: '待办详情' }[
type
]
formType.value = type
resetForm()
if (id) {

View File

@@ -139,6 +139,15 @@
>
修改
</el-button>
<el-button
v-if="row.completeStatus == 2"
style="padding: 0; margin-right: 10px; margin-left: 0"
type="primary"
text
@click="handleDetail(row)"
>
详情
</el-button>
<el-button
v-if="row.creator == currentUserId && row.completeStatus == 1"
style="padding: 0; margin-right: 10px; margin-left: 0"
@@ -271,6 +280,10 @@ function handleEdit(row) {
waitDialogRef.value.open('update', row.workId)
}
function handleDetail(row) {
waitDialogRef.value.open('detail', row.workId)
}
function handleDelete(row) {
message.confirm('确定删除待办事项吗?').then(() => {
deleteWait(row.workId).then(() => {