田源
2023-12-11 5f34ae74e13bb58a98e8003a47c63f0bea1c3eb8
Source/UBCS-WEB/src/components/FormTemplate/index.vue
@@ -17,6 +17,7 @@
      :TreeValue="TreeValue"
      :eventList="eventList"
      :rowOid="rowOid"
      :selectRow="selectRow"
      :status="status"
      :templateOid="templateOid"
      :type="type"
@@ -38,8 +39,10 @@
        <el-tab-pane v-if="showCodeApply" label="码值申请" name="codeApply">
          <FormTemplate
            key="codeApplyForm" ref="CodeApply"
            :selectRow="selectRow"
            :selfColumnConfig="selfColumnConfig"
            :selfColumnType="selfColumnType"
            :status="status"
            :type="type"
            data-key="codeApplyForm"
            secDTOListv-bind="$attrs"
@@ -139,6 +142,10 @@
      type: Object,
      default: () => ({}),
    },
    selectRow: {
      type: Array,
      default: []
    }
  },
  data() {
    return {
@@ -241,18 +248,12 @@
      },
    },
  },
  watch: {
    codeApplyForm: {
      handler(newval, oldval) {
        // console.log('newval',newval)
      }
    }
  },
  watch: {},
  methods: {
    openDialog() {
      //新增和修改共同调用
      //新增和修改共同调用(有改动 不需要在使用edit,方法没什么影响)
      this.getFormTemplate();
      if (this.type === "add" || (this.type !== "add" && this.status === "amend")) {
      if (this.type === "add") {
        this.getCodeRule();
        return;
      }
@@ -323,7 +324,7 @@
          that.secVOList = (res.data.data.secVOList || []).filter((item) =>
            typeList.includes(item.secType)
          );
          if (that.secVOList.length > 0 && that.type === "add" ||(that.type !== "add" &&  that.status === "amend")) {
          if (that.secVOList.length > 0 && that.type === "add" || (that.type !== "add" && that.status === "amend")) {
            that.showCodeApply = true;
            that.activeName = "codeApply";
@@ -358,7 +359,7 @@
        }
      })
      if (this.$refs.CodeApply) { // 添加一个判断语句,检查对象是否为undefined
        this.$refs.CodeApply.changeChildItem(this.secVOList, this.TreeValue, this.type);
        this.$refs.CodeApply.changeStatusItem(this.secVOList, this.TreeValue, this.type);
      }
    },
    //年代号
@@ -374,7 +375,7 @@
      });
      if (this.$refs.CodeApply) {
        this.$refs.CodeApply.changeChildItem(this.secVOList, this.TreeValue, this.type);
        this.$refs.CodeApply.changeStatusItem(this.secVOList, this.TreeValue, this.type);
      }
    },
    //属性码段赋值
@@ -413,90 +414,160 @@
      }
    },
    async submit() {
      // 进行表单校验
      const formValidate = await this.$refs.FormTemplate.validate();
      if (!formValidate) return;
      let codeValidate = true;
      // 进行码值申请校验
      // if (this.showCodeApply) {
      //   codeValidate = await this.$refs.CodeApply.validate();
      //   if (!codeValidate) {
      //     this.activeName = "codeApply";
      //     return false;
      //   }
      // }
      let resembleQueryList = [];
      if (this.showResembleQuery && this.$refs.resembleQueryRef) {
        // 进行相似项查询
        resembleQueryList = await this.$refs.resembleQueryRef.resembleQuery(
      if (this.status) {
        // 进行表单校验
        const formValidate = await this.$refs.FormTemplate.validate();
        if (!formValidate) return;
        let resembleQueryList = [];
        if (this.showResembleQuery && this.$refs.resembleQueryRef) {
          // 进行相似项查询
          resembleQueryList = await this.$refs.resembleQueryRef.resembleQuery(
            this.form
          );
        }
        if (resembleQueryList.length > 0) {
          await this.$confirm(
            `该物料已有${resembleQueryList.length}条相似数据,是否继续保存?`,
            "需要您确认",
            {
              confirmButtonText: "确定",
              cancelButtonText: "取消",
              type: "warning",
            }
          );
        }
        // 排除一些字段
        const noData = [
          "jiliangdwname",
          "materialtypeText",
          "morengongysname",
          "$caigouwl",
          "$xiaoshouwl",
          "$shifoupihaoguanli",
          "lcstatus_text",
          "hesuanfenleiname",
          "$kucunwl",
          "lastmodifier"
        ];
        let resForm = {};
        const {defaultValue, formValue} = this.getDefaultValueAndFormValues(
          this.form
        );
      }
      if (resembleQueryList.length > 0) {
        await this.$confirm(
          `该物料已有${resembleQueryList.length}条相似数据,是否继续保存?`,
          "需要您确认",
          {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning",
          }
        );
      }
      // 排除一些字段
      const noData = this.status ? [
        "jiliangdwname",
        "materialtypeText",
        "morengongysname",
        "$caigouwl",
        "$xiaoshouwl",
        "$shifoupihaoguanli",
        "lcstatus_text",
        "hesuanfenleiname",
        "$kucunwl",
        "lastmodifier"
      ] : [
        "jiliangdwname",
        "materialtypeText",
        "morengongysname",
        "$caigouwl",
        "$xiaoshouwl",
        "$shifoupihaoguanli",
        "lcstatus_text",
        "hesuanfenleiname",
        "$kucunwl",
        "oldcode",
        "lastmodifier"
      ];
        noData.forEach((item) => {
          this.$delete(formValue, item);
        });
        const keys = Object.keys(formValue);
        keys.forEach((item, index) => {
          keys.forEach((itm, idx) => {
            if ((item === ('$' + itm)) && idx !== index) {
              this.$delete(formValue, keys[index]);
            }
          })
        });
      let resForm = {};
      const {defaultValue, formValue} = this.getDefaultValueAndFormValues(
        this.form
      );
      noData.forEach((item) => {
        this.$delete(formValue, item);
      });
      const keys = Object.keys(formValue);
      keys.forEach((item, index) => {
        keys.forEach((itm, idx) => {
          if ((item === ('$' + itm)) && idx !== index) {
            this.$delete(formValue, keys[index]);
          }
        })
      });
      resForm.data = formValue;
      resForm = Object.assign({}, resForm, defaultValue);
      resForm.secDTOList = this.secVOList.map((item) => {
        return {
          secOid: item.oid,
          secValue: this.codeApplyForm[item.oid],
        resForm.data = formValue;
        resForm.data = Object.assign({}, resForm.data, defaultValue);
        resForm.secDTOList = this.secVOList.map((item) => {
          return {
            secOid: item.oid,
            secValue: this.codeApplyForm[item.oid],
          };
        });
        //标准特定字段映射
        const mappings = {
          codeStandardEditType: 'operationType',
          reviseSeries: 'series',
          oldcode: 'oldCode',
          releaseDate: 'releaseTime',
          isSeries: 'isEditseries'
        };
      });
      resForm.codeClassifyOid = this.codeClassifyOid;
      resForm.codeRuleOid = this.codeRuleOid;
      resForm.templateOid = this.templateOid;
      this.$emit("submit", resForm);
        for (const key in mappings) {
          if (formValue[key]) {
            resForm[mappings[key]] = formValue[key];
          }
        }
        //
        resForm.codeClassifyOid = this.codeClassifyOid;
        resForm.codeRuleOid = this.codeRuleOid;
        resForm.templateOid = this.templateOid;
        this.$emit("submit", resForm);
      } else {
        // 进行表单校验
        const formValidate = await this.$refs.FormTemplate.validate();
        if (!formValidate) return;
        let codeValidate = true;
        // 进行码值申请校验
        // if (this.showCodeApply) {
        //   codeValidate = await this.$refs.CodeApply.validate();
        //   if (!codeValidate) {
        //     this.activeName = "codeApply";
        //     return false;
        //   }
        // }
        let resembleQueryList = [];
        if (this.showResembleQuery && this.$refs.resembleQueryRef) {
          // 进行相似项查询
          resembleQueryList = await this.$refs.resembleQueryRef.resembleQuery(
            this.form
          );
        }
        if (resembleQueryList.length > 0) {
          await this.$confirm(
            `该物料已有${resembleQueryList.length}条相似数据,是否继续保存?`,
            "需要您确认",
            {
              confirmButtonText: "确定",
              cancelButtonText: "取消",
              type: "warning",
            }
          );
        }
        // 排除一些字段
        const noData = [
          "jiliangdwname",
          "materialtypeText",
          "morengongysname",
          "$caigouwl",
          "$xiaoshouwl",
          "$shifoupihaoguanli",
          "lcstatus_text",
          "hesuanfenleiname",
          "$kucunwl",
          "oldcode",
          "lastmodifier"
        ];
        let resForm = {};
        const {defaultValue, formValue} = this.getDefaultValueAndFormValues(
          this.form
        );
        noData.forEach((item) => {
          this.$delete(formValue, item);
        });
        const keys = Object.keys(formValue);
        keys.forEach((item, index) => {
          keys.forEach((itm, idx) => {
            if ((item === ('$' + itm)) && idx !== index) {
              this.$delete(formValue, keys[index]);
            }
          })
        });
        resForm.data = formValue;
        resForm = Object.assign({}, resForm, defaultValue);
        resForm.secDTOList = this.secVOList.map((item) => {
          return {
            secOid: item.oid,
            secValue: this.codeApplyForm[item.oid],
          };
        });
        resForm.codeClassifyOid = this.codeClassifyOid;
        resForm.codeRuleOid = this.codeRuleOid;
        resForm.templateOid = this.templateOid;
        this.$emit("submit", resForm);
      }
    },
    getDefaultValueAndFormValues(form) {
      let defaultValue = {};
@@ -568,7 +639,7 @@
        };
      } else if (item.secType == "coderefersec") {
        //引用码段
        params = JSON.parse(item.referValueInfo);
        params = JSON.parse(item.referValueInfo || item.referConfig);
      }
      return params;
    },