From b15a4427ee710576dbdcc4ed932b38f1b47257e3 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期日, 19 一月 2020 17:48:34 +0800
Subject: [PATCH] 2020-01-19

---
 src/tabviews/tableshare/mutilform/index.jsx  |   31 ++++------
 src/tabviews/formtab/index.jsx               |   16 +----
 src/tabviews/subtable/index.jsx              |   16 +----
 src/tabviews/subtabtable/index.jsx           |   16 +----
 src/tabviews/commontable/index.jsx           |   16 +----
 src/utils/utils.js                           |   38 ++++++------
 src/tabviews/tableshare/actionList/index.jsx |   18 +-----
 7 files changed, 47 insertions(+), 104 deletions(-)

diff --git a/src/tabviews/commontable/index.jsx b/src/tabviews/commontable/index.jsx
index 553275c..699a2b3 100644
--- a/src/tabviews/commontable/index.jsx
+++ b/src/tabviews/commontable/index.jsx
@@ -223,24 +223,14 @@
       }
 
       if (item.resourceType === '1' && item.dataSource) {
-        let arrfield = item.valueField + ',' + item.valueText
-
-        if (item.valueField === item.valueText) { // value 涓� text 瀛楁鐩稿悓鏃�
-          arrfield = item.valueField
-        }
-
-        if (item.type === 'link') {
-          arrfield = arrfield + ',' + item.linkField
-        }
-
-        let _sql = Utils.getSelectQuerySql(item)
-        _sql = Utils.formatOptions(_sql)
+        let _option = Utils.getSelectQueryOptions(item)
+        let _sql = Utils.formatOptions(_option.sql)
 
         let param = {
           func: 'sPC_Get_SelectedList',
           LText: _sql,
           obj_name: 'data',
-          arr_field: arrfield
+          arr_field: _option.field
         }
 
         param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
diff --git a/src/tabviews/formtab/index.jsx b/src/tabviews/formtab/index.jsx
index 5220a23..c63349d 100644
--- a/src/tabviews/formtab/index.jsx
+++ b/src/tabviews/formtab/index.jsx
@@ -221,24 +221,14 @@
       }
 
       if (item.resourceType === '1' && item.dataSource) {
-        let arrfield = item.valueField + ',' + item.valueText
-
-        if (item.valueField === item.valueText) { // value 涓� text 瀛楁鐩稿悓鏃�
-          arrfield = item.valueField
-        }
-
-        if (item.type === 'link') {
-          arrfield = arrfield + ',' + item.linkField
-        }
-
-        let _sql = Utils.getSelectQuerySql(item)
-        _sql = Utils.formatOptions(_sql)
+        let _option = Utils.getSelectQueryOptions(item)
+        let _sql = Utils.formatOptions(_option.sql)
 
         let param = {
           func: 'sPC_Get_SelectedList',
           LText: _sql,
           obj_name: 'data',
-          arr_field: arrfield
+          arr_field: _option.field
         }
 
         param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
diff --git a/src/tabviews/subtable/index.jsx b/src/tabviews/subtable/index.jsx
index 102e3cd..0868e5a 100644
--- a/src/tabviews/subtable/index.jsx
+++ b/src/tabviews/subtable/index.jsx
@@ -200,24 +200,14 @@
       }
 
       if (item.resourceType === '1' && item.dataSource) {
-        let arrfield = item.valueField + ',' + item.valueText
-
-        if (item.valueField === item.valueText) { // value 涓� text 瀛楁鐩稿悓鏃�
-          arrfield = item.valueField
-        }
-
-        if (item.type === 'link') {
-          arrfield = arrfield + ',' + item.linkField
-        }
-
-        let _sql = Utils.getSelectQuerySql(item)
-        _sql = Utils.formatOptions(_sql)
+        let _option = Utils.getSelectQueryOptions(item)
+        let _sql = Utils.formatOptions(_option.sql)
 
         let param = {
           func: 'sPC_Get_SelectedList',
           LText: _sql,
           obj_name: 'data',
-          arr_field: arrfield
+          arr_field: _option.field
         }
 
         param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
diff --git a/src/tabviews/subtabtable/index.jsx b/src/tabviews/subtabtable/index.jsx
index 20c3383..9f0f795 100644
--- a/src/tabviews/subtabtable/index.jsx
+++ b/src/tabviews/subtabtable/index.jsx
@@ -177,24 +177,14 @@
       }
 
       if (item.resourceType === '1' && item.dataSource) {
-        let arrfield = item.valueField + ',' + item.valueText
-
-        if (item.valueField === item.valueText) { // value 涓� text 瀛楁鐩稿悓鏃�
-          arrfield = item.valueField
-        }
-        
-        if (item.type === 'link') {
-          arrfield = arrfield + ',' + item.linkField
-        }
-
-        let _sql = Utils.getSelectQuerySql(item)
-        _sql = Utils.formatOptions(_sql)
+        let _option = Utils.getSelectQueryOptions(item)
+        let _sql = Utils.formatOptions(_option.sql)
 
         let param = {
           func: 'sPC_Get_SelectedList',
           LText: _sql,
           obj_name: 'data',
-          arr_field: arrfield
+          arr_field: _option.field
         }
 
         param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
diff --git a/src/tabviews/tableshare/actionList/index.jsx b/src/tabviews/tableshare/actionList/index.jsx
index a688782..31a2425 100644
--- a/src/tabviews/tableshare/actionList/index.jsx
+++ b/src/tabviews/tableshare/actionList/index.jsx
@@ -753,26 +753,14 @@
     }
 
     let deffers = subfields.map(item => {
-      let arrfield = item.valueField + ',' + item.valueText
-
-      if (item.valueField === item.valueText) { // value 涓� text 瀛楁鐩稿悓鏃�
-        arrfield = item.valueField
-      }
-
-      if (item.type === 'link') {
-        arrfield = arrfield + ',' + item.linkField
-      } else if (item.type === 'select' && item.linkSubField && item.linkSubField.length > 0) {
-        arrfield = arrfield + ',' + item.linkSubField.join(',')
-      }
-
-      let _sql = Utils.getSelectQuerySql(item)
-      _sql = Utils.formatOptions(_sql)
+      let _option = Utils.getSelectQueryOptions(item)
+      let _sql = Utils.formatOptions(_option.sql)
 
       let param = {
         func: 'sPC_Get_SelectedList',
         LText: _sql,
         obj_name: 'data',
-        arr_field: arrfield
+        arr_field: _option.field
       }
 
       param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000'
diff --git a/src/tabviews/tableshare/mutilform/index.jsx b/src/tabviews/tableshare/mutilform/index.jsx
index d5c2616..90be271 100644
--- a/src/tabviews/tableshare/mutilform/index.jsx
+++ b/src/tabviews/tableshare/mutilform/index.jsx
@@ -201,15 +201,15 @@
     })
   }
 
-  handleInputNumber = (rule, value, callback, item) => {
-    if (item.required === 'true' && (!value && value !== 0)) {
-      callback()
-    } else if ((item.min || item.min === 0) && (value || value === 0) && value < item.min) {
-      callback(item.label + '鏈�灏忓�间负' + item.min + '!')
-    } else if ((item.max || item.max === 0) && (value || value === 0) && value > item.max) {
-      callback(item.label + '鏈�澶у�间负' + item.max + '!')
-    }
-  }
+  // handleInputNumber = (rule, value, callback, item) => {
+  //   if (item.required === 'true' && (!value && value !== 0)) {
+  //     callback(this.props.dict['form.required.input'] + item.label + '!')
+  //   } else if ((item.min || item.min === 0) && (value || value === 0) && value < item.min) {
+  //     callback(item.label + '鏈�灏忓�间负' + item.min + '!')
+  //   } else if ((item.max || item.max === 0) && (value || value === 0) && value > item.max) {
+  //     callback(item.label + '鏈�澶у�间负' + item.max + '!')
+  //   }
+  // }
 
   getFields() {
     const { getFieldDecorator } = this.props.form
@@ -257,13 +257,7 @@
         let max = (item.max || item.max === 0) ? item.max : Infinity
         let _initval = item.initval
         let precision = (item.decimal || item.decimal === 0) ? item.decimal : null
-        let rules = []
-        if ((item.min || item.min === 0) || (item.max || item.max === 0)) {
-          rules.push({
-            validator: (rule, value, callback) => {this.handleInputNumber(rule, value, callback, item)}
-          })
-        }
-        
+
         fields.push(
           <Col span={24 / cols} key={index}>
             <Form.Item label={item.label}>
@@ -273,8 +267,7 @@
                   {
                     required: item.required === 'true',
                     message: this.props.dict['form.required.input'] + item.label + '!'
-                  },
-                  ...rules
+                  }
                 ]
               })(
                 precision === null ?
@@ -289,7 +282,7 @@
         if (item.linkSubField && item.linkSubField.length > 0) { // 瀛樺湪鍏宠仈瀛楁锛屾暟鎹瓨鍌�
           hasSubField = true
         }
-
+        
         fields.push(
           <Col span={24 / cols} key={index}>
             <Form.Item label={item.label}>
diff --git a/src/utils/utils.js b/src/utils/utils.js
index f4c00ea..0355853 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -405,37 +405,39 @@
   }
 
   /**
-   * @description 鑾峰彇涓嬫媺鎼滅储鏌ヨsql
+   * @description 鑾峰彇涓嬫媺鎼滅储鏌ヨ鏉′欢
    * @return {String} item   鎼滅储鏉′欢淇℃伅
    */
-  static getSelectQuerySql (item) {
+  static getSelectQueryOptions (item) {
+    let arrfield = [item.valueField, item.valueText]
+
+    if (item.type === 'link') {
+      arrfield.push(item.linkField)
+    } else if (item.type === 'select' && item.linkSubField && item.linkSubField.length > 0) {
+      arrfield.push(...item.linkSubField)
+    }
+
+    arrfield = Array.from(new Set(arrfield))
+
     let _datasource = item.dataSource
     let sql = ''
-    let _field = item.valueField + ',' + item.valueText
-
-    if (item.valueField === item.valueText) {
-      _field = item.valueField
-    }
 
     if (/\s/.test(_datasource)) { // 鎷兼帴鍒悕
       _datasource = '(' + _datasource + ') tb'
     }
 
-    if (item.type === 'link') {
-      sql = 'select ' + _field + ',' + item.linkField + ' from ' + _datasource
-    } else {
-      let _linkSubField = '' // 涓嬫媺鑿滃崟鍏宠仈琛ㄥ崟
-      if (item.linkSubField && item.linkSubField.length > 0) {
-        _linkSubField = ',' + item.linkSubField.join(',')
-      }
-      sql = 'select ' + _field + _linkSubField + ' from ' + _datasource
-    }
+    arrfield = arrfield.join(',')
 
     if (item.orderBy) {
-      sql = sql + ' order by ' + item.orderBy + ' ' + item.orderType
+      sql = 'select distinct ' + arrfield + ',' + item.orderBy + ' as orderfield from ' + _datasource + ' order by orderfield ' + item.orderType
+    } else {
+      sql = 'select distinct ' + arrfield + ' from ' + _datasource
     }
 
-    return sql
+    return {
+      sql: sql,
+      field: arrfield
+    }
   }
 
   /**

--
Gitblit v1.8.0