From b883ae5d7d46fc7a3503236f16a250c2264ea7c7 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 29 九月 2022 17:45:25 +0800 Subject: [PATCH] 2022-09-29 --- src/menu/components/share/actioncomponent/index.jsx | 167 +++++++++++++++++++++++++++++++++---------------------- 1 files changed, 100 insertions(+), 67 deletions(-) diff --git a/src/menu/components/share/actioncomponent/index.jsx b/src/menu/components/share/actioncomponent/index.jsx index 948d70d..82785e7 100644 --- a/src/menu/components/share/actioncomponent/index.jsx +++ b/src/menu/components/share/actioncomponent/index.jsx @@ -21,10 +21,10 @@ const VerifyPrint = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifyprint')) const VerifyExcelIn = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifyexcelin')) const VerifyExcelOut = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifyexcelout')) +const VerifyMegvii = asyncSpinComponent(() => import('@/templates/sharecomponent/actioncomponent/verifymegvii')) class ActionComponent extends Component { static propTpyes = { - type: PropTypes.string, // 鑿滃崟绫诲瀷锛屼富琛ㄦ垨瀛愯〃 config: PropTypes.object, // 鑿滃崟閰嶇疆淇℃伅 setSubConfig: PropTypes.func, // 璁剧疆瀛愰厤缃俊鎭� updateaction: PropTypes.func // 鑿滃崟閰嶇疆鏇存柊 @@ -37,7 +37,8 @@ formlist: null, // 琛ㄥ崟淇℃伅 actionlist: null, // 鎸夐挳缁� visible: false, // 妯℃�佹鎺у埗 - profVisible: false // 楠岃瘉淇℃伅妯℃�佹 + profVisible: false, // 楠岃瘉淇℃伅妯℃�佹 + record: null } /** @@ -63,7 +64,6 @@ componentDidMount () { MKEmitter.addListener('addButton', this.addButton) - MKEmitter.addListener('submitStyle', this.getStyle) } /** @@ -88,14 +88,11 @@ return } MKEmitter.removeListener('addButton', this.addButton) - MKEmitter.removeListener('submitStyle', this.getStyle) } - getStyle = (comIds, style) => { + getStyle = (style) => { const { config } = this.props const { card, actionlist } = this.state - - if (comIds[0] !== config.uuid || comIds[1] !== 'actionlist') return let _card = fromJS(card).toJS() _card.style = style @@ -113,8 +110,6 @@ } changeBtnStyle = (element) => { - const { config } = this.props - let _style = element.style ? fromJS(element.style).toJS() : {} let options = ['font', 'border', 'background', 'margin', 'padding'] @@ -122,7 +117,7 @@ card: element }) - MKEmitter.emit('changeStyle', [config.uuid, 'actionlist', element.uuid], options, _style) + MKEmitter.emit('changeStyle', options, _style, this.getStyle) } addButton = (cardId, element) => { @@ -171,6 +166,10 @@ let functip = <div> <p style={{marginBottom: '5px'}}>{this.state.dict['model.tooltip.func.innerface'].replace('@ableField', ableField)}</p> </div> + + if (!ableField) { // 鏃犲瓧娈甸檺鍒� + functip = '' + } let menulist = sessionStorage.getItem('fstMenuList') if (menulist) { @@ -182,13 +181,24 @@ } else { menulist = [] } + + let supId = '' + if (config.setting && config.setting.supModule) { + let pid = config.setting.supModule[config.setting.supModule.length - 1] + if (pid && pid !== 'empty') { + supId = pid + } else { + supId = '' + } + } - let modules = MenuUtils.getSubModules(window.GLOB.customMenu.components, config.uuid) + let modules = MenuUtils.getSubModules(window.GLOB.customMenu.components, config.uuid, supId) || [] + let anchors = MenuUtils.getAnchors(window.GLOB.customMenu.components, config.uuid) || [] this.setState({ visible: true, card: card, - formlist: getActionForm(card, functip, config, usefulFields, this.props.type, menulist, modules) + formlist: getActionForm(card, functip, config, usefulFields, menulist, modules, anchors) }) } @@ -235,9 +245,8 @@ if (item.uuid === btn.uuid) { btn.style = item.style || {} - - if (btn.class !== item.class || btn.show !== item.show || !btn.style.color) { - if (btn.show === 'link' || btn.show === 'icon') { + 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 { @@ -284,15 +293,10 @@ _actionlist = _actionlist.filter(item => item.uuid !== card.uuid) - let btnlog = config.btnlog || [] - if (card.OpenType === 'popview' || card.verify || card.modal) { - btnlog.push(card) - } - _this.setState({ actionlist: _actionlist }, () => { - _this.props.updateaction({...config, action: _actionlist, btnlog}) + _this.props.updateaction({...config, action: _actionlist}) }) if (card.origin || appType === 'mob') return @@ -312,6 +316,7 @@ profVisible: true, card: element }) + MKEmitter.emit('modalStatus', '楠岃瘉淇℃伅') } /** @@ -339,6 +344,7 @@ }, () => { this.props.updateaction({...config, action: _actionlist}) }) + MKEmitter.emit('modalStatus', false) }) } @@ -410,9 +416,9 @@ if (element.OpenType === 'pop' || element.OpenType === 'popview' || element.execMode === 'pop') { this.props.setSubConfig(element) - } else if (element.OpenType === 'innerpage' && element.pageTemplate === 'page') { - MKEmitter.emit('changeEditMenu', {MenuID: element.uuid, copyMenuId: element.copyMenuId}) } else if (element.OpenType === 'innerpage' && element.pageTemplate === 'linkpage') { + MKEmitter.emit('changeEditMenu', {MenuID: element.linkmenu}) + } else if (element.OpenType === 'funcbutton' && (element.funcType === 'copyurl' || element.funcType === 'scan') && element.linkmenu) { MKEmitter.emit('changeEditMenu', {MenuID: element.linkmenu}) } else { this.handleAction(element) @@ -423,13 +429,15 @@ let config = fromJS(this.props.config).toJS() let btn = null - if (config.subtype === 'normaltable') { + let _col = null + if (config.subtype === 'normaltable' || config.subtype === 'editable') { config.cols.forEach(col => { if (col.type !== 'action') return col.elements = col.elements.filter(item => { if (item.uuid === id) { btn = item + _col = col } return item.uuid !== id }) @@ -438,8 +446,9 @@ if (!btn) return - btn.Ot = 'requiredSgl' config.action.push(btn) + + MKEmitter.emit('cardDelElement', _col.uuid, btn.uuid) this.setState({ actionlist: config.action @@ -448,14 +457,60 @@ }) } + getVerify = (card) => { + const { config } = this.props + const { dict } = this.state + + if (!card) return null + + if (['pop', 'prompt', 'exec'].includes(card.OpenType)) { + return <VerifyCard + card={card} + dict={dict} + config={config} + columns={config.columns} + wrappedComponentRef={(inst) => this.verifyRef = inst} + /> + } else if (card.OpenType === 'excelIn') { + return <VerifyExcelIn + card={card} + dict={dict} + columns={config.columns} + wrappedComponentRef={(inst) => this.verifyRef = inst} + /> + } else if (card.OpenType === 'excelOut') { + return <VerifyExcelOut + card={card} + dict={dict} + config={config} + wrappedComponentRef={(inst) => this.verifyRef = inst} + /> + } else if (card.OpenType === 'funcbutton' && card.funcType === 'print') { + return <VerifyPrint + card={card} + dict={dict} + columns={config.columns} + wrappedComponentRef={(inst) => this.verifyRef = inst} + /> + } else if (card.OpenType === 'funcbutton' && card.funcType === 'megvii') { + return <VerifyMegvii + card={card} + dict={dict} + columns={config.columns} + wrappedComponentRef={(inst) => this.verifyRef = inst} + /> + } + } + render() { const { config } = this.props - const { actionlist, visible, card, dict, profVisible } = this.state + const { actionlist, visible, appType, card, dict, profVisible, record } = this.state return ( - <div className={'model-menu-action-list'}> + <div className={'model-menu-action-list length' + actionlist.length}> <DragElement list={actionlist} + type={appType === 'mob' ? config.subtype : ''} handleList={this.handleList} dropButton={this.dropButton} handleMenu={this.handleAction} @@ -466,13 +521,13 @@ /> {/* 缂栬緫鎸夐挳锛氬鍒躲�佺紪杈� */} <Modal - title={dict['model.action'] + '-' + (card && card.copyType === 'action' ? dict['model.copy'] : dict['model.edit'])} + title="鎸夐挳路缂栬緫" visible={visible} - width={850} + width={920} maskClosable={false} onCancel={this.editModalCancel} footer={[ - <CreateFunc key="create" dict={dict} ref="btnCreatFunc" trigger={this.creatFunc}/>, + record && record.intertype === 'inner' ? <CreateFunc key="create" dict={dict} ref="btnCreatFunc" trigger={this.creatFunc}/> : null, <Button key="cancel" onClick={this.editModalCancel}>{dict['model.cancel']}</Button>, <Button key="confirm" type="primary" onClick={this.handleSubmit}>{dict['model.confirm']}</Button> ]} @@ -484,54 +539,32 @@ formlist={this.state.formlist} inputSubmit={this.handleSubmit} setting={config.setting} + updRecord={(record) => this.setState({record: fromJS(record).toJS()})} wrappedComponentRef={(inst) => this.actionFormRef = inst} /> </Modal> {/* 鎸夐挳浣跨敤绯荤粺瀛樺偍杩囩▼鏃讹紝楠岃瘉淇℃伅妯℃�佹 */} <Modal - wrapClassName="model-table-action-verify-modal" - title={'楠岃瘉淇℃伅'} + wrapClassName="mk-pop-modal" visible={profVisible} - width={'75vw'} + width={'90vw'} maskClosable={false} okText={dict['model.submit']} onOk={this.verifySubmit} - onCancel={() => { this.setState({ profVisible: false }) }} + onCancel={() => { + if (this.verifyRef.handleCancel) { + this.verifyRef.handleCancel().then(() => { + this.setState({ profVisible: false }) + MKEmitter.emit('modalStatus', false) + }) + } else { + this.setState({ profVisible: false }) + MKEmitter.emit('modalStatus', false) + } + }} destroyOnClose > - {card && !card.execMode && card.OpenType !== 'excelIn' && card.OpenType !== 'excelOut' ? - <VerifyCard - card={card} - dict={dict} - config={config} - columns={config.columns} - wrappedComponentRef={(inst) => this.verifyRef = inst} - /> : null - } - {card && card.execMode ? - <VerifyPrint - card={card} - dict={dict} - columns={config.columns} - wrappedComponentRef={(inst) => this.verifyRef = inst} - /> : null - } - {card && card.OpenType === 'excelIn' ? - <VerifyExcelIn - card={card} - dict={dict} - columns={config.columns} - wrappedComponentRef={(inst) => this.verifyRef = inst} - /> : null - } - {card && card.OpenType === 'excelOut' ? - <VerifyExcelOut - card={card} - dict={dict} - config={config} - wrappedComponentRef={(inst) => this.verifyRef = inst} - /> : null - } + {this.getVerify(card)} </Modal> </div> ) -- Gitblit v1.8.0