king
2020-09-07 27eb6c35533be910488869c393e2c89e3c0a5b20
src/templates/sharecomponent/settingcomponent/index.jsx
@@ -7,7 +7,6 @@
import DevUtils from '@/utils/devutils.js'
import zhCN from '@/locales/zh-CN/model.js'
import enUS from '@/locales/en-US/model.js'
import { getSettingForm } from '@/templates/zshare/formconfig'
import SettingForm from './settingform'
import CreateFunc from '@/templates/zshare/createfunc'
@@ -17,7 +16,6 @@
class SettingComponent extends Component {
  static propTpyes = {
    type: PropTypes.string,          // 菜单类型
    mainsearch: PropTypes.any,       // 主表的搜索条件,当子表设置接收主表条件时有效
    MenuID: PropTypes.string,        // 菜单ID
    config: PropTypes.object,        // 菜单配置信息
@@ -28,6 +26,7 @@
  state = {
    dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
    menu: null,          // 菜单信息
    search: null,        // 搜索条件,包括主表搜索
    formlist: null,      // 表单信息
    visible: false,      // 模态框控制
    loading: false       // 设置信息验证保存中
@@ -37,39 +36,19 @@
   * @description 全局设置触发
   */
  changeSetting = () => {
    const { MenuID, config, type, permFuncField, mainsearch } = this.props
    const { MenuID, config, mainsearch } = this.props
    let menu = {MenuID: MenuID, MenuName: config.MenuName, MenuNo: config.MenuNo}
    let _columns = fromJS(config.columns).toJS()
    let primaryKey = config.setting.primaryKey || ''
    if (!primaryKey || _columns.filter(column => column.field === primaryKey).length === 0) {
      _columns.forEach(col => {
        if (col.field.toLowerCase() === 'id') {
          primaryKey = col.field
        }
      })
    }
    _columns = _columns.filter(item => item.field && item.type !== 'colspan')
    _columns = _columns.map(item => {
      return {
        value: item.field,
        text: item.label
      }
    })
    // _columns.unshift({value: '', text: '未设置'})
    let _config = fromJS(config).toJS()
    let _search = fromJS(config.search).toJS()
    if (mainsearch) { // 综合主页搜索及子表搜索条件
      _config.search = [..._config.search, ...mainsearch]
      _search = [...mainsearch, ..._search]
    }
    this.setState({
      visible: true,
      formlist: getSettingForm(config.setting, permFuncField, MenuID, primaryKey, _columns, type),
      menu: menu,
      config: _config
      search: _search,
      menu: menu
    })
  }
@@ -87,8 +66,8 @@
        visible: false,
        loading: false
      })
      delete res.customScript // 清除整理后的自定义脚本
      res.actionfixed = res.actionfixed === 'true'
      res.columnfixed = res.columnfixed === 'true'
      this.props.updatesetting({...config, setting: res})
    }, () => {
@@ -105,18 +84,18 @@
    const { config } = this.props
    const { menu } = this.state
    this.settingRef.handleConfirm().then(setting => {
      if (!(setting.interType === 'inner') || !setting.innerFunc) {
    this.settingRef.handleConfirm(true).then(setting => {
      if (setting.interType !== 'inner' || !setting.innerFunc) {
        notification.warning({
          top: 92,
          message: '接口类型为-内部,且存在内部函数时,才可以创建存储过程!',
          message: '使用内部接口,且存在内部函数时,才可以创建存储过程!',
          duration: 5
        })
        return
      }
      let _config = {...config, setting: setting}
      let newLText = Utils.formatOptions(DevUtils.getTableFunc(setting, menu, _config)) // 创建存储过程sql
      let DelText = Utils.formatOptions(DevUtils.dropfunc(setting.innerFunc))          // 删除存储过程sql
@@ -132,14 +111,14 @@
   * @description 创建表格接口(读出)
   */
  tableCreatInterface = () => {
    const { config, type } = this.props
    const { config } = this.props
    const { menu } = this.state
    this.settingRef.handleConfirm().then(setting => {
      if (setting.interType !== 'inner' || setting.innerFunc) {
    this.settingRef.handleConfirm(true).then(setting => {
      if (setting.interType !== 'system') {
        notification.warning({
          top: 92,
          message: '接口类型为-内部,且不存在内部函数时,才可以创建接口!',
          message: '使用系统接口时,才可以创建接口!',
          duration: 5
        })
        return
@@ -147,7 +126,7 @@
      let _config = {...config, setting: setting}
      let _menu = {
        type: type,
        type: config.Template === 'CommonTable' ? 'main' : 'subtable',
        MenuID: menu.MenuID,
        menuName: menu.MenuName,
        menuNo: menu.MenuNo
@@ -171,8 +150,8 @@
  }
  render() {
    const { type } = this.props
    const { dict, visible, config } = this.state
    const { config, permFuncField } = this.props
    const { dict, visible, search, menu } = this.state
    return (
      <div className="model-menu-setting">
@@ -186,7 +165,7 @@
          maskClosable={false}
          onCancel={() => { this.setState({ visible: false, loading: false })}}
          footer={[
            <CreateInterface key="interface" dict={dict} ref="tableCreatInterface" trigger={this.tableCreatInterface}/>,
            <CreateInterface key="interface" loading={this.state.interloading} 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, loading: 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>
@@ -194,12 +173,13 @@
          destroyOnClose
        >
          <SettingForm
            type={type}
            type={config.Template === 'CommonTable' ? 'main' : 'subtable'}
            dict={dict}
            menu={menu}
            config={config}
            menu={this.state.menu}
            search={search}
            permFuncField={permFuncField}
            inputSubmit={this.settingSave}
            formlist={this.state.formlist}
            wrappedComponentRef={(inst) => this.settingRef = inst}
          />
        </Modal>