From fe21d23b147ed5cec22b4f76a88840b05495d4ad Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期六, 18 六月 2022 22:33:59 +0800 Subject: [PATCH] 2022-06-18 --- src/menu/components/share/actioncomponent/actionform/index.jsx | 170 +++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 130 insertions(+), 40 deletions(-) diff --git a/src/menu/components/share/actioncomponent/actionform/index.jsx b/src/menu/components/share/actioncomponent/actionform/index.jsx index 0d4b95f..4dfb893 100644 --- a/src/menu/components/share/actioncomponent/actionform/index.jsx +++ b/src/menu/components/share/actioncomponent/actionform/index.jsx @@ -1,7 +1,7 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { fromJS } from 'immutable' -import { Form, Row, Col, Input, Select, Radio, notification, Tooltip, InputNumber, Cascader } from 'antd' +import { Form, Row, Col, Input, Select, Radio, Tooltip, InputNumber, Cascader, Checkbox } from 'antd' import { QuestionCircleOutlined } from '@ant-design/icons' import { formRule } from '@/utils/option.js' @@ -11,16 +11,16 @@ const { TextArea } = Input const MkEditIcon = asyncComponent(() => import('@/components/mkIcon')) const acTyOptions = { - pop: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'refreshTab'], - prompt: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'refreshTab'], - exec: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width', 'openmenu', 'open', 'refreshTab'], - excelIn: ['label', 'Ot', 'OpenType', 'intertype', 'show', 'icon', 'class', 'color', 'sheet', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'switchTab', 'width'], - excelOut: ['label', 'OpenType', 'intertype', 'show', 'icon', 'class', 'color', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'resetPageIndex', 'pagination', 'search', 'width'], - popview: ['label', 'Ot', 'OpenType', 'show', 'icon', 'class', 'color', 'popClose', 'resetPageIndex', 'width', 'display', 'ratio', 'syncComponent', 'clickouter'], - tab: ['label', 'Ot', 'OpenType', 'show', 'icon', 'class', 'color', 'linkmenu', 'width'], - innerpage: ['label', 'Ot', 'OpenType', 'pageTemplate', 'show', 'swipe', 'icon', 'class', 'color', 'width', 'open'], - funcbutton: ['label', 'OpenType', 'funcType', 'show', 'swipe', 'icon', 'class', 'color', 'width'], - form: ['label', 'OpenType', 'formType', 'intertype', 'Ot', 'execSuccess', 'execError', 'resetPageIndex', 'syncComponent', 'width', 'open', 'refreshTab', 'title'] + pop: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'anchors', 'width', 'openmenu', 'refreshTab', 'position', 'tipTitle', 'hidden'], + prompt: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'anchors', 'width', 'openmenu', 'refreshTab', 'position', 'tipTitle', 'hidden'], + exec: ['label', 'OpenType', 'intertype', 'Ot', 'show', 'swipe', 'icon', 'class', 'color', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'anchors', 'width', 'openmenu', 'refreshTab', 'hidden'], + excelIn: ['label', 'Ot', 'OpenType', 'intertype', 'show', 'icon', 'class', 'color', 'sheet', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'width', 'hidden'], + excelOut: ['label', 'OpenType', 'intertype', 'show', 'icon', 'class', 'color', 'execSuccess', 'execError', 'syncComponent', 'switchTab', 'pagination', 'search', 'width', 'hidden'], + popview: ['label', 'Ot', 'OpenType', 'show', 'icon', 'class', 'color', 'popClose', 'width', 'display', 'ratio', 'syncComponent', 'clickouter', 'hidden'], + tab: ['label', 'Ot', 'OpenType', 'show', 'icon', 'class', 'color', 'linkmenu', 'width', 'hidden'], + innerpage: ['label', 'Ot', 'OpenType', 'pageTemplate', 'show', 'swipe', 'icon', 'class', 'color', 'width', 'hidden'], + funcbutton: ['label', 'OpenType', 'funcType', 'show', 'swipe', 'icon', 'class', 'color', 'width', 'hidden'], + form: ['label', 'OpenType', 'formType', 'intertype', 'Ot', 'execSuccess', 'execError', 'syncComponent', 'width', 'refreshTab', 'title', 'hidden'] } class ActionForm extends Component { @@ -30,7 +30,8 @@ setting: PropTypes.object, // 椤甸潰璁剧疆 formlist: PropTypes.any, // 琛ㄥ崟淇℃伅 card: PropTypes.any, // 鎸夐挳淇℃伅 - inputSubmit: PropTypes.any // 鍥炶溅鎻愪氦浜嬩欢 + inputSubmit: PropTypes.func, // 鍥炶溅鎻愪氦浜嬩欢 + updRecord: PropTypes.func // 鏇存柊淇℃伅 } state = { @@ -140,6 +141,7 @@ } }, 100) } + this.props.updRecord && this.props.updRecord(this.record) } getMutilOptions = (requireOptions) => { @@ -185,6 +187,16 @@ reRequired.innerFunc = true } else { shows.push('sql', 'sqlType', 'output') + } + + if (Ot === 'required') { + shows.push('progress') + } + if (this.record.openmenu && this.record.openmenu !== 'goback') { + shows.push('open') + } + if (this.record.execSuccess === 'grid' || this.record.execError === 'grid') { + shows.push('resetPageIndex') } if (this.record.sqlType === 'insert') { @@ -233,6 +245,9 @@ if (this.record.execSuccess === 'goback') { shows.push('reload') } + if (this.record.execSuccess === 'grid' || this.record.execError === 'grid') { + shows.push('resetPageIndex') + } reOptions.Ot = requireOptions reOptions.sqlType = [{ @@ -261,6 +276,9 @@ shows.push('innerFunc') reRequired.innerFunc = true } + if (this.record.execSuccess === 'grid' || this.record.execError === 'grid') { + shows.push('resetPageIndex') + } } else if (openType === 'excelOut') { reOptions.intertype = this.state.interTypeOptions.filter(op => op.value !== 'custom') @@ -279,11 +297,17 @@ shows.push('innerFunc') reRequired.innerFunc = true } + if (this.record.execSuccess === 'grid' || this.record.execError === 'grid') { + shows.push('resetPageIndex') + } } else if (openType === 'popview') { reOptions.Ot = requireOptions.filter(op => ['notRequired', 'requiredSgl'].includes(op.value)) if (this.record.display === 'drawer') { shows.push('placement') + } + if (this.record.popClose === 'grid') { + shows.push('resetPageIndex') } } else if (openType === 'tab') { reOptions.Ot = requireOptions.filter(op => ['notRequired', 'requiredSgl'].includes(op.value)) @@ -294,9 +318,13 @@ reOptions.Ot = requireOptions.filter(op => ['notRequired', 'requiredSgl'].includes(op.value)) if (this.record.pageTemplate === 'custom') { - shows.push('url', 'joint') + shows.push('url', 'joint', 'open') } else if (this.record.pageTemplate === 'linkpage') { - shows.push('linkmenu', 'joint') + shows.push('linkmenu', 'open') + + if (Ot === 'requiredSgl') { + shows.push('joint') + } reRequired.linkmenu = true reTooltip.linkmenu = '' @@ -313,7 +341,7 @@ let _funcType = this.record.funcType if (_funcType === 'print') { - shows.push('execMode', 'intertype', 'Ot', 'execSuccess', 'execError', 'resetPageIndex') + shows.push('execMode', 'intertype', 'Ot', 'execSuccess', 'execError') if (this.record.intertype === 'outer') { shows.push('innerFunc', 'sysInterface', 'interface', 'proInterface', 'outerFunc', 'callbackFunc') reRequired.innerFunc = false @@ -329,6 +357,9 @@ shows.push('innerFunc') reRequired.innerFunc = true } + if (this.record.execSuccess === 'grid' || this.record.execError === 'grid') { + shows.push('resetPageIndex') + } } else if (_funcType === 'mkBinding' || _funcType === 'mkUnBinding') { shows.push('execSuccess', 'execError') } else if (_funcType === 'closetab') { @@ -338,8 +369,23 @@ reRequired.linkmenu = false reTooltip.linkmenu = '浣跨敤鎵爜鐧诲綍鍔熻兘鎴栬彍鍗曡烦杞姛鑳芥椂锛岄渶閫夋嫨璺宠浆鐨勮彍鍗曘��' + } else if (_funcType === 'copyurl') { + shows.push('linkmenu') + + reRequired.linkmenu = false + reTooltip.linkmenu = '鍙互鎸囧畾鍒嗕韩鐨勭洰鏍囧湴鍧�銆�' + + if (this.record.linkmenu) { + shows.push('Ot') + reOptions.Ot = requireOptions.filter(op => ['notRequired', 'requiredSgl'].includes(op.value)) + } } else if (_funcType === 'goBack') { shows.push('reload') + } else if (_funcType === 'megvii') { + shows.push('subFunc', 'progress') + } else if (_funcType === 'pay') { + shows.push('payType', 'Ot', 'execSuccess', 'execError', 'syncComponent', 'openmenu') + reOptions.Ot = requireOptions.filter(op => ['requiredSgl'].includes(op.value)) } } @@ -353,6 +399,9 @@ ] if (this.record.control) { shows.push('controlField', 'controlVal') + } + if (this.record.control === 'disabled') { + shows.push('reason') } } } else { @@ -377,6 +426,9 @@ } if (this.record.control) { shows.push('controlField', 'controlVal') + } + if (this.record.control === 'disabled') { + shows.push('reason') } } @@ -477,6 +529,8 @@ this.record.control = '' _fieldval.control = '' } + + this.props.updRecord && this.props.updRecord(this.record) } else if (key === 'funcType') { if (value === 'print') { _fieldval.label = '鎵撳嵃' @@ -541,6 +595,8 @@ } } else if (key === 'intertype') { this.record.sysInterface = 'false' + + this.props.updRecord && this.props.updRecord(this.record) } else if (key === 'sysInterface') { if (value === 'true') { _fieldval.interface = window.GLOB.mainSystemApi || '' @@ -625,6 +681,24 @@ { pattern: formRule.func.pattern, message: formRule.func.message }, { max: formRule.func.max, message: formRule.func.maxMessage } ) + } else if (item.key === 'output') { + if (this.record.intertype === 'system') { + rules = [{ + pattern: /^@[0-9a-zA-Z_]*$/, + message: '鍙橀噺浠绗﹀紑澶达紝鍙娇鐢ㄥ瓧姣嶃�佹暟瀛椾互鍙奯' + }, { + max: 100, + message: '鏈�澶�100涓瓧绗︺��' + }] + } else { + rules = [{ + pattern: /^[0-9a-zA-Z_]*$/, + message: '瀛楁鍙娇鐢ㄥ瓧姣嶃�佹暟瀛椾互鍙奯' + }, { + max: 100, + message: '鏈�澶�100涓瓧绗︺��' + }] + } } else { rules.push({ max: formRule.input.max, message: formRule.input.message }) } @@ -635,25 +709,42 @@ { required: item.required, message: dict['form.required.input'] + item.label + '!' } ] - content = <InputNumber min={item.min} max={item.max} precision={item.precision} /> + content = <InputNumber min={item.min} max={item.max} precision={item.precision} onPressEnter={this.handleSubmit}/> } else if (item.type === 'select') { rules = [ { required: item.required, message: dict['form.required.select'] + item.label + '!' } ] - content = <Select - showSearch - allowClear={item.allowClear === true} - filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} - onChange={(value) => {this.optionChange(item.key, value)}} - getPopupContainer={() => document.getElementById('winter')} - > - {item.options.map((option, index) => - <Select.Option key={index} value={(option.value || option.field)}> - {(option.text || option.label)} - </Select.Option> - )} - </Select> + if (item.extendName) { + content = <Select + showSearch + allowClear={item.allowClear === true || !item.required} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 || + option.props.extend.toLowerCase().indexOf(input.toLowerCase()) >= 0} + onChange={(value) => {this.optionChange(item.key, value)}} + getPopupContainer={() => document.getElementById('winter')} + > + {item.options.map((option, index) => + <Select.Option key={index} extend={option[item.extendName] || ''} value={(option.value || option.field)}> + {(option.text || option.label)} + </Select.Option> + )} + </Select> + } else { + content = <Select + showSearch + allowClear={item.allowClear === true || !item.required} + filterOption={(input, option) => option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0} + onChange={(value) => {this.optionChange(item.key, value)}} + getPopupContainer={() => document.getElementById('winter')} + > + {item.options.map((option, index) => + <Select.Option key={index} value={(option.value || option.field)}> + {(option.text || option.label)} + </Select.Option> + )} + </Select> + } } else if (item.type === 'radio') { rules = [ { required: item.required, message: dict['form.required.select'] + item.label + '!' } @@ -662,6 +753,14 @@ content = <Radio.Group onChange={(e) => {this.optionChange(item.key, e.target.value)}}> {item.options.map(option => <Radio key={option.value} value={option.value}>{option.text}</Radio>)} </Radio.Group> + } else if (item.type === 'checkbox') { + rules = [ + { required: item.required, message: dict['form.required.select'] + item.label + '!' } + ] + + content = <Checkbox.Group> + {item.options.map(option => <Checkbox key={option.value} value={option.value}>{option.text}</Checkbox>)} + </Checkbox.Group> } else if (item.type === 'cascader') { initVal = item.initVal || [] rules = [ @@ -687,7 +786,7 @@ fields.push( <Col span={span} key={index}> - <Form.Item className={className} label={item.tooltip ? + <Form.Item className={className} help={item.help} label={item.tooltip ? <Tooltip placement="topLeft" title={item.tooltip}> <QuestionCircleOutlined className="mk-form-tip" /> {item.label} @@ -705,7 +804,7 @@ } handleConfirm = () => { - const { setting, card } = this.props + const { card } = this.props // 琛ㄥ崟鎻愪氦鏃舵鏌ヨ緭鍏ュ�兼槸鍚︽纭� return new Promise((resolve, reject) => { this.props.form.validateFieldsAndScroll((err, values) => { @@ -720,15 +819,6 @@ values.closeVal = +values.closeVal } } else if (values.OpenType === 'excelOut') { - if (values.intertype === 'system' && setting.interType !== 'system') { - notification.warning({ - top: 92, - message: '琛ㄦ牸鏁版嵁鏌ヨ鏈娇鐢ㄧ郴缁熷嚱鏁帮紝瀵煎嚭Excel涓嶅彲浣跨敤绯荤粺鍑芥暟锛�', - duration: 5 - }) - return - } - values.Ot = 'notRequired' } else if (['pop', 'prompt', 'exec'].includes(values.OpenType) && values.verify) { if ((values.Ot === 'requiredOnce' || card.Ot === 'requiredOnce') && card.Ot !== values.Ot) { -- Gitblit v1.8.0