From c71cca6babec17f4bdfa54f80aeaf4135e7440ef Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 01 十二月 2023 14:35:55 +0800
Subject: [PATCH] 主数据标准需求更改

---
 Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue |  233 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 149 insertions(+), 84 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
index f16ba65..e75483c 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
@@ -3,37 +3,37 @@
 <template>
   <div>
     <avue-form
-      v-model="form"
-      :option="option"
-      v-loading="loading"
-      ref="form"
-      :style="{ minHeight: loading ? '300px' : '' }"
       :key="updateIndex"
+      ref="form"
+      v-model="form"
+      v-loading="loading"
+      :option="option"
+      :style="{ minHeight: loading ? '300px' : '' }"
     >
-      <template :slot="item.prop + 'Label'" v-for="item in slotColumnList">
+      <template v-for="item in slotColumnList" :slot="item.prop + 'Label'">
         <span>
           <span>{{ item.label }} </span>
           <el-tooltip
             v-if="item.keyAttr"
             class="item"
-            effect="dark"
             content="璇ュ睘鎬т负鍏抽敭灞炴��"
+            effect="dark"
             placement="top-start"
           >
             <i class="el-icon-star-on key_attr_icon"></i>
           </el-tooltip>
         </span>
       </template>
-      <template :slot="item.prop + ''" v-for="item in slotColumnList">
+      <template v-for="item in slotColumnList" :slot="item.prop + ''">
         <vciWebRefer
-          :key="item.dataKey" :data-key="item.dataKey"
-          v-if="item.type == 'refer'"
-          :referConfig="item.referConfig || {}"
-          :value="form[item.referConfig.field] || item.value"
-          :text="form[item.referConfig.showField]"
+          v-if="item.type == 'refer'" :key="item.dataKey"
+          :data-key="item.dataKey"
           :disabled="item.disabled"
           :display="item.display"
+          :referConfig="item.referConfig || {}"
           :reloadData="item.referConfig.reloadData || false"
+          :text="form[item.referConfig.showField]"
+          :value="form[item.referConfig.field] || item.value"
           @setReferValue="setReferValue"
         ></vciWebRefer>
       </template>
@@ -42,12 +42,13 @@
 </template>
 
 <script>
-import { getFormDetail } from "@/api/formTemplate";
-import { getEnumDictionary } from "../../api/system/dict";
+import {getFormDetail} from "@/api/formTemplate";
+import {getEnumDictionary} from "../../api/system/dict";
 import vciWebRefer from "../refer/vciWebRefer.vue";
+
 export default {
   name: "FormTemplate",
-  components: { vciWebRefer },
+  components: {vciWebRefer},
   props: {
     // 榛樿绂佺敤鍏冪礌
     disabledProp: {
@@ -62,9 +63,9 @@
       type: String,
       default: "",
     },
-    LoadingStatus:{
+    LoadingStatus: {
       type: String,
-      default : "code"
+      default: "code"
     },
     // 鍒楄〃鏁版嵁oid
     rowOid: {
@@ -74,7 +75,7 @@
     // 琛ㄥ崟绫诲瀷锛坅dd, edit, detail锛�
     type: {
       type: String,
-      default: "",
+      default: "add",
     },
     // 鑷畾涔夎〃鍗曠被鍨�
     selfColumnType: {
@@ -91,21 +92,34 @@
       type: Number,
       default: 8,
     },
-    TreeValue:{
+    TreeValue: {
       type: String,
       default: "",
     },
-    eventList:{
-      type:Array
-    }
+    eventList: {
+      type: Array
+    },
+    status: {
+      type: String,
+      default: "",
+    },
   },
   data() {
     return {
-      add:'',
-      codeattrsecValue:'',
-      ValidataValue:false,
-      eventFlag:{},
-      TreeValueForm:'',
+      //骞翠唬鍙�
+      dataYearCode: {
+        type: "",
+        value: ""
+      },
+      filteredObject: {},
+      filteredArray: [],
+      isSeriesType: {},
+      attrList: [],
+      add: '',
+      codeattrsecValue: '',
+      ValidataValue: false,
+      eventFlag: {},
+      TreeValueForm: '',
       updateIndex: 0,
       form: {},
       option: {
@@ -130,6 +144,7 @@
       // 琛ㄥ崟灞炴��
       attributes: [],
       slotColumnList: [],
+      isShow: "",
     };
   },
   mounted() {
@@ -162,21 +177,42 @@
         this.$emit("getFormData", newV);
       },
     },
-    TreeValue:{
-      handler(newval,oldval){
-        if(newval){
-          this.TreeValueForm=newval;
+    attrList: {
+      deep: true,
+      immediate: true,
+      handler(newVal, oldVal) {
+        if (newVal) {
+          this.$emit("attrList", newVal)
+        }
+      }
+    },
+    TreeValue: {
+      handler(newval, oldval) {
+        if (newval) {
+          this.TreeValueForm = newval;
         }
       },
-      deep:true,
-      immediate:true
+      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) {
+    templateRender(formItemList, TreeValue) {
       if (this.eventList) {
-        this.eventFlag= this.eventList.some(item => {
+        this.eventFlag = this.eventList.some(item => {
           if (item.classifyInvokeEditFlag === 'true') {
             this.eventObject = item;
             return true;
@@ -190,6 +226,16 @@
       let slotColumnList = [];
       formItemList.forEach((formItem) => {
         formItem = this.resetFormConfig(formItem);
+        //灞炴�х爜娈佃鍒�
+        if (formItem.secType === "codeattrsec") {
+          this.attrList.push(formItem);
+        }
+        //绯诲垪鍙疯鍒�
+        if (formItem.field === "codeStandardEditType") {
+          if (this.status === "amend") {
+            formItem.readOnly = true;
+          }
+        }
         if (formItem.type === "line") {
           group.push({
             label: formItem.text,
@@ -205,7 +251,7 @@
           (!Array.isArray(formItem.dicData) || formItem.dicData.length === 0) &&
           (!Array.isArray(formItem.data) || formItem.data.length === 0)
         ) {
-          dictKeys.push({ dictKey: formItem.comboxKey, field: formItem.field });
+          dictKeys.push({dictKey: formItem.comboxKey, field: formItem.field});
         }
         // 绂佺敤閮ㄥ垎灞炴�э紙澶栭儴浼犲�肩鐢ㄥ拰鍙傜収绂佺敤锛�
         if (this.disabledProp.includes(formItem.field)) {
@@ -222,23 +268,39 @@
           message = "璇疯緭鍏�";
           trigger = "blur";
         }
-        let fieldMapKey=''
-        if( formItem.type == "refer" && !formItem.fieldMap){
-          fieldMapKey=formItem.field+'Id'
-          formItem.fieldMap={}
-          formItem.fieldMap[fieldMapKey]='id'
-          formItem.fieldMap[formItem.field+'id']='id'
+        let fieldMapKey = ''
+        if (formItem.type == "refer" && !formItem.fieldMap) {
+          fieldMapKey = formItem.field + 'Id'
+          formItem.fieldMap = {}
+          formItem.fieldMap[fieldMapKey] = 'id'
+          formItem.fieldMap[formItem.field + 'id'] = 'id'
         }
 
-
         let columnItem = {
-          change:(val)=>{
-            if(val.column.field === "drawingno"){
-              this.codeattrsecValue=val.value;
+          change: (val) => {
+            if (val.column.field === "drawingno") {
+              this.codeattrsecValue = val.value;
+              return;
             }
-            // console.log(this.codeattrsecValue)
+            //鏄惁绯诲垪-绯诲垪鍙�
+            if (val.column.field === "isSeries") {
+              if (val.value === "false") {
+                this.isShow = true;
+              } 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,
+          dataKey: formItem.dataKey || formItem.field,
           label: formItem.text,
           labelslot: true,
           prop: this.$utilFunc.isValuableObj(formItem.referConfig)
@@ -247,22 +309,21 @@
           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: 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 || "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) ||
-            (formItem.secType == "codedatesec" ? formItem.codeDateValue: null) || ( TreeValue && formItem.secType == "codelevelsec" ? TreeValue : null) ||
-            (formItem.secType == "codeattrsec" ? this.add : 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) ||
+            (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,
@@ -272,7 +333,7 @@
                 title: formItem.text,
                 showField: formItem.showField || formItem.field,
                 field: formItem.field,
-                fieldMap:formItem.fieldMap || {},
+                fieldMap: formItem.fieldMap || {},
                 placeholder: formItem.inputTip,
                 options: formItem.referConfig
               }
@@ -300,8 +361,7 @@
             value: "key",
           },
         };
-        // console.log('formItem',formItem)
-        // console.log('columnItem',columnItem)
+        this.filteredObject = columnItem
         slotColumnList.push(columnItem);
         if (group.length === 0) {
           column.push(columnItem);
@@ -309,6 +369,7 @@
           group[group.length - 1]["column"].push(columnItem);
         }
       });
+
       this.slotColumnList = slotColumnList;
       this.$set(this.option, "column", column);
       this.$set(this.option, "group", group);
@@ -319,13 +380,15 @@
 
       this.geDictData(dictKeys);
       this.getFormDetail();
-
     },
     //淇敼绾ц仈椤�
-    changeChildItem(items,TreeValue) {
-      let column = this.option.column;
-      let group = this.option.group;
-      let that=this;
+    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);
         if (formItem.field == "lcstatus") {
@@ -347,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)
@@ -358,16 +418,18 @@
           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),
           suffixIcon: this.preOrSufFixShow("icon", formItem.suffix),
-          valueFormat: formItem.dateFormate,
+          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) ||
-            (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,
@@ -410,9 +472,8 @@
             value: "key",
           },
         };
-
         if (group.length === 0) {
-          that.slotColumnList.forEach((colItem,index) => {
+          that.slotColumnList.forEach((colItem, index) => {
             if (colItem.field == columnItem.field) {
               that.slotColumnList[index] = columnItem;
               column[index] = columnItem;
@@ -420,14 +481,14 @@
             }
           })
         } else {
-          that.slotColumnList.forEach((colItem,index) => {
+          that.slotColumnList.forEach((colItem, index) => {
             if (colItem.field == columnItem.field) {
               that.slotColumnList[index] = columnItem;
               return;
             }
           })
-          group.forEach((groupItem,index) => {
-            groupItem.column.forEach((colItem,colIndex) => {
+          group.forEach((groupItem, index) => {
+            groupItem.column.forEach((colItem, colIndex) => {
               if (colItem.field == columnItem.field) {
                 group[index].column[colIndex] = columnItem;
                 return;
@@ -506,7 +567,7 @@
     // 寮傛鑾峰彇瀛楀吀鏁版嵁
     geDictData(dictKeys) {
       dictKeys.forEach((dictObj) => {
-        getEnumDictionary({ code: dictObj.dictKey }).then((res) => {
+        getEnumDictionary({code: dictObj.dictKey}).then((res) => {
           if (res.data && res.data.code === 200) {
             this.option.column = this.option.column.map((item) => {
               if (item.field === dictObj.field) {
@@ -530,7 +591,7 @@
           if (valid) {
             done();
             resolve(true);
-            this.ValidataValue=true;
+            this.ValidataValue = true;
           } else {
             resolve(false);
           }
@@ -540,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) {
@@ -569,7 +634,7 @@
                 if (mapField.indexOf("attribute.") > -1) {
                   temp = _item['attributes'][mapField.subString("attribute.".length)] || _item['attributes']['data'][mapField.subString("attribute.".length)];
                 } else {
-                  temp = _item['attributes'][mapField] ||_item['attributes']['data'][mapField] || _item[mapField];
+                  temp = _item['attributes'][mapField] || _item['attributes']['data'][mapField] || _item[mapField];
                 }
               } else {
                 //鏈夊涓�

--
Gitblit v1.9.3