Skip to content

Commit 21fc3fd

Browse files
committed
【功能重构】减签功能页面重构
1 parent 71de0c3 commit 21fc3fd

File tree

3 files changed

+84
-18
lines changed

3 files changed

+84
-18
lines changed

src/components/SimpleProcessDesignerV2/src/nodes-config/CopyTaskNodeConfig.vue

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -261,9 +261,7 @@ const configForm = tempConfigForm as Ref<CopyTaskFormType>
261261
// 抄送人策略, 去掉发起人自选 和 发起人自己
262262
const copyUserStrategies = computed(() => {
263263
return CANDIDATE_STRATEGY.filter(
264-
(item) =>
265-
item.value !== CandidateStrategy.START_USER_SELECT &&
266-
item.value !== CandidateStrategy.START_USER
264+
(item) => item.value !== CandidateStrategy.START_USER
267265
)
268266
})
269267
// 改变抄送人设置策略

src/views/bpm/processInstance/detail/ProcessInstanceOperationButton.vue

Lines changed: 82 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -331,13 +331,57 @@
331331
</el-popover>
332332

333333
<!-- 【减签】按钮 -->
334-
<div
335-
@click="openChildrenTask()"
336-
class="hover-bg-gray-100 rounded-xl p-6px"
334+
<el-popover
335+
:visible="popOverVisible.deleteSign"
336+
placement="top-start"
337+
:width="420"
338+
trigger="click"
337339
v-if="runningTask?.children.length > 0"
338340
>
339-
<Icon :size="14" icon="ep:semi-select" />&nbsp; 减签
340-
</div>
341+
<template #reference>
342+
<div @click="openPopover('deleteSign')" class="hover-bg-gray-100 rounded-xl p-6px">
343+
<Icon :size="14" icon="ep:semi-select" />&nbsp; 减签
344+
</div>
345+
</template>
346+
347+
<div class="flex flex-col flex-1 pt-20px px-20px" v-loading="formLoading">
348+
<el-form
349+
label-position="top"
350+
class="mb-auto"
351+
ref="formRef"
352+
:model="genericForm"
353+
:rules="genericRule"
354+
label-width="100px"
355+
>
356+
<el-form-item label="减签人员" prop="deleteSignTaskId">
357+
<el-select v-model="genericForm.deleteSignTaskId" clearable style="width: 100%">
358+
<el-option
359+
v-for="item in runningTask.children"
360+
:key="item.id"
361+
:label="getDeleteSignUserLabel(item)"
362+
:value="item.id"
363+
/>
364+
</el-select>
365+
</el-form-item>
366+
367+
<el-form-item label="审批意见" prop="reason">
368+
<el-input
369+
v-model="genericForm.reason"
370+
clearable
371+
placeholder="请输入审批意见"
372+
type="textarea"
373+
:rows="3"
374+
/>
375+
</el-form-item>
376+
<el-form-item>
377+
<el-button :disabled="formLoading" type="primary" @click="handlerDeleteSign()">
378+
减签
379+
</el-button>
380+
<el-button @click="popOverVisible.deleteSign = false"> 取消 </el-button>
381+
</el-form-item>
382+
</el-form>
383+
</div>
384+
</el-popover>
341385

342386
<!-- 【退回】按钮 -->
343387
<el-popover
@@ -446,13 +490,11 @@
446490
>
447491
<Icon :size="14" icon="ep:refresh" />&nbsp; 再次提交
448492
</div>
449-
<!-- 弹窗:子任务 -->
450-
<TaskSignList ref="taskSignListRef" @success="reload" />
493+
451494
</div>
452495
</template>
453496
<script lang="ts" setup>
454497
import { useUserStoreWithOut } from '@/store/modules/user'
455-
import TaskSignList from './dialog/TaskSignList.vue'
456498
import { setConfAndFields2 } from '@/utils/formCreate'
457499
import * as TaskApi from '@/api/bpm/task'
458500
import * as ProcessInstanceApi from '@/api/bpm/processInstance'
@@ -486,7 +528,8 @@ const popOverVisible = ref({
486528
addSign: false,
487529
return: false,
488530
copy: false,
489-
cancel: false
531+
cancel: false,
532+
deleteSign: false
490533
}) // 气泡卡是否展示
491534
const returnList = ref([] as any) // 退回节点
492535
@@ -504,6 +547,7 @@ const genericRule = reactive({
504547
assigneeUserId: [{ required: true, message: '新审批人不能为空', trigger: 'change' }],
505548
delegateUserId: [{ required: true, message: '接收人不能为空', trigger: 'change' }],
506549
addSignUserIds: [{ required: true, message: '加签处理人不能为空', trigger: 'change' }],
550+
deleteSignTaskId: [{ required: true, message: '减签人员不能为空', trigger: 'change' }],
507551
targetTaskDefinitionKey: [{ required: true, message: '退回节点不能为空', trigger: 'change' }]
508552
}) // 表单校验规则
509553
@@ -742,12 +786,36 @@ const handleReCreate = async () => {
742786
})
743787
}
744788
745-
/** 子任务 */
746-
const taskSignListRef = ref()
747-
const openChildrenTask = () => {
748-
taskSignListRef.value.open(runningTask.value)
789+
/** 获取减签人员标签 */
790+
const getDeleteSignUserLabel = (task:any) : string => {
791+
const deptName = task?.assigneeUser?.deptName || task?.ownerUser?.deptName
792+
const nickname = task?.assigneeUser?.nickname || task?.ownerUser?.nickname
793+
return `${nickname} ( 所属部门:${deptName} )`;
794+
}
795+
/** 处理减签 */
796+
const handlerDeleteSign = async () => {
797+
formLoading.value = true
798+
try {
799+
const deleteFormRef = proxy.$refs['formRef']
800+
// 1.1 校验表单
801+
const elForm = unref(deleteFormRef)
802+
if (!elForm) return
803+
const valid = await elForm.validate()
804+
if (!valid) return
805+
// 1.2 提交减签
806+
const data = {
807+
id: genericForm.value.deleteSignTaskId,
808+
reason: genericForm.value.reason,
809+
}
810+
await TaskApi.signDeleteTask(data)
811+
message.success('减签成功')
812+
popOverVisible.value.deleteSign = false
813+
// 2 加载最新数据
814+
reload()
815+
} finally {
816+
formLoading.value = false
817+
}
749818
}
750-
751819
/** 重新加载数据 */
752820
const reload = () => {
753821
emit('success')

src/views/bpm/processInstance/detail/ProcessInstanceTimeline.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
<div v-for="(task, idx) in activity.tasks" :key="idx" class="flex items-center">
4242
<div class="flex flex-col pr-2 gap2">
4343
<div
44-
class="position-relative flex flex-wrap gap2"
44+
class="position-relative pt-2 flex flex-wrap gap2"
4545
v-if="task.assigneeUser || task.ownerUser"
4646
>
4747
<!-- 信息:头像昵称 -->

0 commit comments

Comments
 (0)