From 2652a3c1485dbbf3b003e13e5c5d1c0205e7c324 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 09 九月 2020 09:19:46 +0800 Subject: [PATCH] 2020-09-09 --- src/templates/sharecomponent/actioncomponent/actionform/index.jsx | 251 ++++++++++++++++--------------------------------- 1 files changed, 84 insertions(+), 167 deletions(-) diff --git a/src/templates/sharecomponent/actioncomponent/actionform/index.jsx b/src/templates/sharecomponent/actioncomponent/actionform/index.jsx index e159cec..aa499a5 100644 --- a/src/templates/sharecomponent/actioncomponent/actionform/index.jsx +++ b/src/templates/sharecomponent/actioncomponent/actionform/index.jsx @@ -1,5 +1,6 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' +import { fromJS } from 'immutable' import { Form, Row, Col, Input, Select, Icon, Radio, notification, Tooltip, InputNumber, Cascader } from 'antd' import { btnIcons, btnClasses, formRule } from '@/utils/option.js' @@ -9,6 +10,17 @@ import './index.scss' const { TextArea } = Input +const actionTypeOptions = { + pop: ['label', 'position', 'OpenType', 'intertype', 'Ot', 'icon', 'class', 'execSuccess', 'execError'], + prompt: ['label', 'position', 'OpenType', 'intertype', 'Ot', 'icon', 'class', 'execSuccess', 'execError'], + exec: ['label', 'position', 'OpenType', 'intertype', 'Ot', 'icon', 'class', 'execSuccess', 'execError'], + excelIn: ['label', 'Ot', 'OpenType', 'intertype', 'icon', 'class', 'sheet', 'execSuccess', 'execError'], + excelOut: ['label', 'OpenType', 'intertype', 'icon', 'class', 'execSuccess', 'execError', 'pagination', 'search'], + popview: ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabType', 'linkTab', 'popClose'], + tab: ['label', 'Ot', 'OpenType', 'tabTemplate', 'icon', 'class', 'position'], + innerpage: ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class', 'position'], + funcbutton: ['label', 'OpenType', 'funcType', 'icon', 'class'] +} class MainSearch extends Component { static propTpyes = { @@ -40,9 +52,6 @@ text: this.props.dict['header.form.requiredOnce'] }], insertUpdateOptions: [{ - value: '', - text: this.props.dict['model.empty'] - }, { value: 'insert', text: this.props.dict['header.form.action.insert'] }, { @@ -53,9 +62,6 @@ text: this.props.dict['header.form.action.audit'] }], deleteOptions: [{ - value: '', - text: this.props.dict['model.empty'] - }, { value: 'LogicDelete', text: this.props.dict['header.form.action.LogicDelete'] }, { @@ -72,11 +78,13 @@ const { card } = this.props let _menulist = this.props.formlist.filter(form => form.key === 'linkmenu')[0] || '' - let _opentype = card.OpenType // 鎵撳紑鏂瑰紡 - let _tabType = card.tabType || 'SubTable' // 鎸夐挳涓哄脊绐楋紙鏍囩锛夋椂锛屾爣绛剧殑绫诲瀷 - let _options = null // 閫夐」鍒楄〃 + let _opentype = card.OpenType // 鎵撳紑鏂瑰紡 + let _tabType = card.tabType || 'SubTable' // 鎸夐挳涓哄脊绐楋紙鏍囩锛夋椂锛屾爣绛剧殑绫诲瀷 + let _intertype = card.intertype || 'system' // 鎺ュ彛绫诲瀷 + let _funcType = card.funcType || '' // 鍔熻兘鎸夐挳榛樿绫诲瀷 + let _tabTemplate = card.tabTemplate // 鎸夐挳涓烘爣绛鹃〉鏃讹紝鏍囩绫诲瀷锛氫笁绾ц彍鍗曟垨琛ㄥ崟鏍囩椤� - if (card.execMode) { // 杞崲鎵撳嵃鏃舵墦寮�鏂瑰紡 + if (card.execMode) { // 杞崲鎵撳嵃鏃舵墦寮�鏂瑰紡 _opentype = 'funcbutton' } else if (_opentype === 'outerpage') { card.pageTemplate = 'custom' @@ -84,56 +92,14 @@ } let _tabs = this.props.tabs.filter(tab => tab.type === _tabType) - - if (_opentype === 'innerpage') { // 鏂伴〉闈紝鍙�夋ā鏉�(鑷畾涔夋椂锛屽彲濉叆澶栭儴閾炬帴) - _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class', 'position'] - if (card.pageTemplate === 'custom') { - _options.push('url', 'joint') - } - } else if (_opentype === 'blank' || _opentype === 'tab') { // 鏂版爣绛炬垨褰撳墠椤甸潰鏇挎崲 - _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabTemplate'] - if (card.tabTemplate === 'ThdMenu') { - _options.push('linkmenu') - } - } else if (_opentype === 'popview') { // 妯℃�佹鏍囩椤� - _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabType', 'linkTab', 'popClose'] - } else if (_opentype === 'excelOut') { // 瀵煎叆瀵煎嚭 - if (card.intertype === 'outer') { - _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'icon', 'class', 'execSuccess', 'execError', 'pagination', 'search'] - } else { - _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'icon', 'class', 'execSuccess', 'execError', 'pagination', 'search'] - } - } else if (_opentype === 'excelIn') { // 瀵煎叆瀵煎嚭 - if (card.intertype === 'outer') { - _options = ['label', 'Ot', 'OpenType', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'icon', 'class', 'sheet', 'execSuccess', 'execError'] - } else { - _options = ['label', 'Ot', 'OpenType', 'intertype', 'innerFunc', 'icon', 'class', 'sheet', 'execSuccess', 'execError'] - } - } else if (_opentype === 'funcbutton') { - if (!card.funcType) { - _options = ['label', 'OpenType', 'funcType', 'icon', 'class'] - } else if (card.funcType === 'changeuser') { - _options = ['label', 'OpenType', 'funcType', 'icon', 'class'] - } else if (card.funcType === 'print') { - if (card.intertype === 'outer') { - _options = ['label', 'OpenType', 'funcType', 'execMode', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError'] - } else { - _options = ['label', 'OpenType', 'funcType', 'execMode', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError'] - } - } - } else { - if (card.intertype === 'outer') { - _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError'] - } else { - _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'sql', 'sqlType'] - } - } + let _options = this.getOptions(_opentype, _intertype, _funcType, card.pageTemplate, _tabTemplate) + this.setState({ openType: _opentype, menulist: _menulist.options || [], - interType: card.intertype || 'inner', + interType: _intertype, position: card.position || 'toolbar', - funcType: card.funcType, + funcType: _funcType, formlist: this.props.formlist.map(item => { if (item.key === 'class') { item.options = btnClasses @@ -186,6 +152,52 @@ } } + getOptions = (_opentype, _intertype, _funcType, _pageTemplate, _tabTemplate) => { + let _options = fromJS(actionTypeOptions[_opentype]).toJS() // 閫夐」鍒楄〃 + + if (_opentype === 'innerpage') { // 鏂伴〉闈紝鍙�夋ā鏉�(鑷畾涔夋椂锛屽彲濉叆澶栭儴閾炬帴) + if (_pageTemplate === 'custom') { + _options.push('url', 'joint') + } + } else if (_opentype === 'blank' || _opentype === 'tab') { // 鏂版爣绛炬垨褰撳墠椤甸潰鏇挎崲 + if (_tabTemplate === 'ThdMenu') { + _options.push('linkmenu') + } + } else if (_opentype === 'excelOut') { // 瀵煎叆瀵煎嚭 + if (_intertype === 'outer') { + _options.push('innerFunc', 'sysInterface', 'interface', 'outerFunc') + } else if (_intertype === 'inner') { + _options.push('innerFunc') + } + } else if (_opentype === 'excelIn') { // 瀵煎叆瀵煎嚭 + if (_intertype === 'outer') { + _options.push('innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc') + } else if (_intertype === 'inner') { + _options.push('innerFunc') + } + } else if (_opentype === 'funcbutton') { + if (_funcType === 'print') { + if (_intertype === 'outer') { + _options.push('execMode', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'execSuccess', 'execError') + } else if (_intertype === 'inner') { + _options.push('execMode', 'intertype', 'innerFunc', 'Ot', 'execSuccess', 'execError') + } else if (_intertype === 'system') { + _options.push('execMode', 'intertype', 'Ot', 'execSuccess', 'execError') + } + } + } else if (_opentype !== 'popview') { // 鎵撳紑鏂瑰紡涓嶆槸寮圭獥椤甸潰鏃� + if (_intertype === 'outer') { + _options.push('innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc') + } else if (_intertype === 'inner') { + _options.push('innerFunc') + } else { + _options.push('sql', 'sqlType') + } + } + + return _options + } + /** * @description 涓嬫媺鍒囨崲 * 1銆佹墦寮�鏂瑰紡鍒囨崲锛岄噸缃彲瑙佽〃鍗曞拰琛ㄥ崟鍊� @@ -196,53 +208,8 @@ const { card } = this.props if (key === 'OpenType') { - let _options = null - if (value === 'innerpage') { - _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class', 'position'] - if (card.pageTemplate === 'custom') { - _options.push('url', 'joint') - } - } else if (value === 'blank' || value === 'tab') { - _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabTemplate'] - if (card.tabTemplate === 'ThdMenu') { - _options.push('linkmenu') - } - } else if (value === 'popview') { - _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position', 'tabType', 'linkTab', 'popClose'] - } else if (value === 'excelOut') { - if (this.state.interType === 'outer') { - _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'icon', 'class', 'execSuccess', 'execError', 'pagination', 'search'] - } else { - _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'icon', 'class', 'execSuccess', 'execError', 'pagination', 'search'] - } - } else if (value === 'excelIn') { - if (this.state.interType === 'outer') { - _options = ['label', 'Ot', 'OpenType', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'icon', 'class', 'sheet', 'execSuccess', 'execError'] - } else { - _options = ['label', 'Ot', 'OpenType', 'intertype', 'innerFunc', 'icon', 'class', 'sheet', 'execSuccess', 'execError'] - } - } else if (value === 'funcbutton') { - if (!this.state.funcType) { - _options = ['label', 'OpenType', 'funcType', 'icon', 'class'] - } else if (this.state.funcType === 'changeuser') { - _options = ['label', 'OpenType', 'funcType', 'icon', 'class'] - } else if (this.state.funcType === 'print') { - if (this.state.interType === 'outer') { - _options = ['label', 'OpenType', 'funcType', 'execMode', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError'] - } else { - _options = ['label', 'OpenType', 'funcType', 'execMode', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError'] - } - } - } else { - if (this.state.interType === 'inner') { - _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'sql', 'sqlType'] - } else { - _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc'] - } - } - + let _options = this.getOptions(value, this.state.interType, this.state.funcType, card.pageTemplate, card.tabTemplate) let _fieldval = {} - let _formlist = this.state.formlist.map(item => { item.hidden = !_options.includes(item.key) @@ -332,21 +299,11 @@ this.props.form.setFieldsValue(_fieldval) }) } else if (key === 'funcType') { - let _options = null - if (!value) { - _options = ['label', 'OpenType', 'funcType', 'icon', 'class'] - } else if (value === 'changeuser') { - _options = ['label', 'OpenType', 'funcType', 'icon', 'class'] - } else if (value === 'print') { - if (this.state.interType === 'outer') { - _options = ['label', 'OpenType', 'funcType', 'execMode', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError'] - } else { - _options = ['label', 'OpenType', 'funcType', 'execMode', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError'] - } - } + let _options = this.getOptions('funcbutton', this.state.interType, value, card.pageTemplate, card.tabTemplate) let _fieldval = {} this.setState({ + funcType: value, formlist: this.state.formlist.map(item => { item.hidden = !_options.includes(item.key) @@ -442,43 +399,20 @@ } onChange = (e, key) => { - const { openType } = this.state + const { openType, funcType } = this.state let value = e.target.value if (key === 'intertype') { - let _options = null - if (openType === 'excelOut') { - if (value === 'outer') { - _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'icon', 'class', 'execSuccess', 'execError', 'pagination', 'search'] - } else { - _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'icon', 'class', 'execSuccess', 'execError', 'pagination', 'search'] - } - } else if (openType === 'excelIn') { - if (value === 'outer') { - _options = ['label', 'Ot', 'OpenType', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'icon', 'class', 'sheet', 'execSuccess', 'execError'] - } else { - _options = ['label', 'Ot', 'OpenType', 'intertype', 'innerFunc', 'icon', 'class', 'sheet', 'execSuccess', 'execError'] - } - } else if (openType === 'funcbutton') { - if (value === 'outer') { - _options = ['label', 'OpenType', 'funcType', 'execMode', 'intertype', 'innerFunc', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError'] - } else { - _options = ['label', 'OpenType', 'funcType', 'execMode', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError'] - } - } else { - if (value === 'inner') { - _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'sql', 'sqlType'] - } else { - _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'sysInterface', 'interface', 'outerFunc', 'callbackFunc'] - } - } + let _options = this.getOptions(openType, value, funcType, '', '') this.setState({ interType: value, formlist: this.state.formlist.map(item => { item.hidden = !_options.includes(item.key) - if (item.key === 'interface') { + if (item.key === 'innerFunc') { + item.required = value === 'inner' + } else if (item.key === 'interface') { item.readonly = false } else if (item.key === 'sysInterface') { item.initVal = 'false' @@ -756,15 +690,13 @@ if (values.OpenType === 'excelIn') { values.position = 'toolbar' } else if (values.OpenType === 'excelOut') { - if (values.intertype === 'inner' && !values.innerFunc) { - if ((setting.interType === 'inner' && setting.innerFunc) || setting.interType === 'outer') { - notification.warning({ - top: 92, - message: '琛ㄦ牸鏁版嵁鏌ヨ鏈娇鐢ㄦ暟鎹簮锛屽鍑篍xcel浣跨敤鍐呴儴鎺ュ彛鏃讹紝闇�鑷畾涔夊唴閮ㄥ嚱鏁帮紒', - duration: 5 - }) - return - } + if (values.intertype === 'system' && setting.interType !== 'system') { // 瀵煎嚭excel闇�浣跨敤鏌ヨ鏁版嵁婧� + notification.warning({ + top: 92, + message: '琛ㄦ牸鏁版嵁鏌ヨ鏈娇鐢ㄧ郴缁熷嚱鏁帮紝瀵煎嚭Excel涓嶅彲浣跨敤绯荤粺鍑芥暟锛�', + duration: 5 + }) + return } values.position = 'toolbar' @@ -803,22 +735,7 @@ }) values.linkThdMenu = linkThdMenu } - - if (values.innerFunc === '' && values.sql === '') { - notification.warning({ - top: 92, - message: this.props.dict['header.form.actionhelp.tablename'], - duration: 5 - }) - } else if (values.innerFunc === '' && values.sql !== '' && values.sqlType === '') { - notification.warning({ - top: 92, - message: this.props.dict['header.form.actionhelp.sqlType'], - duration: 5 - }) - } else { - resolve(values) - } + resolve(values) } else { reject(err) } -- Gitblit v1.8.0