From f267d04e0561a0a20d1f2a9f558a273558ece90d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 24 五月 2021 17:50:19 +0800
Subject: [PATCH] 2021-05-24

---
 src/tabviews/custom/components/table/normal-table/index.jsx |   53 +++++++++++++++++++++++++++++------------------------
 1 files changed, 29 insertions(+), 24 deletions(-)

diff --git a/src/tabviews/custom/components/table/normal-table/index.jsx b/src/tabviews/custom/components/table/normal-table/index.jsx
index da8380d..c147e6f 100644
--- a/src/tabviews/custom/components/table/normal-table/index.jsx
+++ b/src/tabviews/custom/components/table/normal-table/index.jsx
@@ -46,7 +46,6 @@
     pageSize: 10,         // 姣忛〉鏁版嵁鏉℃暟
     orderBy: '',          // 鎺掑簭
     search: '',           // 鎼滅储鏉′欢鏁扮粍锛屼娇鐢ㄦ椂闇�鍒嗗満鏅鐞�
-    statFields: [],       // 鍚堣瀛楁
     statFValue: []        // 鍚堣鍊�
   }
 
@@ -74,6 +73,7 @@
         item.key = index
         item.$$uuid = item[_config.setting.primaryKey] || ''
         item.$$BID = BID || ''
+        item.$Index = index + 1
         return item
       })
     }
@@ -119,6 +119,8 @@
       if (_config.setting.sync !== 'true' && _config.setting.onload === 'true') {
         this.loadmaindata()
         this.getStatFieldsValue()
+      } else if (_config.setting.onload === 'true') {
+        this.getStatFieldsValue()
       }
     })
   }
@@ -131,7 +133,6 @@
   async loadmaindata (reset, repage) {
     const { mainSearch } = this.props
     const { setting, config, arr_field, search, orderBy, BID, pageIndex, pageSize } = this.state
-    let requireFields = search.filter(item => item.required && (!item.value || item.value.length === 0))
 
     if (setting.supModule && !BID) { // BID 涓嶅瓨鍦ㄦ椂锛屼笉鍋氭煡璇�
       this.setState({
@@ -143,17 +144,6 @@
       reset && MKEmitter.emit('resetTable', config.uuid, repage) // 鍒楄〃閲嶇疆
       return
     }
-    if (requireFields.length > 0) {
-      let labels = requireFields.map(item => item.label)
-      labels = Array.from(new Set(labels))
-
-      notification.warning({
-        top: 92,
-        message: this.state.dict['form.required.input'] + labels.join('銆�') + ' !',
-        duration: 3
-      })
-      return
-    }
 
     let searches = fromJS(search).toJS()
     if (mainSearch && mainSearch.length > 0) { // 涓昏〃鎼滅储鏉′欢
@@ -163,6 +153,14 @@
           searches.push(item)
         }
       })
+    }
+
+    let requireFields = searches.filter(item => item.required && (!item.value || item.value.length === 0))
+    if (requireFields.length > 0) {
+      this.setState({
+        loading: false
+      })
+      return
     }
 
     this.setState({
@@ -181,11 +179,17 @@
       MKEmitter.emit('resetSelectLine', config.uuid, '', '') // 骞挎挱鏁版嵁鍒囨崲
       reset && MKEmitter.emit('resetTable', config.uuid, repage) // 鍒楄〃閲嶇疆
 
+      let start = 1
+      if (setting.laypage) {
+        start = pageSize * (pageIndex - 1) + 1
+      }
+
       this.setState({
         data: result.data.map((item, index) => {
           item.key = index
           item.$$uuid = item[setting.primaryKey] || ''
           item.$$BID = BID || ''
+          item.$Index = start + index
           return item
         }),
         selectedData: [],
@@ -244,6 +248,7 @@
           data = data.map(item => {
             if (item.$$uuid === _data.$$uuid) {
               _data.key = item.key
+              _data.$Index = item.$Index
               return _data
             } else {
               return item
@@ -282,7 +287,7 @@
    */
   getStatFieldsValue = () => {
     const { mainSearch } = this.props
-    const { setting, config, search, BID, orderBy, statFields } = this.state
+    const { setting, config, search, BID, orderBy } = this.state
 
     if (setting.supModule && !BID) { // BID 涓嶅瓨鍦ㄦ椂锛屼笉鍋氭煡璇�
       this.setState({
@@ -291,12 +296,7 @@
       return
     }
 
-    if (statFields.length === 0 || setting.interType !== 'system' || !setting.dataresource) return
-
-    let requireFields = search.filter(item => item.required && (!item.value || item.value.length === 0))
-    if (requireFields.length > 0) {
-      return
-    }
+    if (config.statFields.length === 0 || setting.interType !== 'system' || !setting.dataresource) return
 
     let searches = fromJS(search).toJS()
     if (mainSearch && mainSearch.length > 0) { // 涓昏〃鎼滅储鏉′欢
@@ -307,9 +307,13 @@
         }
       })
     }
+    let requireFields = searches.filter(item => item.required && (!item.value || item.value.length === 0))
+    if (requireFields.length > 0) {
+      return
+    }
 
     let _orderBy = orderBy || setting.order
-    let param = UtilsDM.getStatQueryDataParams(setting, statFields, searches, _orderBy, BID, this.props.menuType)
+    let param = UtilsDM.getStatQueryDataParams(setting, config.statFields, searches, _orderBy, BID, this.props.menuType)
 
     if (param.func === 'sPC_Get_TableData') {
       param.menuname = config.name || ''
@@ -321,7 +325,7 @@
         let values = []
 
         if (_data) {
-          statFields.forEach(item => {
+          config.statFields.forEach(item => {
             if (_data[item.field] || _data[item.field] === 0) {
               let val = +_data[item.field]
               if (isNaN(val)) {
@@ -506,13 +510,14 @@
         item.key = index
         item.$$uuid = item[config.setting.primaryKey] || ''
         item.$$BID = BID || ''
+        item.$Index = index + 1
         return item
       })
 
       this.setState({sync: false, data: _data})
     } else if (nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) {
       if (config.setting.syncRefresh === 'true') {
-        this.setState({}, () => {
+        this.setState({pageIndex: 1}, () => {
           this.reloadtable()
         })
       }
@@ -550,7 +555,7 @@
       <div className="custom-normal-table" style={config.style}>
         <NormalHeader config={config}/>
         {searchlist && searchlist.length ?
-          <MainSearch BID={BID} searchlist={searchlist} menuType={this.props.menuType} refreshdata={this.refreshbysearch}/> : null
+          <MainSearch BID={BID} setting={config.wrap} searchlist={searchlist} menuType={this.props.menuType} refreshdata={this.refreshbysearch}/> : null
         }
         <MainAction
           BID={BID}

--
Gitblit v1.8.0