king
2020-06-23 c519b4e51fe07bf13a2a7e44abd648b8dc0c083d
2020-06-23
43个文件已修改
2个文件已添加
663 ■■■■■ 已修改文件
src/components/header/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/sidemenu/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/en-US/main.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/en-US/model.js 81 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/zh-CN/main.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/zh-CN/model.js 75 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/controller/index.jsx 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/controller/index.scss 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/login/index.jsx 39 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/login/index.scss 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/mobshell/card.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/mobshell/index.jsx 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/mobshell/index.scss 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/chartcomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/tabviews/zshare/mutilform/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/comtableconfig/source.jsx 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/formtabconfig/actionform/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/formtabconfig/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/formtabconfig/source.jsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/headerconfig/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/menuconfig/editsecmenu/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/menuconfig/editthdmenu/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/modalconfig/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/modalconfig/source.jsx 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/actionform/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/index.jsx 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/cardcomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/chartcomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/columncomponent/colspanform/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/columncomponent/index.jsx 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/fieldscomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/searchcomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/searchcomponent/searchform/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/tablecomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/tabscomponent/index.jsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/subtableconfig/index.jsx 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/subtableconfig/source.jsx 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/treepageconfig/source.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/zshare/formconfig.jsx 104 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/zshare/modalform/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mobdesign/index.jsx 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,
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,          // 编辑三级菜单时设置
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 '
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': '正则校验',
  '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': '解冻按钮',
  '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': '在左侧工具栏《按钮》中,选择对应类型的按钮拖至此处添加,如选择按钮类型为表单、新标签页等含有配置页面的按钮,可在左侧工具栏-按钮-可配置按钮处,点击按钮完成相关配置。注:当设置按钮显示位置为表格时,显示列会增加操作列。',
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': '请选择'
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': '正则校验',
  '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': '解冻按钮',
  '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': '在左侧工具栏《按钮》中,选择对应类型的按钮拖至此处添加,如选择按钮类型为表单、新标签页等含有配置页面的按钮,可在左侧工具栏-按钮-可配置按钮处,点击按钮完成相关配置。注:当设置按钮显示位置为表格时,显示列会增加操作列。',
src/mob/controller/index.jsx
New file
@@ -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
src/mob/controller/index.scss
New file
@@ -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;
    }
  }
}
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>
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;
  }
}
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} />)
      }
    }
  }
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>
  )
}
src/mob/mobshell/index.scss
@@ -18,4 +18,7 @@
      display: inline-block;
    }
  }
  >.ant-empty {
    padding-top: 40px;
  }
}
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: [],
src/tabviews/zshare/mutilform/index.jsx
@@ -125,7 +125,7 @@
          })
        }
        // 保存初始列表,用于关联菜单控制
        // 保存初始列表,用于联动菜单控制
        item.oriOptions = fromJS(item.options).toJS()
        // 下级表单控制-字段写入
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',
    }
  ]
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') {
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 = {
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',
    }
  ]
src/templates/headerconfig/index.jsx
@@ -38,7 +38,7 @@
    editMvisible: false, // 编辑菜单模态框
    thawMvisible: false, // 解除冻结模态框
    confirmLoading: false, // 提交中。。。
    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
  }
  handlePreviewList = (List) => {
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: '',             // 编辑类型,add or edit
    title: '',            // 模态框标题
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,    // 解除冻结模态框
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 = {
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: ''
  },
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'
        }
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={[
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" />)}
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,
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
  }
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,
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']
        }]
      },
      {
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}
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,    // 模态框控制
  }
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,      // 模态框控制
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
            })
          }
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,      // 模态框控制
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: [],  // 已选表
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}
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: [],         // 已选表字段集
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: ''
    }
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',
    }
  ]
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']
      }]
    },
    {
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
              })
            }
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 = {
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} />