Quellcode durchsuchen

流程设计添加表单类型dragFormGroup

lph vor 1 Jahr
Ursprung
Commit
6da1edabc8

+ 51 - 2
zkqy-ui/src/views/system/bpmnPro/components/Panel/components/ElementGenerations.vue

@@ -62,6 +62,30 @@
           @change="updateNodeDescription"
         />
       </el-form-item>
+      <el-form-item
+        v-show="isProcess && myProcessType == 1"
+        label="表单类型"
+        prop="formType"
+      >
+        <el-select
+          v-model="elFormData.formType"
+          @change="updateFormType"
+          clearable
+          filterable
+        >
+          <el-option
+            v-for="item in formTypeOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+            <span class="discribe" style="float: left">{{ item.label }}</span>
+            <span style="float: right; color: #8492a6; font-size: 13px">{{
+              item.value
+            }}</span>
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item
         v-show="isProcess && myProcessType == 1"
         label="审批表单"
@@ -173,6 +197,8 @@ import {
   getNodeDescription,
   setFId,
   getFId,
+  setFormType,
+  getFormType,
 } from "@packages/bo-utils/myFieldUtil";
 import EventEmitter from "@utils/EventEmitter";
 import { getActive } from "@packages/bpmn-utils/BpmnDesignerUtils";
@@ -233,7 +259,18 @@ export default {
         scriptTriggerType: false,
         formKey: "",
         fId: "",
+        formType: "",
       },
+      formTypeOptions: [
+        {
+          label: "单独表单",
+          value: "dragForm",
+        },
+        {
+          label: "表单组",
+          value: "dragFormGroup",
+        },
+      ],
 
       isProcess: false,
       // rules: {
@@ -267,9 +304,13 @@ export default {
       return this.processType();
     },
     formList() {
-      console.log(this.myProcessType);
       if (this.myProcessType == "1") {
-        return this.dragFormList();
+        //OA类型
+        if (this.elFormData.formType == "dragForm") {
+          return this.dragFormList();
+        } else {
+          return this.groupDragFormList();
+        }
       }
       return formList;
     },
@@ -283,6 +324,10 @@ export default {
       from: "dragFormList",
       default: [],
     },
+    groupDragFormList: {
+      from: "groupDragFormList",
+      default: [],
+    },
   },
   mounted() {
     this.reloadGenerationData();
@@ -304,6 +349,7 @@ export default {
         this.elFormData.elementVersion =
           getProcessVersionTag(getActive()) || "";
         this.elFormData.fId = getFId(getActive()) || "";
+        this.elFormData.formType = getFormType(getActive()) || "dragForm";
       } else {
         this.elFormData.nodeDescription = getNodeDescription(getActive()) || "";
         this.elFormData.formKey = getFormKey(getActive()) || "";
@@ -321,6 +367,9 @@ export default {
     updateFId(value) {
       setFId(getActive(), value);
     },
+    updateFormType(value) {
+      setFormType(getActive(), value);
+    },
     updateElementVersion(value) {
       const reg = /((\d|([1-9](\d*))).){2}(\d|([1-9](\d*)))/;
       if (reg.test(value)) {

+ 2 - 1
zkqy-ui/src/views/system/bpmnPro/components/bo-utils/getNodeMsg.js

@@ -73,7 +73,8 @@ export function getNodeMsg(xmlObj, processType) {
     nodeObj.nodeKey = node.id;
     nodeObj.nodeName = node.getAttribute('name');
     // if (nodeObj.nodeName.includes('-')) {
-    nodeObj.nodeFormType = processType == 0 ? 'designForm' : 'dragForm';
+    // nodeObj.nodeFormType = processType == 0 ? 'designForm' : 'dragForm';
+    nodeObj.nodeFormType = processType == 0 ? 'designForm' : attributes.getNamedItem(`${prefix}:formType`)?.value || '';
     // nodeFormKey 统一为流程的fId属性
     nodeObj.nodeFormKey = processType == 0 ? node.getAttribute(`${prefix}:nodeFormKey`) : attributes.getNamedItem(`${prefix}:fId`)?.value || '';
     // }

+ 15 - 0
zkqy-ui/src/views/system/bpmnPro/components/bo-utils/myFieldUtil.js

@@ -73,6 +73,7 @@ export function setFId(element, value) {
   const prefix = getProcessEngine();
 
   modeling.updateProperties(element, {
+
     [`${prefix}:fId`]: value
   });
 }
@@ -81,7 +82,21 @@ export function getFId(element) {
   const prefix = getProcessEngine();
   return element.businessObject.get(`${prefix}:fId`);
 }
+// 流程的表单类型
+export function setFormType(element, value) {
+  const modeling = getModeler.getModeling();
+  const prefix = getProcessEngine();
+
+  modeling.updateProperties(element, {
+
+    [`${prefix}:formType`]: value
+  });
+}
+export function getFormType(element) {
 
+  const prefix = getProcessEngine();
+  return element.businessObject.get(`${prefix}:formType`);
+}
 // 执行表单
 export function isTaskOrUserTask(element) {
   return isAny(element, ["bpmn:Task", 'bpmn:UserTask'])

+ 21 - 0
zkqy-ui/src/views/system/bpmnPro/index.vue

@@ -82,6 +82,7 @@ import { listScript } from "@/api/bpmprocess/process";
 import { listUser, getUserListByTenantId } from "@/api/system/user";
 import { listRole } from "@/api/system/role";
 import { listForm } from "@/api/dragform/form";
+import { listFormGroup } from "@/api/system/formGroup";
 
 export default {
   name: "App",
@@ -103,6 +104,7 @@ export default {
       allUserList: [],
       allRoleList: [],
       dragFormList: [],
+      groupDragFormList: [],
 
       // 流程类型数据
       show: false,
@@ -124,6 +126,7 @@ export default {
       allRoleList: () => this.allRoleList,
       processType: () => this.processForm.processType,
       dragFormList: () => this.dragFormList,
+      groupDragFormList: () => this.groupDragFormList,
     };
   },
   methods: {
@@ -204,6 +207,23 @@ export default {
         this.$message.warning("网络异常,请稍后再试");
       }
     },
+    // 获取表单组列表
+    async getGroupDragFormList() {
+      try {
+        let res = await listFormGroup({ isEnablePaging: false });
+        if (res.code == 200) {
+          res.rows.forEach((element) => {
+            element.formKey = element.groupKey + "";
+            element.formName = element.fGName;
+          });
+          this.groupDragFormList = res.rows;
+        } else {
+          throw Error(res?.msg);
+        }
+      } catch (error) {
+        this.$message.warning("网络异常,请稍后再试");
+      }
+    },
     confirmHandler() {
       this.show = false;
     },
@@ -219,6 +239,7 @@ export default {
     this.getAllRoleList();
     this.getAllUserList();
     this.getAllDragFormList();
+    this.getGroupDragFormList();
   },
   async created() {
     if (this.$route.query?.id) {