Просмотр исходного кода

流程任务分配规则优化:新增上三级部门负责人配置并完善字典选择逻辑

yusheng 9 месяцев назад
Родитель
Сommit
ae95f4a6c4

+ 22 - 8
src/components/processSubmitDialog/processSubmitDialog.vue

@@ -97,7 +97,13 @@
           min-width="140px"
         >
           <template v-slot="scope">
-            <div v-if="scope.row.type !== 60 &&scope.row.type !== 70 && scope.row.options.length > 0">
+            <div
+              v-if="
+                scope.row.type !== 60 &&
+                scope.row.type !== 70 &&
+                scope.row.options.length > 0
+              "
+            >
               <el-tag
                 size="medium"
                 :key="option"
@@ -107,7 +113,14 @@
               </el-tag>
             </div>
 
-            <el-tag size="medium" v-if="scope.row.type === 60|| scope.row.type ===70">
+            <el-tag
+              size="medium"
+              v-if="
+                scope.row.type === 60 ||
+                scope.row.type === 70 ||
+                scope.row.type === 80
+              "
+            >
               {{ getAssignRuleOptionName(scope.row) }}
             </el-tag>
           </template>
@@ -184,7 +197,7 @@
   import { listOrganizations } from '@/api/system/organization';
   import dictMixins from '@/mixins/dictMixins';
   import { getByCode } from '@/api/system/dictionary-data';
-  import { topLevel1, topLevel2 } from '@/enum/dict';
+  import { topLevel1, topLevel2, topLevel3 } from '@/enum/dict';
 
   export default {
     name: 'processSubmitDialog',
@@ -372,15 +385,16 @@
           );
         } else if (row.type === 60) {
           return row.variableName;
-        }else if (row.type === 70) {
+        } else if (row.type === 70) {
           let data = JSON.parse(row.variableName);
           if (data.direction == 1) {
-            return topLevel2.find((item) => item.value == data.topLevel)
-              ?.label;
+            return topLevel2.find((item) => item.value == data.topLevel)?.label;
           } else {
-            return topLevel1.find((item) => item.value == data.topLevel)
-              ?.label;
+            return topLevel1.find((item) => item.value == data.topLevel)?.label;
           }
+        } else if (row.type === 80) {
+          let data = JSON.parse(row.variableName);
+          return topLevel3.find((item) => item.value == data.topLevel)?.label;
         }
         return '未知(' + option + ')';
       },

+ 38 - 1
src/enum/dict.js

@@ -307,7 +307,44 @@ export const businessModule = [
     value: 'datascreen_'
   }
 ];
-
+export const topLevel3 = [
+  {
+    label: '上级部门负责人',
+    value: '1'
+  },
+  {
+    label: '上二级部门负责人',
+    value: '2'
+  },
+  {
+    label: '上三级部门负责人',
+    value: '3'
+  },
+  {
+    label: '上四级部门负责人',
+    value: '4'
+  },
+  {
+    label: '上五级部门负责人',
+    value: '5'
+  },
+  {
+    label: '上六级部门负责人',
+    value: '6'
+  },
+  {
+    label: '上七级部门负责人',
+    value: '7'
+  },
+  {
+    label: '上八级部门负责人',
+    value: '8'
+  },
+  {
+    label: '上九级部门负责人',
+    value: '9'
+  }
+];
 export const topLevel1 = [
   {
     label: '直接部门负责人',

+ 39 - 7
src/views/bpm/taskAssignRule/taskAssignRuleDialog.vue

@@ -47,7 +47,14 @@
             >
               {{ getAssignRuleOptionName(scope.row, option) }}
             </el-tag>
-            <el-tag size="medium" v-if="scope.row.type === 60">
+            <el-tag
+              size="medium"
+              v-if="
+                scope.row.type === 60 ||
+                scope.row.type === 70 ||
+                scope.row.type === 80
+              "
+            >
               {{ getAssignRuleOptionName(scope.row) }}
             </el-tag>
           </template>
@@ -242,7 +249,6 @@
           >
             <el-option
               v-for="(item, index) in topLevel1"
-
               :key="index"
               :label="item.label"
               :value="item.value"
@@ -274,6 +280,20 @@
           >
           </el-input>
         </el-form-item>
+        <el-form-item
+          v-if="form.typeS === 80 && title != '修改抄送规则'"
+          label="指定部门负责人"
+          prop="topLevel"
+        >
+          <el-select v-model="form.topLevel" clearable style="width: 100%">
+            <el-option
+              v-for="(item, index) in topLevel3"
+              :key="index"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button
@@ -309,7 +329,7 @@
   } from '@/api/system/organization';
   // import {listSimplePosts} from "@/api/system/post";
   import { listSimpleUserGroups } from '@/api/bpm/userGroup';
-  import { topLevel1, topLevel2 } from '@/enum/dict';
+  import { topLevel1, topLevel2, topLevel3 } from '@/enum/dict';
 
   import treeSelect from '@riophae/vue-treeselect';
   import '@riophae/vue-treeselect/dist/vue-treeselect.css';
@@ -330,7 +350,9 @@
       };
 
       return {
-        topLevel1,topLevel2,
+        topLevel1,
+        topLevel2,
+        topLevel3,
         // 如下参数,可传递
         modelId: undefined, // 流程模型的编号。如果 modelId 非空,则用于流程模型的查看与配置
         processDefinitionId: undefined, // 流程定义的编号。如果 processDefinitionId 非空,则用于流程定义的查看,不支持配置
@@ -578,8 +600,8 @@
           this.form.userGroupIds.push(...row.options);
         } else if (row.type === 50) {
           this.form.scripts.push(...row.options);
-        } else if (row.type === 70) {
-          let res = JSON.parse(row.variableName);
+        } else if (row.type === 70 || row.type === 80) {
+          let res = row.variableName ? JSON.parse(row.variableName) : {};
           this.$set(this.form, 'direction', res.direction);
           this.$set(this.form, 'topLevel', res.topLevel);
         }
@@ -612,7 +634,7 @@
               form.options = form.userGroupIds;
             } else if (form.type === 50) {
               form.options = form.scripts;
-            } else if (form.type === 70) {
+            } else if (form.type === 70 || form.type === 80) {
               form.variableName = JSON.stringify({
                 direction: form.direction,
                 topLevel: form.topLevel
@@ -759,6 +781,16 @@
           }
         } else if (row.type === 60) {
           return row.variableName;
+        } else if (row.type === 70) {
+          let data = JSON.parse(row.variableName);
+          if (data.direction == 1) {
+            return topLevel2.find((item) => item.value == data.topLevel)?.label;
+          } else {
+            return topLevel1.find((item) => item.value == data.topLevel)?.label;
+          }
+        } else if (row.type === 80) {
+          let data = JSON.parse(row.variableName);
+          return topLevel3.find((item) => item.value == data.topLevel)?.label;
         }
         return '未知(' + option + ')';
       },