| | |
| | | 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' |
| | |
| | | |
| | | class SettingComponent extends Component { |
| | | static propTpyes = { |
| | | type: PropTypes.string, // 菜单类型 |
| | | mainsearch: PropTypes.any, // 主表的搜索条件,当子表设置接收主表条件时有效 |
| | | MenuID: PropTypes.string, // 菜单ID |
| | | config: PropTypes.object, // 菜单配置信息 |
| | |
| | | state = { |
| | | dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, |
| | | menu: null, // 菜单信息 |
| | | search: null, // 搜索条件,包括主表搜索 |
| | | formlist: null, // 表单信息 |
| | | visible: false, // 模态框控制 |
| | | loading: false // 设置信息验证保存中 |
| | |
| | | * @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 |
| | | }) |
| | | } |
| | | |
| | |
| | | visible: false, |
| | | loading: false |
| | | }) |
| | | |
| | | delete res.customScript // 清除整理后的自定义脚本 |
| | | res.actionfixed = res.actionfixed === 'true' |
| | | res.columnfixed = res.columnfixed === 'true' |
| | | |
| | | this.props.updatesetting({...config, setting: res}) |
| | | }, () => { |
| | |
| | | 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 |
| | | |
| | |
| | | * @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 |
| | |
| | | |
| | | let _config = {...config, setting: setting} |
| | | let _menu = { |
| | | type: type, |
| | | type: config.Template === 'CommonTable' ? 'main' : 'subtable', |
| | | MenuID: menu.MenuID, |
| | | menuName: menu.MenuName, |
| | | menuNo: menu.MenuNo |
| | |
| | | } |
| | | |
| | | 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"> |
| | |
| | | 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> |
| | |
| | | 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> |