Преглед на файлове

OA流程节点后操作数据及接口处理

lph преди 1 година
родител
ревизия
dc7755e690

+ 5 - 5
zkqy-ui/src/components/FormGroup/Approve.vue

@@ -40,7 +40,7 @@
       :inline="false"
       size="normal"
     >
-      <el-form-item label="审批:">
+      <el-form-item prop="approvalStatus" label="审批:">
         <el-select
           v-model="form.approvalStatus"
           placeholder="请选择审批结果"
@@ -169,7 +169,7 @@ export default {
         this.$nextTick(() => {
           this.setDefaultValue();
         });
-        console.log(this.formArray);
+        // console.log(this.formArray);
       },
       deep: true,
       immediate: true,
@@ -184,7 +184,7 @@ export default {
     },
     setDefaultValue() {
       for (const key in this.defaultValueObj) {
-        console.log(this.$refs[key], key);
+        // console.log(this.$refs[key], key);
         this.$refs[key][0]?.setData(this.defaultValueObj[key]);
       }
     },
@@ -198,7 +198,7 @@ export default {
 
      */
     disableHandler(formList) {
-      console.log(formList);
+      // console.log(formList);
       this.resetForm();
       this.defaultValueObj = {};
       if (formList.length == 0) return [];
@@ -242,7 +242,7 @@ export default {
             // alert('submit!');
             res.flag = true;
             res.data = this.form;
-            console.log(res);
+            // console.log(res);
             // return res;
             resolve(res);
           } else {

+ 44 - 0
zkqy-ui/src/utils/index.js

@@ -429,3 +429,47 @@ export const getContainerSize = dom => ({ width: dom.getBoundingClientRect().wid
 export function hasValue(value) {
   return value !== null && value !== undefined && value !== false && value !== '';
 }
+
+/**
+ * 
+ * @param {*} num 
+ * @returns 
+ */
+export function convertToChineseCapital(num) {
+  var chnNumChar = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
+  var chnUnitChar = ['个', '十', '百', '千', '万'];
+  var strIn = num.toString();
+  var chnStr = '';
+  var unitPos = 0;
+  var zero = true;
+
+  for (var i = 0; i < strIn.length; i++) {
+    var num = strIn.charAt(i);
+    var n = Number(num);
+    if (n !== 0) zero = false;
+    if (!zero || i === strIn.length - 1) {
+      chnStr += chnNumChar[n] + chnUnitChar[strIn.length - i - 1];
+    }
+    if (n === 0 && zero && unitPos === 0) {
+      chnStr += chnNumChar[n];
+    }
+    if (n !== 0 && i % 4 === 0) {
+      chnStr += chnNumChar[n] + chnUnitChar[4 + unitPos];
+      unitPos = 1;
+    }
+    if (n !== 0 && i % 4 === 1) {
+      chnStr += chnNumChar[n] + chnUnitChar[8 + unitPos];
+      unitPos = 1;
+    }
+    if (n !== 0 && i % 4 === 2) {
+      chnStr += chnNumChar[n] + chnUnitChar[12 + unitPos];
+      unitPos = 1;
+    }
+    if (n !== 0 && i % 4 === 3) {
+      chnStr += chnNumChar[n] + chnUnitChar[16 + unitPos];
+      unitPos = 0;
+    }
+  }
+  return chnStr;
+}
+

+ 105 - 1
zkqy-ui/src/views/bussiness/OAMange.vue

@@ -211,6 +211,7 @@ import Approve from "@/components/FormGroup/Approve.vue";
 import receiptDocuments from "@/utils/print/receiptDocuments";
 import qrCodeList from "@/utils/print/qrCodeList.js";
 import { xmlStr2XmlObj } from "@/utils/bpmn/tool";
+import { submitNodeForm } from "@/api/bpmprocess/runDialogApi/index";
 
 export default {
   name: "processMange",
@@ -474,6 +475,8 @@ export default {
       );
       let res = await this.$refs.approveRef.getformInfo();
       if (!res.flag) return;
+      // this.afterNodeExecute(this.row, res);
+      // return;
       // 准备审批数据
       let payLoad = {
         taskProcessKey: this.row.bepTaskKey, //当前任务流程编码
@@ -499,15 +502,116 @@ export default {
         subformData.append(key, payLoad[key] == null ? "" : payLoad[key]);
       }
       let result = await processNodeExecutionApproval(subformData);
-      console.log(result);
       if (result.code == 200) {
         this.$message.success("审批成功");
+        this.afterNodeExecute(this.row, res);
         this.show = false;
         this.getList();
       } else {
         this.$message.error("审批失败");
       }
     },
+    // 节点后操作
+    async afterNodeExecute(row, formData) {
+      let { benTask3 } = row;
+      let timing = formData.data.approvalStatus;
+      if (!benTask3) return;
+      let tempData = JSON.parse(benTask3);
+      console.log(tempData, this.formList, formData);
+      let timingList = tempData.filter((item) => item.timing == timing);
+      if (timingList.length == 0) return; //没有指定时机的操作
+      let ExecuteTypeObj = {
+        insert: {}, //insertCommonEntityList
+        update: {}, //updateCommonEntityList
+      };
+      // let ExecuteTypeObj=new Object();
+      timingList.forEach((item) => {
+        let exeType = item.exeType;
+        if (exeType == "insert") {
+          item.tableData.forEach((i) => {
+            // let insertTableName = i.fieldName.split(".")[0];
+            // let insertField = i.fieldName.split(".")[1];
+            let insertTableName = i.relaTableName;
+            let insertField = i.relaFieldName;
+            if (!ExecuteTypeObj.insert[insertTableName]) {
+              //新的表  添加初始结构
+              ExecuteTypeObj.insert[insertTableName] = {
+                basicMap: {
+                  tableName: insertTableName,
+                },
+                addListMap: [{}],
+              };
+            }
+            // 在保证有基础结构后  进行赋值
+            ExecuteTypeObj.insert[insertTableName].addListMap[0][insertField] =
+              i.defaultValue ? i.defaultValue : this.getRelateValue(i);
+          });
+        } else if (exeType == "update") {
+          item.tableData.forEach((i) => {
+            // let insertTableName = i.fieldName.split(".")[0];
+            // let insertField = i.fieldName.split(".")[1];
+            let insertTableName = i.relaTableName;
+            let insertField = i.relaFieldName;
+            if (!ExecuteTypeObj.update[insertTableName]) {
+              //新的表  添加初始结构
+              ExecuteTypeObj.update[insertTableName] = {
+                basicMap: {
+                  tableName: insertTableName,
+                },
+                commMap: {},
+                conditionMap: {},
+              };
+            }
+            if (i.isCondition == "false") {
+              //非条件
+              ExecuteTypeObj.update[insertTableName].commMap[insertField] =
+                i.defaultValue ? i.defaultValue : this.getRelateValue(i);
+            } else {
+              //条件
+              ExecuteTypeObj.update[insertTableName].conditionMap[insertField] =
+                i.defaultValue ? i.defaultValue : this.getRelateValue(i);
+            }
+          });
+        }
+      });
+      console.log(ExecuteTypeObj);
+      let payload = {
+        insertCommonEntityList: [],
+        updateCommonEntityList: [],
+      };
+      let tempInsert = ExecuteTypeObj.insert;
+      if (Object.keys(tempInsert).length > 0) {
+        for (const val of Object.keys(tempInsert)) {
+          payload.insertCommonEntityList.push(tempInsert[val]);
+        }
+      }
+      let tempUpdate = ExecuteTypeObj.update;
+      if (Object.keys(tempUpdate).length > 0) {
+        for (const iterator of Object.keys(tempUpdate)) {
+          payload.updateCommonEntityList.push(tempUpdate[iterator]);
+        }
+      }
+      try {
+        console.log(payload);
+        let res = await submitNodeForm(payload);
+        if (res.code == 200) {
+          // this.$message.success("提交成功");
+        } else {
+          this.$message.error("网络异常,请稍后再试");
+        }
+      } catch (error) {
+        console.log(error);
+      }
+    },
+    // 获取表单对应的值
+    getRelateValue(i) {
+      let { relaTableName, relaFieldName, fieldName } = i;
+      let tableName = fieldName.split(".")[0];
+      let field = fieldName.split(".")[1];
+      let relaForm = this.formList.find((item) => item.tableName == tableName);
+      if (!relaForm || !relaForm.template.defaultValue) return "";
+      return relaForm.template.defaultValue[field];
+    },
     // 取消审批回调
     async cancelHandler(row) {
       console.log(row);

+ 4 - 4
zkqy-ui/src/views/tablelist/commonTable/listInfo.vue

@@ -1318,10 +1318,10 @@ export default {
                 : this.currentRow[camelCase(item.fieldName.replace(".", "_"))];
             });
 
-            console.log("mainFormData", mainFormData);
-            console.log("btnParams", btnParams);
-            console.log("conditionData", conditionData);
-            console.log("btnType", this.currentBtnData.btnType);
+            // console.log("mainFormData", mainFormData);
+            // console.log("btnParams", btnParams);
+            // console.log("conditionData", conditionData);
+            // console.log("btnType", this.currentBtnData.btnType);
             data.basicMap.btnType = this.currentBtnData.btnType;
             data.basicMap.visible = true;
             let payLoad = {};