From c14fedd8903487457ad0911e8afab47670be754e Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期二, 29 八月 2023 22:15:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue |   51 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 46 insertions(+), 5 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
index b53cf1a..ee649ed 100644
--- a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
+++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue
@@ -84,7 +84,7 @@
     trendsSpan: {
       type: Number,
       default: 8,
-    },
+    }
   },
   data() {
     return {
@@ -130,7 +130,6 @@
   methods: {
     // 娓叉煋琛ㄥ崟妯℃澘
     templateRender(formItemList) {
-      console.log(formItemList, "formItemList");
       // 鏃犻渶鍒嗙粍鏁版嵁
       let column = [];
       let group = [];
@@ -170,6 +169,12 @@
           message = "璇疯緭鍏�";
           trigger = "blur";
         }
+        let fieldMapKey=''
+        if( formItem.type == "refer"){
+          if(!formItem.fieldMap){
+            fieldMapKey=formItem.field+'Id'
+          }
+        }
         let columnItem = {
           label: formItem.text,
           labelslot: true,
@@ -200,8 +205,9 @@
                   title: formItem.text,
                   showField: formItem.showField || formItem.field,
                   field: formItem.field,
+                  fieldMap:formItem.fieldMap || {fieldMapKey:'id'},
                   placeholder: formItem.inputTip,
-                  options: formItem.referConfig,
+                  options: formItem.referConfig
                 }
               : {},
           span: formItem.span
@@ -212,7 +218,7 @@
           rules: [
             {
               required: formItem.required,
-              message: `璇�${message}${formItem.text}`,
+              message: `${message}${formItem.text}`,
               trigger,
             },
             {
@@ -235,7 +241,6 @@
         }
       });
       this.slotColumnList = slotColumnList;
-      console.log(column, "column");
       this.$set(this.option, "column", column);
       this.$set(this.option, "group", group);
       this.updateIndex++;
@@ -356,6 +361,42 @@
       if (data.field) {
         this.form[data.field] = data.value || "";
         this.form[data.showField] = data.text || "";
+        if (data.fieldMap) {
+          //璇存槑闇�瑕佹槧灏�
+          for (let key in data.fieldMap) {
+            let mapFields = data.fieldMap[key].split(",");
+            let value = [];
+            data.rawData.forEach(_item => {
+              var temp;
+              if (!_item.attributes) {
+                _item.attributes = _item;
+              }
+              if (mapFields.length == 1) {
+                var mapField = mapFields[0];
+                if (mapField.indexOf("attribute.") > -1) {
+                  temp = _item['attributes'][mapField.subString("attribute.".length)];
+                } else {
+                  temp = _item['attributes'][mapField] || _item[mapField];
+                }
+              } else {
+                //鏈夊涓�
+                var mutiTemp = [];
+                layui.each(mapFields, function (_indexField, _itemField) {
+                  if (_itemField.indexOf("attribute.") > -1) {
+                    mutiTemp.push(_item['attributes'][_itemField.subString("attribute.".length)]);
+                  } else {
+                    mutiTemp.push(_item['attributes'][_itemField] || _item[_itemField]);
+                  }
+                });
+                temp = mutiTemp.join(' ');
+              }
+              if (temp != null && temp != '') {
+                value.push(temp);
+              }
+            })
+            this.form[key] = value.join(',');
+          }
+        }
         this.$emit("getFormData", this.form);
         this.$emit("referConfigDataUpdate", data);
       }

--
Gitblit v1.9.3