From f393af9623c26ae177a3f69b8676afc4e23bff8d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 08 二月 2022 14:48:51 +0800
Subject: [PATCH] 2022-02-08

---
 src/mob/components/navbar/normal-navbar/index.jsx       |    1 
 src/templates/zshare/editTable/index.jsx                |    2 
 src/menu/components/timeline/normal-timeline/index.jsx  |    1 
 src/menu/components/card/table-card/index.jsx           |    1 
 src/mob/components/tabs/antv-tabs/index.jsx             |   19 +
 src/mob/mobshell/index.jsx                              |    8 +
 src/utils/utils-custom.js                               |   29 ++++
 src/menu/datasource/index.jsx                           |   96 ++++--------
 src/menu/components/chart/antv-scatter/index.jsx        |    1 
 src/menu/components/tabs/tabcomponents/index.jsx        |   18 +-
 src/menu/components/tree/antd-tree/index.jsx            |    1 
 src/menu/menushell/card.jsx                             |    6 
 src/views/mobdesign/index.jsx                           |    9 +
 src/templates/zshare/editTable/index.scss               |    3 
 src/menu/datasource/verifycard/index.jsx                |   15 +
 src/templates/zshare/modalform/datatable/index.jsx      |   19 ++
 src/menu/components/form/tab-form/index.jsx             |    1 
 src/mob/components/menubar/normal-menubar/index.jsx     |    1 
 src/pc/menushell/card.jsx                               |    7 
 src/menu/components/carousel/prop-card/index.jsx        |    1 
 src/menu/pastecontroller/index.jsx                      |    2 
 src/menu/components/card/data-card/index.jsx            |    1 
 src/menu/components/chart/antv-pie/index.jsx            |    1 
 src/menu/components/group/groupcomponents/card.jsx      |    6 
 src/tabviews/zshare/mutilform/index.jsx                 |   11 +
 src/menu/components/chart/antv-dashboard/index.jsx      |    1 
 src/tabviews/custom/index.jsx                           |    3 
 src/templates/zshare/modalform/datatable/index.scss     |   11 +
 src/menu/components/card/prop-card/index.jsx            |    1 
 src/menu/components/table/normal-table/index.jsx        |    1 
 src/menu/components/tabs/tabcomponents/card.jsx         |    6 
 src/menu/components/tabs/antv-tabs/index.jsx            |    8 
 src/templates/zshare/modalform/modaleditable/index.jsx  |   17 ++
 src/menu/components/group/normal-group/index.jsx        |    2 
 src/menu/components/tabs/paste/index.jsx                |   11 
 src/pc/components/navbar/normal-navbar/index.jsx        |    1 
 src/menu/components/group/groupcomponents/index.jsx     |    1 
 src/menu/components/form/normal-form/index.jsx          |    1 
 src/menu/components/chart/chart-custom/index.jsx        |    1 
 src/mob/components/topbar/normal-navbar/options.jsx     |   10 +
 src/menu/components/chart/antv-bar/index.jsx            |    1 
 src/menu/components/code/sandbox/index.jsx              |    1 
 src/mob/components/tabs/tabcomponents/index.jsx         |   26 ++-
 src/menu/components/table/edit-table/index.jsx          |    1 
 src/mob/mobshell/card.jsx                               |    7 
 src/menu/components/carousel/data-card/index.jsx        |    1 
 src/mob/components/search/single-search/index.jsx       |    1 
 src/menu/components/card/balcony/index.jsx              |    1 
 src/mob/components/tabs/tabcomponents/card.jsx          |    6 
 src/menu/components/search/main-search/index.jsx        |    1 
 src/pc/components/login/normal-login/index.jsx          |    1 
 src/mob/components/topbar/normal-navbar/index.jsx       |    1 
 src/menu/components/editor/braft-editor/index.jsx       |    1 
 src/templates/zshare/modalform/modaleditable/index.scss |    5 
 54 files changed, 229 insertions(+), 160 deletions(-)

diff --git a/src/menu/components/card/balcony/index.jsx b/src/menu/components/card/balcony/index.jsx
index cd956c7..7f0823c 100644
--- a/src/menu/components/card/balcony/index.jsx
+++ b/src/menu/components/card/balcony/index.jsx
@@ -39,7 +39,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'object',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/card/data-card/index.jsx b/src/menu/components/card/data-card/index.jsx
index 335e3f9..de13b31 100644
--- a/src/menu/components/card/data-card/index.jsx
+++ b/src/menu/components/card/data-card/index.jsx
@@ -46,7 +46,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'array',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/card/prop-card/index.jsx b/src/menu/components/card/prop-card/index.jsx
index 96e0fd7..175074d 100644
--- a/src/menu/components/card/prop-card/index.jsx
+++ b/src/menu/components/card/prop-card/index.jsx
@@ -45,7 +45,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'object',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/card/table-card/index.jsx b/src/menu/components/card/table-card/index.jsx
index 6470b65..ad0934f 100644
--- a/src/menu/components/card/table-card/index.jsx
+++ b/src/menu/components/card/table-card/index.jsx
@@ -45,7 +45,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'array',    // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/carousel/data-card/index.jsx b/src/menu/components/carousel/data-card/index.jsx
index 61806d1..ebf521e 100644
--- a/src/menu/components/carousel/data-card/index.jsx
+++ b/src/menu/components/carousel/data-card/index.jsx
@@ -41,7 +41,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'array',    // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/carousel/prop-card/index.jsx b/src/menu/components/carousel/prop-card/index.jsx
index b9d3a01..1795efc 100644
--- a/src/menu/components/carousel/prop-card/index.jsx
+++ b/src/menu/components/carousel/prop-card/index.jsx
@@ -42,7 +42,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'object',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/chart/antv-bar/index.jsx b/src/menu/components/chart/antv-bar/index.jsx
index 56af912..704fe48 100644
--- a/src/menu/components/chart/antv-bar/index.jsx
+++ b/src/menu/components/chart/antv-bar/index.jsx
@@ -71,7 +71,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'array',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/chart/antv-dashboard/index.jsx b/src/menu/components/chart/antv-dashboard/index.jsx
index f26312a..03305f3 100644
--- a/src/menu/components/chart/antv-dashboard/index.jsx
+++ b/src/menu/components/chart/antv-dashboard/index.jsx
@@ -112,7 +112,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: card.subtype === 'ratioboard' ? 'array' : 'object',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/chart/antv-pie/index.jsx b/src/menu/components/chart/antv-pie/index.jsx
index 14f1db8..6029781 100644
--- a/src/menu/components/chart/antv-pie/index.jsx
+++ b/src/menu/components/chart/antv-pie/index.jsx
@@ -62,7 +62,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'array',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/chart/antv-scatter/index.jsx b/src/menu/components/chart/antv-scatter/index.jsx
index 2cca38a..e8b381e 100644
--- a/src/menu/components/chart/antv-scatter/index.jsx
+++ b/src/menu/components/chart/antv-scatter/index.jsx
@@ -58,7 +58,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'array',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/chart/chart-custom/index.jsx b/src/menu/components/chart/chart-custom/index.jsx
index 929d17c..924baa8 100644
--- a/src/menu/components/chart/chart-custom/index.jsx
+++ b/src/menu/components/chart/chart-custom/index.jsx
@@ -50,7 +50,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'array',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/code/sandbox/index.jsx b/src/menu/components/code/sandbox/index.jsx
index ba13288..6395466 100644
--- a/src/menu/components/code/sandbox/index.jsx
+++ b/src/menu/components/code/sandbox/index.jsx
@@ -41,7 +41,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         dataName: card.dataName || '',
diff --git a/src/menu/components/editor/braft-editor/index.jsx b/src/menu/components/editor/braft-editor/index.jsx
index ac8dd29..56f1dff 100644
--- a/src/menu/components/editor/braft-editor/index.jsx
+++ b/src/menu/components/editor/braft-editor/index.jsx
@@ -38,7 +38,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         dataName: card.dataName || '',
diff --git a/src/menu/components/form/normal-form/index.jsx b/src/menu/components/form/normal-form/index.jsx
index 47d8a42..bb2c0c6 100644
--- a/src/menu/components/form/normal-form/index.jsx
+++ b/src/menu/components/form/normal-form/index.jsx
@@ -59,7 +59,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'object',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/form/tab-form/index.jsx b/src/menu/components/form/tab-form/index.jsx
index e9cf69f..1493f64 100644
--- a/src/menu/components/form/tab-form/index.jsx
+++ b/src/menu/components/form/tab-form/index.jsx
@@ -59,7 +59,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'object',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/group/groupcomponents/card.jsx b/src/menu/components/group/groupcomponents/card.jsx
index bc2c4c4..29710b2 100644
--- a/src/menu/components/group/groupcomponents/card.jsx
+++ b/src/menu/components/group/groupcomponents/card.jsx
@@ -27,7 +27,7 @@
 const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => {
   const originalIndex = findCard(id).index
   const [{ isDragging }, drag] = useDrag({
-    item: { type: 'menu', id, originalIndex, floor: card.floor },
+    item: { type: 'menu', id, originalIndex },
     collect: monitor => ({
       isDragging: monitor.isDragging(),
     }),
@@ -36,10 +36,10 @@
     accept: 'menu',
     canDrop: () => true,
     drop: (item) => {
-      const { id: draggedId, originalIndex, floor } = item
+      const { id: draggedId, originalIndex } = item
       if (originalIndex === undefined) {
         item.dropTargetId = id
-      } else if (draggedId && floor === card.floor) {
+      } else if (draggedId) {
         if (draggedId === id) return
         const { index: originIndex } = findCard(draggedId)
 
diff --git a/src/menu/components/group/groupcomponents/index.jsx b/src/menu/components/group/groupcomponents/index.jsx
index abf16c9..858b5b1 100644
--- a/src/menu/components/group/groupcomponents/index.jsx
+++ b/src/menu/components/group/groupcomponents/index.jsx
@@ -106,7 +106,6 @@
         width: item.width || 24,
         dataName: Utils.getdataName(),
         name: name,
-        floor: config.floor || 1, // 缁勪欢鐨勫眰绾�
         isNew: true               // 鏂版坊鍔犳爣蹇楋紝鐢ㄤ簬鍒濆鍖�
       }
 
diff --git a/src/menu/components/group/normal-group/index.jsx b/src/menu/components/group/normal-group/index.jsx
index 2c087bc..1b47f0b 100644
--- a/src/menu/components/group/normal-group/index.jsx
+++ b/src/menu/components/group/normal-group/index.jsx
@@ -35,7 +35,6 @@
       let _group = {
         uuid: group.uuid,
         type: group.type,
-        floor: group.floor,
         tabId: group.tabId || '',
         parentId: group.parentId || '',
         subtype: group.subtype,
@@ -145,7 +144,6 @@
   insert = (item) => {
     let group = fromJS(this.state.group).toJS()
 
-    item.floor = group.floor || 1
     item.parentId = group.parentId
 
     group.components.push(item)
diff --git a/src/menu/components/search/main-search/index.jsx b/src/menu/components/search/main-search/index.jsx
index 618db11..c44b673 100644
--- a/src/menu/components/search/main-search/index.jsx
+++ b/src/menu/components/search/main-search/index.jsx
@@ -53,7 +53,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         width: 24,
diff --git a/src/menu/components/table/edit-table/index.jsx b/src/menu/components/table/edit-table/index.jsx
index 5ac87be..7ff7cb0 100644
--- a/src/menu/components/table/edit-table/index.jsx
+++ b/src/menu/components/table/edit-table/index.jsx
@@ -46,7 +46,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'array',    // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/table/normal-table/index.jsx b/src/menu/components/table/normal-table/index.jsx
index 17a55c8..39da770 100644
--- a/src/menu/components/table/normal-table/index.jsx
+++ b/src/menu/components/table/normal-table/index.jsx
@@ -45,7 +45,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'array',    // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/tabs/antv-tabs/index.jsx b/src/menu/components/tabs/antv-tabs/index.jsx
index 8ac1f27..07f80ea 100644
--- a/src/menu/components/tabs/antv-tabs/index.jsx
+++ b/src/menu/components/tabs/antv-tabs/index.jsx
@@ -44,7 +44,6 @@
       let _tabs = {
         uuid: tabs.uuid,
         type: tabs.type,
-        floor: tabs.floor,
         tabId: tabs.tabId || '',
         parentId: tabs.parentId || '',
         subtype: tabs.subtype,
@@ -53,9 +52,9 @@
         setting: {width: 24, position: 'top', tabStyle: 'line', name: tabs.name},
         style: { marginLeft: '8px', marginRight: '8px', marginTop: '8px', marginBottom: '8px' },
         subtabs: [
-          { uuid: Utils.getuuid(), parentId: tabs.uuid, floor: tabs.floor, label: 'Tab 1', icon: '', components: [] },
-          { uuid: Utils.getuuid(), parentId: tabs.uuid, floor: tabs.floor, label: 'Tab 2', icon: '', components: [] },
-          { uuid: Utils.getuuid(), parentId: tabs.uuid, floor: tabs.floor, label: 'Tab 3', icon: '', components: [] }
+          { uuid: Utils.getuuid(), parentId: tabs.uuid, label: 'Tab 1', icon: '', components: [] },
+          { uuid: Utils.getuuid(), parentId: tabs.uuid, label: 'Tab 2', icon: '', components: [] },
+          { uuid: Utils.getuuid(), parentId: tabs.uuid, label: 'Tab 3', icon: '', components: [] }
         ]
       }
       this.setState({
@@ -296,7 +295,6 @@
       tab = {
         uuid: '',
         parentId: tabs.uuid,
-        floor: tabs.floor,
         label: '',
         icon: '',
         components: []
diff --git a/src/menu/components/tabs/paste/index.jsx b/src/menu/components/tabs/paste/index.jsx
index 59eb081..3e73e8d 100644
--- a/src/menu/components/tabs/paste/index.jsx
+++ b/src/menu/components/tabs/paste/index.jsx
@@ -24,8 +24,7 @@
     this.setState({visible: true})
   }
 
-  resetconfig = (item, Tab, copyBtns, uuids = {}) => {
-    item.floor = Tab.floor + 1
+  resetconfig = (item, Tab, copyBtns, uuids = {}, floor) => {
     item.tabId = Tab.uuid
     item.parentId = Tab.parentId
     
@@ -40,12 +39,12 @@
         tab.uuid = uuids[tab.uuid]
         tab.parentId = item.uuid
 
-        if (item.floor >= 3) {
+        if (floor >= 3) {
           tab.components = tab.components.filter(cell => cell.type !== 'tabs')
         }
 
         tab.components = tab.components.map(cell => {
-          cell = this.resetconfig(cell, tab, copyBtns, uuids)
+          cell = this.resetconfig(cell, tab, copyBtns, uuids, floor + 1)
           return cell
         })
       })
@@ -56,7 +55,6 @@
       item.name = item.setting.name
 
       item.components = item.components.map(cell => {
-        cell.floor = Tab.floor + 1
         cell.tabId = Tab.uuid
         cell.parentId = Tab.parentId
 
@@ -102,8 +100,9 @@
       }
 
       let copyBtns = new Map()
+      let floor = MenuUtils.getFloor(Tab.parentId)
 
-      res = this.resetconfig(res, Tab, copyBtns)
+      res = this.resetconfig(res, Tab, copyBtns, {}, floor)
 
       delete res.copyType
       
diff --git a/src/menu/components/tabs/tabcomponents/card.jsx b/src/menu/components/tabs/tabcomponents/card.jsx
index 27d0a0b..5b4ac68 100644
--- a/src/menu/components/tabs/tabcomponents/card.jsx
+++ b/src/menu/components/tabs/tabcomponents/card.jsx
@@ -30,7 +30,7 @@
 const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => {
   const originalIndex = findCard(id).index
   const [{ isDragging }, drag] = useDrag({
-    item: { type: 'menu', id, originalIndex, floor: card.floor },
+    item: { type: 'menu', id, originalIndex },
     collect: monitor => ({
       isDragging: monitor.isDragging(),
     }),
@@ -39,10 +39,10 @@
     accept: 'menu',
     canDrop: () => true,
     drop: (item) => {
-      const { id: draggedId, originalIndex, floor } = item
+      const { id: draggedId, originalIndex } = item
       if (originalIndex === undefined) {
         item.dropTargetId = id
-      } else if (draggedId && floor === card.floor) {
+      } else if (draggedId) {
         if (draggedId === id) return
         const { index: originIndex } = findCard(draggedId)
 
diff --git a/src/menu/components/tabs/tabcomponents/index.jsx b/src/menu/components/tabs/tabcomponents/index.jsx
index bc80a38..1e30e2a 100644
--- a/src/menu/components/tabs/tabcomponents/index.jsx
+++ b/src/menu/components/tabs/tabcomponents/index.jsx
@@ -84,13 +84,16 @@
           })
           return
         }
-      } else if (item.component === 'tabs' && config.floor === 3) {
-        notification.warning({
-          top: 92,
-          message: '鏍囩椤垫渶澶氫负涓夐噸缁撴瀯锛�',
-          duration: 5
-        })
-        return
+      } else if (item.component === 'tabs') {
+        let floor = MenuUtils.getFloor(config.parentId)
+        if (floor >= 3 ) {
+          notification.warning({
+            top: 92,
+            message: '鏍囩椤垫渶澶氫负涓夐噸缁撴瀯锛�',
+            duration: 5
+          })
+          return
+        }
       }
 
       let name = ''
@@ -134,7 +137,6 @@
         width: item.width || 24,
         dataName: Utils.getdataName(),
         name: name,
-        floor: config.floor ? (config.floor + 1) : 2, // 缁勪欢鐨勫眰绾�
         isNew: true                                   // 鏂版坊鍔犳爣蹇楋紝鐢ㄤ簬鍒濆鍖�
       }
       
diff --git a/src/menu/components/timeline/normal-timeline/index.jsx b/src/menu/components/timeline/normal-timeline/index.jsx
index 416d62d..432b1b1 100644
--- a/src/menu/components/timeline/normal-timeline/index.jsx
+++ b/src/menu/components/timeline/normal-timeline/index.jsx
@@ -38,7 +38,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         format: 'array',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/menu/components/tree/antd-tree/index.jsx b/src/menu/components/tree/antd-tree/index.jsx
index 5911a79..2b63b79 100644
--- a/src/menu/components/tree/antd-tree/index.jsx
+++ b/src/menu/components/tree/antd-tree/index.jsx
@@ -40,7 +40,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         dataName: card.dataName || '',
diff --git a/src/menu/datasource/index.jsx b/src/menu/datasource/index.jsx
index f7964eb..f405cf1 100644
--- a/src/menu/datasource/index.jsx
+++ b/src/menu/datasource/index.jsx
@@ -45,45 +45,19 @@
     if (appType === 'mob') {
       let ms = null
       menu.components.forEach(item => {
-        if (item.type === 'topbar' && (item.wrap.type === 'search' || (item.wrap.type === 'navbar' && item.wrap.search === 'true'))) {
+        if (item.type === 'topbar' && item.wrap.type !== 'navbar' && item.search) {
           ms = item.search
-        }
-      })
-
-      if (config.floor > 1) {
-        let _search = null
-        let filterComponent = (box) => {
-          box.components.forEach(item => {
-            if (_search) return
-
-            if (item.uuid === config.uuid) {
-              _search = box.slist.pop()
-            } else if (item.type === 'group') {
-              item.components.forEach(m => {
-                if (m.uuid !== config.uuid) return
-                _search = box.slist.pop()
-              })
-            } else if (item.type === 'tabs') {
-              let able = item.setting.display === 'inline-block' && item.setting.position === 'top'
-              item.subtabs.forEach(tab => {
-                if (able && tab.hasSearch === 'icon' && tab.search) {
-                  tab.slist = [...box.slist, tab.search]
-                } else {
-                  tab.slist = [...box.slist]
-                }
-                
-                filterComponent(tab)
-              })
-            }
+        } else if (item.type === 'search' && item.wrap.field) {
+          search.push({
+            type: 'text',
+            label: item.wrap.label,
+            field: item.wrap.field,
+            match: item.wrap.match,
+            required: item.wrap.required,
+            value: item.wrap.initval || ''
           })
         }
-        menu.slist = []
-        filterComponent(menu)
-
-        if (_search) {
-          ms = _search
-        }
-      }
+      })
 
       if (ms) {
         if (ms.setting.type === 'search') {
@@ -124,35 +98,33 @@
         })
       }
     } else {
-      if (config.floor > 1) {
-        let _search = null
-        let filterComponent = (box) => {
-          box.components.forEach(item => {
-            if (_search) return
+      let _search = null
+      let filterComponent = (box) => {
+        box.components.forEach(item => {
+          if (_search) return
 
-            if (item.type === 'search') {
-              box.slist = [...box.slist, item.search]
-            } else if (item.uuid === config.uuid) {
+          if (item.type === 'search') {
+            box.slist = [...box.slist, item.search]
+          } else if (item.uuid === config.uuid) {
+            _search = box.slist.pop()
+          } else if (item.type === 'group') {
+            item.components.forEach(m => {
+              if (m.uuid !== config.uuid) return
               _search = box.slist.pop()
-            } else if (item.type === 'group') {
-              item.components.forEach(m => {
-                if (m.uuid !== config.uuid) return
-                _search = box.slist.pop()
-              })
-            } else if (item.type === 'tabs') {
-              item.subtabs.forEach(tab => {
-                tab.slist = [...box.slist]
-                filterComponent(tab)
-              })
-            }
-          })
-        }
-        menu.slist = []
-        filterComponent(menu)
+            })
+          } else if (item.type === 'tabs') {
+            item.subtabs.forEach(tab => {
+              tab.slist = [...box.slist]
+              filterComponent(tab)
+            })
+          }
+        })
+      }
+      menu.slist = []
+      filterComponent(menu)
 
-        if (_search) {
-          search = _search
-        }
+      if (_search) {
+        search = _search
       } else {
         menu.components.forEach(item => {
           if (item.type !== 'search') return
diff --git a/src/menu/datasource/verifycard/index.jsx b/src/menu/datasource/verifycard/index.jsx
index 8f8afd6..3c0b394 100644
--- a/src/menu/datasource/verifycard/index.jsx
+++ b/src/menu/datasource/verifycard/index.jsx
@@ -42,7 +42,7 @@
         dataIndex: 'label',
         inputType: 'input',
         editable: true,
-        width: '28%'
+        width: '20%'
       },
       {
         title: '瀛楁',
@@ -51,7 +51,7 @@
         editable: true,
         unique: true,
         copy: true,
-        width: '28%'
+        width: '20%'
       },
       {
         title: '鏁版嵁绫诲瀷',
@@ -90,8 +90,15 @@
           { value: 'datetime', text: 'datetime' },
         ],
         editable: true,
-        width: '25%',
-      }
+        width: '20%',
+      },
+      {
+        title: '澶囨敞',
+        dataIndex: 'remark',
+        inputType: 'textarea',
+        editable: true,
+        width: '20%'
+      },
     ],
     scriptsColumns: [
       {
diff --git a/src/menu/menushell/card.jsx b/src/menu/menushell/card.jsx
index 83cfc00..df3650e 100644
--- a/src/menu/menushell/card.jsx
+++ b/src/menu/menushell/card.jsx
@@ -30,7 +30,7 @@
 const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => {
   const originalIndex = findCard(id).index
   const [{ isDragging }, drag] = useDrag({
-    item: { type: 'menu', id, originalIndex, floor: card.floor },
+    item: { type: 'menu', id, originalIndex },
     collect: monitor => ({
       isDragging: monitor.isDragging(),
     }),
@@ -39,10 +39,10 @@
     accept: 'menu',
     canDrop: () => true,
     drop: (item) => {
-      const { id: draggedId, originalIndex, floor } = item
+      const { id: draggedId, originalIndex } = item
       if (originalIndex === undefined) {
         item.dropTargetId = id
-      } else if (draggedId && floor === card.floor) {
+      } else if (draggedId) {
         if (draggedId === id) return
         const { index: originIndex } = findCard(draggedId)
 
diff --git a/src/menu/pastecontroller/index.jsx b/src/menu/pastecontroller/index.jsx
index 858866b..8ed2307 100644
--- a/src/menu/pastecontroller/index.jsx
+++ b/src/menu/pastecontroller/index.jsx
@@ -38,7 +38,6 @@
         }
 
         tab.components = tab.components.map(cell => {
-          cell.floor = tab.floor + 1
           cell.tabId = tab.uuid
           cell.parentId = tab.parentId
 
@@ -53,7 +52,6 @@
       item.name = item.setting.name
 
       item.components = item.components.map(cell => {
-        cell.floor = item.floor
         cell.tabId = item.tabId || ''
         cell.parentId = item.parentId || ''
 
diff --git a/src/mob/components/menubar/normal-menubar/index.jsx b/src/mob/components/menubar/normal-menubar/index.jsx
index 93d9aff..85e728f 100644
--- a/src/mob/components/menubar/normal-menubar/index.jsx
+++ b/src/mob/components/menubar/normal-menubar/index.jsx
@@ -41,7 +41,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: '',
         parentId: '',
         format: 'object',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
diff --git a/src/mob/components/navbar/normal-navbar/index.jsx b/src/mob/components/navbar/normal-navbar/index.jsx
index 680cd0a..8244a70 100644
--- a/src/mob/components/navbar/normal-navbar/index.jsx
+++ b/src/mob/components/navbar/normal-navbar/index.jsx
@@ -32,7 +32,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         format: 'object',   // 缁勪欢灞炴�� - 鏁版嵁鏍煎紡
         pageable: false,    // 缁勪欢灞炴�� - 鏄惁鍙垎椤�
         switchable: false,  // 缁勪欢灞炴�� - 鏁版嵁鏄惁鍙垏鎹�
diff --git a/src/mob/components/search/single-search/index.jsx b/src/mob/components/search/single-search/index.jsx
index 6f11afb..ec9400c 100644
--- a/src/mob/components/search/single-search/index.jsx
+++ b/src/mob/components/search/single-search/index.jsx
@@ -39,7 +39,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         width: 24,
diff --git a/src/mob/components/tabs/antv-tabs/index.jsx b/src/mob/components/tabs/antv-tabs/index.jsx
index 245e7a5..71fd17c 100644
--- a/src/mob/components/tabs/antv-tabs/index.jsx
+++ b/src/mob/components/tabs/antv-tabs/index.jsx
@@ -1,7 +1,7 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Tabs, Popover, Modal } from 'antd'
+import { Tabs, Popover, Modal, notification } from 'antd'
 import { ToolOutlined, PlusOutlined, EditOutlined, FontColorsOutlined, DeleteOutlined, CloseOutlined } from '@ant-design/icons'
 
 import MKEmitter from '@/utils/events.js'
@@ -44,7 +44,6 @@
       let _tabs = {
         uuid: tabs.uuid,
         type: tabs.type,
-        floor: tabs.floor,
         tabId: tabs.tabId || '',
         parentId: tabs.parentId || '',
         subtype: tabs.subtype,
@@ -53,9 +52,9 @@
         setting: {width: 24, position: 'top', tabStyle: 'line', name: tabs.name},
         style: { marginLeft: '8px', marginRight: '8px', marginTop: '8px', marginBottom: '8px' },
         subtabs: [
-          { uuid: Utils.getuuid(), parentId: tabs.uuid, floor: tabs.floor, label: 'Tab 1', icon: '', components: [] },
-          { uuid: Utils.getuuid(), parentId: tabs.uuid, floor: tabs.floor, label: 'Tab 2', icon: '', components: [] },
-          { uuid: Utils.getuuid(), parentId: tabs.uuid, floor: tabs.floor, label: 'Tab 3', icon: '', components: [] }
+          { uuid: Utils.getuuid(), parentId: tabs.uuid, label: 'Tab 1', icon: '', components: [] },
+          { uuid: Utils.getuuid(), parentId: tabs.uuid, label: 'Tab 2', icon: '', components: [] },
+          { uuid: Utils.getuuid(), parentId: tabs.uuid, label: 'Tab 3', icon: '', components: [] }
         ]
       }
 
@@ -254,6 +253,15 @@
   insert = (item, tab) => {
     let tabs = fromJS(this.state.tabs).toJS()
 
+    if (item.type === 'search') {
+      notification.warning({
+        top: 92,
+        message: '绉诲姩绔悳绱㈢粍浠朵笉鍙矘璐达紒',
+        duration: 5
+      })
+      return
+    }
+
     tabs.subtabs.forEach(stab => {
       if (stab.uuid === tab.uuid) {
         stab.components.push(item)
@@ -310,7 +318,6 @@
       tab = {
         uuid: '',
         parentId: tabs.uuid,
-        floor: tabs.floor,
         label: '',
         icon: '',
         components: []
diff --git a/src/mob/components/tabs/tabcomponents/card.jsx b/src/mob/components/tabs/tabcomponents/card.jsx
index 2d1ace5..bbd5724 100644
--- a/src/mob/components/tabs/tabcomponents/card.jsx
+++ b/src/mob/components/tabs/tabcomponents/card.jsx
@@ -29,7 +29,7 @@
 const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => {
   const originalIndex = findCard(id).index
   const [{ isDragging }, drag] = useDrag({
-    item: { type: 'menu', id, originalIndex, floor: card.floor },
+    item: { type: 'menu', id, originalIndex },
     collect: monitor => ({
       isDragging: monitor.isDragging(),
     }),
@@ -38,10 +38,10 @@
     accept: 'menu',
     canDrop: () => true,
     drop: (item) => {
-      const { id: draggedId, originalIndex, floor } = item
+      const { id: draggedId, originalIndex } = item
       if (originalIndex === undefined) {
         item.dropTargetId = id
-      } else if (draggedId && floor === card.floor) {
+      } else if (draggedId) {
         if (draggedId === id) return
         const { index: originIndex } = findCard(draggedId)
 
diff --git a/src/mob/components/tabs/tabcomponents/index.jsx b/src/mob/components/tabs/tabcomponents/index.jsx
index 3ed31ed..84ee423 100644
--- a/src/mob/components/tabs/tabcomponents/index.jsx
+++ b/src/mob/components/tabs/tabcomponents/index.jsx
@@ -75,22 +75,27 @@
       
       item.added = true
 
-      if (item.component === 'search') { // 鎼滅储缁勪欢涓嶅彲閲嶅娣诲姞
-        if (cards.filter(card => card.type === 'search').length > 0) {
+      if (item.component === 'search') { // 绉诲姩绔爣绛鹃〉涓笉鍙坊鍔犳悳绱�
+        // if (cards.filter(card => card.type === 'search').length > 0) {
+        //   notification.warning({
+        //     top: 92,
+        //     message: '鎼滅储鏉′欢涓嶅彲閲嶅娣诲姞锛�',
+        //     duration: 5
+        //   })
+        //   return
+        // }
+        item.added = false
+        return
+      } else if (item.component === 'tabs') {
+        let floor = MenuUtils.getFloor(config.parentId)
+        if (floor >= 3 ) {
           notification.warning({
             top: 92,
-            message: '鎼滅储鏉′欢涓嶅彲閲嶅娣诲姞锛�',
+            message: '鏍囩椤垫渶澶氫负涓夐噸缁撴瀯锛�',
             duration: 5
           })
           return
         }
-      } else if (item.component === 'tabs' && config.floor === 3) {
-        notification.warning({
-          top: 92,
-          message: '鏍囩椤垫渶澶氫负涓夐噸缁撴瀯锛�',
-          duration: 5
-        })
-        return
       }
 
       let name = ''
@@ -134,7 +139,6 @@
         width: item.width || 24,
         dataName: Utils.getdataName(),
         name: name,
-        floor: config.floor ? (config.floor + 1) : 2, // 缁勪欢鐨勫眰绾�
         isNew: true                                   // 鏂版坊鍔犳爣蹇楋紝鐢ㄤ簬鍒濆鍖�
       }
       
diff --git a/src/mob/components/topbar/normal-navbar/index.jsx b/src/mob/components/topbar/normal-navbar/index.jsx
index 3473c20..6888fcc 100644
--- a/src/mob/components/topbar/normal-navbar/index.jsx
+++ b/src/mob/components/topbar/normal-navbar/index.jsx
@@ -31,7 +31,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         width: 24,
         subtype: card.subtype,
         wrap: { type: 'navbar', height: 50, title: 'NavBar', back: 'true', logout: 'false' },
diff --git a/src/mob/components/topbar/normal-navbar/options.jsx b/src/mob/components/topbar/normal-navbar/options.jsx
index f9f3c7d..cb365d1 100644
--- a/src/mob/components/topbar/normal-navbar/options.jsx
+++ b/src/mob/components/topbar/normal-navbar/options.jsx
@@ -6,6 +6,12 @@
  */
 export default function (wrap) {
   let menulist = sessionStorage.getItem('appMenus')
+  let searchable = true
+  window.GLOB.customMenu.components.forEach(item => {
+    if (item.type === 'search') {
+      searchable = false
+    }
+  })
 
   if (menulist) {
     try {
@@ -26,8 +32,8 @@
       required: false,
       options: [
         {value: 'navbar', label: '瀵艰埅鏍�'},
-        {value: 'search', label: '鎼滅储妗�'},
-        {value: 'searchIcon', label: '鎼滅储鏍�'},
+        {value: 'search', label: '鎼滅储妗�', disabled: !searchable},
+        {value: 'searchIcon', label: '鎼滅储鏍�', disabled: !searchable},
       ],
     },
     {
diff --git a/src/mob/mobshell/card.jsx b/src/mob/mobshell/card.jsx
index b03a40f..9c18493 100644
--- a/src/mob/mobshell/card.jsx
+++ b/src/mob/mobshell/card.jsx
@@ -31,7 +31,7 @@
 const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => {
   const originalIndex = findCard(id).index
   const [{ isDragging }, drag] = useDrag({
-    item: { type: 'menu', id, originalIndex, floor: card.floor },
+    item: { type: 'menu', id, originalIndex },
     collect: monitor => ({
       isDragging: monitor.isDragging(),
     }),
@@ -40,10 +40,11 @@
     accept: 'menu',
     canDrop: () => true,
     drop: (item) => {
-      const { id: draggedId, originalIndex, floor } = item
+      const { id: draggedId, originalIndex } = item
+
       if (originalIndex === undefined) {
         item.dropTargetId = id
-      } else if (draggedId && floor === card.floor) {
+      } else if (draggedId) {
         if (draggedId === id) return
         const { index: originIndex } = findCard(draggedId)
 
diff --git a/src/mob/mobshell/index.jsx b/src/mob/mobshell/index.jsx
index f4e149b..36e8761 100644
--- a/src/mob/mobshell/index.jsx
+++ b/src/mob/mobshell/index.jsx
@@ -79,6 +79,14 @@
       let style = null
 
       if (item.component === 'search') { // 鎼滅储缁勪欢涓嶅彲閲嶅娣诲姞
+        if (cards.filter(card => card.type === 'topbar' && card.wrap.type !== 'navbar').length > 0) {
+          notification.warning({
+            top: 92,
+            message: '瀵艰埅鏍忎娇鐢ㄤ簡鎼滅储锛屼笉鍙坊鍔犳悳绱㈢粍浠讹紒',
+            duration: 5
+          })
+          return
+        }
         if (cards.filter(card => card.type === 'search').length > 0) {
           notification.warning({
             top: 92,
diff --git a/src/pc/components/login/normal-login/index.jsx b/src/pc/components/login/normal-login/index.jsx
index 48d29f8..5e04721 100644
--- a/src/pc/components/login/normal-login/index.jsx
+++ b/src/pc/components/login/normal-login/index.jsx
@@ -35,7 +35,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         tabId: card.tabId || '',
         parentId: card.parentId || '',
         dataName: card.dataName || '',
diff --git a/src/pc/components/navbar/normal-navbar/index.jsx b/src/pc/components/navbar/normal-navbar/index.jsx
index 4c560c4..558f823 100644
--- a/src/pc/components/navbar/normal-navbar/index.jsx
+++ b/src/pc/components/navbar/normal-navbar/index.jsx
@@ -34,7 +34,6 @@
       let _card = {
         uuid: card.uuid,
         type: card.type,
-        floor: card.floor,
         dataName: card.dataName || '',
         name: card.name,
         subtype: card.subtype,
diff --git a/src/pc/menushell/card.jsx b/src/pc/menushell/card.jsx
index f30bf5e..bd25267 100644
--- a/src/pc/menushell/card.jsx
+++ b/src/pc/menushell/card.jsx
@@ -32,7 +32,7 @@
 const Card = ({ id, card, moveCard, findCard, delCard, updateConfig }) => {
   const originalIndex = findCard(id).index
   const [{ isDragging }, drag] = useDrag({
-    item: { type: 'menu', id, originalIndex, floor: card.floor },
+    item: { type: 'menu', id, originalIndex },
     collect: monitor => ({
       isDragging: monitor.isDragging(),
     }),
@@ -41,10 +41,11 @@
     accept: 'menu',
     canDrop: () => true,
     drop: (item) => {
-      const { id: draggedId, originalIndex, floor } = item
+      const { id: draggedId, originalIndex } = item
+      
       if (originalIndex === undefined) {
         item.dropTargetId = id
-      } else if (draggedId && floor === card.floor) {
+      } else if (draggedId) {
         if (draggedId === id) return
         const { index: originIndex } = findCard(draggedId)
 
diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx
index b7262d9..5fb6bd9 100644
--- a/src/tabviews/custom/index.jsx
+++ b/src/tabviews/custom/index.jsx
@@ -916,7 +916,8 @@
         } else {
           params.push(getStructDefaultParam(component, searchlist, params.length === 0))
         }
-      } else if (component.floor === 1) {
+      } else if (params) {
+      // } else if (component.floor === 1) {
         component.setting.sync = 'false'
       }
 
diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx
index afb7b41..900bfbb 100644
--- a/src/tabviews/zshare/mutilform/index.jsx
+++ b/src/tabviews/zshare/mutilform/index.jsx
@@ -101,10 +101,17 @@
 
       if (['select', 'link', 'radio', 'checkbox', 'checkcard', 'multiselect'].includes(item.type)) {
         item.options = item.options || []
-        item.options = item.options.map(cell => {
+        // item.options = item.options.map(cell => {
+        //   cell.value = cell.Value
+        //   cell.label = cell.Text
+
+        //   return cell
+        // })
+        item.options = item.options.filter(cell => {
           cell.value = cell.Value
           cell.label = cell.Text
-          return cell
+
+          return !cell.Hide
         })
         if (item.setAll === 'true' && ['select', 'link', 'radio'].includes(item.type)) { // 娣诲姞绌哄��
           item.options.unshift({
diff --git a/src/templates/zshare/editTable/index.jsx b/src/templates/zshare/editTable/index.jsx
index bb8ae46..9e5ab27 100644
--- a/src/templates/zshare/editTable/index.jsx
+++ b/src/templates/zshare/editTable/index.jsx
@@ -115,6 +115,8 @@
           {options.map((item, i) => (<Radio key={i} value={item.field || item.value}> {item.label || item.text} </Radio>))}
         </Radio.Group>
       )
+    } else if (inputType === 'textarea') {
+      return <Input.TextArea autoSize={true} placeholder=""/>
     } else {
       return <Input onPressEnter={() => this.getValue(form)}/>
     }
diff --git a/src/templates/zshare/editTable/index.scss b/src/templates/zshare/editTable/index.scss
index a4319e4..c72b9d6 100644
--- a/src/templates/zshare/editTable/index.scss
+++ b/src/templates/zshare/editTable/index.scss
@@ -19,6 +19,9 @@
     > td:last-child {
       padding: 0px;
     }
+    textarea.ant-input {
+      vertical-align: middle;
+    }
   }
   .editable-row.active {
     td {
diff --git a/src/templates/zshare/modalform/datatable/index.jsx b/src/templates/zshare/modalform/datatable/index.jsx
index 2a361f8..c6c3887 100644
--- a/src/templates/zshare/modalform/datatable/index.jsx
+++ b/src/templates/zshare/modalform/datatable/index.jsx
@@ -3,7 +3,7 @@
 import { is, fromJS } from 'immutable'
 import { DndProvider, DragSource, DropTarget } from 'react-dnd'
 import { Table, Input, Popconfirm, Form, notification } from 'antd'
-import { PlusOutlined, EditOutlined, DeleteOutlined } from '@ant-design/icons'
+import { PlusOutlined, EditOutlined, DeleteOutlined, SwapOutlined } from '@ant-design/icons'
 
 import Utils from '@/utils/utils.js'
 import FileUpload from '@/tabviews/zshare/fileupload'
@@ -258,6 +258,7 @@
         ) : (
           <div className={'operation-btn' + (editingKey !== '' ? ' disabled' : '')}>
             <span className="primary" onClick={() => {editingKey === '' && this.edit(record.key)}}><EditOutlined /></span>
+            <span className="hide-control" title="鏄剧ず/闅愯棌" onClick={() => {editingKey === '' && this.handleHide(record.key)}}><SwapOutlined /></span>
             {editingKey === '' ? <Popconfirm
               overlayClassName="popover-confirm"
               title={this.props.dict['model.query.delete']}
@@ -360,6 +361,20 @@
     this.setState({ editingKey: key })
   }
 
+  handleHide = (key) => {
+    let _data = this.state.data.map(item => {
+      if (item.key === key) {
+        item.Hide = !item.Hide
+      }
+      return item
+    })
+    this.setState({
+      data: _data
+    }, () => {
+      this.props.onChange(_data)
+    })
+  }
+
   moveRow = (dragIndex, hoverIndex) => {
     const { editingKey } = this.state
     let _data = fromJS(this.state.data).toJS()
@@ -418,7 +433,7 @@
               rowKey="key"
               dataSource={this.state.data}
               columns={columns}
-              rowClassName="editable-row"
+              rowClassName={(record) => record.Hide ? 'editable-row hide' : 'editable-row'}
               onRow={(record, index) => ({
                 index,
                 moveAble: !this.state.editingKey,
diff --git a/src/templates/zshare/modalform/datatable/index.scss b/src/templates/zshare/modalform/datatable/index.scss
index 4e81d56..12f24f4 100644
--- a/src/templates/zshare/modalform/datatable/index.scss
+++ b/src/templates/zshare/modalform/datatable/index.scss
@@ -28,6 +28,11 @@
       }
     }
   }
+  .editable-row.hide {
+    td:not(:last-child) {
+      text-decoration: line-through;
+    }
+  }
   .operation-btn {
     font-size: 16px;
     text-align: center;
@@ -41,6 +46,9 @@
     .primary {
       color: #1890ff;
     }
+    .hide-control {
+      color: rgb(142, 68, 173);
+    }
     .danger {
       color: #ff4d4f;
     }
@@ -52,6 +60,9 @@
     .primary {
       color: rgba(0, 0, 0, .25);
     }
+    .hide-control {
+      color: rgba(0, 0, 0, .25);
+    }
     .danger {
       color: rgba(0, 0, 0, .25);
     }
diff --git a/src/templates/zshare/modalform/modaleditable/index.jsx b/src/templates/zshare/modalform/modaleditable/index.jsx
index 8670071..06714d0 100644
--- a/src/templates/zshare/modalform/modaleditable/index.jsx
+++ b/src/templates/zshare/modalform/modaleditable/index.jsx
@@ -222,6 +222,20 @@
     })
   }
 
+  handleHide = (record) => {
+    let _data = this.state.dataSource.map(item => {
+      if (item.key === record.key) {
+        item.Hide = !item.Hide
+      }
+      return item
+    })
+    this.setState({
+      dataSource: _data
+    }, () => {
+      this.props.onChange(_data)
+    })
+  }
+
   handleDelete = key => {
     const { dataSource } = this.state
     let _data = dataSource.filter(item => item.key !== key)
@@ -336,6 +350,7 @@
             <div style={{fontSize: '15px'}}>
               <span className="operation-btn" onClick={() => this.handleUpDown(record, 'up')} style={{color: '#1890ff'}}><ArrowUpOutlined /></span>
               <span className="operation-btn" onClick={() => this.handleUpDown(record, 'down')} style={{color: '#ff4d4f'}}><ArrowDownOutlined /></span>
+              <span className="operation-btn" title="鏄剧ず/闅愯棌" onClick={() => this.handleHide(record)} style={{color: 'rgb(142, 68, 173)'}}><SwapOutlined /></span>
               <Popconfirm
                 title="纭畾鍒犻櫎鍚楋紵"
                 overlayClassName="popover-confirm"
@@ -420,7 +435,7 @@
         <PlusOutlined className="add-row" onClick={this.handleAdd} />
         <Table
           components={components}
-          rowClassName={() => 'editable-row'}
+          rowClassName={(record) => record.Hide ? 'editable-row hide' : 'editable-row'}
           bordered
           dataSource={dataSource}
           columns={columns}
diff --git a/src/templates/zshare/modalform/modaleditable/index.scss b/src/templates/zshare/modalform/modaleditable/index.scss
index 010e085..2e70516 100644
--- a/src/templates/zshare/modalform/modaleditable/index.scss
+++ b/src/templates/zshare/modalform/modaleditable/index.scss
@@ -37,9 +37,12 @@
     }
   }
   .operation-btn {
-    margin-right: 15px;
+    margin-right: 10px;
     cursor: pointer;
   }
+  .editable-row.hide {
+    text-decoration: line-through;
+  }
   .ant-form-explain {
     font-size: 12px;
   }
diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js
index 928c462..9053815 100644
--- a/src/utils/utils-custom.js
+++ b/src/utils/utils-custom.js
@@ -511,6 +511,35 @@
   }
 
   /**
+   * @description 閲嶇疆鑿滃崟閰嶇疆锛岄〉闈㈡暣浣撳鍒�
+   * @return {String}  components 閰嶇疆淇℃伅
+   */
+  static getFloor = (id) => {
+    let floor = 1
+    let finish = false
+
+    let reCheck = (components, f) => {
+      components.forEach(item => {
+        if (finish) return
+        if (item.type === 'tabs') {
+          if (item.uuid === id) {
+            floor = f
+            finish = true
+          } else {
+            item.subtabs.forEach(tab => {
+              reCheck(tab.components, f + 1)
+            })
+          }
+        }
+      })
+    }
+
+    reCheck(window.GLOB.customMenu.components, 1)
+
+    return floor
+  }
+
+  /**
    * @description 鏁版嵁婧愬悕绉帮紝鐢ㄤ簬缁熶竴鏌ヨ
    * @return {String}  name
    */
diff --git a/src/views/mobdesign/index.jsx b/src/views/mobdesign/index.jsx
index 7145ac9..978d229 100644
--- a/src/views/mobdesign/index.jsx
+++ b/src/views/mobdesign/index.jsx
@@ -1464,6 +1464,15 @@
   insert = (item) => {
     let config = fromJS(this.state.config).toJS()
 
+    if (item.type === 'search') {
+      notification.warning({
+        top: 92,
+        message: '绉诲姩绔悳绱㈢粍浠朵笉鍙矘璐达紒',
+        duration: 5
+      })
+      return
+    }
+    
     if (item.type === 'topbar') {
       if (config.components.findIndex(m => m.type === 'topbar') > -1) {
         notification.warning({

--
Gitblit v1.8.0