feat: 工作流支持审批人撤回

pull/804/head
LesanOuO 2025-08-02 14:15:34 +08:00
parent 9bce2e48f5
commit a164509565
4 changed files with 43 additions and 13 deletions

View File

@ -106,6 +106,11 @@ export const copyTask = async (data: any) => {
return await request.put({ url: '/bpm/task/copy', data }) return await request.put({ url: '/bpm/task/copy', data })
} }
// 撤回
export const withdrawTask = async (taskId: string) => {
return await request.put({ url: '/bpm/task/withdraw', params: { taskId } })
}
// 获取我的待办任务 // 获取我的待办任务
export const myTodoTask = async (processInstanceId: string) => { export const myTodoTask = async (processInstanceId: string) => {
return await request.get({ url: '/bpm/task/my-todo?processInstanceId=' + processInstanceId }) return await request.get({ url: '/bpm/task/my-todo?processInstanceId=' + processInstanceId })

View File

@ -11,6 +11,17 @@
</div> </div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item class="mb-20px">
<template #label>
<el-text size="large" tag="b">审批人权限</el-text>
</template>
<div class="flex flex-col">
<el-checkbox v-model="modelData.allowWithdrawTask" label="允许审批人撤回任务" />
<div class="ml-22px">
<el-text type="info"> 审批人可撤回正在审批节点的前一节点 </el-text>
</div>
</div>
</el-form-item>
<el-form-item v-if="modelData.processIdRule" class="mb-20px"> <el-form-item v-if="modelData.processIdRule" class="mb-20px">
<template #label> <template #label>
<el-text size="large" tag="b">流程编码</el-text> <el-text size="large" tag="b">流程编码</el-text>
@ -239,25 +250,24 @@ const props = defineProps({
modelFormId: { modelFormId: {
type: Number, type: Number,
required: false, required: false,
default: undefined, default: undefined
} }
}) })
// modelFormId // modelFormId
watch( watch(
() => props.modelFormId, () => props.modelFormId,
async (newVal) => { async (newVal) => {
if (newVal) { if (newVal) {
const form = await FormApi.getForm(newVal); const form = await FormApi.getForm(newVal)
formFields.value = form?.fields; formFields.value = form?.fields
} else { } else {
// modelFormId // modelFormId
formFields.value = []; formFields.value = []
} }
}, },
{ immediate: true }, { immediate: true }
); )
// 使 // 使
provide('formFields', formFields) provide('formFields', formFields)
@ -445,6 +455,9 @@ const initData = () => {
if (modelData.value.taskAfterTriggerSetting) { if (modelData.value.taskAfterTriggerSetting) {
taskAfterTriggerEnable.value = true taskAfterTriggerEnable.value = true
} }
if (modelData.value.allowWithdrawTask) {
modelData.value.allowWithdrawTask = false
}
} }
defineExpose({ initData }) defineExpose({ initData })

View File

@ -80,7 +80,8 @@
<ExtraSettings <ExtraSettings
ref="extraSettingsRef" ref="extraSettingsRef"
v-model="formData" v-model="formData"
:model-form-id="formData.formId"/> :model-form-id="formData.formId"
/>
</div> </div>
</div> </div>
</div> </div>
@ -176,7 +177,8 @@ const formData: any = ref({
summarySetting: { summarySetting: {
enable: false, enable: false,
summary: [] summary: []
} },
allowWithdrawTask: false
}) })
// //

View File

@ -184,8 +184,9 @@
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
/> />
<el-table-column align="center" label="任务编号" prop="id" :show-overflow-tooltip="true" /> <el-table-column align="center" label="任务编号" prop="id" :show-overflow-tooltip="true" />
<el-table-column align="center" label="操作" fixed="right" width="80"> <el-table-column align="center" label="操作" fixed="right" width="130">
<template #default="scope"> <template #default="scope">
<el-button link type="warning" @click="handleWithdraw(scope.row)"></el-button>
<el-button link type="primary" @click="handleAudit(scope.row)"></el-button> <el-button link type="primary" @click="handleAudit(scope.row)"></el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -209,6 +210,7 @@ import * as DefinitionApi from '@/api/bpm/definition'
defineOptions({ name: 'BpmDoneTask' }) defineOptions({ name: 'BpmDoneTask' })
const { push } = useRouter() // const { push } = useRouter() //
const message = useMessage()
const loading = ref(true) // const loading = ref(true) //
const total = ref(0) // const total = ref(0) //
@ -262,6 +264,14 @@ const handleAudit = (row: any) => {
}) })
} }
/** 测回按钮 */
const handleWithdraw = (row: any) => {
TaskApi.withdrawTask(row.id).then(() => {
message.success('撤回成功')
getList()
})
}
/** 初始化 **/ /** 初始化 **/
onMounted(async () => { onMounted(async () => {
await getList() await getList()