From 888095418c902cc94693cba8b45f31bb79cdf818 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 28 二月 2020 01:31:46 +0800
Subject: [PATCH] 2020-02-28

---
 src/templates/formtabconfig/index.jsx |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 51 insertions(+), 9 deletions(-)

diff --git a/src/templates/formtabconfig/index.jsx b/src/templates/formtabconfig/index.jsx
index 064cd75..6eab791 100644
--- a/src/templates/formtabconfig/index.jsx
+++ b/src/templates/formtabconfig/index.jsx
@@ -83,11 +83,22 @@
     if (!config) {
       _config = JSON.parse(JSON.stringify(Source.baseConfig))
       _config.isAdd = true
-      if (menu && menu.LongParam && menu.LongParam.setting.dataresource) {
+      if (menu && menu.LongParam && menu.LongParam.setting) {
+        _config.setting.tableName = menu.LongParam.setting.tableName
+        _config.setting.primaryKey = menu.LongParam.setting.primaryKey
         _config.setting.dataresource = menu.LongParam.setting.dataresource
+        _config.setting.interType = menu.LongParam.setting.interType
+        _config.setting.interface = menu.LongParam.setting.interface
+        _config.setting.outerFunc = menu.LongParam.setting.outerFunc
+        _config.setting.innerFunc = menu.LongParam.setting.innerFunc
+        _config.setting.sysInterface = menu.LongParam.setting.sysInterface
       }
     } else {
       _config = config
+
+      if (menu && menu.LongParam && menu.LongParam.setting) {
+        _config.setting.primaryKey = menu.LongParam.setting.primaryKey
+      }
 
       _config.groups.forEach(group => {
         group.sublist.forEach(item => {
@@ -551,6 +562,14 @@
 
     if (modaltype === 'search') {
       this.modalFormRef.handleConfirm().then(res => {
+        if (config.setting.primaryKey && config.setting.primaryKey.toLowerCase() === res.field.toLowerCase()) {
+          notification.warning({
+            top: 92,
+            message: '琛ㄥ崟涓瓧娈靛悕涓嶅彲涓庝富閿噸澶嶏紒',
+            duration: 10
+          })
+          return
+        }
         if ( // 鏇存柊涓嬫媺瀛楀吀
           (res.type === 'select' || res.type === 'multiselect' || res.type === 'link') &&
           res.resourceType === '0' &&
@@ -1270,13 +1289,19 @@
       }
 
       // 瀛樺湪澶氫綑鐨勭┖琛ㄥ崟缁�
-      if (_config.groups.length > 1) {
-        _config.groups.forEach(group => {
-          if (group.sublist.length === 0) {
-            _config.enabled = false
-          }
-        })
-      }
+      let _ismutil = _config.groups.length > 1
+      let _primary = _config.setting.primaryKey ? _config.setting.primaryKey.toLowerCase() : ''
+
+      _config.groups.forEach(group => {
+        if (_ismutil && group.sublist.length === 0) {
+          _config.enabled = false
+        }
+        let arr = group.sublist.filter(item => item.field.toLowerCase() === _primary)
+
+        if (arr.length > 0) {
+          _config.enabled = false
+        }
+      })
 
       _config.funcs = [] // 椤甸潰鍙婂瓙椤甸潰瀛樺偍杩囩▼闆�
 
@@ -1928,13 +1953,24 @@
       })
     }
 
+    let _primary = config.setting.primaryKey ? config.setting.primaryKey.toLowerCase() : ''
+    let primaryrepeat = false
+
+    config.groups.forEach(group => {
+      let arr = group.sublist.filter(item => item.field.toLowerCase() === _primary)
+
+      if (arr.length > 0) {
+        primaryrepeat = true
+      }
+    })
+
     if (config.setting.datatype === 'query' && config.setting.interType === 'inner' && !config.setting.innerFunc && !config.setting.dataresource) {
       notification.warning({
         top: 92,
         message: '灏氭湭璁剧疆鏁版嵁婧愶紝涓嶅彲鍚敤锛�',
         duration: 10
       })
-    } else if (config.setting.datatype === 'query' && config.setting.primaryKey) {
+    } else if (config.setting.datatype === 'query' && !config.setting.primaryKey) {
       notification.warning({
         top: 92,
         message: '灏氭湭璁剧疆涓婚敭锛屼笉鍙惎鐢紒',
@@ -1952,6 +1988,12 @@
         message: '瀛樺湪澶氫綑绌鸿〃鍗曠粍锛屼笉鍙惎鐢紒',
         duration: 10
       })
+    } else if (primaryrepeat) {
+      notification.warning({
+        top: 92,
+        message: '琛ㄥ崟瀛楁涓庝富閿噸澶嶏紝涓嶅彲鍚敤锛�',
+        duration: 10
+      })
     } else {
       this.setState({
         config: {...config, enabled: !config.enabled}

--
Gitblit v1.8.0