Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

hmc vor 1 Jahr
Ursprung
Commit
5d4ae2c7b3

+ 20 - 14
zkqy-ui/src/components/FormGroup/formList.vue

@@ -104,7 +104,7 @@ export default {
     myFormList: {
       handler(val) {
         // this.$emit("update:formList", val);
-
+        console.log(JSON.parse(JSON.stringify(val)));
         let temp = JSON.parse(JSON.stringify(val));
         this.formArray = this.disableHandler(temp);
         this.$nextTick(() => {
@@ -130,16 +130,16 @@ export default {
     setDefaultValue() {
       console.log("开始渲染默认数据");
       this.formArray.forEach((item) => {
-        for (const key of Object.keys(item.template?.defaultValue || {})) {
-          item.template.defaultValue[toUnderline(key)] =
-            item.template.defaultValue[key];
-        }
+        // for (const key of Object.keys(item.template?.defaultValue || {})) {
+        //   item.template.defaultValue[toUnderline(key)] =
+        //     item.template.defaultValue[key];
+        // }
+        console.log(item);
         this.defaultValue[item.tableName] = item.template?.defaultValue || {};
       });
       for (const key in this.defaultValue) {
+        console.log(this.defaultValue);
         this.$refs[key][0]?.setData(this.defaultValue[key]);
-        console.log(this.defaultValue[key]);
-        console.log(this.$refs[key][0]);
       }
     },
     getUUID() {
@@ -155,7 +155,6 @@ export default {
       this.resetForm();
       if (formList.length == 0) return [];
       formList.forEach((item) => {
-        console.log(item);
         item.template.dfFormSql =
           typeof item.template.dfFormSql == "object"
             ? item.template.dfFormSql
@@ -171,10 +170,8 @@ export default {
             : JSON.parse(item.template.dfVueTemplate);
 
         if (item.template.resultMap) {
-          console.log(item.template.resultMap);
-          console.log(item.template.resultMap[0]?.resultMap);
-          item.template.defaultValue = item.template.resultMap[0]?.resultMap
-            ? item.template.resultMap[0].resultMap
+          item.template.defaultValue = item.template.resultMap[0]
+            ? item.template.resultMap[0]
             : {};
         }
 
@@ -222,14 +219,23 @@ export default {
     // 获取指定表单数据
     getFormData(refName) {
       return new Promise((resolve) => {
-        let { tableName, formItem, relateFormItem } = refName;
-        console.log(this.$refs[tableName]);
+        let {
+          tableName,
+          formItem,
+          relateFormItem,
+          formType,
+          defaultValue,
+          insertMap,
+        } = refName;
         this.$refs[tableName][0]?.getData().then((values) => {
           resolve({
             tableName,
             data: values,
             formItem,
             relateFormItem,
+            formType,
+            defaultValue,
+            insertMap,
           });
         });
       });

+ 5 - 5
zkqy-ui/src/views/orderMange/index.vue

@@ -351,7 +351,7 @@
           <el-col :span="12">
             <el-form-item
               label-width="120px"
-              prop="saleDate"
+              prop="saleOrderEstimatedTime"
               label="预计下单时间:"
             >
               <el-date-picker
@@ -809,7 +809,7 @@ export default {
         saleNo: [
           {
             required: true,
-            message: "请输入销售单号",
+            message: "请输入合同号",
             trigger: "blur",
           },
           {
@@ -831,7 +831,7 @@ export default {
             trigger: "change",
           },
         ],
-        saleDate: [
+        saleOrderEstimatedTime: [
           {
             required: true,
             message: "请选择预计下单时间",
@@ -841,7 +841,7 @@ export default {
         saleLeadTime: [
           {
             required: true,
-            message: "请输入交货周期",
+            message: "请输入交货天数",
             trigger: "blur",
           },
         ],
@@ -1325,7 +1325,7 @@ export default {
         if (result.data) {
           callback();
         } else {
-          callback(new Error("订单号已存在"));
+          callback(new Error("合同号已存在"));
         }
       } else {
         callback(new Error("校验失败,请稍后再试"));

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

@@ -345,6 +345,25 @@ export default {
   components: { Queryfrom, Menu, DialogTemplate, FormList },
   data() {
     return {
+      // 自动生成字段
+      theAutoField: [
+        "id",
+        "createBy",
+        "createById",
+        "createTime",
+        "delFlag",
+        "updateBy",
+        "updateById",
+        "updateTime",
+        "del_flag",
+        "create_by",
+        "create_by_id",
+        "create_time",
+        "data_approval_status",
+        "update_by",
+        "update_by_id",
+        "update_time",
+      ],
       // 绑定按钮dialog
       btnDialogVisible: false,
       // 绑定修改dialog
@@ -820,6 +839,7 @@ export default {
               //   this.$refs.formGroupRef.setDefaultValue();
               // });
             } else {
+              console.error(res);
               this.$message.error("网络异常,请稍后再试");
             }
           } else {
@@ -892,7 +912,7 @@ export default {
         // });
       } catch (error) {
         this.$message.error("网络异常,请稍后再试");
-        // console.log(error);
+        console.error(error);
       }
       return;
       // getInfoBySqlKey(this.templateInfo.template.sqlKey).then(({ data }) => {
@@ -936,10 +956,18 @@ export default {
       this.FormNameList = [];
       let { mainForm, subFormList } = data;
       this.formList = [];
-      let showValue = mainForm.showValue[0];
+      let showValue = null;
+      if (mainForm.showValue) {
+        showValue = mainForm.showValue[0]?.resultMap;
+      }
+
       if (showValue) {
-        mainForm.showTemplate.resultMap = mainForm.showValue;
+        for (const key of Object.keys(showValue)) {
+          showValue[toUnderline(key)] = showValue[key];
+        }
+        mainForm.showTemplate.resultMap = [showValue];
       }
+
       this.formList.push({
         template: mainForm.showTemplate,
         tableName: mainForm.mainFormTable,
@@ -948,13 +976,46 @@ export default {
         tableName: mainForm.mainFormTable,
         formItem: mainForm.mainFormItem,
         relateFormItem: null,
+        formType: mainForm.showTemplate.spare == "2" ? "batch" : "normal",
+        defaultValue: mainForm.showValue ? mainForm.showValue[0].resultMap : {},
       });
       if (subFormList && subFormList.length > 0) {
         subFormList.forEach((item) => {
-          // console.log(item);
-          let showValue = item.showValue[0];
+          let showValue = null;
+          if (item.showValue) {
+            showValue = item.showValue[0];
+          }
+          let defaultValue = {};
           if (showValue) {
-            item.showTemplate.resultMap = item.showValue;
+            if (item.showTemplate.spare == "2") {
+              //动态表格表单
+              let batch = {},
+                tableName = item.formItem?.split(".")?.[0];
+              batch[tableName] = item.showValue.map((item) => item.resultMap);
+              defaultValue = JSON.parse(JSON.stringify(batch));
+              console.log(JSON.parse(JSON.stringify(batch)));
+              // 所有字段驼峰转下划线
+              batch[tableName].forEach((i) => {
+                for (const key of Object.keys(i)) {
+                  i[toUnderline(key)] = i[key];
+                  if (toUnderline(key) != key) {
+                    delete i[key];
+                  }
+                }
+              });
+              item.showTemplate.resultMap = [
+                {
+                  batch,
+                },
+              ];
+            } else {
+              for (const key of Object.keys(item.showValue[0].resultMap)) {
+                item.showValue[0].resultMap[toUnderline(key)] =
+                  item.showValue[0].resultMap[key];
+              }
+
+              item.showTemplate.resultMap = [item.showValue[0].resultMap];
+            }
           }
           this.formList.push({
             template: item.showTemplate,
@@ -964,6 +1025,9 @@ export default {
             tableName: item.formItem?.split(".")?.[0],
             formItem: item.formItem,
             relateFormItem: item.relateMainItem,
+            formType: item.showTemplate.spare == "2" ? "batch" : "normal",
+            defaultValue,
+            insertMap: item.insertMap,
           });
         });
       }
@@ -1196,12 +1260,59 @@ export default {
       let temp = field.replace(tableName, "");
       return toUnderline(temp[0].toLowerCase() + temp.slice(1));
     },
+    // 处理 动态表单 动态表格 新增数据
+    getInsertBatchData(values, data) {
+      if (Object.keys(values.batch).length == 0) return data;
+      let tableName = Object.keys(values.batch)[0];
+      data.basicMap.tableName = tableName;
+      data.addListMap = values.batch[tableName].map((item) => {
+        delete item.key;
+        return item;
+      });
+      return data;
+    },
+    // 添加插入的数据
+    addInsertData(insertMap, result, res) {
+      console.log(insertMap, result, res);
+      result.addListMap.forEach((i) => {
+        insertMap.forEach((j) => {
+          i[j.fieldName?.split(".")[1]] = res.find(
+            (k) => k.tableName == j.tableName
+          )?.data[j.relaField.split(".")[1]];
+        });
+      });
+    },
+    // 处理 动态表单 动态表格 修改数据
+    getEditBatchData(values, data) {},
+    // 处理 表单组  含有动态表格  新增数据
+    getFormGroupBatchData(values, index, result) {
+      console.log(values, index, result);
+      let tableName = Object.keys(values.data.batch)[0];
+      let res = {
+        basicMap: {
+          tableName,
+        },
+        addListMap: [],
+      };
+      let { formItem, relateFormItem } = values;
+      res.addListMap = values.data.batch[tableName].map((item) => {
+        delete item.key;
+        console.log(formItem.split(".")[1], relateFormItem.split(".")[1]);
+        item[formItem.split(".")[1]] =
+          result[0].data[relateFormItem.split(".")[1]]; //将主表单的关联值赋值给从表单
+        return item;
+      });
+      return res;
+    },
     //提交编辑结果按钮回调
     async editConfirmHandler() {
       if (this.$refs.addFromRef && this.formType == "dragForm") {
         this.$refs.addFromRef
           .getData()
           .then(async (values) => {
+            // console.log("dragForm", values);
+
+            // return;
             let data = {
               basicMap: {
                 tableName: this.tableName,
@@ -1213,6 +1324,7 @@ export default {
               commMap: {},
               btnParametersMap: {},
             };
+
             if (this.currentBtnData.btnParams) {
               let btnParams =
                 JSON.parse(this.currentBtnData.btnParams)?.commonFieldData ||
@@ -1238,14 +1350,27 @@ export default {
               });
             }
             if (Object.keys(this.defaultValue).length) {
+              //修改
               // data.conditionMap[this.templateInfo.template?.primaryKey] =
               //   this.defaultValue[this.templateInfo.template?.primaryKey];
-              Object.keys(values).map((k) => {
-                data.commMap[k] = values[k];
-              });
+              if (values.batch) {
+                //动态表单的修改
+                data = this.getEditBatchData(values, data);
+              } else {
+                Object.keys(values).map((k) => {
+                  data.commMap[k] = values[k];
+                });
+              }
               data.basicMap.btnType = this.currentBtnData.btnType;
               data.basicMap.visible = true;
             } else {
+              // 处理 动态表格
+              // start
+              if (values.batch) {
+                data = this.getInsertBatchData(values, data);
+              }
+              // end
+              //新增
               data.basicMap.btnType = "INSERT";
               data.basicMap.visible = true;
             }
@@ -1265,7 +1390,7 @@ export default {
             this.open = false;
           })
           .catch((res) => {
-            // console.log(res);
+            console.log(res);
             this.$modal.msgError("表单校验失败,请规范填写数据");
           });
       } else if (this.formType == "dragFormGroup") {
@@ -1312,27 +1437,28 @@ export default {
                 ? item.fieldValue
                 : this.currentRow[camelCase(item.fieldName.replace(".", "_"))];
             });
-
-            // // 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 = {};
+            let payLoad = {
+              insertCommonEntityList: [],
+              updateCommonEntityList: [],
+              deleteCommonEntityList: [],
+            };
             if (this.currentBtnData.btnType == "UPDATE") {
-              //修改
-              payLoad.updateCommonEntityList = res.map((item, index) => {
-                let result = {
-                  basicMap: {
-                    tableName: item.tableName,
-                  },
-                  commMap: {
-                    ...item.data,
-                  },
-                  conditionMap: {},
-                };
+              // 准备删除数据
+              res.forEach((item, index) => {
+                let result = {};
                 if (index == 0) {
+                  //主表  主表不会是动态表格
+                  result = {
+                    basicMap: {
+                      tableName: item.tableName,
+                    },
+                    commMap: {
+                      ...item.data,
+                    },
+                    conditionMap: {},
+                  };
                   //主表条件
                   let conditionData =
                     JSON.parse(this.currentBtnData.btnParams).conditionData ||
@@ -1345,38 +1471,108 @@ export default {
                             camelCase(item.fieldName.replace(".", "_"))
                           ];
                   });
+                  payLoad.updateCommonEntityList.push(result);
                 } else {
                   // 从表条件
-                  let { formItem, relateFormItem } = item;
-                  let fieldName = formItem.split(".")[1];
-                  let value =
-                    this.currentRow[
-                      camelCase(relateFormItem.replace(".", "_"))
-                    ];
-                  result.conditionMap[fieldName] = value;
+                  let {
+                    formItem,
+                    relateFormItem,
+                    formType,
+                    defaultValue,
+                    tableName,
+                  } = item;
+                  if (formType == "batch") {
+                    //动态表格的修改
+                    let result = {};
+                    // 准备删除数据
+                    if (defaultValue[tableName]?.length) {
+                      let ids = defaultValue[tableName].map((item) => item.id);
+                      result = {
+                        basicMap: {
+                          tableName,
+                        },
+                        conditionMap: {
+                          id: ids,
+                        },
+                      };
+                      payLoad.deleteCommonEntityList.push(result);
+                    }
+                    // 准备新增数据
+                    result = this.getFormGroupBatchData(item, index, res);
+                    if (item.insertMap.length) {
+                      this.addInsertData(item.insertMap, result, res);
+                    }
+                    // 去除未修改数据的自动生成字段
+                    this.removeAutoField(result);
+                    console.log(result);
+                    payLoad.insertCommonEntityList.push(result);
+                  } else {
+                    //普通表格的修改
+                    result = {
+                      basicMap: {
+                        tableName: item.tableName,
+                      },
+                      commMap: {
+                        ...item.data,
+                      },
+                      conditionMap: {},
+                    };
+                    let fieldName = formItem.split(".")[1];
+                    let value =
+                      this.currentRow[
+                        camelCase(relateFormItem.replace(".", "_"))
+                      ];
+                    result.conditionMap[fieldName] = value;
+                    payLoad.updateCommonEntityList.push(result);
+                  }
                 }
-                return result;
               });
             } else if (this.currentBtnData.btnType == "INSERT") {
               // 新增
-              let uuid = uuidv4();
+              let uuid = uuidv4().replace("-", "");
               // console.log(uuid);
+              res.forEach((item, index) => {});
               payLoad.insertCommonEntityList = res.map((item, index) => {
-                let result = {
-                  basicMap: {
-                    tableName: item.tableName,
-                  },
-                  addListMap: [
-                    {
-                      ...item.data,
+                let result = {};
+                console.log(item);
+                // return;
+                if (item.data.batch) {
+                  //动态表格
+                  result = this.getFormGroupBatchData(item, index, res);
+                } else {
+                  result = {
+                    basicMap: {
+                      tableName: item.tableName,
                     },
-                  ],
-                };
+                    addListMap: [
+                      {
+                        ...item.data,
+                      },
+                    ],
+                  };
+                  let { formItem, relateFormItem } = item;
+                  if (index == 0) {
+                    //主表单
+                    // 添加新增数据的关联条件
 
-                // 添加新增数据的关联条件
-                let { formItem, relateFormItem } = item;
-                // console.log(formItem);
-                result.addListMap[0][formItem.split(".")[1]] = uuid;
+                    // console.log(formItem);
+                    let mainFormKey = res[0].data[formItem.split(".")[1]];
+                    if (mainFormKey) {
+                      result.addListMap[0][formItem.split(".")[1]] =
+                        mainFormKey;
+                    } else {
+                      res[0].data[formItem.split(".")[1]] = uuid;
+                      result.addListMap[0][formItem.split(".")[1]] = uuid;
+                    }
+                  } else {
+                    //子表单
+                    result.addListMap[0][formItem.split(".")[1]] =
+                      res[0].data[relateFormItem.split(".")[1]];
+                  }
+                }
+                if (item.insertMap?.length) {
+                  this.addInsertData(item.insertMap, result, res);
+                }
                 return result;
               });
             } else if (this.currentBtnData.btnType == "INITIATED") {
@@ -1468,6 +1664,7 @@ export default {
             }
 
             data.basicMap.BpmRunNodeFormDateVo = payLoad;
+            // return;
             try {
               let res = await btnCommonApi(data);
               if (res.code == 200) {
@@ -1476,10 +1673,11 @@ export default {
                 this.defaultValue = {};
                 this.open = false;
               } else {
+                console.log(res);
                 this.$message.error("网络异常,请稍后再试");
               }
             } catch (error) {
-              // console.log(error);
+              console.log(error);
               this.$message.error("网络异常,请稍后再试");
             }
           },
@@ -1526,10 +1724,11 @@ export default {
           if (res.code == 200) {
             this.$message.success("操作成功");
           } else {
+            console.log(res);
             this.$message.error("网络异常,请稍后再试");
           }
         } catch (error) {
-          // console.log(error);
+          console.log(error);
           this.$message.error("网络异常,请稍后再试");
         }
         this.getList();
@@ -1537,6 +1736,15 @@ export default {
         this.open = false;
       }
     },
+
+    // 去除多余字段
+    removeAutoField(result) {
+      result.addListMap.forEach((item) => {
+        this.theAutoField.forEach((field) => {
+          delete item[field];
+        });
+      });
+    },
     // 使用提交数据类型的按钮获取数据
     tempSubBtn(getData) {
       getData()
@@ -1776,10 +1984,11 @@ export default {
             if (res.code == 200) {
               this.$message.success(res.msg);
             } else {
+              console.error(res.msg);
               this.$message.error("网络异常,请稍后再试");
             }
           } catch (error) {
-            // console.log(error);
+            console.error(error);
             this.$message.error("网络异常,请稍后再试");
           }
         })