From c519b4e51fe07bf13a2a7e44abd648b8dc0c083d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 23 六月 2020 12:12:12 +0800
Subject: [PATCH] 2020-06-23

---
 src/templates/sharecomponent/settingcomponent/index.jsx              |    2 
 src/templates/zshare/modalform/index.jsx                             |    4 
 src/templates/subtableconfig/source.jsx                              |   52 ++-
 src/components/header/index.jsx                                      |    2 
 src/templates/formtabconfig/index.jsx                                |    2 
 src/mob/mobshell/index.jsx                                           |   30 -
 src/tabviews/zshare/chartcomponent/index.jsx                         |    2 
 src/templates/sharecomponent/searchcomponent/index.jsx               |    2 
 src/templates/sharecomponent/chartcomponent/index.jsx                |    2 
 src/locales/zh-CN/model.js                                           |   75 +++---
 src/templates/sharecomponent/fieldscomponent/index.jsx               |    2 
 src/templates/treepageconfig/source.jsx                              |    2 
 src/templates/modalconfig/index.jsx                                  |    2 
 src/templates/sharecomponent/columncomponent/index.jsx               |   12 
 src/templates/sharecomponent/columncomponent/colspanform/index.jsx   |    2 
 src/templates/sharecomponent/tablecomponent/index.jsx                |    2 
 src/locales/en-US/model.js                                           |   81 +++---
 src/templates/menuconfig/editthdmenu/index.jsx                       |    2 
 src/templates/formtabconfig/source.jsx                               |    8 
 src/locales/en-US/main.js                                            |    2 
 src/mob/login/index.scss                                             |   19 +
 src/templates/sharecomponent/cardcomponent/index.jsx                 |    2 
 src/views/mobdesign/index.jsx                                        |   16 
 src/mob/mobshell/card.jsx                                            |    4 
 src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx |    4 
 src/templates/sharecomponent/tabscomponent/index.jsx                 |    8 
 src/mob/mobshell/index.scss                                          |    3 
 src/templates/headerconfig/index.jsx                                 |    2 
 src/locales/zh-CN/main.js                                            |    2 
 src/mob/controller/index.jsx                                         |   47 +++
 src/templates/zshare/formconfig.jsx                                  |  104 ++++----
 src/templates/comtableconfig/source.jsx                              |   58 ++--
 src/templates/sharecomponent/actioncomponent/actionform/index.jsx    |    4 
 src/mob/controller/index.scss                                        |   12 +
 src/templates/formtabconfig/actionform/index.jsx                     |    4 
 src/templates/subtableconfig/index.jsx                               |    3 
 src/tabviews/zshare/mutilform/index.jsx                              |    2 
 src/templates/menuconfig/editsecmenu/index.jsx                       |    2 
 src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx   |    2 
 src/templates/sharecomponent/actioncomponent/index.jsx               |   10 
 src/templates/modalconfig/source.jsx                                 |   20 
 src/components/sidemenu/index.jsx                                    |    2 
 src/mob/login/index.jsx                                              |   39 ++
 src/templates/sharecomponent/searchcomponent/searchform/index.jsx    |    4 
 src/views/login/index.jsx                                            |    2 
 45 files changed, 381 insertions(+), 282 deletions(-)

diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx
index 1fb87ed..84d11fe 100644
--- a/src/components/header/index.jsx
+++ b/src/components/header/index.jsx
@@ -46,7 +46,7 @@
   state = {
     menulist: null, // 涓�绾ц彍鍗�
     visible: false, // 淇敼瀵嗙爜妯℃�佹
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     confirmLoading: false,
     userName: sessionStorage.getItem('User_Name'),
     logourl: window.GLOB.mainlogo,
diff --git a/src/components/sidemenu/index.jsx b/src/components/sidemenu/index.jsx
index 28b9c07..554fef9 100644
--- a/src/components/sidemenu/index.jsx
+++ b/src/components/sidemenu/index.jsx
@@ -28,7 +28,7 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     mainMenuList: null,      // 涓�绾ц彍鍗曪紝缂栬緫璋冩暣涓婄骇鑿滃崟鏃惰幏鍙�
     subMenulist: [],         // 浜岀骇鑿滃崟
     editMenu: null,          // 缂栬緫涓夌骇鑿滃崟鏃惰缃�
diff --git a/src/locales/en-US/main.js b/src/locales/en-US/main.js
index 4bd4ba7..54463ba 100644
--- a/src/locales/en-US/main.js
+++ b/src/locales/en-US/main.js
@@ -34,7 +34,7 @@
   'main.excel.content.maxlimit': '鍐呭瓒呴暱',
   'main.excel.content.limitmin': '灏忎簬鏈�灏忓��',
   'main.excel.content.limitmax': '澶т簬鏈�澶у��',
-  'main.form.link.error': '鍏宠仈鑿滃崟璁剧疆閿欒锛�',
+  'main.form.link.error': '鑱斿姩鑿滃崟璁剧疆閿欒锛�',
   'main.form.picture.check': '鏌ョ湅鍥剧墖',
   'form.required.input': 'Please input ',
   'form.required.select': 'Please select '
diff --git a/src/locales/en-US/model.js b/src/locales/en-US/model.js
index 54852dc..66c8597 100644
--- a/src/locales/en-US/model.js
+++ b/src/locales/en-US/model.js
@@ -55,32 +55,31 @@
   'header.menu.func.create': 'Create stored procedures',
   'header.menu.interface.create': 'Create the interface',
   'header.menu.tab': 'Tab',
-  'header.menu.tab.subtable': 'Child table',
+  'model.menu.tab.subtable': 'Child table',
   'header.menu.datasource': 'The data source',
   'header.menu.maintable': 'The main table',
   'header.menu.query': 'The query',
   'header.menu.printTemplate': 'Printed template',
-  'header.form.tabType': 'The tag type',
+  'model.form.tabType': 'The tag type',
   'header.form.search.placeholder': 'Please add search criteria',
   'header.form.modal.placeholder': 'Please add the form',
   'header.form.action.placeholder': 'Please add buttons',
-  'header.form.tab.placeholder': 'Please add tabs',
   'header.form.column.placeholder': 'Please add columns',
   'header.form.column.source': 'Columns',
   'header.form.column.target': 'Have been added',
   'header.form.column.itemUnit': 'Item',
   'header.form.column.itemsUnit': 'Items',
-  'header.form.column.action': 'Action',
+  'model.form.column.action': 'Action',
   'header.form.name': 'Name',
   'header.form.title': 'Title',
   'header.form.field': 'Field',
   'header.form.field.placeholder': 'Please enter a field name',
-  'header.form.innerFunc': 'Internal function',
+  'header.form.innerFunc': 'Internal func',
   'header.form.outerFunc': 'External function',
   'header.form.callbackFunc': 'Callback function',
   'header.form.position': 'Position',
-  'header.form.execSuccess': 'Success',
-  'header.form.execError': 'Failure',
+  'model.form.afterSuccess': 'Success',
+  'model.form.afterError': 'Failure',
   'header.form.messageTip': 'Message',
   'header.form.errorTime': 'Residence time',
   'header.form.refresh': 'Refresh',
@@ -94,33 +93,33 @@
   'header.form.popClose': 'Label closing',
   'header.form.toolbar': 'The toolbar',
   'header.form.grid': 'Table',
-  'header.form.intertype': 'The interface type',
+  'header.form.intertype': 'Interface type',
   'header.form.interface': 'Address of the interface',
   'header.form.sysInterface': 'The system interface',
   'header.form.interface.inner': 'Internal',
   'header.form.interface.outer': 'External',
   'header.form.pageTemplate': 'The page template',
   'header.form.type': 'Type',
-  'header.form.text': 'Text',
+  'model.form.text': 'Text',
   'header.form.description': '鎻忚堪',
-  'header.form.textarea': '澶氳鏂囨湰',
+  'model.form.textarea': 'Multiline text',
   'header.form.fileupload': '鏂囦欢涓婁紶',
   'header.form.funcvar': '鍑芥暟鍙橀噺',
-  'header.form.linkForm': '鍏宠仈琛ㄥ崟',
-  'header.form.picture': '鍥剧墖',
-  'header.form.number': '鏁板瓧',
+  'model.form.picture': 'Picture',
+  'model.form.number': 'Number',
   'header.form.letter': '瀛楁瘝',
   'header.form.letter&number': '瀛楁瘝+鏁板瓧',
-  'header.form.colspan': '鍚堝苟鍒�',
-  'header.form.select': 'Select',
-  'header.form.multiselect': '澶氶��',
-  'header.form.link': '鍏宠仈鑿滃崟',
-  'header.form.dateday': 'Date(Day)',
-  'header.form.datetime': 'Date(Second)',
-  'header.form.dateweek': '鏃ユ湡锛堝懆锛�',
-  'header.form.datemonth': '鏃ユ湡锛堟湀锛�',
-  'header.form.dateyear': '鏃ユ湡锛堝勾锛�',
-  'header.form.daterange': '鏃ユ湡锛堝尯闂达級',
+  'model.form.colspan': 'The columns of the merger',
+  'model.form.select': 'Select',
+  'model.form.multiselect': 'Multi-select',
+  'model.form.href': 'Link',
+  'model.form.link': 'Linkage menu',
+  'model.form.dateday': 'Date(Day)',
+  'model.form.datetime': 'Date(Second)',
+  'model.form.dateweek': 'Date(Week)',
+  'model.form.datemonth': 'Date(Month)',
+  'model.form.daterange': 'Date(Range)',
+  'model.form.dategroup': 'Date(Group)',
   'header.form.initval': 'Initial Value',
   'header.form.decimal': '灏忔暟浣�',
   'header.form.format': '鏍煎紡鍖�',
@@ -135,24 +134,22 @@
   'header.form.requiredOnce': '澶氳鎷兼帴',
   'header.form.openType': '鎵撳紑鏂瑰紡',
   'header.form.pop': '寮圭獥',
-  'header.form.popform': '寮圭獥锛堣〃鍗曪級',
-  'header.form.popview': '寮圭獥锛堟爣绛撅級',
-  'header.form.tab': '鏍囩椤�',
+  'model.form.popform': 'Popup form',
+  'model.form.popview': 'Pop-up tag',
+  'model.form.tab': 'The tag page',
   'header.form.linkTab': '鍏宠仈鏍囩',
   'header.form.subTab': '涓嬬骇鏍囩',
   'header.form.supTab': '涓婄骇鏍囩',
   'header.form.equalTab': '鍚岀骇鏍囩',
   'header.form.currenttab': '褰撳墠鑿滃崟',
-  'header.form.excelIn': 'Excel瀵煎叆',
-  'header.form.excelOut': 'Excel瀵煎嚭',
-  'header.form.newpage': '鏂伴〉闈�',
-  'header.form.newpage.type': '椤甸潰绫诲瀷',
-  'header.form.newpage.inner': '鏂伴〉闈紙鍐呴儴锛�',
-  'header.form.newpage.outer': '鏂伴〉闈紙澶栭儴锛�',
-  'header.form.newpage.url': '椤甸潰鍦板潃',
+  'model.form.excelIn': 'Import excel',
+  'model.form.excelOut': 'Export excel',
+  'model.form.newpage': 'The new page',
+  'model.form.newpage.type': 'Page type',
+  'model.form.newpage.url': 'Page address',
   'header.form.blank': '褰撳墠椤佃烦杞�',
-  'header.form.prompt': '鎻愮ず妗�',
-  'header.form.exec': '鐩存帴鎵ц',
+  'model.form.prompt': 'Prompt',
+  'model.form.exec': 'Direct execution',
   'header.form.icon': '鍥炬爣',
   'header.form.class': '棰滆壊',
   'header.form.align': '瀵归綈鏂瑰紡',
@@ -168,7 +165,7 @@
   'header.form.resourceType': '閫夐」鏉ユ簮',
   'header.form.custom': '鑷畾涔�',
   'header.form.datasource': '鏁版嵁婧�',
-  'header.form.tablename': '琛ㄥ悕',
+  'model.form.tablename': 'Table name',
   'header.form.actionhelp.tablename': '浣跨敤绯荤粺鍑芥暟鏃讹紝璇峰~鍐欐暟鎹簮銆�',
   'header.form.actionhelp.sqlType': '浣跨敤绯荤粺鍑芥暟鏃讹紝璇烽�夋嫨绫诲瀷銆�',
   'header.form.action.type': '鎿嶄綔绫诲瀷',
@@ -198,7 +195,7 @@
   'header.form.vertical2': '绾靛悜(2鍒�)',
   'header.form.topPicBottomText': '涓婂浘涓嬫枃',
   'header.form.leftPicRightText': '宸﹀浘鍙虫枃',
-  'header.form.selectItem.error': '涓嬫媺閫夐」璁剧疆閿欒锛�',
+  'model.form.selectItem.error': '涓嬫媺閫夐」璁剧疆閿欒锛�',
   'header.form.request.method': '璇锋眰鏂瑰紡',
   'header.form.readonly': '鏄惁鍙',
   'header.form.field.required': '鏄惁蹇呭~',
@@ -224,17 +221,17 @@
   'header.form.pagination': '鍒嗛〉',
   'header.form.regular': '姝e垯鏍¢獙',
   'header.form.quickadd': '蹇嵎娣诲姞',
-  'header.form.funcbutton': '鍔熻兘鎸夐挳',
+  'model.form.funcbutton': 'Function button',
   'header.form.funcType': '鍔熻兘绫诲瀷',
   'header.form.func.changeuser': '鍒囨崲鐢ㄦ埛',
   'header.form.func.print': '鎵撳嵃',
-  'header.form.execMode': '鎵ц鏂瑰紡',
+  'model.form.execMode': 'Mode',
   'header.form.thawbutton': '瑙e喕鎸夐挳',
   'header.form.maxRows': '鏈�澶ц鏁�',
   'header.form.paste': '绮樿创',
   'header.form.ratio': '姣斾緥',
   'header.form.blacklist': '榛戝悕鍗�',
-  'header.form.linkmenu': '鍏宠仈鑿滃崟',
+  'model.form.linkmenu': 'Association',
   'header.form.clickscale': '鐐瑰嚮缂╂斁',
   'header.form.easyCode': 'EasyCode',
   'header.modal.form.edit': '琛ㄥ崟-缂栬緫',
@@ -243,13 +240,13 @@
   'header.modal.action.copy': '鎸夐挳-澶嶅埗',
   'header.modal.form.copy': '琛ㄥ崟-澶嶅埗',
   'header.modal.column.edit': '鏄剧ず鍒�-缂栬緫',
-  'header.modal.colspan.edit': '鍚堝苟鍒�-缂栬緫',
   'header.modal.gridbtn.edit': '鎿嶄綔鍒�-缂栬緫',
   'header.modal.tabs.edit': '鏍囩-缂栬緫',
   'model.field.exist': '瀛楁宸插瓨鍦�',
   'model.name.exist': '鍚嶇О宸插瓨鍦�',
   'form.required.input': 'Please enter the ',
-  'form.required.select': '璇烽�夋嫨',
+  'form.required.select': 'Please select a ',
+  'form.required.add': 'Please add ',
   'model.tooltip.table.guide': '姝ゅ鍙互娣诲姞椤甸潰閰嶇疆鐩稿叧鐨勫父鐢ㄨ〃锛屽彲閫氳繃宸ュ叿鏍忎腑鐨勬坊鍔犳寜閽紝鍙壒閲忔坊鍔犺〃鏍肩浉鍏冲瓧娈点��',
   'model.tooltip.search.guide': '鍦ㄥ乏渚у伐鍏锋爮銆婃悳绱€�嬩腑锛岄�夋嫨瀵瑰簲鎼滅储妗嗘嫋鑷虫澶勬坊鍔狅紱鎴栫偣鍑绘寜閽�婃坊鍔犳悳绱㈡潯浠躲�嬫壒閲忔坊鍔狅紝閫夋嫨鎵归噺娣诲姞鏃讹紝闇�鎻愬墠閫夋嫨浣跨敤琛ㄣ��',
   'model.tooltip.action.guide': '鍦ㄥ乏渚у伐鍏锋爮銆婃寜閽�嬩腑锛岄�夋嫨瀵瑰簲绫诲瀷鐨勬寜閽嫋鑷虫澶勬坊鍔狅紝濡傞�夋嫨鎸夐挳绫诲瀷涓鸿〃鍗曘�佹柊鏍囩椤电瓑鍚湁閰嶇疆椤甸潰鐨勬寜閽紝鍙湪宸︿晶宸ュ叿鏍�-鎸夐挳-鍙厤缃寜閽锛岀偣鍑绘寜閽畬鎴愮浉鍏抽厤缃�傛敞锛氬綋璁剧疆鎸夐挳鏄剧ず浣嶇疆涓鸿〃鏍兼椂锛屾樉绀哄垪浼氬鍔犳搷浣滃垪銆�',
diff --git a/src/locales/zh-CN/main.js b/src/locales/zh-CN/main.js
index 6ad372b..4b5c1f2 100644
--- a/src/locales/zh-CN/main.js
+++ b/src/locales/zh-CN/main.js
@@ -35,7 +35,7 @@
   'main.excel.content.maxlimit': '鍐呭瓒呴暱',
   'main.excel.content.limitmin': '灏忎簬鏈�灏忓��',
   'main.excel.content.limitmax': '澶т簬鏈�澶у��',
-  'main.form.link.error': '鍏宠仈鑿滃崟璁剧疆閿欒锛�',
+  'main.form.link.error': '鑱斿姩鑿滃崟璁剧疆閿欒锛�',
   'main.form.picture.check': '鏌ョ湅鍥剧墖',
   'form.required.input': '璇疯緭鍏�',
   'form.required.select': '璇烽�夋嫨'
diff --git a/src/locales/zh-CN/model.js b/src/locales/zh-CN/model.js
index 714b420..28b7cfa 100644
--- a/src/locales/zh-CN/model.js
+++ b/src/locales/zh-CN/model.js
@@ -55,22 +55,21 @@
   'header.menu.func.create': '鍒涘缓瀛樺偍杩囩▼',
   'header.menu.interface.create': '鍒涘缓鎺ュ彛',
   'header.menu.tab': '鏍囩椤�',
-  'header.menu.tab.subtable': '瀛愯〃',
+  'model.menu.tab.subtable': '瀛愯〃',
   'header.menu.datasource': '鏁版嵁鏉ユ簮',
   'header.menu.maintable': '涓昏〃',
   'header.menu.query': '鏌ヨ',
   'header.menu.printTemplate': '鎵撳嵃妯℃澘',
-  'header.form.tabType': '鏍囩绫诲瀷',
+  'model.form.tabType': '鏍囩绫诲瀷',
   'header.form.search.placeholder': '璇锋坊鍔犳悳绱㈡潯浠�',
   'header.form.modal.placeholder': '璇锋坊鍔犺〃鍗�',
   'header.form.action.placeholder': '璇锋坊鍔犳寜閽�',
-  'header.form.tab.placeholder': '璇锋坊鍔犳爣绛鹃〉',
   'header.form.column.placeholder': '璇锋坊鍔犳樉绀哄垪',
   'header.form.column.source': '鏄剧ず鍒�',
   'header.form.column.target': '宸叉坊鍔�',
   'header.form.column.itemUnit': '椤�',
   'header.form.column.itemsUnit': '椤�',
-  'header.form.column.action': '鎿嶄綔',
+  'model.form.column.action': '鎿嶄綔',
   'header.form.name': '鍚嶇О',
   'header.form.title': '鏍囬',
   'header.form.field': '瀛楁',
@@ -79,8 +78,8 @@
   'header.form.outerFunc': '澶栭儴鍑芥暟',
   'header.form.callbackFunc': '鍥炶皟鍑芥暟',
   'header.form.position': '鏄剧ず浣嶇疆',
-  'header.form.execSuccess': '鎵ц鎴愬姛',
-  'header.form.execError': '鎵ц澶辫触',
+  'model.form.afterSuccess': '鎴愬姛鍚�',
+  'model.form.afterError': '澶辫触鍚�',
   'header.form.messageTip': '淇℃伅鎻愮ず',
   'header.form.errorTime': '鍋滅暀鏃堕棿',
   'header.form.refresh': '鍒锋柊',
@@ -101,26 +100,26 @@
   'header.form.interface.outer': '澶栭儴',
   'header.form.pageTemplate': '椤甸潰妯℃澘',
   'header.form.type': '绫诲瀷',
-  'header.form.text': '鏂囨湰',
+  'model.form.text': '鏂囨湰',
   'header.form.description': '鎻忚堪',
-  'header.form.textarea': '澶氳鏂囨湰',
+  'model.form.textarea': '澶氳鏂囨湰',
   'header.form.fileupload': '鏂囦欢涓婁紶',
   'header.form.funcvar': '鍑芥暟鍙橀噺',
-  'header.form.linkForm': '鍏宠仈琛ㄥ崟',
-  'header.form.picture': '鍥剧墖',
-  'header.form.number': '鏁板瓧',
+  'model.form.picture': '鍥剧墖',
+  'model.form.number': '鏁板瓧',
   'header.form.letter': '瀛楁瘝',
   'header.form.letter&number': '瀛楁瘝+鏁板瓧',
-  'header.form.colspan': '鍚堝苟鍒�',
-  'header.form.select': '涓嬫媺閫夋嫨',
-  'header.form.multiselect': '涓嬫媺澶氶��',
-  'header.form.link': '鍏宠仈鑿滃崟',
-  'header.form.dateday': '鏃ユ湡锛堝ぉ锛�',
-  'header.form.datetime': '鏃ユ湡锛堢锛�',
-  'header.form.dateweek': '鏃ユ湡锛堝懆锛�',
-  'header.form.datemonth': '鏃ユ湡锛堟湀锛�',
-  'header.form.dateyear': '鏃ユ湡锛堝勾锛�',
-  'header.form.daterange': '鏃ユ湡锛堝尯闂达級',
+  'model.form.colspan': '鍚堝苟鍒�',
+  'model.form.select': '涓嬫媺閫夋嫨',
+  'model.form.multiselect': '涓嬫媺澶氶��',
+  'model.form.href': '閾炬帴',
+  'model.form.link': '鑱斿姩鑿滃崟',
+  'model.form.dateday': '鏃ユ湡锛堝ぉ锛�',
+  'model.form.datetime': '鏃ユ湡锛堢锛�',
+  'model.form.dateweek': '鏃ユ湡锛堝懆锛�',
+  'model.form.datemonth': '鏃ユ湡锛堟湀锛�',
+  'model.form.daterange': '鏃ユ湡锛堝尯闂达級',
+  'model.form.dategroup': '鏃ユ湡锛堢粍鍚堬級',
   'header.form.initval': '鍒濆鍊�',
   'header.form.decimal': '灏忔暟浣�',
   'header.form.format': '鏍煎紡鍖�',
@@ -135,24 +134,22 @@
   'header.form.requiredOnce': '澶氳鎷兼帴',
   'header.form.openType': '鎵撳紑鏂瑰紡',
   'header.form.pop': '寮圭獥',
-  'header.form.popform': '寮圭獥锛堣〃鍗曪級',
-  'header.form.popview': '寮圭獥锛堟爣绛撅級',
-  'header.form.tab': '鏍囩椤�',
+  'model.form.popform': '寮圭獥锛堣〃鍗曪級',
+  'model.form.popview': '寮圭獥锛堟爣绛撅級',
+  'model.form.tab': '鏍囩椤�',
   'header.form.linkTab': '鍏宠仈鏍囩',
   'header.form.subTab': '涓嬬骇鏍囩',
   'header.form.supTab': '涓婄骇鏍囩',
   'header.form.equalTab': '鍚岀骇鏍囩',
   'header.form.currenttab': '褰撳墠鑿滃崟',
-  'header.form.excelIn': '瀵煎叆Excel',
-  'header.form.excelOut': '瀵煎嚭Excel',
-  'header.form.newpage': '鏂伴〉闈�',
-  'header.form.newpage.type': '椤甸潰绫诲瀷',
-  'header.form.newpage.inner': '鏂伴〉闈紙鍐呴儴锛�',
-  'header.form.newpage.outer': '鏂伴〉闈紙澶栭儴锛�',
-  'header.form.newpage.url': '椤甸潰鍦板潃',
+  'model.form.excelIn': '瀵煎叆Excel',
+  'model.form.excelOut': '瀵煎嚭Excel',
+  'model.form.newpage': '鏂伴〉闈�',
+  'model.form.newpage.type': '椤甸潰绫诲瀷',
+  'model.form.newpage.url': '椤甸潰鍦板潃',
   'header.form.blank': '褰撳墠椤佃烦杞�',
-  'header.form.prompt': '鎻愮ず妗�',
-  'header.form.exec': '鐩存帴鎵ц',
+  'model.form.prompt': '鎻愮ず妗�',
+  'model.form.exec': '鐩存帴鎵ц',
   'header.form.icon': '鍥炬爣',
   'header.form.class': '棰滆壊',
   'header.form.align': '瀵归綈鏂瑰紡',
@@ -168,7 +165,7 @@
   'header.form.resourceType': '閫夐」鏉ユ簮',
   'header.form.custom': '鑷畾涔�',
   'header.form.datasource': '鏁版嵁婧�',
-  'header.form.tablename': '琛ㄥ悕',
+  'model.form.tablename': '琛ㄥ悕',
   'header.form.actionhelp.tablename': '浣跨敤绯荤粺鍑芥暟鏃讹紝璇峰~鍐欒〃鍚嶏紝浣跨敤鑷畾涔夊嚱鏁版椂锛屽彲蹇界暐銆�',
   'header.form.actionhelp.sqlType': '浣跨敤绯荤粺鍑芥暟鏃讹紝璇烽�夋嫨鎿嶄綔绫诲瀷锛屼娇鐢ㄨ嚜瀹氫箟鍑芥暟鏃讹紝鍙拷鐣ャ��',
   'header.form.action.type': '鎿嶄綔绫诲瀷',
@@ -198,7 +195,7 @@
   'header.form.vertical2': '绾靛悜(2鍒�)',
   'header.form.topPicBottomText': '涓婂浘涓嬫枃',
   'header.form.leftPicRightText': '宸﹀浘鍙虫枃',
-  'header.form.selectItem.error': '涓嬫媺閫夐」璁剧疆閿欒锛�',
+  'model.form.selectItem.error': '涓嬫媺閫夐」璁剧疆閿欒锛�',
   'header.form.request.method': '璇锋眰鏂瑰紡',
   'header.form.readonly': '鏄惁鍙',
   'header.form.field.required': '鏄惁蹇呭~',
@@ -224,17 +221,17 @@
   'header.form.pagination': '鍒嗛〉',
   'header.form.regular': '姝e垯鏍¢獙',
   'header.form.quickadd': '蹇嵎娣诲姞',
-  'header.form.funcbutton': '鍔熻兘鎸夐挳',
+  'model.form.funcbutton': '鍔熻兘鎸夐挳',
   'header.form.funcType': '鍔熻兘绫诲瀷',
   'header.form.func.changeuser': '鍒囨崲鐢ㄦ埛',
   'header.form.func.print': '鎵撳嵃',
-  'header.form.execMode': '鎵ц鏂瑰紡',
+  'model.form.execMode': '鎵ц鏂瑰紡',
   'header.form.thawbutton': '瑙e喕鎸夐挳',
   'header.form.maxRows': '鏈�澶ц鏁�',
   'header.form.paste': '绮樿创',
   'header.form.ratio': '姣斾緥',
   'header.form.blacklist': '榛戝悕鍗�',
-  'header.form.linkmenu': '鍏宠仈鑿滃崟',
+  'model.form.linkmenu': '鍏宠仈鑿滃崟',
   'header.form.clickscale': '鐐瑰嚮缂╂斁',
   'header.form.easyCode': '鍔╄鐮�',
   'header.modal.form.edit': '琛ㄥ崟-缂栬緫',
@@ -243,13 +240,13 @@
   'header.modal.action.copy': '鎸夐挳-澶嶅埗',
   'header.modal.form.copy': '琛ㄥ崟-澶嶅埗',
   'header.modal.column.edit': '鏄剧ず鍒�-缂栬緫',
-  'header.modal.colspan.edit': '鍚堝苟鍒�-缂栬緫',
   'header.modal.gridbtn.edit': '鎿嶄綔鍒�-缂栬緫',
   'header.modal.tabs.edit': '鏍囩-缂栬緫',
   'model.field.exist': '瀛楁宸插瓨鍦�',
   'model.name.exist': '鍚嶇О宸插瓨鍦�',
   'form.required.input': '璇疯緭鍏�',
   'form.required.select': '璇烽�夋嫨',
+  'form.required.add': '璇锋坊鍔�',
   'model.tooltip.table.guide': '姝ゅ鍙互娣诲姞椤甸潰閰嶇疆鐩稿叧鐨勫父鐢ㄨ〃锛屽彲閫氳繃宸ュ叿鏍忎腑鐨勬坊鍔犳寜閽紝鍙壒閲忔坊鍔犺〃鏍肩浉鍏冲瓧娈点��',
   'model.tooltip.search.guide': '鍦ㄥ乏渚у伐鍏锋爮銆婃悳绱€�嬩腑锛岄�夋嫨瀵瑰簲鎼滅储妗嗘嫋鑷虫澶勬坊鍔狅紱鎴栫偣鍑绘寜閽�婃坊鍔犳悳绱㈡潯浠躲�嬫壒閲忔坊鍔狅紝閫夋嫨鎵归噺娣诲姞鏃讹紝闇�鎻愬墠閫夋嫨浣跨敤琛ㄣ��',
   'model.tooltip.action.guide': '鍦ㄥ乏渚у伐鍏锋爮銆婃寜閽�嬩腑锛岄�夋嫨瀵瑰簲绫诲瀷鐨勬寜閽嫋鑷虫澶勬坊鍔狅紝濡傞�夋嫨鎸夐挳绫诲瀷涓鸿〃鍗曘�佹柊鏍囩椤电瓑鍚湁閰嶇疆椤甸潰鐨勬寜閽紝鍙湪宸︿晶宸ュ叿鏍�-鎸夐挳-鍙厤缃寜閽锛岀偣鍑绘寜閽畬鎴愮浉鍏抽厤缃�傛敞锛氬綋璁剧疆鎸夐挳鏄剧ず浣嶇疆涓鸿〃鏍兼椂锛屾樉绀哄垪浼氬鍔犳搷浣滃垪銆�',
diff --git a/src/mob/controller/index.jsx b/src/mob/controller/index.jsx
new file mode 100644
index 0000000..b2a85eb
--- /dev/null
+++ b/src/mob/controller/index.jsx
@@ -0,0 +1,47 @@
+import React, {Component} from 'react'
+// import PropTypes from 'prop-types'
+import { is, fromJS } from 'immutable'
+import { Collapse } from 'antd'
+
+import zhCN from '@/locales/zh-CN/mob.js'
+import enUS from '@/locales/en-US/mob.js'
+import './index.scss'
+
+const { Panel } = Collapse
+
+class MobController extends Component {
+  // static propTpyes = {
+  //   collapse: PropTypes.bool,
+  // }
+  state = {
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
+  }
+
+  shouldComponentUpdate (nextProps, nextState) {
+    return !is(fromJS(this.props), fromJS(nextProps)) || !is(fromJS(this.state), fromJS(nextState))
+  }
+
+  render () {
+
+    return (
+      <div className="mob-controller">
+        <Collapse expandIconPosition="right">
+          <Panel header="瀛椾綋" key="0">
+            瀛椾綋淇敼
+          </Panel>
+          <Panel header="鑳屾櫙" key="1">
+            鑳屾櫙
+          </Panel>
+          <Panel header="杈硅窛" key="2">
+            杈硅窛
+          </Panel>
+          <Panel header="鍏朵粬" key="3">
+            鍏朵粬
+          </Panel>
+        </Collapse>
+      </div>
+    )
+  }
+}
+
+export default MobController
\ No newline at end of file
diff --git a/src/mob/controller/index.scss b/src/mob/controller/index.scss
new file mode 100644
index 0000000..c0411bf
--- /dev/null
+++ b/src/mob/controller/index.scss
@@ -0,0 +1,12 @@
+.mob-controller {
+  width: 100%;
+  height: 100%;
+  overflow: hidden;
+  >.ant-collapse {
+    border-top: 0;
+
+    > .ant-collapse-item > .ant-collapse-header {
+      padding: 10px 40px 10px 16px;
+    }
+  }
+}
\ No newline at end of file
diff --git a/src/mob/login/index.jsx b/src/mob/login/index.jsx
index fb6441a..013dbf9 100644
--- a/src/mob/login/index.jsx
+++ b/src/mob/login/index.jsx
@@ -14,6 +14,7 @@
 class MobLogin extends Component {
   static propTpyes = {
     card: PropTypes.object,
+    editId: PropTypes.any,
     triggerEdit: PropTypes.func,
     onDoubleClick: PropTypes.func
   }
@@ -51,32 +52,60 @@
   }
 
   editLogo = (e) => {
+    const { card } = this.props
     e.stopPropagation()
+    let element = {
+      uuid: card.logo.uuid,
+      items: ['picture'],
+      item: fromJS(card.logo).toJS()
+    }
+    this.props.triggerEdit(element)
   }
 
   editTitle = (e) => {
+    const { card } = this.props
     e.stopPropagation()
+    let element = {
+      uuid: card.title.uuid,
+      items: ['font'],
+      item: fromJS(card.title).toJS()
+    }
+    this.props.triggerEdit(element)
   }
 
   editMsg = (e) => {
+    const { card } = this.props
     e.stopPropagation()
+    let element = {
+      uuid: card.copyright.uuid,
+      items: ['font'],
+      item: fromJS(card.copyright).toJS()
+    }
+    this.props.triggerEdit(element)
   }
 
   editBox = (e) => {
+    const { card } = this.props
     e.stopPropagation()
+    let element = {
+      uuid: card.box.uuid,
+      items: ['font', 'padding', 'background'],
+      item: fromJS(card.box).toJS()
+    }
+    this.props.triggerEdit(element)
   }
 
   render () {
-    const { card } = this.props
+    const { card, editId } = this.props
     const { getFieldProps } = this.props.form
     const { rember } = this.state
-
+    console.log(editId)
     return (
       <div className="mob-login" onClick={this.editBox} style={{paddingTop: `calc(17vh - 10px)`}}>
-        <div className="logo" onClick={this.editLogo}>
+        <div className={'logo ' + (editId === card.logo.uuid ? 'editing' : '')} onClick={this.editLogo}>
           <img src={card.logo.content} alt=""/>
         </div>
-        <div className="plat-name" onClick={this.editTitle}>鏄庣鍟嗕笟鏅鸿兘寮�鏀惧钩鍙�</div>
+        <div className={'plat-name ' + (editId === card.title.uuid ? 'editing' : '')} onClick={this.editTitle}>鏄庣鍟嗕笟鏅鸿兘寮�鏀惧钩鍙�</div>
         <InputItem
           placeholder="UserName"
           prefixListCls="mk-login-item am-list"
@@ -109,7 +138,7 @@
           <div className="clear-both"></div>
         </div>
         <Button type="primary" onDoubleClick={() => this.props.doubleClickCard(card.login)}>鐧诲綍</Button>
-        <div className="company-msg" onClick={this.editMsg}>
+        <div className={'company-msg ' + (editId === card.copyright.uuid ? 'editing' : '')} onClick={this.editMsg}>
           <p>Copyright漏2017  鎵�鏈夌浉鍏崇増鏉冨綊  鍖椾含鏄庣鏅崕淇℃伅鎶�鏈湁闄愬叕鍙�</p>
         </div>
       </div>
diff --git a/src/mob/login/index.scss b/src/mob/login/index.scss
index dd95dbb..920728a 100644
--- a/src/mob/login/index.scss
+++ b/src/mob/login/index.scss
@@ -15,9 +15,14 @@
       max-width: 100%;
     }
   }
-  .logo:hover {
+  .logo.editing {
+    border: 1px solid #1890ff;
+    box-shadow: 0px 0px 2px #1890ff;
+  }
+  .logo:not(.editing):hover {
     border-color: #535353;
   }
+
   .plat-name {
     max-width: 280px;
     min-height: 10px;
@@ -30,7 +35,11 @@
     font-weight: bold;
     border: 1px dotted transparent;
   }
-  .plat-name:hover {
+  .plat-name.editing {
+    border: 1px solid #1890ff;
+    box-shadow: 0px 0px 2px #1890ff;
+  }
+  .plat-name:not(.editing):hover {
     border-color: #535353;
   }
   .mk-login-item.am-list-item {
@@ -141,7 +150,11 @@
     text-align: center;
     border: 1px dotted transparent;
   }
-  .company-msg:hover {
+  .company-msg.editing {
+    border: 1px solid #1890ff;
+    box-shadow: 0px 0px 2px #1890ff;
+  }
+  .company-msg:not(.editing):hover {
     border-color: #535353;
   }
 }
diff --git a/src/mob/mobshell/card.jsx b/src/mob/mobshell/card.jsx
index 87065c1..6a2da4e 100644
--- a/src/mob/mobshell/card.jsx
+++ b/src/mob/mobshell/card.jsx
@@ -9,7 +9,7 @@
 // const Home = asyncComponent(() => import('@/mob/home'))
 const Login = asyncComponent(() => import('@/mob/login'))
 
-const Card = ({ id, card, moveCard, findCard, editCard, delCard, hasDrop, doubleClickCard }) => {
+const Card = ({ id, card, moveCard, findCard, editId, editCard, delCard, hasDrop, doubleClickCard }) => {
   const originalIndex = findCard(id).index
   const [{ isDragging }, drag] = useDrag({
     item: { type: 'mob', id, originalIndex },
@@ -45,7 +45,7 @@
   const getCardComponent = () => {
     if (card.type === 'login') {
       if (card.subtype === 'mob-login-1') {
-        return (<Login card={card} triggerEdit={editCard} onDoubleClick={doubleClickCard} />)
+        return (<Login card={card} triggerEdit={editCard} editId={editId} onDoubleClick={doubleClickCard} />)
       }
     }
   }
diff --git a/src/mob/mobshell/index.jsx b/src/mob/mobshell/index.jsx
index ba2213c..92108d3 100644
--- a/src/mob/mobshell/index.jsx
+++ b/src/mob/mobshell/index.jsx
@@ -2,13 +2,13 @@
 import { useDrop } from 'react-dnd'
 import { is, fromJS } from 'immutable'
 import update from 'immutability-helper'
-import { message } from 'antd'
+import { message, Empty } from 'antd'
 
 import Utils from '@/utils/utils.js'
 import Card from './card'
 import './index.scss'
 
-const Container = ({config, handleList, editCard, deleteCard, doubleClickCard }) => {
+const Container = ({config, editId, handleList, editCard, deleteCard, doubleClickCard }) => {
   let target = null
 
   const [cards, setCards] = useState(config.components)
@@ -29,21 +29,6 @@
       index: cards.indexOf(card),
     }
   }
-
-  // const doubleClickBtn = id => {
-  //   const { card } = findCard(id)
-  //   doubleClickCard(card)
-  // }
-
-  // const editCard = id => {
-  //   const { card } = findCard(id)
-  //   handleMenu(card)
-  // }
-
-  // const delCard = id => {
-  //   const { card } = findCard(id)
-  //   deleteMenu(card)
-  // }
 
   const hasDrop = (item) => {
     target = item
@@ -93,19 +78,18 @@
           id={card.uuid}
           key={card.uuid}
           card={card}
+          editId={editId}
           moveCard={moveCard}
           editCard={editCard}
           delCard={deleteCard}
           findCard={findCard}
           hasDrop={hasDrop}
-          // doubleClickCard={doubleClickBtn}
+          doubleClickCard={doubleClickCard}
         />
       ))}
-      {/* {cards.length === 0 ?
-        <div className="common-drawarea-placeholder">
-          {placeholder}
-        </div> : null
-      } */}
+      {cards.length === 0 ?
+        <Empty description="璇锋坊鍔犵粍浠�" /> : null
+      }
     </div>
   )
 }
diff --git a/src/mob/mobshell/index.scss b/src/mob/mobshell/index.scss
index 1be9a6c..09697c5 100644
--- a/src/mob/mobshell/index.scss
+++ b/src/mob/mobshell/index.scss
@@ -18,4 +18,7 @@
       display: inline-block;
     }
   }
+  >.ant-empty {
+    padding-top: 40px;
+  }
 }
\ No newline at end of file
diff --git a/src/tabviews/zshare/chartcomponent/index.jsx b/src/tabviews/zshare/chartcomponent/index.jsx
index 2b433c0..9bea2d7 100644
--- a/src/tabviews/zshare/chartcomponent/index.jsx
+++ b/src/tabviews/zshare/chartcomponent/index.jsx
@@ -19,7 +19,7 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     empty: true,
     chartId: Utils.getuuid(),
     chartData: [],
diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx
index 279f048..6bf0af9 100644
--- a/src/tabviews/zshare/mutilform/index.jsx
+++ b/src/tabviews/zshare/mutilform/index.jsx
@@ -125,7 +125,7 @@
           })
         }
 
-        // 淇濆瓨鍒濆鍒楄〃锛岀敤浜庡叧鑱旇彍鍗曟帶鍒�
+        // 淇濆瓨鍒濆鍒楄〃锛岀敤浜庤仈鍔ㄨ彍鍗曟帶鍒�
         item.oriOptions = fromJS(item.options).toJS()
 
         // 涓嬬骇琛ㄥ崟鎺у埗-瀛楁鍐欏叆
diff --git a/src/templates/comtableconfig/source.jsx b/src/templates/comtableconfig/source.jsx
index daf9aff..738c88c 100644
--- a/src/templates/comtableconfig/source.jsx
+++ b/src/templates/comtableconfig/source.jsx
@@ -2,7 +2,7 @@
 import zhCN from '@/locales/zh-CN/model.js'
 import enUS from '@/locales/en-US/model.js'
 
-const CommonDict = (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS
+const CommonDict = localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
 
 class CommonTableBaseData {
   baseConfig = {
@@ -164,7 +164,7 @@
       Align: 'center',
       IsSort: 'false',
       uuid: Utils.getuuid(),
-      label: CommonDict['header.form.column.action'],
+      label: CommonDict['model.form.column.action'],
       type: 'action',
       style: 'button',
       show: 'horizontal',
@@ -206,55 +206,55 @@
   searchItems = [
     {
       type: 'search',
-      label: CommonDict['header.form.text'],
+      label: CommonDict['model.form.text'],
       subType: 'text',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.select'],
+      label: CommonDict['model.form.select'],
       subType: 'select',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.multiselect'],
+      label: CommonDict['model.form.multiselect'],
       subType: 'multiselect',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.link'],
+      label: CommonDict['model.form.link'],
       subType: 'link',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.dateday'],
+      label: CommonDict['model.form.dateday'],
       subType: 'date',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.dateweek'],
+      label: CommonDict['model.form.dateweek'],
       subType: 'dateweek',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.datemonth'],
+      label: CommonDict['model.form.datemonth'],
       subType: 'datemonth',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.daterange'],
+      label: CommonDict['model.form.daterange'],
       subType: 'daterange',
       url: ''
     },
     {
       type: 'search',
-      label: '鏃ユ湡锛堢粍鍚堬級',
+      label: CommonDict['model.form.dategroup'],
       subType: 'group',
       url: ''
     }
@@ -263,55 +263,55 @@
   actionItems = [
     {
       type: 'action',
-      label: CommonDict['header.form.popform'],
+      label: CommonDict['model.form.popform'],
       subType: 'pop',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.prompt'],
+      label: CommonDict['model.form.prompt'],
       subType: 'prompt',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.exec'],
+      label: CommonDict['model.form.exec'],
       subType: 'exec',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.excelIn'],
+      label: CommonDict['model.form.excelIn'],
       subType: 'excelIn',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.excelOut'],
+      label: CommonDict['model.form.excelOut'],
       subType: 'excelOut',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.popview'],
+      label: CommonDict['model.form.popview'],
       subType: 'popview',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.tab'],
+      label: CommonDict['model.form.tab'],
       subType: 'tab',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.newpage'],
+      label: CommonDict['model.form.newpage'],
       subType: 'innerpage',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.funcbutton'],
+      label: CommonDict['model.form.funcbutton'],
       subType: 'funcbutton',
       url: ''
     }
@@ -320,31 +320,37 @@
   columnItems = [
     {
       type: 'columns',
-      label: CommonDict['header.form.text'],
+      label: CommonDict['model.form.text'],
       subType: 'text',
       url: ''
     },
     {
       type: 'columns',
-      label: CommonDict['header.form.number'],
+      label: CommonDict['model.form.number'],
       subType: 'number',
       url: ''
     },
     {
       type: 'columns',
-      label: CommonDict['header.form.picture'],
+      label: CommonDict['model.form.picture'],
       subType: 'picture',
       url: ''
     },
     {
       type: 'columns',
-      label: CommonDict['header.form.textarea'],
+      label: CommonDict['model.form.textarea'],
       subType: 'textarea',
       url: ''
     },
     {
       type: 'columns',
-      label: CommonDict['header.form.colspan'],
+      label: CommonDict['model.form.href'],
+      subType: 'link',
+      url: ''
+    },
+    {
+      type: 'columns',
+      label: CommonDict['model.form.colspan'],
       subType: 'colspan',
       url: ''
     }
@@ -353,7 +359,7 @@
   tabItems = [
     {
       type: 'tabs',
-      label: CommonDict['header.menu.tab.subtable'],
+      label: CommonDict['model.menu.tab.subtable'],
       subType: 'SubTable',
     }
   ]
diff --git a/src/templates/formtabconfig/actionform/index.jsx b/src/templates/formtabconfig/actionform/index.jsx
index ffa92c8..c766a7f 100644
--- a/src/templates/formtabconfig/actionform/index.jsx
+++ b/src/templates/formtabconfig/actionform/index.jsx
@@ -98,10 +98,10 @@
           item.options = [
             {
               value: 'prompt',
-              text: this.props.dict['header.form.prompt']
+              text: this.props.dict['model.form.prompt']
             }, {
               value: 'exec',
-              text: this.props.dict['header.form.exec']
+              text: this.props.dict['model.form.exec']
             }
           ]
           if (card.btnType === 'cancel') {
diff --git a/src/templates/formtabconfig/index.jsx b/src/templates/formtabconfig/index.jsx
index 28a9248..0ad3b0a 100644
--- a/src/templates/formtabconfig/index.jsx
+++ b/src/templates/formtabconfig/index.jsx
@@ -34,7 +34,7 @@
 const { Panel } = Collapse
 const { Option } = Select
 const { confirm } = Modal
-const CommonDict = (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS
+const CommonDict = localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
 
 class ComTableConfig extends Component {
   static propTpyes = {
diff --git a/src/templates/formtabconfig/source.jsx b/src/templates/formtabconfig/source.jsx
index cb82f99..bd2b9ff 100644
--- a/src/templates/formtabconfig/source.jsx
+++ b/src/templates/formtabconfig/source.jsx
@@ -2,7 +2,7 @@
 import zhCN from '@/locales/zh-CN/model.js'
 import enUS from '@/locales/en-US/model.js'
 
-const CommonDict = (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS
+const CommonDict = localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
 
 class CommonTableBaseData {
   baseConfig = {
@@ -169,13 +169,13 @@
   actionItems = [
     {
       type: 'action',
-      label: CommonDict['header.form.prompt'],
+      label: CommonDict['model.form.prompt'],
       subType: 'prompt',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.exec'],
+      label: CommonDict['model.form.exec'],
       subType: 'exec',
       url: ''
     }
@@ -184,7 +184,7 @@
   tabItems = [
     {
       type: 'tabs',
-      label: CommonDict['header.menu.tab.subtable'],
+      label: CommonDict['model.menu.tab.subtable'],
       subType: 'SubTable',
     }
   ]
diff --git a/src/templates/headerconfig/index.jsx b/src/templates/headerconfig/index.jsx
index 670a103..5caf9f4 100644
--- a/src/templates/headerconfig/index.jsx
+++ b/src/templates/headerconfig/index.jsx
@@ -38,7 +38,7 @@
     editMvisible: false, // 缂栬緫鑿滃崟妯℃�佹
     thawMvisible: false, // 瑙i櫎鍐荤粨妯℃�佹
     confirmLoading: false, // 鎻愪氦涓�傘�傘��
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
   }
 
   handlePreviewList = (List) => {
diff --git a/src/templates/menuconfig/editsecmenu/index.jsx b/src/templates/menuconfig/editsecmenu/index.jsx
index ff82acb..3b40425 100644
--- a/src/templates/menuconfig/editsecmenu/index.jsx
+++ b/src/templates/menuconfig/editsecmenu/index.jsx
@@ -32,7 +32,7 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     menulist: null,       // 鑿滃崟鍒楄〃
     type: '',             // 缂栬緫绫诲瀷锛宎dd or edit
     title: '',            // 妯℃�佹鏍囬
diff --git a/src/templates/menuconfig/editthdmenu/index.jsx b/src/templates/menuconfig/editthdmenu/index.jsx
index bed19c9..8d088a2 100644
--- a/src/templates/menuconfig/editthdmenu/index.jsx
+++ b/src/templates/menuconfig/editthdmenu/index.jsx
@@ -52,7 +52,7 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     thawmenulist: null,     // 宸插喕缁撶殑浜岀骇鑿滃崟
     type: '',               // 鎿嶄綔绫诲瀷锛屾柊寤烘垨缂栬緫鑿滃崟
     thawMvisible: false,    // 瑙i櫎鍐荤粨妯℃�佹
diff --git a/src/templates/modalconfig/index.jsx b/src/templates/modalconfig/index.jsx
index ac0cfa5..445e472 100644
--- a/src/templates/modalconfig/index.jsx
+++ b/src/templates/modalconfig/index.jsx
@@ -28,7 +28,7 @@
 const { Panel } = Collapse
 const { Option } = Select
 const { confirm } = Modal
-const CommonDict = (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS
+const CommonDict = localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
 
 class ComModalConfig extends Component {
   static propTpyes = {
diff --git a/src/templates/modalconfig/source.jsx b/src/templates/modalconfig/source.jsx
index 8c4276e..4a52cbf 100644
--- a/src/templates/modalconfig/source.jsx
+++ b/src/templates/modalconfig/source.jsx
@@ -2,7 +2,7 @@
 import zhCN from '@/locales/zh-CN/model.js'
 import enUS from '@/locales/en-US/model.js'
 
-const CommonDict = (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS
+const CommonDict = localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
 
 export const BaseConfig = {
   type: 'Modal',
@@ -74,31 +74,31 @@
 export const SearchItems = [
   {
     type: 'form',
-    label: CommonDict['header.form.text'],
+    label: CommonDict['model.form.text'],
     subType: 'text',
     url: ''
   },
   {
     type: 'form',
-    label: CommonDict['header.form.number'],
+    label: CommonDict['model.form.number'],
     subType: 'number',
     url: ''
   },
   {
     type: 'form',
-    label: CommonDict['header.form.select'],
+    label: CommonDict['model.form.select'],
     subType: 'select',
     url: ''
   },
   {
     type: 'form',
-    label: CommonDict['header.form.multiselect'],
+    label: CommonDict['model.form.multiselect'],
     subType: 'multiselect',
     url: ''
   },
   {
     type: 'form',
-    label: CommonDict['header.form.link'],
+    label: CommonDict['model.form.link'],
     subType: 'link',
     url: ''
   },
@@ -110,25 +110,25 @@
   },
   {
     type: 'form',
-    label: CommonDict['header.form.dateday'],
+    label: CommonDict['model.form.dateday'],
     subType: 'date',
     url: ''
   },
   {
     type: 'form',
-    label: CommonDict['header.form.datemonth'],
+    label: CommonDict['model.form.datemonth'],
     subType: 'datemonth',
     url: ''
   },
   {
     type: 'form',
-    label: CommonDict['header.form.datetime'],
+    label: CommonDict['model.form.datetime'],
     subType: 'datetime',
     url: ''
   },
   {
     type: 'form',
-    label: CommonDict['header.form.textarea'],
+    label: CommonDict['model.form.textarea'],
     subType: 'textarea',
     url: ''
   },
diff --git a/src/templates/sharecomponent/actioncomponent/actionform/index.jsx b/src/templates/sharecomponent/actioncomponent/actionform/index.jsx
index 4677c2e..982b65c 100644
--- a/src/templates/sharecomponent/actioncomponent/actionform/index.jsx
+++ b/src/templates/sharecomponent/actioncomponent/actionform/index.jsx
@@ -269,10 +269,10 @@
         formlist: _formlist
       }, () => {
         if (value === 'excelIn') {
-          _fieldval.label = this.props.dict['header.form.excelIn']
+          _fieldval.label = this.props.dict['model.form.excelIn']
           _fieldval.class = 'border-dgreen'
         } else if (value === 'excelOut') {
-          _fieldval.label = this.props.dict['header.form.excelOut']
+          _fieldval.label = this.props.dict['model.form.excelOut']
           _fieldval.class = 'dgreen'
         }
 
diff --git a/src/templates/sharecomponent/actioncomponent/index.jsx b/src/templates/sharecomponent/actioncomponent/index.jsx
index a0752a9..6abe036 100644
--- a/src/templates/sharecomponent/actioncomponent/index.jsx
+++ b/src/templates/sharecomponent/actioncomponent/index.jsx
@@ -37,7 +37,7 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     card: null,          // 缂栬緫涓厓绱�
     formlist: null,      // 琛ㄥ崟淇℃伅
     actionlist: null,    // 鎸夐挳缁�
@@ -341,7 +341,7 @@
             Align: 'center',
             IsSort: 'false',
             uuid: Utils.getuuid(),
-            label: this.state.dict['header.form.column.action'],
+            label: this.state.dict['model.form.column.action'],
             type: 'action',
             style: 'button',
             show: 'horizontal',
@@ -564,7 +564,7 @@
             Align: 'center',
             IsSort: 'false',
             uuid: Utils.getuuid(),
-            label: this.state.dict['header.form.column.action'],
+            label: this.state.dict['model.form.column.action'],
             type: 'action',
             style: 'button',
             show: 'horizontal',
@@ -780,7 +780,7 @@
               Align: 'center',
               IsSort: 'false',
               uuid: Utils.getuuid(),
-              label: this.state.dict['header.form.column.action'],
+              label: this.state.dict['model.form.column.action'],
               type: 'action',
               style: 'button',
               show: 'horizontal',
@@ -885,7 +885,7 @@
         <Modal
           title={dict['model.action'] + '-' + (card && card.copyType === 'action' ? dict['model.copy'] : dict['model.edit'])}
           visible={visible}
-          width={750}
+          width={800}
           maskClosable={false}
           onCancel={this.editModalCancel}
           footer={[
diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx
index cfde47d..6ff9b95 100644
--- a/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx
+++ b/src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx
@@ -652,13 +652,13 @@
             <Form {...formItemLayout}>
               <Row gutter={24}>
                 <Col span={8}>
-                  <Form.Item label={'Excel琛ㄥ悕'}>
+                  <Form.Item label={this.props.dict['model.form.tablename']}>
                     {getFieldDecorator('sheet', {
                       initialValue: verify.sheet || '',
                       rules: [
                         {
                           required: true,
-                          message: this.props.dict['form.required.input'] + this.props.dict['header.form.tablename'] + '!'
+                          message: this.props.dict['form.required.input'] + this.props.dict['model.form.tablename'] + '!'
                         }
                       ]
                     })(<Input placeholder="" autoComplete="off" />)}
diff --git a/src/templates/sharecomponent/cardcomponent/index.jsx b/src/templates/sharecomponent/cardcomponent/index.jsx
index d407250..d67f4da 100644
--- a/src/templates/sharecomponent/cardcomponent/index.jsx
+++ b/src/templates/sharecomponent/cardcomponent/index.jsx
@@ -23,7 +23,7 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     modaltype: '',
     formlist: null,
     cardwidth: 0,
diff --git a/src/templates/sharecomponent/chartcomponent/index.jsx b/src/templates/sharecomponent/chartcomponent/index.jsx
index df17181..b4eed38 100644
--- a/src/templates/sharecomponent/chartcomponent/index.jsx
+++ b/src/templates/sharecomponent/chartcomponent/index.jsx
@@ -17,7 +17,7 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     visible: true
   }
 
diff --git a/src/templates/sharecomponent/columncomponent/colspanform/index.jsx b/src/templates/sharecomponent/columncomponent/colspanform/index.jsx
index 670f462..7f50da6 100644
--- a/src/templates/sharecomponent/columncomponent/colspanform/index.jsx
+++ b/src/templates/sharecomponent/columncomponent/colspanform/index.jsx
@@ -96,7 +96,7 @@
           <Col span={12}>
             <Form.Item label={this.props.dict['header.form.type']}>
               {getFieldDecorator('type', {
-                initialValue: this.props.dict['header.form.colspan'],
+                initialValue: this.props.dict['model.form.colspan'],
                 rules: [
                   {
                     required: true,
diff --git a/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx b/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx
index 09eae88..b83a034 100644
--- a/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx
+++ b/src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx
@@ -56,7 +56,7 @@
           text: this.props.dict['header.form.button']
         }, {
           MenuID: 'text',
-          text: this.props.dict['header.form.text']
+          text: this.props.dict['model.form.text']
         }]
       },
       {
diff --git a/src/templates/sharecomponent/columncomponent/index.jsx b/src/templates/sharecomponent/columncomponent/index.jsx
index 6f62343..6b80c0a 100644
--- a/src/templates/sharecomponent/columncomponent/index.jsx
+++ b/src/templates/sharecomponent/columncomponent/index.jsx
@@ -28,9 +28,9 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     columnlist: null,    // 鏄剧ず鍒�
-    loading: false,      // 鏌ヨ鏄剧ず鍒楀叧鑱旇彍鍗�
+    loading: false,      // 鏌ヨ鏄剧ず鍒楄仈鍔ㄨ彍鍗�
     showField: false,    // 鏄剧ず鍒楀瓧娈�
     modaltype: '',       // 妯℃�佹鎺у埗
     card: null           // 缂栬緫涓厓绱�
@@ -471,7 +471,7 @@
         <Modal
           title={dict['header.modal.column.edit']}
           visible={modaltype === 'columns'}
-          width={750}
+          width={800}
           maskClosable={false}
           onOk={this.handleSubmit}
           onCancel={this.editModalCancel}
@@ -488,9 +488,9 @@
         </Modal>
         {/* 鍚堝苟鍒楃紪杈� */}
         <Modal
-          title={dict['header.modal.colspan.edit']}
+          title={dict['model.modal.colspan'] + '-' + dict['model.edit']}
           visible={modaltype === 'colspan'}
-          width={750}
+          width={800}
           maskClosable={false}
           onOk={this.handleSubmit}
           onCancel={this.editModalCancel}
@@ -508,7 +508,7 @@
         <Modal
           title={dict['header.modal.gridbtn.edit']}
           visible={modaltype === 'gridbtn'}
-          width={700}
+          width={800}
           maskClosable={false}
           onOk={this.handleSubmit}
           onCancel={this.editModalCancel}
diff --git a/src/templates/sharecomponent/fieldscomponent/index.jsx b/src/templates/sharecomponent/fieldscomponent/index.jsx
index 31deef6..4ee3e20 100644
--- a/src/templates/sharecomponent/fieldscomponent/index.jsx
+++ b/src/templates/sharecomponent/fieldscomponent/index.jsx
@@ -19,7 +19,7 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     fields: [],          // 瀛楁闆�
     tableVisible: false,    // 妯℃�佹鎺у埗
   }
diff --git a/src/templates/sharecomponent/searchcomponent/index.jsx b/src/templates/sharecomponent/searchcomponent/index.jsx
index 4be47a0..b3c1ce7 100644
--- a/src/templates/sharecomponent/searchcomponent/index.jsx
+++ b/src/templates/sharecomponent/searchcomponent/index.jsx
@@ -27,7 +27,7 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     searchlist: null,    // 鎼滅储鏉′欢闆�
     sqlVerifing: false,  // sql楠岃瘉涓�
     visible: false,      // 妯℃�佹鎺у埗
diff --git a/src/templates/sharecomponent/searchcomponent/searchform/index.jsx b/src/templates/sharecomponent/searchcomponent/searchform/index.jsx
index cc8999e..1747b44 100644
--- a/src/templates/sharecomponent/searchcomponent/searchform/index.jsx
+++ b/src/templates/sharecomponent/searchcomponent/searchform/index.jsx
@@ -551,7 +551,7 @@
         if (!err) {
           let isvalid = true
           values.uuid = this.props.card.uuid
-          // 涓嬫媺鑿滃崟鎴栧叧鑱旇彍鍗�
+          // 涓嬫媺鑿滃崟鎴栬仈鍔ㄨ彍鍗�
           if ((values.type === 'multiselect' || values.type === 'select' || values.type === 'link') && values.resourceType === '0') {
             values.options = this.refs.editTable.state.dataSource
             values.dataSource = ''
@@ -590,7 +590,7 @@
           } else {
             notification.warning({
               top: 92,
-              message: this.props.dict['header.form.selectItem.error'],
+              message: this.props.dict['model.form.selectItem.error'],
               duration: 5
             })
           }
diff --git a/src/templates/sharecomponent/settingcomponent/index.jsx b/src/templates/sharecomponent/settingcomponent/index.jsx
index cd90ce6..8da5a40 100644
--- a/src/templates/sharecomponent/settingcomponent/index.jsx
+++ b/src/templates/sharecomponent/settingcomponent/index.jsx
@@ -27,7 +27,7 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     menu: null,          // 鑿滃崟淇℃伅
     formlist: null,      // 琛ㄥ崟淇℃伅
     visible: false,      // 妯℃�佹鎺у埗
diff --git a/src/templates/sharecomponent/tablecomponent/index.jsx b/src/templates/sharecomponent/tablecomponent/index.jsx
index 300fbf7..b91c630 100644
--- a/src/templates/sharecomponent/tablecomponent/index.jsx
+++ b/src/templates/sharecomponent/tablecomponent/index.jsx
@@ -22,7 +22,7 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     tables: [],          // 绯荤粺琛�
     tableFields: [],    // 宸查�夎〃瀛楁闆�
     selectedTables: [],  // 宸查�夎〃
diff --git a/src/templates/sharecomponent/tabscomponent/index.jsx b/src/templates/sharecomponent/tabscomponent/index.jsx
index 628dcba..feb6bec 100644
--- a/src/templates/sharecomponent/tabscomponent/index.jsx
+++ b/src/templates/sharecomponent/tabscomponent/index.jsx
@@ -23,7 +23,7 @@
   }
 
   state = {
-    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     tabgroups: [],     // 鏍囩缁�
     card: [],          // 缂栬緫鏍囩
     group: [],         // 缂栬緫缁�
@@ -412,13 +412,13 @@
                 handleMenu={(card) => this.handleTab(card, group)}
                 deleteMenu={(card) => this.deleteElement(card, group)}
                 doubleClickCard={this.props.setSubConfig}
-                placeholder={this.state.dict['header.form.tab.placeholder']}
+                placeholder={dict['form.required.add'] + dict['model.form.tab']}
               />
             </div>)
         })}
         {/* 鏍囩缂栬緫 */}
         <Modal
-          title={this.state.dict['header.modal.tabs.edit']}
+          title={dict['header.modal.tabs.edit']}
           visible={visible}
           width={750}
           maskClosable={false}
@@ -427,7 +427,7 @@
           destroyOnClose
         >
           <TabForm
-            dict={this.state.dict}
+            dict={dict}
             card={this.state.card}
             tabs={this.props.tabs}
             levels={this.state.levels}
diff --git a/src/templates/subtableconfig/index.jsx b/src/templates/subtableconfig/index.jsx
index e6dfb0d..1aeee63 100644
--- a/src/templates/subtableconfig/index.jsx
+++ b/src/templates/subtableconfig/index.jsx
@@ -26,7 +26,6 @@
 
 const { Panel } = Collapse
 const { confirm } = Modal
-const CommonDict = (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS
 
 const SettingComponent = asyncComponent(() => import('@/templates/sharecomponent/settingcomponent'))
 const TableComponent = asyncComponent(() => import('@/templates/sharecomponent/tablecomponent'))
@@ -49,7 +48,7 @@
   }
 
   state = {
-    dict: CommonDict,        // 瀛楀吀
+    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,        // 瀛楀吀
     config: null,            // 椤甸潰閰嶇疆
     visible: false,          // 鎼滅储鏉′欢銆佹寜閽�佹樉绀哄垪锛屾ā鎬佹鏄剧ず鎺у埗
     tableFields: [],         // 宸查�夎〃瀛楁闆�
diff --git a/src/templates/subtableconfig/source.jsx b/src/templates/subtableconfig/source.jsx
index 76866b1..d625409 100644
--- a/src/templates/subtableconfig/source.jsx
+++ b/src/templates/subtableconfig/source.jsx
@@ -2,7 +2,7 @@
 import zhCN from '@/locales/zh-CN/model.js'
 import enUS from '@/locales/en-US/model.js'
 
-const CommonDict = (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS
+const CommonDict = localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
 
 class SubTableBaseData {
   baseConfig = {
@@ -164,7 +164,7 @@
       Align: 'center',
       IsSort: 'false',
       uuid: Utils.getuuid(),
-      label: CommonDict['header.form.column.action'],
+      label: CommonDict['model.form.column.action'],
       type: 'action',
       style: 'button',
       show: 'horizontal',
@@ -185,55 +185,55 @@
   searchItems = [
     {
       type: 'search',
-      label: CommonDict['header.form.text'],
+      label: CommonDict['model.form.text'],
       subType: 'text',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.select'],
+      label: CommonDict['model.form.select'],
       subType: 'select',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.multiselect'],
+      label: CommonDict['model.form.multiselect'],
       subType: 'multiselect',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.link'],
+      label: CommonDict['model.form.link'],
       subType: 'link',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.dateday'],
+      label: CommonDict['model.form.dateday'],
       subType: 'date',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.dateweek'],
+      label: CommonDict['model.form.dateweek'],
       subType: 'dateweek',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.datemonth'],
+      label: CommonDict['model.form.datemonth'],
       subType: 'datemonth',
       url: ''
     },
     {
       type: 'search',
-      label: CommonDict['header.form.daterange'],
+      label: CommonDict['model.form.daterange'],
       subType: 'daterange',
       url: ''
     },
     {
       type: 'search',
-      label: '鏃ユ湡锛堢粍鍚堬級',
+      label: CommonDict['model.form.dategroup'],
       subType: 'group',
       url: ''
     }
@@ -242,43 +242,43 @@
   actionItems = [
     {
       type: 'action',
-      label: CommonDict['header.form.popform'],
+      label: CommonDict['model.form.popform'],
       subType: 'pop',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.popview'],
+      label: CommonDict['model.form.popview'],
       subType: 'popview',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.prompt'],
+      label: CommonDict['model.form.prompt'],
       subType: 'prompt',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.exec'],
+      label: CommonDict['model.form.exec'],
       subType: 'exec',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.excelIn'],
+      label: CommonDict['model.form.excelIn'],
       subType: 'excelIn',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.excelOut'],
+      label: CommonDict['model.form.excelOut'],
       subType: 'excelOut',
       url: ''
     },
     {
       type: 'action',
-      label: CommonDict['header.form.funcbutton'],
+      label: CommonDict['model.form.funcbutton'],
       subType: 'funcbutton',
       url: ''
     }
@@ -287,31 +287,37 @@
   columnItems = [
     {
       type: 'columns',
-      label: CommonDict['header.form.text'],
+      label: CommonDict['model.form.text'],
       subType: 'text',
       url: ''
     },
     {
       type: 'columns',
-      label: CommonDict['header.form.picture'],
+      label: CommonDict['model.form.picture'],
       subType: 'picture',
       url: ''
     },
     {
       type: 'columns',
-      label: CommonDict['header.form.number'],
+      label: CommonDict['model.form.number'],
       subType: 'number',
       url: ''
     },
     {
       type: 'columns',
-      label: CommonDict['header.form.textarea'],
+      label: CommonDict['model.form.textarea'],
       subType: 'textarea',
       url: ''
     },
     {
       type: 'columns',
-      label: CommonDict['header.form.colspan'],
+      label: CommonDict['model.form.href'],
+      subType: 'link',
+      url: ''
+    },
+    {
+      type: 'columns',
+      label: CommonDict['model.form.colspan'],
       subType: 'colspan',
       url: ''
     }
diff --git a/src/templates/treepageconfig/source.jsx b/src/templates/treepageconfig/source.jsx
index 1b3afed..b51a979 100644
--- a/src/templates/treepageconfig/source.jsx
+++ b/src/templates/treepageconfig/source.jsx
@@ -48,7 +48,7 @@
   tabItems = [
     {
       type: 'tabs',
-      label: CommonDict['header.menu.tab.subtable'],
+      label: CommonDict['model.menu.tab.subtable'],
       subType: 'SubTable',
     }
   ]
diff --git a/src/templates/zshare/formconfig.jsx b/src/templates/zshare/formconfig.jsx
index 6fb0b3e..7fc0705 100644
--- a/src/templates/zshare/formconfig.jsx
+++ b/src/templates/zshare/formconfig.jsx
@@ -565,10 +565,10 @@
       required: true,
       options: [{
         MenuID: 'newtab',
-        text: Formdict['header.form.tab']
+        text: Formdict['model.form.tab']
       }, {
         MenuID: 'newpage',
-        text: Formdict['header.form.newpage']
+        text: Formdict['model.form.newpage']
       }, {
         MenuID: 'currenttab',
         text: Formdict['header.form.currenttab']
@@ -650,31 +650,31 @@
       required: true,
       options: [{
         value: 'text',
-        text: Formdict['header.form.text']
+        text: Formdict['model.form.text']
       }, {
         value: 'select',
-        text: Formdict['header.form.select']
+        text: Formdict['model.form.select']
       }, {
         value: 'multiselect',
-        text: Formdict['header.form.multiselect']
+        text: Formdict['model.form.multiselect']
       }, {
         value: 'link',
-        text: Formdict['header.form.link']
+        text: Formdict['model.form.link']
       }, {
         value: 'date',
-        text: Formdict['header.form.dateday']
+        text: Formdict['model.form.dateday']
       }, {
         value: 'dateweek',
-        text: Formdict['header.form.dateweek']
+        text: Formdict['model.form.dateweek']
       }, {
         value: 'datemonth',
-        text: Formdict['header.form.datemonth']
+        text: Formdict['model.form.datemonth']
       }, {
         value: 'daterange',
-        text: Formdict['header.form.daterange']
+        text: Formdict['model.form.daterange']
       }, {
         value: 'group',
-        text: '鏃ユ湡锛堢粍鍚堬級'
+        text: Formdict['model.form.dategroup']
       }]
     },
     {
@@ -925,40 +925,40 @@
   let opentypes = [
     {
       value: 'pop',
-      text: Formdict['header.form.popform']
+      text: Formdict['model.form.popform']
     }, {
       value: 'prompt',
-      text: Formdict['header.form.prompt']
+      text: Formdict['model.form.prompt']
     }, {
       value: 'exec',
-      text: Formdict['header.form.exec']
+      text: Formdict['model.form.exec']
     }, {
       value: 'excelIn',
-      text: Formdict['header.form.excelIn']
+      text: Formdict['model.form.excelIn']
     }, {
       value: 'excelOut',
-      text: Formdict['header.form.excelOut']
+      text: Formdict['model.form.excelOut']
     }, {
       value: 'popview',
-      text: Formdict['header.form.popview']
+      text: Formdict['model.form.popview']
     }
   ]
 
   if (type === 'subtable') {
     opentypes.push({
       value: 'funcbutton',
-      text: Formdict['header.form.funcbutton']
+      text: Formdict['model.form.funcbutton']
     })
   } else {
     opentypes.push({
       value: 'tab',
-      text: Formdict['header.form.tab']
+      text: Formdict['model.form.tab']
     }, {
       value: 'innerpage',
-      text: Formdict['header.form.newpage']
+      text: Formdict['model.form.newpage']
     }, {
       value: 'funcbutton',
-      text: Formdict['header.form.funcbutton']
+      text: Formdict['model.form.funcbutton']
     })
   }
 
@@ -1019,7 +1019,7 @@
     {
       type: 'text',
       key: 'sql',
-      label: Formdict['header.form.tablename'],
+      label: Formdict['model.form.tablename'],
       initVal: card.sql || config.setting.tableName || '',
       tooltip: Formdict['header.form.actionhelp.tablename'],
       required: false
@@ -1052,29 +1052,29 @@
     {
       type: 'select',
       key: 'execMode',
-      label: Formdict['header.form.execMode'],
+      label: Formdict['model.form.execMode'],
       initVal: card.execMode || 'exec',
       required: true,
       options: [{
         value: 'exec',
-        text: Formdict['header.form.exec']
+        text: Formdict['model.form.exec']
       }, {
         value: 'prompt',
-        text: Formdict['header.form.prompt']
+        text: Formdict['model.form.prompt']
       }, {
         value: 'pop',
-        text: Formdict['header.form.popform']
+        text: Formdict['model.form.popform']
       }]
     },
     {
       type: 'select',
       key: 'tabType',
-      label: Formdict['header.form.tabType'],
+      label: Formdict['model.form.tabType'],
       initVal: card.tabType || 'SubTable',
       required: true,
       options: [{
         value: 'SubTable',
-        text: Formdict['header.menu.tab.subtable']
+        text: Formdict['model.menu.tab.subtable']
       }]
     },
     {
@@ -1088,7 +1088,7 @@
     {
       type: 'select',
       key: 'pageTemplate',
-      label: Formdict['header.form.newpage.type'],
+      label: Formdict['model.form.newpage.type'],
       initVal: card.pageTemplate || '',
       required: true,
       options: [{
@@ -1102,7 +1102,7 @@
     {
       type: 'text',
       key: 'url',
-      label: Formdict['header.form.newpage.url'],
+      label: Formdict['model.form.newpage.url'],
       initVal: card.url || '',
       required: true
     },
@@ -1208,7 +1208,7 @@
     {
       type: 'select',
       key: 'execSuccess',
-      label: Formdict['header.form.execSuccess'],
+      label: Formdict['model.form.afterSuccess'],
       initVal: card.execSuccess || 'never',
       required: true,
       options: [{
@@ -1226,7 +1226,7 @@
     {
       type: 'select',
       key: 'execError',
-      label: Formdict['header.form.execError'],
+      label: Formdict['model.form.afterError'],
       initVal: card.execError || 'never',
       required: true,
       options: [{
@@ -1277,7 +1277,7 @@
     {
       type: 'text',
       key: 'sheet',
-      label: Formdict['header.form.tablename'],
+      label: Formdict['model.form.tablename'],
       initVal: card.sheet || config.setting.tableName || '',
       required: true
     },
@@ -1343,16 +1343,16 @@
       required: true,
       options: [{
         value: 'text',
-        text: Formdict['header.form.text']
+        text: Formdict['model.form.text']
       }, {
         value: 'number',
-        text: Formdict['header.form.number']
+        text: Formdict['model.form.number']
       }, {
         value: 'picture',
-        text: Formdict['header.form.picture']
+        text: Formdict['model.form.picture']
       }, {
         value: 'textarea',
-        text: Formdict['header.form.textarea']
+        text: Formdict['model.form.textarea']
       }]
     },
     {
@@ -1490,7 +1490,7 @@
     {
       type: 'cascader',
       key: 'linkmenu',
-      label: Formdict['header.form.linkmenu'],
+      label: Formdict['model.form.linkmenu'],
       initVal: card.linkmenu || [],
       required: false,
       options: menulist
@@ -2023,34 +2023,34 @@
       required: true,
       options: [{
         value: 'text',
-        text: Formdict['header.form.text']
+        text: Formdict['model.form.text']
       }, {
         value: 'number',
-        text: Formdict['header.form.number']
+        text: Formdict['model.form.number']
       }, {
         value: 'select',
-        text: Formdict['header.form.select']
+        text: Formdict['model.form.select']
       }, {
         value: 'multiselect',
-        text: Formdict['header.form.multiselect']
+        text: Formdict['model.form.multiselect']
       }, {
         value: 'link',
-        text: Formdict['header.form.link']
+        text: Formdict['model.form.link']
       }, {
         value: 'fileupload',
         text: Formdict['header.form.fileupload']
       }, {
         value: 'date',
-        text: Formdict['header.form.dateday']
+        text: Formdict['model.form.dateday']
       }, {
         value: 'datemonth',
-        text: Formdict['header.form.datemonth']
+        text: Formdict['model.form.datemonth']
       }, {
         value: 'datetime',
-        text: Formdict['header.form.datetime']
+        text: Formdict['model.form.datetime']
       }, {
         value: 'textarea',
-        text: Formdict['header.form.textarea']
+        text: Formdict['model.form.textarea']
       }, {
         value: 'funcvar',
         text: Formdict['header.form.funcvar']
@@ -2199,7 +2199,7 @@
         text: Formdict['header.form.empty']
       }, {
         value: 'number',
-        text: Formdict['header.form.number']
+        text: Formdict['model.form.number']
       }, {
         value: 'letter',
         text: Formdict['header.form.letter']
@@ -2212,7 +2212,7 @@
       type: 'select',
       key: 'supField',
       label: '涓婄骇琛ㄥ崟',
-      tooltip: '涓婄骇琛ㄥ崟涓轰笅鎷夐�夋嫨鎴栧叧鑱旇彍鍗曪紝璁剧疆涓婄骇琛ㄥ崟鍚庯紝璇ヨ〃鍗曞彈鎺т簬涓婄骇鑿滃崟锛屾敞锛氬彈鎺у叧绯诲湪璇ヨ〃鍗曢殣钘忔椂澶辨晥銆�',
+      tooltip: '涓婄骇琛ㄥ崟涓轰笅鎷夐�夋嫨鎴栬仈鍔ㄨ彍鍗曪紝璁剧疆涓婄骇琛ㄥ崟鍚庯紝璇ヨ〃鍗曞彈鎺т簬涓婄骇鑿滃崟锛屾敞锛氬彈鎺у叧绯诲湪璇ヨ〃鍗曢殣钘忔椂澶辨晥銆�',
       initVal: card.supField || '',
       required: false,
       readonly: false,
@@ -2238,7 +2238,7 @@
     {
       type: 'multiselect',
       key: 'linkSubField',
-      label: Formdict['header.form.linkForm'],
+      label: Formdict['model.form.link'],
       initVal: card.linkSubField || [],
       options: inputfields
     },
@@ -2391,12 +2391,12 @@
     {
       type: 'select',
       key: 'type',
-      label: Formdict['header.form.tabType'],
+      label: Formdict['model.form.tabType'],
       initVal: card.type || 'SubTable',
       required: true,
       options: [{
         value: 'SubTable',
-        text: Formdict['header.menu.tab.subtable']
+        text: Formdict['model.menu.tab.subtable']
       }]
     },
     {
diff --git a/src/templates/zshare/modalform/index.jsx b/src/templates/zshare/modalform/index.jsx
index aeb4ea4..a63f5b9 100644
--- a/src/templates/zshare/modalform/index.jsx
+++ b/src/templates/zshare/modalform/index.jsx
@@ -509,7 +509,7 @@
         if (!err) {
           let isvalid = true
           values.uuid = this.props.card.uuid
-          // 涓嬫媺鑿滃崟鎴栧叧鑱旇彍鍗�
+          // 涓嬫媺鑿滃崟鎴栬仈鍔ㄨ彍鍗�
           if ((values.type === 'multiselect' || values.type === 'select' || values.type === 'link') && values.resourceType === '0') {
             values.options = this.refs.editTable.state.dataSource
             values.dataSource = ''
@@ -523,7 +523,7 @@
               isvalid = false
               notification.warning({
                 top: 92,
-                message: this.props.dict['header.form.selectItem.error'],
+                message: this.props.dict['model.form.selectItem.error'],
                 duration: 5
               })
             }
diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx
index ae80f67..41a5498 100644
--- a/src/views/login/index.jsx
+++ b/src/views/login/index.jsx
@@ -15,7 +15,7 @@
 
 const LoginForm = asyncLoadComponent(() => import('./loginform'))
 const LoginCloudForm = asyncLoadComponent(() => import('./logincloudform'))
-const iszhCN = !localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN'
+const iszhCN = localStorage.getItem('lang') !== 'en-US'
 
 class Login extends Component {
   state = {
diff --git a/src/views/mobdesign/index.jsx b/src/views/mobdesign/index.jsx
index d7bc86b..bcdf9b7 100644
--- a/src/views/mobdesign/index.jsx
+++ b/src/views/mobdesign/index.jsx
@@ -3,7 +3,7 @@
 import { DndProvider } from 'react-dnd'
 import { fromJS } from 'immutable'
 import HTML5Backend from 'react-dnd-html5-backend'
-import { SketchPicker } from 'react-color'
+// import { SketchPicker } from 'react-color'
 import { Icon, Tabs, notification, Modal } from 'antd'
 
 import Api from '@/api'
@@ -17,6 +17,7 @@
 const { confirm } = Modal
 
 const Header = asyncComponent(() => import('@/mob/header'))
+const Controller = asyncComponent(() => import('@/mob/controller'))
 const MobShell = asyncComponent(() => import('@/mob/mobshell'))
 const SourceWrap = asyncComponent(() => import('@/mob/modelsource'))
 const DataSource = asyncComponent(() => import('@/mob/datasource'))
@@ -29,7 +30,8 @@
     appConfig: null,
     saveIng: false,
     config: null,
-    pageIndex: 0
+    pageIndex: 0,
+    editElem: null
   }
 
   UNSAFE_componentWillMount() {
@@ -120,6 +122,9 @@
 
   editCard = (element) => {
     console.log(element)
+    this.setState({
+      editElem: element
+    })
   }
 
   updateConfig = (config) => {
@@ -129,7 +134,7 @@
   }
 
   render () {
-    const { saveIng, appType, config } = this.state
+    const { saveIng, appType, config, editElem } = this.state
 
     return (
       <div className="mobile-view">
@@ -149,13 +154,14 @@
             </div>
             {appType === 'mob' && config ?
               <div className="mob-shell">
-                <MobShell config={config} deleteCard={this.deleteCard} editCard={this.editCard} handleList={this.updateConfig} />
+                <MobShell config={config} deleteCard={this.deleteCard} editCard={this.editCard} editId={editElem ? editElem.uuid : ''} handleList={this.updateConfig} />
               </div> : null
             }
             <div className="mob-setting">
               {config ? <Tabs defaultActiveKey="2" animated={false} size="small">
                 <TabPane tab="閰嶇疆" key="1">
-                  <SketchPicker />
+                  {/* <SketchPicker /> */}
+                  <Controller />
                 </TabPane>
                 <TabPane tab="鏁版嵁婧�" key="2">
                   <DataSource config={config} updateConfig={this.updateConfig} />

--
Gitblit v1.8.0