From 326aa6b3effaccc71cfe0775d47b0f29eb3695a6 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期日, 25 八月 2024 00:36:40 +0800 Subject: [PATCH] 2024-08-25 --- src/menu/components/share/actioncomponent/index.jsx | 259 +++++++++++++++++++++++++++++++++++---------------- 1 files changed, 177 insertions(+), 82 deletions(-) diff --git a/src/menu/components/share/actioncomponent/index.jsx b/src/menu/components/share/actioncomponent/index.jsx index e4be98c..c30f245 100644 --- a/src/menu/components/share/actioncomponent/index.jsx +++ b/src/menu/components/share/actioncomponent/index.jsx @@ -2,11 +2,11 @@ import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' import { Modal, notification, Button } from 'antd' +import moment from 'moment' -import Utils, { FuncUtils } from '@/utils/utils.js' +import Utils from '@/utils/utils.js' import { getActionForm, getBaseTableActionForm } from './formconfig' import asyncSpinComponent from '@/utils/asyncSpinComponent' - import MKEmitter from '@/utils/events.js' import ActionForm from './actionform' import MenuUtils from '@/utils/utils-custom.js' @@ -20,6 +20,7 @@ const VerifyExcelIn = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifyexcelin')) const VerifyExcelOut = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifyexcelout')) const VerifyMegvii = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifymegvii')) +const VerifyPay = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifypay')) class ActionComponent extends Component { static propTpyes = { @@ -60,7 +61,7 @@ } componentDidMount () { - MKEmitter.addListener('revert', this.revert) + MKEmitter.addListener('revertBtn', this.revertBtn) MKEmitter.addListener('addButton', this.addButton) MKEmitter.addListener('submitModal', this.handleSave) } @@ -76,12 +77,12 @@ this.setState = () => { return } - MKEmitter.removeListener('revert', this.revert) + MKEmitter.removeListener('revertBtn', this.revertBtn) MKEmitter.removeListener('addButton', this.addButton) MKEmitter.removeListener('submitModal', this.handleSave) } - revert = (id) => { + revertBtn = (id) => { if (id && id !== this.props.config.uuid) return this.setState({ @@ -120,7 +121,17 @@ const { card, actionlist } = this.state let _card = fromJS(card).toJS() - _card.style = style + _card.style = fromJS(style).toJS() + + if (_card.style.paddingLeft === '15px') { + delete _card.style.paddingLeft + } + if (_card.style.paddingRight === '15px') { + delete _card.style.paddingRight + } + if (_card.style.minHeight === '28px') { + delete _card.style.minHeight + } let _actionlist = actionlist.map(cell => { if (cell.uuid === _card.uuid) return _card @@ -136,7 +147,11 @@ changeBtnStyle = (element) => { let _style = element.style ? fromJS(element.style).toJS() : {} - let options = ['font', 'border', 'background', 'margin', 'padding'] + let options = ['font', 'border', 'background', 'margin', 'padding', 'minHeight'] + + _style.paddingLeft = _style.paddingLeft || '15px' + _style.paddingRight = _style.paddingRight || '15px' + _style.minHeight = _style.minHeight || '28px' this.setState({ card: element @@ -148,6 +163,8 @@ addButton = (cardId, element) => { if (cardId !== this.props.config.uuid) return + delete element.eleType + const { actionlist } = this.state this.setState({actionlist: [...actionlist, element]}) @@ -206,8 +223,10 @@ supId = '' } } + + let menu = window.GLOB.customMenu - let modules = MenuUtils.getSubModules(window.GLOB.customMenu.components, config.uuid, supId) + let modules = MenuUtils.getSubModules(menu.components, config.uuid, supId, menu.interfaces || null) if (config.subtype === 'basetable') { delete card.eleType // 鍖哄垎鎸夐挳浣嶇疆 @@ -218,7 +237,7 @@ formlist: getBaseTableActionForm(card, functip, config, usefulFields, modules) }) } else { - let anchors = MenuUtils.getAnchors(window.GLOB.customMenu.components, config.uuid) || [] + let anchors = MenuUtils.getAnchors(menu.components, config.uuid) || [] this.setState({ visible: true, @@ -257,7 +276,7 @@ */ handleSubmit = () => { const { config } = this.props - let color = { primary: '#1890ff', yellow: '#c49f47', orange: 'orange', danger: '#ff4d4f', green: '#26C281', dgreen: '#32c5d2', purple: '#8E44AD', cyan: '#13c2c2', gray: '#666666', default: 'rgba(0, 0, 0, 0.65)' } + let color = { primary: '#1890ff', yellow: '#c49f47', orange: 'orange', danger: '#ff4d4f', green: '#26C281', dgreen: '#32c5d2', purple: '#8E44AD', cyan: '#13c2c2', gray: '#E7E7EF', default: 'rgba(0, 0, 0, 0.65)' } let _actionlist = fromJS(this.state.actionlist).toJS() this.actionFormRef.handleConfirm().then(btn => { @@ -266,6 +285,12 @@ if ((btn.OpenType === 'excelIn' || btn.OpenType === 'excelOut') && (!btn.verify || !btn.verify.columns) && (config.subtype === 'basetable' || config.subtype === 'normaltable')) { let columns = [] let maps = [] + let labels = {} + if (config.subtype === 'normaltable') { + config.columns.forEach(col => { + labels[col.field] = col.label + }) + } if (btn.OpenType === 'excelOut') { let pushcol = (item) => { @@ -277,28 +302,44 @@ output: 'true', required: 'false', type: 'text', + noValue: 'true', uuid: Utils.getuuid() } if (item.type === 'number') { cell.type = 'number' cell.decimal = item.decimal + + if (item.noValue === 'hide') { + cell.noValue = 'false' + } } columns.push(cell) } config.cols.forEach(item => { - if (item.type === 'colspan' && config.subtype === 'normaltable') { - item.subcols.forEach(cell => { - if (!cell.field || cell.Hide === 'true' || maps.includes(cell.field)) return - maps.push(cell.field) + if (item.Hide === 'true') return - pushcol(cell) - }) + if (config.subtype === 'normaltable') { + if (item.type === 'colspan') { + item.subcols.forEach(cell => { + if (!cell.field || cell.Hide === 'true' || maps.includes(cell.field)) return + maps.push(cell.field) + + pushcol(cell) + }) + } else if (item.type === 'custom') { + item.elements.forEach(cell => { + if (!cell.field || maps.includes(cell.field)) return + maps.push(cell.field) + + pushcol({...cell, label: labels[cell.field]}) + }) + } } - if (!item.field || item.Hide === 'true' || maps.includes(item.field)) return + if (!item.field || maps.includes(item.field)) return maps.push(item.field) pushcol(item) @@ -337,16 +378,27 @@ } config.cols.forEach(item => { - if (item.type === 'colspan' && config.subtype === 'normaltable') { - item.subcols.forEach(cell => { - if (!cell.field || cell.Hide === 'true' || maps.includes(cell.field)) return - maps.push(cell.field) + if (item.Hide === 'true') return - pushcol(cell) - }) + if (config.subtype === 'normaltable') { + if (item.type === 'colspan') { + item.subcols.forEach(cell => { + if (!cell.field || cell.Hide === 'true' || maps.includes(cell.field)) return + maps.push(cell.field) + + pushcol(cell) + }) + } else if (item.type === 'custom') { + item.elements.forEach(cell => { + if (!cell.field || maps.includes(cell.field)) return + maps.push(cell.field) + + pushcol({...cell, label: labels[cell.field]}) + }) + } } - if (!item.field || item.Hide === 'true' || maps.includes(item.field)) return + if (!item.field || maps.includes(item.field)) return maps.push(item.field) pushcol(item) @@ -370,21 +422,45 @@ btn.style = {color: 'rgba(0, 0, 0, 0.65)', backgroundColor: '#fff', borderColor: '#d9d9d9', marginRight: '15px'} } else if (btn.class.indexOf('border') > -1) { btn.style = {color: color[_c], backgroundColor: '#fff', borderColor: color[_c], marginRight: '15px'} + } else if (btn.class === 'gray') { + btn.style = {color: 'rgba(0, 0, 0, 0.65)', backgroundColor: color[_c], borderColor: color[_c], marginRight: '15px'} } else { btn.style = {color: '#fff', backgroundColor: color[_c], borderColor: color[_c], marginRight: '15px'} } } else { btn.style = item.style || {} - if (btn.class !== item.class || btn.show !== item.show || !btn.style.color || item.focus) { - if (btn.show === 'icon') { - btn.style.color = color[btn.class] - btn.style.backgroundColor = 'transparent' - } else { - btn.style.color = '#ffffff' - btn.style.backgroundColor = color[btn.class] + if (btn.class) { + if (btn.class !== item.class || btn.show !== item.show || !btn.style.color || (item.focus && !btn.style.color)) { + // if (btn.show === 'icon') { + // btn.style.color = color[btn.class] + // btn.style.backgroundColor = 'transparent' + // } + if (btn.class === 'default') { + btn.style.color = 'rgba(0, 0, 0, 0.65)' + btn.style.backgroundColor = '#fff' + btn.style.borderColor = '#d9d9d9' + } else if (btn.class.indexOf('border') > -1) { + let _c = btn.class.replace('border-', '') + btn.style.color = color[_c] + btn.style.backgroundColor = '#fff' + btn.style.borderColor = color[_c] + btn.style.borderWidth = '1px' + } else if (btn.class === 'gray') { + btn.style.color = 'rgba(0, 0, 0, 0.65)' + btn.style.backgroundColor = color[btn.class] + btn.style.borderColor = color[btn.class] + } else { + btn.style.color = '#ffffff' + btn.style.backgroundColor = color[btn.class] + btn.style.borderColor = color[btn.class] + } } + } else if (btn.color) { + btn.style = {} } } + + btn.updateTime = moment().format('YYYY-MM-DD HH:mm') return btn } else { return item @@ -414,19 +490,19 @@ */ deleteElement = (card) => { const { config } = this.props - let _this = this + let that = this confirm({ content: `纭畾鍒犻櫎 - ${card.label} 锛焋, onOk() { - let _actionlist = fromJS(_this.state.actionlist).toJS() + let _actionlist = fromJS(that.state.actionlist).toJS() _actionlist = _actionlist.filter(item => item.uuid !== card.uuid) - _this.setState({ + that.setState({ actionlist: _actionlist }, () => { - _this.props.updateaction({...config, action: _actionlist}) + that.props.updateaction({...config, action: _actionlist}) }) }, onCancel() {} @@ -449,7 +525,7 @@ verifySubmit = () => { const { config } = this.props const { card } = this.state - + this.verifyRef.handleConfirm().then(res => { let _actionlist = fromJS(this.state.actionlist).toJS() _actionlist = _actionlist.filter(item => !item.origin || item.uuid === card.uuid) @@ -457,6 +533,7 @@ _actionlist = _actionlist.map(item => { if (item.uuid === card.uuid) { item.verify = res + item.updateTime = moment().format('YYYY-MM-DD HH:mm') } return item @@ -475,55 +552,47 @@ * @description 鍒涘缓鎸夐挳瀛樺偍杩囩▼ */ creatFunc = () => { + const { config } = this.props const menu = window.GLOB.customMenu - let _config = fromJS(this.props.config).toJS() - this.actionFormRef.handleConfirm().then(res => { - let btn = res // 鎸夐挳淇℃伅 - let newLText = '' // 鍒涘缓瀛樺偍杩囩▼sql - let DelText = '' // 鍒犻櫎瀛樺偍杩囩▼sql + return new Promise((resolve) => { + this.actionFormRef.handleConfirm().then(res => { + let btn = fromJS(res).toJS() + let _config = fromJS(config).toJS() - // 鍒涘缓瀛樺偍杩囩▼锛屽繀椤诲~鍐欏唴閮ㄥ嚱鏁板悕 - if (btn.intertype !== 'inner') { - notification.warning({ - top: 92, - message: '浣跨敤鍐呴儴鍑芥暟鏃讹紝鎵嶅彲浠ュ垱寤哄瓨鍌ㄨ繃绋嬶紒', - duration: 5 - }) - return - } + if (btn.OpenType === 'excelIn') { + btn.func = btn.innerFunc + btn.menuNo = menu.MenuNo + btn.MenuName = menu.MenuName + _config.name + btn.$type = 'excelIn' - if (btn.OpenType === 'pop') { - let _param = { - funcName: btn.innerFunc, - name: _config.setting.tableName || '', - fields: btn.modal ? btn.modal.fields : [], - menuNo: menu.MenuNo + resolve(btn) + } else if (btn.OpenType === 'excelOut') { + _config.MenuName = menu.MenuName + '-' + _config.name + _config.menuNo = menu.MenuNo + _config.MenuID = menu.MenuID + _config.func = btn.innerFunc + _config.$type = 'table' + + resolve(_config) + } else { + btn.func = btn.innerFunc + btn.name = _config.setting.tableName || '' + btn.menuNo = menu.MenuNo + btn.MenuID = menu.MenuID + btn.MenuName = menu.MenuName + _config.name + btn.fields = [] + btn.columns = _config.columns + btn.primaryKey = _config.setting.primaryKey || 'ID' + btn.$type = 'btn' + + if (btn.OpenType === 'pop') { + btn.fields = btn.modal ? btn.modal.fields : [] + } + + resolve(btn) } - newLText = Utils.formatOptions(FuncUtils.getfunc(_param, btn, menu, _config)) - DelText = Utils.formatOptions(FuncUtils.dropfunc(btn.innerFunc)) - } else if (btn.OpenType === 'excelIn') { - let _param = { - funcName: btn.innerFunc, - menuNo: menu.MenuNo - } - newLText = Utils.formatOptions(FuncUtils.getexcelInfunc(_param, btn, menu)) - DelText = Utils.formatOptions(FuncUtils.dropfunc(btn.innerFunc)) - } else if (btn.OpenType === 'excelOut') { - newLText = Utils.formatOptions(FuncUtils.getTableFunc(btn.innerFunc, menu, _config)) // 鍒涘缓瀛樺偍杩囩▼sql - DelText = Utils.formatOptions(FuncUtils.dropfunc(btn.innerFunc)) - } else { - let _param = { - funcName: btn.innerFunc, - name: _config.setting.tableName || '', - fields: '', - menuNo: menu.MenuNo - } - newLText = Utils.formatOptions(FuncUtils.getfunc(_param, btn, menu, _config)) - DelText = Utils.formatOptions(FuncUtils.dropfunc(btn.innerFunc)) - } - - this.refs.btnCreatFunc.exec(btn.innerFunc, newLText, DelText) + }) }) } @@ -551,7 +620,7 @@ let _col = null if (config.type === 'table') { config.cols.forEach(col => { - if (col.type !== 'action') return + if (col.type !== 'custom') return col.elements = col.elements.filter(item => { if (item.uuid === id) { @@ -560,6 +629,24 @@ } return item.uuid !== id }) + }) + } else if (config.type === 'card' && config.subcards) { + config.subcards.forEach(scard => { + scard.elements = scard.elements.filter(item => { + if (item.uuid === id) { + btn = item + _col = scard + } + return item.uuid !== id + }) + scard.backElements = scard.backElements.filter(item => { + if (item.uuid === id) { + btn = item + _col = scard + } + return item.uuid !== id + }) + return scard }) } @@ -612,6 +699,12 @@ columns={config.columns} wrappedComponentRef={(inst) => this.verifyRef = inst} /> + } else if (card.payMode === 'system') { + return <VerifyPay + card={card} + columns={config.columns} + wrappedComponentRef={(inst) => this.verifyRef = inst} + /> } } @@ -635,18 +728,20 @@ {/* 缂栬緫鎸夐挳锛氬鍒躲�佺紪杈� */} <Modal title="鎸夐挳路缂栬緫" + wrapClassName="mk-scroll-modal" visible={visible} width={920} maskClosable={false} onCancel={this.editModalCancel} footer={[ - record && record.intertype === 'inner' ? <CreateFunc key="create" ref="btnCreatFunc" trigger={this.creatFunc}/> : null, + record && record.intertype === 'inner' ? <CreateFunc key="create" getMsg={this.creatFunc}/> : null, <Button key="cancel" onClick={this.editModalCancel}>鍙栨秷</Button>, <Button key="confirm" type="primary" onClick={this.handleSubmit}>纭畾</Button> ]} destroyOnClose > <ActionForm + type={config.type === 'tree' ? 'card' : ''} card={card} formlist={this.state.formlist} inputSubmit={this.handleSubmit} -- Gitblit v1.8.0