Browse Source

code review:修复工作流的审批界面报错问题

YunaiV 1 năm trước cách đây
mục cha
commit
c27685285a

+ 23 - 26
src/views/bpm/processInstance/detail/ProcessInstanceChildrenTaskList.vue

@@ -1,13 +1,20 @@
 <template>
   <el-drawer v-model="drawerVisible" title="子任务" size="70%">
+    <!-- 当前任务 -->
     <template #header>
       <h4>【{{ baseTask.name }} 】审批人:{{ baseTask.assigneeUser?.nickname }}</h4>
-      <el-button style="margin-left: 5px" v-if="showSubSignButton(baseTask)" type="danger" plain @click="handleSubSign(baseTask)">
-        <Icon icon="ep:remove" />
-        减签
+      <el-button
+        style="margin-left: 5px"
+        v-if="isSubSignButtonVisible(baseTask)"
+        type="danger"
+        plain
+        @click="handleSubSign(baseTask)"
+      >
+        <Icon icon="ep:remove" /> 减签
       </el-button>
     </template>
-    <el-table :data="tableData" style="width: 100%" row-key="id" border>
+    <!-- 子任务列表 -->
+    <el-table :data="baseTask.children" style="width: 100%" row-key="id" border>
       <el-table-column prop="assigneeUser.nickname" label="审批人" />
       <el-table-column prop="assigneeUser.deptName" label="所在部门" />
       <el-table-column label="审批状态" prop="result">
@@ -32,18 +39,17 @@
       <el-table-column label="操作" prop="operation">
         <template #default="scope">
           <el-button
-            v-if="showSubSignButton(scope.row)"
+            v-if="isSubSignButtonVisible(scope.row)"
             type="danger"
             plain
             @click="handleSubSign(scope.row)"
           >
-            <Icon icon="ep:remove" />
-            减签
+            <Icon icon="ep:remove" /> 减签
           </el-button>
         </template>
       </el-table-column>
     </el-table>
-    <!--  减签   -->
+    <!-- 减签 -->
     <TaskSubSignDialogForm ref="taskSubSignDialogForm" />
   </el-drawer>
 </template>
@@ -53,12 +59,11 @@ import { DICT_TYPE } from '@/utils/dict'
 import { dateFormatter } from '@/utils/formatTime'
 import TaskSubSignDialogForm from './TaskSubSignDialogForm.vue'
 
-const message = useMessage() // 消息弹窗
-defineOptions({ name: 'ProcessInstancechildrenList' })
+defineOptions({ name: 'ProcessInstanceChildrenTaskList' })
 
+const message = useMessage() // 消息弹窗
 const drawerVisible = ref(false) // 抽屉的是否展示
 
-const tableData = ref<any[]>([]) //表格数据
 const baseTask = ref<object>({})
 /** 打开弹窗 */
 const open = async (task: any) => {
@@ -67,30 +72,22 @@ const open = async (task: any) => {
     return
   }
   baseTask.value = task
-  //设置表格数据
-  tableData.value = task.children
-  //展开抽屉
+  // 展开抽屉
   drawerVisible.value = true
 }
 defineExpose({ open }) // 提供 openModal 方法,用于打开弹窗
 
-const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
-
-/**
- * 减签
- */
+/** 发起减签 */
 const taskSubSignDialogForm = ref()
 const handleSubSign = (item) => {
   taskSubSignDialogForm.value.open(item.id)
+  // TODO @海洋:减签后,需要刷新下界面哈
 }
 
-/**
- * 显示减签按钮
- * @param task
- */
-const showSubSignButton = (task:any) => {
-  if(!isEmpty(task.children)){
-    //有子任务,且子任务有任意一个是 待处理 和 待前置任务完成 则显示减签按钮
+/** 是否显示减签按钮 */
+const isSubSignButtonVisible = (task: any) => {
+  if (task && task.children && !isEmpty(task.children)) {
+    // 有子任务,且子任务有任意一个是 待处理 和 待前置任务完成 则显示减签按钮
     const subTask = task.children.find((item) => item.result === 1 || item.result === 9)
     return !isEmpty(subTask)
   }

+ 6 - 6
src/views/bpm/processInstance/detail/TaskAddSignDialogForm.vue

@@ -22,12 +22,12 @@
       </el-form-item>
     </el-form>
     <template #footer>
-      <el-button :disabled="formLoading" type="primary" @click="submitForm('before')"
-        >向前加签</el-button
-      >
-      <el-button :disabled="formLoading" type="primary" @click="submitForm('after')"
-        >向后加签</el-button
-      >
+      <el-button :disabled="formLoading" type="primary" @click="submitForm('before')">
+        向前加签
+      </el-button>
+      <el-button :disabled="formLoading" type="primary" @click="submitForm('after')">
+        向后加签
+      </el-button>
       <el-button @click="dialogVisible = false">取 消</el-button>
     </template>
   </Dialog>