From f30bc9d11d18e93626e4530dd2de54d479c2521d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 08 十一月 2021 21:48:22 +0800
Subject: [PATCH] Merge branch 'master' into bms

---
 src/templates/zshare/modalform/index.jsx                          |    4 
 src/mob/components/tabs/antv-tabs/options.jsx                     |   32 ++--
 src/tabviews/zshare/topSearch/index.jsx                           |    6 
 src/views/mobdesign/menuform/index.jsx                            |   27 +++
 src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx  |    6 
 src/mob/modalconfig/source.jsx                                    |    2 
 src/menu/components/share/searchcomponent/dragsearch/card.jsx     |    6 
 src/mob/components/topbar/normal-navbar/options.jsx               |   18 ++
 src/mob/components/formdragelement/index.scss                     |    5 
 src/templates/formtabconfig/dragelement/card.jsx                  |    6 
 src/views/mobdesign/menuform/index.scss                           |   11 +
 src/mob/modalconfig/index.jsx                                     |    8 
 src/mob/modalconfig/index.scss                                    |   13 +
 src/utils/utils.js                                                |   14 +
 src/menu/components/carousel/data-card/options.jsx                |    2 
 src/menu/components/card/cardcellcomponent/index.jsx              |    6 
 src/menu/components/card/data-card/options.jsx                    |    2 
 src/templates/modalconfig/settingform/index.jsx                   |   15 +
 src/templates/zshare/formconfig.jsx                               |   80 +++++++++
 src/menu/components/share/actioncomponent/formconfig.jsx          |   19 ++
 src/mob/searchconfig/searchdragelement/card.jsx                   |    6 
 src/menu/components/search/main-search/dragsearch/card.jsx        |    6 
 src/menu/components/card/cardsimplecomponent/index.jsx            |    2 
 src/menu/components/share/actioncomponent/actionform/index.jsx    |   34 +++
 src/views/appmanage/index.jsx                                     |    7 
 src/views/appmanage/submutilform/index.jsx                        |   17 ++
 src/utils/option.js                                               |   25 +-
 src/menu/components/card/cardcomponent/options.jsx                |    2 
 src/tabviews/zshare/mutilform/mkDatePicker/index.jsx              |   22 ++
 src/templates/sharecomponent/searchcomponent/searchform/index.jsx |   22 +-
 30 files changed, 352 insertions(+), 73 deletions(-)

diff --git a/src/menu/components/card/cardcellcomponent/index.jsx b/src/menu/components/card/cardcellcomponent/index.jsx
index 21ebe15..24a8fa9 100644
--- a/src/menu/components/card/cardcellcomponent/index.jsx
+++ b/src/menu/components/card/cardcellcomponent/index.jsx
@@ -124,6 +124,12 @@
     const { cards, cardCell } = this.props
 
     if (!ids || ids.length !== 2 || ids[0] !== cards.uuid || ids[1] !== cardCell.uuid) return
+    if (window.GLOB.$lock) return
+
+    window.GLOB.$lock = true
+    setTimeout(() => {
+      window.GLOB.$lock = false
+    }, 200)
 
     const { elements } = this.state
 
diff --git a/src/menu/components/card/cardcomponent/options.jsx b/src/menu/components/card/cardcomponent/options.jsx
index 6eff72a..96aa457 100644
--- a/src/menu/components/card/cardcomponent/options.jsx
+++ b/src/menu/components/card/cardcomponent/options.jsx
@@ -97,7 +97,7 @@
       field: 'click',
       label: '鐐瑰嚮浜嬩欢',
       initval: setting.click || '',
-      tooltip: '褰撻�夋嫨瑙﹀彂鎸夐挳鏃讹紝鍙湁褰撳崱鐗囦腑鍙瓨鍦ㄤ竴涓寜閽椂鏈夋晥銆�',
+      tooltip: '褰撶粦瀹氱偣鍑讳簨浠舵椂锛屽崱鐗囩殑鍒囨崲鍔熻兘灏嗗け鏁堛��',
       required: false,
       options: [
         {value: '', label: '鏃�'},
diff --git a/src/menu/components/card/cardsimplecomponent/index.jsx b/src/menu/components/card/cardsimplecomponent/index.jsx
index 9267c59..06ae80b 100644
--- a/src/menu/components/card/cardsimplecomponent/index.jsx
+++ b/src/menu/components/card/cardsimplecomponent/index.jsx
@@ -101,6 +101,8 @@
     newcard.padding = '5px'
     newcard.align = 'left'
 
+    window.GLOB.$lock = false
+
     // 娉ㄥ唽浜嬩欢-娣诲姞鍏冪礌
     MKEmitter.emit('cardAddElement', [cards.uuid, card.uuid], newcard)
   }
diff --git a/src/menu/components/card/data-card/options.jsx b/src/menu/components/card/data-card/options.jsx
index 6907ff4..2b629bb 100644
--- a/src/menu/components/card/data-card/options.jsx
+++ b/src/menu/components/card/data-card/options.jsx
@@ -78,7 +78,7 @@
       field: 'pagestyle',
       label: '鍒嗛〉椋庢牸',
       initval: wrap.pagestyle || 'page',
-      tooltip: '鏁版嵁婧愰�夋嫨鍒嗛〉鏃舵湁鏁堛��',
+      tooltip: '鏁版嵁婧愰�夋嫨鍒嗛〉鏃舵湁鏁堛�傛敞锛氭粦鍔ㄥ姞杞藉彧鏈夌涓�涓湁鏁�',
       required: false,
       options: [
         {value: 'page', label: '椤电爜'},
diff --git a/src/menu/components/carousel/data-card/options.jsx b/src/menu/components/carousel/data-card/options.jsx
index 6aa1852..ce39a9a 100644
--- a/src/menu/components/carousel/data-card/options.jsx
+++ b/src/menu/components/carousel/data-card/options.jsx
@@ -91,7 +91,7 @@
         {value: 'true', label: '鏄�'},
         {value: 'false', label: '鍚�'},
       ],
-      forbid: appType !== 'mob'
+      forbid: true // v5 涓嶆敮鎸佸瀭鐩存樉绀�
     },
     {
       type: 'radio',
diff --git a/src/menu/components/search/main-search/dragsearch/card.jsx b/src/menu/components/search/main-search/dragsearch/card.jsx
index 788cdbd..d5f7835 100644
--- a/src/menu/components/search/main-search/dragsearch/card.jsx
+++ b/src/menu/components/search/main-search/dragsearch/card.jsx
@@ -49,7 +49,11 @@
     }
   } else if (card.type === 'daterange') {
     _defaultValue = [null, null]
-    if (card.initval) {
+    if (card.initval === 'week') {
+      _defaultValue = [moment().startOf('week'), moment().endOf('week')]
+    } else if (card.initval === 'month') {
+      _defaultValue = [moment().startOf('month'), moment().endOf('month')]
+    } else if (card.initval) {
       try {
         let _initval = JSON.parse(card.initval)
         _defaultValue = [moment().subtract(_initval[0], 'days'), moment().subtract(_initval[1], 'days')]
diff --git a/src/menu/components/share/actioncomponent/actionform/index.jsx b/src/menu/components/share/actioncomponent/actionform/index.jsx
index 880e257..a6b6235 100644
--- a/src/menu/components/share/actioncomponent/actionform/index.jsx
+++ b/src/menu/components/share/actioncomponent/actionform/index.jsx
@@ -10,9 +10,9 @@
 const { TextArea } = Input
 const MkIcon = asyncComponent(() => import('@/components/mkIcon'))
 const actionTypeOptions = {
-  pop: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'icon', 'class', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'output', 'refreshTab'],
-  prompt: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'icon', 'class', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'output', 'refreshTab'],
-  exec: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'icon', 'class', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'output', 'refreshTab'],
+  pop: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'icon', 'class', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'output', 'refreshTab', 'reload'],
+  prompt: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'icon', 'class', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'output', 'refreshTab', 'reload'],
+  exec: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'icon', 'class', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'output', 'refreshTab', 'reload'],
   excelIn: ['label', 'Ot', 'OpenType', 'intertype', 'show', 'icon', 'class', 'sheet', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width'],
   excelOut: ['label', 'OpenType', 'intertype', 'show', 'icon', 'class', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'resetPageIndex', 'pagination', 'search', 'width'],
   popview: ['label', 'Ot', 'OpenType', 'show', 'icon', 'class', 'popClose', 'resetPageIndex', 'width', 'display', 'ratio', 'placement'],
@@ -113,6 +113,14 @@
           item.options = btnCustomClasses
         } else if (item.key === 'innerFunc' && _procMode === 'inner') {
           item.required = true
+        } else if (item.key === 'linkmenu') {
+          if (_opentype === 'funcbutton' && _funcType === 'scan') {
+            item.required = false
+            item.tooltip = '浣跨敤鎵爜鐧诲綍鍔熻兘鎴栬彍鍗曡烦杞姛鑳芥椂锛岄渶閫夋嫨璺宠浆鐨勮彍鍗曘��'
+          } else {
+            item.tooltip = ''
+            item.required = true
+          }
         } else if (item.key === 'intertype') {
           let iscustom = ['pop', 'prompt', 'exec'].includes(_opentype)
           item.options = this.state.interTypeOptions.filter(op => (iscustom || op.value !== 'custom'))
@@ -183,6 +191,10 @@
         _options.push('execSuccess', 'execError')
       } else if (_funcType === 'closetab') {
         _options.push('refreshTab')
+      } else if (_funcType === 'scan') {
+        _options.push('linkmenu')
+      } else if (_funcType === 'goBack') {
+        _options.push('reload')
       }
     } else if (_opentype !== 'popview' && _opentype !== 'tab') {
       if (_intertype === 'custom') {
@@ -272,6 +284,14 @@
           _fieldval.sqlType = ''
         } else if (item.key === 'pageTemplate') {
           item.initVal = ''
+        } else if (item.key === 'linkmenu') {
+          if (value === 'funcbutton' && this.state.funcType === 'scan') {
+            item.required = false
+            item.tooltip = '浣跨敤鎵爜鐧诲綍鍔熻兘鎴栬彍鍗曡烦杞姛鑳芥椂锛岄渶閫夋嫨璺宠浆鐨勮彍鍗曘��'
+          } else {
+            item.tooltip = ''
+            item.required = true
+          }
         }
 
         return item
@@ -319,6 +339,14 @@
             } else {
               item.options = this.state.requireOptions
             }
+          } else if (item.key === 'linkmenu') {
+            if (value === 'scan') {
+              item.required = false
+              item.tooltip = '浣跨敤鎵爜鐧诲綍鍔熻兘鎴栬彍鍗曡烦杞姛鑳芥椂锛岄渶閫夋嫨璺宠浆鐨勮彍鍗曘��'
+            } else {
+              item.tooltip = ''
+              item.required = true
+            }
           }
 
           return item
diff --git a/src/menu/components/share/actioncomponent/formconfig.jsx b/src/menu/components/share/actioncomponent/formconfig.jsx
index f7ff1d8..2a8d54c 100644
--- a/src/menu/components/share/actioncomponent/formconfig.jsx
+++ b/src/menu/components/share/actioncomponent/formconfig.jsx
@@ -102,9 +102,11 @@
     if (appType === 'mob') {
       opentypes = opentypes.filter(item => ['pop', 'prompt', 'exec', 'innerpage', 'funcbutton'].includes(item.value))
       funTypes = [
+        { value: 'scan', text: '鎵爜' },
+        { value: 'logout', text: '閫�鍑�' },
         { value: 'mkBinding', text: '寮�閫氭壂鐮佺櫥褰�' },
         { value: 'mkUnBinding', text: '鐢ㄦ埛瑙g粦' },
-        { value: 'reAuth', text: '閲嶆柊鎺堟潈' },
+        { value: 'reAuth', text: '鍒囨崲绯荤粺' },
         { value: 'goBack', text: '杩斿洖' },
       ]
       pageTemps = [
@@ -689,6 +691,21 @@
         text: '涓嬩晶'
       }]
     },
+    {
+      type: 'radio',
+      key: 'reload',
+      label: '杩斿洖鍚�',
+      initVal: card.reload || 'false',
+      tooltip: '鎸夐挳鎴愬姛鍚庤繑鍥炰笂涓�椤甸潰鎴栦娇鐢ㄥ姛鑳芥寜閽�-杩斿洖鍔熻兘鏃讹紝杩斿洖鍚庢槸鍚﹀埛鏂版暟鎹�傛敞锛氬湪鏄庣浜慳pp涓紙搴旂敤妯″紡涓篴pp锛夋湁鏁堛��',
+      forbid: appType !== 'mob',
+      options: [{
+        value: 'false',
+        text: '涓嶅埛鏂�'
+      }, {
+        value: 'true',
+        text: '鍒锋柊'
+      }]
+    },
   ]
 
   return forms
diff --git a/src/menu/components/share/searchcomponent/dragsearch/card.jsx b/src/menu/components/share/searchcomponent/dragsearch/card.jsx
index a484993..85b3b7b 100644
--- a/src/menu/components/share/searchcomponent/dragsearch/card.jsx
+++ b/src/menu/components/share/searchcomponent/dragsearch/card.jsx
@@ -46,7 +46,11 @@
     }
   } else if (card.type === 'daterange') {
     _defaultValue = [null, null]
-    if (card.initval) {
+    if (card.initval === 'week') {
+      _defaultValue = [moment().startOf('week'), moment().endOf('week')]
+    } else if (card.initval === 'month') {
+      _defaultValue = [moment().startOf('month'), moment().endOf('month')]
+    } else if (card.initval) {
       try {
         let _initval = JSON.parse(card.initval)
         _defaultValue = [moment().subtract(_initval[0], 'days'), moment().subtract(_initval[1], 'days')]
diff --git a/src/mob/components/formdragelement/index.scss b/src/mob/components/formdragelement/index.scss
index 26bc526..b8673a5 100644
--- a/src/mob/components/formdragelement/index.scss
+++ b/src/mob/components/formdragelement/index.scss
@@ -50,6 +50,7 @@
         font-size: 16px;
         flex: 1 1;
         text-align: right;
+        padding-right: 15px;
       }
       .am-input-control.left {
         text-align: left;
@@ -78,7 +79,9 @@
         line-height: 24px;
       }
       .am-list-extra {
-        display: none;
+        position: absolute;
+        top: 30px;
+        right: 10px;
       }
     }
   }
diff --git a/src/mob/components/tabs/antv-tabs/options.jsx b/src/mob/components/tabs/antv-tabs/options.jsx
index 37bc0c5..e2dd8c8 100644
--- a/src/mob/components/tabs/antv-tabs/options.jsx
+++ b/src/mob/components/tabs/antv-tabs/options.jsx
@@ -86,22 +86,22 @@
       precision: 0,
       required: true
     },
-    {
-      type: 'select',
-      field: 'position',
-      label: '鏍囩浣嶇疆',
-      initval: setting.position || 'top',
-      required: true,
-      options: [
-        {value: 'top', label: 'top'},
-        {value: 'bottom', label: 'bottom'},
-        {value: 'left', label: 'left'},
-        {value: 'right', label: 'right'},
-      ],
-      controlFields: [
-        {field: 'display', values: ['top', 'bottom']},
-      ]
-    },
+    // {
+    //   type: 'select',
+    //   field: 'position',
+    //   label: '鏍囩浣嶇疆',
+    //   initval: setting.position || 'top',
+    //   required: true,
+    //   options: [
+    //     {value: 'top', label: 'top'},
+    //     {value: 'bottom', label: 'bottom'},
+    //     {value: 'left', label: 'left'},
+    //     {value: 'right', label: 'right'},
+    //   ],
+    //   controlFields: [
+    //     {field: 'display', values: ['top', 'bottom']},
+    //   ]
+    // },
     {
       type: 'radio',
       field: 'display',
diff --git a/src/mob/components/topbar/normal-navbar/options.jsx b/src/mob/components/topbar/normal-navbar/options.jsx
index bcb83ca..5af02e8 100644
--- a/src/mob/components/topbar/normal-navbar/options.jsx
+++ b/src/mob/components/topbar/normal-navbar/options.jsx
@@ -46,6 +46,9 @@
       options: [
         {value: 'true', label: '鏄剧ず'},
         {value: 'false', label: '闅愯棌'},
+      ],
+      controlFields: [
+        {field: 'reload', values: ['true']},
       ]
     },
     {
@@ -106,6 +109,21 @@
       required: false,
       options: menulist
     },
+    {
+      type: 'radio',
+      field: 'reload',
+      label: '杩斿洖鍚�',
+      initval: wrap.reload || 'false',
+      tooltip: '杩斿洖鍚庢槸鍚﹀埛鏂版暟鎹�傛敞锛氬湪鏄庣浜慳pp涓紙搴旂敤妯″紡涓篴pp锛夋湁鏁堛��',
+      required: false,
+      options: [{
+        value: 'false',
+        label: '涓嶅埛鏂�'
+      }, {
+        value: 'true',
+        label: '鍒锋柊'
+      }]
+    },
   ]
 
   return topbarWrapForm
diff --git a/src/mob/modalconfig/index.jsx b/src/mob/modalconfig/index.jsx
index bb1cd4f..8c0c7ae 100644
--- a/src/mob/modalconfig/index.jsx
+++ b/src/mob/modalconfig/index.jsx
@@ -91,6 +91,7 @@
     let _config = fromJS(this.state.config).toJS()
 
     if (list.length > _config.fields.length) {
+      _config.fields = list
       this.setState({
         config: _config
       }, () => {
@@ -427,8 +428,9 @@
             <div className="mob-shell" style={{width: window.GLOB.shellWidth, height: window.GLOB.shellHeight}}>
               <div className="mob-shell-inner">
                 <div className="am-navbar">
-                  <Icon type="close" />
+                  <Icon type="left" />
                   <div className="am-navbar-title">{config.setting.title}</div>
+                  {config.setting.btnPosition === 'top' ? <Button className="modal-submit-top">{config.setting.btnName || '纭畾'}</Button> : null}
                 </div>
                 <DragElement
                   list={config.fields}
@@ -439,10 +441,10 @@
                   handleForm={this.handleForm}
                   closeForm={this.closeForm}
                 />
-                <div className="modal-btns">
+                {config.setting.btnPosition !== 'top' ? <div className="modal-btns">
                   <Button className="modal-reset" type="default">閲嶇疆</Button>
                   <Button className="modal-submit" type="primary">{config.setting.btnName || '纭畾'}</Button>
-                </div>
+                </div> : null}
               </div>
             </div>
           </div>
diff --git a/src/mob/modalconfig/index.scss b/src/mob/modalconfig/index.scss
index 1d65408..322cbe8 100644
--- a/src/mob/modalconfig/index.scss
+++ b/src/mob/modalconfig/index.scss
@@ -156,16 +156,25 @@
         position: relative;
         border-bottom: 1px solid #f0f0f0;
         margin-bottom: 10px;
-        .anticon-close {
+        .anticon-left {
           position: absolute;
           line-height: 45px;
           font-size: 18px;
-          right: 10px;
+          left: 10px;
         }
         .am-navbar-title {
           font-size: 16px;
           text-align: center;
         }
+        .modal-submit-top {
+          position: absolute;
+          top: 7px;
+          right: 5px;
+          color: #1890ff;
+          border: none;
+          box-shadow: none;
+          font-size: 16px;
+        }
       }
       .modal-btns {
         display: flex;
diff --git a/src/mob/modalconfig/source.jsx b/src/mob/modalconfig/source.jsx
index 3fed414..8d2248d 100644
--- a/src/mob/modalconfig/source.jsx
+++ b/src/mob/modalconfig/source.jsx
@@ -18,7 +18,7 @@
   },
   {
     type: 'form',
-    label: CommonDict['model.form.select'],
+    label: '閫夋嫨鍣�',
     subType: 'select',
     url: ''
   },
diff --git a/src/mob/searchconfig/searchdragelement/card.jsx b/src/mob/searchconfig/searchdragelement/card.jsx
index 97e27f9..228865a 100644
--- a/src/mob/searchconfig/searchdragelement/card.jsx
+++ b/src/mob/searchconfig/searchdragelement/card.jsx
@@ -82,7 +82,11 @@
     </div>)
   } else if (card.type === 'daterange') {
     let value = '璇烽�夋嫨'
-    if (card.initval) {
+    if (card.initval === 'week') {
+      value = [moment().startOf('week').format('YYYY-MM-DD'), moment().endOf('week').format('YYYY-MM-DD')].join(' ~ ')
+    } else if (card.initval === 'month') {
+      value = [moment().startOf('month').format('YYYY-MM-DD'), moment().endOf('month').format('YYYY-MM-DD')].join(' ~ ')
+    } else if (card.initval) {
       try {
         let _initval = JSON.parse(card.initval)
         value = [moment().subtract(_initval[0], 'days').format('YYYY-MM-DD'), moment().subtract(_initval[1], 'days').format('YYYY-MM-DD')].join(' ~ ')
diff --git a/src/tabviews/zshare/mutilform/mkDatePicker/index.jsx b/src/tabviews/zshare/mutilform/mkDatePicker/index.jsx
index 3d4377b..b2acd83 100644
--- a/src/tabviews/zshare/mutilform/mkDatePicker/index.jsx
+++ b/src/tabviews/zshare/mutilform/mkDatePicker/index.jsx
@@ -31,6 +31,8 @@
 
     this.state = {
       value,
+      minDate: config.minDate ? moment().add(config.minDate, 'days').endOf('day') : '',
+      maxDate: config.maxDate ? moment().add(config.maxDate, 'days').endOf('day') : '',
       mode,
       format
     }
@@ -52,16 +54,32 @@
     this.props.onChange(val ? moment(val).format(format) : '')
   }
 
+  disabledDate = (current) => {
+    const { minDate, maxDate } = this.state
+
+    if (!current || (!maxDate && !minDate)) {
+      return false
+    }
+    
+    if (!maxDate) {
+      return current < minDate
+    } else if (!minDate) {
+      return current > maxDate
+    } else {
+      return current < minDate || current > maxDate
+    }
+  }
+
   render() {
     const { config } = this.props
     const { value, mode } = this.state
 
     if (mode === 'date') {
-      return <DatePicker defaultValue={value} disabled={config.readonly} onChange={this.onChange}/>
+      return <DatePicker defaultValue={value} disabledDate={this.disabledDate} disabled={config.readonly} onChange={this.onChange}/>
     } else if (mode === 'month') {
       return <MonthPicker defaultValue={value} disabled={config.readonly} onChange={this.onChange}/>
     } else if (mode === 'datetime') {
-      return <DatePicker defaultValue={value} showTime disabled={config.readonly} onChange={this.onChange}/>
+      return <DatePicker defaultValue={value} disabledDate={this.disabledDate} showTime disabled={config.readonly} onChange={this.onChange}/>
     }
   }
 }
diff --git a/src/tabviews/zshare/topSearch/index.jsx b/src/tabviews/zshare/topSearch/index.jsx
index c1403af..4a2ad50 100644
--- a/src/tabviews/zshare/topSearch/index.jsx
+++ b/src/tabviews/zshare/topSearch/index.jsx
@@ -588,7 +588,8 @@
           value: values[item.datefield] || '',
           label: item.label,
           match: 'between',
-          required: item.required
+          required: item.required,
+          forbid: item.$forbid
         }, {
           type: 'group',
           key: item.field,
@@ -615,7 +616,8 @@
           value: val,
           label: item.label,
           match: item.match,
-          required: item.required
+          required: item.required,
+          forbid: item.$forbid
         })
       }
     })
diff --git a/src/templates/formtabconfig/dragelement/card.jsx b/src/templates/formtabconfig/dragelement/card.jsx
index d2817df..7648091 100644
--- a/src/templates/formtabconfig/dragelement/card.jsx
+++ b/src/templates/formtabconfig/dragelement/card.jsx
@@ -63,7 +63,11 @@
     }
   } else if (type === 'search' && card.type === 'daterange') {
     _defaultValue = [null, null]
-    if (card.initval) {
+    if (card.initval === 'week') {
+      _defaultValue = [moment().startOf('week'), moment().endOf('week')]
+    } else if (card.initval === 'month') {
+      _defaultValue = [moment().startOf('month'), moment().endOf('month')]
+    } else if (card.initval) {
       try {
         let _initval = JSON.parse(card.initval)
         _defaultValue = [moment().subtract(_initval[0], 'days'), moment().subtract(_initval[1], 'days')]
diff --git a/src/templates/modalconfig/settingform/index.jsx b/src/templates/modalconfig/settingform/index.jsx
index 825f602..9eea507 100644
--- a/src/templates/modalconfig/settingform/index.jsx
+++ b/src/templates/modalconfig/settingform/index.jsx
@@ -180,7 +180,7 @@
               )}
             </Form.Item>
           </Col>
-          <Col span={12}>
+          {appType !== 'mob' ? <Col span={12}>
             <Form.Item label="鐐瑰嚮绌虹櫧澶�">
               {getFieldDecorator('clickouter', {
                 initialValue: config.setting.clickouter || 'unclose'
@@ -191,7 +191,7 @@
                 </Radio.Group>
               )}
             </Form.Item>
-          </Col>
+          </Col> : null}
           <Col span={12}>
             <Form.Item label={
               <Tooltip placement="topLeft" title="闇�瑕侀�氳繃鏁版嵁婧愭煡璇㈢殑閫夐」锛屾槸鍚︿娇鐢ㄧ紦瀛樸��">
@@ -290,6 +290,17 @@
               })(<Input placeholder="" autoComplete="off" onPressEnter={this.handleSubmit} />)}
             </Form.Item>
           </Col> : null}
+          {appType === 'mob' ? <Col span={12}>
+            <Form.Item label="鎸夐挳浣嶇疆">
+              {getFieldDecorator('btnPosition', {
+                initialValue: config.setting.btnPosition || 'bottom'
+              })(
+                <Radio.Group style={{whiteSpace: 'nowrap'}}>
+                  <Radio value="bottom">涓嬩晶</Radio>
+                  <Radio value="top">涓婁晶</Radio>
+                </Radio.Group>)}
+            </Form.Item>
+          </Col> : null}
         </Row>
       </Form>
     )
diff --git a/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx b/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx
index e65b6ec..b0c3855 100644
--- a/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx
+++ b/src/templates/sharecomponent/searchcomponent/dragsearch/card.jsx
@@ -50,7 +50,11 @@
     }
   } else if (card.type === 'daterange') {
     _defaultValue = [null, null]
-    if (card.initval) {
+    if (card.initval === 'week') {
+      _defaultValue = [moment().startOf('week'), moment().endOf('week')]
+    } else if (card.initval === 'month') {
+      _defaultValue = [moment().startOf('month'), moment().endOf('month')]
+    } else if (card.initval) {
       try {
         let _initval = JSON.parse(card.initval)
         _defaultValue = [moment().subtract(_initval[0], 'days'), moment().subtract(_initval[1], 'days')]
diff --git a/src/templates/sharecomponent/searchcomponent/searchform/index.jsx b/src/templates/sharecomponent/searchcomponent/searchform/index.jsx
index e8faf2e..88f8bfc 100644
--- a/src/templates/sharecomponent/searchcomponent/searchform/index.jsx
+++ b/src/templates/sharecomponent/searchcomponent/searchform/index.jsx
@@ -87,17 +87,17 @@
 ]
 
 const searchTypeOptions = {
-  text: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'inputType', 'advanced'],
-  select: ['label', 'field', 'resourceType', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'setAll', 'dropdown'],
-  multiselect: ['label', 'field', 'resourceType', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced'],
-  link: ['label', 'field', 'resourceType', 'initval', 'type', 'linkField', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'setAll', 'dropdown'],
-  date: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced'],
-  checkcard: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'resourceType', 'display', 'width', 'multiple', 'borderColor', 'required', 'Hide', 'labelShow', 'advanced'],
-  dateweek: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced'],
-  datemonth: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced'],
-  daterange: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced'],
-  group: ['label', 'type', 'field', 'datefield', 'initval', 'blacklist', 'ratio', 'items', 'required', 'labelShow'],
-  range: ['label', 'type', 'field', 'initval', 'match', 'blacklist', 'Hide', 'required', 'maxValue', 'minValue', 'step', 'labelShow']
+  text: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'inputType', 'advanced', 'query'],
+  select: ['label', 'field', 'resourceType', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'setAll', 'dropdown', 'query'],
+  multiselect: ['label', 'field', 'resourceType', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'],
+  link: ['label', 'field', 'resourceType', 'initval', 'type', 'linkField', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'setAll', 'dropdown', 'query'],
+  date: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'],
+  checkcard: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'resourceType', 'display', 'width', 'multiple', 'borderColor', 'required', 'Hide', 'labelShow', 'advanced', 'query'],
+  dateweek: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'],
+  datemonth: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'],
+  daterange: ['label', 'field', 'initval', 'type', 'match', 'ratio', 'blacklist', 'required', 'Hide', 'labelShow', 'advanced', 'query'],
+  group: ['label', 'type', 'field', 'datefield', 'initval', 'blacklist', 'ratio', 'items', 'required', 'labelShow', 'query'],
+  range: ['label', 'type', 'field', 'initval', 'match', 'blacklist', 'Hide', 'required', 'maxValue', 'minValue', 'step', 'labelShow', 'query']
 }
 
 class MainSearch extends Component {
diff --git a/src/templates/zshare/formconfig.jsx b/src/templates/zshare/formconfig.jsx
index fbcc7db..b2ece7d 100644
--- a/src/templates/zshare/formconfig.jsx
+++ b/src/templates/zshare/formconfig.jsx
@@ -678,6 +678,20 @@
         text: Formdict['model.false']
       }]
     },
+    {
+      type: 'radio',
+      key: 'query',
+      label: '鍙備笌鏌ヨ',
+      initVal: card.query || 'true',
+      tooltip: '鏄惁浣滀负 where 鏉′欢锛屽弬涓庢暟鎹煡璇€��',
+      options: [{
+        value: 'true',
+        text: '鏄�'
+      }, {
+        value: 'false',
+        text: '鍚�'
+      }]
+    },
     // {
     //   type: 'radio',
     //   key: 'transfer',
@@ -2615,6 +2629,70 @@
       required: false
     },
     {
+      type: 'select',
+      key: 'minDate',
+      label: '鏈�灏忓��',
+      initVal: card.minDate || '',
+      required: false,
+      options: [{
+        value: '',
+        text: '鏃�'
+      }, {
+        value: '0',
+        text: '褰撳ぉ'
+      }, {
+        value: '-1',
+        text: '鍓嶄竴澶�'
+      }, {
+        value: '-2',
+        text: '鍓嶄袱澶�'
+      }, {
+        value: '-3',
+        text: '鍓嶄笁澶�'
+      }, {
+        value: '-7',
+        text: '鍓嶄竷澶�'
+      }, {
+        value: '-30',
+        text: '鍓�30澶�'
+      }, {
+        value: '-90',
+        text: '鍓�90澶�'
+      }]
+    },
+    {
+      type: 'select',
+      key: 'maxDate',
+      label: '鏈�澶у��',
+      initVal: card.maxDate || '',
+      required: false,
+      options: [{
+        value: '',
+        text: '鏃�'
+      }, {
+        value: '0',
+        text: '褰撳ぉ'
+      }, {
+        value: '1',
+        text: '鍚庝竴澶�'
+      }, {
+        value: '2',
+        text: '鍚庝袱澶�'
+      }, {
+        value: '3',
+        text: '鍚庝笁澶�'
+      }, {
+        value: '7',
+        text: '鍚庝竷澶�'
+      }, {
+        value: '30',
+        text: '鍚�30澶�'
+      }, {
+        value: '90',
+        text: '鍚�90澶�'
+      }]
+    },
+    {
       type: 'number',
       key: 'fieldlength',
       min: 1,
@@ -3007,7 +3085,7 @@
       key: 'place',
       label: '鎺掑垪',
       initVal: card.place || 'left_right',
-      tooltip: '鎻愮ず鏂囧瓧涓庤緭鍏ユ鐨勪綅缃叧绯汇�傛敞锛氫笂涓嬫帓鍒楁槸浼氱鐢ㄦ壂鐮佸姛鑳姐��',
+      tooltip: '鎻愮ず鏂囧瓧涓庤緭鍏ユ鐨勪綅缃叧绯汇��',
       forbid: appType !== 'mob',
       options: [{
         value: 'left_right',
diff --git a/src/templates/zshare/modalform/index.jsx b/src/templates/zshare/modalform/index.jsx
index 8ce224c..ab6eb9b 100644
--- a/src/templates/zshare/modalform/index.jsx
+++ b/src/templates/zshare/modalform/index.jsx
@@ -26,9 +26,9 @@
   link: ['initval', 'readonly', 'required', 'hidden', 'readin', 'resourceType', 'setAll', 'linkField', 'linkSubField', 'span', 'labelwidth', 'tooltip', 'extra', 'emptyText', 'enter', 'splitline', 'dropdown', 'marginTop', 'marginBottom'],
   fileupload: ['readonly', 'required', 'readin', 'fieldlength', 'maxfile', 'fileType', 'span', 'labelwidth', 'tooltip', 'extra', 'compress', 'splitline', 'marginTop', 'marginBottom'],
   switch: ['initval', 'openVal', 'closeVal', 'openText', 'closeText', 'readonly', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'splitline', 'marginTop', 'marginBottom'],
-  date: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'declareType', 'mode', 'splitline', 'marginTop', 'marginBottom'],
+  date: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'declareType', 'mode', 'splitline', 'marginTop', 'marginBottom', 'minDate', 'maxDate'],
   datemonth: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'declareType', 'splitline', 'marginTop', 'marginBottom'],
-  datetime: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'declareType', 'mode', 'splitline', 'marginTop', 'marginBottom'],
+  datetime: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'declareType', 'mode', 'splitline', 'marginTop', 'marginBottom', 'minDate', 'maxDate'],
   textarea: ['initval', 'readonly', 'required', 'hidden', 'readin', 'fieldlength', 'span', 'labelwidth', 'maxRows', 'encryption', 'interception', 'tooltip', 'extra', 'count', 'placeholder', 'marginTop', 'marginBottom'],
   color: ['initval', 'readonly', 'required', 'hidden', 'readin', 'span', 'labelwidth', 'tooltip', 'extra', 'marginTop', 'marginBottom'],
   hint: ['label', 'type', 'blacklist', 'message', 'span', 'labelwidth', 'splitline', 'marginTop', 'marginBottom'],
diff --git a/src/utils/option.js b/src/utils/option.js
index df5e76b..1111af7 100644
--- a/src/utils/option.js
+++ b/src/utils/option.js
@@ -145,7 +145,9 @@
     {value: '[30, -30]', text: '鍓嶅悗30澶�'},
     {value: '[90, -90]', text: '鍓嶅悗90澶�'},
     {value: '[-1, -1]', text: '鏄庡ぉ'},
-    {value: '[-2, -2]', text: '鍚庡ぉ'}
+    {value: '[-2, -2]', text: '鍚庡ぉ'},
+    {value: 'week', text: '鏈懆'},
+    {value: 'month', text: '鏈湀'},
   ],
   datetime: [
     {value: '', text: _dict['model.empty']},
@@ -673,24 +675,24 @@
     'up',
     'left',
     'right',
-    'caret-up',
-    'caret-down',
-    'caret-left',
-    'caret-right',
+    // 'caret-up',
+    // 'caret-down',
+    // 'caret-left',
+    // 'caret-right',
     'step-backward',
     'step-forward',
-    'fast-backward',
-    'fast-forward',
+    // 'fast-backward',
+    // 'fast-forward',
     'double-right',
     'double-left',
-    'forward',
-    'backward',
+    // 'forward',
+    // 'backward',
     'rollback',
     'enter',
     'retweet',
     'swap',
-    'swap-left',
-    'swap-right',
+    // 'swap-left',
+    // 'swap-right',
     'play-circle',
     'login',
     'logout',
@@ -769,6 +771,7 @@
     'audio',
     'bank',
     'bell',
+    'scan',
     'bug',
     'calendar',
     'camera',
diff --git a/src/utils/utils.js b/src/utils/utils.js
index 86fd067..109ea9e 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -248,6 +248,7 @@
       item.hidden = item.Hide === 'true'
       item.required = !item.hidden && item.required === 'true'
       item.advanced = item.advanced === 'true'
+      item.$forbid = item.query === 'false'
 
       if (item.type === 'date') { // 鏃堕棿鎼滅储
         item.initval = item.initval ? moment().subtract(item.initval, 'days').format('YYYY-MM-DD') : ''
@@ -256,7 +257,11 @@
       } else if (item.type === 'dateweek') {
         item.initval = item.initval ? moment().subtract(item.initval * 7, 'days').format('YYYY-MM-DD') : ''
       } else if (item.type === 'daterange') {
-        if (item.initval) {
+        if (item.initval === 'week') {
+          item.initval = [moment().startOf('week').format('YYYY-MM-DD'), moment().endOf('week').format('YYYY-MM-DD')].join(',')
+        } else if (item.initval === 'month') {
+          item.initval = [moment().startOf('month').format('YYYY-MM-DD'), moment().endOf('month').format('YYYY-MM-DD')].join(',')
+        } else if (item.initval) {
           try {
             let _initval = JSON.parse(item.initval)
             let _vals = [moment().subtract(_initval[0], 'days').format('YYYY-MM-DD'), moment().subtract(_initval[1], 'days').format('YYYY-MM-DD')]
@@ -352,7 +357,8 @@
         type: cell.type,
         label: cell.label,
         value: cell.initval,
-        required: cell.required
+        required: cell.required,
+        forbid: cell.$forbid
       }
       
       if (cell.type === 'multiselect' || (cell.type === 'checkcard' && cell.multiple === 'true')) {
@@ -1354,7 +1360,7 @@
   })
 
   // 闇�瑕佸0鏄庣殑鍙橀噺闆�
-  let _vars = ['tbid', 'errorcode', 'retmsg', 'billcode', 'bvoucher', 'fibvoucherdate', 'fiyear', 'username', 'fullname', 'modulardetailcode', 'roleid', 'mk_departmentcode', 'mk_organization', 'login_city']
+  let _vars = ['tbid', 'errorcode', 'retmsg', 'billcode', 'bvoucher', 'fibvoucherdate', 'fiyear', 'username', 'fullname', 'modulardetailcode', 'roleid', 'mk_departmentcode', 'mk_organization', 'login_city', 'bid']
 
   // 涓婚敭瀛楁
   let primaryKey = setting.primaryKey || 'id'
@@ -1476,7 +1482,7 @@
     _declarefields = ',' + _declarefields
   }
   _sql = `/* 绯荤粺鐢熸垚 */
-      Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@login_city nvarchar(50),@ModularDetailCode nvarchar(50)${_declarefields}
+      Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50), @UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@login_city nvarchar(50),@bid nvarchar(50),@ModularDetailCode nvarchar(50)${_declarefields}
     `
 
   // 琛ㄥ崟鍙橀噺璧嬪��
diff --git a/src/views/appmanage/index.jsx b/src/views/appmanage/index.jsx
index be63af1..acb086b 100644
--- a/src/views/appmanage/index.jsx
+++ b/src/views/appmanage/index.jsx
@@ -470,6 +470,7 @@
               cell.logo = _param.logo || ''
               cell.apptype = _param.apptype || ''
               cell.delay = _param.delay || 0
+              cell.statusBarColor = _param.statusBarColor || 'black'
             }
 
             return cell
@@ -602,7 +603,7 @@
     sublist = sublist.filter(item => item.ID !== record.ID)
 
     // param.LText = sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','${item.login_types || 'true'}','${item.link_type || 'true'}','${item.role_type || 'true'}','${item.lang || 'zh-CN'}'`)
-    param.LText = sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','false','false','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}','${item.user_binding || ''}','${item.sms_id || ''}','${window.btoa(window.encodeURIComponent(JSON.stringify({copyright: item.copyright || '', logo: item.logo || '', apptype: item.apptype || '', delay: item.delay || 0})))}'`)
+    param.LText = sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','false','false','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}','${item.user_binding || ''}','${item.sms_id || ''}','${window.btoa(window.encodeURIComponent(JSON.stringify({copyright: item.copyright || '', logo: item.logo || '', apptype: item.apptype || '', delay: item.delay || 0, statusBarColor: item.statusBarColor || 'black'})))}'`)
     param.LText = param.LText.join(' union all ')
     param.LText = Utils.formatOptions(param.LText)
     
@@ -826,7 +827,7 @@
 
       if (visible === 'edit') {
         // param.LText = selectApp.sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','${item.login_types || 'true'}','${item.link_type || 'true'}','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}'`)
-        param.LText = selectApp.sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','false','false','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}','${item.user_binding || ''}','${item.sms_id || ''}','${window.btoa(window.encodeURIComponent(JSON.stringify({copyright: item.copyright || '', logo: item.logo || '', apptype: item.apptype || '', delay: item.delay || 0})))}'`)
+        param.LText = selectApp.sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','false','false','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}','${item.user_binding || ''}','${item.sms_id || ''}','${window.btoa(window.encodeURIComponent(JSON.stringify({copyright: item.copyright || '', logo: item.logo || '', apptype: item.apptype || '', delay: item.delay || 0, statusBarColor: item.statusBarColor || 'black'})))}'`)
         param.LText = param.LText.join(' union all ')
         param.LText = Utils.formatOptions(param.LText)
       }
@@ -912,7 +913,7 @@
       }
 
       // param.LText = sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','${item.login_types || 'true'}','${item.link_type || 'true'}','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}'`)
-      param.LText = sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','false','false','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}','${item.user_binding || ''}','${item.sms_id || ''}','${window.btoa(window.encodeURIComponent(JSON.stringify({copyright: item.copyright || '', logo: item.logo || '', apptype: item.apptype || '', delay: item.delay || 0})))}'`)
+      param.LText = sublist.map(item => `select '${item.ID}','${item.typename}','${selectApp.ID}','${sessionStorage.getItem('CloudUserID') || ''}','${window.GLOB.appkey || ''}','false','false','${item.role_type || 'true'}','${item.lang || 'zh-CN'}','${item.css || ''}','${item.title || ''}','${item.favicon || ''}','${item.user_binding || ''}','${item.sms_id || ''}','${window.btoa(window.encodeURIComponent(JSON.stringify({copyright: item.copyright || '', logo: item.logo || '', apptype: item.apptype || '', delay: item.delay || 0, statusBarColor: item.statusBarColor || 'black'})))}'`)
       param.LText = param.LText.join(' union all ')
       param.LText = Utils.formatOptions(param.LText)
 
diff --git a/src/views/appmanage/submutilform/index.jsx b/src/views/appmanage/submutilform/index.jsx
index 86c5739..00ddbb5 100644
--- a/src/views/appmanage/submutilform/index.jsx
+++ b/src/views/appmanage/submutilform/index.jsx
@@ -265,6 +265,23 @@
               })(<InputNumber min={0} max={5000} precision={0} onPressEnter={this.handleSubmit}/>)}
             </Form.Item>
           </Col> : null}
+          {typename !== 'pc' ? <Col span={12}>
+            <Form.Item label={
+              <Tooltip placement="topLeft" title="鍦ㄤ娇鐢ㄦ槑绉戜簯APP鏃讹紝鐘舵�佹爮鐨勫瓧浣撻鑹层��">
+                <Icon type="question-circle" />
+                鐘舵�佹爮
+              </Tooltip>
+            }>
+              {getFieldDecorator('statusBarColor', {
+                initialValue: card ? card.statusBarColor || 'black' : 'black'
+              })(
+                <Radio.Group>
+                  <Radio value="black">榛戣壊</Radio>
+                  <Radio value="white">鐧借壊</Radio>
+                </Radio.Group>
+              )}
+            </Form.Item>
+          </Col> : null}
         </Row>
       </Form>
     )
diff --git a/src/views/mobdesign/menuform/index.jsx b/src/views/mobdesign/menuform/index.jsx
index f053755..fbd2a07 100644
--- a/src/views/mobdesign/menuform/index.jsx
+++ b/src/views/mobdesign/menuform/index.jsx
@@ -6,6 +6,7 @@
 import './index.scss'
 
 const { TextArea } = Input
+const ColorSketch = asyncComponent(() => import('@/mob/colorsketch'))
 const SourceComponent = asyncComponent(() => import('@/menu/components/share/sourcecomponent'))
 
 class CustomMenuForm extends Component {
@@ -30,6 +31,10 @@
       this.props.updateConfig({...config, advertUrl: value})
     } else if (key === 'advertTime') {
       this.props.updateConfig({...config, advertTime: value})
+    } else if (key === 'pullRefresh') {
+      this.props.updateConfig({...config, pullRefresh: value})
+    } else if (key === 'statusBarbgColor') {
+      this.props.updateConfig({...config, statusBarbgColor: value})
     }
   }
 
@@ -189,6 +194,28 @@
               )}
             </Form.Item>
           </Col>
+          <Col span={24}>
+            <Form.Item label="涓嬫媺鍒锋柊">
+              {getFieldDecorator('pullRefresh', {
+                initialValue: config.pullRefresh || 'false'
+              })(
+                <Radio.Group onChange={(e) => {this.selectChange('pullRefresh', e.target.value)}}>
+                  <Radio value="false">鍏抽棴</Radio>
+                  <Radio value="true">寮�鍚�</Radio>
+                </Radio.Group>
+              )}
+            </Form.Item>
+          </Col>
+          <Col span={24}>
+            <Form.Item className="status-bar" label={
+              <Tooltip placement="topLeft" title="鍦ㄦ槑绉戜簯APP涓紝鐘舵�佹爮鐨勮儗鏅壊銆�">
+                <Icon type="question-circle" />
+                鐘舵�佹爮
+              </Tooltip>
+            }>
+              <ColorSketch value={config.statusBarbgColor || '#ffffff'} onChange={(val) => {this.selectChange('statusBarbgColor', val)}} />
+            </Form.Item>
+          </Col>
           {config.advertUrl ? <Col span={24}>
             <Form.Item label="鍋滅暀(s)">
               {getFieldDecorator('advertTime', {
diff --git a/src/views/mobdesign/menuform/index.scss b/src/views/mobdesign/menuform/index.scss
index 1dd4245..8556632 100644
--- a/src/views/mobdesign/menuform/index.scss
+++ b/src/views/mobdesign/menuform/index.scss
@@ -19,4 +19,15 @@
   .mk-source-wrap .mk-source-item-info .anticon-delete {
     color: #ff4d4f;
   }
+  .status-bar {
+    .ant-form-item-control {
+      padding-top: 7px;
+      .color-sketch-block-box {
+        width: calc(100% - 140px);
+      }
+      .color-sketch-value {
+        width: 140px;
+      }
+    }
+  }
 }
\ No newline at end of file

--
Gitblit v1.8.0