king
2020-06-24 58a28e1faa15f638a136fefdcfcd0b3106c1fa16
2020-06-24
48个文件已修改
2个文件已删除
892 ■■■■ 已修改文件
src/components/header/index.jsx 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/header/resetpwd/index.jsx 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/sidemenu/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/en-US/header.js 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/en-US/main.js 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/en-US/model.js 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/zh-CN/header.js 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/zh-CN/main.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/locales/zh-CN/model.js 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/comtableconfig/index.jsx 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/formtabconfig/index.jsx 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/formtabconfig/settingform/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/headerconfig/dragelement/index.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/headerconfig/index.jsx 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/headerconfig/menuform/index.jsx 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/menuconfig/editsecmenu/index.jsx 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/menuconfig/editthdmenu/index.jsx 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/modalconfig/index.jsx 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/index.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/verifyexcelin/columnform/index.jsx 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/verifyexcelout/columnform/index.jsx 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/verifyprint/editable/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/cardcomponent/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/chartgroupcomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/columncomponent/colspanform/index.jsx 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/columncomponent/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/columncomponent/index.scss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/columncomponent/markcolumn/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/fieldscomponent/editcard/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/fieldscomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/searchcomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/searchcomponent/searcheditable/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/searchcomponent/searchform/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcomponent/settingform/index.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/tabscomponent/index.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/treesettingcomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/subtableconfig/index.jsx 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/treepageconfig/index.jsx 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/zshare/createinterface/index.jsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/zshare/editcard/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/zshare/editcomponent/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/zshare/formconfig.jsx 138 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/zshare/modalform/modaleditable/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/zshare/verifycard/index.jsx 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/utils.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/header/index.jsx
@@ -23,8 +23,8 @@
} from '@/store/action'
import Api from '@/api'
import options from '@/store/options.js'
import zhCN from '@/locales/zh-CN/header.js'
import enUS from '@/locales/en-US/header.js'
import zhCN from '@/locales/zh-CN/main.js'
import enUS from '@/locales/en-US/main.js'
import Utils from '@/utils/utils.js'
import avatar from '@/assets/img/avatar.jpg'
import Resetpwd from './resetpwd'
@@ -101,7 +101,7 @@
      })
      notification.success({
        top: 92,
        message: this.state.dict['header.password.resetsuccess'],
        message: this.state.dict['main.password.resetsuccess'],
        duration: 2
      })
    } else {
@@ -127,10 +127,10 @@
    // 退出登录
    let _this = this
    confirm({
      title: this.state.dict['header.logout.hint'],
      title: this.state.dict['main.logout.hint'],
      content: '',
      okText: this.state.dict['header.confirm'],
      cancelText: this.state.dict['header.cancel'],
      okText: this.state.dict['main.confirm'],
      cancelText: this.state.dict['main.cancel'],
      onOk() {
        sessionStorage.clear()
        _this.props.logout()
@@ -639,16 +639,16 @@
    const menu = (
      <Menu overlayclassname="header-dropdown">
        {this.props.debug && <Menu.Item key="0">
          {this.state.dict['header.edit']}
          {this.state.dict['main.edit']}
          <Switch size="small" className="edit-switch" disabled={!!this.props.editLevel} checked={this.props.editState} onChange={this.changeEditState} />
        </Menu.Item>}
        {!this.props.editState ? <Menu.Item key="1" onClick={this.changePassword}>{this.state.dict['header.password']}</Menu.Item> : null}
        {!this.props.editState ? <Menu.Item key="1" onClick={this.changePassword}>{this.state.dict['main.password']}</Menu.Item> : null}
        {/* {this.state.systems.length > 0 ? <Menu.SubMenu title="切换系统">
          {this.state.systems.map((system, index) => (
            <Menu.Item className="header-subSystem" key={'sub' + index} onClick={() => {this.changeSystem(system)}}> {system.AppName} </Menu.Item>
          ))}
        </Menu.SubMenu> : null} */}
        <Menu.Item key="2" onClick={this.logout}>{this.state.dict['header.logout']}</Menu.Item>
        <Menu.Item key="2" onClick={this.logout}>{this.state.dict['main.logout']}</Menu.Item>
      </Menu>
    )
@@ -730,9 +730,9 @@
        }
        {/* 修改密码 */}
        <Modal
          title={this.state.dict['header.password']}
          okText={this.state.dict['header.confirm']}
          cancelText={this.state.dict['header.cancel']}
          title={this.state.dict['main.password']}
          okText={this.state.dict['main.confirm']}
          cancelText={this.state.dict['main.cancel']}
          visible={this.state.visible}
          onOk={this.resetPwdSubmit}
          confirmLoading={this.state.confirmLoading}
@@ -743,9 +743,9 @@
        </Modal>
        {/* 编辑状态登录 */}
        <Modal
          title={this.state.dict['header.login.develop']}
          okText={this.state.dict['header.confirm']}
          cancelText={this.state.dict['header.cancel']}
          title={this.state.dict['main.login.develop']}
          okText={this.state.dict['main.confirm']}
          cancelText={this.state.dict['main.cancel']}
          visible={this.state.loginVisible}
          onOk={this.loginSubmit}
          width={'430px'}
src/components/header/resetpwd/index.jsx
@@ -39,7 +39,7 @@
  compareToFirstPassword = (rule, value, callback) => {
    const { form } = this.props
    if (value && value !== form.getFieldValue('password')) {
      callback(this.props.dict['header.password.diff'])
      callback(this.props.dict['main.password.diff'])
    } else {
      callback()
    }
@@ -69,22 +69,22 @@
    return (
      <Form {...formItemLayout} onKeyDown={this.onEnterSubmit}>
        <Form.Item label={this.props.dict['header.password.origin']}>
        <Form.Item label={this.props.dict['main.password.origin']}>
          {getFieldDecorator('originpwd', {
            rules: [
              {
                required: true,
                message: this.props.dict['header.password.origin.required']
                message: this.props.dict['main.password.origin.required']
              }
            ]
          })(<Input.Password />)}
        </Form.Item>
        <Form.Item label={this.props.dict['header.password.new']} hasFeedback>
        <Form.Item label={this.props.dict['main.password.new']} hasFeedback>
          {getFieldDecorator('password', {
            rules: [
              {
                required: true,
                message: this.props.dict['header.password.new.required']
                message: this.props.dict['main.password.new.required']
              },
              {
                pattern: /^[0-9a-zA-Z!@#$%^&*()_]*$/ig,
@@ -92,7 +92,7 @@
              },
              {
                max: 50,
                message: this.props.dict['header.password.maxlen']
                message: this.props.dict['main.password.maxlen']
              },
              {
                validator: this.validateToNextPassword
@@ -100,12 +100,12 @@
            ]
          })(<Input.Password />)}
        </Form.Item>
        <Form.Item label={this.props.dict['header.password.confirm']} hasFeedback>
        <Form.Item label={this.props.dict['main.password.confirm']} hasFeedback>
          {getFieldDecorator('confirm', {
            rules: [
              {
                required: true,
                message: this.props.dict['header.password.confirm.required']
                message: this.props.dict['main.password.confirm.required']
              },
              {
                validator: this.compareToFirstPassword
src/components/sidemenu/index.jsx
@@ -9,8 +9,8 @@
import { modifyTabview, resetEditLevel } from '@/store/action'
import { SySMenuList } from './config'
import options from '@/store/options.js'
import zhCN from '@/locales/zh-CN/header.js'
import enUS from '@/locales/en-US/header.js'
import zhCN from '@/locales/zh-CN/main.js'
import enUS from '@/locales/en-US/main.js'
import Api from '@/api'
import './index.scss'
src/locales/en-US/header.js
File was deleted
src/locales/en-US/main.js
@@ -1,13 +1,27 @@
export default {
  'main.search': 'Search',
  'main.reset': 'Reset',
  'main.edit': 'Edit',
  'main.confirm': 'OK',
  'main.submit': 'Submit',
  'main.return': 'Cancel',
  'main.close': '关闭',
  'main.return': 'Return',
  'main.close': 'Close',
  'main.all': 'All',
  'main.cancel': '取消',
  'main.revert.default': '恢复默认设置',
  'main.cancel': 'Cancel',
  'main.logout': 'Logout',
  'main.logout.hint': 'Are you sure you want to log out?',
  'main.password': 'Change the password',
  'main.password.origin': 'Original Password',
  'main.password.origin.required': 'Please input your original password!',
  'main.password.new': 'Password',
  'main.password.new.required': 'Please input your password!',
  'main.password.confirm': 'Confirm Password',
  'main.password.confirm.required': 'Please confirm your password!',
  'main.password.maxlen': 'The maximum password length is 12 bits!',
  'main.password.diff': 'Two passwords that you enter is inconsistent!',
  'main.password.resetsuccess': 'Password modified successfully!',
  'main.login.develop': 'Login developer',
  'main.revert.default': 'Restore default Settings',
  'main.copy.success': 'Copy success',
  'main.pagination.of': 'of',
  'main.pagination.items': 'items',
@@ -21,10 +35,9 @@
  'main.action.primarykey.required': 'Primary key not set!',
  'main.action.primarykey.repetition': 'There are multiple primary keys!',
  'main.action.primarykey.repetitionbid': 'There are multiple BID!',
  'main.column.operation': '操作',
  'main.excel.line': '行',
  'main.excel.column': '列',
  'main.excel.includekey': '含有关键字',
  'main.excel.line': 'line',
  'main.excel.column': 'column',
  'main.excel.includekey': ' Contain keywords ',
  'main.excel.content.emptyerror': '内容不可为空',
  'main.excel.content.typeerror': '内容应为数值',
  'main.excel.content.interror': '内容应为整数',
@@ -36,6 +49,6 @@
  'main.excel.content.limitmax': '大于最大值',
  'main.form.link.error': '联动菜单设置错误!',
  'main.form.picture.check': '查看图片',
  'form.required.input': 'Please input ',
  'form.required.select': 'Please select '
  'form.required.input': 'Please enter the ',
  'form.required.select': 'Please select a '
}
src/locales/en-US/model.js
@@ -1,15 +1,15 @@
export default {
  'model.confirm': 'Ok',
  'header.submit': 'Submit',
  'model.submit': 'Submit',
  'model.delete': 'Delete',
  'header.cancel': 'Cancel',
  'model.cancel': 'Cancel',
  'model.edit': 'Edit',
  'model.copy': 'Copy',
  'header.return': 'Back',
  'header.save': 'Save',
  'header.notsave': 'Do not save',
  'header.close': 'Close',
  'header.notclose': 'not close',
  'model.back': 'Return',
  'model.save': 'Save',
  'model.notsave': 'Don\'t save',
  'model.close': 'Close',
  'model.notclose': 'Don\'t close',
  'header.reset': 'Reset',
  'model.enable': 'Enable',
  'model.disable': 'Disable',
@@ -17,20 +17,34 @@
  'model.hidden': 'Hidden',
  'model.length': 'Length',
  'model.sort': 'Sort',
  'model.true': 'True',
  'model.false': 'False',
  'model.add': 'Add ',
  'model.update': 'Update ',
  'model.thaw': 'Thaw ',
  'model.menu': 'Menu ',
  'model.name': 'Name',
  'model.icon': 'Icon',
  'model.param': 'Param',
  'model.super': 'The superior ',
  'model.openway': 'Open ',
  'model.new': 'New ',
  'model.window': 'Window',
  'model.switch.open': 'Open',
  'model.switch.close': 'Close',
  'model.menu.level1': 'Level 1 menu',
  'model.menu.level2': 'Level 2 menu',
  'model.menu.close': 'Are you sure to delete the menu <<@M>> ?',
  'model.menu.resetorder': 'Are you sure to adjust the menu sequence ?',
  'header.menu.basemsg': 'Please complete the basic information !',
  'header.menu.template.change': 'Switch the template',
  'header.menu.addtitle': 'The new menu',
  'header.menu.editTitle': 'The edit menu',
  'header.menu.basedata': 'The basic information',
  'header.menu.table.add': 'Add tables',
  'header.menu.table.placeholder': 'Please select a table',
  'header.menu.config.placeholder': 'Configuration has been modified, do you want to save configuration information ?',
  'header.menu.config.notsave': 'The menu has not been saved, please save the menu configuration first!',
  'header.menu.config.update': 'Menu configuration has been modified, please save!',
  'model.menu.template.empty': 'Menu template is missing, please select template again!',
  'model.menu.presave': 'Menu order has been adjusted, Please save!',
  'header.menu.form': 'The form',
  'header.menu.form.add': 'Add form',
  'header.menu.form.configurable': 'Configuration of forms',
@@ -44,18 +58,9 @@
  'header.menu.column': 'Column',
  'header.menu.column.add': 'Add columns',
  'header.menu.page.configurable': 'Configuration Page',
  'header.menu.menuID': 'Menu ID',
  'header.menu.menuName': 'Menu Name',
  'header.menu.viewName': 'The name of the page',
  'header.menu.tabName': 'Tag name',
  'header.menu.Remark': 'Note',
  'header.menu.menuNo': 'Menu Parameter',
  'header.menu.supMenu': 'Superior Menu',
  'header.menu.icon': 'Icon',
  'header.menu.openType': 'Open With',
  'header.menu.openType.menu': 'Menu',
  'header.menu.openType.newWindow': 'A new window',
  'header.menu.newpage.service': 'Customer Service',
  'header.menu.func.create': 'Create stored procedures',
  'header.menu.interface.create': 'Create the interface',
  'header.menu.tab': 'Tab',
@@ -74,7 +79,7 @@
  'header.form.column.itemUnit': 'Item',
  'header.form.column.itemsUnit': 'Items',
  'model.form.column.action': 'Action',
  'model.form.name': 'Name',
  'model.form.width': 'Width',
  'header.form.title': 'Title',
  'model.form.field': 'Field',
  'header.form.innerFunc': 'Internal func',
@@ -102,7 +107,7 @@
  'header.form.interface.inner': 'Internal',
  'header.form.interface.outer': 'External',
  'header.form.pageTemplate': 'The page template',
  'header.form.type': 'Type',
  'model.form.type': 'Type',
  'model.form.text': 'Text',
  'header.form.description': '描述',
  'model.form.textarea': 'Multiline text',
@@ -154,14 +159,11 @@
  'model.form.prompt': 'Prompt',
  'model.form.exec': 'Direct execution',
  'model.form.paramJoint': 'Joint param',
  'model.form.icon': 'Icon',
  'model.form.align': 'Alignment',
  'model.form.alignLeft': 'The left',
  'model.form.alignRight': 'The Right',
  'model.form.alignCenter': 'The center',
  'header.form.columnWidth': '列宽',
  'header.form.true': '是',
  'header.form.false': '否',
  'model.form.columnWidth': 'Column width',
  'header.form.setAll': '设置全部项',
  'header.form.resourceType': '选项来源',
  'header.form.custom': '自定义',
src/locales/zh-CN/header.js
File was deleted
src/locales/zh-CN/main.js
@@ -1,12 +1,26 @@
export default {
  'main.search': '搜索',
  'main.reset': '重置',
  'main.edit': '编辑',
  'main.confirm': '确定',
  'main.submit': '提交',
  'main.return': '返回',
  'main.close': '关闭',
  'main.all': '全部',
  'main.cancel': '取消',
  'main.logout': '退出',
  'main.logout.hint': '您确定要退出吗?',
  'main.password': '修改密码',
  'main.password.origin': '原密码',
  'main.password.origin.required': '请输入原密码!',
  'main.password.new': '新密码',
  'main.password.new.required': '请输入新密码!',
  'main.password.confirm': '确认密码',
  'main.password.confirm.required': '请确认密码!',
  'main.password.maxlen': '最大密码长度为12位!',
  'main.password.diff': '两次输入密码不一致!',
  'main.password.resetsuccess': '密码修改成功!',
  'main.login.develop': '登录开发机',
  'main.revert.default': '恢复默认设置',
  'main.copy.success': '复制成功',
  'main.pagination.of': '共',
@@ -21,7 +35,6 @@
  'main.action.primarykey.required': '未设置主键!',
  'main.action.primarykey.repetition': '存在多个主键!',
  'main.action.primarykey.repetitionbid': '存在多个BID!',
  'main.column.operation': '操作',
  'main.view.unenabled': '抱歉,你访问的页面未启用,请联系管理员。',
  'main.excel.line': '行',
  'main.excel.column': '列',
src/locales/zh-CN/model.js
@@ -1,15 +1,15 @@
export default {
  'model.confirm': '确定',
  'header.submit': '提交',
  'model.submit': '提交',
  'model.delete': '删除',
  'header.cancel': '取消',
  'model.cancel': '取消',
  'model.edit': '编辑',
  'model.copy': '复制',
  'header.return': '返回',
  'header.save': '保存',
  'header.notsave': '不保存',
  'header.close': '关闭',
  'header.notclose': '不关闭',
  'model.back': '返回',
  'model.save': '保存',
  'model.notsave': '不保存',
  'model.close': '关闭',
  'model.notclose': '不关闭',
  'header.reset': '重置',
  'model.enable': '启',
  'model.disable': '停',
@@ -17,20 +17,34 @@
  'model.hidden': '隐藏',
  'model.length': '长度',
  'model.sort': '排序',
  'model.true': '是',
  'model.false': '否',
  'model.add': '添加',
  'model.update': '修改',
  'model.thaw': '解冻',
  'model.menu': '菜单',
  'model.name': '名称',
  'model.icon': '图标',
  'model.param': '参数',
  'model.super': '上级',
  'model.openway': '打开方式',
  'model.new': '新',
  'model.window': '窗口',
  'model.switch.open': '开',
  'model.switch.close': '关',
  'model.menu.level1': '一级菜单',
  'model.menu.level2': '二级菜单',
  'model.menu.close': '确定删除《@M》菜单吗?',
  'model.menu.resetorder': '确认调整菜单顺序吗?',
  'header.menu.basemsg': '请完善菜单基本信息!',
  'header.menu.template.change': '切换模板',
  'header.menu.addtitle': '新建菜单',
  'header.menu.editTitle': '编辑菜单',
  'header.menu.basedata': '基本信息',
  'header.menu.table.add': '添加表名',
  'header.menu.table.placeholder': '请选择表名',
  'header.menu.config.placeholder': '配置已修改,是否保存配置信息?',
  'header.menu.config.notsave': '菜单尚未保存,请先保存菜单配置!',
  'header.menu.config.update': '菜单配置已修改,请保存!',
  'model.menu.template.empty': '菜单模板丢失,请重新选择模板!',
  'model.menu.presave': '菜单顺序已调整,请保存!',
  'header.menu.form': '表单',
  'header.menu.form.add': '添加表单',
  'header.menu.form.configurable': '表单配置',
@@ -44,18 +58,9 @@
  'header.menu.column': '显示列',
  'header.menu.column.add': '添加显示列',
  'header.menu.page.configurable': '页面配置',
  'header.menu.menuID': '菜单ID',
  'header.menu.menuName': '菜单名称',
  'header.menu.viewName': '页面名称',
  'header.menu.tabName': '标签名称',
  'header.menu.Remark': '备注',
  'header.menu.menuNo': '菜单参数',
  'header.menu.supMenu': '上级菜单',
  'header.menu.icon': '图标',
  'header.menu.openType': '打开方式',
  'header.menu.openType.menu': '菜单',
  'header.menu.openType.newWindow': '新窗口',
  'header.menu.newpage.service': '客服',
  'header.menu.func.create': '创建存储过程',
  'header.menu.interface.create': '创建接口',
  'header.menu.tab': '标签页',
@@ -74,7 +79,7 @@
  'header.form.column.itemUnit': '项',
  'header.form.column.itemsUnit': '项',
  'model.form.column.action': '操作',
  'model.form.name': '名称',
  'model.form.width': '宽度',
  'header.form.title': '标题',
  'model.form.field': '字段',
  'header.form.innerFunc': '内部函数',
@@ -102,7 +107,7 @@
  'header.form.interface.inner': '内部',
  'header.form.interface.outer': '外部',
  'header.form.pageTemplate': '页面模板',
  'header.form.type': '类型',
  'model.form.type': '类型',
  'model.form.text': '文本',
  'header.form.description': '描述',
  'model.form.textarea': '多行文本',
@@ -154,14 +159,11 @@
  'model.form.prompt': '提示框',
  'model.form.exec': '直接执行',
  'model.form.paramJoint': '拼接参数',
  'model.form.icon': '图标',
  'model.form.align': '对齐方式',
  'model.form.alignLeft': '左对齐',
  'model.form.alignRight': '右对齐',
  'model.form.alignCenter': '居中',
  'header.form.columnWidth': '列宽',
  'header.form.true': '是',
  'header.form.false': '否',
  'model.form.columnWidth': '列宽',
  'header.form.setAll': '设置全部',
  'header.form.resourceType': '选项来源',
  'header.form.custom': '自定义',
src/templates/comtableconfig/index.jsx
@@ -937,7 +937,7 @@
      confirm({
        content: '菜单尚未提交,确定放弃保存吗?',
        okText: this.state.dict['model.confirm'],
        cancelText: this.state.dict['header.cancel'],
        cancelText: this.state.dict['model.cancel'],
        onOk() {
          _this.props.handleView()
        },
@@ -1398,8 +1398,8 @@
              <div>
                <EditComponent dict={this.state.dict} type="maintable" config={this.state.config} MenuID={this.props.menu.MenuID} thawButtons={this.state.thawButtons} refresh={this.editConfig}/>
                <Switch className="big" checkedChildren={this.state.dict['model.enable']} unCheckedChildren={this.state.dict['model.disable']} checked={this.state.config.enabled} onChange={this.onEnabledChange} />
                <Button type="primary" onClick={this.submitConfig} loading={this.state.menuloading}>{this.state.dict['header.save']}</Button>
                <Button onClick={this.cancelConfig}>{this.state.dict['header.return']}</Button>
                <Button type="primary" onClick={this.submitConfig} loading={this.state.menuloading}>{this.state.dict['model.save']}</Button>
                <Button onClick={this.cancelConfig}>{this.state.dict['model.back']}</Button>
              </div>
            } style={{ width: '100%' }}>
              <SettingComponent
@@ -1493,9 +1493,9 @@
          visible={this.state.closeVisible}
          onCancel={() => { this.setState({closeVisible: false}) }}
          footer={[
            <Button key="save" className="mk-btn mk-green" loading={this.state.menucloseloading} onClick={this.submitConfig}>{this.state.dict['header.save']}</Button>,
            <Button key="notsave" className="mk-btn mk-yellow" onClick={this.notsave}>{this.state.dict['header.notsave']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({closeVisible: false}) }}>{this.state.dict['header.cancel']}</Button>
            <Button key="save" className="mk-btn mk-green" loading={this.state.menucloseloading} onClick={this.submitConfig}>{this.state.dict['model.save']}</Button>,
            <Button key="notsave" className="mk-btn mk-yellow" onClick={this.notsave}>{this.state.dict['model.notsave']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({closeVisible: false}) }}>{this.state.dict['model.cancel']}</Button>
          ]}
          destroyOnClose
        >
src/templates/formtabconfig/index.jsx
@@ -34,7 +34,6 @@
const { Panel } = Collapse
const { Option } = Select
const { confirm } = Modal
const CommonDict = localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
class ComTableConfig extends Component {
  static propTpyes = {
@@ -46,7 +45,7 @@
  }
  state = {
    dict: CommonDict,        // 字典
    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,        // 字典
    config: null,            // 页面配置
    modaltype: '',           // 模态框类型,控制模态框显示
    tableVisible: false,     // 数据表字段模态框
@@ -162,7 +161,7 @@
        {
          type: 'text',
          key: 'menuName',
          label: this.state.dict['header.menu.menuName'],
          label: this.state.dict['model.menu'] + this.state.dict['model.name'],
          initVal: menu.MenuName,
          readonly: true
        },
@@ -835,7 +834,7 @@
    confirm({
      content: `确定删除<<${element.card.label}>>吗?`,
      okText: this.state.dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      cancelText: this.state.dict['model.cancel'],
      onOk() {
        let _config = JSON.parse(JSON.stringify(_this.state.config))
        let _delActions = _this.state.delActions
@@ -1294,7 +1293,7 @@
      confirm({
        content: '按钮配置尚未提交,确定放弃保存吗?',
        okText: this.state.dict['model.confirm'],
        cancelText: this.state.dict['header.cancel'],
        cancelText: this.state.dict['model.cancel'],
        onOk() {
          _this.handleViewBack()
        },
@@ -1741,7 +1740,7 @@
    confirm({
      content: `确定删除分组<<${group.label}>>吗?`,
      okText: this.state.dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      cancelText: this.state.dict['model.cancel'],
      onOk() {
        let groups = config.groups.filter(item => !(item.uuid === group.uuid))
        groups = groups.map(item => {
@@ -1949,8 +1948,8 @@
            } bordered={false} extra={
              <div>
                <Switch className="big" checkedChildren="启" unCheckedChildren="停" checked={this.state.config.enabled} onChange={this.onEnabledChange} />
                <Button type="primary" onClick={this.submitConfig} loading={this.state.menuloading}>{this.state.dict['header.save']}</Button>
                <Button onClick={this.cancelConfig}>{this.state.dict['header.return']}</Button>
                <Button type="primary" onClick={this.submitConfig} loading={this.state.menuloading}>{this.state.dict['model.save']}</Button>
                <Button onClick={this.cancelConfig}>{this.state.dict['model.back']}</Button>
              </div>
            } style={{ width: '100%' }}>
              <Icon type="setting" onClick={this.changeSetting} />
@@ -2046,7 +2045,7 @@
          footer={[
            this.state.card && this.state.card.btnType !== 'cancel' ?
            <CreateFunc key="create" dict={this.state.dict} ref="btnCreatFunc" trigger={this.creatFunc}/> : null,
            <Button key="cancel" onClick={this.editModalCancel}>{this.state.dict['header.cancel']}</Button>,
            <Button key="cancel" onClick={this.editModalCancel}>{this.state.dict['model.cancel']}</Button>,
            <Button key="confirm" type="primary" onClick={this.handleSubmit}>{this.state.dict['model.confirm']}</Button>
          ]}
          destroyOnClose
@@ -2068,7 +2067,7 @@
          width={'65vw'}
          maskClosable={false}
          style={{minWidth: '900px', maxWidth: '1200px'}}
          cancelText={this.state.dict['header.close']}
          cancelText={this.state.dict['model.close']}
          onOk={this.addFieldSubmit}
          onCancel={() => { // 取消添加
            this.setState({
@@ -2092,7 +2091,7 @@
          width={'75vw'}
          maskClosable={false}
          style={{minWidth: '900px', maxWidth: '1200px'}}
          okText={this.state.dict['header.submit']}
          okText={this.state.dict['model.submit']}
          onOk={this.verifySubmit}
          onCancel={() => { this.setState({ profileVisible: false }) }}
          destroyOnClose
@@ -2119,7 +2118,7 @@
          }}
          footer={[
            <CreateFunc key="create" dict={this.state.dict} ref="tableCreatFunc" trigger={this.tableCreatFunc}/>,
            <Button key="cancel" onClick={() => { this.setState({ settingVisible: false }) }}>{this.state.dict['header.cancel']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({ settingVisible: false }) }}>{this.state.dict['model.cancel']}</Button>,
            <Button key="confirm" type="primary" loading={this.state.sqlVerifing} onClick={this.settingSave}>{this.state.dict['model.confirm']}</Button>
          ]}
          destroyOnClose
@@ -2140,9 +2139,9 @@
          visible={this.state.closeVisible}
          onCancel={() => { this.setState({closeVisible: false}) }}
          footer={[
            <Button key="save" className="mk-btn mk-green" loading={this.state.menucloseloading} onClick={this.submitConfig}>{this.state.dict['header.save']}</Button>,
            <Button key="confirm" className="mk-btn mk-yellow" onClick={this.handleViewBack}>{this.state.dict['header.notsave']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({closeVisible: false}) }}>{this.state.dict['header.cancel']}</Button>
            <Button key="save" className="mk-btn mk-green" loading={this.state.menucloseloading} onClick={this.submitConfig}>{this.state.dict['model.save']}</Button>,
            <Button key="confirm" className="mk-btn mk-yellow" onClick={this.handleViewBack}>{this.state.dict['model.notsave']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({closeVisible: false}) }}>{this.state.dict['model.cancel']}</Button>
          ]}
          destroyOnClose
        >
src/templates/formtabconfig/settingform/index.jsx
@@ -243,8 +243,8 @@
                initialValue: setting.sysInterface || 'false'
              })(
                <Radio.Group onChange={this.onSysChange}>
                  <Radio value="true">{dict['header.form.true']}</Radio>
                  <Radio value="false">{dict['header.form.false']}</Radio>
                  <Radio value="true">{dict['model.true']}</Radio>
                  <Radio value="false">{dict['model.false']}</Radio>
                </Radio.Group>
              )}
            </Form.Item>
src/templates/headerconfig/dragelement/index.jsx
@@ -65,9 +65,9 @@
        <div className="card-add" onClick={add}>
          <Icon type="plus" />
        </div>
        <Button type="primary" onClick={thawmenu}>{dict['header.thawmenu']}</Button>
        <Button type="primary" onClick={confirm}>{dict['header.confirm']}</Button>
        <Button onClick={cancel}>{dict['header.close']}</Button>
        <Button type="primary" onClick={thawmenu}>{dict['model.thaw'] + dict['model.menu']}</Button>
        <Button type="primary" onClick={confirm}>{dict['model.confirm']}</Button>
        <Button onClick={cancel}>{dict['model.close']}</Button>
      </div>
    </div>
  )
src/templates/headerconfig/index.jsx
@@ -10,8 +10,8 @@
import DragElement from './dragelement'
import MenuForm from './menuform'
import Utils from '@/utils/utils.js'
import zhCN from '@/locales/zh-CN/header.js'
import enUS from '@/locales/en-US/header.js'
import zhCN from '@/locales/zh-CN/model.js'
import enUS from '@/locales/en-US/model.js'
import Api from '@/api'
import './index.scss'
@@ -52,7 +52,7 @@
    if (previewList && !is(fromJS(previewList), fromJS(this.props.menulist))) {
      notification.warning({
        top: 92,
        message: this.state.dict['header.menu.presave'],
        message: this.state.dict['model.menu.presave'],
        duration: 5
      })
    } else {
@@ -141,10 +141,10 @@
  deleteMemu = () => {
    let _this = this
    confirm({
      title: this.state.dict['header.menu.close'].replace('@M', this.state.editMenu.MenuName),
      title: this.state.dict['model.menu.close'].replace('@M', this.state.editMenu.MenuName),
      content: '',
      okText: this.state.dict['header.confirm'],
      cancelText: this.state.dict['header.cancel'],
      okText: this.state.dict['model.confirm'],
      cancelText: this.state.dict['model.cancel'],
      onOk() {
        let param = {
          func: 'sPC_MainMenu_Del',
@@ -174,7 +174,7 @@
    if (this.refs.trawmenu.state.targetKeys.length === 0) {
      notification.warning({
        top: 92,
        message: this.state.dict['header.menu.thawmenu.select'],
        message: this.state.dict['form.required.select'] + this.state.dict['model.menu'],
        duration: 5
      })
    } else {
@@ -229,7 +229,7 @@
    if ((type === 'add' || type === 'thawmenu') && _menuchange) {
      notification.warning({
        top: 92,
        message: this.state.dict['header.menu.presave'],
        message: this.state.dict['model.menu.presave'],
        duration: 5
      })
    } else if (type === 'add') {
@@ -251,10 +251,10 @@
      param.secretkey = Utils.encrypt(param.LText, param.timestamp) // md5密钥
      confirm({
        title: this.state.dict['header.menu.resetorder'],
        title: this.state.dict['model.menu.resetorder'],
        content: '',
        okText: this.state.dict['header.confirm'],
        cancelText: this.state.dict['header.cancel'],
        okText: this.state.dict['model.confirm'],
        cancelText: this.state.dict['model.cancel'],
        onOk() {
          return Api.getSystemConfig(param).then(res => {
            if (res.status) {
@@ -312,6 +312,8 @@
  }
  render () {
    const { dict } = this.state
    return (
      <div className="header-edit-box">
        <div className="mask">
@@ -336,7 +338,7 @@
        </div>
        {this.props.menulist && <DndProvider backend={HTML5Backend}>
          <DragElement
            dict={this.state.dict}
            dict={dict}
            list={this.props.menulist}
            handlePreviewList={this.handlePreviewList}
            handleMenu={this.editMenuModal}
@@ -345,9 +347,9 @@
        </DndProvider>}
        {/* 新建菜单模态框 */}
        <Modal
          title={this.state.dict['header.menu.addtitle']}
          okText={this.state.dict['header.confirm']}
          cancelText={this.state.dict['header.cancel']}
          title={dict['model.add'] + dict['model.menu']}
          okText={dict['model.confirm']}
          cancelText={dict['model.cancel']}
          visible={this.state.addMvisible}
          onOk={this.addMemuSubmit}
          confirmLoading={this.state.confirmLoading}
@@ -355,7 +357,7 @@
          destroyOnClose
        >
          <MenuForm
            dict={this.state.dict}
            dict={dict}
            type="add"
            menu={null}
            wrappedComponentRef={(inst) => this.addMenuFormRef = inst}
@@ -363,9 +365,9 @@
        </Modal>
        {/* 解除冻结菜单模态框 */}
        <Modal
          title={this.state.dict['header.thawmenu']}
          okText={this.state.dict['header.confirm']}
          cancelText={this.state.dict['header.cancel']}
          title={dict['model.thaw'] + dict['model.menu']}
          okText={dict['model.confirm']}
          cancelText={dict['model.cancel']}
          visible={this.state.thawMvisible}
          onOk={this.thawMemuSubmit}
          confirmLoading={this.state.confirmLoading}
@@ -377,18 +379,18 @@
        </Modal>
        {/* 编辑菜单模态框 */}
        <Modal
          title={this.state.dict['header.menu.editTitle']}
          title={dict['model.edit'] + dict['model.menu']}
          visible={this.state.editMvisible}
          footer={[
            <Button key="cancel" onClick={this.editMemuCancel}>{this.state.dict['header.cancel']}</Button>,
            <Button key="confirm" type="primary" onClick={this.editMemuSubmit} loading={this.state.confirmLoading}>{this.state.dict['header.confirm']}</Button>,
            <Button key="delete" type="danger" onClick={this.deleteMemu}>{this.state.dict['header.delete']}</Button>
            <Button key="cancel" onClick={this.editMemuCancel}>{dict['model.cancel']}</Button>,
            <Button key="confirm" type="primary" onClick={this.editMemuSubmit} loading={this.state.confirmLoading}>{dict['model.confirm']}</Button>,
            <Button key="delete" type="danger" onClick={this.deleteMemu}>{dict['model.delete']}</Button>
          ]}
          onCancel={this.editMemuCancel}
          destroyOnClose
        >
          <MenuForm
            dict={this.state.dict}
            dict={dict}
            type="edit"
            menu={this.state.editMenu}
            wrappedComponentRef={(inst) => this.editMenuFormRef = inst}
src/templates/headerconfig/menuform/index.jsx
@@ -17,7 +17,7 @@
      {
        type: 'text',
        key: 'menuName',
        label: this.props.dict['header.menu.menuName'],
        label: this.props.dict['model.menu'] + this.props.dict['model.name'],
        initVal: '',
        required: true,
        readonly: false
@@ -25,28 +25,25 @@
      {
        type: 'select',
        key: 'openType',
        label: this.props.dict['header.menu.openType'],
        label: this.props.dict['model.openway'],
        initVal: 'menu',
        required: true,
        options: [{
          id: 'menu',
          text: this.props.dict['header.menu.openType.menu']
        }, {
          id: 'newpage',
          text: this.props.dict['header.menu.openType.newWindow']
          text: this.props.dict['model.menu']
        // }, {
        //   id: 'newpage',
        //   text: this.props.dict['model.new'] + this.props.dict['model.window']
        }]
      },
      {
        type: 'select',
        key: 'linkUrl',
        hidden: true,
        label: this.props.dict['header.menu.openType.newWindow'],
        label: this.props.dict['model.new'] + this.props.dict['model.window'],
        initVal: 'service',
        required: true,
        options: [{
          id: 'service',
          text: this.props.dict['header.menu.newpage.service']
        }]
        options: []
      }
    ]
  }
src/templates/menuconfig/editsecmenu/index.jsx
@@ -10,8 +10,8 @@
import DragElement from '../menuelement'
import MenuForm from '../menuform'
import Api from '@/api'
import zhCN from '@/locales/zh-CN/header.js'
import enUS from '@/locales/en-US/header.js'
import zhCN from '@/locales/zh-CN/model.js'
import enUS from '@/locales/en-US/model.js'
import './index.scss'
import card1 from '@/assets/img/card-bg2.jpg'
@@ -51,20 +51,22 @@
  }
  handleMenu = (menu) => {
    const { dict } = this.state
    // 菜单编辑:修改、删除,如菜单顺序已改变,提示保存菜单顺序
    const _this = this
    if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) {
      notification.warning({
        top: 92,
        message: this.state.dict['header.menu.presave'],
        message: dict['model.menu.presave'],
        duration: 5
      })
    } else if (menu.type === 'close') {
      confirm({
        title: this.state.dict['header.menu.close'].replace('@M', menu.card.text),
        title: dict['model.menu.close'].replace('@M', menu.card.text),
        content: '',
        okText: this.state.dict['header.confirm'],
        cancelText: this.state.dict['header.cancel'],
        okText: dict['model.confirm'],
        cancelText: dict['model.cancel'],
        onOk() {
          let param = {
            func: 'sPC_MainMenu_Del',
@@ -87,14 +89,14 @@
    } else if (menu.type === 'edit') {
      this.setState({
        visible: true,
        title: this.state.dict['header.menu.editTitle'],
        title: dict['model.edit'] + dict['model.menu'],
        type: 'edit',
        editMenu: menu.card,
        formlist: [
          { // 父级菜单
            type: 'select',
            key: 'parentId',
            label: this.state.dict['header.menu.supMenu'],
            label: dict['model.super'] + dict['model.menu'],
            initVal: this.props.supMenu.MenuID,
            required: true,
            options: this.props.supMenuList
@@ -102,7 +104,7 @@
          { // 菜单名称
            type: 'text',
            key: 'menuName',
            label: this.state.dict['header.menu.menuName'],
            label: dict['model.menu'] + dict['model.name'],
            initVal: menu.card.text,
            required: true,
            readonly: false
@@ -110,7 +112,7 @@
          { // 菜单图标
            type: 'select',
            key: 'icon',
            label: this.state.dict['header.menu.icon'],
            label: dict['model.icon'],
            initVal: menu.card.PageParam.Icon,
            required: true,
            options: [{
@@ -127,17 +129,19 @@
  }
  handleSubBtn = (type) => {
    const { dict } = this.state
    // 操作按钮
    if (type === 'add') { // 添加新菜单
      this.setState({
        visible: true,
        title: this.state.dict['header.menu.addtitle'],
        title: dict['model.add'] + dict['model.menu'],
        type: 'add',
        formlist: [
          { // 父级菜单
            type: 'select',
            key: 'parentId',
            label: this.state.dict['header.menu.supMenu'],
            label: dict['model.super'] + dict['model.menu'],
            initVal: this.props.supMenu.MenuID,
            required: true,
            options: this.props.supMenuList
@@ -145,7 +149,7 @@
          { // 菜单名称
            type: 'text',
            key: 'menuName',
            label: this.state.dict['header.menu.menuName'],
            label: dict['model.menu'] + dict['model.name'],
            initVal: '',
            required: true,
            readonly: false
@@ -153,7 +157,7 @@
          { // 菜单图标
            type: 'select',
            key: 'icon',
            label: this.state.dict['header.menu.icon'],
            label: dict['model.icon'],
            initVal: 'folder',
            required: true,
            options: [{
@@ -208,10 +212,10 @@
        param.secretkey = Utils.encrypt(param.LText, param.timestamp) // md5密钥
        confirm({
          title: this.state.dict['header.menu.resetorder'],
          title: this.state.dict['model.menu.resetorder'],
          content: '',
          okText: this.state.dict['header.confirm'],
          cancelText: this.state.dict['header.cancel'],
          okText: this.state.dict['model.confirm'],
          cancelText: this.state.dict['model.cancel'],
          onOk() {
            return Api.getSystemConfig(param).then(res => {
              if (res.status) {
@@ -319,7 +323,7 @@
    if (this.refs.trawmenu.state.targetKeys.length === 0) {
      notification.warning({
        top: 92,
        message: this.state.dict['header.menu.thawmenu.select'],
        message: this.state.dict['form.required.select'] + this.state.dict['model.menu'],
        duration: 5
      })
    } else {
@@ -382,6 +386,8 @@
  }
  render () {
    const { dict } = this.state
    return (
      <div className="second-edit-box">
        <div className="mask">
@@ -415,14 +421,14 @@
          <Icon type="plus" />
        </div>
        <div className="menu-btn">
          <Button type="primary" onClick={() => {this.handleSubBtn('thaw')}}>{this.state.dict['header.thawmenu']}</Button>
          <Button type="primary" onClick={() => {this.handleSubBtn('confirm')}}>{this.state.dict['header.confirm']}</Button>
          <Button onClick={() => {this.handleSubBtn('close')}}>{this.state.dict['header.close']}</Button>
          <Button type="primary" onClick={() => {this.handleSubBtn('thaw')}}>{dict['model.thaw'] + dict['model.menu']}</Button>
          <Button type="primary" onClick={() => {this.handleSubBtn('confirm')}}>{dict['model.confirm']}</Button>
          <Button onClick={() => {this.handleSubBtn('close')}}>{dict['model.close']}</Button>
        </div>
        <Modal
          title={this.state.title}
          okText={this.state.dict['header.confirm']}
          cancelText={this.state.dict['header.cancel']}
          okText={dict['model.confirm']}
          cancelText={dict['model.cancel']}
          visible={this.state.visible}
          onOk={this.memuHandleSubmit}
          confirmLoading={this.state.confirmLoading}
@@ -430,15 +436,15 @@
        >
          {this.state.formlist &&
          <MenuForm
            dict={this.state.dict}
            dict={dict}
            formlist={this.state.formlist}
            wrappedComponentRef={(inst) => this.menuFormRef = inst}
          />}
        </Modal>
        <Modal
          title={this.state.dict['header.thawmenu']}
          okText={this.state.dict['header.confirm']}
          cancelText={this.state.dict['header.cancel']}
          title={dict['model.thaw'] + dict['model.menu']}
          okText={dict['model.confirm']}
          cancelText={dict['model.cancel']}
          visible={this.state.thawMvisible}
          onOk={this.thawMemuSubmit}
          confirmLoading={this.state.confirmLoading}
src/templates/menuconfig/editthdmenu/index.jsx
@@ -8,8 +8,8 @@
import Api from '@/api'
import { sysTemps } from '@/utils/option.js'
import zhCN from '@/locales/zh-CN/header.js'
import enUS from '@/locales/en-US/header.js'
import zhCN from '@/locales/zh-CN/model.js'
import enUS from '@/locales/en-US/model.js'
import mainsubtable from '@/assets/img/mainsubtable.jpg'
import treepage from '@/assets/img/treepage.jpg'
@@ -104,15 +104,15 @@
    if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) {
      notification.warning({
        top: 92,
        message: this.state.dict['header.menu.presave'],
        message: this.state.dict['model.menu.presave'],
        duration: 5
      })
    } else if (menu.type === 'close') {
      confirm({
        title: this.state.dict['header.menu.close'].replace('@M', menu.card.text),
        title: this.state.dict['model.menu.close'].replace('@M', menu.card.text),
        content: '',
        okText: this.state.dict['header.confirm'],
        cancelText: this.state.dict['header.cancel'],
        okText: this.state.dict['model.confirm'],
        cancelText: this.state.dict['model.cancel'],
        onOk() {
          let param = {
            func: 'sPC_MainMenu_Del',
@@ -200,7 +200,7 @@
          if (_Template.length === 0) {
            notification.warning({
              top: 92,
              message: this.state.dict['header.menu.template.empty'],
              message: this.state.dict['model.menu.template.empty'],
              duration: 5
            })
@@ -250,7 +250,7 @@
      if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) {
        notification.warning({
          top: 92,
          message: this.state.dict['header.menu.presave'],
          message: this.state.dict['model.menu.presave'],
          duration: 5
        })
        return
@@ -288,7 +288,7 @@
      if (!is(fromJS(this.props.menulist), fromJS(this.state.menulist))) {
        notification.warning({
          top: 92,
          message: this.state.dict['header.menu.presave'],
          message: this.state.dict['model.menu.presave'],
          duration: 5
        })
        return
@@ -334,10 +334,10 @@
        param.secretkey = Utils.encrypt(param.LText, param.timestamp) // md5密钥
        confirm({
          title: this.state.dict['header.menu.resetorder'],
          title: this.state.dict['model.menu.resetorder'],
          content: '',
          okText: this.state.dict['header.confirm'],
          cancelText: this.state.dict['header.cancel'],
          okText: this.state.dict['model.confirm'],
          cancelText: this.state.dict['model.cancel'],
          onOk() {
            return Api.getSystemConfig(param).then(res => {
              if (res.status) {
@@ -366,7 +366,7 @@
    if (this.refs.trawmenu.state.targetKeys.length === 0) {
      notification.warning({
        top: 92,
        message: this.state.dict['header.menu.thawmenu.select'],
        message: this.state.dict['form.required.select'] + this.state.dict['model.menu'],
        duration: 5
      })
    } else {
@@ -748,6 +748,7 @@
  }
  render () {
    const { dict } = this.state
    return (
      <div className="third-edit-box">
        {!this.state.tabview ?
@@ -787,14 +788,14 @@
          <Icon type="plus" />
        </div>
        <div className="menu-btn">
          <Button type="primary" onClick={() => {this.handleSubBtn('thaw')}}>{this.state.dict['header.thawmenu']}</Button>
          <Button type="primary" onClick={() => {this.handleSubBtn('confirm')}}>{this.state.dict['header.confirm']}</Button>
          <Button onClick={() => {this.handleSubBtn('close')}}>{this.state.dict['header.close']}</Button>
          <Button type="primary" onClick={() => {this.handleSubBtn('thaw')}}>{dict['model.thaw'] + dict['model.menu']}</Button>
          <Button type="primary" onClick={() => {this.handleSubBtn('confirm')}}>{dict['model.confirm']}</Button>
          <Button onClick={() => {this.handleSubBtn('close')}}>{dict['model.close']}</Button>
        </div>
        {this.state.tabview === 'template' ?
          <div className="editboard">
            <div className="workplace">
              <Button className="top-btn mk-yellow" onClick={this.exittabview}>{this.state.dict['header.cancel']}</Button>
              <Button className="top-btn mk-yellow" onClick={this.exittabview}>{dict['model.cancel']}</Button>
              {this.state.tabview === 'template' && <Tabs defaultActiveKey="1">
                <TabPane tab="系统模板" key="1">
                  <Row>
@@ -902,9 +903,9 @@
        <Preview cancel={this.cancelPrePicture} preview={this.state.preview} template={this.state.pretemplate} confirm={this.useTemplate}/>
        {/* 解冻菜单模态框 */}
        <Modal
          title={this.state.dict['header.thawmenu']}
          okText={this.state.dict['header.confirm']}
          cancelText={this.state.dict['header.cancel']}
          title={dict['model.thaw'] + dict['model.menu']}
          okText={dict['model.confirm']}
          cancelText={dict['model.cancel']}
          visible={this.state.thawMvisible}
          onOk={this.thawMemuSubmit}
          confirmLoading={this.state.confirmLoading}
@@ -916,9 +917,9 @@
        </Modal>
        {/* 添加系统菜单 */}
        <Modal
          title={this.state.sysMenu && this.state.sysMenu.isSystem ? this.state.dict['header.menu.tadd'] : this.state.dict['header.menu.tupdate']}
          okText={this.state.dict['header.confirm']}
          cancelText={this.state.dict['header.cancel']}
          title={this.state.sysMenu && this.state.sysMenu.isSystem ? dict['model.add'] + dict['model.menu'] : dict['model.update'] + dict['model.menu']}
          okText={dict['model.confirm']}
          cancelText={dict['model.cancel']}
          visible={this.state.handleMVisible}
          onOk={this.memuSubmit}
          confirmLoading={this.state.confirmLoading}
@@ -927,7 +928,7 @@
        >
          <MenuForm
            menu={this.state.sysMenu}
            dict={this.state.dict}
            dict={dict}
            wrappedComponentRef={(inst) => this.menuFormRef = inst}
          />
        </Modal>
src/templates/modalconfig/index.jsx
@@ -165,7 +165,7 @@
        {
          type: 'text',
          key: 'supMenu',
          label: this.state.dict['header.menu.supMenu'],
          label: this.state.dict['model.super'] + this.state.dict['model.menu'],
          initVal: _menu.MenuName,
          required: true,
          readonly: true
@@ -697,7 +697,7 @@
    confirm({
      content: `确定删除<<${card.label}>>吗?`,
      okText: this.state.dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      cancelText: this.state.dict['model.cancel'],
      onOk() {
        let _config = JSON.parse(JSON.stringify(_this.state.config))
@@ -807,7 +807,7 @@
      confirm({
        content: '尚未提交,确定放弃保存吗?',
        okText: this.state.dict['model.confirm'],
        cancelText: this.state.dict['header.cancel'],
        cancelText: this.state.dict['model.cancel'],
        onOk() {
          _this.handleViewBack()
        },
@@ -1123,7 +1123,7 @@
    confirm({
      content: `确定删除分组<<${group.label}>>吗?`,
      okText: this.state.dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      cancelText: this.state.dict['model.cancel'],
      onOk() {
        let _config = JSON.parse(JSON.stringify(_this.state.config))
        _config.groups = _config.groups.filter(item => !(item.uuid === group.uuid))
@@ -1321,8 +1321,8 @@
          <div className="setting">
            <Card title={this.state.dict['header.menu.form.configurable']} bordered={false} extra={
              <div>
                <Button type="primary" onClick={this.submitConfig} loading={this.state.menuloading}>{this.state.dict['header.save']}</Button>
                <Button onClick={this.cancelConfig}>{this.state.dict['header.return']}</Button>
                <Button type="primary" onClick={this.submitConfig} loading={this.state.menuloading}>{this.state.dict['model.save']}</Button>
                <Button onClick={this.cancelConfig}>{this.state.dict['model.back']}</Button>
              </div>
            } style={{ width: '100%' }}>
              <Icon type="setting" onClick={this.changeSetting} />
@@ -1373,7 +1373,7 @@
                <div className="ant-modal-footer">
                  <div>
                    <button type="button" className="ant-btn">
                      <span>{this.state.dict['header.cancel']}</span>
                      <span>{this.state.dict['model.cancel']}</span>
                    </button>
                    <button type="button" className="ant-btn ant-btn-primary">
                      <span>{this.state.dict['model.confirm']}</span>
@@ -1411,7 +1411,7 @@
          maskClosable={false}
          style={{minWidth: '900px', maxWidth: '1200px'}}
          onOk={this.addFieldSubmit}
          cancelText={this.state.dict['header.close']}
          cancelText={this.state.dict['model.close']}
          onCancel={() => { this.setState({ tableVisible: false }) }}
          destroyOnClose
        >
@@ -1446,9 +1446,9 @@
          visible={this.state.closeVisible}
          onCancel={() => { this.setState({closeVisible: false}) }}
          footer={[
            <Button key="save" className="mk-btn mk-green" loading={this.state.closeloading} onClick={this.submitConfig}>{this.state.dict['header.save']}</Button>,
            <Button key="confirm" className="mk-btn mk-yellow" onClick={this.handleViewBack}>{this.state.dict['header.notsave']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({closeVisible: false}) }}>{this.state.dict['header.cancel']}</Button>
            <Button key="save" className="mk-btn mk-green" loading={this.state.closeloading} onClick={this.submitConfig}>{this.state.dict['model.save']}</Button>,
            <Button key="confirm" className="mk-btn mk-yellow" onClick={this.handleViewBack}>{this.state.dict['model.notsave']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({closeVisible: false}) }}>{this.state.dict['model.cancel']}</Button>
          ]}
          destroyOnClose
        >
src/templates/sharecomponent/actioncomponent/index.jsx
@@ -547,7 +547,7 @@
    confirm({
      content: dict['model.confirm'] + dict['model.delete'] + ` - ${card.label} ?`,
      okText: dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      cancelText: this.state.dict['model.cancel'],
      onOk() {
        let _actionlist = fromJS(_this.state.actionlist).toJS()
@@ -891,7 +891,7 @@
          footer={[
            hasbtncrtinter ? <CreateInterface key="interface" dict={dict} ref="btnCreatInterface" trigger={this.btnCreatInterface}/> : null,
            card && !card.copyType ? <CreateFunc key="create" dict={dict} ref="btnCreatFunc" trigger={this.creatFunc}/> : null,
            <Button key="cancel" onClick={this.editModalCancel}>{dict['header.cancel']}</Button>,
            <Button key="cancel" onClick={this.editModalCancel}>{dict['model.cancel']}</Button>,
            <Button key="confirm" type="primary" loading={copying} onClick={this.handleSubmit}>{dict['model.confirm']}</Button>
          ]}
          destroyOnClose
@@ -914,7 +914,7 @@
          width={'75vw'}
          maskClosable={false}
          style={{minWidth: '900px', maxWidth: '1200px'}}
          okText={dict['header.submit']}
          okText={dict['model.submit']}
          onOk={this.verifySubmit}
          onCancel={() => { this.setState({ profVisible: false }) }}
          destroyOnClose
src/templates/sharecomponent/actioncomponent/verifyexcelin/columnform/index.jsx
@@ -1,6 +1,6 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { Form, Row, Col, Select, Button, Input, InputNumber } from 'antd'
import { Form, Row, Col, Select, Button, Input, InputNumber, Radio } from 'antd'
import './index.scss'
@@ -99,6 +99,7 @@
  }
  render() {
    const { dict } = this.props
    const { getFieldDecorator } = this.props.form
    const formItemLayout = {
      labelCol: {
@@ -117,33 +118,33 @@
      <Form {...formItemLayout} className="verify-form">
        <Row gutter={24}>
          <Col span={7}>
            <Form.Item label={'Column'}>
            <Form.Item label={dict['model.form.field']}>
              {getFieldDecorator('Column', {
                initialValue: '',
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.input'] + 'Column!'
                    message: dict['form.required.input'] + dict['model.form.field'] + '!'
                  }
                ]
              })(<Input placeholder="" autoComplete="off" />)}
            </Form.Item>
          </Col>
          <Col span={7}>
            <Form.Item label={'Text'}>
            <Form.Item label={dict['model.name']}>
              {getFieldDecorator('Text', {
                initialValue: '',
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.input'] + 'Text!'
                    message: this.props.dict['form.required.input'] + dict['model.name'] + '!'
                  }
                ]
              })(<Input placeholder="" autoComplete="off" />)}
            </Form.Item>
          </Col>
          <Col span={7}>
            <Form.Item label={'类型'}>
            <Form.Item label={dict['model.form.type']}>
              {getFieldDecorator('type', {
                initialValue: 'Nvarchar(50)'
              })(
@@ -164,18 +165,18 @@
          </Col>
          <Col span={3} className="add">
            <Button onClick={this.handleConfirm} type="primary" className="mk-green">
              保存
              {dict['model.save']}
            </Button>
          </Col>
          <Col span={7}>
            <Form.Item label={'是否必填'}>
            <Form.Item label={dict['model.required']}>
              {getFieldDecorator('required', {
                initialValue: 'true'
              })(
                <Select disabled={this.state.locked}>
                  <Select.Option value="false"> 否 </Select.Option>
                  <Select.Option value="true"> 是 </Select.Option>
                </Select>
                <Radio.Group disabled={this.state.locked}>
                  <Radio value="true">{dict['model.true']}</Radio>
                  <Radio value="false">{dict['model.false']}</Radio>
                </Radio.Group>
              )}
            </Form.Item>
          </Col>
src/templates/sharecomponent/actioncomponent/verifyexcelin/index.jsx
@@ -27,29 +27,29 @@
    systemScripts: [],
    excelColumns: [
      {
        title: 'Column',
        title: this.props.dict['model.form.field'],
        dataIndex: 'Column',
        width: '16%',
        editable: true
      },
      {
        title: 'Text',
        title: this.props.dict['model.name'],
        dataIndex: 'Text',
        width: '19%',
        editable: true
      },
      {
        title: '类型',
        title: this.props.dict['model.form.type'],
        dataIndex: 'type',
        width: '12%',
        editable: true
      },
      {
        title: '是否必填',
        title: this.props.dict['model.required'],
        dataIndex: 'required',
        width: '12%',
        editable: true,
        render: (text, record) => record.required === 'true' ? '是' : '否'
        render: (text, record) => record.required === 'true' ? this.props.dict['model.true'] : this.props.dict['model.false']
      },
      {
        title: '最小值',
@@ -76,7 +76,7 @@
              <Popconfirm
                title={this.props.dict['header.form.query.delete']}
                okText={this.props.dict['model.confirm']}
                cancelText={this.props.dict['header.cancel']}
                cancelText={this.props.dict['model.cancel']}
                onConfirm={() => this.handleDelete(record, 'columns')
              }>
                <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
@@ -134,7 +134,7 @@
            <Popconfirm
              title={this.props.dict['header.form.query.delete']}
              okText={this.props.dict['model.confirm']}
              cancelText={this.props.dict['header.cancel']}
              cancelText={this.props.dict['model.cancel']}
              onConfirm={() => this.handleDelete(record, 'unique')
            }>
              <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
@@ -199,7 +199,7 @@
            <Popconfirm
              title={this.props.dict['header.form.query.delete']}
              okText={this.props.dict['model.confirm']}
              cancelText={this.props.dict['header.cancel']}
              cancelText={this.props.dict['model.cancel']}
              onConfirm={() => this.handleDelete(record, 'scripts')
            }>
              <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
@@ -570,7 +570,7 @@
            confirm({
              content: `存在未保存项,确定提交吗?`,
              okText: this.props.dict['model.confirm'],
              cancelText: this.props.dict['header.cancel'],
              cancelText: this.props.dict['model.cancel'],
              onOk() {
                resolve(_verify)
              },
src/templates/sharecomponent/actioncomponent/verifyexcelout/columnform/index.jsx
@@ -47,6 +47,7 @@
  }
  render() {
    const { dict } = this.props
    const { getFieldDecorator } = this.props.form
    const formItemLayout = {
      labelCol: {
@@ -63,39 +64,39 @@
      <Form {...formItemLayout} className="verify-form">
        <Row gutter={24}>
          <Col span={7}>
            <Form.Item label={'Column'}>
            <Form.Item label={dict['model.form.field']}>
              {getFieldDecorator('Column', {
                initialValue: '',
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.input'] + 'Column!'
                    message: dict['form.required.input'] + dict['model.form.field'] + '!'
                  }
                ]
              })(<Input placeholder="" autoComplete="off" />)}
            </Form.Item>
          </Col>
          <Col span={7}>
            <Form.Item label={'Text'}>
            <Form.Item label={dict['model.name']}>
              {getFieldDecorator('Text', {
                initialValue: '',
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.input'] + 'Text!'
                    message: dict['form.required.input'] + dict['model.name'] + '!'
                  }
                ]
              })(<Input placeholder="" autoComplete="off" />)}
            </Form.Item>
          </Col>
          <Col span={7}>
            <Form.Item label={'Width'}>
            <Form.Item label={dict['model.form.columnWidth']}>
              {getFieldDecorator('Width', {
                initialValue: 20,
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.input'] + 'Width!'
                    message: this.props.dict['form.required.input'] + dict['model.form.columnWidth'] + '!'
                  }
                ]
              })(<InputNumber min={5} max={200} precision={0} />)}
@@ -106,18 +107,6 @@
              保存
            </Button>
          </Col>
          {/* <Col span={7}>
            <Form.Item label={'类型'}>
              {getFieldDecorator('type', {
                initialValue: 'text'
              })(
                <Select onChange={this.typeChange}>
                  <Select.Option value="text"> text </Select.Option>
                  <Select.Option value="number"> number </Select.Option>
                </Select>
              )}
            </Form.Item>
          </Col> */}
        </Row>
      </Form>
    )
src/templates/sharecomponent/actioncomponent/verifyexcelout/index.jsx
@@ -19,17 +19,17 @@
    verify: {},
    excelColumns: [
      {
        title: 'Column',
        title: this.props.dict['model.form.field'],
        dataIndex: 'Column',
        width: '25%'
      },
      {
        title: 'Text',
        title: this.props.dict['model.name'],
        dataIndex: 'Text',
        width: '25%'
      },
      {
        title: 'Width',
        title: this.props.dict['model.form.columnWidth'],
        dataIndex: 'Width',
        width: '25%'
      },
@@ -46,7 +46,7 @@
              <Popconfirm
                title={this.props.dict['header.form.query.delete']}
                okText={this.props.dict['model.confirm']}
                cancelText={this.props.dict['header.cancel']}
                cancelText={this.props.dict['model.cancel']}
                onConfirm={() => this.handleDelete(record, 'columns')
              }>
                <span style={{color: '#1890ff', cursor: 'pointer'}}><Icon type="delete" /></span>
src/templates/sharecomponent/actioncomponent/verifyprint/editable/index.jsx
@@ -119,7 +119,7 @@
              <Popconfirm
                title={props.dict['header.form.query.delete']}
                okText={props.dict['model.confirm']}
                cancelText={props.dict['header.cancel']}
                cancelText={props.dict['model.cancel']}
                onConfirm={() => this.handleDelete(record.key)
              }>
                <span style={{color: '#1890ff', cursor: 'pointer'}}><Icon type="delete" /></span>
src/templates/sharecomponent/cardcomponent/index.jsx
@@ -278,7 +278,7 @@
    confirm({
      content: dict['model.confirm'] + dict['model.delete'] + ` - ${cell.content} ?`,
      okText: dict['model.confirm'],
      cancelText: dict['header.cancel'],
      cancelText: dict['model.cancel'],
      onOk() {
        let _details = fromJS(card.details).toJS()
@@ -297,7 +297,7 @@
    confirm({
      content: dict['model.confirm'] + dict['model.delete'] + '?',
      okText: dict['model.confirm'],
      cancelText: dict['header.cancel'],
      cancelText: dict['model.cancel'],
      onOk() {
        let _subelement = fromJS(_this.props.card.subelement).toJS()
        _subelement = _subelement.filter(_type => _type !== type)
src/templates/sharecomponent/chartgroupcomponent/index.jsx
@@ -197,7 +197,7 @@
    confirm({
      content: dict['model.confirm'] + dict['model.delete'] + ` ${plot.title} ?`,
      okText: dict['model.confirm'],
      cancelText: dict['header.cancel'],
      cancelText: dict['model.cancel'],
      onOk() {
        let _chartlist = fromJS(_this.state.chartlist).toJS()
        let _chartview = _this.state.chartview
src/templates/sharecomponent/columncomponent/colspanform/index.jsx
@@ -77,13 +77,13 @@
      <Form {...formItemLayout} className="commontable-cospan-column-form" id="columncolspan">
        <Row gutter={24}>
          <Col span={12}>
            <Form.Item label={this.props.dict['model.form.name']}>
            <Form.Item label={this.props.dict['model.name']}>
              {getFieldDecorator('label', {
                initialValue: this.props.card.label,
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.input'] + this.props.dict['model.form.name'] + '!'
                    message: this.props.dict['form.required.input'] + this.props.dict['model.name'] + '!'
                  },
                  {
                    max: formRule.input.max,
@@ -94,13 +94,13 @@
            </Form.Item>
          </Col>
          <Col span={12}>
            <Form.Item label={this.props.dict['header.form.type']}>
            <Form.Item label={this.props.dict['model.form.type']}>
              {getFieldDecorator('type', {
                initialValue: this.props.dict['model.form.colspan'],
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.input'] + this.props.dict['header.form.type'] + '!'
                    message: this.props.dict['form.required.input'] + this.props.dict['model.form.type'] + '!'
                  }
                ]
              })(<Input placeholder="" autoComplete="off" disabled={true}/>)}
@@ -128,13 +128,13 @@
            </Form.Item>
          </Col>
          <Col span={12}>
            <Form.Item label={this.props.dict['header.form.columnWidth']}>
            <Form.Item label={this.props.dict['model.form.columnWidth']}>
              {getFieldDecorator('Width', {
                initialValue: this.props.card.Width,
                rules: [
                  {
                    required: true,
                    message: this.props.dict['form.required.input'] + this.props.dict['header.form.columnWidth'] + '!'
                    message: this.props.dict['form.required.input'] + this.props.dict['model.form.columnWidth'] + '!'
                  }
                ]
              })(<InputNumber min={1} max={1000} precision={0} />)}
@@ -152,8 +152,8 @@
                ]
              })(
                <Radio.Group>
                  <Radio value="true">{this.props.dict['header.form.true']}</Radio>
                  <Radio value="false">{this.props.dict['header.form.false']}</Radio>
                  <Radio value="true">{this.props.dict['model.true']}</Radio>
                  <Radio value="false">{this.props.dict['model.false']}</Radio>
                </Radio.Group>
              )}
            </Form.Item>
src/templates/sharecomponent/columncomponent/gridbtnform/index.jsx
@@ -16,7 +16,7 @@
      {
        type: 'text',
        key: 'label',
        label: this.props.dict['model.form.name'],
        label: this.props.dict['model.name'],
        initVal: this.props.card.label,
        required: true
      },
@@ -41,7 +41,7 @@
        type: 'number',
        key: 'Width',
        decimal: 0,
        label: this.props.dict['header.form.columnWidth'],
        label: this.props.dict['model.form.columnWidth'],
        initVal: this.props.card.Width,
        required: true
      },
src/templates/sharecomponent/columncomponent/index.jsx
@@ -311,7 +311,7 @@
    confirm({
      content: dict['model.confirm'] + dict['model.delete'] + ` - ${card.label} ?`,
      okText: dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      cancelText: this.state.dict['model.cancel'],
      onOk() {
        let _columnlist = fromJS(_this.state.columnlist).toJS()
@@ -529,7 +529,7 @@
          width={'75vw'}
          maskClosable={false}
          style={{minWidth: '900px', maxWidth: '1200px'}}
          okText={dict['header.submit']}
          okText={dict['model.submit']}
          onOk={this.markSubmit}
          onCancel={() => { this.setState({ modaltype: '' }) }}
          destroyOnClose
src/templates/sharecomponent/columncomponent/index.scss
@@ -41,6 +41,7 @@
        height: 100%;
        .ant-table-column-sorters {
          padding: 0px 8px 12px;
          white-space: nowrap;
        }
        .ant-table-column-fields {
          padding: 0px 8px 5px;
src/templates/sharecomponent/columncomponent/markcolumn/index.jsx
@@ -119,7 +119,7 @@
              <Popconfirm
                title={this.props.dict['header.form.query.delete']}
                okText={this.props.dict['model.confirm']}
                cancelText={this.props.dict['header.cancel']}
                cancelText={this.props.dict['model.cancel']}
                onConfirm={() => this.handleDelete(record)
              }>
                <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
src/templates/sharecomponent/fieldscomponent/editcard/index.jsx
@@ -54,7 +54,7 @@
        <div className="base" onClick={this.changeSelect}>
          <Icon type="check" />
          <p title={card.field}>{this.props.dict['model.form.field']}: <span>{card.field}</span></p>
          <p title={card.label}>{this.props.dict['model.form.name']}: <span>{card.label}</span></p>
          <p title={card.label}>{this.props.dict['model.name']}: <span>{card.label}</span></p>
        </div>
        {type === 'search' ?
          <Radio.Group onChange={this.changeType} value={card.type} disabled={!card.selected}>
src/templates/sharecomponent/fieldscomponent/index.jsx
@@ -239,7 +239,7 @@
          width={'65vw'}
          maskClosable={false}
          style={{minWidth: '900px', maxWidth: '1200px'}}
          cancelText={dict['header.close']}
          cancelText={dict['model.close']}
          onOk={this.addFieldSubmit}
          onCancel={() => { // 取消添加
            this.setState({
src/templates/sharecomponent/searchcomponent/index.jsx
@@ -246,7 +246,7 @@
    confirm({
      content: dict['model.confirm'] + dict['model.delete'] + ` - ${card.label} ?`,
      okText: dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      cancelText: this.state.dict['model.cancel'],
      onOk() {
        let _searchlist = fromJS(_this.state.searchlist).toJS()
src/templates/sharecomponent/searchcomponent/searcheditable/index.jsx
@@ -118,7 +118,7 @@
              <Popconfirm
                title={props.dict['header.form.query.delete']}
                okText={props.dict['model.confirm']}
                cancelText={props.dict['header.cancel']}
                cancelText={props.dict['model.cancel']}
                onConfirm={() => this.handleDelete(record.key)
              }>
                <span style={{color: '#1890ff', cursor: 'pointer'}}><Icon type="delete" /></span>
@@ -229,7 +229,7 @@
              <Popconfirm
                title={this.props.dict['header.form.query.delete']}
                okText={this.props.dict['model.confirm']}
                cancelText={this.props.dict['header.cancel']}
                cancelText={this.props.dict['model.cancel']}
                onConfirm={() => this.handleDelete(record.key)
              }>
                <span style={{color: '#1890ff', cursor: 'pointer'}}><Icon type="delete" /></span>
src/templates/sharecomponent/searchcomponent/searchform/index.jsx
@@ -162,7 +162,7 @@
        } else if (form.key === 'field' && type === 'text') {
          form.tooltip = this.state.textTooltip
        } else if (form.key === 'field' && type === 'group') {
          form.label = dict['header.form.type'] + dict['model.form.field']
          form.label = dict['model.form.type'] + dict['model.form.field']
        }
        form.hidden = !_options.includes(form.key)
        return form
@@ -247,7 +247,7 @@
            if (value === 'text') {
              form.tooltip = this.state.textTooltip
            } else if (value === 'group') {
              form.label = dict['header.form.type'] + dict['model.form.field']
              form.label = dict['model.form.type'] + dict['model.form.field']
            }
          }
src/templates/sharecomponent/settingcomponent/index.jsx
@@ -192,7 +192,7 @@
          footer={[
            <CreateInterface key="interface" dict={dict} ref="tableCreatInterface" trigger={this.tableCreatInterface}/>,
            <CreateFunc key="create" dict={dict} ref="funcCreatComponent" trigger={this.tableCreatFunc}/>,
            <Button key="cancel" onClick={() => { this.setState({ visible: false }) }}>{this.state.dict['header.cancel']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({ visible: false }) }}>{this.state.dict['model.cancel']}</Button>,
            <Button key="confirm" type="primary" loading={this.state.loading} onClick={this.settingSave}>{this.state.dict['model.confirm']}</Button>
          ]}
          destroyOnClose
src/templates/sharecomponent/settingcomponent/settingform/index.jsx
@@ -77,7 +77,7 @@
            <Popconfirm
              title={this.props.dict['header.form.query.delete']}
              okText={this.props.dict['model.confirm']}
              cancelText={this.props.dict['header.cancel']}
              cancelText={this.props.dict['model.cancel']}
              onConfirm={() => this.handleDelete(record)
            }>
              <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
@@ -303,7 +303,7 @@
          confirm({
            content: `存在未保存项,确定提交吗?`,
            okText: this.props.dict['model.confirm'],
            cancelText: this.props.dict['header.cancel'],
            cancelText: this.props.dict['model.cancel'],
            onOk() {
              _this.sqlverify(_setting, resolve, reject)
            },
@@ -552,7 +552,7 @@
        confirm({
          content: `存在未保存项,确定切换吗?`,
          okText: this.props.dict['model.confirm'],
          cancelText: this.props.dict['header.cancel'],
          cancelText: this.props.dict['model.cancel'],
          onOk() {
            _this.setState({
              view: 'normal'
src/templates/sharecomponent/tabscomponent/index.jsx
@@ -227,7 +227,7 @@
    confirm({
      content: `确定删除<<${card.label}>>吗?`,
      okText: this.state.dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      cancelText: this.state.dict['model.cancel'],
      onOk() {
        tabgroups = tabgroups.map(_group => {
          if (_group.uuid === group.uuid) {
@@ -268,7 +268,7 @@
    confirm({
      content: `确定新建标签组吗?`,
      okText: this.state.dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      cancelText: this.state.dict['model.cancel'],
      onOk() {
        if (_tabgroups.length === 1) {
          _tabgroups.forEach(group => {
@@ -302,7 +302,7 @@
    confirm({
      content: `确定删除标签组吗?`,
      okText: this.state.dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      cancelText: this.state.dict['model.cancel'],
      onOk() {
        _tabgroups = _tabgroups.filter(_group => _group.uuid !== group.uuid)
src/templates/sharecomponent/treesettingcomponent/index.jsx
@@ -160,7 +160,7 @@
          footer={[
            <CreateInterface key="interface" dict={dict} ref="tableCreatInterface" trigger={this.tableCreatInterface}/>,
            <CreateFunc key="create" dict={dict} ref="funcCreatComponent" trigger={this.tableCreatFunc}/>,
            <Button key="cancel" onClick={() => { this.setState({ visible: false }) }}>{this.state.dict['header.cancel']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({ visible: false }) }}>{this.state.dict['model.cancel']}</Button>,
            <Button key="confirm" type="primary" loading={this.state.loading} onClick={this.settingSave}>{this.state.dict['model.confirm']}</Button>
          ]}
          destroyOnClose
src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx
@@ -74,7 +74,7 @@
            <Popconfirm
              title={this.props.dict['header.form.query.delete']}
              okText={this.props.dict['model.confirm']}
              cancelText={this.props.dict['header.cancel']}
              cancelText={this.props.dict['model.cancel']}
              onConfirm={() => this.handleDelete(record)
            }>
              <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
@@ -238,7 +238,7 @@
          confirm({
            content: `存在未保存项,确定提交吗?`,
            okText: this.props.dict['model.confirm'],
            cancelText: this.props.dict['header.cancel'],
            cancelText: this.props.dict['model.cancel'],
            onOk() {
              _this.sqlverify(_setting, resolve, reject)
            },
@@ -422,7 +422,7 @@
        confirm({
          content: `存在未保存项,确定切换吗?`,
          okText: this.props.dict['model.confirm'],
          cancelText: this.props.dict['header.cancel'],
          cancelText: this.props.dict['model.cancel'],
          onOk() {
            _this.setState({
              view: 'normal'
src/templates/subtableconfig/index.jsx
@@ -785,7 +785,7 @@
      confirm({
        content: '菜单尚未提交,确定放弃保存吗?',
        okText: this.state.dict['model.confirm'],
        cancelText: this.state.dict['header.cancel'],
        cancelText: this.state.dict['model.cancel'],
        onOk() {
          _this.handleViewBack()
        },
@@ -1159,8 +1159,8 @@
              <div>
                <EditComponent dict={this.state.dict} type="subtable" config={this.state.config} thawButtons={this.state.thawButtons} refresh={this.updateConfig}/>
                <Switch className="big" checkedChildren="启" unCheckedChildren="停" checked={this.state.config.enabled} onChange={this.onEnabledChange} />
                <Button type="primary" onClick={this.submitConfig} loading={this.state.menuloading}>{this.state.dict['header.save']}</Button>
                <Button onClick={this.cancelConfig}>{this.state.dict['header.return']}</Button>
                <Button type="primary" onClick={this.submitConfig} loading={this.state.menuloading}>{this.state.dict['model.save']}</Button>
                <Button onClick={this.cancelConfig}>{this.state.dict['model.back']}</Button>
              </div>
            } style={{ width: '100%' }}>
              <SettingComponent
@@ -1247,9 +1247,9 @@
          visible={this.state.closeVisible}
          onCancel={() => { this.setState({closeVisible: false}) }}
          footer={[
            <Button key="save" className="mk-btn mk-green" loading={this.state.menucloseloading} onClick={this.submitConfig}>{this.state.dict['header.save']}</Button>,
            <Button key="confirm" className="mk-btn mk-yellow" onClick={this.handleViewBack}>{this.state.dict['header.notsave']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({closeVisible: false}) }}>{this.state.dict['header.cancel']}</Button>
            <Button key="save" className="mk-btn mk-green" loading={this.state.menucloseloading} onClick={this.submitConfig}>{this.state.dict['model.save']}</Button>,
            <Button key="confirm" className="mk-btn mk-yellow" onClick={this.handleViewBack}>{this.state.dict['model.notsave']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({closeVisible: false}) }}>{this.state.dict['model.cancel']}</Button>
          ]}
          destroyOnClose
        >
src/templates/treepageconfig/index.jsx
@@ -539,7 +539,7 @@
      confirm({
        content: '菜单尚未提交,确定放弃保存吗?',
        okText: this.state.dict['model.confirm'],
        cancelText: this.state.dict['header.cancel'],
        cancelText: this.state.dict['model.cancel'],
        onOk() {
          _this.props.handleView()
        },
@@ -829,8 +829,8 @@
              <div>
                <EditComponent dict={this.state.dict} type="TreePage" config={this.state.config} MenuID={this.props.menu.MenuID} refresh={this.editConfig}/>
                <Switch className="big" checkedChildren="启" unCheckedChildren="停" checked={this.state.config.enabled} onChange={this.onEnabledChange} />
                <Button type="primary" onClick={this.submitConfig} loading={this.state.menuloading}>{this.state.dict['header.save']}</Button>
                <Button onClick={this.cancelConfig}>{this.state.dict['header.return']}</Button>
                <Button type="primary" onClick={this.submitConfig} loading={this.state.menuloading}>{this.state.dict['model.save']}</Button>
                <Button onClick={this.cancelConfig}>{this.state.dict['model.back']}</Button>
              </div>
            } style={{ width: '100%' }}>
              <Row gutter={16}>
@@ -892,9 +892,9 @@
          visible={this.state.closeVisible}
          onCancel={() => { this.setState({closeVisible: false}) }}
          footer={[
            <Button key="save" className="mk-btn mk-green" loading={this.state.menucloseloading} onClick={this.submitConfig}>{this.state.dict['header.save']}</Button>,
            <Button key="notsave" className="mk-btn mk-yellow" onClick={this.notsave}>{this.state.dict['header.notsave']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({closeVisible: false}) }}>{this.state.dict['header.cancel']}</Button>
            <Button key="save" className="mk-btn mk-green" loading={this.state.menucloseloading} onClick={this.submitConfig}>{this.state.dict['model.save']}</Button>,
            <Button key="notsave" className="mk-btn mk-yellow" onClick={this.notsave}>{this.state.dict['model.notsave']}</Button>,
            <Button key="cancel" onClick={() => { this.setState({closeVisible: false}) }}>{this.state.dict['model.cancel']}</Button>
          ]}
          destroyOnClose
        >
src/templates/zshare/createinterface/index.jsx
@@ -153,10 +153,10 @@
        required: true,
        options: [{
          value: 'Y',
          text: this.props.dict['header.form.true']
          text: this.props.dict['model.true']
        }, {
          value: 'N',
          text: this.props.dict['header.form.false']
          text: this.props.dict['model.false']
        }]
      }, {
        type: 'radio',
@@ -166,10 +166,10 @@
        required: true,
        options: [{
          value: 'Y',
          text: this.props.dict['header.form.true']
          text: this.props.dict['model.true']
        }, {
          value: 'N',
          text: this.props.dict['header.form.false']
          text: this.props.dict['model.false']
        }]
      }]
    })
src/templates/zshare/editcard/index.jsx
@@ -54,7 +54,7 @@
        <div className="base" onClick={this.changeSelect}>
          <Icon type="check" />
          <p title={card.field}>{this.props.dict['model.form.field']}: <span>{card.field}</span></p>
          <p title={card.label}>{this.props.dict['model.form.name']}: <span>{card.label}</span></p>
          <p title={card.label}>{this.props.dict['model.name']}: <span>{card.label}</span></p>
        </div>
        {type === 'search' ?
          <Radio.Group onChange={this.changeType} value={card.type} disabled={!card.selected}>
src/templates/zshare/editcomponent/index.jsx
@@ -206,7 +206,7 @@
        <Modal
          title={this.props.dict['header.form.thawbutton']}
          okText={this.props.dict['model.confirm']}
          cancelText={this.props.dict['header.cancel']}
          cancelText={this.props.dict['model.cancel']}
          visible={this.state.thawVisible}
          onOk={this.thawBtnSubmit}
          onCancel={() => {this.setState({thawVisible: false, thawbtnlist: null})}}
src/templates/zshare/formconfig.jsx
@@ -65,8 +65,8 @@
      required: false,
      readonly: false,
      options: [
        { value: 'true', text: Formdict['header.form.true'] },
        { value: 'false', text: Formdict['header.form.false'] }
        { value: 'true', text: Formdict['model.true'] },
        { value: 'false', text: Formdict['model.false'] }
      ]
    },
    {
@@ -183,8 +183,8 @@
      readonly: false,
      forbid: type !== 'main',
      options: [
        { value: 'true', text: Formdict['header.form.true'] },
        { value: 'false', text: Formdict['header.form.false'] }
        { value: 'true', text: Formdict['model.true'] },
        { value: 'false', text: Formdict['model.false'] }
      ]
    },
    {
@@ -196,8 +196,8 @@
      readonly: false,
      forbid: type !== 'main',
      options: [
        { value: 'true', text: Formdict['header.form.true'] },
        { value: 'false', text: Formdict['header.form.false'] }
        { value: 'true', text: Formdict['model.true'] },
        { value: 'false', text: Formdict['model.false'] }
      ]
    },
    {
@@ -220,8 +220,8 @@
      required: false,
      readonly: false,
      options: [
        { value: 'true', text: Formdict['header.form.true'] },
        { value: 'false', text: Formdict['header.form.false'] }
        { value: 'true', text: Formdict['model.true'] },
        { value: 'false', text: Formdict['model.false'] }
      ]
    },
    {
@@ -298,8 +298,8 @@
      required: false,
      readonly: false,
      options: [
        { value: 'true', text: Formdict['header.form.true'] },
        { value: 'false', text: Formdict['header.form.false'] }
        { value: 'true', text: Formdict['model.true'] },
        { value: 'false', text: Formdict['model.false'] }
      ]
    },
    {
@@ -497,8 +497,8 @@
      required: false,
      readonly: false,
      options: [
        { value: 'true', text: Formdict['header.form.true'] },
        { value: 'false', text: Formdict['header.form.false'] }
        { value: 'true', text: Formdict['model.true'] },
        { value: 'false', text: Formdict['model.false'] }
      ]
    },
    {
@@ -509,8 +509,8 @@
      required: false,
      readonly: false,
      options: [
        { value: 'true', text: Formdict['header.form.true'] },
        { value: 'false', text: Formdict['header.form.false'] }
        { value: 'true', text: Formdict['model.true'] },
        { value: 'false', text: Formdict['model.false'] }
      ]
    }
  ]
@@ -544,7 +544,7 @@
    {
      type: 'text',
      key: 'MenuName',
      label: Formdict['header.menu.menuName'],
      label: Formdict['model.menu'] + Formdict['model.name'],
      initVal: menu.MenuName,
      required: true,
      readonly: false
@@ -552,7 +552,7 @@
    {
      type: 'text',
      key: 'MenuNo',
      label: Formdict['header.menu.menuNo'],
      label: Formdict['model.menu'] + Formdict['model.param'],
      initVal: menu.MenuNo,
      required: true,
      readonly: false
@@ -560,7 +560,7 @@
    {
      type: 'select',
      key: 'opentype',
      label: Formdict['header.menu.openType'],
      label: Formdict['model.openway'],
      initVal: menu.PageParam.OpenType,
      required: true,
      options: [{
@@ -602,7 +602,7 @@
    {
      type: 'text',
      key: 'MenuNo',
      label: Formdict['header.menu.menuNo'],
      label: Formdict['model.menu'] + Formdict['model.param'],
      initVal: config.tabNo,
      required: true,
      readonly: false
@@ -628,7 +628,7 @@
    {
      type: 'text',
      key: 'label',
      label: Formdict['model.form.name'],
      label: Formdict['model.name'],
      initVal: card.label || '',
      required: true,
      readonly: false
@@ -645,7 +645,7 @@
    {
      type: 'select',
      key: 'type',
      label: Formdict['header.form.type'],
      label: Formdict['model.form.type'],
      initVal: card.type,
      required: true,
      options: [{
@@ -713,10 +713,10 @@
      initVal: card.setAll || 'false',
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -864,10 +864,10 @@
      initVal: card.required || 'false',
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -904,10 +904,10 @@
      tooltip: '数据查询时,类型字段是否作为参数传递,类型字段对应值为 {"日": "day", "周": "week", "月": "month", "季": "quarter", "年": "year", "自定义": "customized"}。',
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    }
  ]
@@ -1114,10 +1114,10 @@
      required: true,
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -1185,10 +1185,10 @@
      required: true,
      options: [{
        value: 'close',
        text: Formdict['header.close']
        text: Formdict['model.close']
      }, {
        value: 'notclose',
        text: Formdict['header.notclose']
        text: Formdict['model.notclose']
      }]
    },
    {
@@ -1199,10 +1199,10 @@
      required: true,
      options: [{
        value: 'close',
        text: Formdict['header.close']
        text: Formdict['model.close']
      }, {
        value: 'notclose',
        text: Formdict['header.notclose']
        text: Formdict['model.notclose']
      }]
    },
    {
@@ -1261,7 +1261,7 @@
    {
      type: 'select',
      key: 'icon',
      label: Formdict['model.form.icon'],
      label: Formdict['model.icon'],
      initVal: card.icon,
      required: false,
      options: []
@@ -1289,10 +1289,10 @@
      required: false,
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -1323,7 +1323,7 @@
    {
      type: 'text',
      key: 'label',
      label: Formdict['model.form.name'],
      label: Formdict['model.name'],
      initVal: card.label,
      required: true
    },
@@ -1338,7 +1338,7 @@
    {
      type: 'select',
      key: 'type',
      label: Formdict['header.form.type'],
      label: Formdict['model.form.type'],
      initVal: card.type,
      required: true,
      options: [{
@@ -1361,7 +1361,7 @@
    {
      type: 'text',
      key: 'nameField',
      label: Formdict['model.form.name'] + Formdict['model.form.field'],
      label: Formdict['model.name'] + Formdict['model.form.field'],
      initVal: card.nameField,
      required: false,
      readonly: false
@@ -1372,7 +1372,7 @@
      min: 1,
      max: 1000,
      decimal: 0,
      label: Formdict['header.form.columnWidth'],
      label: Formdict['model.form.columnWidth'],
      initVal: card.Width,
      required: true
    },
@@ -1384,10 +1384,10 @@
      required: true,
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -1398,10 +1398,10 @@
      required: true,
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -1412,10 +1412,10 @@
      required: true,
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -1506,10 +1506,10 @@
      required: false,
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -1594,10 +1594,10 @@
      required: true,
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -1893,10 +1893,10 @@
      forbid: !['line', 'bar'].includes(card.chartType),
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -2027,7 +2027,7 @@
    {
      type: 'text',
      key: 'label',
      label: Formdict['model.form.name'],
      label: Formdict['model.name'],
      initVal: card.label,
      required: true,
      readonly: false
@@ -2043,7 +2043,7 @@
    {
      type: 'select',
      key: 'type',
      label: Formdict['header.form.type'],
      label: Formdict['model.form.type'],
      initVal: card.type,
      required: true,
      options: [{
@@ -2110,10 +2110,10 @@
      initVal: card.setAll || 'false',
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -2297,10 +2297,10 @@
      initVal: card.readonly || 'false',
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -2310,23 +2310,23 @@
      initVal: card.required || 'true',
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
      type: 'radio',
      key: 'hidden',
      label: Formdict['model.required'],
      label: Formdict['model.hidden'],
      initVal: card.hidden || 'false',
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -2350,10 +2350,10 @@
      initVal: card.readin || 'true',
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    
@@ -2364,10 +2364,10 @@
      initVal: card.encryption || 'false',
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -2378,10 +2378,10 @@
      tooltip: '提交时,是否截取首尾的空白字符。',
      options: [{
        value: 'true',
        text: Formdict['header.form.true']
        text: Formdict['model.true']
      }, {
        value: 'false',
        text: Formdict['header.form.false']
        text: Formdict['model.false']
      }]
    },
    {
@@ -2435,7 +2435,7 @@
    {
      type: 'select',
      key: 'icon',
      label: Formdict['header.menu.icon'],
      label: Formdict['model.icon'],
      initVal: card.icon || '',
      required: false,
      options: [{
src/templates/zshare/modalform/modaleditable/index.jsx
@@ -159,7 +159,7 @@
              <Popconfirm
                title={props.dict['header.form.query.delete']}
                okText={props.dict['model.confirm']}
                cancelText={props.dict['header.cancel']}
                cancelText={props.dict['model.cancel']}
                onConfirm={() => this.handleDelete(record.key)
              }>
                <span style={{color: '#1890ff', cursor: 'pointer'}}><Icon type="delete" /></span>
@@ -365,7 +365,7 @@
              <Popconfirm
                title={this.props.dict['header.form.query.delete']}
                okText={this.props.dict['model.confirm']}
                cancelText={this.props.dict['header.cancel']}
                cancelText={this.props.dict['model.cancel']}
                onConfirm={() => this.handleDelete(record.key)
              }>
                <span style={{color: '#1890ff', cursor: 'pointer'}}><Icon type="delete" /></span>
src/templates/zshare/verifycard/index.jsx
@@ -90,7 +90,7 @@
            <Popconfirm
              title={this.props.dict['header.form.query.delete']}
              okText={this.props.dict['model.confirm']}
              cancelText={this.props.dict['header.cancel']}
              cancelText={this.props.dict['model.cancel']}
              onConfirm={() => this.handleDelete(record, 'unique')
            }>
              <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
@@ -136,7 +136,7 @@
            <Popconfirm
              title={this.props.dict['header.form.query.delete']}
              okText={this.props.dict['model.confirm']}
              cancelText={this.props.dict['header.cancel']}
              cancelText={this.props.dict['model.cancel']}
              onConfirm={() => this.handleDelete(record, 'unique')
            }>
              <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
@@ -202,7 +202,7 @@
            <Popconfirm
              title={this.props.dict['header.form.query.delete']}
              okText={this.props.dict['model.confirm']}
              cancelText={this.props.dict['header.cancel']}
              cancelText={this.props.dict['model.cancel']}
              onConfirm={() => this.handleDelete(record, 'contrast')
            }>
              <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
@@ -266,7 +266,7 @@
            <Popconfirm
              title={this.props.dict['header.form.query.delete']}
              okText={this.props.dict['model.confirm']}
              cancelText={this.props.dict['header.cancel']}
              cancelText={this.props.dict['model.cancel']}
              onConfirm={() => this.handleDelete(record, 'customverify')
            }>
              <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
@@ -329,7 +329,7 @@
            <Popconfirm
              title={this.props.dict['header.form.query.delete']}
              okText={this.props.dict['model.confirm']}
              cancelText={this.props.dict['header.cancel']}
              cancelText={this.props.dict['model.cancel']}
              onConfirm={() => this.handleDelete(record, 'scripts')
            }>
              <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
@@ -433,7 +433,7 @@
            <Popconfirm
              title={this.props.dict['header.form.query.delete']}
              okText={this.props.dict['model.confirm']}
              cancelText={this.props.dict['header.cancel']}
              cancelText={this.props.dict['model.cancel']}
              onConfirm={() => this.handleDelete(record, 'ordercode')
            }>
              <span className="operation-btn" style={{color: '#ff4d4f'}}><Icon type="delete" /></span>
@@ -1573,7 +1573,7 @@
        confirm({
          content: `存在未保存项,确定提交吗?`,
          okText: this.props.dict['model.confirm'],
          cancelText: this.props.dict['header.cancel'],
          cancelText: this.props.dict['model.cancel'],
          onOk() {
            resolve(verify)
          },
src/utils/utils.js
@@ -1171,7 +1171,7 @@
        /* 同类数据验证 */
        Set @tbid=''
        Select top 1 @tbid='X' from (select distinct ${item.field},1 as n from ${datasource} inner join (select ID from  dbo.SplitComma(@ID@)) sp on tb.${primaryKey}=sp.ID ) a group by ${item.field} having sum(n)>1
        Select top 1 @tbid='X' from (select distinct ${item.field},1 as n from ${datasource} inner join (select ID from  dbo.SplitComma(@ID@)) sp on tb.${primaryKey}=sp.ID ) a having sum(n)>1
        
        If @tbid!=''
        Begin