331
331
</el-popover >
332
332
333
333
<!-- 【减签】按钮 -->
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"
337
339
v-if =" runningTask?.children.length > 0"
338
340
>
339
- <Icon :size =" 14" icon =" ep:semi-select" />  ; 减签
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" />  ; 减签
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 >
341
385
342
386
<!-- 【退回】按钮 -->
343
387
<el-popover
446
490
>
447
491
<Icon :size =" 14" icon =" ep:refresh" />  ; 再次提交
448
492
</div >
449
- <!-- 弹窗:子任务 -->
450
- <TaskSignList ref =" taskSignListRef" @success =" reload" />
493
+
451
494
</div >
452
495
</template >
453
496
<script lang="ts" setup>
454
497
import { useUserStoreWithOut } from ' @/store/modules/user'
455
- import TaskSignList from ' ./dialog/TaskSignList.vue'
456
498
import { setConfAndFields2 } from ' @/utils/formCreate'
457
499
import * as TaskApi from ' @/api/bpm/task'
458
500
import * as ProcessInstanceApi from ' @/api/bpm/processInstance'
@@ -486,7 +528,8 @@ const popOverVisible = ref({
486
528
addSign: false ,
487
529
return: false ,
488
530
copy: false ,
489
- cancel: false
531
+ cancel: false ,
532
+ deleteSign: false
490
533
}) // 气泡卡是否展示
491
534
const returnList = ref ([] as any ) // 退回节点
492
535
@@ -504,6 +547,7 @@ const genericRule = reactive({
504
547
assigneeUserId: [{ required: true , message: ' 新审批人不能为空' , trigger: ' change' }],
505
548
delegateUserId: [{ required: true , message: ' 接收人不能为空' , trigger: ' change' }],
506
549
addSignUserIds: [{ required: true , message: ' 加签处理人不能为空' , trigger: ' change' }],
550
+ deleteSignTaskId: [{ required: true , message: ' 减签人员不能为空' , trigger: ' change' }],
507
551
targetTaskDefinitionKey: [{ required: true , message: ' 退回节点不能为空' , trigger: ' change' }]
508
552
}) // 表单校验规则
509
553
@@ -742,12 +786,36 @@ const handleReCreate = async () => {
742
786
})
743
787
}
744
788
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
+ }
749
818
}
750
-
751
819
/** 重新加载数据 */
752
820
const reload = () => {
753
821
emit (' success' )
0 commit comments