田源
2023-12-01 c71cca6babec17f4bdfa54f80aeaf4135e7440ef
Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
@@ -75,7 +75,7 @@
    // 表单类型(add, edit, detail)
    type: {
      type: String,
      default: "",
      default: "add",
    },
    // 自定义表单类型
    selfColumnType: {
@@ -106,6 +106,11 @@
  },
  data() {
    return {
      //年代号
      dataYearCode: {
        type: "",
        value: ""
      },
      filteredObject: {},
      filteredArray: [],
      isSeriesType: {},
@@ -139,7 +144,7 @@
      // 表单属性
      attributes: [],
      slotColumnList: [],
      isShow:null,
      isShow: "",
    };
  },
  mounted() {
@@ -170,12 +175,6 @@
      immediate: true,
      handler(newV) {
        this.$emit("getFormData", newV);
        // console.log("filteredObject",this.filteredObject)
        if (this.filteredObject.label === "系列号") {
          if (newV.isSeries === "false") {
            this.filteredObject.disabled = true;
          }
        }
      },
    },
    attrList: {
@@ -184,15 +183,6 @@
      handler(newVal, oldVal) {
        if (newVal) {
          this.$emit("attrList", newVal)
        }
      }
    },
    isSeriesType: {
      deep: true,
      immediate: true,
      handler(newVal, oldVal) {
        if (newVal) {
          this.$emit("isSeriesType", newVal)
        }
      }
    },
@@ -205,11 +195,22 @@
      deep: true,
      immediate: true
    },
    isShow: {
      handler(newV) {
        this.$emit("isShow", newV)
      }
    },
    dataYearCode: {
      deep:true,
      immediate:true,
      handler(newV) {
        this.$emit("dataYearCode", newV)
      }
    }
  },
  methods: {
    // 渲染表单模板
    templateRender(formItemList, TreeValue) {
      // debugger
      if (this.eventList) {
        this.eventFlag = this.eventList.some(item => {
          if (item.classifyInvokeEditFlag === 'true') {
@@ -224,18 +225,12 @@
      let dictKeys = [];
      let slotColumnList = [];
      formItemList.forEach((formItem) => {
        console.log('formItem',formItem);
        formItem = this.resetFormConfig(formItem);
        //属性码段规则
        if (formItem.secType === "codeattrsec") {
          this.attrList.push(formItem);
        }
        //系列号规则
        if (formItem.label === "系列号") {
          this.isSeriesType = formItem;
          // console.log("系列号",formItem)
        }
        //更改方式规则
        if (formItem.field === "codeStandardEditType") {
          if (this.status === "amend") {
            formItem.readOnly = true;
@@ -281,23 +276,29 @@
          formItem.fieldMap[formItem.field + 'id'] = 'id'
        }
        let columnItem = {
          change: (val) => {
            // console.log(val)
            if (val.column.field === "drawingno") {
              this.codeattrsecValue = val.value;
              return;
            }
            ;
            //是否系列-系列号
            if (val.column.field === "isSeries") {
              if (val.value === "false") {
                this.isShow = true;
              }else {
              } else {
                this.isShow = false;
              }
            }
            if (val.column.field === "releaseDate") {
              if (val.value) {
                this.dataYearCode.type = val.column.valueFormat;
                this.dataYearCode.value = val.value;
              } else {
                this.dataYearCode.type = "";
                this.dataYearCode.value = "";
              }
            }
          },
          dataKey: formItem.dataKey || formItem.field,
          label: formItem.text,
@@ -308,8 +309,7 @@
          field: formItem.field,
          type: this.columnType[formItem.type],
          dicData: this.getDataList(formItem.type, formItem.data),
          disabled: this.type === "detail" ? true : formItem.readOnly || (formItem.codeValueApplyStatus && formItem.codeValueApplyStatus == 2 ? true : false) ||
            (this.isShow && formItem.label === "系列号" ? true : false),
          disabled: this.type === "detail" ? true : formItem.readOnly || (formItem.codeValueApplyStatus && formItem.codeValueApplyStatus == 2 ? true : false),
          prepend: this.preOrSufFixShow("text", formItem.prefix),
          append: this.preOrSufFixShow("text", formItem.suffix),
          prefixIcon: this.preOrSufFixShow("icon", formItem.prefix),
@@ -317,15 +317,13 @@
          valueFormat: formItem.dateFormate || "yyyy-MM-dd HH:mm:ss",
          format: formItem.dateFormate,
          keyAttr: formItem.keyAttr,
          value: (formItem.dicData && formItem.dicData.length > 0 && formItem.secType == "codefixedsec" ? formItem.dicData[0].id : null) ||
          value:formItem.defaultValue || (formItem.dicData && formItem.dicData.length > 0 && formItem.secType == "codefixedsec" ? formItem.dicData[0].id : null) ||
            (formItem.secType == "codedatesec" ? formItem.codeDateValue : null) || (TreeValue && formItem.secType == "codelevelsec" ? TreeValue : null) ||
            (formItem.secType == "codeattrsec" ? this.add : null) || (this.status === "apply" && formItem.field === "codeStandardEditType" ? "1" : null) ||
            (formItem.field === "isSeries" ? "true" : null),
            (this.status === "amend" && formItem.field === "codeStandardEditType" ? "2" : null),
          placeholder: formItem.inputTip,
          comboxKey: formItem.comboxKey,
          tip: formItem.tooltips,
          // hidden:formItem.secType && formItem.codeValueApplyStatus == 3 ? true : false,
          // readonly:formItem.codeValueApplyStatus && formItem.codeValueApplyStatus == 2 ?true : false ,
          display: !formItem.hidden,
          maxlength: formItem.maxlength,
          filterable: true,
@@ -364,7 +362,6 @@
          },
        };
        this.filteredObject = columnItem
        // console.log("columnItem", columnItem)
        slotColumnList.push(columnItem);
        if (group.length === 0) {
          column.push(columnItem);
@@ -373,9 +370,7 @@
        }
      });
      // this.filteredArray = column.filter(obj => obj.label === "系列号");
      this.slotColumnList = slotColumnList;
      // console.log(slotColumnList)
      this.$set(this.option, "column", column);
      this.$set(this.option, "group", group);
      this.updateIndex++;
@@ -387,9 +382,12 @@
      this.getFormDetail();
    },
    //修改级联项
    changeChildItem(items, TreeValue) {
      let column = this.option.column;
      let group = this.option.group;
    changeChildItem(items, TreeValue, type) {
      type = type || "add"
      // let column = this.option.column;
      // let group = this.option.group;
      let column = [];
      let group = [];
      let that = this;
      items.forEach((item) => {
        let formItem = this.resetFormConfig(item);
@@ -412,9 +410,6 @@
          formItem.fieldMap[formItem.field + 'id'] = 'id'
        }
        let columnItem = {
          change: (val) => {
            // console.log('1', val)
          },
          label: formItem.text,
          labelslot: true,
          prop: this.$utilFunc.isValuableObj(formItem.referConfig)
@@ -423,7 +418,7 @@
          field: formItem.field,
          type: this.columnType[formItem.type],
          dicData: this.getDataList(formItem.type, formItem.data),
          disabled: this.type === "detail" ? true : formItem.readOnly || (formItem.codeValueApplyStatus && formItem.codeValueApplyStatus == 2 ? true : false),
          disabled: type === "detail" ? true : formItem.readOnly || (formItem.codeValueApplyStatus && formItem.codeValueApplyStatus == 2 ? true : false),
          prepend: this.preOrSufFixShow("text", formItem.prefix),
          append: this.preOrSufFixShow("text", formItem.suffix),
          prefixIcon: this.preOrSufFixShow("icon", formItem.prefix),
@@ -432,7 +427,9 @@
          format: formItem.dateFormate,
          keyAttr: formItem.keyAttr,
          value: (formItem.dicData && formItem.dicData.length > 0 && formItem.secType == "codefixedsec" ? formItem.dicData[0].id : null) ||
            (formItem.secType == "codedatesec" ? formItem.codeDateValue : null) || (TreeValue && formItem.secType == "codelevelsec" ? TreeValue : null),
            (formItem.secType == "codedatesec" ? formItem.codeDateValue : null) || (TreeValue && formItem.secType == "codelevelsec" ? TreeValue : null) ||
            (formItem.secType == "codeattrsec" ? this.add : null) || (this.status === "apply" && formItem.field === "codeStandardEditType" ? "1" : null)  ||
            (this.status === "amend" && formItem.field === "codeStandardEditType" ? "2" : null),
          placeholder: formItem.inputTip,
          comboxKey: formItem.comboxKey,
          tip: formItem.tooltips,
@@ -475,7 +472,6 @@
            value: "key",
          },
        };
        if (group.length === 0) {
          that.slotColumnList.forEach((colItem, index) => {
            if (colItem.field == columnItem.field) {
@@ -605,12 +601,16 @@
    // 获取表单详情数据
    getFormDetail() {
      if (this.type === "add") return;
      getFormDetail({templateOid: this.templateOid, oid: this.rowOid}).then(
        (res) => {
          this.form = Object.assign(this.form, res.data.data[0]);
          this.loading = false;
        }
      );
      if(this.templateOid){
        getFormDetail({templateOid: this.templateOid, oid: this.rowOid}).then(
          (res) => {
            this.form = Object.assign(this.form, res.data.data[0]);
            this.loading = false;
          }
        );
        return;
      }
    },
    setReferValue(data) {
      if (data.field) {