From b24691f4e391e80607532fe66087bde015ee2dee Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 14 四月 2020 15:34:08 +0800
Subject: [PATCH] 2020-04-14

---
 src/views/printTemplate/index.jsx |   87 +++++++++++++++++++++++++++++++------------
 1 files changed, 62 insertions(+), 25 deletions(-)

diff --git a/src/views/printTemplate/index.jsx b/src/views/printTemplate/index.jsx
index 2a1e0dd..d7d3718 100644
--- a/src/views/printTemplate/index.jsx
+++ b/src/views/printTemplate/index.jsx
@@ -381,9 +381,19 @@
       _config.type = 'Template'
       _config.uuid = Utils.getuuid()
 
-      if (result.data && result.data[0] && result.data[0].TableName) {
-        this.loadFields(result.data[0].TableName)
+      let tables = []
+
+      if (result.data && result.data.length > 0) {
+        result.data.forEach(item => {
+          if (item.TableName) {
+            tables.push(item.TableName)
+          }
+        })
+
+        tables = Array.from(new Set(tables))
       }
+
+      this.loadFields(tables)
 
       this.handleResize()
       this.setState({
@@ -418,33 +428,66 @@
   /**
    * @description 鑾峰彇鍙敤瀛楁
    */
-  async loadFields (TBName) {
-    let param = {
-      func: 'sPC_Get_FieldName',
-      TBName: TBName
+  loadFields (tables) {
+    if (tables.length === 0) {
+      let _fields = [{
+        value: '',
+        text: '绌�',
+        type: ''
+      }, {
+        value: 'other_field',
+        text: '鍏朵粬',
+        type: ''
+      }]
+
+      this.setState({
+        fields: _fields
+      })
+      return
     }
 
-    let result = await Api.getCloudConfig(param)
-
-    if (result.status) {
+    let deffers = tables.map(name => {
+      return new Promise(resolve => {
+        Api.getSystemConfig({func: 'sPC_Get_FieldName', TBName: name}).then(res => {
+          resolve(res)
+        })
+      })
+    })
+    Promise.all(deffers).then(response => {
       let _fields = [{
         value: '',
         text: '绌�',
         type: ''
       }]
+      let error = null
       let _f = new Map()
-
-      result.FDName.forEach(item => {
-        if (item.FieldName && !_f.has(item.FieldName)) {
-          _f.set(item.FieldName, true)
-
-          _fields.push({
-            value: item.FieldName,
-            text: item.FieldDec + '(' + item.FieldName + ')',
-            type: item.FieldType
+      
+      response.forEach(res => {
+        if (res.status) {
+          res.FDName.forEach(item => {
+            if (item.FieldName && !_f.has(item.FieldName)) {
+              _f.set(item.FieldName, true)
+    
+              _fields.push({
+                value: item.FieldName,
+                text: item.FieldDec + '(' + item.FieldName + ')',
+                type: item.FieldType
+              })
+            }
           })
+        } else {
+          error = res
         }
       })
+
+      if (error) {
+        notification.warning({
+          top: 92,
+          message: error.ErrMesg,
+          duration: 10
+        })
+        return
+      }
 
       _fields.push({
         value: 'other_field',
@@ -455,13 +498,7 @@
       this.setState({
         fields: _fields
       })
-    } else {
-      notification.warning({
-        top: 92,
-        message: result.ErrMesg,
-        duration: 10
-      })
-    }
+    })
   }
 
   dropcard = (item) => {

--
Gitblit v1.8.0