ludc
2023-09-15 d370c5b1f2c33f8599db7ece89b484613b594f60
Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
@@ -84,10 +84,15 @@
    trendsSpan: {
      type: Number,
      default: 8,
    }
    },
    TreeValue:{
      type: String,
      default: "",
    },
  },
  data() {
    return {
      TreeValueForm:'',
      updateIndex: 0,
      form: {},
      option: {
@@ -114,7 +119,7 @@
      slotColumnList: [],
    };
  },
  mounted() {
    mounted() {
    this.handleResize();
  },
  computed: {
@@ -126,17 +131,40 @@
        return 24 / Math.floor(windowWidth / 500);
      }
    },
  },
  watch: {
    // 表单数据修改反馈到父组件
    form: {
      deep: true,
      immediate: true,
      handler(newV) {
        this.$emit("getFormData", newV);
      },
    },
    TreeValue:{
      handler(newval,oldval){
        if(newval){
          this.TreeValueForm=newval;
          // console.log(this.TreeValueForm)
        }
      },
      deep:true,
      immediate:true
    }
  },
  methods: {
    // 渲染表单模板
    templateRender(formItemList) {
    templateRender(formItemList,TreeValue) {
      // 无需分组数据
      let column = [];
      let group = [];
      let dictKeys = [];
      let slotColumnList = [];
      let value=''
      formItemList.forEach((formItem) => {
        formItem = this.resetFormConfig(formItem);
        // console.log('formItem.dicData.value',formItem.dicData)
        if (formItem.type === "line") {
          group.push({
            label: formItem.text,
@@ -184,18 +212,21 @@
          field: formItem.field,
          type: this.columnType[formItem.type],
          dicData: this.getDataList(formItem.type, formItem.data),
          disabled: this.type === "detail" ? true : formItem.readOnly,
          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),
          suffixIcon: this.preOrSufFixShow("icon", formItem.suffix),
          valueFormat: formItem.dateFormate,
          valueFormat:formItem.dateFormate,
          format: formItem.dateFormate,
          keyAttr: formItem.keyAttr,
          value: formItem.defaultValue,
          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),
          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,
@@ -206,7 +237,6 @@
                  showField: formItem.showField || formItem.field,
                  field: formItem.field,
                  fieldMap:formItem.fieldMap || {fieldMapKey:'id'},
                  placeholder: formItem.inputTip,
                  options: formItem.referConfig
                }
@@ -234,7 +264,9 @@
            value: "key",
          },
        };
        // console.log('columnItem',columnItem)
        slotColumnList.push(columnItem);
        // console.log('slotColumnList',slotColumnList)
        if (group.length === 0) {
          column.push(columnItem);
        } else {
@@ -251,9 +283,12 @@
      this.geDictData(dictKeys);
      this.getFormDetail();
      // console.log('selfColumnConfig',this.selfColumnConfig)
    },
    // 使用传入的表单数据配置
    resetFormConfig(formItem) {
      // console.log(this.selfColumnConfig)
      for (const configType in this.selfColumnConfig) {
        if (Object.hasOwnProperty.call(this.selfColumnConfig, configType)) {
          const element = this.selfColumnConfig[configType];
@@ -269,6 +304,9 @@
              if (Object.hasOwnProperty.call(element, newAttr)) {
                const oldAttr = element[newAttr];
                formItem[newAttr] = formItem[oldAttr];
                // console.log(formItem)
                // console.log(newAttr,oldAttr)
                // console.log(formItem[newAttr],formItem[oldAttr])
              }
            }
          } else if (configType === "directVoluation") {
@@ -359,6 +397,7 @@
      );
    },
    setReferValue(data) {
      // console.log(data)
      if (data.field) {
        this.form[data.field] = data.value || "";
        this.form[data.showField] = data.text || "";
@@ -401,16 +440,6 @@
        this.$emit("getFormData", this.form);
        this.$emit("referConfigDataUpdate", data);
      }
    },
  },
  watch: {
    // 表单数据修改反馈到父组件
    form: {
      deep: true,
      immediate: true,
      handler(newV) {
        this.$emit("getFormData", newV);
      },
    },
  },
};