From b5e70973340bf912b733acd737f55f90653dece8 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 03 七月 2021 09:48:25 +0800
Subject: [PATCH] 2021-07-03

---
 src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx |   37 +++
 src/templates/zshare/modalform/index.jsx                                 |    4 
 src/views/pcdesign/index.jsx                                             |  130 +++++++------
 src/templates/modalconfig/settingform/index.jsx                          |   19 ++
 src/templates/zshare/formconfig.jsx                                      |   28 +-
 src/menu/components/share/actioncomponent/formconfig.jsx                 |   16 -
 src/tabviews/zshare/mutilform/checkCard/index.jsx                        |   14 -
 src/mob/components/formdragelement/index.jsx                             |   10 +
 src/templates/modalconfig/checkCard/index.scss                           |   13 +
 src/tabviews/zshare/mutilform/checkCard/index.scss                       |   31 +++
 src/templates/modalconfig/checkCard/index.jsx                            |    7 
 src/menu/components/share/actioncomponent/actionform/index.jsx           |   37 ++-
 src/menu/components/table/normal-table/columns/editColumn/index.jsx      |   27 --
 public/admin.html                                                        |    6 
 src/views/appmanage/index.jsx                                            |    2 
 src/views/mobdesign/index.jsx                                            |  130 +++++++------
 16 files changed, 303 insertions(+), 208 deletions(-)

diff --git a/public/admin.html b/public/admin.html
index 1c43083..41254bc 100644
--- a/public/admin.html
+++ b/public/admin.html
@@ -24,10 +24,8 @@
               var appPort = 'admin/index.html'
               if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
                 appPort = 'mob/index.html'
-              } else {
-                if (config.defaultApp) {
-                  appPort = 'pc/'
-                }
+              } else if (config.defaultApp) {
+                appPort = 'pc/index.html'
               }
               window.location.replace(url + appPort)
             }
diff --git a/src/menu/components/share/actioncomponent/actionform/index.jsx b/src/menu/components/share/actioncomponent/actionform/index.jsx
index 97e077b..55483c8 100644
--- a/src/menu/components/share/actioncomponent/actionform/index.jsx
+++ b/src/menu/components/share/actioncomponent/actionform/index.jsx
@@ -37,6 +37,7 @@
     interType: null, // 鎺ュ彛绫诲瀷锛氬唴閮ㄣ�佸閮�
     funcType: null,  // 鍔熻兘绫诲瀷
     procMode: null,  // 鍙傛暟鏂瑰紡
+    pageTemplate: null,
     Ot: null,
     requireOptions: [{
       value: 'notRequired',
@@ -93,10 +94,11 @@
     let _opentype = card.OpenType                // 鎵撳紑鏂瑰紡
     let _intertype = card.intertype || 'system'  // 鎺ュ彛绫诲瀷
     let _funcType = card.funcType || ''          // 鍔熻兘鎸夐挳榛樿绫诲瀷
-    let _procMode = card.procMode || 'system'    // 鍙傛暟璇锋眰鏂瑰紡
-    let _Ot = card.Ot || 'requiredSgl'    // 鍙傛暟璇锋眰鏂瑰紡
+    let _procMode = card.procMode || 'system'
+    let _Ot = card.Ot || 'requiredSgl'
+    let _pageTemplate = card.pageTemplate || ''
 
-    let _options = this.getOptions(_opentype, _intertype, _funcType, card.pageTemplate, _procMode, _Ot)
+    let _options = this.getOptions(_opentype, _intertype, _funcType, _pageTemplate, _procMode, _Ot)
 
     this.setState({
       Ot: _Ot,
@@ -104,6 +106,7 @@
       interType: _intertype,
       procMode: _procMode,
       funcType: _funcType,
+      pageTemplate: _pageTemplate,
       formlist: this.props.formlist.map(item => {
         if (item.key === 'class') {
           item.options = btnCustomClasses
@@ -115,7 +118,7 @@
         } else if (item.key === 'Ot') {
           if (type === 'card') {
             item.options = this.state.requireOptions.filter(op => ['notRequired', 'requiredSgl'].includes(op.value))
-          } else if (card.pageTemplate === 'pay') { // 琛岀骇鎸夐挳銆佹敮浠樻寜閽紝鍙兘閫夊崟琛�
+          } else if (_pageTemplate === 'pay') { // 琛岀骇鎸夐挳銆佹敮浠樻寜閽紝鍙兘閫夊崟琛�
             item.options = this.state.requireOptions.filter(op => ['requiredSgl'].includes(op.value))
           } else if (['innerpage', 'tab', 'popview', 'excelIn'].includes(_opentype)) {
             item.options = this.state.requireOptions.filter(op => ['notRequired', 'requiredSgl'].includes(op.value))
@@ -220,13 +223,12 @@
    */
   optionChange = (key, value) => {
     const { card, type } = this.props
-    const { openType, procMode, Ot } = this.state
+    const { openType, procMode, Ot, pageTemplate } = this.state
 
     if (key === 'OpenType') {
-      let _options = this.getOptions(value, 'system', this.state.funcType, card.pageTemplate, 'system', Ot)
+      let _options = this.getOptions(value, 'system', this.state.funcType, '', 'system', Ot)
 
       let _fieldval = {}
-      
       let _formlist = this.state.formlist.map(item => {
         item.hidden = !_options.includes(item.key)
 
@@ -258,6 +260,8 @@
             item.options = this.state.insertUpdateOptions
           }
           _fieldval.sqlType = ''
+        } else if (item.key === 'pageTemplate') {
+          item.initVal = ''
         }
 
         return item
@@ -267,6 +271,7 @@
         openType: value,
         intertype: 'system',
         procMode: 'system',
+        pageTemplate: '',
         formlist: _formlist
       }, () => {
         if (value === 'excelIn') {
@@ -280,7 +285,7 @@
         this.props.form.setFieldsValue(_fieldval)
       })
     } else if (key === 'funcType') {
-      let _options = this.getOptions(openType, this.state.interType, value, card.pageTemplate, procMode, Ot)
+      let _options = this.getOptions(openType, this.state.interType, value, pageTemplate, procMode, Ot)
       let _fieldval = {}
 
       this.setState({
@@ -347,6 +352,7 @@
       let _options = this.getOptions(openType, this.state.interType, this.state.funcType, value, procMode, Ot)
 
       this.setState({
+        pageTemplate: value,
         formlist: this.state.formlist.map(item => {
           item.hidden = !_options.includes(item.key)
 
@@ -367,7 +373,7 @@
         this.props.form.setFieldsValue(_fieldval)
       })
     } else if (key === 'intertype') {
-      let _options = this.getOptions(openType, value, this.state.funcType, '', procMode, Ot)
+      let _options = this.getOptions(openType, value, this.state.funcType, pageTemplate, procMode, Ot)
 
       this.setState({
         interType: value,
@@ -389,7 +395,7 @@
         })
       })
     } else if (key === 'procMode') {
-      let _options = this.getOptions(openType, this.state.interType, this.state.funcType, '', value, Ot)
+      let _options = this.getOptions(openType, this.state.interType, this.state.funcType, pageTemplate, value, Ot)
 
       this.setState({
         procMode: value,
@@ -403,7 +409,7 @@
         })
       })
     } else if (key === 'Ot') {
-      let _options = this.getOptions(openType, this.state.interType, this.state.funcType, '', procMode, value)
+      let _options = this.getOptions(openType, this.state.interType, this.state.funcType, pageTemplate, procMode, value)
 
       this.setState({
         Ot: value,
@@ -523,7 +529,7 @@
             </Form.Item>
           </Col>
         )
-      } else if (item.type === 'select') { // 涓嬫媺鎼滅储
+      } else if (item.type === 'select') {
         fields.push(
           <Col span={12} key={index}>
             <Form.Item label={item.tooltip ?
@@ -543,13 +549,14 @@
               })(
                 <Select
                   showSearch
-                  filterOption={(input, option) => option.props.children[2].toLowerCase().indexOf(input.toLowerCase()) >= 0}
+                  allowClear={item.allowClear === true}
+                  filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0}
                   onChange={(value) => {this.optionChange(item.key, value)}}
                   getPopupContainer={() => document.getElementById('winter')}
                 >
                   {item.options.map((option, index) =>
-                    <Select.Option id={index} key={option.value || option.field} value={option.value || option.field}>
-                      {option.text || option.label}
+                    <Select.Option key={index} value={(option.value || option.field)}>
+                      {(option.text || option.label)}
                     </Select.Option>
                   )}
                 </Select>
diff --git a/src/menu/components/share/actioncomponent/formconfig.jsx b/src/menu/components/share/actioncomponent/formconfig.jsx
index 9667f90..edf6181 100644
--- a/src/menu/components/share/actioncomponent/formconfig.jsx
+++ b/src/menu/components/share/actioncomponent/formconfig.jsx
@@ -204,14 +204,6 @@
       forbid: !isApp,
       options: appMenus
     },
-    // {
-    //   type: 'select',
-    //   key: 'copyMenuId',
-    //   label: '澶嶅埗鑿滃崟',
-    //   initVal: card.copyMenuId || '',
-    //   required: false,
-    //   options: appMenus
-    // },
     {
       type: 'textarea',
       key: 'url',
@@ -531,7 +523,8 @@
       tooltip: '绂佺敤鎺у埗瀛楁锛屽彲鏍规嵁鏁版嵁鎺у埗鎸夐挳鏄惁绂佺敤銆�',
       initVal: card.controlField || '',
       required: false,
-      options: [{label: '鏃�', field: ''}, ...columns]
+      allowClear: true,
+      options: columns
     },
     {
       type: 'text',
@@ -546,10 +539,11 @@
       key: 'openmenu',
       label: '鎵撳紑鑿滃崟',
       tooltip: '鎵ц鎴愬姛鍚庨渶瑕佹墦寮�鐨勮彍鍗曘��',
-      initVal: card.openmenu,
+      initVal: card.openmenu || '',
       forbid: appType !== 'pc' && appType !== 'mob',
       required: false,
-      options: [{value: '', text: '鏃�'}, ...appMenus]
+      allowClear: true,
+      options: appMenus
     },
     {
       type: 'radio',
diff --git a/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx b/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx
index d745175..2aa32ce 100644
--- a/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx
+++ b/src/menu/components/table/normal-table/columns/editColumn/formconfig.jsx
@@ -6,9 +6,8 @@
 /**
  * @description 鑾峰彇鏄剧ず鍒楄〃鍗曢厤缃俊鎭�
  * @param {object} card       // 鎼滅储鏉′欢瀵硅薄
- * @param {Array}  menulist   // 鑿滃崟鍒楄〃-鐢ㄤ簬瀛楁閫忚
  */
-export function getColumnForm (card, menulist = [], fields = []) {
+export function getColumnForm (card, fields = []) {
   let appType = sessionStorage.getItem('appType')
   let roleList = sessionStorage.getItem('sysRoles')
   if (roleList) {
@@ -19,6 +18,24 @@
     }
   } else {
     roleList = []
+  }
+
+  let menulist = []
+
+  if (appType === 'pc') {
+    menulist = sessionStorage.getItem('appMenus')
+  } else if (!appType) {
+    menulist = sessionStorage.getItem('fstMenuList')
+  }
+
+  if (menulist) {
+    try {
+      menulist = JSON.parse(menulist)
+    } catch {
+      menulist = []
+    }
+  } else {
+    menulist = []
   }
 
   let options = [{
@@ -329,10 +346,10 @@
       forbidden: appType === 'mob'
     },
     {
-      type: 'cascader',
+      type: appType === 'pc' ? 'select' : 'cascader',
       key: 'linkmenu',
       label: Formdict['model.menu'],
-      initVal: card.linkmenu || [],
+      initVal: card.linkmenu || (appType === 'pc' ? '' : []),
       required: true,
       options: menulist,
       forbidden: appType === 'mob'
@@ -355,6 +372,18 @@
       forbidden: appType === 'mob'
     },
     {
+      type: 'radio',
+      key: 'open',
+      label: '鎵撳紑鏂瑰紡',
+      initVal: card.open || 'blank',
+      required: false,
+      forbid: appType !== 'pc',
+      options: [
+        { value: 'blank', text: '鏂扮獥鍙�' },
+        { value: 'self', text: '褰撳墠绐楀彛' }
+      ]
+    },
+    {
       type: 'multiselect',
       key: 'blacklist',
       label: Formdict['header.form.blacklist'],
diff --git a/src/menu/components/table/normal-table/columns/editColumn/index.jsx b/src/menu/components/table/normal-table/columns/editColumn/index.jsx
index 3a18837..bf74079 100644
--- a/src/menu/components/table/normal-table/columns/editColumn/index.jsx
+++ b/src/menu/components/table/normal-table/columns/editColumn/index.jsx
@@ -42,24 +42,13 @@
   }
 
   editColumn = (column) => {
-    let menulist = sessionStorage.getItem('fstMenuList')
-    if (menulist) {
-      try {
-        menulist = JSON.parse(menulist)
-      } catch {
-        menulist = []
-      }
-    } else {
-      menulist = []
-    }
-
-    let formlist = getColumnForm(column, menulist, this.props.fields)
+    let formlist = getColumnForm(column, this.props.fields)
     let _options = fromJS(columnTypeOptions[column.type]).toJS()
     if (column.type === 'text' || column.type === 'number') {
       if (column.perspective === 'linkmenu') {
-        _options.push('linkmenu', 'linkfields')
+        _options.push('linkmenu', 'linkfields', 'open')
       } else if (column.perspective === 'linkurl') {
-        _options.push('linkurl', 'linkfields')
+        _options.push('linkurl', 'linkfields', 'open')
       }
     }
 
@@ -143,9 +132,9 @@
       let _options = fromJS(columnTypeOptions[this.state.type]).toJS()
 
       if (value === 'linkmenu') {
-        _options.push('linkmenu', 'linkfields')
+        _options.push('linkmenu', 'linkfields', 'open')
       } else if (value === 'linkurl') {
-        _options.push('linkurl', 'linkfields')
+        _options.push('linkurl', 'linkfields', 'open')
       }
 
       this.setState({
@@ -219,7 +208,7 @@
             </Form.Item>
           </Col>
         )
-      } else if (item.type === 'select') { // 涓嬫媺鎼滅储
+      } else if (item.type === 'select') {
         fields.push(
           <Col span={12} key={index}>
             <Form.Item label={item.label}>
@@ -239,8 +228,8 @@
                   getPopupContainer={() => document.getElementById('columnwinter')}
                 >
                   {item.options.map((option, index) =>
-                    <Select.Option key={`${option.value || option.field}${index}`} datatype={option.datatype || ''} value={option.value || option.field}>
-                      {option.text || option.label}
+                    <Select.Option key={index} datatype={option.datatype || ''} value={(option.value || option.field || option.MenuID)}>
+                      {(option.text || option.label || option.MenuName)}
                     </Select.Option>
                   )}
                 </Select>
diff --git a/src/mob/components/formdragelement/index.jsx b/src/mob/components/formdragelement/index.jsx
index a62602f..38485bc 100644
--- a/src/mob/components/formdragelement/index.jsx
+++ b/src/mob/components/formdragelement/index.jsx
@@ -103,8 +103,16 @@
     }
   })
 
+  let style = {}
+  if (setting.paddingLeft) {
+    style.paddingLeft = setting.paddingLeft
+  }
+  if (setting.paddingRight) {
+    style.paddingRight = setting.paddingRight
+  }
+
   return (
-    <div ref={drop} className="ant-row modal-fields-row mob-form" >
+    <div ref={drop} className="ant-row modal-fields-row mob-form" style={style}>
       {cards.map(card => {
         return <Card
           id={card.uuid}
diff --git a/src/tabviews/zshare/mutilform/checkCard/index.jsx b/src/tabviews/zshare/mutilform/checkCard/index.jsx
index 8fa13b6..34d8810 100644
--- a/src/tabviews/zshare/mutilform/checkCard/index.jsx
+++ b/src/tabviews/zshare/mutilform/checkCard/index.jsx
@@ -69,11 +69,8 @@
       paddingTop = '56.25%'
     }
 
-    let style = {}
-    
-    if (borderColor) {
-      style.borderColor = borderColor
-    }
+    let style = borderColor ? {borderColor} : {}
+    let _style = backgroundColor ? {backgroundColor} : null
 
     if (!options || options.length === 0) {
       return null
@@ -81,9 +78,7 @@
       if (!fields || fields.length === 0) {
         return null
       }
-      if (backgroundColor) {
-        style.backgroundColor = backgroundColor
-      }
+
       return options.map(item => {
         let _active = false
         if (multiple === 'true' && selectKeys.includes(item.$value)) {
@@ -93,7 +88,8 @@
         }
 
         return <Col span={width} key={item.key}>
-          <div className={'card-cell ' + (_active ? 'active' : '')} style={style} onClick={() => this.changeCard(item)}>
+          <div className={'card-cell' + (_active ? ' active' : '') + (_style ? ' bg-control' : '')} 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>
             })}
diff --git a/src/tabviews/zshare/mutilform/checkCard/index.scss b/src/tabviews/zshare/mutilform/checkCard/index.scss
index c5f1119..8975e1b 100644
--- a/src/tabviews/zshare/mutilform/checkCard/index.scss
+++ b/src/tabviews/zshare/mutilform/checkCard/index.scss
@@ -9,19 +9,37 @@
     margin-bottom: 12px;
     line-height: 1.5;
     cursor: pointer;
+    transition: all 0.3s;
     span {
       display: block;
       overflow: hidden;
       text-overflow: ellipsis;
       white-space: nowrap;
+      position: relative;
+      z-index: 1;
     }
-    transition: all 0.3s;
+    .bg-mask {
+      position: absolute;
+      top: 0;
+      left: 0;
+      right: 0;
+      bottom: 0;
+      opacity: 0.5;
+      border-radius: 4px;
+      background-color: transparent;
+      transition: opacity 0.3s;
+    }
   }
-  .card-cell.active {
+  .card-cell:not(.bg-control).active {
     border-color: #1890ff;
     background: #1890ff;
     span {
       color: #ffffff!important;
+    }
+  }
+  .card-cell.bg-control.active {
+    .bg-mask {
+      opacity: 1;
     }
   }
   .card-pic-cell {
@@ -40,7 +58,7 @@
     box-shadow: 0px 0px 4px #1890ff;
   }
 
-  .card-cell.active::after {
+  .card-cell:not(.bg-control).active::after {
     content: ' ';
     position: absolute;
     display: table;
@@ -55,13 +73,18 @@
   }
 }
 .check-card-form-box:not(.readonly) {
-  .card-cell:hover {
+  .card-cell:not(.bg-control):hover {
     border-color: #1890ff;
     background: #1890ff;
     span {
       color: #ffffff!important;
     }
   }
+  .card-cell.bg-control:not(.active):hover {
+    .bg-mask {
+      opacity: 0.7;
+    }
+  }
   .card-pic-cell:hover {
     border-color: #1890ff;
     box-shadow: 0px 0px 4px #1890ff;
diff --git a/src/templates/modalconfig/checkCard/index.jsx b/src/templates/modalconfig/checkCard/index.jsx
index 7357c63..3575d22 100644
--- a/src/templates/modalconfig/checkCard/index.jsx
+++ b/src/templates/modalconfig/checkCard/index.jsx
@@ -32,12 +32,12 @@
     }
 
     if (display !== 'picture') {
-      if (backgroundColor) {
-        style.backgroundColor = backgroundColor
-      }
+      let _style = backgroundColor ? {backgroundColor} : null
+ 
       if (!options || options.length === 0) {
         return <Col span={width}>
           <div className="card-cell" style={style}>
+            <div className="bg-mask" style={_style}></div>
             {fields ? 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}}>{col.field}</span>
             }) : null}
@@ -48,6 +48,7 @@
       return options.map(item => {
         return <Col span={width} key={item.key}>
           <div className="card-cell" style={style}>
+            <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>
             })}
diff --git a/src/templates/modalconfig/checkCard/index.scss b/src/templates/modalconfig/checkCard/index.scss
index ddc72cb..b2afcc0 100644
--- a/src/templates/modalconfig/checkCard/index.scss
+++ b/src/templates/modalconfig/checkCard/index.scss
@@ -1,6 +1,7 @@
 .check-card-edit-box {
   line-height: 1.5;
   .card-cell {
+    position: relative;
     border: 1px solid #bcbcbc;
     border-radius: 4px;
     padding: 6px;
@@ -10,6 +11,18 @@
       overflow: hidden;
       text-overflow: ellipsis;
       white-space: nowrap;
+      position: relative;
+      z-index: 1;
+    }
+    .bg-mask {
+      position: absolute;
+      top: 0;
+      left: 0;
+      right: 0;
+      bottom: 0;
+      opacity: 0.5;
+      border-radius: 4px;
+      background-color: transparent;
     }
   }
   .card-pic-cell {
diff --git a/src/templates/modalconfig/settingform/index.jsx b/src/templates/modalconfig/settingform/index.jsx
index 6428e40..a4ff109 100644
--- a/src/templates/modalconfig/settingform/index.jsx
+++ b/src/templates/modalconfig/settingform/index.jsx
@@ -2,6 +2,7 @@
 import PropTypes from 'prop-types'
 import { Form, Row, Col, Input, Radio, InputNumber, Select, Tooltip, Icon } from 'antd'
 import { formRule } from '@/utils/option.js'
+import StyleInput from '@/menu/stylecontroller/styleInput'
 import './index.scss'
 
 class SettingForm extends Component {
@@ -209,6 +210,24 @@
               )}
             </Form.Item>
           </Col> : null}
+          {appType === 'mob' ? <Col span={12}>
+            <Form.Item label="宸﹁竟璺�">
+              {getFieldDecorator('paddingLeft', {
+                initialValue: config.setting.paddingLeft || '10px'
+              })(
+                <StyleInput options={['px', '%']} />
+              )}
+            </Form.Item>
+          </Col> : null}
+          {appType === 'mob' ? <Col span={12}>
+            <Form.Item label="鍙宠竟璺�">
+              {getFieldDecorator('paddingRight', {
+                initialValue: config.setting.paddingRight || '10px'
+              })(
+                <StyleInput options={['px', '%']} />
+              )}
+            </Form.Item>
+          </Col> : null}
         </Row>
       </Form>
     )
diff --git a/src/templates/zshare/formconfig.jsx b/src/templates/zshare/formconfig.jsx
index f73bb3e..007c7ee 100644
--- a/src/templates/zshare/formconfig.jsx
+++ b/src/templates/zshare/formconfig.jsx
@@ -725,6 +725,7 @@
       key: 'backgroundColor',
       label: '鑳屾櫙鑹�',
       initVal: card.backgroundColor || '',
+      tooltip: '璁剧疆鑳屾櫙鑹插悗锛岄�変腑鏁堟灉鐢辫儗鏅鑹叉帶鍒躲��',
       required: false
     },
     {
@@ -2546,19 +2547,6 @@
     },
     {
       type: 'radio',
-      key: 'hidelabel',
-      label: '闅愯棌鍚嶇О',
-      initVal: card.hidelabel || 'false',
-      options: [{
-        value: 'true',
-        text: Formdict['model.true']
-      }, {
-        value: 'false',
-        text: Formdict['model.false']
-      }]
-    },
-    {
-      type: 'radio',
       key: 'readonly',
       label: Formdict['header.form.readonly'],
       initVal: card.readonly || 'false',
@@ -2669,10 +2657,24 @@
       }]
     },
     {
+      type: 'radio',
+      key: 'hidelabel',
+      label: '闅愯棌鍚嶇О',
+      initVal: card.hidelabel || 'false',
+      options: [{
+        value: 'true',
+        text: Formdict['model.true']
+      }, {
+        value: 'false',
+        text: Formdict['model.false']
+      }]
+    },
+    {
       type: 'color',
       key: 'backgroundColor',
       label: '鑳屾櫙鑹�',
       initVal: card.backgroundColor || '',
+      tooltip: '璁剧疆鑳屾櫙鑹插悗锛岄�変腑鏁堟灉鐢辫儗鏅鑹叉帶鍒躲��',
       required: false
     },
     {
diff --git a/src/templates/zshare/modalform/index.jsx b/src/templates/zshare/modalform/index.jsx
index 2c30977..a8e655b 100644
--- a/src/templates/zshare/modalform/index.jsx
+++ b/src/templates/zshare/modalform/index.jsx
@@ -177,6 +177,10 @@
           _options.push('dataSource', 'cardValField', 'fields', 'orderBy', 'orderType', 'database', 'backgroundColor')
         }
       }
+
+      if (sessionStorage.getItem('appType') === 'mob') {
+        _options.push('hidelabel')
+      }
     } else if (type === 'fileupload') {
       if (compress === 'true') {
         _options.push('limit', 'rduri', 'proRduri')
diff --git a/src/views/appmanage/index.jsx b/src/views/appmanage/index.jsx
index 6857460..6070899 100644
--- a/src/views/appmanage/index.jsx
+++ b/src/views/appmanage/index.jsx
@@ -125,7 +125,7 @@
           <div>
             <Button type="link" onClick={() => this.deleteSubApp(record)} style={{color: '#ff4d4f'}}>鍒犻櫎</Button>
             <Button type="link" onClick={() => this.jumpApp(record)}>缂栬緫搴旂敤</Button>
-            <Paragraph style={{display: 'inline-block', margin: 0}} copyable={{ text: `${base_url}${record.typename === 'pad' ? 'mob' : record.typename}/index.html#/index/${this.state.selectApp.kei_no}/${record.lang}` }}></Paragraph>
+            <Paragraph style={{display: 'inline-block', margin: 0}} copyable={{ text: `${base_url}${record.typename === 'pad' ? 'mob' : record.typename}/index.html#/index/${this.state.selectApp.kei_no}/${record.typename !== 'pc' ? record.typename + '/' : ''}${record.lang}` }}></Paragraph>
           </div>
         )
       },
diff --git a/src/views/mobdesign/index.jsx b/src/views/mobdesign/index.jsx
index 9a637c2..7c1d517 100644
--- a/src/views/mobdesign/index.jsx
+++ b/src/views/mobdesign/index.jsx
@@ -908,72 +908,72 @@
               _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
               _param.secretkey = Utils.encrypt('', _param.timestamp)
 
-              let appMenuParam = null
-              if (item.type === 'navbar') {
-                appMenuParam = {
-                  func: 's_appmenus_addupt',
-                  exec_type: 'y'
-                }
+              // let appMenuParam = null
+              // if (item.type === 'navbar') {
+              //   appMenuParam = {
+              //     func: 's_appmenus_addupt',
+              //     exec_type: 'y'
+              //   }
   
-                appMenuParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
-                appMenuParam.secretkey = Utils.encrypt('', _param.timestamp)
+              //   appMenuParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
+              //   appMenuParam.secretkey = Utils.encrypt('', _param.timestamp)
 
-                let LText = []
-                let app_param = []
-                let kei_no = sessionStorage.getItem('kei_no')
-                let userid = sessionStorage.getItem('CloudUserID') || ''
+              //   let LText = []
+              //   let app_param = []
+              //   let kei_no = sessionStorage.getItem('kei_no')
+              //   let userid = sessionStorage.getItem('CloudUserID') || ''
 
-                item.menus.forEach((fst, findex) => {
-                  // LText.push(`select '${fst.MenuID}','${fst.name}','','0','${sessionStorage.getItem('appId')}','0','${(findex + 1) * 10}','10','','${userid}','${window.GLOB.appkey}','${fst.MenuNo || ''}','${kei_no}','pc'`)
-                  LText.push(`select '${fst.MenuID}','${fst.name}','','0','0','0','${(findex + 1) * 10}','10','','${userid}','${window.GLOB.appkey}','${fst.MenuNo || ''}','${kei_no}','pc'`)
-                  app_param.push(`select '${window.GLOB.appkey}','${fst.MenuID}','${userid}','${(findex + 1) * 10}','','${fst.name}','${fst.MenuNo || ''}','0','10','${kei_no}','pc'`)
-                  if (fst.property === 'classify' && fst.sublist.length > 0) {
-                    fst.sublist.forEach(scd => {
-                      LText.push(`select '${scd.MenuID}','${scd.name}','','0','${fst.MenuID}','0','${(findex + 1) * 10}','20','','${userid}','${window.GLOB.appkey}','${scd.MenuNo || ''}','${kei_no}','pc'`)
-                      app_param.push(`select '${window.GLOB.appkey}','${scd.MenuID}','${userid}','${(findex + 1) * 10}','','${scd.name}','${scd.MenuNo || ''}','${fst.MenuID}','20','${kei_no}','pc'`)
+              //   item.menus.forEach((fst, findex) => {
+              //     // LText.push(`select '${fst.MenuID}','${fst.name}','','0','${sessionStorage.getItem('appId')}','0','${(findex + 1) * 10}','10','','${userid}','${window.GLOB.appkey}','${fst.MenuNo || ''}','${kei_no}','pc'`)
+              //     LText.push(`select '${fst.MenuID}','${fst.name}','','0','0','0','${(findex + 1) * 10}','10','','${userid}','${window.GLOB.appkey}','${fst.MenuNo || ''}','${kei_no}','pc'`)
+              //     app_param.push(`select '${window.GLOB.appkey}','${fst.MenuID}','${userid}','${(findex + 1) * 10}','','${fst.name}','${fst.MenuNo || ''}','0','10','${kei_no}','pc'`)
+              //     if (fst.property === 'classify' && fst.sublist.length > 0) {
+              //       fst.sublist.forEach(scd => {
+              //         LText.push(`select '${scd.MenuID}','${scd.name}','','0','${fst.MenuID}','0','${(findex + 1) * 10}','20','','${userid}','${window.GLOB.appkey}','${scd.MenuNo || ''}','${kei_no}','pc'`)
+              //         app_param.push(`select '${window.GLOB.appkey}','${scd.MenuID}','${userid}','${(findex + 1) * 10}','','${scd.name}','${scd.MenuNo || ''}','${fst.MenuID}','20','${kei_no}','pc'`)
                     
-                      if (scd.property === 'classify' && scd.sublist.length > 0) {
-                        scd.sublist.forEach(thd => {
-                          LText.push(`select '${thd.MenuID}','${thd.name}','','0','${scd.MenuID}','0','${(findex + 1) * 10}','20','','${userid}','${window.GLOB.appkey}','${thd.MenuNo || ''}','${kei_no}','pc'`)
-                          app_param.push(`select '${window.GLOB.appkey}','${thd.MenuID}','${userid}','${(findex + 1) * 10}','','${thd.name}','${thd.MenuNo || ''}','${scd.MenuID}','20','${kei_no}','pc'`)
-                        })
-                      }
-                    })
-                  }
-                })
-                appMenuParam.LText = Utils.formatOptions(LText.join(' union '))
-                appMenuParam.LText1 = Utils.formatOptions(app_param.join(' union '))
-              }
+              //         if (scd.property === 'classify' && scd.sublist.length > 0) {
+              //           scd.sublist.forEach(thd => {
+              //             LText.push(`select '${thd.MenuID}','${thd.name}','','0','${scd.MenuID}','0','${(findex + 1) * 10}','20','','${userid}','${window.GLOB.appkey}','${thd.MenuNo || ''}','${kei_no}','pc'`)
+              //             app_param.push(`select '${window.GLOB.appkey}','${thd.MenuID}','${userid}','${(findex + 1) * 10}','','${thd.name}','${thd.MenuNo || ''}','${scd.MenuID}','20','${kei_no}','pc'`)
+              //           })
+              //         }
+              //       })
+              //     }
+              //   })
+              //   appMenuParam.LText = Utils.formatOptions(LText.join(' union '))
+              //   appMenuParam.LText1 = Utils.formatOptions(app_param.join(' union '))
+              // }
 
-              if (appMenuParam) {
-                Api.getSystemConfig(appMenuParam).then(_res => {
-                  if (!_res.status) {
-                    notification.warning({
-                      top: 92,
-                      message: _res.message,
-                      duration: 5
-                    })
-                    this.setState({ menuloading: false })
-                    return
-                  }
+              // if (appMenuParam) {
+              //   Api.getSystemConfig(appMenuParam).then(_res => {
+              //     if (!_res.status) {
+              //       notification.warning({
+              //         top: 92,
+              //         message: _res.message,
+              //         duration: 5
+              //       })
+              //       this.setState({ menuloading: false })
+              //       return
+              //     }
 
-                  Api.getSystemConfig(_param).then(res => {
-                    if (!res.status) {
-                      notification.warning({
-                        top: 92,
-                        message: res.message,
-                        duration: 5
-                      })
-                      this.setState({ menuloading: false })
-                      return
-                    }
+              //     Api.getSystemConfig(_param).then(res => {
+              //       if (!res.status) {
+              //         notification.warning({
+              //           top: 92,
+              //           message: res.message,
+              //           duration: 5
+              //         })
+              //         this.setState({ menuloading: false })
+              //         return
+              //       }
     
-                    new_open_edition[item.uuid] = res.open_edition || ''
+              //       new_open_edition[item.uuid] = res.open_edition || ''
                     
-                    resolve()
-                  })
-                })
-              } else {
+              //       resolve()
+              //     })
+              //   })
+              // } else {
                 Api.getSystemConfig(_param).then(res => {
                   if (!res.status) {
                     notification.warning({
@@ -988,15 +988,14 @@
                   new_open_edition[item.uuid] = res.open_edition || ''
                   resolve()
                 })
-              }
+              // }
             })
           })
           Promise.all(deffers).then(() => {
             let appViewList = sessionStorage.getItem('appViewList')
             appViewList = JSON.parse(appViewList)
-            let _length = appViewList.length
+            let _appViewList = fromJS(appViewList).toJS()
             let appIndeList = appViewList.map(item => item.keys_id).join(',')
-            
 
             config.components = config.components.map(item => {
               if (item.type === 'navbar') {
@@ -1012,12 +1011,19 @@
                     keys_type: 'navbar',
                     remark: item.name
                   })
+                } else {
+                  appViewList = appViewList.map(view => {
+                    if (view.keys_id === item.uuid) {
+                      view.remark = item.name
+                    }
+                    return view
+                  })
                 }
               }
               return item
             })
 
-            if (appViewList.length > _length) {
+            if (!is(fromJS(appViewList), fromJS(_appViewList))) {
               let param = {
                 func: 's_kei_link_keyids_addupt',
                 BID: sessionStorage.getItem('appId'),
diff --git a/src/views/pcdesign/index.jsx b/src/views/pcdesign/index.jsx
index bc7ea8b..5f24390 100644
--- a/src/views/pcdesign/index.jsx
+++ b/src/views/pcdesign/index.jsx
@@ -935,72 +935,72 @@
               _param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
               _param.secretkey = Utils.encrypt('', _param.timestamp)
 
-              let appMenuParam = null
-              if (item.type === 'navbar') {
-                appMenuParam = {
-                  func: 's_appmenus_addupt',
-                  exec_type: 'y'
-                }
+              // let appMenuParam = null
+              // if (item.type === 'navbar') {
+              //   appMenuParam = {
+              //     func: 's_appmenus_addupt',
+              //     exec_type: 'y'
+              //   }
   
-                appMenuParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
-                appMenuParam.secretkey = Utils.encrypt('', _param.timestamp)
+              //   appMenuParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
+              //   appMenuParam.secretkey = Utils.encrypt('', _param.timestamp)
 
-                let LText = []
-                let app_param = []
-                let kei_no = sessionStorage.getItem('kei_no')
-                let userid = sessionStorage.getItem('CloudUserID') || ''
+              //   let LText = []
+              //   let app_param = []
+              //   let kei_no = sessionStorage.getItem('kei_no')
+              //   let userid = sessionStorage.getItem('CloudUserID') || ''
 
-                item.menus.forEach((fst, findex) => {
-                  // LText.push(`select '${fst.MenuID}','${fst.name}','','0','${sessionStorage.getItem('appId')}','0','${(findex + 1) * 10}','10','','${userid}','${window.GLOB.appkey}','${fst.MenuNo || ''}','${kei_no}','pc'`)
-                  LText.push(`select '${fst.MenuID}','${fst.name}','','0','0','0','${(findex + 1) * 10}','10','','${userid}','${window.GLOB.appkey}','${fst.MenuNo || ''}','${kei_no}','pc'`)
-                  app_param.push(`select '${window.GLOB.appkey}','${fst.MenuID}','${userid}','${(findex + 1) * 10}','','${fst.name}','${fst.MenuNo || ''}','0','10','${kei_no}','pc'`)
-                  if (fst.property === 'classify' && fst.sublist.length > 0) {
-                    fst.sublist.forEach(scd => {
-                      LText.push(`select '${scd.MenuID}','${scd.name}','','0','${fst.MenuID}','0','${(findex + 1) * 10}','20','','${userid}','${window.GLOB.appkey}','${scd.MenuNo || ''}','${kei_no}','pc'`)
-                      app_param.push(`select '${window.GLOB.appkey}','${scd.MenuID}','${userid}','${(findex + 1) * 10}','','${scd.name}','${scd.MenuNo || ''}','${fst.MenuID}','20','${kei_no}','pc'`)
+              //   item.menus.forEach((fst, findex) => {
+              //     // LText.push(`select '${fst.MenuID}','${fst.name}','','0','${sessionStorage.getItem('appId')}','0','${(findex + 1) * 10}','10','','${userid}','${window.GLOB.appkey}','${fst.MenuNo || ''}','${kei_no}','pc'`)
+              //     LText.push(`select '${fst.MenuID}','${fst.name}','','0','0','0','${(findex + 1) * 10}','10','','${userid}','${window.GLOB.appkey}','${fst.MenuNo || ''}','${kei_no}','pc'`)
+              //     app_param.push(`select '${window.GLOB.appkey}','${fst.MenuID}','${userid}','${(findex + 1) * 10}','','${fst.name}','${fst.MenuNo || ''}','0','10','${kei_no}','pc'`)
+              //     if (fst.property === 'classify' && fst.sublist.length > 0) {
+              //       fst.sublist.forEach(scd => {
+              //         LText.push(`select '${scd.MenuID}','${scd.name}','','0','${fst.MenuID}','0','${(findex + 1) * 10}','20','','${userid}','${window.GLOB.appkey}','${scd.MenuNo || ''}','${kei_no}','pc'`)
+              //         app_param.push(`select '${window.GLOB.appkey}','${scd.MenuID}','${userid}','${(findex + 1) * 10}','','${scd.name}','${scd.MenuNo || ''}','${fst.MenuID}','20','${kei_no}','pc'`)
                     
-                      if (scd.property === 'classify' && scd.sublist.length > 0) {
-                        scd.sublist.forEach(thd => {
-                          LText.push(`select '${thd.MenuID}','${thd.name}','','0','${scd.MenuID}','0','${(findex + 1) * 10}','20','','${userid}','${window.GLOB.appkey}','${thd.MenuNo || ''}','${kei_no}','pc'`)
-                          app_param.push(`select '${window.GLOB.appkey}','${thd.MenuID}','${userid}','${(findex + 1) * 10}','','${thd.name}','${thd.MenuNo || ''}','${scd.MenuID}','20','${kei_no}','pc'`)
-                        })
-                      }
-                    })
-                  }
-                })
-                appMenuParam.LText = Utils.formatOptions(LText.join(' union '))
-                appMenuParam.LText1 = Utils.formatOptions(app_param.join(' union '))
-              }
+              //         if (scd.property === 'classify' && scd.sublist.length > 0) {
+              //           scd.sublist.forEach(thd => {
+              //             LText.push(`select '${thd.MenuID}','${thd.name}','','0','${scd.MenuID}','0','${(findex + 1) * 10}','20','','${userid}','${window.GLOB.appkey}','${thd.MenuNo || ''}','${kei_no}','pc'`)
+              //             app_param.push(`select '${window.GLOB.appkey}','${thd.MenuID}','${userid}','${(findex + 1) * 10}','','${thd.name}','${thd.MenuNo || ''}','${scd.MenuID}','20','${kei_no}','pc'`)
+              //           })
+              //         }
+              //       })
+              //     }
+              //   })
+              //   appMenuParam.LText = Utils.formatOptions(LText.join(' union '))
+              //   appMenuParam.LText1 = Utils.formatOptions(app_param.join(' union '))
+              // }
 
-              if (appMenuParam) {
-                Api.getSystemConfig(appMenuParam).then(_res => {
-                  if (!_res.status) {
-                    notification.warning({
-                      top: 92,
-                      message: _res.message,
-                      duration: 5
-                    })
-                    this.setState({ menuloading: false })
-                    return
-                  }
+              // if (appMenuParam) {
+              //   Api.getSystemConfig(appMenuParam).then(_res => {
+              //     if (!_res.status) {
+              //       notification.warning({
+              //         top: 92,
+              //         message: _res.message,
+              //         duration: 5
+              //       })
+              //       this.setState({ menuloading: false })
+              //       return
+              //     }
 
-                  Api.getSystemConfig(_param).then(res => {
-                    if (!res.status) {
-                      notification.warning({
-                        top: 92,
-                        message: res.message,
-                        duration: 5
-                      })
-                      this.setState({ menuloading: false })
-                      return
-                    }
+              //     Api.getSystemConfig(_param).then(res => {
+              //       if (!res.status) {
+              //         notification.warning({
+              //           top: 92,
+              //           message: res.message,
+              //           duration: 5
+              //         })
+              //         this.setState({ menuloading: false })
+              //         return
+              //       }
     
-                    new_open_edition[item.uuid] = res.open_edition || ''
+              //       new_open_edition[item.uuid] = res.open_edition || ''
                     
-                    resolve()
-                  })
-                })
-              } else {
+              //       resolve()
+              //     })
+              //   })
+              // } else {
                 Api.getSystemConfig(_param).then(res => {
                   if (!res.status) {
                     notification.warning({
@@ -1015,15 +1015,14 @@
                   new_open_edition[item.uuid] = res.open_edition || ''
                   resolve()
                 })
-              }
+              // }
             })
           })
           Promise.all(deffers).then(() => {
             let appViewList = sessionStorage.getItem('appViewList')
             appViewList = JSON.parse(appViewList)
-            let _length = appViewList.length
+            let _appViewList = fromJS(appViewList).toJS()
             let appIndeList = appViewList.map(item => item.keys_id).join(',')
-            
 
             config.components = config.components.map(item => {
               if (item.type === 'navbar') {
@@ -1039,12 +1038,19 @@
                     keys_type: 'navbar',
                     remark: item.name
                   })
+                } else {
+                  appViewList = appViewList.map(view => {
+                    if (view.keys_id === item.uuid) {
+                      view.remark = item.name
+                    }
+                    return view
+                  })
                 }
               }
               return item
             })
 
-            if (appViewList.length > _length) {
+            if (!is(fromJS(appViewList), fromJS(_appViewList))) {
               let kparam = {
                 func: 's_kei_link_keyids_addupt',
                 BID: sessionStorage.getItem('appId'),

--
Gitblit v1.8.0