From e5fc2d92b1036aabf9ffc2c9706ed401bd9735c8 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 09 九月 2021 18:14:29 +0800
Subject: [PATCH] 2021-09-09

---
 src/views/design/header/index.jsx                           |    2 
 src/views/login/loginform.jsx                               |    1 
 src/menu/components/table/normal-table/options.jsx          |   15 ++
 src/tabviews/custom/components/share/normalTable/index.jsx  |   16 ++
 public/README.txt                                           |    5 
 src/views/mobdesign/index.jsx                               |    2 
 src/views/menudesign/index.jsx                              |    2 
 src/menu/datasource/verifycard/columnform/index.jsx         |   26 ++--
 src/tabviews/custom/components/card/data-card/index.jsx     |   79 ++++++++++--
 src/tabviews/custom/components/card/prop-card/index.jsx     |   17 ++
 src/tabviews/zshare/mutilform/mkCheckCard/index.scss        |   12 +
 src/tabviews/zshare/mutilform/mkCheckCard/index.jsx         |    4 
 src/menu/components/card/cardcellcomponent/index.jsx        |    3 
 src/menu/components/card/data-card/options.jsx              |   17 ++
 src/menu/components/share/actioncomponent/index.scss        |    2 
 src/views/pcdesign/index.jsx                                |    2 
 src/tabviews/custom/components/table/normal-table/index.jsx |   52 +++++++-
 src/tabviews/zshare/mutilform/checkCard/index.jsx           |    2 
 src/menu/components/card/cardcomponent/index.jsx            |    4 
 src/menu/components/card/data-card/index.jsx                |    6 
 src/tabviews/zshare/actionList/printbutton/index.jsx        |   13 +
 src/tabviews/zshare/mutilform/checkCard/index.scss          |    6 
 src/views/design/header/versions/index.jsx                  |   21 ---
 src/menu/components/table/normal-table/index.jsx            |    6 
 src/menu/components/table/normal-table/columns/index.jsx    |   15 +-
 25 files changed, 240 insertions(+), 90 deletions(-)

diff --git a/public/README.txt b/public/README.txt
index 5429398..bccb451 100644
--- a/public/README.txt
+++ b/public/README.txt
@@ -8,4 +8,7 @@
 lineColor         -- 鐧诲綍椤靛垎鍓茬嚎棰滆壊
 filter            -- 椤甸潰婊ら暅锛屽�间负'true'鏃讹紝椤甸潰鏄剧ず涓洪粦鐧借壊
 defaultApp        -- 榛樿搴旂敤锛岀郴缁熼渶榛樿鎵撳紑鏌愪釜瀛愬簲鐢ㄦ椂闇�濉啓搴旂敤缂栫爜锛岀┖鍊兼椂璺宠浆鍒扮鐞嗗悗鍙�
-defaultLang       -- 榛樿鎵撳紑鐨勫瓙搴旂敤璇█绫诲瀷锛屽~鍏efaultApp鏃舵湁鏁�
\ No newline at end of file
+defaultLang       -- 榛樿鎵撳紑鐨勫瓙搴旂敤璇█绫诲瀷锛屽~鍏efaultApp鏃舵湁鏁�
+WXAppID           -- 浣跨敤鍏紬鍙锋椂锛岀粦瀹氱殑鍏紬鍙稩D
+debugger          -- debugger妯″紡鏄惁寮�鍚紝寮�鍚悗绉诲姩绔瓙搴旂敤涓細鏈夋帶鍒跺彴
+licenseKey        -- 璁稿彲瀵嗛挜锛屽湪鍐呴儴缃戠粶涓娇鐢ㄧ郴缁熸椂锛屼細璺宠繃epc楠岃瘉
\ No newline at end of file
diff --git a/src/menu/components/card/cardcellcomponent/index.jsx b/src/menu/components/card/cardcellcomponent/index.jsx
index 5a141d1..58f38e9 100644
--- a/src/menu/components/card/cardcellcomponent/index.jsx
+++ b/src/menu/components/card/cardcellcomponent/index.jsx
@@ -581,12 +581,11 @@
     btn.eleType = 'button'
 
     let _elements = [...this.state.elements, btn]
-    let _action = cards.action.filter(item => item.uuid !== id)
 
     this.setState({
       elements: _elements
     }, () => {
-      this.props.updateElement(_elements, _action)
+      this.props.updateElement(_elements, btn)
     })
   }
 
diff --git a/src/menu/components/card/cardcomponent/index.jsx b/src/menu/components/card/cardcomponent/index.jsx
index 0709e4f..e2adfc7 100644
--- a/src/menu/components/card/cardcomponent/index.jsx
+++ b/src/menu/components/card/cardcomponent/index.jsx
@@ -85,7 +85,7 @@
     this.props.updateElement(_card)
   }
 
-  updateCard = (elements) => {
+  updateCard = (elements, btn) => {
     const { card, side } = this.state
 
     let _card = {}
@@ -100,7 +100,7 @@
       card: _card
     })
 
-    this.props.updateElement(_card)
+    this.props.updateElement(_card, btn)
   }
 
   changeSide = () => {
diff --git a/src/menu/components/card/data-card/index.jsx b/src/menu/components/card/data-card/index.jsx
index 4e09ba6..6f792a0 100644
--- a/src/menu/components/card/data-card/index.jsx
+++ b/src/menu/components/card/data-card/index.jsx
@@ -178,7 +178,7 @@
   /**
    * @description 鍗曚釜鍗$墖淇℃伅鏇存柊
    */
-  updateCard = (cell) => {
+  updateCard = (cell, btn) => {
     let card = fromJS(this.state.card).toJS()
 
     card.subcards = card.subcards.map(item => {
@@ -186,6 +186,10 @@
       return item
     })
 
+    if (btn) {
+      card.action = card.action.filter(item => item.uuid !== btn.uuid)
+    }
+
     this.setState({card})
 
     this.props.updateConfig(card)
diff --git a/src/menu/components/card/data-card/options.jsx b/src/menu/components/card/data-card/options.jsx
index 6f8db7b..82a507f 100644
--- a/src/menu/components/card/data-card/options.jsx
+++ b/src/menu/components/card/data-card/options.jsx
@@ -87,9 +87,22 @@
         {value: 'checkbox', label: '澶氶��', forbid: subtype === 'propcard'},
       ],
       controlFields: [
-        {field: 'checkAll', values: ['checkbox']}
+        {field: 'checkAll', values: ['checkbox']},
+        {field: 'selected', values: ['radio', 'checkbox']},
       ],
       forbid: subtype === 'tablecard'
+    },
+    {
+      type: 'radio',
+      field: 'selected',
+      label: '棣栬閫変腑',
+      initval: wrap.selected || 'false',
+      required: false,
+      options: [
+        {value: 'false', label: '鏃�'},
+        {value: 'init', label: '鍒濆鍖�'},
+        {value: 'always', label: '鏁版嵁鍔犺浇', forbid: subtype === 'propcard'},
+      ]
     },
     {
       type: 'radio',
@@ -165,7 +178,7 @@
   ]
 
   return cardWrapForm.map(item => {
-    if (['pagestyle', 'cardType'].includes(item.field)) {
+    if (['pagestyle', 'cardType', 'selected'].includes(item.field)) {
       item.options = item.options.filter(option => !option.forbid)
     }
 
diff --git a/src/menu/components/share/actioncomponent/index.scss b/src/menu/components/share/actioncomponent/index.scss
index baca0f7..48de527 100644
--- a/src/menu/components/share/actioncomponent/index.scss
+++ b/src/menu/components/share/actioncomponent/index.scss
@@ -24,7 +24,7 @@
     button {
       cursor: move;
       height: auto;
-      min-height: 32px;
+      min-height: 28px;
       .anticon-table {
         font-size: 10px;
         position: absolute;
diff --git a/src/menu/components/table/normal-table/columns/index.jsx b/src/menu/components/table/normal-table/columns/index.jsx
index 2e4d8b8..0fd6b6e 100644
--- a/src/menu/components/table/normal-table/columns/index.jsx
+++ b/src/menu/components/table/normal-table/columns/index.jsx
@@ -123,9 +123,9 @@
 )
 
 class EditableColumnCell extends Component {
-  updateCard = (vals, action) => {
+  updateCard = (vals, btn) => {
     const { column } = this.props
-    this.props.upComponent({...column, elements: vals}, action)
+    this.props.upComponent({...column, elements: vals}, btn)
   }
 
   shouldComponentUpdate (nextProps, nextState) {
@@ -269,18 +269,19 @@
     })
   }
 
-  updateCol = (col, action) => {
+  updateCol = (col, btn) => {
     let _columns = fromJS(this.state.columns).toJS()
     _columns = this.loopCol(_columns, col)
 
     this.setState({
       columns: _columns,
     }, () => {
-      if (action) {
-        this.props.updatecolumn({...this.props.config, cols: _columns, action})
-      } else {
-        this.props.updatecolumn({...this.props.config, cols: _columns})
+      let config = {...this.props.config, cols: _columns}
+      if (btn) {
+        config.action = config.action.filter(item => item.uuid !== btn.uuid)
       }
+
+      this.props.updatecolumn(config)
     })
   }
 
diff --git a/src/menu/components/table/normal-table/index.jsx b/src/menu/components/table/normal-table/index.jsx
index b97baf4..075ebfa 100644
--- a/src/menu/components/table/normal-table/index.jsx
+++ b/src/menu/components/table/normal-table/index.jsx
@@ -59,9 +59,9 @@
           { origin: true, uuid: Utils.getuuid(), label: 'label', type: 'select', match: 'equal' }
         ],
         action: [
-          { origin: true, uuid: Utils.getuuid(), label: '娣诲姞', intertype: 'system', OpenType: 'pop', icon: 'plus', class: 'green', style: {color: 'rgb(255, 255, 255)', background: 'rgb(38, 194, 129)', marginRight: '15px'} },
-          { origin: true, uuid: Utils.getuuid(), label: '淇敼', intertype: 'system', OpenType: 'pop', icon: 'form', class: 'purple', style: {color: 'rgb(255, 255, 255)', background: 'rgb(142, 68, 173)', marginRight: '15px'} },
-          { origin: true, uuid: Utils.getuuid(), label: '鍒犻櫎', intertype: 'system', OpenType: 'prompt', icon: 'delete', class: 'danger', style: {color: 'rgb(255, 255, 255)', background: 'rgb(255, 77, 79)', marginRight: '15px'} }
+          { origin: true, uuid: Utils.getuuid(), label: '娣诲姞', intertype: 'system', OpenType: 'pop', execSuccess: 'grid', icon: 'plus', class: 'green', style: {color: 'rgb(255, 255, 255)', background: 'rgb(38, 194, 129)', marginRight: '15px'} },
+          { origin: true, uuid: Utils.getuuid(), label: '淇敼', intertype: 'system', OpenType: 'pop', execSuccess: 'grid', icon: 'form', class: 'purple', style: {color: 'rgb(255, 255, 255)', background: 'rgb(142, 68, 173)', marginRight: '15px'} },
+          { origin: true, uuid: Utils.getuuid(), label: '鍒犻櫎', intertype: 'system', OpenType: 'prompt', execSuccess: 'grid', Ot: 'required', icon: 'delete', class: 'danger', style: {color: 'rgb(255, 255, 255)', background: 'rgb(255, 77, 79)', marginRight: '15px'} }
         ],
         name: card.name,
         subtype: card.subtype,
diff --git a/src/menu/components/table/normal-table/options.jsx b/src/menu/components/table/normal-table/options.jsx
index 4946bdf..0d0e698 100644
--- a/src/menu/components/table/normal-table/options.jsx
+++ b/src/menu/components/table/normal-table/options.jsx
@@ -41,6 +41,9 @@
         {value: '', label: '涓嶅彲閫�'},
         {value: 'radio', label: '鍗曢��'},
         {value: 'checkbox', label: '澶氶��'},
+      ],
+      controlFields: [
+        {field: 'selected', values: ['radio', 'checkbox']},
       ]
     },
     {
@@ -101,6 +104,18 @@
       ]
     },
     {
+      type: 'radio',
+      field: 'selected',
+      label: '棣栬閫変腑',
+      initval: wrap.selected || 'false',
+      required: false,
+      options: [
+        {value: 'false', label: '鏃�'},
+        {value: 'init', label: '鍒濆鍖�'},
+        {value: 'always', label: '鏁版嵁鍔犺浇'},
+      ]
+    },
+    {
       type: 'color',
       field: 'borderColor',
       label: '杈规棰滆壊',
diff --git a/src/menu/datasource/verifycard/columnform/index.jsx b/src/menu/datasource/verifycard/columnform/index.jsx
index 4af4387..3b054c7 100644
--- a/src/menu/datasource/verifycard/columnform/index.jsx
+++ b/src/menu/datasource/verifycard/columnform/index.jsx
@@ -43,19 +43,6 @@
       <Form {...formItemLayout} className="verify-form" id="verifycard1">
         <Row gutter={24}>
           <Col span={6}>
-            <Form.Item label={'瀛楁'}>
-              {getFieldDecorator('field', {
-                initialValue: '',
-                rules: [
-                  {
-                    required: true,
-                    message: dict['form.required.input'] + '瀛楁!'
-                  }
-                ]
-              })(<Input placeholder="" autoComplete="off" />)}
-            </Form.Item>
-          </Col>
-          <Col span={6}>
             <Form.Item label={'鍚嶇О'}>
               {getFieldDecorator('label', {
                 initialValue: '',
@@ -69,6 +56,19 @@
             </Form.Item>
           </Col>
           <Col span={6}>
+            <Form.Item label={'瀛楁'}>
+              {getFieldDecorator('field', {
+                initialValue: '',
+                rules: [
+                  {
+                    required: true,
+                    message: dict['form.required.input'] + '瀛楁!'
+                  }
+                ]
+              })(<Input placeholder="" autoComplete="off" />)}
+            </Form.Item>
+          </Col>
+          <Col span={6}>
             <Form.Item label={'鏁版嵁绫诲瀷'}>
               {getFieldDecorator('datatype', {
                 initialValue: '',
diff --git a/src/tabviews/custom/components/card/data-card/index.jsx b/src/tabviews/custom/components/card/data-card/index.jsx
index 5ec9396..704d0d3 100644
--- a/src/tabviews/custom/components/card/data-card/index.jsx
+++ b/src/tabviews/custom/components/card/data-card/index.jsx
@@ -43,6 +43,7 @@
     total: null,
     precards: [],
     nextcards: [],
+    selected: 'false'
   }
 
   UNSAFE_componentWillMount () {
@@ -100,6 +101,11 @@
       _config.wrap.cardFloat = null
     }
 
+    let selected = 'false'
+    if (_config.wrap.selected === 'always' || _config.wrap.selected === 'init') {
+      selected = _config.wrap.selected
+    }
+
     if (_data) {
       _data = _data.map((item, index) => {
         item.key = index
@@ -108,6 +114,15 @@
         item.$Index = index + 1 + ''
         return item
       })
+
+      if (selected !== 'false') {
+        setTimeout(() => {
+          this.checkTopLine()
+        }, 200)
+        if (selected === 'init') {
+          selected = 'false'
+        }
+      }
     }
 
     _config.columns.forEach(item => {
@@ -128,6 +143,7 @@
     })
 
     this.setState({
+      selected,
       precards,
       nextcards,
       sync: _sync,
@@ -157,21 +173,29 @@
   }
 
   UNSAFE_componentWillReceiveProps (nextProps) {
-    const { sync, config, BID } = this.state
+    const { sync, config, BID, selected } = this.state
 
     if (sync && !is(fromJS(this.props.data), fromJS(nextProps.data))) {
       let _data = []
       if (nextProps.data && nextProps.data[config.dataName]) {
         _data = nextProps.data[config.dataName] || []
-      }
+        _data = _data.map((item, index) => {
+          item.key = index
+          item.$$uuid = item[config.setting.primaryKey] || ''
+          item.$$BID = BID || ''
+          item.$Index = index + 1 + ''
+          return item
+        })
 
-      _data = _data.map((item, index) => {
-        item.key = index
-        item.$$uuid = item[config.setting.primaryKey] || ''
-        item.$$BID = BID || ''
-        item.$Index = index + 1 + ''
-        return item
-      })
+        if (selected !== 'false') {
+          setTimeout(() => {
+            this.checkTopLine()
+          }, 200)
+          if (selected === 'init') {
+            this.setState({selected: 'false'})
+          }
+        }
+      }
 
       this.setState({sync: false, data: _data})
     } else if (config.setting.syncRefresh && nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) {
@@ -222,6 +246,23 @@
     } else if (position === 'popclose') {                                      // 鏍囩鍏抽棴鍒锋柊
       config.setting.supModule && MKEmitter.emit('reloadData', config.setting.supModule, (BID || 'empty'))
       btn.$tabId && MKEmitter.emit('refreshPopButton', btn.$tabId)
+    }
+  }
+
+  checkTopLine = () => {
+    const { config, data } = this.state
+
+    if (!data || data.length === 0) return
+
+    this.setState({
+      activeKey: 0,
+      selectKeys: [0],
+      selectedData: [data[0]]
+    })
+
+    MKEmitter.emit('resetSelectLine', config.uuid, data[0].$$uuid, data[0])
+    if (config.setting.$hasSyncModule) {
+      MKEmitter.emit('syncBalconyData', config.uuid, [data[0]], data.length === 1)
     }
   }
 
@@ -307,7 +348,7 @@
 
   async loadData () {
     const { mainSearch, menuType } = this.props
-    const { config, arr_field, pageIndex, search, BID, BData } = this.state
+    const { config, arr_field, pageIndex, search, BID, BData, selected } = this.state
 
     if (config.setting.supModule && !BID) { // BID 涓嶅瓨鍦ㄦ椂锛屼笉鍋氭煡璇�
       this.setState({
@@ -355,6 +396,20 @@
         start = config.setting.pageSize * (pageIndex - 1) + 1
       }
 
+      if (selected !== 'false') {
+        setTimeout(() => {
+          this.checkTopLine()
+        }, 200)
+        if (selected === 'init') {
+          this.setState({selected: 'false'})
+        }
+      } else {
+        MKEmitter.emit('resetSelectLine', config.uuid, '', '')
+      }
+      if (config.setting.$hasSyncModule) {
+        MKEmitter.emit('syncBalconyData', config.uuid, [], false)
+      }
+
       this.setState({
         activeKey: '',
         selectKeys: [],
@@ -370,10 +425,6 @@
         total: result.total,
         loading: false
       })
-      MKEmitter.emit('resetSelectLine', config.uuid, '', '')
-      if (config.setting.$hasSyncModule) {
-        MKEmitter.emit('syncBalconyData', config.uuid, [], false)
-      }
     } else {
       this.setState({
         loading: false
diff --git a/src/tabviews/custom/components/card/prop-card/index.jsx b/src/tabviews/custom/components/card/prop-card/index.jsx
index c5d6183..db60d7e 100644
--- a/src/tabviews/custom/components/card/prop-card/index.jsx
+++ b/src/tabviews/custom/components/card/prop-card/index.jsx
@@ -105,6 +105,12 @@
       _config.subcards[0].offset = offset
     }
 
+    if (_config.subcards[0] && (_config.wrap.selected === 'always' || _config.wrap.selected === 'init')) {
+      setTimeout(() => {
+        this.checkTopLine()
+      }, 200)
+    }
+
     this.setState({
       sync: _sync,
       data: _data,
@@ -164,6 +170,16 @@
         this.loadData()
       })
     }
+  }
+
+  checkTopLine = () => {
+    const { config, data } = this.state
+
+    this.setState({
+      activeKey: 0
+    })
+
+    MKEmitter.emit('resetSelectLine', config.uuid, (config.subcards[0].setting.primaryId || ''), data)
   }
 
   handleTimer = () => {
@@ -299,7 +315,6 @@
       _data.$$BData = BData
 
       this.setState({
-        activeKey: '',
         data: _data,
         loading: false
       })
diff --git a/src/tabviews/custom/components/share/normalTable/index.jsx b/src/tabviews/custom/components/share/normalTable/index.jsx
index 80ee2da..b71831a 100644
--- a/src/tabviews/custom/components/share/normalTable/index.jsx
+++ b/src/tabviews/custom/components/share/normalTable/index.jsx
@@ -500,6 +500,7 @@
   }
 
   componentDidMount () {
+    MKEmitter.addListener('mkCheckTopLine', this.mkCheckTopLine)
     MKEmitter.addListener('mkCheckAll', this.mkCheckAll)
     MKEmitter.addListener('resetTable', this.resetTable)
   }
@@ -511,10 +512,25 @@
     this.setState = () => {
       return
     }
+    MKEmitter.removeListener('mkCheckTopLine', this.mkCheckTopLine)
     MKEmitter.removeListener('mkCheckAll', this.mkCheckAll)
     MKEmitter.removeListener('resetTable', this.resetTable)
   }
 
+  mkCheckTopLine = (menuId) => {
+    const { MenuID, data, setting } = this.props
+
+    if (MenuID !== menuId || !data || data.length === 0) return
+
+    this.changedata(0)
+    this.setState({ selectedRowKeys: [0], activeIndex: 0 })
+    this.props.chgSelectData([data[0]])
+
+    if (setting.$hasSyncModule) {
+      MKEmitter.emit('syncBalconyData', MenuID, [data[0]], data.length === 1)
+    }
+  }
+
   mkCheckAll = (menuId, checked) => {
     const { MenuID, data } = this.props
 
diff --git a/src/tabviews/custom/components/table/normal-table/index.jsx b/src/tabviews/custom/components/table/normal-table/index.jsx
index 8494aee..bfe5644 100644
--- a/src/tabviews/custom/components/table/normal-table/index.jsx
+++ b/src/tabviews/custom/components/table/normal-table/index.jsx
@@ -61,6 +61,11 @@
     let _cols = new Map()
     let _data = null
     let _sync = _config.setting.sync === 'true'
+    let setting = {..._config.setting, ..._config.wrap, style: {}}
+
+    if (setting.selected !== 'always' && setting.selected !== 'init') {
+      setting.selected = 'false'
+    }
 
     if (_config.setting.sync === 'true' && data) {
       _data = data[_config.dataName] || []
@@ -78,6 +83,15 @@
         item.$Index = index + 1 + ''
         return item
       })
+
+      if (setting.selected !== 'false') {
+        setTimeout(() => {
+          MKEmitter.emit('mkCheckTopLine', _config.uuid)
+        }, 200)
+        if (setting.selected === 'init') {
+          setting.selected = 'false'
+        }
+      }
     }
 
     _config.columns.forEach(item => {
@@ -97,7 +111,6 @@
       }
     })
 
-    let setting = {..._config.setting, ..._config.wrap, style: {}}
     if (setting.color) {
       setting.style.color = setting.color
     }
@@ -178,7 +191,17 @@
 
     let result = await Api.genericInterface(param)
     if (result.status) {
-      MKEmitter.emit('resetSelectLine', config.uuid, '', '') // 骞挎挱鏁版嵁鍒囨崲
+      if (setting.selected !== 'false') {
+        setTimeout(() => {
+          MKEmitter.emit('mkCheckTopLine', config.uuid)
+        }, 200)
+        if (setting.selected === 'init') {
+          this.setState({setting: {...setting, selected: 'false'}})
+        }
+      } else {
+        MKEmitter.emit('resetSelectLine', config.uuid, '', '') // 骞挎挱鏁版嵁鍒囨崲
+      }
+      
       reset && MKEmitter.emit('resetTable', config.uuid, repage) // 鍒楄〃閲嶇疆
 
       let start = 1
@@ -498,20 +521,29 @@
   }
 
   UNSAFE_componentWillReceiveProps(nextProps) {
-    const { sync, config, BID } = this.state
+    const { sync, config, setting, BID } = this.state
 
     if (sync && !is(fromJS(this.props.data), fromJS(nextProps.data))) {
       let _data = []
       if (nextProps.data && nextProps.data[config.dataName]) {
         _data = nextProps.data[config.dataName] || []
+        _data = _data.map((item, index) => {
+          item.key = index
+          item.$$uuid = item[config.setting.primaryKey] || ''
+          item.$$BID = BID || ''
+          item.$Index = index + 1 + ''
+          return item
+        })
+
+        if (setting.selected !== 'false') {
+          setTimeout(() => {
+            MKEmitter.emit('mkCheckTopLine', config.uuid)
+          }, 200)
+          if (setting.selected === 'init') {
+            this.setState({setting: {...setting, selected: 'false'}})
+          }
+        }
       }
-      _data = _data.map((item, index) => {
-        item.key = index
-        item.$$uuid = item[config.setting.primaryKey] || ''
-        item.$$BID = BID || ''
-        item.$Index = index + 1 + ''
-        return item
-      })
 
       this.setState({sync: false, data: _data})
     } else if (config.setting.syncRefresh && nextProps.mainSearch && !is(fromJS(this.props.mainSearch), fromJS(nextProps.mainSearch))) {
diff --git a/src/tabviews/zshare/actionList/printbutton/index.jsx b/src/tabviews/zshare/actionList/printbutton/index.jsx
index e1ae252..95a955f 100644
--- a/src/tabviews/zshare/actionList/printbutton/index.jsx
+++ b/src/tabviews/zshare/actionList/printbutton/index.jsx
@@ -385,6 +385,15 @@
       // 鑷畾涔夋墦鍗扮ず渚�
       // let defaultPrinter = printer.defaultPrinter || 'lackprinter'
       // let printers = {}
+      // let getuuid = () => {
+      //   let uuid = []
+      //   let _options = '0123456789abcdefghigklmnopqrstuv'
+      //   for (let i = 0; i < 32; i++) {
+      //     uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1))
+      //   }
+      //   uuid = uuid.join('')
+      //   return uuid
+      // }
       // if (printer.printerTypeList && printer.printerTypeList.length > 0) {
       //   printer.printerTypeList.forEach(cell => {
       //     if (cell.printer) {
@@ -445,7 +454,7 @@
       //     let _documents = []
       //     printdata[printer].forEach(item => {
       //       let _cell = {
-      //         documentID: new Date().getTime().toString(),
+      //         documentID: getuuid(),
       //         contents: []
       //       }
 
@@ -465,7 +474,7 @@
       //       requestID: '',
       //       version: '',
       //       task: {
-      //         taskID: new Date().getTime().toString(),
+      //         taskID: getuuid(),
       //         preview: false,
       //         printer: printer,
       //         documents: _documents
diff --git a/src/tabviews/zshare/mutilform/checkCard/index.jsx b/src/tabviews/zshare/mutilform/checkCard/index.jsx
index dcab326..b7b30ed 100644
--- a/src/tabviews/zshare/mutilform/checkCard/index.jsx
+++ b/src/tabviews/zshare/mutilform/checkCard/index.jsx
@@ -123,7 +123,7 @@
   render() {
     const { card } = this.props
     return (
-      <div className={'check-card-form-box' + (card.readonly ? ' readonly' : '')}>
+      <div className={'check-card-search-box' + (card.readonly ? ' readonly' : '')}>
         <Row gutter={12}>{this.getCards()}</Row>
       </div>
     )
diff --git a/src/tabviews/zshare/mutilform/checkCard/index.scss b/src/tabviews/zshare/mutilform/checkCard/index.scss
index ae18860..ce51901 100644
--- a/src/tabviews/zshare/mutilform/checkCard/index.scss
+++ b/src/tabviews/zshare/mutilform/checkCard/index.scss
@@ -1,4 +1,4 @@
-.check-card-form-box {
+.check-card-search-box {
   margin-top: 10px;
   margin-bottom: -10px;
   .card-cell {
@@ -72,7 +72,7 @@
     transform: rotate(45deg) scale(1) translate(-50%, -50%);
   }
 }
-.check-card-form-box:not(.readonly) {
+.check-card-search-box:not(.readonly) {
   .card-cell:not(.bg-control):hover {
     border-color: #1890ff;
     background: #1890ff;
@@ -90,7 +90,7 @@
     box-shadow: 0px 0px 4px #1890ff;
   }
 }
-.check-card-form-box.readonly {
+.check-card-search-box.readonly {
   .card-cell, .card-pic-cell {
     cursor: not-allowed;
   }
diff --git a/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx b/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx
index 2d1c1fe..4c5a527 100644
--- a/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx
+++ b/src/tabviews/zshare/mutilform/mkCheckCard/index.jsx
@@ -101,7 +101,7 @@
         }
 
         return <Col span={width} key={item.key}>
-          <div className={'card-cell' + (_active ? ' active' : '') + (_style ? ' bg-control' : '')} style={style} onClick={() => this.changeCard(item)}>
+          <div className={'card-cell' + (_active ? ' active' : '') + (_style ? ' bg-control' : '') + (item.$disabled ? ' disabled' : '')} style={style} onClick={() => this.changeCard(item)}>
             <div className="bg-mask" style={_style}></div>
             {fields.map(col => {
               return <span key={col.key} style={{color: col.color, fontSize: col.fontSize + 'px', height: col.fontSize * 1.5 + 'px', textAlign: col.align}}>{item[col.field]}</span>
@@ -119,7 +119,7 @@
         }
 
         return <Col span={width} key={item.key}>
-          <div className={'card-pic-cell ' + (_active ? 'active' : '')} onClick={() => this.changeCard(item)} style={{...style, paddingTop, backgroundImage: `url(${item.$url})`}}>
+          <div className={'card-pic-cell ' + (_active ? 'active' : '') + (item.$disabled ? ' disabled' : '')} onClick={() => this.changeCard(item)} style={{...style, paddingTop, backgroundImage: `url(${item.$url})`}}>
           </div>
         </Col>
       })
diff --git a/src/tabviews/zshare/mutilform/mkCheckCard/index.scss b/src/tabviews/zshare/mutilform/mkCheckCard/index.scss
index 922b70f..7cb06a3 100644
--- a/src/tabviews/zshare/mutilform/mkCheckCard/index.scss
+++ b/src/tabviews/zshare/mutilform/mkCheckCard/index.scss
@@ -71,22 +71,28 @@
     height: 12px;
     transform: rotate(45deg) scale(1) translate(-50%, -50%);
   }
+  .card-cell.disabled {
+    cursor: not-allowed;
+  }
+  .card-pic-cell.disabled {
+    cursor: not-allowed;
+  }
 }
 
 .check-card-form-box:not(.readonly) {
-  .card-cell:not(.bg-control):hover {
+  .card-cell:not(.bg-control):not(.disabled):hover {
     border-color: #1890ff;
     background: #1890ff;
     span {
       color: #ffffff!important;
     }
   }
-  .card-cell.bg-control:not(.active):hover {
+  .card-cell.bg-control:not(.active):not(.disabled):hover {
     .bg-mask {
       opacity: 0.7;
     }
   }
-  .card-pic-cell:hover {
+  .card-pic-cell:not(.disabled):hover {
     border-color: #1890ff;
     box-shadow: 0px 0px 4px #1890ff;
   }
diff --git a/src/views/design/header/index.jsx b/src/views/design/header/index.jsx
index 375ad25..4352e77 100644
--- a/src/views/design/header/index.jsx
+++ b/src/views/design/header/index.jsx
@@ -382,7 +382,7 @@
             <Menu.Item key="logout" onClick={this.logout}>{this.state.dict['main.logout']}</Menu.Item>
           </Menu>
         }>
-          <div>
+          <div style={{zIndex: 1, position: 'relative'}}>
             <img src={this.state.avatar || avatar} alt=""/>
             <span>
               <span className="username">{this.state.userName}</span> <Icon type="down" />
diff --git a/src/views/design/header/versions/index.jsx b/src/views/design/header/versions/index.jsx
index e12d137..5290e82 100644
--- a/src/views/design/header/versions/index.jsx
+++ b/src/views/design/header/versions/index.jsx
@@ -2,7 +2,6 @@
 import { is, fromJS } from 'immutable'
 import { Modal, notification, Timeline, Icon, Button, Typography } from 'antd'
 import moment from 'moment'
-import md5 from 'md5'
 
 import Api from '@/api'
 import options from '@/store/options.js'
@@ -59,33 +58,19 @@
         return
       }
 
-      let _rduri = window.atob('aHR0cHM6Ly9lcGMubWs5aC5$mkjbi93ZWJhcGkvZG9zdGFycw=='.replace(/\$mk/ig, ''))
-      let _id = window.atob('YmgwYmFwYWJ0ZDQ1ZXBz$mkZ3JhNzlzZWdiY2g2YzFpYms='.replace(/\$mk/ig, ''))
       let sysType = options.sysType.toLowerCase()
 
-      if (window.GLOB.systemType === 'production') {
+      if (window.GLOB.systemType === 'production' || sysType !== 'local') {
         sysType = ''
       }
   
       let param = {
         func: 's_get_sversions_sys_epc',
-        appkey: window.GLOB.appkey,
-        userid: _id,
-        LoginUID: _id,
         edition_int: edition_int,
-        sys_type: sysType,
-        nonc: Utils.getuuid()
+        sys_type: sysType
       }
-
-      let keys = Object.keys(param).sort()
-      let values = ''
-      keys.forEach(key => {
-        values += key + param[key]
-      })
-      param.sign = md5(values)
-      param.t = new Date().getTime()
   
-      Api.directRequest(_rduri + '/s_get_sversions_sys_epc', 'post', param, 'true').then(res => {
+      Api.getCloudConfig(param).then(res => {
         if (!res.status) {
           notification.warning({
             top: 92,
diff --git a/src/views/login/loginform.jsx b/src/views/login/loginform.jsx
index 1813e99..0da7d35 100644
--- a/src/views/login/loginform.jsx
+++ b/src/views/login/loginform.jsx
@@ -351,6 +351,7 @@
     this.setState = () => {
       return
     }
+    this.timer && clearTimeout(this.timer)
   }
 
   render() {
diff --git a/src/views/menudesign/index.jsx b/src/views/menudesign/index.jsx
index f65cfc0..3de9a7d 100644
--- a/src/views/menudesign/index.jsx
+++ b/src/views/menudesign/index.jsx
@@ -959,7 +959,7 @@
                     /> : null}
                     {/* 琛ㄥ悕娣诲姞 */}
                     {config ? <TableComponent config={config} updatetable={this.updateConfig}/> : null}
-                    <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph>
+                    {config ? <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> : null}
                   </Panel>
                   {/* 缁勪欢娣诲姞 */}
                   <Panel header={dict['mob.component']} key="component">
diff --git a/src/views/mobdesign/index.jsx b/src/views/mobdesign/index.jsx
index c74db44..8b900b8 100644
--- a/src/views/mobdesign/index.jsx
+++ b/src/views/mobdesign/index.jsx
@@ -1329,7 +1329,7 @@
                     {config ? <UrlFieldComponent config={config} updateConfig={this.updateConfig}/> : null}
                     {/* 琛ㄥ悕娣诲姞 */}
                     {config ? <TableComponent config={config} updatetable={this.updateConfig}/> : null}
-                    <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph>
+                    {config ? <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> : null}
                   </Panel>
                   {/* 缁勪欢娣诲姞 */}
                   <Panel header={dict['mob.component']} key="component">
diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx
index a734d09..8802d68 100644
--- a/src/views/pcdesign/index.jsx
+++ b/src/views/pcdesign/index.jsx
@@ -1567,7 +1567,7 @@
                     {config ? <UrlFieldComponent config={config} updateConfig={this.updateConfig}/> : null}
                     {/* 琛ㄥ悕娣诲姞 */}
                     {config ? <TableComponent config={config} updatetable={this.updateConfig}/> : null}
-                    <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph>
+                    {config ? <Paragraph style={{padding: '15px 0px 0px 18px'}} copyable={{ text: MenuId }}>鑿滃崟ID</Paragraph> : null}
                   </Panel>
                   {/* 缁勪欢娣诲姞 */}
                   <Panel header={dict['mob.component']} key="component">

--
Gitblit v1.8.0