From 4c6bdfe1f3557e49a315c1564bcb6164c0bc7faa Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 03 四月 2020 18:27:22 +0800
Subject: [PATCH] 2020-04-03

---
 src/templates/comtableconfig/index.jsx |  130 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 125 insertions(+), 5 deletions(-)

diff --git a/src/templates/comtableconfig/index.jsx b/src/templates/comtableconfig/index.jsx
index d8a4434..20b0da8 100644
--- a/src/templates/comtableconfig/index.jsx
+++ b/src/templates/comtableconfig/index.jsx
@@ -9,6 +9,7 @@
 
 import Api from '@/api'
 import Utils from '@/utils/utils.js'
+import options from '@/store/options.js'
 import zhCN from '@/locales/zh-CN/comtable.js'
 import enUS from '@/locales/en-US/comtable.js'
 import { getSearchForm, getActionForm, getColumnForm } from '@/templates/zshare/formconfig'
@@ -465,13 +466,79 @@
    */
   handleColumn = (card) => {
     const { menu } = this.props
-    
+
     if (card.type !== 'colspan') {
-      this.setState({
-        modaltype: 'columns',
-        card: card,
-        formlist: getColumnForm(card, menu.roleList)
+      let menulist = menu.fstMenuList.map(item => {
+        return {
+          value: item.MenuID,
+          label: item.text,
+          isLeaf: false
+        }
       })
+
+      if ((card.type === 'text' || card.type === 'number') && card.linkmenu && card.linkmenu.length > 0) {
+        let _param = {
+          func: 'sPC_Get_FunMenu',
+          ParentID: card.linkmenu[0],
+          systemType: options.systemType,
+          debug: 'Y'
+        }
+
+        this.setState({
+          loading: true
+        })
+    
+        Api.getSystemConfig(_param).then(result => {
+          if (result.status) {
+            menulist = menulist.map(item => {
+              if (item.value === card.linkmenu[0]) {
+                item.children = result.data.map(item => {
+                  let submenu = {
+                    value: item.ParentID,
+                    label: item.MenuNameP,
+                    children: item.FunMenu.map(cell => {
+                      return {
+                        value: cell.MenuID,
+                        label: cell.MenuName,
+                        MenuID: cell.MenuID,
+                        MenuName: cell.MenuName,
+                        MenuNo: cell.MenuNo,
+                        Ot: cell.Ot,
+                        PageParam: cell.PageParam,
+                        LinkUrl: cell.LinkUrl
+                      }
+                    })
+                  }
+
+                  submenu.children = submenu.children.filter(cell => cell.MenuID !== menu.MenuID)
+
+                  return submenu
+                })
+              }
+              return item
+            })
+          } else {
+            notification.warning({
+              top: 92,
+              message: result.message,
+              duration: 10
+            })
+          }
+
+          this.setState({
+            loading: false,
+            modaltype: 'columns',
+            card: card,
+            formlist: getColumnForm(card, menu.roleList, menulist)
+          })
+        })
+      } else {
+        this.setState({
+          modaltype: 'columns',
+          card: card,
+          formlist: getColumnForm(card, menu.roleList, menulist)
+        })
+      }
     } else {
       this.setState({
         modaltype: 'colspan',
@@ -632,13 +699,39 @@
           })
         }
 
+        let fieldrepet = false // 瀛楁閲嶅
+        let labelrepet = false // 鎻愮ず鏂囧瓧閲嶅
+
         let _search = config.search.map(item => {
+          if (item.uuid !== res.uuid && item.field === res.field) {
+            fieldrepet = true
+          } else if (item.uuid !== res.uuid && item.field && item.label === res.label) {
+            labelrepet = true
+          }
+
           if (item.uuid === res.uuid) {
             return res
           } else {
             return item
           }
         })
+
+        if (fieldrepet) {
+          notification.warning({
+            top: 92,
+            message: '瀛楁宸插瓨鍦紒',
+            duration: 10
+          })
+          return
+        } else if (labelrepet) {
+          notification.warning({
+            top: 92,
+            message: '鍚嶇О宸插瓨鍦紒',
+            duration: 10
+          })
+          return
+        }
+
         _search = _search.filter(item => !item.origin)
 
         this.setState({
@@ -821,13 +914,39 @@
       })
     } else if (modaltype === 'columns' || modaltype === 'colspan') {
       this.columnFormRef.handleConfirm().then(res => {
+        let fieldrepet = false // 瀛楁閲嶅
+        let labelrepet = false // 鎻愮ず鏂囧瓧閲嶅
+
         let _columns = config.columns.map(item => {
+          if (item.uuid !== res.uuid && item.field === res.field) {
+            fieldrepet = true
+          } else if (item.uuid !== res.uuid && item.field && item.label === res.label) {
+            labelrepet = true
+          }
+
           if (item.uuid === res.uuid) {
             return res
           } else {
             return item
           }
         })
+
+        if (fieldrepet) {
+          notification.warning({
+            top: 92,
+            message: '瀛楁宸插瓨鍦紒',
+            duration: 10
+          })
+          return
+        } else if (labelrepet) {
+          notification.warning({
+            top: 92,
+            message: '鍚嶇О宸插瓨鍦紒',
+            duration: 10
+          })
+          return
+        }
+        
         _columns = _columns.filter(item => !item.origin)
 
         this.setState({
@@ -3025,6 +3144,7 @@
           <ColumnForm
             dict={this.state.dict}
             card={this.state.card}
+            MenuID={this.props.menu.MenuID}
             inputSubmit={this.handleSubmit}
             formlist={this.state.formlist}
             wrappedComponentRef={(inst) => this.columnFormRef = inst}

--
Gitblit v1.8.0