From bc4ee6130db80f8f2020bb3bb7248b6e55ae90cc Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 20 三月 2020 17:47:01 +0800
Subject: [PATCH] 2020-03-20

---
 src/tabviews/commontable/index.jsx |   41 +++++++++++++++++++++++++++--------------
 1 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/src/tabviews/commontable/index.jsx b/src/tabviews/commontable/index.jsx
index 0c235d6..ca5f5ff 100644
--- a/src/tabviews/commontable/index.jsx
+++ b/src/tabviews/commontable/index.jsx
@@ -143,7 +143,7 @@
       })
 
       config.columns = config.columns.filter(col => {
-        if (!col.field || !col.blacklist || col.blacklist.length === 0) return true
+        if (!col.field || !col.blacklist || col.blacklist.length === 0 || config.setting.primaryKey === col.field) return true
 
         let _black = col.blacklist.filter(v => {
           return this.props.permRoles.indexOf(v) !== -1
@@ -235,6 +235,13 @@
         }
       })
 
+      let valid = true // 鎼滅储鏉′欢蹇呭~楠岃瘉
+      config.search.forEach(field => {
+        if (field.required === 'true' && !field.initval) {
+          valid = false
+        }
+      })
+
       this.setState({
         loadingview: false,
         config: config,
@@ -247,10 +254,7 @@
         search: Utils.initMainSearch(config.search) // 鎼滅储鏉′欢鍒濆鍖栵紙鍚湁鏃堕棿鏍煎紡锛岄渶瑕佽浆鍖栵級
       }, () => {
         this.improveSearch()
-        if (config.setting.onload !== 'false') { // 鍒濆鍖栧彲鍔犺浇
-          this.setState({
-            loading: true
-          })
+        if (config.setting.onload !== 'false' && valid) { // 鍒濆鍖栧彲鍔犺浇
           this.loadmaindata()
         }
         this.setShortcut()
@@ -389,18 +393,29 @@
    * @description 涓昏〃鏁版嵁鍔犺浇
    */ 
   async loadmaindata () {
-    const { setting, BIDs } = this.state
+    const { setting, BIDs, search } = this.state
     let param = ''
+
+    let requireFields = search.filter(item => item.required && !item.value)
+
+    if (requireFields.length > 0) {
+      notification.warning({
+        top: 92,
+        message: this.state.dict['form.required.input'] + requireFields.map(item => item.label).join('銆�') + ' !',
+        duration: 3
+      })
+      return
+    }
+
+    this.setState({
+      loading: true
+    })
 
     if (setting.interType !== 'inner' || (setting.interType === 'inner' && setting.innerFunc)) {
       param = this.getCustomParam()
     } else {
       param = this.getDefaultParam()
     }
-
-    this.setState({
-      pickup: false
-    })
 
     this.handleTableId('mainTable', '', '')
 
@@ -417,6 +432,7 @@
         }),
         total: result.total,
         loading: false,
+        pickup: false,
         BIDs: {
           ...BIDs,
           mainTable: ''
@@ -547,7 +563,6 @@
 
     if (setting.onload === 'false') {
       this.setState({
-        loading: true,
         pageIndex: 1,
         search: searches,
         setting: {...setting, onload: 'true'}
@@ -558,7 +573,6 @@
       this.refs.mainTable.resetTable()
 
       this.setState({
-        loading: true,
         pageIndex: 1,
         search: searches
       }, () => {
@@ -580,7 +594,6 @@
     }
 
     this.setState({
-      loading: true,
       pageIndex: pagination.current,
       pageSize: pagination.pageSize,
       orderBy: (sorter.field && sorter.order) ? `${sorter.field} ${sorter.order}` : ''
@@ -595,7 +608,6 @@
   reloadtable = () => {
     this.refs.mainTable.resetTable()
     this.setState({
-      loading: true,
       pageIndex: 1
     }, () => {
       this.loadmaindata()
@@ -969,6 +981,7 @@
           {loadingview && <Spin size="large" />}
           {searchlist && searchlist.length > 0 ?
             <MainSearch
+              ref="mainSearch"
               dict={this.state.dict}
               searchlist={searchlist}
               refreshdata={this.refreshbysearch}

--
Gitblit v1.8.0