From f45b2ad61211cf2821cdaab07676c7906c96410a Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 05 七月 2023 18:23:56 +0800
Subject: [PATCH] 2023-07-05

---
 src/menu/transfer/index.jsx |  132 +++++++++++++++++++++++++------------------
 1 files changed, 76 insertions(+), 56 deletions(-)

diff --git a/src/menu/transfer/index.jsx b/src/menu/transfer/index.jsx
index 5409632..15e956a 100644
--- a/src/menu/transfer/index.jsx
+++ b/src/menu/transfer/index.jsx
@@ -8,8 +8,7 @@
 import Api from '@/api'
 import Utils from '@/utils/utils.js'
 import { getTables } from '@/utils/utils-custom.js'
-// import MKEmitter from '@/utils/events.js'
-import './index.scss'
+// import './index.scss'
 
 const { confirm } = Modal
 
@@ -30,6 +29,22 @@
     const _this = this
 
     if (!config.enabled) {
+      let tb = config.components[0]
+      if (config.components.length === 1 && tb.setting.interType === 'system' && !tb.setting.dataresource) {
+        confirm({
+          title: '褰撳墠椤甸潰灏嗘竻绌猴紝纭畾鍒囨崲涓鸿嚜瀹氫箟椤甸潰鍚楋紵',
+          content: '',
+          onOk() {
+            return new Promise(resolve => {
+              _this.execUpdate(resolve, true)
+            })
+          },
+          onCancel() {}
+        })
+
+        return
+      }
+
       notification.warning({
         top: 92,
         message: '鏈惎鐢ㄨ彍鍗曚笉鍙崌绾э紒',
@@ -50,7 +65,7 @@
     })
   }
 
-  execUpdate = (_resolve) => {
+  execUpdate = (_resolve, clear) => {
     let _config = fromJS(this.props.config).toJS()
     _config.permission = 'true'
     _config.Template = 'CustomPage'
@@ -60,23 +75,53 @@
     delete _config.autoMatic
 
     let useMSearch = false
-    _config.components.forEach((item, i) => {
-      if (item.type === 'tabs') {
-        item.name = '鏍囩缁�' + i
-        item.width = 24
-        item.subtype = 'tabs'
-        item.setting = {autoSwitch: 'false', blacklist: [], name: item.name, position: 'top', supModule: [], tabStyle: 'line', width: 24}
 
-        item.subtabs.forEach(tab => {
-          tab.components[0].subtype = 'normaltable'
-          tab.components[0].width = 24
-          tab.components[0].wrap.width = 24
-          tab.components[0].wrap.name = tab.components[0].name
-          if (tab.components[0].setting.useMSearch === 'true') {
-            useMSearch = true
-          }
-
-          tab.components[0].action.forEach(btn => {
+    if (clear) {
+      _config.components = []
+    } else {
+      _config.components.forEach((item, i) => {
+        if (item.type === 'tabs') {
+          item.name = '鏍囩缁�' + i
+          item.width = 24
+          item.subtype = 'tabs'
+          item.setting = {autoSwitch: 'false', blacklist: [], name: item.name, position: 'top', supModule: [], tabStyle: 'line', width: 24}
+  
+          item.subtabs.forEach(tab => {
+            tab.components[0].subtype = 'normaltable'
+            tab.components[0].width = 24
+            tab.components[0].wrap.width = 24
+            tab.components[0].wrap.name = tab.components[0].name
+            if (tab.components[0].setting.useMSearch === 'true') {
+              useMSearch = true
+            }
+  
+            tab.components[0].action.forEach(btn => {
+              if (btn.OpenType === 'popview' && btn.config) {
+                btn.config.Template = 'CustomPage'
+                if (btn.config.components[0]) {
+                  btn.config.components[0].subtype = 'normaltable'
+                }
+              }
+            })
+            tab.components[0].cols = tab.components[0].cols.filter(col => !(col.field && col.Hide === 'true'))
+            tab.components[0].cols.forEach(col => {
+              if (col.type !== 'custom') return
+              col.elements.forEach(btn => {
+                if (btn.OpenType === 'popview' && btn.config) {
+                  btn.config.Template = 'CustomPage'
+                  if (btn.config.components[0]) {
+                    btn.config.components[0].subtype = 'normaltable'
+                  }
+                }
+              })
+            })
+          })
+        } else {
+          item.subtype = 'normaltable'
+          item.width = 24
+          item.wrap.width = 24
+          item.wrap.name = item.name
+          item.action.forEach(btn => {
             if (btn.OpenType === 'popview' && btn.config) {
               btn.config.Template = 'CustomPage'
               if (btn.config.components[0]) {
@@ -84,8 +129,9 @@
               }
             }
           })
-          tab.components[0].cols.forEach(col => {
-            if (col.type !== 'action') return
+          item.cols = item.cols.filter(col => !(col.field && col.Hide === 'true'))
+          item.cols.forEach(col => {
+            if (col.type !== 'custom') return
             col.elements.forEach(btn => {
               if (btn.OpenType === 'popview' && btn.config) {
                 btn.config.Template = 'CustomPage'
@@ -95,33 +141,9 @@
               }
             })
           })
-        })
-      } else {
-        item.subtype = 'normaltable'
-        item.width = 24
-        item.wrap.width = 24
-        item.wrap.name = item.name
-        item.action.forEach(btn => {
-          if (btn.OpenType === 'popview' && btn.config) {
-            btn.config.Template = 'CustomPage'
-            if (btn.config.components[0]) {
-              btn.config.components[0].subtype = 'normaltable'
-            }
-          }
-        })
-        item.cols.forEach(col => {
-          if (col.type !== 'action') return
-          col.elements.forEach(btn => {
-            if (btn.OpenType === 'popview' && btn.config) {
-              btn.config.Template = 'CustomPage'
-              if (btn.config.components[0]) {
-                btn.config.components[0].subtype = 'normaltable'
-              }
-            }
-          })
-        })
-      }
-    })
+        }
+      })
+    }
 
     if (useMSearch) {
       let cell = {
@@ -139,6 +161,7 @@
       cell.wrap.advanceWidth = _config.components[0].wrap.advanceWidth || 1000
       cell.wrap.searchLwidth = _config.components[0].wrap.searchLwidth || 33.3
       cell.wrap.searchRatio = _config.components[0].wrap.searchRatio || 6
+      cell.wrap.resetContrl = _config.components[0].wrap.resetContrl || 'init'
       cell.wrap.show = _config.components[0].wrap.show || 'true'
       
       if (cell.wrap.advanceType === 'drawer') {
@@ -226,15 +249,14 @@
     Api.getSystemConfig(param).then(res => {
       _resolve()
       if (!res.status) {
-        notification.warning({
-          top: 92,
-          message: res.message,
-          duration: 5
+        Modal.warning({
+          title: res.message,
+          okText: '鐭ラ亾浜�'
         })
         return
       }
 
-      localStorage.setItem('menuUpdate', new Date().getTime())
+      localStorage.setItem('menuUpdate', new Date().getTime() + ',' + _config.uuid)
       notification.success({
         top: 92,
         message: '鍒囨崲鎴愬姛銆�',
@@ -254,9 +276,7 @@
 
   render() {
     return (
-      <div className="mk-replace-field" style={{display: 'inline-block'}}>
-        <Button className="mk-border-green" icon="retweet" onClick={this.trigger}>妯℃澘鍒囨崲</Button>
-      </div>
+      <Button className="mk-border-green" icon="retweet" onClick={this.trigger}>妯℃澘鍒囨崲</Button>
     )
   }
 }

--
Gitblit v1.8.0