king
2022-09-13 5aca7a37c93a8e4dc5349b11d3a291693fd9e456
2022-09-13
25个文件已修改
1个文件已添加
1813 ■■■■ 已修改文件
src/assets/css/design.scss 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/css/main.scss 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/mob/components/formdragelement/card.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/searchcomponent/settingform/index.jsx 180 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcalcomponent/index.jsx 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcalcomponent/index.scss 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcalcomponent/verifycard/index.jsx 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcomponent/index.jsx 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcomponent/index.scss 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx 1224 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcomponent/settingform/datasource/index.scss 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcomponent/settingform/index.jsx 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcomponent/settingform/index.scss 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/settingcomponent/settingform/simplescript/index.jsx 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/treesettingcomponent/index.jsx 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/treesettingcomponent/index.scss 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/zshare/customscript/index.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/zshare/verifycard/index.jsx 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/utils.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basedesign/index.jsx 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/menudesign/index.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mobdesign/index.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/pcdesign/index.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/popdesign/index.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/tabledesign/index.jsx 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/css/design.scss
New file
@@ -0,0 +1,92 @@
.ant-modal-wrap.mk-pop-modal {
  .ant-modal {
    top: 50px;
  }
  .ant-modal-body {
    padding: 0;
    .mk-com-name {
      position: absolute;
      top: 38px;
      left: 10px;
      color: rgba(0, 0, 0, 0.85);
      font-size: 15px;
    }
    .ant-tabs {
      .ant-tabs-nav-wrap {
        text-align: center;
      }
      .ant-tabs-bar {
        padding-top: 15px;
        .ant-tabs-nav-container {
          font-size: 15px;
        }
      }
      .ant-tabs-content {
        min-height: 50vh;
        max-height: calc(100vh - 210px);
        .ant-tabs-tabpane {
          position: relative;
          overflow-x: hidden;
          overflow-y: auto;
          padding: 0 24px 24px;
        }
        .ant-tabs-tabpane::-webkit-scrollbar {
          width: 7px;
        }
        .ant-tabs-tabpane::-webkit-scrollbar-thumb {
          border-radius: 5px;
          box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.13);
          background: rgba(0, 0, 0, 0.13);
        }
        .ant-tabs-tabpane::-webkit-scrollbar-track {
          box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05);
          border-radius: 3px;
          border: 1px solid rgba(0, 0, 0, 0.07);
          background: rgba(0, 0, 0, 0);
        }
      }
    }
  }
}
.ant-modal {
  .ant-radio-group {
    white-space: nowrap;
    .ant-radio-wrapper {
      margin-right: 4px;
    }
  }
}
// 通行宽度
.mk-through-line2 {
  .ant-form-item-label {
    width: 16.5%;
  }
  .ant-form-item-control-wrapper {
    width: 83.5%;
  }
  .CodeMirror {
    height: 150px;
  }
}
.mk-through-line3 {
  .ant-form-item-label {
    width: 11%;
  }
  .ant-form-item-control-wrapper {
    width: 89%;
  }
  .CodeMirror {
    height: 150px;
  }
}
.mk-color-move {
  .color-sketch-block {
    position: relative;
    top: 7px;
  }
}
src/assets/css/main.scss
@@ -311,59 +311,6 @@
  }
}
.ant-modal-wrap.mk-pop-modal {
  .ant-modal {
    top: 50px;
  }
  .ant-modal-body {
    padding: 0;
    .mk-com-name {
      position: absolute;
      top: 38px;
      left: 10px;
      color: rgba(0, 0, 0, 0.85);
      font-size: 15px;
    }
    .ant-tabs {
      .ant-tabs-nav-wrap {
        text-align: center;
      }
      .ant-tabs-bar {
        padding-top: 15px;
        .ant-tabs-nav-container {
          font-size: 15px;
        }
      }
      .ant-tabs-content {
        min-height: 50vh;
        max-height: calc(100vh - 210px);
        .ant-tabs-tabpane {
          position: relative;
          overflow-x: hidden;
          overflow-y: auto;
          padding: 0 24px 24px;
        }
        .ant-tabs-tabpane::-webkit-scrollbar {
          width: 7px;
        }
        .ant-tabs-tabpane::-webkit-scrollbar-thumb {
          border-radius: 5px;
          box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.13);
          background: rgba(0, 0, 0, 0.13);
        }
        .ant-tabs-tabpane::-webkit-scrollbar-track {
          box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05);
          border-radius: 3px;
          border: 1px solid rgba(0, 0, 0, 0.07);
          background: rgba(0, 0, 0, 0);
        }
      }
    }
  }
}
// 设置模态框样式,规定最大最小高度,重置滚动条
.action-modal {
  .ant-modal {
src/mob/components/formdragelement/card.jsx
@@ -78,7 +78,7 @@
  if (card.type === 'text' || card.type === 'linkMain') {
    formItem = (<div className={'am-list-item input ' + (card.place || '')}><div className="am-list-line"><div className="am-input-label">{card.label}</div><div className={'am-input-control ' + card.cursor}>{card.initval ? card.initval : <span style={{color: '#bcbcbc'}}>{card.placeholder || <span style={{color: 'transparent'}}>input</span>}</span> }</div>{card.scan && card.scan !== 'false' ? <div className="am-list-extra"><ScanOutlined /></div> : null}</div></div>)
  } else if (card.type === 'number') {
    formItem = (<div className={'am-list-item input ' + (card.place || '')}><div className="am-list-line"><div className="am-input-label">{card.label}</div><div className={'am-input-control ' + card.cursor}>{card.initval ? card.initval : <span style={{color: '#bcbcbc'}}><span style={{color: 'transparent'}}>input</span></span> }</div>{card.placeholder ? <div className="am-list-extra" style={{color: '#999999', width: 'auto', lineHeight: 1.5}}>{card.placeholder}</div> : null}</div></div>)
    formItem = (<div className={'am-list-item input ' + (card.place || '')}><div className="am-list-line"><div className="am-input-label">{card.label}</div><div className={'am-input-control ' + card.cursor}>{card.initval || 0}</div>{card.placeholder ? <div className="am-list-extra" style={{color: '#999999', width: 'auto', lineHeight: 1.5, height: '22px'}}>{card.placeholder}</div> : null}</div></div>)
  } else if (card.type === 'number') {
    formItem = (<div className="am-list-item input"><div className="am-list-line"><div className="am-input-label">{card.label}</div><div className={'am-input-control ' + card.cursor}>{card.initval || <span style={{color: 'transparent'}}>input</span>}</div></div></div>)
  } else if (card.type === 'select' || card.type === 'link' || card.type === 'cascader') {
src/templates/sharecomponent/searchcomponent/settingform/index.jsx
@@ -53,97 +53,95 @@
    }
    return (
      <div className="model-table-datasource-setting-form-box">
        <Form {...formItemLayout} className="model-setting-form">
          <Row gutter={24}>
            <Col span={12}>
              <Form.Item label="搜索按钮">
                {getFieldDecorator('show', {
                  initialValue: setting.show || 'true'
                })(
                  <Radio.Group>
                    <Radio value="true">显示</Radio>
                    <Radio value="false">隐藏</Radio>
                  </Radio.Group>
                )}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="高级搜索的展开方式。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  高级搜索
                </Tooltip>
              }>
                {getFieldDecorator('advanceType', {
                  initialValue: setting.advanceType || 'modal'
                })(
                  <Radio.Group onChange={(e) => this.setState({advanceType: e.target.value})}>
                    <Radio value="modal">弹窗</Radio>
                    <Radio value="drawer">抽屉</Radio>
                    <Radio value="pulldown">下拉</Radio>
                  </Radio.Group>
                )}
              </Form.Item>
            </Col>
            {advanceType === 'drawer' ? <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="抽屉展开的方向。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  抽屉方向
                </Tooltip>
              }>
                {getFieldDecorator('drawerPlacement', {
                  initialValue: setting.drawerPlacement || 'right'
                })(
                  <Radio.Group style={{whiteSpace: 'nowrap'}}>
                    <Radio value="right">右侧</Radio>
                    <Radio value="left">左侧</Radio>
                    <Radio value="top">上侧</Radio>
                    <Radio value="bottom">下侧</Radio>
                  </Radio.Group>
                )}
              </Form.Item>
            </Col> : null}
            {advanceType !== 'pulldown' ? <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="高级搜索框的宽度,注:当宽度值小于100时表示占窗口的百分比,大于100时表示宽度的绝对值。当使用上下显示的抽屉时代表抽屉高度。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  弹窗宽度
                </Tooltip>
              }>
                {getFieldDecorator('advanceWidth', {
                  initialValue: setting.advanceWidth || 1000
                })(<InputNumber min={10} max={3000} precision={0} onPressEnter={this.props.inputSubmit}/>)}
              </Form.Item>
            </Col> : null}
            <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="搜索及重置按钮所占比例。栅格布局,每行等分为24列。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  比例
                </Tooltip>
              }>
                {getFieldDecorator('searchRatio', {
                  initialValue: setting.searchRatio || 6,
                })(<InputNumber min={1} max={24} precision={0} onPressEnter={this.props.inputSubmit}/>)}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="搜索按钮距左侧的百分比,参照搜索条件的名称宽度。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  按钮偏移
                </Tooltip>
              }>
                {getFieldDecorator('searchLwidth', {
                  initialValue: setting.searchLwidth !== undefined ? setting.searchLwidth : 33.3,
                })(<InputNumber min={0} max={100} precision={1} onPressEnter={this.props.inputSubmit}/>)}
              </Form.Item>
            </Col>
          </Row>
        </Form>
      </div>
      <Form {...formItemLayout}>
        <Row gutter={24}>
          <Col span={12}>
            <Form.Item label="搜索按钮">
              {getFieldDecorator('show', {
                initialValue: setting.show || 'true'
              })(
                <Radio.Group>
                  <Radio value="true">显示</Radio>
                  <Radio value="false">隐藏</Radio>
                </Radio.Group>
              )}
            </Form.Item>
          </Col>
          <Col span={12}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="高级搜索的展开方式。">
                <QuestionCircleOutlined className="mk-form-tip" />
                高级搜索
              </Tooltip>
            }>
              {getFieldDecorator('advanceType', {
                initialValue: setting.advanceType || 'modal'
              })(
                <Radio.Group onChange={(e) => this.setState({advanceType: e.target.value})}>
                  <Radio value="modal">弹窗</Radio>
                  <Radio value="drawer">抽屉</Radio>
                  <Radio value="pulldown">下拉</Radio>
                </Radio.Group>
              )}
            </Form.Item>
          </Col>
          {advanceType === 'drawer' ? <Col span={12}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="抽屉展开的方向。">
                <QuestionCircleOutlined className="mk-form-tip" />
                抽屉方向
              </Tooltip>
            }>
              {getFieldDecorator('drawerPlacement', {
                initialValue: setting.drawerPlacement || 'right'
              })(
                <Radio.Group style={{whiteSpace: 'nowrap'}}>
                  <Radio value="right">右侧</Radio>
                  <Radio value="left">左侧</Radio>
                  <Radio value="top">上侧</Radio>
                  <Radio value="bottom">下侧</Radio>
                </Radio.Group>
              )}
            </Form.Item>
          </Col> : null}
          {advanceType !== 'pulldown' ? <Col span={12}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="高级搜索框的宽度,注:当宽度值小于100时表示占窗口的百分比,大于100时表示宽度的绝对值。当使用上下显示的抽屉时代表抽屉高度。">
                <QuestionCircleOutlined className="mk-form-tip" />
                弹窗宽度
              </Tooltip>
            }>
              {getFieldDecorator('advanceWidth', {
                initialValue: setting.advanceWidth || 1000
              })(<InputNumber min={10} max={3000} precision={0} onPressEnter={this.props.inputSubmit}/>)}
            </Form.Item>
          </Col> : null}
          <Col span={12}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="搜索及重置按钮所占比例。栅格布局,每行等分为24列。">
                <QuestionCircleOutlined className="mk-form-tip" />
                比例
              </Tooltip>
            }>
              {getFieldDecorator('searchRatio', {
                initialValue: setting.searchRatio || 6,
              })(<InputNumber min={1} max={24} precision={0} onPressEnter={this.props.inputSubmit}/>)}
            </Form.Item>
          </Col>
          <Col span={12}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="搜索按钮距左侧的百分比,参照搜索条件的名称宽度。">
                <QuestionCircleOutlined className="mk-form-tip" />
                按钮偏移
              </Tooltip>
            }>
              {getFieldDecorator('searchLwidth', {
                initialValue: setting.searchLwidth !== undefined ? setting.searchLwidth : 33.3,
              })(<InputNumber min={0} max={100} precision={1} onPressEnter={this.props.inputSubmit}/>)}
            </Form.Item>
          </Col>
        </Row>
      </Form>
    )
  }
}
src/templates/sharecomponent/settingcalcomponent/index.jsx
@@ -83,8 +83,7 @@
      <div className="model-datasource">
        <SettingOutlined onClick={() => this.editDataSource()} />
        <Modal
          wrapClassName="popview-modal"
          title="数据源配置"
          wrapClassName="mk-pop-modal"
          visible={visible}
          width={'75vw'}
          maskClosable={false}
src/templates/sharecomponent/settingcalcomponent/index.scss
@@ -8,79 +8,4 @@
    font-size: 18px;
    padding: 10px;
  }
  .model-input-group-wrapper {
    padding: 0 20px;
    display: inline-block;
    width: 100%;
    text-align: start;
    vertical-align: top;
    margin-bottom: 15px;
    .model-input-wrapper {
      position: relative;
      display: table;
      width: 100%;
      border-collapse: separate;
      border-spacing: 0;
      .model-input-value {
        display: table-cell;
        width: 100%;
        border: 1px solid #d9d9d9;
        border-radius: 4px 0px 0px 4px;
        overflow: hidden;
        text-overflow:ellipsis;
        white-space: nowrap;
        padding: 2px 10px;
        color: #ffffff;
      }
      .model-input-group-addon {
        display: table-cell;
        width: 1px;
        position: relative;
        padding: 0 11px;
        color: rgba(0, 0, 0, 0.65);
        font-weight: normal;
        font-size: 14px;
        line-height: 1;
        text-align: center;
        background-color: #fafafa;
        border: 1px solid #d9d9d9;
        border-radius: 0px 4px 4px 0px;
        white-space: nowrap;
      }
      .model-input-insert {
        display: table-cell;
        width: 100%;
        border: 1px dotted #d9d9d9;
        border-radius: 4px;
        text-align: center;
        cursor: pointer;
        .anticon-plus {
          padding: 6px;
          font-size: 16px;
          color: rgb(38, 194, 129);
        }
      }
    }
    .anticon-setting {
      margin-right: 5px;
      padding: 6px;
      cursor: pointer;
    }
    .anticon-setting:hover {
      color: #1890ff;
    }
    .anticon-close {
      padding: 6px;
      cursor: pointer;
    }
    .anticon-close:hover {
      color: #ff4d4f;
    }
  }
}
src/templates/sharecomponent/settingcalcomponent/verifycard/index.jsx
@@ -119,21 +119,6 @@
  handleEdit = (record) => {
    this.contrastForm.edit(record)
    let node = document.getElementById('model-setting-form-body').parentNode
    if (node && node.scrollTop) {
      let inter = Math.ceil(node.scrollTop / 10)
      let timer = setInterval(() => {
        if (node.scrollTop - inter > 0) {
          node.scrollTop = node.scrollTop - inter
        } else {
          node.scrollTop = 0
          clearInterval(timer)
        }
      }, 10)
    }
  }
  changeTab = (val) => {
@@ -400,7 +385,7 @@
    const { columns, setting, scripts, colColumns, activeKey, loading } = this.state
    return (
      <div className="model-verify-card-box-tab" id="model-setting-form-body">
      <div className="model-verify-card-box-tab">
        {loading && <Spin size="large" />}
        <Tabs activeKey={activeKey} className="verify-card-box" onChange={this.changeTab}>
          <TabPane tab="数据源" key="setting">
@@ -438,7 +423,7 @@
              自定义脚本
              {scripts.length ? <span className="count-tip">{scripts.length}</span> : null}
            </span>
          } key="scripts">
          } key="scripts" id="mk-setting-scripts">
            <CustomScript
              dict={this.props.dict}
              setting={setting}
src/templates/sharecomponent/settingcomponent/index.jsx
@@ -12,7 +12,7 @@
import CreateFunc from '@/templates/zshare/createfunc'
import CreateInterface from '@/templates/zshare/createinterface'
import './index.scss'
// import './index.scss'
class SettingComponent extends Component {
  static propTpyes = {
@@ -181,14 +181,13 @@
    const { dict, visible, search, menu, record } = this.state
    return (
      <div className="model-menu-setting">
        <SettingOutlined onClick={this.changeSetting} />
      <>
        <SettingOutlined style={{position: 'absolute', fontSize: '18px', right: '7px', top: '5px', padding: '10px', zIndex: 1}} onClick={this.changeSetting} />
        {/* 设置全局配置及列表数据源 */}
        <Modal
          wrapClassName="model-table-setting-verify-modal"
          title="数据源配置"
          wrapClassName="mk-pop-modal"
          visible={visible}
          width={900}
          width={'75vw'}
          maskClosable={false}
          onCancel={() => { MKEmitter.emit('modalStatus', false); this.setState({ visible: false, loading: false })}}
          footer={[
@@ -208,7 +207,7 @@
            wrappedComponentRef={(inst) => this.settingRef = inst}
          />
        </Modal>
      </div>
      </>
    )
  }
}
src/templates/sharecomponent/settingcomponent/index.scss
@@ -1,40 +1 @@
.model-menu-setting {
  > .anticon-setting {
    position: absolute;
    font-size: 18px;
    right: 7px;
    top: 5px;
    padding: 10px;
    z-index: 1;
  }
}
.model-table-setting-verify-modal {
  .ant-modal {
    top: 50px;
    padding-bottom: 5px;
    .ant-modal-body {
      max-height: calc(100vh - 190px);
      min-height: 250px;
      overflow-y: auto;
      padding-top: 10px;
    }
    .ant-modal-body::-webkit-scrollbar {
      width: 7px;
    }
    .ant-modal-body::-webkit-scrollbar-thumb {
      border-radius: 5px;
      box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.13);
      background: rgba(0, 0, 0, 0.13);
    }
    .ant-modal-body::-webkit-scrollbar-track {
      box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05);
      border-radius: 3px;
      border: 1px solid rgba(0, 0, 0, 0.07);
      background: rgba(0, 0, 0, 0);
    }
    .ant-empty-normal {
      margin: 5px 0px;
    }
  }
}
src/templates/sharecomponent/settingcomponent/settingform/datasource/index.jsx
@@ -8,7 +8,7 @@
import { formRule } from '@/utils/option.js'
import Utils from '@/utils/utils.js'
import asyncComponent from '@/utils/asyncComponent'
import './index.scss'
// import './index.scss'
const CodeMirror = asyncComponent(() => import('@/templates/zshare/codemirror'))
const MKColor = asyncComponent(() => import('@/tabviews/zshare/mutilform/mkColor'))
@@ -218,618 +218,616 @@
    }
    return (
      <div className="model-table-datasource-setting-form-box">
        <Form {...formItemLayout} className="model-setting-form">
          <Row gutter={24}>
            <Col span={12}>
              <Form.Item label="表名">
                {getFieldDecorator('tableName', {
                  initialValue: setting.tableName || '',
                  rules: [
                    {
                      required: true,
                      message: dict['form.required.input'] + '表名!'
                    },
                    {
                      max: 50,
                      message: '表名最长为50个字符!'
                    }
                  ]
                })(<Input placeholder={''} autoComplete="off" />)}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label="表格属性">
                {getFieldDecorator('tableType', {
                  initialValue: setting.tableType
                })(
                  <Radio.Group onChange={(e) => this.setState({tableType: e.target.value})}>
                    <Radio value="">不可选</Radio>
                    <Radio value="radio">单选</Radio>
                    <Radio value="checkbox">多选</Radio>
                  </Radio.Group>
                )}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label={dict['header.form.intertype']}>
                {getFieldDecorator('interType', {
                  initialValue: interType,
                  rules: [
                    {
                      required: true,
                      message: dict['form.required.select'] + dict['header.form.intertype'] + '!'
                    },
                  ]
                })(
                <Radio.Group style={{whiteSpace: 'nowrap'}} onChange={(e) => {this.onRadioChange(e, 'interType')}}>
                  <Radio value="system">系统</Radio>
                  <Radio value="inner">内部</Radio>
                  <Radio value="outer">外部</Radio>
                  <Radio value="custom">自定义</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col>
            {interType === 'outer' ? <Col span={12}>
              <Form.Item label={dict['header.form.sysInterface']}>
                {getFieldDecorator('sysInterface', {
                  initialValue: sysInterface,
                  rules: [
                    {
                      required: true,
                      message: dict['form.required.select'] + dict['header.form.sysInterface'] + '!'
                    },
                  ]
                })(
                <Radio.Group onChange={(e) => {this.onRadioChange(e, 'sysInterface')}}>
                  <Radio value="true">{dict['model.true']}</Radio>
                  <Radio value="false">{dict['model.false']}</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            {interType === 'custom' ? <Col span={12}>
              <Form.Item label="参数处理">
                {getFieldDecorator('procMode', {
                  initialValue: procMode,
                  rules: [
                    {
                      required: true,
                      message: dict['form.required.select'] + '参数处理方式!'
                    },
                  ]
                })(
                <Radio.Group style={{whiteSpace: 'nowrap'}} onChange={(e) => {this.onRadioChange(e, 'procMode')}}>
                  <Radio value="script">前置脚本</Radio>
                  <Radio value="inner">前置函数</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            {interType === 'custom' && procMode === 'inner' ? <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title={funcTooltip}>
                  <QuestionCircleOutlined className="mk-form-tip" />
                  前置函数
                </Tooltip>
              }>
                {getFieldDecorator('prevFunc', {
                  initialValue: setting.prevFunc || '',
                  rules: [
                    {
                      required: true,
                      message: dict['form.required.input'] + '前置函数!'
                    },
                    {
                      max: formRule.func.max,
                      message: formRule.func.maxMessage
                    },
                    ...funcRules
                  ]
                })(<Input placeholder={''} autoComplete="off" />)}
              </Form.Item>
            </Col> : null}
            {interType === 'outer' || interType === 'custom' ? <Col className="data-source" span={24}>
              <Form.Item label="接口地址">
                {getFieldDecorator('interface', {
                  initialValue: setting.interface || (interType === 'outer' && sysInterface === 'true' ? window.GLOB.mainSystemApi : ''),
                  rules: [
                    {
                      required: interType === 'outer' && sysInterface === 'true' ? false : true,
                      message: dict['form.required.input'] + '接口地址!'
                    },
                  ]
                })(<TextArea rows={2} readOnly={interType === 'outer' && sysInterface === 'true'}/>)}
              </Form.Item>
            </Col> : null}
            {(interType === 'outer' && sysInterface !== 'true') || interType === 'custom' ? <Col className="data-source" span={24}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="正式系统所使用的的接口地址。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  正式地址
                </Tooltip>
              }>
                {getFieldDecorator('proInterface', {
                  initialValue: setting.proInterface || ''
                })(<TextArea rows={2} />)}
              </Form.Item>
            </Col> : null}
            {interType === 'custom' ? <Col span={12}>
              <Form.Item label="请求方式">
                {getFieldDecorator('method', {
                  initialValue: setting.method || 'post',
                  rules: [
                    {
                      required: true,
                      message: dict['form.required.select'] + '请求方式!'
                    },
                  ]
                })(
                <Radio.Group>
                  <Radio value="get">GET</Radio>
                  <Radio value="post">POST</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            {interType === 'custom' ? <Col span={12}>
              <Form.Item label="数据请求">
                {getFieldDecorator('requestMode', {
                  initialValue: requestMode,
                  rules: [
                    {
                      required: true,
                      message: dict['form.required.select'] + '数据请求方式!'
                    },
                  ]
                })(
                <Radio.Group style={{whiteSpace: 'nowrap'}} onChange={(e) => {this.onRadioChange(e, 'requestMode')}}>
                  <Radio value="system">系统函数</Radio>
                  <Radio value="inner">内部函数</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            {interType === 'inner' || (interType === 'custom' && requestMode === 'inner') ? <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title={funcTooltip}>
                  <QuestionCircleOutlined className="mk-form-tip" />
                  内部函数
                </Tooltip>
              }>
                {getFieldDecorator('innerFunc', {
                  initialValue: setting.innerFunc || '',
                  rules: [
                    {
                      required: true,
                      message: dict['form.required.input'] + '内部函数!'
                    },
                    {
                      max: formRule.func.max,
                      message: formRule.func.maxMessage
                    },
                    ...funcRules
                  ]
                })(<Input placeholder={''} autoComplete="off" />)}
              </Form.Item>
            </Col> : null}
            {interType === 'outer' ? <Col span={12}>
              <Form.Item label="外部函数">
                {getFieldDecorator('outerFunc', {
                  initialValue: setting.outerFunc || '',
                  rules: [
                    {
                      pattern: formRule.func.pattern,
                      message: formRule.func.message
                    }, {
                      max: formRule.func.max,
                      message: formRule.func.maxMessage
                    }
                  ]
                })(<Input placeholder={''} autoComplete="off" />)}
              </Form.Item>
            </Col> : null}
            {interType === 'system' || (interType === 'custom' && requestMode === 'system') ? <Col span={24} className="data-source" style={{paddingLeft: '7px'}}>
              <Form.Item help={'数据ID:' + menu.MenuID} labelCol={{xs: { span: 24 }, sm: { span: 4 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 20 }} } label={
                <Tooltip placement="topLeft" title={`使用系统函数时,需填写数据源。注:数据权限替换符 $@ -> /* 或 ''、 @$ -> */ 或 '';查询替换符 $select@ -> /* 或 ''、 @select$ -> */ 或 '';统计替换符 $sum@ -> /* 或 ''、 @sum$ -> */ 或 ''。`}>
                  <QuestionCircleOutlined className="mk-form-tip" />
                  数据源
                </Tooltip>
              }>
                {getFieldDecorator('dataresource', {
                  initialValue: setting.dataresource || ''
                })(<CodeMirror />)}
              </Form.Item>
            </Col> : null}
            {interType === 'system' || (interType === 'custom' && requestMode === 'system') ? <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title={'查询时,搜索条件以where条件拼接进入sql,统计时,将数据源中以“@+搜索字段+@”的内容,以搜索条件中的值进行替换后,提交查询,注:查询类型仅在使用系统函数时有效。'}>
                  <QuestionCircleOutlined className="mk-form-tip" />
                  查询类型
                </Tooltip>
              }>
                {getFieldDecorator('queryType', {
                  initialValue: setting.queryType || 'query'
                })(
                <Radio.Group>
                  <Radio value="query">查询</Radio>
                  <Radio value="statistics">统计</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            {interType === 'system' || (interType === 'custom' && requestMode === 'system') ? <Col span={12}>
              <Form.Item label="默认sql">
                {getFieldDecorator('default', {
                  initialValue: setting.default || 'true'
                })(
                <Radio.Group>
                  <Radio value="true">执行</Radio>
                  <Radio value="false">不执行</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            <Col span={12}>
              <Form.Item label="主键">
                {getFieldDecorator('primaryKey', {
                  initialValue: setting.primaryKey || ''
                })(
                  <Select onChange={this.primaryKeyChange}>
                    <Select.Option key="empty" value="">未设置</Select.Option>
                    {columns.map((option, i) =>
                      <Select.Option key={i} value={option.value}>
                        {option.text}
                      </Select.Option>
                    )}
                  </Select>
                )}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label="默认排序">
                {getFieldDecorator('order', {
                  initialValue: setting.order || 'ID desc',
                  rules: [
                    {
                      required: true,
                      message: dict['form.required.input'] + '默认排序!'
                    },
                    {
                      max: formRule.input.max,
                      message: formRule.input.message
                    }
                  ]
                })(<Input placeholder={'ID asc, UID desc'} autoComplete="off" />)}
              </Form.Item>
            </Col>
            {interType === 'custom' ? <Col span={12}>
              <Form.Item label="回调方式">
                {getFieldDecorator('callbackType', {
                  initialValue: setting.callbackType || 'script'
                })(
                <Radio.Group onChange={(e) => {this.onRadioChange(e, 'callbackType')}}>
                  <Radio value="default">默认脚本</Radio>
                  <Radio value="script">自定义脚本</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            {interType === 'custom' ? <Col span={12}>
              <Form.Item label="回调表名">
                {getFieldDecorator('cbTable', {
                  initialValue: setting.cbTable || '',
                  rules: [
                    {
                      required: true,
                      message: dict['form.required.input'] + '回调表名!'
                    },
                    {
                      max: formRule.input.max,
                      message: formRule.input.message
                    }
                  ]
                })(<Input placeholder={''} autoComplete="off" />)}
              </Form.Item>
            </Col> : null}
            {interType === 'custom' ? <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title={'同步执行:外部接口调用成功后再请求数据;异步执行:外部接口调用与请求数据同时进行。'}>
                  <QuestionCircleOutlined className="mk-form-tip" />
                  执行方式
                </Tooltip>
              }>
                {getFieldDecorator('execType', {
                  initialValue: setting.execType || 'sync'
                })(
                <Radio.Group>
                  <Radio value="sync">同步</Radio>
                  <Radio value="async">异步</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            {interType === 'custom' ? <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title={'如果自定义接口不支持跨域请求,会通过当前系统转发。'}>
                  <QuestionCircleOutlined className="mk-form-tip" />
                  跨域请求
                </Tooltip>
              }>
                {getFieldDecorator('cross', {
                  initialValue: setting.cross || 'true'
                })(
                <Radio.Group>
                  <Radio value="true">支持</Radio>
                  <Radio value="false">不支持</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            {interType === 'custom' ? <Col span={12}>
              <Form.Item label="执行次数">
                {getFieldDecorator('execTime', {
                  initialValue: setting.execTime || 'once'
                })(
                <Radio.Group>
                  <Radio value="always">始终</Radio>
                  <Radio value="once">一次</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            <Col span={12}>
              <Form.Item label="是否分页">
                {getFieldDecorator('laypage', {
                  initialValue: setting.laypage || 'true'
                })(
                <Radio.Group>
                  <Radio value="true">{dict['model.true']}</Radio>
                  <Radio value="false">{dict['model.false']}</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label="初始化">
                {getFieldDecorator('onload', {
                  initialValue: setting.onload || 'true'
                })(
                <Radio.Group>
                  <Radio value="true">加载数据</Radio>
                  <Radio value="false">不加载数据</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col>
            {config.Template === 'CommonTable' ? <Col span={12}>
              <Form.Item label="按钮固定">
                {getFieldDecorator('actionfixed', {
                  initialValue: setting.actionfixed === 'true' || setting.actionfixed === true ? 'true' : 'false'
                })(
                <Radio.Group>
                  <Radio value="true">{dict['model.true']}</Radio>
                  <Radio value="false">{dict['model.false']}</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            {config.Template === 'CommonTable' ? <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title={'含有合并列或表格出现横向滚动时会显示异常,请慎用!'}>
                  <QuestionCircleOutlined className="mk-form-tip" />
                  表头固定
                </Tooltip>
              }>
                {getFieldDecorator('columnfixed', {
                  initialValue: setting.columnfixed === 'true' || setting.columnfixed === true ? 'true' : 'false'
                })(
                <Radio.Group>
                  <Radio value="true">{dict['model.true']}</Radio>
                  <Radio value="false">{dict['model.false']}</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            <Col span={12}>
              <Form.Item label="边框">
                {getFieldDecorator('bordered', {
                  initialValue: setting.bordered || 'true'
                })(
                <Radio.Group>
                  <Radio value="true">有</Radio>
                  <Radio value="false">无</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title={'表格的内边距,从大到小依次递减。'}>
                  <QuestionCircleOutlined className="mk-form-tip" />
                  表格大小
                </Tooltip>
              }>
                {getFieldDecorator('size', {
                  initialValue: setting.size || 'middle'
                })(
                <Radio.Group>
                  <Radio value="default">大</Radio>
                  <Radio value="middle">中</Radio>
                  <Radio value="small">小</Radio>
                  <Radio value="mini">迷你</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label="事务">
                {getFieldDecorator('transaction', {
                  initialValue: setting.transaction || 'false'
                })(
                <Radio.Group>
                  <Radio value="true">使用</Radio>
                  <Radio value="false">不使用</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="使用急速模式时,表格中的标记、双击事件、格式化、行合并、前缀、后缀、字段透视等效果将无效,且数据都会以文本格式显示。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  模式
                </Tooltip>
              }>
                {getFieldDecorator('tableMode', {
                  initialValue: setting.tableMode || 'compatible'
                })(
                <Radio.Group>
                  <Radio value="compatible">兼容</Radio>
                  <Radio value="fast">急速</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="数据加载时,是否显示加载中的遮罩。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  遮罩
                </Tooltip>
              }>
                {getFieldDecorator('mask', {
                  initialValue: setting.mask || 'show'
                })(
                <Radio.Group>
                  <Radio value="show">显示</Radio>
                  <Radio value="hidden">隐藏</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col>
            {/* <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="在搜索条件存在时,是否显示搜索和重置按钮。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  搜索按钮
                </Tooltip>
              }>
                {getFieldDecorator('show', {
                  initialValue: setting.show || 'true'
                })(
                <Radio.Group>
                  <Radio value="true">显示</Radio>
                  <Radio value="false">隐藏</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> */}
            {tableType !== '' ? <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="当按钮执行完成并返回主键值时,默认选中主键值对应行。注:在启用无人值守功能时无效。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  首行选中
                </Tooltip>
              }>
                {getFieldDecorator('selected', {
                  initialValue: setting.selected || 'false'
                })(
                <Radio.Group>
                  <Radio value="false">无</Radio>
                  <Radio value="init">初始化</Radio>
                  <Radio value="always">数据加载</Radio>
                </Radio.Group>)}
              </Form.Item>
            </Col> : null}
            <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="选择分页时有效,默认为10条。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  每页数量
                </Tooltip>
              }>
                {getFieldDecorator('pageSize', {
                  initialValue: setting.pageSize || '',
                })(<InputNumber min={1} max={500} precision={0} />)}
              </Form.Item>
            </Col>
            {/* <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="高级搜索弹窗的宽度,注:当宽度值小于100时表示占窗口的百分比,大于100时表示宽度的绝对值。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  高级搜索
                </Tooltip>
              }>
                {getFieldDecorator('advanceWidth', {
                  initialValue: setting.advanceWidth || 1000
                })(<InputNumber min={10} max={3000} precision={0}/>)}
              </Form.Item>
            </Col> */}
            <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="双击表格中行,触发的按钮。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  双击事件
                </Tooltip>
              }>
                {getFieldDecorator('doubleClick', {
                  initialValue: setting.doubleClick || ''
                })(
                  <Select allowClear>
                    {config.action.map(option =>
                      <Select.Option key={option.uuid} value={option.uuid}>{option.label}</Select.Option>
                    )}
                  </Select>
                )}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="空值时高度自适应。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  table高度
                </Tooltip>
              }>
                {getFieldDecorator('height', {
                  initialValue: setting.height
                })(<InputNumber min={10} max={3000} precision={0}/>)}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="默认值rgba(0, 0, 0, 0.65)">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  字体颜色
                </Tooltip>
              }>
                {getFieldDecorator('color', {
                  initialValue: setting.color
                })(<MKColor config={{initval: setting.color || 'rgba(0, 0, 0, 0.65)'}} />)}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label="字体大小">
                {getFieldDecorator('fontSize', {
                  initialValue: setting.fontSize || 14
                })(<InputNumber min={12} max={50} precision={0}/>)}
              </Form.Item>
            </Col>
            <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="用于控制行数据是否可选择。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  禁用字段
                </Tooltip>
              }>
                {getFieldDecorator('controlField', {
                  initialValue: setting.controlField || ''
                })(
                  <Select allowClear onChange={(val) => this.setState({controlField: val})}>
                    {columns.map((option, i) =>
                      <Select.Option key={i} value={option.value}>
                        {option.text}
                      </Select.Option>
                    )}
                  </Select>
                )}
              </Form.Item>
            </Col>
            {controlField ? <Col span={12}>
              <Form.Item label={
                <Tooltip placement="topLeft" title="当字段值与控制值相等时,行数据会禁用,多个值用逗号分隔。">
                  <QuestionCircleOutlined className="mk-form-tip" />
                  控制值
                </Tooltip>
              }>
                {getFieldDecorator('controlVal', {
                  initialValue: setting.controlVal || ''
                })(<Input autoComplete="off" />)}
              </Form.Item>
            </Col> : null}
          </Row>
        </Form>
      </div>
      <Form {...formItemLayout}>
        <Row gutter={24}>
          <Col span={8}>
            <Form.Item label="表名">
              {getFieldDecorator('tableName', {
                initialValue: setting.tableName || '',
                rules: [
                  {
                    required: true,
                    message: dict['form.required.input'] + '表名!'
                  },
                  {
                    max: 50,
                    message: '表名最长为50个字符!'
                  }
                ]
              })(<Input placeholder={''} autoComplete="off" />)}
            </Form.Item>
          </Col>
          <Col span={8}>
            <Form.Item label={dict['header.form.intertype']}>
              {getFieldDecorator('interType', {
                initialValue: interType,
                rules: [
                  {
                    required: true,
                    message: dict['form.required.select'] + dict['header.form.intertype'] + '!'
                  },
                ]
              })(
              <Radio.Group onChange={(e) => {this.onRadioChange(e, 'interType')}}>
                <Radio value="system">系统</Radio>
                <Radio value="inner">内部</Radio>
                <Radio value="outer">外部</Radio>
                <Radio value="custom">自定义</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col>
          <Col span={8}>
            <Form.Item label="表格属性">
              {getFieldDecorator('tableType', {
                initialValue: setting.tableType
              })(
                <Radio.Group onChange={(e) => this.setState({tableType: e.target.value})}>
                  <Radio value="">不可选</Radio>
                  <Radio value="radio">单选</Radio>
                  <Radio value="checkbox">多选</Radio>
                </Radio.Group>
              )}
            </Form.Item>
          </Col>
          {interType === 'outer' ? <Col span={8}>
            <Form.Item label={dict['header.form.sysInterface']}>
              {getFieldDecorator('sysInterface', {
                initialValue: sysInterface,
                rules: [
                  {
                    required: true,
                    message: dict['form.required.select'] + dict['header.form.sysInterface'] + '!'
                  },
                ]
              })(
              <Radio.Group onChange={(e) => {this.onRadioChange(e, 'sysInterface')}}>
                <Radio value="true">{dict['model.true']}</Radio>
                <Radio value="false">{dict['model.false']}</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          {interType === 'custom' ? <Col span={8}>
            <Form.Item label="参数处理">
              {getFieldDecorator('procMode', {
                initialValue: procMode,
                rules: [
                  {
                    required: true,
                    message: dict['form.required.select'] + '参数处理方式!'
                  },
                ]
              })(
              <Radio.Group onChange={(e) => {this.onRadioChange(e, 'procMode')}}>
                <Radio value="script">前置脚本</Radio>
                <Radio value="inner">前置函数</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          {interType === 'custom' && procMode === 'inner' ? <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title={funcTooltip}>
                <QuestionCircleOutlined className="mk-form-tip" />
                前置函数
              </Tooltip>
            }>
              {getFieldDecorator('prevFunc', {
                initialValue: setting.prevFunc || '',
                rules: [
                  {
                    required: true,
                    message: dict['form.required.input'] + '前置函数!'
                  },
                  {
                    max: formRule.func.max,
                    message: formRule.func.maxMessage
                  },
                  ...funcRules
                ]
              })(<Input placeholder={''} autoComplete="off" />)}
            </Form.Item>
          </Col> : null}
          {interType === 'outer' || interType === 'custom' ? <Col className="mk-through-line3" span={24}>
            <Form.Item label="接口地址">
              {getFieldDecorator('interface', {
                initialValue: setting.interface || (interType === 'outer' && sysInterface === 'true' ? window.GLOB.mainSystemApi : ''),
                rules: [
                  {
                    required: interType === 'outer' && sysInterface === 'true' ? false : true,
                    message: dict['form.required.input'] + '接口地址!'
                  },
                ]
              })(<TextArea rows={2} readOnly={interType === 'outer' && sysInterface === 'true'}/>)}
            </Form.Item>
          </Col> : null}
          {(interType === 'outer' && sysInterface !== 'true') || interType === 'custom' ? <Col className="mk-through-line3" span={24}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="正式系统所使用的的接口地址。">
                <QuestionCircleOutlined className="mk-form-tip" />
                正式地址
              </Tooltip>
            }>
              {getFieldDecorator('proInterface', {
                initialValue: setting.proInterface || ''
              })(<TextArea rows={2} />)}
            </Form.Item>
          </Col> : null}
          {interType === 'custom' ? <Col span={8}>
            <Form.Item label="请求方式">
              {getFieldDecorator('method', {
                initialValue: setting.method || 'post',
                rules: [
                  {
                    required: true,
                    message: dict['form.required.select'] + '请求方式!'
                  },
                ]
              })(
              <Radio.Group>
                <Radio value="get">GET</Radio>
                <Radio value="post">POST</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          {interType === 'custom' ? <Col span={8}>
            <Form.Item label="数据请求">
              {getFieldDecorator('requestMode', {
                initialValue: requestMode,
                rules: [
                  {
                    required: true,
                    message: dict['form.required.select'] + '数据请求方式!'
                  },
                ]
              })(
              <Radio.Group onChange={(e) => {this.onRadioChange(e, 'requestMode')}}>
                <Radio value="system">系统函数</Radio>
                <Radio value="inner">内部函数</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          {interType === 'inner' || (interType === 'custom' && requestMode === 'inner') ? <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title={funcTooltip}>
                <QuestionCircleOutlined className="mk-form-tip" />
                内部函数
              </Tooltip>
            }>
              {getFieldDecorator('innerFunc', {
                initialValue: setting.innerFunc || '',
                rules: [
                  {
                    required: true,
                    message: dict['form.required.input'] + '内部函数!'
                  },
                  {
                    max: formRule.func.max,
                    message: formRule.func.maxMessage
                  },
                  ...funcRules
                ]
              })(<Input placeholder={''} autoComplete="off" />)}
            </Form.Item>
          </Col> : null}
          {interType === 'outer' ? <Col span={8}>
            <Form.Item label="外部函数">
              {getFieldDecorator('outerFunc', {
                initialValue: setting.outerFunc || '',
                rules: [
                  {
                    pattern: formRule.func.pattern,
                    message: formRule.func.message
                  }, {
                    max: formRule.func.max,
                    message: formRule.func.maxMessage
                  }
                ]
              })(<Input placeholder={''} autoComplete="off" />)}
            </Form.Item>
          </Col> : null}
          {interType === 'system' || (interType === 'custom' && requestMode === 'system') ? <Col span={24} className="mk-through-line3" style={{paddingLeft: '7px'}}>
            <Form.Item help={'数据ID:' + menu.MenuID} labelCol={{xs: { span: 24 }, sm: { span: 4 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 20 }} } label={
              <Tooltip placement="topLeft" title={`使用系统函数时,需填写数据源。注:数据权限替换符 $@ -> /* 或 ''、 @$ -> */ 或 '';查询替换符 $select@ -> /* 或 ''、 @select$ -> */ 或 '';统计替换符 $sum@ -> /* 或 ''、 @sum$ -> */ 或 ''。`}>
                <QuestionCircleOutlined className="mk-form-tip" />
                数据源
              </Tooltip>
            }>
              {getFieldDecorator('dataresource', {
                initialValue: setting.dataresource || ''
              })(<CodeMirror />)}
            </Form.Item>
          </Col> : null}
          {interType === 'system' || (interType === 'custom' && requestMode === 'system') ? <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title={'查询时,搜索条件以where条件拼接进入sql,统计时,将数据源中以“@+搜索字段+@”的内容,以搜索条件中的值进行替换后,提交查询,注:查询类型仅在使用系统函数时有效。'}>
                <QuestionCircleOutlined className="mk-form-tip" />
                查询类型
              </Tooltip>
            }>
              {getFieldDecorator('queryType', {
                initialValue: setting.queryType || 'query'
              })(
              <Radio.Group>
                <Radio value="query">查询</Radio>
                <Radio value="statistics">统计</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          {interType === 'system' || (interType === 'custom' && requestMode === 'system') ? <Col span={8}>
            <Form.Item label="默认sql">
              {getFieldDecorator('default', {
                initialValue: setting.default || 'true'
              })(
              <Radio.Group>
                <Radio value="true">执行</Radio>
                <Radio value="false">不执行</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          <Col span={8}>
            <Form.Item label="主键">
              {getFieldDecorator('primaryKey', {
                initialValue: setting.primaryKey || ''
              })(
                <Select onChange={this.primaryKeyChange}>
                  <Select.Option key="empty" value="">未设置</Select.Option>
                  {columns.map((option, i) =>
                    <Select.Option key={i} value={option.value}>
                      {option.text}
                    </Select.Option>
                  )}
                </Select>
              )}
            </Form.Item>
          </Col>
          <Col span={8}>
            <Form.Item label="默认排序">
              {getFieldDecorator('order', {
                initialValue: setting.order || 'ID desc',
                rules: [
                  {
                    required: true,
                    message: dict['form.required.input'] + '默认排序!'
                  },
                  {
                    max: formRule.input.max,
                    message: formRule.input.message
                  }
                ]
              })(<Input placeholder={'ID asc, UID desc'} autoComplete="off" />)}
            </Form.Item>
          </Col>
          {interType === 'custom' ? <Col span={8}>
            <Form.Item label="回调方式">
              {getFieldDecorator('callbackType', {
                initialValue: setting.callbackType || 'script'
              })(
              <Radio.Group onChange={(e) => {this.onRadioChange(e, 'callbackType')}}>
                <Radio value="default">默认脚本</Radio>
                <Radio value="script">自定义脚本</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          {interType === 'custom' ? <Col span={8}>
            <Form.Item label="回调表名">
              {getFieldDecorator('cbTable', {
                initialValue: setting.cbTable || '',
                rules: [
                  {
                    required: true,
                    message: dict['form.required.input'] + '回调表名!'
                  },
                  {
                    max: formRule.input.max,
                    message: formRule.input.message
                  }
                ]
              })(<Input placeholder={''} autoComplete="off" />)}
            </Form.Item>
          </Col> : null}
          {interType === 'custom' ? <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title={'同步执行:外部接口调用成功后再请求数据;异步执行:外部接口调用与请求数据同时进行。'}>
                <QuestionCircleOutlined className="mk-form-tip" />
                执行方式
              </Tooltip>
            }>
              {getFieldDecorator('execType', {
                initialValue: setting.execType || 'sync'
              })(
              <Radio.Group>
                <Radio value="sync">同步</Radio>
                <Radio value="async">异步</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          {interType === 'custom' ? <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title={'如果自定义接口不支持跨域请求,会通过当前系统转发。'}>
                <QuestionCircleOutlined className="mk-form-tip" />
                跨域请求
              </Tooltip>
            }>
              {getFieldDecorator('cross', {
                initialValue: setting.cross || 'true'
              })(
              <Radio.Group>
                <Radio value="true">支持</Radio>
                <Radio value="false">不支持</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          {interType === 'custom' ? <Col span={8}>
            <Form.Item label="执行次数">
              {getFieldDecorator('execTime', {
                initialValue: setting.execTime || 'once'
              })(
              <Radio.Group>
                <Radio value="always">始终</Radio>
                <Radio value="once">一次</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          <Col span={8}>
            <Form.Item label="是否分页">
              {getFieldDecorator('laypage', {
                initialValue: setting.laypage || 'true'
              })(
              <Radio.Group>
                <Radio value="true">{dict['model.true']}</Radio>
                <Radio value="false">{dict['model.false']}</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col>
          <Col span={8}>
            <Form.Item label="初始化">
              {getFieldDecorator('onload', {
                initialValue: setting.onload || 'true'
              })(
              <Radio.Group>
                <Radio value="true">加载数据</Radio>
                <Radio value="false">不加载数据</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col>
          {config.Template === 'CommonTable' ? <Col span={8}>
            <Form.Item label="按钮固定">
              {getFieldDecorator('actionfixed', {
                initialValue: setting.actionfixed === 'true' || setting.actionfixed === true ? 'true' : 'false'
              })(
              <Radio.Group>
                <Radio value="true">{dict['model.true']}</Radio>
                <Radio value="false">{dict['model.false']}</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          {config.Template === 'CommonTable' ? <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title={'含有合并列或表格出现横向滚动时会显示异常,请慎用!'}>
                <QuestionCircleOutlined className="mk-form-tip" />
                表头固定
              </Tooltip>
            }>
              {getFieldDecorator('columnfixed', {
                initialValue: setting.columnfixed === 'true' || setting.columnfixed === true ? 'true' : 'false'
              })(
              <Radio.Group>
                <Radio value="true">{dict['model.true']}</Radio>
                <Radio value="false">{dict['model.false']}</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          <Col span={8}>
            <Form.Item label="边框">
              {getFieldDecorator('bordered', {
                initialValue: setting.bordered || 'true'
              })(
              <Radio.Group>
                <Radio value="true">有</Radio>
                <Radio value="false">无</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col>
          <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title={'表格的内边距,从大到小依次递减。'}>
                <QuestionCircleOutlined className="mk-form-tip" />
                表格大小
              </Tooltip>
            }>
              {getFieldDecorator('size', {
                initialValue: setting.size || 'middle'
              })(
              <Radio.Group>
                <Radio value="default">大</Radio>
                <Radio value="middle">中</Radio>
                <Radio value="small">小</Radio>
                <Radio value="mini">迷你</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col>
          <Col span={8}>
            <Form.Item label="事务">
              {getFieldDecorator('transaction', {
                initialValue: setting.transaction || 'false'
              })(
              <Radio.Group>
                <Radio value="true">使用</Radio>
                <Radio value="false">不使用</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col>
          <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="使用急速模式时,表格中的标记、双击事件、格式化、行合并、前缀、后缀、字段透视等效果将无效,且数据都会以文本格式显示。">
                <QuestionCircleOutlined className="mk-form-tip" />
                模式
              </Tooltip>
            }>
              {getFieldDecorator('tableMode', {
                initialValue: setting.tableMode || 'compatible'
              })(
              <Radio.Group>
                <Radio value="compatible">兼容</Radio>
                <Radio value="fast">急速</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col>
          <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="数据加载时,是否显示加载中的遮罩。">
                <QuestionCircleOutlined className="mk-form-tip" />
                遮罩
              </Tooltip>
            }>
              {getFieldDecorator('mask', {
                initialValue: setting.mask || 'show'
              })(
              <Radio.Group>
                <Radio value="show">显示</Radio>
                <Radio value="hidden">隐藏</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col>
          {/* <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="在搜索条件存在时,是否显示搜索和重置按钮。">
                <QuestionCircleOutlined className="mk-form-tip" />
                搜索按钮
              </Tooltip>
            }>
              {getFieldDecorator('show', {
                initialValue: setting.show || 'true'
              })(
              <Radio.Group>
                <Radio value="true">显示</Radio>
                <Radio value="false">隐藏</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> */}
          {tableType !== '' ? <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="当按钮执行完成并返回主键值时,默认选中主键值对应行。注:在启用无人值守功能时无效。">
                <QuestionCircleOutlined className="mk-form-tip" />
                首行选中
              </Tooltip>
            }>
              {getFieldDecorator('selected', {
                initialValue: setting.selected || 'false'
              })(
              <Radio.Group>
                <Radio value="false">无</Radio>
                <Radio value="init">初始化</Radio>
                <Radio value="always">数据加载</Radio>
              </Radio.Group>)}
            </Form.Item>
          </Col> : null}
          <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="选择分页时有效,默认为10条。">
                <QuestionCircleOutlined className="mk-form-tip" />
                每页数量
              </Tooltip>
            }>
              {getFieldDecorator('pageSize', {
                initialValue: setting.pageSize || '',
              })(<InputNumber min={1} max={500} precision={0} />)}
            </Form.Item>
          </Col>
          {/* <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="高级搜索弹窗的宽度,注:当宽度值小于100时表示占窗口的百分比,大于100时表示宽度的绝对值。">
                <QuestionCircleOutlined className="mk-form-tip" />
                高级搜索
              </Tooltip>
            }>
              {getFieldDecorator('advanceWidth', {
                initialValue: setting.advanceWidth || 1000
              })(<InputNumber min={10} max={3000} precision={0}/>)}
            </Form.Item>
          </Col> */}
          <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="双击表格中行,触发的按钮。">
                <QuestionCircleOutlined className="mk-form-tip" />
                双击事件
              </Tooltip>
            }>
              {getFieldDecorator('doubleClick', {
                initialValue: setting.doubleClick || ''
              })(
                <Select allowClear>
                  {config.action.map(option =>
                    <Select.Option key={option.uuid} value={option.uuid}>{option.label}</Select.Option>
                  )}
                </Select>
              )}
            </Form.Item>
          </Col>
          <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="空值时高度自适应。">
                <QuestionCircleOutlined className="mk-form-tip" />
                table高度
              </Tooltip>
            }>
              {getFieldDecorator('height', {
                initialValue: setting.height
              })(<InputNumber min={10} max={3000} precision={0}/>)}
            </Form.Item>
          </Col>
          <Col span={8}>
            <Form.Item className="mk-color-move" label={
              <Tooltip placement="topLeft" title="默认值rgba(0, 0, 0, 0.65)">
                <QuestionCircleOutlined className="mk-form-tip" />
                字体颜色
              </Tooltip>
            }>
              {getFieldDecorator('color', {
                initialValue: setting.color
              })(<MKColor config={{initval: setting.color || 'rgba(0, 0, 0, 0.65)'}} />)}
            </Form.Item>
          </Col>
          <Col span={8}>
            <Form.Item label="字体大小">
              {getFieldDecorator('fontSize', {
                initialValue: setting.fontSize || 14
              })(<InputNumber min={12} max={50} precision={0}/>)}
            </Form.Item>
          </Col>
          <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="用于控制行数据是否可选择。">
                <QuestionCircleOutlined className="mk-form-tip" />
                禁用字段
              </Tooltip>
            }>
              {getFieldDecorator('controlField', {
                initialValue: setting.controlField || ''
              })(
                <Select allowClear onChange={(val) => this.setState({controlField: val})}>
                  {columns.map((option, i) =>
                    <Select.Option key={i} value={option.value}>
                      {option.text}
                    </Select.Option>
                  )}
                </Select>
              )}
            </Form.Item>
          </Col>
          {controlField ? <Col span={8}>
            <Form.Item label={
              <Tooltip placement="topLeft" title="当字段值与控制值相等时,行数据会禁用,多个值用逗号分隔。">
                <QuestionCircleOutlined className="mk-form-tip" />
                控制值
              </Tooltip>
            }>
              {getFieldDecorator('controlVal', {
                initialValue: setting.controlVal || ''
              })(<Input autoComplete="off" />)}
            </Form.Item>
          </Col> : null}
        </Row>
      </Form>
    )
  }
}
src/templates/sharecomponent/settingcomponent/settingform/datasource/index.scss
@@ -1,22 +0,0 @@
.model-table-datasource-setting-form-box {
  position: relative;
  .model-setting-form {
    .data-source {
      .ant-form-item-label {
        width: 16.5%;
      }
      .ant-form-item-control-wrapper {
        width: 83.5%;
      }
      .CodeMirror {
        height: 150px;
      }
    }
  }
  .color-sketch-block {
    position: relative;
    top: 7px;
  }
}
src/templates/sharecomponent/settingcomponent/settingform/index.jsx
@@ -576,7 +576,7 @@
    const { loading, activeKey, setting, defaultSql, columns, scripts, preScripts, cbScripts, status, regoptions, visible, script, scriptValue } = this.state
    return (
      <div className="model-table-setting-form-box" id="model-setting-form-body">
      <div className="model-table-setting-form-box">
        {loading && <Spin size="large" />}
        <Tabs activeKey={activeKey} onChange={this.changeTab}>
          <TabPane tab="数据源" key="setting">
@@ -596,8 +596,8 @@
              自定义脚本
              {scripts.length ? <span className="count-tip">{scripts.length}</span> : null}
            </span>
          } disabled={!(status.interType === 'system' || (status.interType === 'custom' && status.requestMode === 'system'))} key="scripts">
            <BorderOutlined className="full-scripts" onClick={() => {
          } disabled={!(status.interType === 'system' || (status.interType === 'custom' && status.requestMode === 'system'))} key="scripts" id="mk-setting-scripts">
            {scripts.length ? <BorderOutlined className="full-scripts" onClick={() => {
              if (this.scriptsForm && (this.scriptsForm.state.editItem || (this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))))) {
                notification.warning({
                  top: 92,
@@ -607,7 +607,7 @@
                return
              }
              this.setState({visible: true, script: null, scriptValue: ''})
            }}/>
            }}/> : null}
            <CustomScript
              dict={dict}
              setting={setting}
src/templates/sharecomponent/settingcomponent/settingform/index.scss
@@ -60,10 +60,11 @@
  }
  .full-scripts {
    position: absolute;
    right: 0px;
    top: 18px;
    right: 24px;
    top: 0px;
    font-size: 18px;
    color: #1890ff;
    z-index: 1;
  }
}
src/templates/sharecomponent/settingcomponent/settingform/simplescript/index.jsx
@@ -28,6 +28,7 @@
  }
  state = {
    wrapId: Utils.getuuid(),
    editItem: null,
    loading: false,
    usefulFields: '',
@@ -358,7 +359,7 @@
  }
  scrolltop = () => {
    let node = document.getElementById('model-setting-form-body').parentNode
    let node = document.getElementById(this.state.wrapId).parentNode
    if (node && node.scrollTop) {
      let inter = Math.ceil(node.scrollTop / 10)
@@ -406,7 +407,7 @@
  render() {
    const { setting, scripts } = this.props
    const { getFieldDecorator } = this.props.form
    const { usefulFields, scriptsColumns, systemScripts, urlFields } = this.state
    const { usefulFields, scriptsColumns, systemScripts, urlFields, wrapId } = this.state
    const formItemLayout = {
      labelCol: {
        xs: { span: 24 },
@@ -419,7 +420,7 @@
    }
    return (
      <div className="modal-menu-setting-script">
      <div className="modal-menu-setting-script" id={wrapId}>
        <Form {...formItemLayout}>
          <Row gutter={24}>
            <Col span={4}>
src/templates/sharecomponent/treesettingcomponent/index.jsx
@@ -99,10 +99,9 @@
        <SettingOutlined onClick={this.changeSetting} />
        {/* 设置全局配置及列表数据源 */}
        <Modal
          wrapClassName="model-tree-setting-verify-modal"
          title="数据源配置"
          wrapClassName="mk-pop-modal"
          visible={visible}
          width={900}
          width={'75vw'}
          maskClosable={false}
          onCancel={() => { MKEmitter.emit('modalStatus', false); this.setState({ visible: false })}}
          confirmLoading={loading}
src/templates/sharecomponent/treesettingcomponent/index.scss
@@ -8,33 +8,4 @@
    z-index: 1;
    color: #1890ff;
  }
}
.model-tree-setting-verify-modal {
  .ant-modal {
    top: 50px;
    padding-bottom: 5px;
    .ant-modal-body {
      max-height: calc(100vh - 190px);
      overflow-y: auto;
      padding-top: 10px;
    }
    .ant-modal-body::-webkit-scrollbar {
      width: 7px;
    }
    .ant-modal-body::-webkit-scrollbar-thumb {
      border-radius: 5px;
      box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.13);
      background: rgba(0, 0, 0, 0.13);
    }
    .ant-modal-body::-webkit-scrollbar-track {
      box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05);
      border-radius: 3px;
      border: 1px solid rgba(0, 0, 0, 0.07);
      background: rgba(0, 0, 0, 0);
    }
    .ant-empty-normal {
      margin: 5px 0px;
    }
  }
}
src/templates/sharecomponent/treesettingcomponent/settingform/index.jsx
@@ -249,7 +249,7 @@
    const { activeKey, setting, loading, scripts } = this.state
    return (
      <div className="model-tree-setting-form-box" id="model-setting-form-body">
      <div className="model-tree-setting-form-box">
        {loading && <Spin size="large" />}
        <Tabs activeKey={activeKey} onChange={this.changeTab}>
          <TabPane tab="数据源" key="setting">
@@ -266,7 +266,7 @@
              自定义脚本
              {scripts.length ? <span className="count-tip">{scripts.length}</span> : null}
            </span>
          } key="scripts">
          } key="scripts" id="mk-setting-scripts">
            <CustomScript
              dict={this.props.dict}
              setting={setting}
src/templates/zshare/customscript/index.jsx
@@ -303,7 +303,7 @@
  }
  scrolltop = () => {
    let node = document.getElementById('model-setting-form-body').parentNode
    let node = document.getElementById('mk-setting-scripts')
    if (node && node.scrollTop) {
      let inter = Math.ceil(node.scrollTop / 10)
src/templates/zshare/verifycard/index.jsx
@@ -853,11 +853,14 @@
          if (!_arr.includes('submitdate')) {
            _form.push('submitdate=getdate()')
          }
          if (!_arr.includes('submituserid')) {
            _form.push('submituserid=@userid@')
          }
          if (!_arr.includes('submituser')) {
            _form.push('submituser=@username')
          }
          if (!_arr.includes('submitstaff')) {
            _form.push('submitstaff=@fullname')
          }
          if (!_arr.includes('submituserid')) {
            _form.push('submituserid=@userid@')
          }
        } else {
          if (!_arr.includes('modifydate')) {
@@ -866,6 +869,9 @@
          if (!_arr.includes('modifyuser')) {
            _form.push('modifyuser=@username')
          }
          if (!_arr.includes('modifystaff')) {
            _form.push('modifystaff=@fullname')
          }
          if (!_arr.includes('modifyuserid')) {
            _form.push('modifyuserid=@userid@')
          }
src/utils/utils.js
@@ -1966,11 +1966,14 @@
      if (!_arr.includes('submitdate')) {
        _form.push('submitdate=getdate()')
      }
      if (!_arr.includes('submituserid')) {
        _form.push('submituserid=@userid@')
      }
      if (!_arr.includes('submituser')) {
        _form.push('submituser=@username')
      }
      if (!_arr.includes('submitstaff')) {
        _form.push('submitstaff=@fullname')
      }
      if (!_arr.includes('submituserid')) {
        _form.push('submituserid=@userid@')
      }
    } else {
      if (!_arr.includes('modifydate')) {
@@ -1979,6 +1982,9 @@
      if (!_arr.includes('modifyuser')) {
        _form.push('modifyuser=@username')
      }
      if (!_arr.includes('modifystaff')) {
        _form.push('modifystaff=@fullname')
      }
      if (!_arr.includes('modifyuserid')) {
        _form.push('modifyuserid=@userid@')
      }
src/views/basedesign/index.jsx
@@ -6,6 +6,8 @@
import Api from '@/api'
import asyncComponent from '@/utils/asyncComponent'
import asyncLoadComponent from '@/utils/asyncLoadComponent'
import '@/assets/css/design.scss'
import './index.scss'
const _locale = sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS
src/views/menudesign/index.jsx
@@ -19,6 +19,7 @@
import MenuUtils from '@/utils/utils-custom.js'
import asyncComponent from '@/utils/asyncComponent'
import '@/assets/css/design.scss'
import './index.scss'
const { Panel } = Collapse
src/views/mobdesign/index.jsx
@@ -17,6 +17,7 @@
import MenuUtils from '@/utils/utils-custom.js'
import asyncComponent from '@/utils/asyncComponent'
import '@/assets/css/design.scss'
import './index.scss'
const { Panel } = Collapse
src/views/pcdesign/index.jsx
@@ -17,6 +17,7 @@
import MenuUtils from '@/utils/utils-custom.js'
import asyncComponent from '@/utils/asyncComponent'
import '@/assets/css/design.scss'
import './index.scss'
const { Panel } = Collapse
src/views/popdesign/index.jsx
@@ -13,6 +13,7 @@
// import antdEnUS from 'antd/es/locale/en_US'
import antdZhCN from 'antd/es/locale/zh_CN'
import '@/assets/css/design.scss'
import './index.scss'
const _locale = antdZhCN
src/views/tabledesign/index.jsx
@@ -13,6 +13,7 @@
import MKEmitter from '@/utils/events.js'
import asyncComponent from '@/utils/asyncComponent'
import '@/assets/css/design.scss'
import './index.scss'
const { Panel } = Collapse