From 63a40e3da5f24b449122fb8b50c16dcbf69d5907 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 06 三月 2023 09:22:43 +0800
Subject: [PATCH] Merge branch 'master' into positec

---
 src/views/systemproc/proc/index.jsx                               |    2 
 src/tabviews/custom/components/chart/antv-scatter/index.jsx       |    2 
 src/tabviews/custom/components/chart/antv-bar-line/index.jsx      |    2 
 src/tabviews/custom/components/code/sand-box/index.jsx            |    2 
 src/tabviews/custom/components/chart/antv-dashboard/index.jsx     |    2 
 src/tabviews/custom/components/tree/antd-tree/index.jsx           |    2 
 src/tabviews/zshare/actionList/popupbutton/index.jsx              |   97 ++--
 src/templates/zshare/codemirror/index.scss                        |    3 
 src/tabviews/custom/components/card/double-data-card/index.jsx    |    2 
 src/tabviews/custom/components/chart/antv-G6/index.jsx            |    2 
 src/utils/utils-custom.js                                         |   55 ++
 src/tabviews/zshare/actionList/excelInbutton/index.jsx            |   97 ++--
 src/views/menudesign/printmenuform/index.jsx                      |   14 
 src/tabviews/zshare/actionList/exceloutbutton/index.jsx           |    4 
 src/tabviews/custom/components/carousel/data-card/index.jsx       |    2 
 src/tabviews/custom/popview/index.jsx                             |   41 +
 src/tabviews/basetable/index.jsx                                  |   16 
 src/tabviews/zshare/actionList/newpagebutton/index.jsx            |   97 ++--
 src/tabviews/subtable/index.jsx                                   |    9 
 src/tabviews/subtabtable/index.jsx                                |    8 
 src/tabviews/commontable/index.jsx                                |    8 
 src/tabviews/zshare/actionList/normalbutton/index.jsx             |   96 ++--
 src/templates/zshare/codemirror/index.jsx                         |   10 
 src/tabviews/custom/components/chart/custom-chart/index.jsx       |    2 
 src/tabviews/zshare/actionList/changeuserbutton/index.jsx         |   97 ++--
 src/tabviews/custom/components/card/data-card/index.jsx           |    2 
 src/tabviews/custom/components/card/table-card/index.jsx          |    2 
 src/tabviews/custom/components/card/cardcellList/index.jsx        |   14 
 src/tabviews/custom/components/card/prop-card/index.jsx           |    2 
 src/tabviews/zshare/actionList/tabbutton/index.jsx                |   97 ++--
 src/menu/components/table/base-table/columns/editColumn/index.jsx |   10 
 src/tabviews/zshare/actionList/funczip/index.jsx                  |   75 ++-
 src/tabviews/custom/components/table/normal-table/index.jsx       |    2 
 src/tabviews/zshare/actionList/funcMegvii/index.jsx               |   75 ++-
 src/tabviews/custom/components/chart/antv-pie/index.jsx           |    2 
 src/tabviews/custom/components/timeline/normal-timeline/index.jsx |    2 
 src/tabviews/zshare/actionList/printbutton/index.jsx              |   97 ++--
 src/views/systemproc/proc/index.scss                              |    4 
 src/tabviews/custom/components/carousel/prop-card/index.jsx       |    2 
 src/tabviews/custom/index.jsx                                     |   41 +
 src/tabviews/custom/components/card/balcony/index.jsx             |    2 
 src/tabviews/custom/components/card/cardcellList/index.scss       |    1 
 42 files changed, 618 insertions(+), 484 deletions(-)

diff --git a/src/menu/components/table/base-table/columns/editColumn/index.jsx b/src/menu/components/table/base-table/columns/editColumn/index.jsx
index 044e8ad..f7b9799 100644
--- a/src/menu/components/table/base-table/columns/editColumn/index.jsx
+++ b/src/menu/components/table/base-table/columns/editColumn/index.jsx
@@ -167,7 +167,15 @@
 
       if (item.type === 'text') {
         let rules = []
-        if (item.key !== 'linkurl') {
+        if (item.key === 'field') {
+          rules = [{
+            pattern: /^[\u4E00-\u9FA50-9a-zA-Z_]*$/ig,
+            message: '瀛楁鍚嶅彧鍏佽鍖呭惈鏁板瓧銆佸瓧姣嶃�佹眽瀛椾互鍙奯'
+          }, {
+            max: formRule.input.max,
+            message: formRule.input.message
+          }]
+        } else if (item.key !== 'linkurl') {
           rules = [{
             max: formRule.input.max,
             message: formRule.input.message
diff --git a/src/tabviews/basetable/index.jsx b/src/tabviews/basetable/index.jsx
index 0e5c7d9..e6a783a 100644
--- a/src/tabviews/basetable/index.jsx
+++ b/src/tabviews/basetable/index.jsx
@@ -388,6 +388,14 @@
             cell = this.getPrinter(cell, item.uuid)
           }
 
+          if (cell.controlField) {
+            if (/,/ig.test(cell.controlVal)) {
+              cell.controlVals = cell.controlVal.split(',')
+            } else {
+              cell.controlVals = [(cell.controlVal || '')]
+            }
+          }
+
           return skip || permAction[cell.uuid]
         })
       }
@@ -416,6 +424,14 @@
             cell = this.getPrinter(cell, item.uuid)
           }
 
+          if (cell.controlField) {
+            if (/,/ig.test(cell.controlVal)) {
+              cell.controlVals = cell.controlVal.split(',')
+            } else {
+              cell.controlVals = [(cell.controlVal || '')]
+            }
+          }
+
           return skip || permAction[cell.uuid]
         })
         return col.elements.length !== 0
diff --git a/src/tabviews/commontable/index.jsx b/src/tabviews/commontable/index.jsx
index fb62900..a1c9987 100644
--- a/src/tabviews/commontable/index.jsx
+++ b/src/tabviews/commontable/index.jsx
@@ -338,6 +338,14 @@
             }
           }
         }
+
+        if (item.controlField) {
+          if (/,/ig.test(item.controlVal)) {
+            item.controlVals = item.controlVal.split(',')
+          } else {
+            item.controlVals = [(item.controlVal || '')]
+          }
+        }
         
         if (item.position === 'toolbar') {
           item.$toolbtn = true
diff --git a/src/tabviews/custom/components/card/balcony/index.jsx b/src/tabviews/custom/components/card/balcony/index.jsx
index 6283141..724f839 100644
--- a/src/tabviews/custom/components/card/balcony/index.jsx
+++ b/src/tabviews/custom/components/card/balcony/index.jsx
@@ -345,7 +345,7 @@
       let _data = {}
 
       this.loaded = true
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/card/cardcellList/index.jsx b/src/tabviews/custom/components/card/cardcellList/index.jsx
index 0f57d37..8d010da 100644
--- a/src/tabviews/custom/components/card/cardcellList/index.jsx
+++ b/src/tabviews/custom/components/card/cardcellList/index.jsx
@@ -826,24 +826,12 @@
         )
       } else if (card.eleType === 'button') {
         let _disabled = data.$disabled
-        if (card.control === 'hidden') {
-          let s = data[card.controlField] !== undefined ? data[card.controlField] + '' : ''
-          if (s === card.controlVal || (card.controlVal && card.controlVal.split(',').includes(s))) {
-            return null
-          }
-        } else if (card.control === 'disabled') {
-          let s = data[card.controlField] !== undefined ? data[card.controlField] + '' : ''
-          if (s === card.controlVal || (card.controlVal && card.controlVal.split(',').includes(s))) {
-            _disabled = true
-          }
-        }
-        
         let _data = [data]
   
         if (data.$$type === 'extendCard') {
           _data = data.$$selectedData || []
         } else if (card.$sync) {
-          _data = this.props.syncData
+          _data = this.props.syncData || []
         } else if (data.$$empty) {
           _data = []
         }
diff --git a/src/tabviews/custom/components/card/cardcellList/index.scss b/src/tabviews/custom/components/card/cardcellList/index.scss
index 1eb878d..2ce260c 100644
--- a/src/tabviews/custom/components/card/cardcellList/index.scss
+++ b/src/tabviews/custom/components/card/cardcellList/index.scss
@@ -83,6 +83,7 @@
     background-size: cover;
   }
   .mk-cell-btn {
+    min-height: 0px;
     > div {width: 100%;max-width: 100%;}
     button:not(.ant-switch) {
       width: 100%;
diff --git a/src/tabviews/custom/components/card/data-card/index.jsx b/src/tabviews/custom/components/card/data-card/index.jsx
index 5d917d4..95fde61 100644
--- a/src/tabviews/custom/components/card/data-card/index.jsx
+++ b/src/tabviews/custom/components/card/data-card/index.jsx
@@ -651,7 +651,7 @@
       }
 
       this.loaded = true
-      if (config.$cache && pageIndex === 1) {
+      if (config.$cache && pageIndex === 1 && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/card/double-data-card/index.jsx b/src/tabviews/custom/components/card/double-data-card/index.jsx
index c450a84..dd92190 100644
--- a/src/tabviews/custom/components/card/double-data-card/index.jsx
+++ b/src/tabviews/custom/components/card/double-data-card/index.jsx
@@ -498,7 +498,7 @@
       }
 
       this.loaded = true
-      if (config.$cache && pageIndex === 1) {
+      if (config.$cache && pageIndex === 1 && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/card/prop-card/index.jsx b/src/tabviews/custom/components/card/prop-card/index.jsx
index 375b7bf..87567ec 100644
--- a/src/tabviews/custom/components/card/prop-card/index.jsx
+++ b/src/tabviews/custom/components/card/prop-card/index.jsx
@@ -389,7 +389,7 @@
       let _data = {}
 
       this.loaded = true
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/card/table-card/index.jsx b/src/tabviews/custom/components/card/table-card/index.jsx
index 5108474..ed5623f 100644
--- a/src/tabviews/custom/components/card/table-card/index.jsx
+++ b/src/tabviews/custom/components/card/table-card/index.jsx
@@ -306,7 +306,7 @@
       }
 
       this.loaded = true
-      if (config.$cache && pageIndex === 1) {
+      if (config.$cache && pageIndex === 1 && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/carousel/data-card/index.jsx b/src/tabviews/custom/components/carousel/data-card/index.jsx
index f67af54..4dbe6e2 100644
--- a/src/tabviews/custom/components/carousel/data-card/index.jsx
+++ b/src/tabviews/custom/components/carousel/data-card/index.jsx
@@ -290,7 +290,7 @@
     let result = await Api.genericInterface(param)
     if (result.status) {
       this.loaded = true
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/carousel/prop-card/index.jsx b/src/tabviews/custom/components/carousel/prop-card/index.jsx
index ce207c5..6698d56 100644
--- a/src/tabviews/custom/components/carousel/prop-card/index.jsx
+++ b/src/tabviews/custom/components/carousel/prop-card/index.jsx
@@ -308,7 +308,7 @@
       let _data = {}
 
       this.loaded = true
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/chart/antv-G6/index.jsx b/src/tabviews/custom/components/chart/antv-G6/index.jsx
index e856a3d..c2fec02 100644
--- a/src/tabviews/custom/components/chart/antv-G6/index.jsx
+++ b/src/tabviews/custom/components/chart/antv-G6/index.jsx
@@ -1100,7 +1100,7 @@
 
     let result = await Api.genericInterface(param)
     if (result.status) {
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/chart/antv-bar-line/index.jsx b/src/tabviews/custom/components/chart/antv-bar-line/index.jsx
index dc80392..a60ff92 100644
--- a/src/tabviews/custom/components/chart/antv-bar-line/index.jsx
+++ b/src/tabviews/custom/components/chart/antv-bar-line/index.jsx
@@ -536,7 +536,7 @@
 
     let result = await Api.genericInterface(param)
     if (result.status) {
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/chart/antv-dashboard/index.jsx b/src/tabviews/custom/components/chart/antv-dashboard/index.jsx
index c505abf..1544237 100644
--- a/src/tabviews/custom/components/chart/antv-dashboard/index.jsx
+++ b/src/tabviews/custom/components/chart/antv-dashboard/index.jsx
@@ -279,7 +279,7 @@
 
     let result = await Api.genericInterface(param)
     if (result.status) {
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/chart/antv-pie/index.jsx b/src/tabviews/custom/components/chart/antv-pie/index.jsx
index 216be2f..17e24f5 100644
--- a/src/tabviews/custom/components/chart/antv-pie/index.jsx
+++ b/src/tabviews/custom/components/chart/antv-pie/index.jsx
@@ -247,7 +247,7 @@
 
     let result = await Api.genericInterface(param)
     if (result.status) {
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/chart/antv-scatter/index.jsx b/src/tabviews/custom/components/chart/antv-scatter/index.jsx
index a36ef44..b418e31 100644
--- a/src/tabviews/custom/components/chart/antv-scatter/index.jsx
+++ b/src/tabviews/custom/components/chart/antv-scatter/index.jsx
@@ -277,7 +277,7 @@
 
     let result = await Api.genericInterface(param)
     if (result.status) {
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
       
diff --git a/src/tabviews/custom/components/chart/custom-chart/index.jsx b/src/tabviews/custom/components/chart/custom-chart/index.jsx
index 19713cf..fb81260 100644
--- a/src/tabviews/custom/components/chart/custom-chart/index.jsx
+++ b/src/tabviews/custom/components/chart/custom-chart/index.jsx
@@ -267,7 +267,7 @@
 
     let result = await Api.genericInterface(param)
     if (result.status) {
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/code/sand-box/index.jsx b/src/tabviews/custom/components/code/sand-box/index.jsx
index 923fd18..8ccc32b 100644
--- a/src/tabviews/custom/components/code/sand-box/index.jsx
+++ b/src/tabviews/custom/components/code/sand-box/index.jsx
@@ -189,7 +189,7 @@
       let _data = result.data || {}
 
       this.loaded = true
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/table/normal-table/index.jsx b/src/tabviews/custom/components/table/normal-table/index.jsx
index 7f66256..b4ec245 100644
--- a/src/tabviews/custom/components/table/normal-table/index.jsx
+++ b/src/tabviews/custom/components/table/normal-table/index.jsx
@@ -214,7 +214,7 @@
     let result = await Api.genericInterface(param)
     if (result.status) {
       this.loaded = true
-      if (config.$cache && pageIndex === 1) {
+      if (config.$cache && pageIndex === 1 && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/timeline/normal-timeline/index.jsx b/src/tabviews/custom/components/timeline/normal-timeline/index.jsx
index e97abb9..463c865 100644
--- a/src/tabviews/custom/components/timeline/normal-timeline/index.jsx
+++ b/src/tabviews/custom/components/timeline/normal-timeline/index.jsx
@@ -290,7 +290,7 @@
     let result = await Api.genericInterface(param)
     if (result.status) {
       this.loaded = true
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/components/tree/antd-tree/index.jsx b/src/tabviews/custom/components/tree/antd-tree/index.jsx
index 8755abb..6b287c2 100644
--- a/src/tabviews/custom/components/tree/antd-tree/index.jsx
+++ b/src/tabviews/custom/components/tree/antd-tree/index.jsx
@@ -260,7 +260,7 @@
     let result = await Api.genericInterface(param)
     if (result.status) {
       this.loaded = true
-      if (config.$cache) {
+      if (config.$cache && config.setting.onload !== 'false') {
         Api.writeCacheConfig(config.uuid, result.data || '')
       }
 
diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx
index 2957081..70c202b 100644
--- a/src/tabviews/custom/index.jsx
+++ b/src/tabviews/custom/index.jsx
@@ -554,6 +554,14 @@
             cell.style = {...cell.style, ...cell.btnstyle}
           }
 
+          if (cell.controlField) {
+            if (/,/ig.test(cell.controlVal)) {
+              cell.controlVals = cell.controlVal.split(',')
+            } else {
+              cell.controlVals = [(cell.controlVal || '')]
+            }
+          }
+
           return skip || permAction[cell.uuid]
         })
       }
@@ -589,9 +597,12 @@
               if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃�
                 cell = this.getPrinter(cell, item.uuid)
               }
-              if (card.btnstyle) { // 鍏煎
-                card.style = card.style || {}
-                card.style = {...card.style, ...card.btnstyle}
+              if (cell.controlField) {
+                if (/,/ig.test(cell.controlVal)) {
+                  cell.controlVals = cell.controlVal.split(',')
+                } else {
+                  cell.controlVals = [(cell.controlVal || '')]
+                }
               }
             } else if (['text', 'number', 'formula'].includes(cell.eleType)) {
               if (!cell.height) {
@@ -632,9 +643,12 @@
               if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃�
                 cell = this.getPrinter(cell, item.uuid)
               }
-              if (card.btnstyle) { // 鍏煎
-                card.style = card.style || {}
-                card.style = {...card.style, ...card.btnstyle}
+              if (cell.controlField) {
+                if (/,/ig.test(cell.controlVal)) {
+                  cell.controlVals = cell.controlVal.split(',')
+                } else {
+                  cell.controlVals = [(cell.controlVal || '')]
+                }
               }
             } else if (['text', 'number', 'formula'].includes(cell.eleType)) {
               if (!cell.height) {
@@ -680,6 +694,13 @@
             if (cell.OpenType === 'funcbutton' && cell.funcType === 'print' && cell.verify) { // 鎵撳嵃鏈鸿缃�
               cell = this.getPrinter(cell, item.uuid)
             }
+            if (cell.controlField) {
+              if (/,/ig.test(cell.controlVal)) {
+                cell.controlVals = cell.controlVal.split(',')
+              } else {
+                cell.controlVals = [(cell.controlVal || '')]
+              }
+            }
           } else if (['text', 'number', 'formula'].includes(cell.eleType)) {
             if (!cell.height) {
               cell.innerHeight = 'auto'
@@ -724,6 +745,14 @@
               cell.style = {...cell.style, ...cell.btnstyle}
             }
 
+            if (cell.controlField) {
+              if (/,/ig.test(cell.controlVal)) {
+                cell.controlVals = cell.controlVal.split(',')
+              } else {
+                cell.controlVals = [(cell.controlVal || '')]
+              }
+            }
+
             return skip || permAction[cell.uuid]
           })
           return col.elements.length !== 0
diff --git a/src/tabviews/custom/popview/index.jsx b/src/tabviews/custom/popview/index.jsx
index a3970b8..496f920 100644
--- a/src/tabviews/custom/popview/index.jsx
+++ b/src/tabviews/custom/popview/index.jsx
@@ -395,6 +395,14 @@
             cell.style = {...cell.style, ...cell.btnstyle}
           }
 
+          if (cell.controlField) {
+            if (/,/ig.test(cell.controlVal)) {
+              cell.controlVals = cell.controlVal.split(',')
+            } else {
+              cell.controlVals = [(cell.controlVal || '')]
+            }
+          }
+
           return true
         })
       }
@@ -424,9 +432,12 @@
                   cell.execSuccess = 'mainline'
                 }
               }
-              if (card.btnstyle) { // 鍏煎
-                card.style = card.style || {}
-                card.style = {...card.style, ...card.btnstyle}
+              if (cell.controlField) {
+                if (/,/ig.test(cell.controlVal)) {
+                  cell.controlVals = cell.controlVal.split(',')
+                } else {
+                  cell.controlVals = [(cell.controlVal || '')]
+                }
               }
             } else if (['text', 'number', 'formula'].includes(cell.eleType)) {
               if (!cell.height) {
@@ -462,9 +473,12 @@
                 }
               }
 
-              if (card.btnstyle) { // 鍏煎
-                card.style = card.style || {}
-                card.style = {...card.style, ...card.btnstyle}
+              if (cell.controlField) {
+                if (/,/ig.test(cell.controlVal)) {
+                  cell.controlVals = cell.controlVal.split(',')
+                } else {
+                  cell.controlVals = [(cell.controlVal || '')]
+                }
               }
             } else if (['text', 'number', 'formula'].includes(cell.eleType)) {
               if (!cell.height) {
@@ -504,6 +518,13 @@
                 cell.execSuccess = 'mainline'
               }
             }
+            if (cell.controlField) {
+              if (/,/ig.test(cell.controlVal)) {
+                cell.controlVals = cell.controlVal.split(',')
+              } else {
+                cell.controlVals = [(cell.controlVal || '')]
+              }
+            }
           } else if (['text', 'number', 'formula'].includes(cell.eleType)) {
             if (!cell.height) {
               cell.innerHeight = 'auto'
@@ -542,6 +563,14 @@
               cell.style = {...cell.style, ...cell.btnstyle}
             }
 
+            if (cell.controlField) {
+              if (/,/ig.test(cell.controlVal)) {
+                cell.controlVals = cell.controlVal.split(',')
+              } else {
+                cell.controlVals = [(cell.controlVal || '')]
+              }
+            }
+
             return true
           })
           return col.elements.length !== 0
diff --git a/src/tabviews/subtable/index.jsx b/src/tabviews/subtable/index.jsx
index 150533f..ac80f8f 100644
--- a/src/tabviews/subtable/index.jsx
+++ b/src/tabviews/subtable/index.jsx
@@ -257,6 +257,15 @@
             }
           }
         }
+
+        if (item.controlField) {
+          if (/,/ig.test(item.controlVal)) {
+            item.controlVals = item.controlVal.split(',')
+          } else {
+            item.controlVals = [(item.controlVal || '')]
+          }
+        }
+        
         if (item.position === 'toolbar') {
           item.$toolbtn = true
           _actions.push(item)
diff --git a/src/tabviews/subtabtable/index.jsx b/src/tabviews/subtabtable/index.jsx
index c46137c..ef20200 100644
--- a/src/tabviews/subtabtable/index.jsx
+++ b/src/tabviews/subtabtable/index.jsx
@@ -213,6 +213,14 @@
         item.$menuId = this.props.MenuID
         item.$old = true
 
+        if (item.controlField) {
+          if (/,/ig.test(item.controlVal)) {
+            item.controlVals = item.controlVal.split(',')
+          } else {
+            item.controlVals = [(item.controlVal || '')]
+          }
+        }
+
         if (item.position === 'toolbar') {
           item.$toolbtn = true
           _actions.push(item)
diff --git a/src/tabviews/zshare/actionList/changeuserbutton/index.jsx b/src/tabviews/zshare/actionList/changeuserbutton/index.jsx
index b8e2081..b8e80e2 100644
--- a/src/tabviews/zshare/actionList/changeuserbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/changeuserbutton/index.jsx
@@ -31,31 +31,11 @@
   }
 
   UNSAFE_componentWillMount () {
-    const { btn, selectedData, BData } = this.props
-    let disabled = false
+    const { btn, selectedData, BData, disabled } = this.props
 
-    if (btn.control !== 'parent' && btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-      selectedData.forEach(item => {
-        let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          disabled = true
-        }
-      })
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent') {
-      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (this.props.disabled || disabled) {
+    if (btn.controlField) {
+      this.setStatus(btn, selectedData || [], BData, disabled)
+    } else if (disabled) {
       this.setState({disabled: true})
     }
   }
@@ -69,36 +49,12 @@
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
-    const { btn, selectedData, BData } = this.props
+    const { btn } = this.props
 
-    let disabled = false
-    if (btn.control !== 'parent' && btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) {
-      if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-        nextProps.selectedData.forEach(item => {
-          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-          if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-            disabled = true
-          }
-        })
-      }
-      this.setState({disabled, hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent' && !is(fromJS(nextProps.BData || {}), fromJS(BData || {}))) {
-      if (!nextProps.BData || !nextProps.BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = nextProps.BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (nextProps.disabled || disabled) {
-      this.setState({disabled: true})
+    if (btn.controlField) {
+      this.setStatus(btn, nextProps.selectedData || [], nextProps.BData, nextProps.disabled)
     } else {
-      this.setState({disabled: false})
+      this.setState({disabled: nextProps.disabled === true})
     }
   }
 
@@ -108,6 +64,43 @@
     }
     MKEmitter.removeListener('triggerBtnId', this.actionTrigger)
   }
+
+  setStatus = (btn, data, BData, disprop) => {
+    let disabled = false
+    let hidden = false
+
+    if (btn.control !== 'parent') {
+      if (data.length > 0) {
+        data.forEach(item => {
+          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
+          if (btn.controlVals.includes(s)) {
+            disabled = true
+          }
+        })
+      } else if (btn.controlVals.includes('')) {
+        disabled = true
+      }
+    } else {
+      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
+        hidden = true
+      } else {
+        let s = BData[btn.controlField] + ''
+        if (btn.controlVals.includes(s)) {
+          hidden = true
+        }
+      }
+    }
+
+    if (disabled && btn.control === 'hidden') {
+      hidden = true
+    }
+
+    if (disprop) {
+      disabled = true
+    }
+
+    this.setState({hidden, disabled})
+  }
   
   /**
    * @description 瑙﹀彂鎸夐挳鎿嶄綔
diff --git a/src/tabviews/zshare/actionList/excelInbutton/index.jsx b/src/tabviews/zshare/actionList/excelInbutton/index.jsx
index d865dab..b632588 100644
--- a/src/tabviews/zshare/actionList/excelInbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/excelInbutton/index.jsx
@@ -36,31 +36,11 @@
   }
 
   UNSAFE_componentWillMount () {
-    const { btn, selectedData, BData } = this.props
-    let disabled = false
+    const { btn, selectedData, BData, disabled } = this.props
 
-    if (btn.control !== 'parent' && btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-      selectedData.forEach(item => {
-        let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          disabled = true
-        }
-      })
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent') {
-      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (this.props.disabled || disabled) {
+    if (btn.controlField) {
+      this.setStatus(btn, selectedData || [], BData, disabled)
+    } else if (disabled) {
       this.setState({disabled: true})
     }
   }
@@ -74,36 +54,12 @@
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
-    const { btn, selectedData, BData } = this.props
+    const { btn } = this.props
 
-    let disabled = false
-    if (btn.control !== 'parent' && btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) {
-      if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-        nextProps.selectedData.forEach(item => {
-          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-          if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-            disabled = true
-          }
-        })
-      }
-      this.setState({disabled, hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent' && !is(fromJS(nextProps.BData || {}), fromJS(BData || {}))) {
-      if (!nextProps.BData || !nextProps.BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = nextProps.BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (nextProps.disabled || disabled) {
-      this.setState({disabled: true})
+    if (btn.controlField) {
+      this.setStatus(btn, nextProps.selectedData || [], nextProps.BData, nextProps.disabled)
     } else {
-      this.setState({disabled: false})
+      this.setState({disabled: nextProps.disabled === true})
     }
   }
 
@@ -113,6 +69,43 @@
     }
     MKEmitter.removeListener('triggerBtnId', this.actionTrigger)
   }
+
+  setStatus = (btn, data, BData, disprop) => {
+    let disabled = false
+    let hidden = false
+
+    if (btn.control !== 'parent') {
+      if (data.length > 0) {
+        data.forEach(item => {
+          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
+          if (btn.controlVals.includes(s)) {
+            disabled = true
+          }
+        })
+      } else if (btn.controlVals.includes('')) {
+        disabled = true
+      }
+    } else {
+      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
+        hidden = true
+      } else {
+        let s = BData[btn.controlField] + ''
+        if (btn.controlVals.includes(s)) {
+          hidden = true
+        }
+      }
+    }
+
+    if (disabled && btn.control === 'hidden') {
+      hidden = true
+    }
+
+    if (disprop) {
+      disabled = true
+    }
+
+    this.setState({hidden, disabled})
+  }
   
   /**
    * @description 瑙﹀彂鎸夐挳鎿嶄綔
diff --git a/src/tabviews/zshare/actionList/exceloutbutton/index.jsx b/src/tabviews/zshare/actionList/exceloutbutton/index.jsx
index 5615c35..be05ea6 100644
--- a/src/tabviews/zshare/actionList/exceloutbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/exceloutbutton/index.jsx
@@ -42,7 +42,7 @@
         this.setState({hidden: true})
       } else {
         let s = BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
+        if (btn.controlVals.includes(s)) {
           this.setState({hidden: true})
         } else {
           this.setState({hidden: false})
@@ -71,7 +71,7 @@
         this.setState({hidden: true})
       } else {
         let s = nextProps.BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
+        if (btn.controlVals.includes(s)) {
           this.setState({hidden: true})
         } else {
           this.setState({hidden: false})
diff --git a/src/tabviews/zshare/actionList/funcMegvii/index.jsx b/src/tabviews/zshare/actionList/funcMegvii/index.jsx
index 2f8cdd5..6da5dc4 100644
--- a/src/tabviews/zshare/actionList/funcMegvii/index.jsx
+++ b/src/tabviews/zshare/actionList/funcMegvii/index.jsx
@@ -34,20 +34,11 @@
   }
 
   UNSAFE_componentWillMount () {
-    const { btn, selectedData } = this.props
-    let disabled = false
+    const { btn, selectedData, BData, disabled } = this.props
 
-    if (btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-      selectedData.forEach(item => {
-        let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-        if (btn.controlVals.includes(s)) {
-          disabled = true
-        }
-      })
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    }
-
-    if (this.props.disabled || disabled) {
+    if (btn.controlField) {
+      this.setStatus(btn, selectedData || [], BData, disabled)
+    } else if (disabled) {
       this.setState({disabled: true})
     }
   }
@@ -57,25 +48,12 @@
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
-    const { btn, selectedData } = this.props
+    const { btn } = this.props
 
-    let disabled = false
-    if (btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) {
-      if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-        nextProps.selectedData.forEach(item => {
-          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-          if (btn.controlVals.includes(s)) {
-            disabled = true
-          }
-        })
-      }
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    }
-
-    if (nextProps.disabled || disabled) {
-      this.setState({disabled: true})
+    if (btn.controlField) {
+      this.setStatus(btn, nextProps.selectedData || [], nextProps.BData, nextProps.disabled)
     } else {
-      this.setState({disabled: false})
+      this.setState({disabled: nextProps.disabled === true})
     }
   }
 
@@ -90,6 +68,43 @@
     MKEmitter.removeListener('triggerBtnId', this.actionTrigger)
   }
 
+  setStatus = (btn, data, BData, disprop) => {
+    let disabled = false
+    let hidden = false
+
+    if (btn.control !== 'parent') {
+      if (data.length > 0) {
+        data.forEach(item => {
+          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
+          if (btn.controlVals.includes(s)) {
+            disabled = true
+          }
+        })
+      } else if (btn.controlVals.includes('')) {
+        disabled = true
+      }
+    } else {
+      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
+        hidden = true
+      } else {
+        let s = BData[btn.controlField] + ''
+        if (btn.controlVals.includes(s)) {
+          hidden = true
+        }
+      }
+    }
+
+    if (disabled && btn.control === 'hidden') {
+      hidden = true
+    }
+
+    if (disprop) {
+      disabled = true
+    }
+
+    this.setState({hidden, disabled})
+  }
+
   /**
    * @description 瑙﹀彂鎸夐挳鎿嶄綔
    */
diff --git a/src/tabviews/zshare/actionList/funczip/index.jsx b/src/tabviews/zshare/actionList/funczip/index.jsx
index 9a5aed2..124190f 100644
--- a/src/tabviews/zshare/actionList/funczip/index.jsx
+++ b/src/tabviews/zshare/actionList/funczip/index.jsx
@@ -28,20 +28,11 @@
   }
 
   UNSAFE_componentWillMount () {
-    const { btn, selectedData } = this.props
-    let disabled = false
+    const { btn, selectedData, BData, disabled } = this.props
 
-    if (btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-      selectedData.forEach(item => {
-        let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-        if (btn.controlVals.includes(s)) {
-          disabled = true
-        }
-      })
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    }
-
-    if (this.props.disabled || disabled) {
+    if (btn.controlField) {
+      this.setStatus(btn, selectedData || [], BData, disabled)
+    } else if (disabled) {
       this.setState({disabled: true})
     }
   }
@@ -51,25 +42,12 @@
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
-    const { btn, selectedData } = this.props
+    const { btn } = this.props
 
-    let disabled = false
-    if (btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) {
-      if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-        nextProps.selectedData.forEach(item => {
-          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-          if (btn.controlVals.includes(s)) {
-            disabled = true
-          }
-        })
-      }
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    }
-
-    if (nextProps.disabled || disabled) {
-      this.setState({disabled: true})
+    if (btn.controlField) {
+      this.setStatus(btn, nextProps.selectedData || [], nextProps.BData, nextProps.disabled)
     } else {
-      this.setState({disabled: false})
+      this.setState({disabled: nextProps.disabled === true})
     }
   }
 
@@ -84,6 +62,43 @@
     MKEmitter.removeListener('triggerBtnId', this.actionTrigger)
   }
 
+  setStatus = (btn, data, BData, disprop) => {
+    let disabled = false
+    let hidden = false
+
+    if (btn.control !== 'parent') {
+      if (data.length > 0) {
+        data.forEach(item => {
+          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
+          if (btn.controlVals.includes(s)) {
+            disabled = true
+          }
+        })
+      } else if (btn.controlVals.includes('')) {
+        disabled = true
+      }
+    } else {
+      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
+        hidden = true
+      } else {
+        let s = BData[btn.controlField] + ''
+        if (btn.controlVals.includes(s)) {
+          hidden = true
+        }
+      }
+    }
+
+    if (disabled && btn.control === 'hidden') {
+      hidden = true
+    }
+
+    if (disprop) {
+      disabled = true
+    }
+
+    this.setState({hidden, disabled})
+  }
+
   /**
    * @description 瑙﹀彂鎸夐挳鎿嶄綔
    */
diff --git a/src/tabviews/zshare/actionList/newpagebutton/index.jsx b/src/tabviews/zshare/actionList/newpagebutton/index.jsx
index 57bfcaa..33f3232 100644
--- a/src/tabviews/zshare/actionList/newpagebutton/index.jsx
+++ b/src/tabviews/zshare/actionList/newpagebutton/index.jsx
@@ -27,31 +27,11 @@
   }
 
   UNSAFE_componentWillMount () {
-    const { btn, selectedData, BData } = this.props
-    let disabled = false
+    const { btn, selectedData, BData, disabled } = this.props
 
-    if (btn.control !== 'parent' && btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-      selectedData.forEach(item => {
-        let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          disabled = true
-        }
-      })
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent') {
-      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (this.props.disabled || disabled) {
+    if (btn.controlField) {
+      this.setStatus(btn, selectedData || [], BData, disabled)
+    } else if (disabled) {
       this.setState({disabled: true})
     }
   }
@@ -65,36 +45,12 @@
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
-    const { btn, selectedData, BData } = this.props
+    const { btn } = this.props
 
-    let disabled = false
-    if (btn.control !== 'parent' && btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) {
-      if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-        nextProps.selectedData.forEach(item => {
-          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-          if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-            disabled = true
-          }
-        })
-      }
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent' && !is(fromJS(nextProps.BData || {}), fromJS(BData || {}))) {
-      if (!nextProps.BData || !nextProps.BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = nextProps.BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (nextProps.disabled || disabled) {
-      this.setState({disabled: true})
+    if (btn.controlField) {
+      this.setStatus(btn, nextProps.selectedData || [], nextProps.BData, nextProps.disabled)
     } else {
-      this.setState({disabled: false})
+      this.setState({disabled: nextProps.disabled === true})
     }
   }
 
@@ -104,6 +60,43 @@
     }
     MKEmitter.removeListener('triggerBtnId', this.actionTrigger)
   }
+
+  setStatus = (btn, data, BData, disprop) => {
+    let disabled = false
+    let hidden = false
+
+    if (btn.control !== 'parent') {
+      if (data.length > 0) {
+        data.forEach(item => {
+          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
+          if (btn.controlVals.includes(s)) {
+            disabled = true
+          }
+        })
+      } else if (btn.controlVals.includes('')) {
+        disabled = true
+      }
+    } else {
+      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
+        hidden = true
+      } else {
+        let s = BData[btn.controlField] + ''
+        if (btn.controlVals.includes(s)) {
+          hidden = true
+        }
+      }
+    }
+
+    if (disabled && btn.control === 'hidden') {
+      hidden = true
+    }
+
+    if (disprop) {
+      disabled = true
+    }
+
+    this.setState({hidden, disabled})
+  }
   
   /**
    * @description 瑙﹀彂鎸夐挳鎿嶄綔
diff --git a/src/tabviews/zshare/actionList/normalbutton/index.jsx b/src/tabviews/zshare/actionList/normalbutton/index.jsx
index 1735f7a..24144ed 100644
--- a/src/tabviews/zshare/actionList/normalbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/normalbutton/index.jsx
@@ -49,30 +49,11 @@
   moduleParams = null
 
   UNSAFE_componentWillMount () {
-    const { btn, selectedData, BData } = this.props
-    let disabled = false
+    const { btn, selectedData, BData, disabled } = this.props
 
-    if (btn.control !== 'parent' && btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-      selectedData.forEach(item => {
-        let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          disabled = true
-        }
-      })
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent') {
-      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-    if (this.props.disabled || disabled) {
+    if (btn.controlField) {
+      this.setStatus(btn, selectedData || [], BData, disabled)
+    } else if (disabled) {
       this.setState({disabled: true})
     }
     
@@ -104,36 +85,12 @@
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
-    const { btn, selectedData, BData } = this.props
+    const { btn } = this.props
 
-    let disabled = false
-    if (btn.control !== 'parent' && btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) {
-      if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-        nextProps.selectedData.forEach(item => {
-          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-          if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-            disabled = true
-          }
-        })
-      }
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent' && !is(fromJS(nextProps.BData || {}), fromJS(BData || {}))) {
-      if (!nextProps.BData || !nextProps.BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = nextProps.BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (nextProps.disabled || disabled) {
-      this.setState({disabled: true})
+    if (btn.controlField) {
+      this.setStatus(btn, nextProps.selectedData || [], nextProps.BData, nextProps.disabled)
     } else {
-      this.setState({disabled: false})
+      this.setState({disabled: nextProps.disabled === true})
     }
 
     if (btn.OpenType === 'form') {
@@ -155,6 +112,43 @@
     MKEmitter.removeListener('triggerBtnPopSubmit', this.triggerBtnPopSubmit)
   }
 
+  setStatus = (btn, data, BData, disprop) => {
+    let disabled = false
+    let hidden = false
+
+    if (btn.control !== 'parent') {
+      if (data.length > 0) {
+        data.forEach(item => {
+          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
+          if (btn.controlVals.includes(s)) {
+            disabled = true
+          }
+        })
+      } else if (btn.controlVals.includes('')) {
+        disabled = true
+      }
+    } else {
+      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
+        hidden = true
+      } else {
+        let s = BData[btn.controlField] + ''
+        if (btn.controlVals.includes(s)) {
+          hidden = true
+        }
+      }
+    }
+
+    if (disabled && btn.control === 'hidden') {
+      hidden = true
+    }
+
+    if (disprop) {
+      disabled = true
+    }
+
+    this.setState({hidden, disabled})
+  }
+
   triggerBtnPopSubmit = (id) => {
     const { btn } = this.props
 
diff --git a/src/tabviews/zshare/actionList/popupbutton/index.jsx b/src/tabviews/zshare/actionList/popupbutton/index.jsx
index 43b9afa..c07cf91 100644
--- a/src/tabviews/zshare/actionList/popupbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/popupbutton/index.jsx
@@ -36,31 +36,11 @@
   }
 
   UNSAFE_componentWillMount () {
-    const { btn, selectedData, BData } = this.props
-    let disabled = false
+    const { btn, selectedData, BData, disabled } = this.props
 
-    if (btn.control !== 'parent' && btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-      selectedData.forEach(item => {
-        let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          disabled = true
-        }
-      })
-      this.setState({disabled, hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent') {
-      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (this.props.disabled || disabled) {
+    if (btn.controlField) {
+      this.setStatus(btn, selectedData || [], BData, disabled)
+    } else if (disabled) {
       this.setState({disabled: true})
     }
   }
@@ -77,36 +57,12 @@
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
-    const { btn, selectedData, BData } = this.props
+    const { btn } = this.props
 
-    let disabled = false
-    if (btn.control !== 'parent' && btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) {
-      if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-        nextProps.selectedData.forEach(item => {
-          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-          if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-            disabled = true
-          }
-        })
-      }
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent' && !is(fromJS(nextProps.BData || {}), fromJS(BData || {}))) {
-      if (!nextProps.BData || !nextProps.BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = nextProps.BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (nextProps.disabled || disabled) {
-      this.setState({disabled: true})
+    if (btn.controlField) {
+      this.setStatus(btn, nextProps.selectedData || [], nextProps.BData, nextProps.disabled)
     } else {
-      this.setState({disabled: false})
+      this.setState({disabled: nextProps.disabled === true})
     }
   }
 
@@ -119,6 +75,43 @@
     MKEmitter.removeListener('triggerBtnId', this.actionTrigger)
     MKEmitter.removeListener('refreshPopButton', this.refreshPopButton)
   }
+
+  setStatus = (btn, data, BData, disprop) => {
+    let disabled = false
+    let hidden = false
+
+    if (btn.control !== 'parent') {
+      if (data.length > 0) {
+        data.forEach(item => {
+          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
+          if (btn.controlVals.includes(s)) {
+            disabled = true
+          }
+        })
+      } else if (btn.controlVals.includes('')) {
+        disabled = true
+      }
+    } else {
+      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
+        hidden = true
+      } else {
+        let s = BData[btn.controlField] + ''
+        if (btn.controlVals.includes(s)) {
+          hidden = true
+        }
+      }
+    }
+
+    if (disabled && btn.control === 'hidden') {
+      hidden = true
+    }
+
+    if (disprop) {
+      disabled = true
+    }
+
+    this.setState({hidden, disabled})
+  }
   
   /**
    * @description 鎵撳紑鏂版爣绛炬椂锛屽叧闂脊绐楁爣绛鹃〉
diff --git a/src/tabviews/zshare/actionList/printbutton/index.jsx b/src/tabviews/zshare/actionList/printbutton/index.jsx
index fbe6651..c8302d8 100644
--- a/src/tabviews/zshare/actionList/printbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/printbutton/index.jsx
@@ -45,31 +45,11 @@
   }
 
   UNSAFE_componentWillMount () {
-    const { btn, selectedData, BData } = this.props
-    let disabled = false
+    const { btn, selectedData, BData, disabled } = this.props
 
-    if (btn.control !== 'parent' && btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-      selectedData.forEach(item => {
-        let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          disabled = true
-        }
-      })
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent') {
-      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (this.props.disabled || disabled) {
+    if (btn.controlField) {
+      this.setStatus(btn, selectedData || [], BData, disabled)
+    } else if (disabled) {
       this.setState({disabled: true})
     }
   }
@@ -89,36 +69,12 @@
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
-    const { btn, selectedData, BData } = this.props
+    const { btn } = this.props
 
-    let disabled = false
-    if (btn.control !== 'parent' && btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) {
-      if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-        nextProps.selectedData.forEach(item => {
-          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-          if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-            disabled = true
-          }
-        })
-      }
-      this.setState({disabled, hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent' && !is(fromJS(nextProps.BData || {}), fromJS(BData || {}))) {
-      if (!nextProps.BData || !nextProps.BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = nextProps.BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (nextProps.disabled || disabled) {
-      this.setState({disabled: true})
+    if (btn.controlField) {
+      this.setStatus(btn, nextProps.selectedData || [], nextProps.BData, nextProps.disabled)
     } else {
-      this.setState({disabled: false})
+      this.setState({disabled: nextProps.disabled === true})
     }
   }
 
@@ -130,6 +86,43 @@
     MKEmitter.removeListener('triggerBtnPopSubmit', this.triggerBtnPopSubmit)
   }
 
+  setStatus = (btn, data, BData, disprop) => {
+    let disabled = false
+    let hidden = false
+
+    if (btn.control !== 'parent') {
+      if (data.length > 0) {
+        data.forEach(item => {
+          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
+          if (btn.controlVals.includes(s)) {
+            disabled = true
+          }
+        })
+      } else if (btn.controlVals.includes('')) {
+        disabled = true
+      }
+    } else {
+      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
+        hidden = true
+      } else {
+        let s = BData[btn.controlField] + ''
+        if (btn.controlVals.includes(s)) {
+          hidden = true
+        }
+      }
+    }
+
+    if (disabled && btn.control === 'hidden') {
+      hidden = true
+    }
+
+    if (disprop) {
+      disabled = true
+    }
+
+    this.setState({hidden, disabled})
+  }
+
   triggerBtnPopSubmit = (id) => {
     const { btn } = this.props
 
diff --git a/src/tabviews/zshare/actionList/tabbutton/index.jsx b/src/tabviews/zshare/actionList/tabbutton/index.jsx
index ffe92c1..fbdfe15 100644
--- a/src/tabviews/zshare/actionList/tabbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/tabbutton/index.jsx
@@ -27,31 +27,11 @@
   }
 
   UNSAFE_componentWillMount () {
-    const { btn, selectedData, BData } = this.props
-    let disabled = false
+    const { btn, selectedData, BData, disabled } = this.props
 
-    if (btn.control !== 'parent' && btn.controlField && selectedData && selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-      selectedData.forEach(item => {
-        let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          disabled = true
-        }
-      })
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent') {
-      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (this.props.disabled || disabled) {
+    if (btn.controlField) {
+      this.setStatus(btn, selectedData || [], BData, disabled)
+    } else if (disabled) {
       this.setState({disabled: true})
     }
   }
@@ -65,36 +45,12 @@
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
-    const { btn, selectedData, BData } = this.props
+    const { btn } = this.props
 
-    let disabled = false
-    if (btn.control !== 'parent' && btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) {
-      if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 琛ㄦ牸涓寜閽殣钘忔帶鍒�
-        nextProps.selectedData.forEach(item => {
-          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
-          if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-            disabled = true
-          }
-        })
-      }
-      this.setState({hidden: disabled && btn.control === 'hidden'})
-    } else if (btn.control === 'parent' && !is(fromJS(nextProps.BData || {}), fromJS(BData || {}))) {
-      if (!nextProps.BData || !nextProps.BData.hasOwnProperty(btn.controlField)) {
-        this.setState({hidden: true})
-      } else {
-        let s = nextProps.BData[btn.controlField] + ''
-        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
-          this.setState({hidden: true})
-        } else {
-          this.setState({hidden: false})
-        }
-      }
-    }
-
-    if (nextProps.disabled || disabled) {
-      this.setState({disabled: true})
+    if (btn.controlField) {
+      this.setStatus(btn, nextProps.selectedData || [], nextProps.BData, nextProps.disabled)
     } else {
-      this.setState({disabled: false})
+      this.setState({disabled: nextProps.disabled === true})
     }
   }
 
@@ -104,6 +60,43 @@
     }
     MKEmitter.removeListener('triggerBtnId', this.actionTrigger)
   }
+
+  setStatus = (btn, data, BData, disprop) => {
+    let disabled = false
+    let hidden = false
+
+    if (btn.control !== 'parent') {
+      if (data.length > 0) {
+        data.forEach(item => {
+          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
+          if (btn.controlVals.includes(s)) {
+            disabled = true
+          }
+        })
+      } else if (btn.controlVals.includes('')) {
+        disabled = true
+      }
+    } else {
+      if (!BData || !BData.hasOwnProperty(btn.controlField)) {
+        hidden = true
+      } else {
+        let s = BData[btn.controlField] + ''
+        if (btn.controlVals.includes(s)) {
+          hidden = true
+        }
+      }
+    }
+
+    if (disabled && btn.control === 'hidden') {
+      hidden = true
+    }
+
+    if (disprop) {
+      disabled = true
+    }
+
+    this.setState({hidden, disabled})
+  }
   
   /**
    * @description 瑙﹀彂鎸夐挳鎿嶄綔
diff --git a/src/templates/zshare/codemirror/index.jsx b/src/templates/zshare/codemirror/index.jsx
index 24f6872..aa4698f 100644
--- a/src/templates/zshare/codemirror/index.jsx
+++ b/src/templates/zshare/codemirror/index.jsx
@@ -23,6 +23,7 @@
     value: PropTypes.string, // 鍐呭
     mode: PropTypes.any,     // 鍙�夛紝璇█妯″紡锛岄粯璁や负sql
     theme: PropTypes.any,    // 鍙�夛紝涓婚鏍峰紡
+    func: PropTypes.any,     // 缂栬緫瀛樺偍杩囩▼
     onChange: PropTypes.func // 鍐呭鍙樺寲鏃跺洖璋�
   }
 
@@ -38,6 +39,8 @@
   editor = null
 
   UNSAFE_componentWillMount () {
+    const { func } = this.props
+
     let options = {
       lineNumbers: true,
       lineWrapping: true,
@@ -50,6 +53,7 @@
     }
 
     this.setState({
+      style: func ? {fontSize: '14px', lineHeight: '25px'} : {fontSize: '18px', lineHeight: '32px'},
       value: this.props.value || '',
       defaultVal: this.props.value || '',
       options
@@ -146,7 +150,7 @@
   }
 
   render() {
-    const { mode } = this.props
+    const { mode, func } = this.props
     const { defaultVal, options, fullScreen, style, display } = this.state
     const menu = (
       <Menu>
@@ -190,11 +194,11 @@
     )
 
     return (
-      <div className="code-mirror-wrap" style={fullScreen ? style : null}>
+      <div className="code-mirror-wrap" style={fullScreen || func ? style : null}>
         {!mode && !fullScreen ? <FormatPainterOutlined onClick={this.handleFormat}/> : null}
         {!fullScreen ? <FullscreenOutlined onClick={this.fullScreenChange}/> : null}
         {fullScreen ? <FullscreenExitOutlined onClick={this.fullScreenChange}/> : null}
-        {fullScreen ? <Dropdown overlay={menu} placement="bottomRight">
+        {fullScreen || func ? <Dropdown overlayClassName="mk-mirror-font" overlay={menu} placement="bottomRight">
           <FontSizeOutlined />
         </Dropdown> : null}
         {display ? <CodeMirror
diff --git a/src/templates/zshare/codemirror/index.scss b/src/templates/zshare/codemirror/index.scss
index 6444614..2ee7018 100644
--- a/src/templates/zshare/codemirror/index.scss
+++ b/src/templates/zshare/codemirror/index.scss
@@ -87,4 +87,7 @@
       background: #f5f5f5;
     }
   }
+}
+.mk-mirror-font {
+  z-index: 1200!important;
 }
\ No newline at end of file
diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js
index eb12ca9..3d8f378 100644
--- a/src/utils/utils-custom.js
+++ b/src/utils/utils-custom.js
@@ -453,16 +453,21 @@
             }
           }
 
+          if (card.setting.click === 'button' && card.setting.linkbtn) {
+            card.setting.linkbtn = md5(commonId + card.setting.linkbtn)
+          }
+
           if (card.elements) {
             card.elements = card.elements.map(cell => {
-              cell.uuid = this.getuuid()
-
               if (cell.eleType === 'button') {
+                cell.uuid = md5(commonId + cell.uuid)
                 if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
                   cell.pageTemplate = ''
                   cell.linkmenu = ''
                 }
                 this.resetBtn(cell, commonId)
+              } else {
+                cell.uuid = this.getuuid()
               }
               
               return cell
@@ -470,14 +475,15 @@
           }
           if (card.backElements) {
             card.backElements = card.backElements.map(cell => {
-              cell.uuid = this.getuuid()
-
               if (cell.eleType === 'button') {
+                cell.uuid = md5(commonId + cell.uuid)
                 if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
                   cell.pageTemplate = ''
                   cell.linkmenu = ''
                 }
                 this.resetBtn(cell, commonId)
+              } else {
+                cell.uuid = this.getuuid()
               }
 
               return cell
@@ -488,16 +494,20 @@
         if (item.wrap.datatype === 'public' && item.wrap.publicId) {
           item.wrap.publicId = md5(commonId + item.wrap.publicId)
         }
+        if (item.wrap.linkbtn) {
+          item.wrap.linkbtn = md5(commonId + item.wrap.linkbtn)
+        }
         if (item.elements) {
           item.elements = item.elements.map(cell => {
-            cell.uuid = this.getuuid()
-
             if (cell.eleType === 'button') {
+              cell.uuid = md5(commonId + cell.uuid)
               if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
                 cell.pageTemplate = ''
                 cell.linkmenu = ''
               }
               this.resetBtn(cell, commonId)
+            } else {
+              cell.uuid = this.getuuid()
             }
 
             return cell
@@ -518,7 +528,7 @@
               })
             } else if (c.type === 'action' && c.elements) {
               c.elements = c.elements.map(cell => {
-                cell.uuid = this.getuuid()
+                cell.uuid = md5(commonId + cell.uuid)
 
                 if (clear && cell.pageTemplate === 'linkpage' && cell.linkmenu) {
                   cell.pageTemplate = ''
@@ -548,7 +558,7 @@
             })
           } else if (col.type === 'action' && col.elements) {
             col.elements = col.elements.map(cell => {
-              cell.uuid = this.getuuid()
+              cell.uuid = md5(commonId + cell.uuid)
               this.resetBtn(cell, commonId)
               return cell
             })
@@ -721,12 +731,21 @@
     } else if (['card', 'carousel', 'timeline'].includes(item.type)) {
       item.subcards.forEach(card => {
         card.uuid = this.getuuid()
+
+        if (card.setting.click === 'button' && card.setting.linkbtn) {
+          card.setting.linkbtn = md5(commonId + card.setting.linkbtn)
+        }
+
         if (card.elements) {
           if (sessionStorage.getItem('editMenuType') === 'popview') {
             card.elements = card.elements.filter(b => b.OpenType !== 'popview' && b.OpenType !== 'funcbutton')
           }
           card.elements = card.elements.map(cell => {
-            cell.uuid = this.getuuid()
+            if (cell.eleType === 'button') {
+              cell.uuid = md5(commonId + cell.uuid)
+            } else {
+              cell.uuid = this.getuuid()
+            }
             return cell
           })
         }
@@ -735,7 +754,11 @@
             card.elements = card.elements.filter(b => b.OpenType !== 'popview' && b.OpenType !== 'funcbutton')
           }
           card.backElements = card.backElements.map(cell => {
-            cell.uuid = this.getuuid()
+            if (cell.eleType === 'button') {
+              cell.uuid = md5(commonId + cell.uuid)
+            } else {
+              cell.uuid = this.getuuid()
+            }
             return cell
           })
         }
@@ -745,8 +768,15 @@
         if (sessionStorage.getItem('editMenuType') === 'popview') {
           item.elements = item.elements.filter(b => b.OpenType !== 'popview' && b.OpenType !== 'funcbutton')
         }
+        if (item.wrap.linkbtn) {
+          item.wrap.linkbtn = md5(commonId + item.wrap.linkbtn)
+        }
         item.elements = item.elements.map(cell => {
-          cell.uuid = this.getuuid()
+          if (cell.eleType === 'button') {
+            cell.uuid = md5(commonId + cell.uuid)
+          } else {
+            cell.uuid = this.getuuid()
+          }
           return cell
         })
       }
@@ -784,7 +814,8 @@
             col.elements = col.elements.filter(c => c.OpenType !== 'popview' && c.OpenType !== 'funcbutton')
           }
           col.elements = col.elements.map(cell => {
-            cell.uuid = this.getuuid()
+            cell.uuid = md5(commonId + cell.uuid)
+
             return cell
           })
         }
diff --git a/src/views/menudesign/printmenuform/index.jsx b/src/views/menudesign/printmenuform/index.jsx
index 9f9c9bb..be3c97d 100644
--- a/src/views/menudesign/printmenuform/index.jsx
+++ b/src/views/menudesign/printmenuform/index.jsx
@@ -119,6 +119,20 @@
       <Form {...formItemLayout}>
         <Row>
           <Col span={24}>
+            <Form.Item label="鑿滃崟鍚嶇О">
+              <span style={{display: 'inline-block', wordBreak: 'break-all', lineHeight: 1.5}}>
+                {config.MenuName}
+              </span>
+            </Form.Item>
+          </Col>
+          <Col span={24}>
+            <Form.Item label="鑿滃崟鍙傛暟">
+              <span style={{display: 'inline-block', wordBreak: 'break-all', lineHeight: 1.5}}>
+                {config.MenuNo}
+              </span>
+            </Form.Item>
+          </Col>
+          <Col span={24}>
             <Form.Item label="鎵撳嵃灏哄">
               {getFieldDecorator('pageSize', {
                 initialValue: config.pageSize || 'A4',
diff --git a/src/views/systemproc/proc/index.jsx b/src/views/systemproc/proc/index.jsx
index 6f13864..cad4d02 100644
--- a/src/views/systemproc/proc/index.jsx
+++ b/src/views/systemproc/proc/index.jsx
@@ -376,7 +376,7 @@
             </div>
           </div>
           <div className="edit-wrap">
-            <CodeMirror value={content} onChange={(val) => this.setState({content: val})}/>
+            <CodeMirror value={content} func={true} onChange={(val) => this.setState({content: val})}/>
           </div>
         </div>
         <Modal
diff --git a/src/views/systemproc/proc/index.scss b/src/views/systemproc/proc/index.scss
index 653bc5c..e0a327c 100644
--- a/src/views/systemproc/proc/index.scss
+++ b/src/views/systemproc/proc/index.scss
@@ -109,6 +109,10 @@
       background-color: #ffffff;
     }
   }
+
+  .code-mirror-wrap .anticon-font-size {
+    position: absolute;
+  }
 }
 
 .mk-create-func {

--
Gitblit v1.8.0