From c66c7b65432af8cdab430b7ac079a4fd75c3d60f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 10 九月 2021 19:20:58 +0800
Subject: [PATCH] 2021-09-10

---
 src/menu/components/card/table-card/index.scss       |    2 
 src/pc/components/navbar/normal-navbar/index.jsx     |    2 
 src/mob/components/navbar/normal-navbar/index.jsx    |    2 
 src/menu/components/card/table-card/index.jsx        |    2 
 src/views/pcdesign/index.jsx                         |    6 +
 src/views/mobdesign/menuform/index.jsx               |   17 +++
 src/views/pcdesign/menuform/index.jsx                |   17 +++
 src/menu/components/share/sourcecomponent/index.jsx  |    4 
 src/utils/utils-custom.js                            |    2 
 src/menu/pastecontroller/index.jsx                   |   10 -
 src/views/menudesign/menuform/index.jsx              |   17 +++
 src/views/rolemanage/index.jsx                       |    4 
 src/mob/components/topbar/normal-navbar/index.jsx    |    2 
 src/tabviews/custom/index.jsx                        |   22 ++--
 src/views/appmanage/submutilform/index.scss          |    6 +
 src/menu/components/share/sourcecomponent/index.scss |   14 ++
 src/views/appmanage/submutilform/index.jsx           |   99 +++++++++++--------
 src/views/mobdesign/index.jsx                        |   17 +++
 src/menu/popview/index.jsx                           |    6 +
 src/views/menudesign/index.jsx                       |    6 +
 20 files changed, 184 insertions(+), 73 deletions(-)

diff --git a/src/menu/components/card/table-card/index.jsx b/src/menu/components/card/table-card/index.jsx
index 88eaaf7..8f41080 100644
--- a/src/menu/components/card/table-card/index.jsx
+++ b/src/menu/components/card/table-card/index.jsx
@@ -456,7 +456,7 @@
 
     return (
       <div className="menu-table-card-edit-box" style={_style} onClick={this.clickComponent} id={card.uuid}>
-        <NormalHeader config={card} updateComponent={this.updateComponent}/>
+        <NormalHeader defaultshow="hidden" config={card} updateComponent={this.updateComponent}/>
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
             <Icon className="plus" title="娣诲姞鍗$墖" onClick={() => this.addCard()} type="plus" />
diff --git a/src/menu/components/card/table-card/index.scss b/src/menu/components/card/table-card/index.scss
index 93b788c..03e950e 100644
--- a/src/menu/components/card/table-card/index.scss
+++ b/src/menu/components/card/table-card/index.scss
@@ -5,7 +5,7 @@
   background-position: center center;
   background-repeat: no-repeat;
   background-size: cover;
-  min-height: 100px;
+  min-height: 50px;
   
   .table-header {
     position: relative;
diff --git a/src/menu/components/share/sourcecomponent/index.jsx b/src/menu/components/share/sourcecomponent/index.jsx
index 569fc8d..a2f45e3 100644
--- a/src/menu/components/share/sourcecomponent/index.jsx
+++ b/src/menu/components/share/sourcecomponent/index.jsx
@@ -68,8 +68,8 @@
           <Radio.Button value="upload" size="small" onClick={() => this.handleChange('upload')}>涓婁紶</Radio.Button>
           <Radio.Button value="system" size="small" onClick={() => this.handleChange('system')}>绯荤粺</Radio.Button>
         </Radio.Group> : null}
-        {url ? <div className="mk-source-item-info">
-          <Icon type="paper-clip" />
+        {url ? <div className={'mk-source-item-info' + (type !== 'video' ? ' picture' : '')}>
+          {type === 'video' ? <Icon type="paper-clip" /> : <img src={url} alt="" />}
           <a target="_blank" rel="noopener noreferrer" href={url}>{name}</a>
           <Icon title="鍒犻櫎鏂囦欢" type="delete" onClick={this.deleteUrl}/>
         </div> : null}
diff --git a/src/menu/components/share/sourcecomponent/index.scss b/src/menu/components/share/sourcecomponent/index.scss
index f270254..ecf2c09 100644
--- a/src/menu/components/share/sourcecomponent/index.scss
+++ b/src/menu/components/share/sourcecomponent/index.scss
@@ -28,6 +28,20 @@
       text-overflow: ellipsis;
     }
   }
+  .mk-source-item-info.picture {
+    display: flex;
+    img {
+      width: 32px;
+      height: 32px;
+    }
+    img + a {
+      height: 32px;
+      line-height: 32px;
+    }
+    .anticon-delete {
+      top: 8px;
+    }
+  }
   .mk-source-item-info:hover {
     background-color: #e6f7ff;
     .anticon-delete {
diff --git a/src/menu/pastecontroller/index.jsx b/src/menu/pastecontroller/index.jsx
index 80a2dac..a5529f5 100644
--- a/src/menu/pastecontroller/index.jsx
+++ b/src/menu/pastecontroller/index.jsx
@@ -68,10 +68,10 @@
   }
 
   pasteSubmit = () => {
-    let options = ['tabs', 'menubar', 'datacard', 'propcard', 'mainsearch', 'stepform', 'tabform', 'balcony', 'group', 'normaltable', 'tablecard', 'line', 'bar', 'pie', 'dashboard', 'scatter']
+    let options = ['tabs', 'menubar', 'topbar', 'datacard', 'propcard', 'mainsearch', 'stepform', 'tabform', 'balcony', 'group', 'normaltable', 'tablecard', 'line', 'bar', 'pie', 'dashboard', 'scatter']
 
     this.pasteFormRef.handleConfirm().then(res => {
-      if (res.copyType === 'menubar' && sessionStorage.getItem('appType') !== 'mob') {
+      if ((res.copyType === 'menubar' || res.copyType === 'topbar') && sessionStorage.getItem('appType') !== 'mob') {
         notification.warning({
           top: 92,
           message: '褰撳墠绯荤粺涓嶆敮鎸佽彍鍗曠粍浠讹紒',
@@ -102,12 +102,6 @@
       }
 
       this.setState({visible: false})
-
-      notification.success({
-        top: 92,
-        message: '绮樿创鎴愬姛锛�',
-        duration: 2
-      })
     })
   }
 
diff --git a/src/menu/popview/index.jsx b/src/menu/popview/index.jsx
index 409c6aa..a85ea98 100644
--- a/src/menu/popview/index.jsx
+++ b/src/menu/popview/index.jsx
@@ -553,6 +553,12 @@
 
     this.setState({config})
     window.GLOB.customMenu = config
+    
+    notification.success({
+      top: 92,
+      message: '绮樿创鎴愬姛锛�',
+      duration: 2
+    })
   }
 
   refreshConfig = () => {
diff --git a/src/mob/components/navbar/normal-navbar/index.jsx b/src/mob/components/navbar/normal-navbar/index.jsx
index eb23343..38a8d71 100644
--- a/src/mob/components/navbar/normal-navbar/index.jsx
+++ b/src/mob/components/navbar/normal-navbar/index.jsx
@@ -40,7 +40,6 @@
         pageable: false,    // 缁勪欢灞炴�� - 鏄惁鍙垎椤�
         switchable: false,  // 缁勪欢灞炴�� - 鏁版嵁鏄惁鍙垏鎹�
         dataName: card.dataName || '',
-        width: card.width || 24,
         name: card.name,
         subtype: card.subtype,
         setting: { interType: 'system' },
@@ -96,7 +95,6 @@
       card: component
     })
 
-    component.width = component.wrap.width
     component.name = component.wrap.name
 
     this.props.updateConfig(component)
diff --git a/src/mob/components/topbar/normal-navbar/index.jsx b/src/mob/components/topbar/normal-navbar/index.jsx
index 84a1fb9..b495c89 100644
--- a/src/mob/components/topbar/normal-navbar/index.jsx
+++ b/src/mob/components/topbar/normal-navbar/index.jsx
@@ -12,6 +12,7 @@
 import './index.scss'
 
 const NormalForm = asyncIconComponent(() => import('@/components/normalform'))
+const CopyComponent = asyncIconComponent(() => import('@/menu/components/share/copycomponent'))
 
 class NormalNavbar extends Component {
   static propTpyes = {
@@ -200,6 +201,7 @@
             <NormalForm title="瀵艰埅鏍忚缃�" width={750} update={this.updateWrap} getForms={this.getWrapForms}>
               <Icon type="edit" style={{color: '#1890ff'}} title="缂栬緫"/>
             </NormalForm>
+            <CopyComponent type="topbar" card={card}/>
             <Icon className="style" title="璋冩暣鏍峰紡" onClick={this.changeStyle} type="font-colors" />
             <Icon className="close" title="鍒犻櫎缁勪欢" type="delete" onClick={() => this.props.deletecomponent(card.uuid)} />
           </div>
diff --git a/src/pc/components/navbar/normal-navbar/index.jsx b/src/pc/components/navbar/normal-navbar/index.jsx
index 1d3b062..908e70a 100644
--- a/src/pc/components/navbar/normal-navbar/index.jsx
+++ b/src/pc/components/navbar/normal-navbar/index.jsx
@@ -39,7 +39,6 @@
         type: card.type,
         floor: card.floor,
         dataName: card.dataName || '',
-        width: card.width || 24,
         name: card.name,
         subtype: card.subtype,
         wrap: { name: card.name, width: card.width || 1200 },
@@ -94,7 +93,6 @@
       card: component
     })
 
-    component.width = component.wrap.width
     component.name = component.wrap.name
 
     this.props.updateConfig(component)
diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx
index 572dc3e..521c756 100644
--- a/src/tabviews/custom/index.jsx
+++ b/src/tabviews/custom/index.jsx
@@ -132,7 +132,8 @@
       // 鏉冮檺杩囨护
       let roleId = sessionStorage.getItem('role_id') || '' // 瑙掕壊ID
       let balMap = new Map()
-      config.components = this.filterComponent(config.components, roleId, permAction, permMenus, balMap)
+      let skip = config.permission === 'false' || this.props.menuType === 'HS'
+      config.components = this.filterComponent(config.components, roleId, permAction, permMenus, balMap, skip)
       
       // 鑾峰彇涓绘悳绱㈡潯浠�
       let mainSearch = []
@@ -445,7 +446,7 @@
     })
   }
 
-  filterComponent = (components, roleId, permAction, permMenus, balMap) => {
+  filterComponent = (components, roleId, permAction, permMenus, balMap, skip) => {
     return components.filter(item => {
       
       if (item.style && item.style.boxShadow) {
@@ -476,7 +477,7 @@
         })
 
         item.subtabs = item.subtabs.map(tab => {
-          tab.components = this.filterComponent(tab.components, roleId, permAction, permMenus, balMap)
+          tab.components = this.filterComponent(tab.components, roleId, permAction, permMenus, balMap, skip)
           return tab
         })
 
@@ -499,7 +500,7 @@
           return false
         }
 
-        item.components = this.filterComponent(item.components, roleId, permAction, permMenus, balMap)
+        item.components = this.filterComponent(item.components, roleId, permAction, permMenus, balMap, skip)
       } else if (['pie', 'bar', 'line', 'dashboard', 'scatter'].includes(item.type)) {
         if (
           item.plot.blacklist && item.plot.blacklist.length > 0 &&
@@ -562,7 +563,6 @@
       }
 
       // 鏉冮檺杩囨护
-      let isHS = this.props.menuType === 'HS'
       let tabId = this.props.Tab ? this.props.Tab.uuid : '' // 寮圭獥鏍囩鎸夐挳Id
       if (item.action && item.action.length > 0) {
         item.action = item.action.filter(cell => {
@@ -584,7 +584,7 @@
             cell.style = {...cell.style, ...cell.btnstyle}
           }
 
-          return isHS || permAction[cell.uuid]
+          return skip || permAction[cell.uuid]
         })
       }
 
@@ -622,7 +622,7 @@
               cell.innerHeight = 'auto'
             }
 
-            return cell.eleType !== 'button' || isHS || permAction[cell.uuid]
+            return cell.eleType !== 'button' || skip || permAction[cell.uuid]
           })
           card.backElements = card.backElements.filter(cell => {
             if (cell.eleType === 'button') {
@@ -646,7 +646,7 @@
             } else if (['text', 'number', 'link'].includes(cell.eleType) && !cell.height && _hasheight) {
               cell.innerHeight = 'auto'
             }
-            return cell.eleType !== 'button' || isHS || permAction[cell.uuid]
+            return cell.eleType !== 'button' || skip || permAction[cell.uuid]
           })
         })
       } else if (item.type === 'balcony') {
@@ -672,7 +672,7 @@
             cell.innerHeight = 'auto'
           }
 
-          return cell.eleType !== 'button' || isHS || permAction[cell.uuid]
+          return cell.eleType !== 'button' || skip || permAction[cell.uuid]
         })
       } else if ((item.type === 'table' && item.subtype === 'tablecard') || item.type === 'carousel') {
         item.subcards && item.subcards.forEach(card => {
@@ -700,7 +700,7 @@
             } else if (['text', 'number', 'link'].includes(cell.eleType) && !cell.height && _hasheight) {
               cell.innerHeight = 'auto'
             }
-            return cell.eleType !== 'button' || isHS || permAction[cell.uuid]
+            return cell.eleType !== 'button' || skip || permAction[cell.uuid]
           })
         })
       } else if (item.type === 'table' && item.subtype === 'normaltable') {
@@ -726,7 +726,7 @@
               cell.style = {...cell.style, ...cell.btnstyle}
             }
 
-            return isHS || permAction[cell.uuid]
+            return skip || permAction[cell.uuid]
           })
           return col.elements.length !== 0
         })
diff --git a/src/utils/utils-custom.js b/src/utils/utils-custom.js
index 621c33c..7e09edf 100644
--- a/src/utils/utils-custom.js
+++ b/src/utils/utils-custom.js
@@ -667,6 +667,8 @@
       })
     }
     if (item.type === 'topbar') {
+      item.wrap.name = ''
+      item.name = ''
       if (item.search && item.search.fields) {
         item.search.fields = item.search.fields.map(cell => {
           cell.uuid = this.getuuid()
diff --git a/src/views/appmanage/submutilform/index.jsx b/src/views/appmanage/submutilform/index.jsx
index c374caf..86c5739 100644
--- a/src/views/appmanage/submutilform/index.jsx
+++ b/src/views/appmanage/submutilform/index.jsx
@@ -1,6 +1,6 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import { Form, Row, Col, Select, Radio, Input, Tooltip, Icon, notification, InputNumber } from 'antd'
+import { Form, Row, Col, Select, Radio, Input, Tooltip, Icon, notification, InputNumber, Checkbox } from 'antd'
 
 import asyncComponent from '@/utils/asyncComponent'
 import './index.scss'
@@ -50,6 +50,10 @@
         }
       })
     })
+  }
+
+  onChange = (vals) => {
+    this.setState({user_binding: vals})
   }
 
   /**
@@ -118,7 +122,7 @@
           <Col span={12}>
             <Form.Item label="鏉冮檺绠$悊">
               {getFieldDecorator('role_type', {
-                initialValue: card ? card.role_type || 'true' : 'true'
+                initialValue: card ? card.role_type || 'false' : 'false'
               })(
                 <Radio.Group>
                   <Radio value="true">鍚敤</Radio>
@@ -127,41 +131,6 @@
               )}
             </Form.Item>
           </Col>
-          {typename !== 'pc' ? <Col span={12}>
-            <Form.Item label={
-              <Tooltip placement="topLeft" title="浣跨敤寰俊鎺堟潈鐧诲綍鏃讹紝鏄惁闇�瑕佺粦瀹氱敤鎴枫��">
-                <Icon type="question-circle" />
-                鐢ㄦ埛缁戝畾
-              </Tooltip>
-            }>
-              {getFieldDecorator('user_binding', {
-                initialValue: user_binding
-              })(
-                <Select mode="multiple">
-                  <Select.Option value="uname_pwd">鐢ㄦ埛鍚�</Select.Option>
-                  <Select.Option value="sms_vcode">鎵嬫満鍙�</Select.Option>
-                </Select>
-              )}
-            </Form.Item>
-          </Col> : null}
-          {typename !== 'pc' ? <Col span={12}>
-            <Form.Item label={
-              <Tooltip placement="topLeft" title="鐭俊妯℃澘鍙湪绠$悊绯荤粺 HS-濂囦簯鐭俊妯℃澘 澶勬坊鍔犮��">
-                <Icon type="question-circle" />
-                鐭俊妯℃澘
-              </Tooltip>
-            }>
-              {getFieldDecorator('sms_id', {
-                initialValue: card ? card.sms_id || '' : ''
-              })(
-                <Select allowClear>
-                  {msgs.map(option =>
-                    <Select.Option key={option.ID} value={option.ID}>{option.SignName + ' - ' + option.TemplateCode}</Select.Option>
-                  )}
-                </Select>
-              )}
-            </Form.Item>
-          </Col> : null}
           <Col span={12}>
             <Form.Item label="鐨偆">
               {getFieldDecorator('css', {
@@ -186,6 +155,45 @@
               )}
             </Form.Item>
           </Col>
+          {typename !== 'pc' ? <Col span={12}>
+            <Form.Item label={
+              <Tooltip placement="topLeft" title="浣跨敤鍏紬鍙锋巿鏉冪櫥褰曟椂锛屾槸鍚﹂渶瑕佺粦瀹氱敤鎴枫��">
+                <Icon type="question-circle" />
+                鐢ㄦ埛缁戝畾
+              </Tooltip>
+            }>
+              {getFieldDecorator('user_binding', {
+                initialValue: user_binding
+              })(
+                <Checkbox.Group onChange={this.onChange}>
+                  <Checkbox value="uname_pwd">璐﹀彿</Checkbox>
+                  <Checkbox value="sms_vcode">鎵嬫満鐭俊</Checkbox>
+                </Checkbox.Group>
+              )}
+            </Form.Item>
+          </Col> : null}
+          {typename !== 'pc' && user_binding.includes('sms_vcode') ? <Col span={12}>
+            <Form.Item label={
+              <Tooltip placement="topLeft" title="鐭俊妯℃澘鍙湪绠$悊绯荤粺 HS-濂囦簯鐭俊妯℃澘 澶勬坊鍔犮��">
+                <Icon type="question-circle" />
+                鐭俊妯℃澘
+              </Tooltip>
+            }>
+              {getFieldDecorator('sms_id', {
+                initialValue: card ? card.sms_id || '' : '',
+                rules: [{
+                  required: true,
+                  message: '浣跨敤鎵嬫満鐭俊鏃惰閫夋嫨鐭俊妯℃澘!'
+                }]
+              })(
+                <Select allowClear>
+                  {msgs.map(option =>
+                    <Select.Option key={option.ID} value={option.ID}>{option.SignName + ' - ' + option.TemplateCode}</Select.Option>
+                  )}
+                </Select>
+              )}
+            </Form.Item>
+          </Col> : null}
           <Col span={12}>
             <Form.Item label="鏍囬">
               {getFieldDecorator('title', {
@@ -202,7 +210,7 @@
               )}
             </Form.Item>
           </Col>
-          <Col span={12}>
+          {typename !== 'pc' && user_binding.length > 0 ? <Col span={12}>
             <Form.Item label={
               <Tooltip placement="topLeft" title="浣跨敤寰俊鎺堟潈鐧诲綍鏃讹紝缁戝畾鐢ㄦ埛椤甸潰鐨勭増鏉冨0鏄庯紝娉細鍙坊鍔爃tml鏍囩銆�">
                 <Icon type="question-circle" />
@@ -213,16 +221,21 @@
                 initialValue: card ? card.copyright || '' : ''
               })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)}
             </Form.Item>
-          </Col>
-          <Col span={12}>
-            <Form.Item label="LOGO">
+          </Col> : null}
+          {typename !== 'pc' && user_binding.length > 0 ? <Col span={12}>
+            <Form.Item label={
+              <Tooltip placement="topLeft" title="浣跨敤寰俊鎺堟潈鐧诲綍鏃讹紝缁戝畾鐢ㄦ埛椤甸潰鐨凩OGO銆�">
+                <Icon type="question-circle" />
+                LOGO
+              </Tooltip>
+            }>
               {getFieldDecorator('logo', {
                 initialValue: card ? card.logo : ''
               })(
                 <SourceComponent type="picture" placement="right"/>
               )}
             </Form.Item>
-          </Col>
+          </Col> : null}
           {typename !== 'pc' ? <Col span={12}>
             <Form.Item label={
               <Tooltip placement="topLeft" title="鍦ㄤ娇鐢ㄦ槑绉戜簯APP鏃讹紝椤甸潰鐨勫垏鎹㈡ā寮�">
@@ -244,7 +257,7 @@
             <Form.Item label={
               <Tooltip placement="topLeft" title="鍦ㄤ娇鐢ㄦ槑绉戜簯APP鏃讹紝涓斿湪app妯″紡涓棤鏁�">
                 <Icon type="question-circle" />
-                寤惰繜鍔犺浇
+                寤惰繜鍔犺浇(ms)
               </Tooltip>
             }>
               {getFieldDecorator('delay', {
diff --git a/src/views/appmanage/submutilform/index.scss b/src/views/appmanage/submutilform/index.scss
index 6aee97d..92b60f8 100644
--- a/src/views/appmanage/submutilform/index.scss
+++ b/src/views/appmanage/submutilform/index.scss
@@ -16,4 +16,10 @@
   .ant-input-number {
     width: 100%;
   }
+  .ant-form-item-control {
+    height: 40px;
+  }
+  .ant-form-item-with-help {
+    margin-bottom: 24px;
+  }
 }
\ No newline at end of file
diff --git a/src/views/menudesign/index.jsx b/src/views/menudesign/index.jsx
index 3de9a7d..8984ed0 100644
--- a/src/views/menudesign/index.jsx
+++ b/src/views/menudesign/index.jsx
@@ -918,6 +918,12 @@
 
     this.setState({config})
     window.GLOB.customMenu = config
+
+    notification.success({
+      top: 92,
+      message: '绮樿创鎴愬姛锛�',
+      duration: 2
+    })
   }
 
   render () {
diff --git a/src/views/menudesign/menuform/index.jsx b/src/views/menudesign/menuform/index.jsx
index c2f987e..b1bab0a 100644
--- a/src/views/menudesign/menuform/index.jsx
+++ b/src/views/menudesign/menuform/index.jsx
@@ -283,6 +283,23 @@
               )}
             </Form.Item>
           </Col>
+          <Col span={24}>
+            <Form.Item label={
+              <Tooltip placement="topLeft" title="璺宠繃鏉冮檺楠岃瘉鏃讹紝椤甸潰涓粍浠跺強鎸夐挳涓嶅湪杩涜鏉冮檺鎺у埗銆�">
+                <Icon type="question-circle" />
+                鏉冮檺楠岃瘉
+              </Tooltip>
+            }>
+              {getFieldDecorator('permission', {
+                initialValue: config.permission || 'true'
+              })(
+                <Radio.Group onChange={(e) => {this.selectChange('permission', e.target.value)}}>
+                  <Radio value="true">浣跨敤</Radio>
+                  <Radio value="false">涓嶄娇鐢�</Radio>
+                </Radio.Group>
+              )}
+            </Form.Item>
+          </Col>
           {config.cacheUseful === 'true' ? <Col span={24}>
             <Form.Item label="鍗曚綅">
               {getFieldDecorator('timeUnit', {
diff --git a/src/views/mobdesign/index.jsx b/src/views/mobdesign/index.jsx
index 8b900b8..26603f4 100644
--- a/src/views/mobdesign/index.jsx
+++ b/src/views/mobdesign/index.jsx
@@ -942,7 +942,7 @@
                 Typename: sessionStorage.getItem('typename'),
                 MenuName: item.name || '',
                 PageParam: JSON.stringify({Template: item.type}),
-                open_edition: item.open_edition || '',
+                open_edition: _item.open_edition || '',
                 menus_rolelist: window.btoa(window.encodeURIComponent(JSON.stringify(roles))),
                 LText: '',
                 LTexttb: ''
@@ -1181,10 +1181,25 @@
   insert = (item) => {
     let config = fromJS(this.state.config).toJS()
 
+    if (item.type === 'topbar' && config.components.findIndex(m => m.type === 'topbar') > -1) {
+      notification.warning({
+        top: 92,
+        message: '瀵艰埅鏍忎笉鍙噸澶嶆坊鍔狅紒',
+        duration: 5
+      })
+      return
+    }
+
     config.components.push(item)
 
     this.setState({config})
     window.GLOB.customMenu = config
+
+    notification.success({
+      top: 92,
+      message: '绮樿创鎴愬姛锛�',
+      duration: 2
+    })
   }
 
   refreshView = () => {
diff --git a/src/views/mobdesign/menuform/index.jsx b/src/views/mobdesign/menuform/index.jsx
index cedb3a5..7e656b6 100644
--- a/src/views/mobdesign/menuform/index.jsx
+++ b/src/views/mobdesign/menuform/index.jsx
@@ -102,6 +102,23 @@
               )}
             </Form.Item>
           </Col>
+          <Col span={24}>
+            <Form.Item label={
+              <Tooltip placement="topLeft" title="璺宠繃鏉冮檺楠岃瘉鏃讹紝椤甸潰涓粍浠跺強鎸夐挳涓嶅湪杩涜鏉冮檺鎺у埗銆�">
+                <Icon type="question-circle" />
+                鏉冮檺楠岃瘉
+              </Tooltip>
+            }>
+              {getFieldDecorator('permission', {
+                initialValue: config.permission || 'true'
+              })(
+                <Radio.Group onChange={(e) => {this.selectChange('permission', e.target.value)}}>
+                  <Radio value="true">浣跨敤</Radio>
+                  <Radio value="false">涓嶄娇鐢�</Radio>
+                </Radio.Group>
+              )}
+            </Form.Item>
+          </Col>
           {config.cacheUseful === 'true' ? <Col span={24}>
             <Form.Item label="鍗曚綅">
               {getFieldDecorator('timeUnit', {
diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx
index 8802d68..8bd16f7 100644
--- a/src/views/pcdesign/index.jsx
+++ b/src/views/pcdesign/index.jsx
@@ -1459,6 +1459,12 @@
 
     this.setState({config})
     window.GLOB.customMenu = config
+
+    notification.success({
+      top: 92,
+      message: '绮樿创鎴愬姛锛�',
+      duration: 2
+    })
   }
 
   refreshView = () => {
diff --git a/src/views/pcdesign/menuform/index.jsx b/src/views/pcdesign/menuform/index.jsx
index cedb3a5..7e656b6 100644
--- a/src/views/pcdesign/menuform/index.jsx
+++ b/src/views/pcdesign/menuform/index.jsx
@@ -102,6 +102,23 @@
               )}
             </Form.Item>
           </Col>
+          <Col span={24}>
+            <Form.Item label={
+              <Tooltip placement="topLeft" title="璺宠繃鏉冮檺楠岃瘉鏃讹紝椤甸潰涓粍浠跺強鎸夐挳涓嶅湪杩涜鏉冮檺鎺у埗銆�">
+                <Icon type="question-circle" />
+                鏉冮檺楠岃瘉
+              </Tooltip>
+            }>
+              {getFieldDecorator('permission', {
+                initialValue: config.permission || 'true'
+              })(
+                <Radio.Group onChange={(e) => {this.selectChange('permission', e.target.value)}}>
+                  <Radio value="true">浣跨敤</Radio>
+                  <Radio value="false">涓嶄娇鐢�</Radio>
+                </Radio.Group>
+              )}
+            </Form.Item>
+          </Col>
           {config.cacheUseful === 'true' ? <Col span={24}>
             <Form.Item label="鍗曚綅">
               {getFieldDecorator('timeUnit', {
diff --git a/src/views/rolemanage/index.jsx b/src/views/rolemanage/index.jsx
index dccd8db..255cc5a 100644
--- a/src/views/rolemanage/index.jsx
+++ b/src/views/rolemanage/index.jsx
@@ -791,8 +791,8 @@
             </div>
             <div className="right-view">
               <div className="app-action">
-                <Button className="mk-primary" onClick={this.initTree}>鍒濆鍖�</Button>
-                <Button className="mk-purple" onClick={this.syncTree}>鍚屾</Button>
+                <Button className="mk-primary" onClick={this.initTree}>鍚屾</Button>
+                {/* <Button className="mk-purple" onClick={this.syncTree}>鍚屾</Button> */}
                 <Button className="mk-green save" onClick={this.saveTree}>淇濆瓨</Button>
               </div>
               {trees && trees.length ? <Tree

--
Gitblit v1.8.0