diff --git a/src/api/bpm/processInstance/index.ts b/src/api/bpm/processInstance/index.ts index 0632623..678acc5 100644 --- a/src/api/bpm/processInstance/index.ts +++ b/src/api/bpm/processInstance/index.ts @@ -134,3 +134,8 @@ export function getProcessInstanceManagerPage(params: PageParam) { export function cancelProcessInstanceByAdmin(id: string, reason: string) { return http.delete('/bpm/process-instance/cancel-by-admin', { id, reason }) } + +/** 获取下一个节点审批人 */ +export function getNextApproveNodes(params) { + return http.get('/bpm/process-instance/get-next-approval-nodes', params) +} diff --git a/src/api/bpm/task/index.ts b/src/api/bpm/task/index.ts index 97b647f..41174f6 100644 --- a/src/api/bpm/task/index.ts +++ b/src/api/bpm/task/index.ts @@ -31,6 +31,7 @@ export interface Task { processInstanceId?: string // 流程实例 ID processInstance: ProcessInstance reasonRequire?: boolean // 是否填写审批意见 + signEnable?: boolean // 是否需要签名 buttonsSetting?: Record // 按钮设置 children?: Task[] // 由加签生成,包含多层子任务 } @@ -46,7 +47,12 @@ export function getTaskDonePage(params: PageParam) { } /** 审批通过 */ -export function approveTask(data: { id: string, reason: string }) { +export function approveTask(data: { + id: string + reason: string + signPicUrl?: string // 签名图片 URL + nextAssignees?: Record // 下一个节点审批人 +}) { return http.put('/bpm/task/approve', data) } diff --git a/src/pages-bpm/oa/leave/create/index.vue b/src/pages-bpm/oa/leave/create/index.vue index 1b59673..e8a584a 100644 --- a/src/pages-bpm/oa/leave/create/index.vue +++ b/src/pages-bpm/oa/leave/create/index.vue @@ -61,7 +61,6 @@ v-if="activityNodes.length > 0" :activity-nodes="activityNodes" :show-status-icon="false" - :enable-approve-user-select="true" @select-user-confirm="selectUserConfirm" /> diff --git a/src/pages-bpm/processInstance/detail/audit/index.vue b/src/pages-bpm/processInstance/detail/audit/index.vue index 58c1112..4d55d0e 100644 --- a/src/pages-bpm/processInstance/detail/audit/index.vue +++ b/src/pages-bpm/processInstance/detail/audit/index.vue @@ -1,6 +1,5 @@ diff --git a/src/pages-bpm/processInstance/detail/components/operation-button.vue b/src/pages-bpm/processInstance/detail/components/operation-button.vue index 0b07220..939d633 100644 --- a/src/pages-bpm/processInstance/detail/components/operation-button.vue +++ b/src/pages-bpm/processInstance/detail/components/operation-button.vue @@ -89,15 +89,10 @@ const operationIconsMap: Record = { } const userStore = useUserStore() -// TODO @jason:字段注释,使用尾注释哈; -/** 左侧操作按钮 【最多两个】{转办, 委派, 退回, 加签, 抄送等} */ -const leftOperations = ref([]) - -/** 右侧操作按钮【最多两个】{通过,拒绝, 取消} */ -const rightOperationTypes = [] +const leftOperations = ref([]) // 左侧操作按钮 【最多两个】{转办, 委派, 退回, 加签, 抄送等} +const rightOperationTypes = [] // 右侧操作按钮【最多两个】{通过,拒绝, 取消} const rightOperations = ref([]) -/** 更多操作 */ -const moreOperations = ref([]) +const moreOperations = ref([]) // 更多操作 const runningTask = ref() const processInstance = ref() const reasonRequire = ref(false) diff --git a/src/pages-bpm/processInstance/detail/reassign/index.vue b/src/pages-bpm/processInstance/detail/reassign/index.vue index aaad917..f3936b5 100644 --- a/src/pages-bpm/processInstance/detail/reassign/index.vue +++ b/src/pages-bpm/processInstance/detail/reassign/index.vue @@ -37,8 +37,8 @@ {{ isDelegate ? '委派' : '转办' }} @@ -75,7 +75,7 @@ const processInstanceId = computed(() => props.processInstanceId) const operationType = computed(() => props.type || 'transfer') // 默认转办 const isDelegate = computed(() => operationType.value === 'delegate') const toast = useToast() -const submitting = ref(false) +const formLoading = ref(false) const formData = reactive({ userId: undefined as number | undefined, reason: '', @@ -97,7 +97,7 @@ function handleBack() { /** 提交操作 */ async function handleSubmit() { - if (submitting.value) { + if (formLoading.value) { return } const { valid } = await formRef.value!.validate() @@ -105,8 +105,7 @@ async function handleSubmit() { return } - // TODO @jason:submitting 改成 formLoading 哇?统一代码风格哈; - submitting.value = true + formLoading.value = true try { const data = { id: taskId.value as string, @@ -130,7 +129,7 @@ async function handleSubmit() { }) }, 500) } finally { - submitting.value = false + formLoading.value = false } } diff --git a/src/pages-bpm/processInstance/detail/return/index.vue b/src/pages-bpm/processInstance/detail/return/index.vue index 495f0f8..4b71fa9 100644 --- a/src/pages-bpm/processInstance/detail/return/index.vue +++ b/src/pages-bpm/processInstance/detail/return/index.vue @@ -39,8 +39,8 @@ 退回 @@ -73,7 +73,7 @@ definePage({ const taskId = computed(() => props.taskId) const processInstanceId = computed(() => props.processInstanceId) const toast = useToast() -const submitting = ref(false) +const formLoading = ref(false) const activityOptions = ref([]) const formData = reactive({ targetActivityId: '', @@ -102,15 +102,14 @@ async function loadReturnTaskList() { /** 提交操作 */ async function handleSubmit() { - if (submitting.value) { + if (formLoading.value) { return } const { valid } = await formRef.value!.validate() if (!valid) { return } - // TODO @jason:submitting 改成 formLoading 哇?统一代码风格哈; - submitting.value = true + formLoading.value = true try { await returnTask({ id: taskId.value as string, @@ -125,7 +124,7 @@ async function handleSubmit() { }) }, 500) } finally { - submitting.value = false + formLoading.value = false } }