| | |
| | | import React, {Component} from 'react' |
| | | import React, { Component } from 'react' |
| | | import PropTypes from 'prop-types' |
| | | import { fromJS } from 'immutable' |
| | | import { Modal, Button, Drawer, Tooltip } from 'antd' |
| | |
| | | |
| | | sqlList = [] |
| | | verSqls = [] |
| | | linkMain = null |
| | | |
| | | trigger = () => { |
| | | let config = fromJS(this.props.config).toJS() |
| | |
| | | } |
| | | |
| | | this.sqlList = [] |
| | | this.linkMain = [] |
| | | |
| | | let regs = [ |
| | | { reg: /@userName@/ig, value: `'User_Name'` }, |
| | |
| | | this.verSqls = sqls |
| | | let that = this |
| | | |
| | | let formErrors = [] |
| | | if (this.linkMain.length) { |
| | | let map = new Map() |
| | | if (config.interfaces) { |
| | | config.interfaces.forEach(m => { |
| | | if (m.status !== 'true' || !m.columns) return false |
| | | |
| | | map.set(m.uuid, m.columns) |
| | | }) |
| | | } |
| | | |
| | | let forEachComs = (components) => { |
| | | components.forEach(item => { |
| | | if (item.type === 'tabs') { |
| | | item.subtabs.forEach(tab => { |
| | | forEachComs(tab.components) |
| | | }) |
| | | } else if (item.type === 'group') { |
| | | forEachComs(item.components) |
| | | } else if (item.columns && item.columns.length) { |
| | | map.set(item.uuid, item.columns) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | forEachComs(config.components) |
| | | |
| | | this.linkMain.forEach(item => { |
| | | if (item.config.wrap && item.config.wrap.datatype === 'public') return |
| | | |
| | | let supModule = '' |
| | | if (item.config.wrap && item.config.wrap.datatype === 'static') { |
| | | supModule = item.config.wrap.supModule ? item.config.wrap.supModule[item.config.wrap.supModule.length - 1] : '' |
| | | } else if (item.config.setting && item.config.setting.supModule) { |
| | | supModule = item.config.setting.supModule[item.config.setting.supModule.length - 1] || '' |
| | | if (supModule === 'empty') { |
| | | supModule = '' |
| | | } |
| | | } |
| | | |
| | | if (!supModule) return |
| | | |
| | | let cols = map.get(supModule) |
| | | |
| | | if (!cols) { |
| | | formErrors.push(<div key={item.forms[0].uuid}> |
| | | 组件<span style={{color: '#1890ff', margin: '0 2px 0 2px'}}>{item.config.name}{item.label ? '-' + item.label : ''}</span>中表单<span style={{color: 'orange', margin: '0 2px 0 2px'}}>{item.forms.map(c => c.label + ' (' + c.field + ')').join('、')}</span>无效 |
| | | </div>) |
| | | } else { |
| | | let _forms = [] |
| | | let _cols = cols.map(col => col.field.toLowerCase()) |
| | | |
| | | item.forms.forEach(m => { |
| | | if (_cols.includes(m.field.toLowerCase())) return |
| | | |
| | | _forms.push(m.label + ' (' + m.field + ')') |
| | | }) |
| | | |
| | | if (_forms.length) { |
| | | formErrors.push(<div key={item.forms[0].uuid}> |
| | | 组件<span style={{color: '#1890ff', margin: '0 2px 0 2px'}}>{item.config.name}{item.label ? '-' + item.label : ''}</span>中表单<span style={{color: 'orange', margin: '0 2px 0 2px'}}>{_forms.join('、')}</span>无效 |
| | | </div>) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | formErrors = formErrors.length ? formErrors : '' |
| | | |
| | | Modal.confirm({ |
| | | content: `当前菜单共${this.sqlList.length}个组件,${sqls.length}项脚本需要检验${sqls.length > 20 ? ',时间大概需要' + parseInt(sqls.length / 2) + '秒' : ''}。`, |
| | | content: <div style={{paddingLeft: '38px'}}> |
| | | {`当前菜单共${this.sqlList.length}个组件,${sqls.length}项脚本需要检验${sqls.length > 20 ? ',时间大概需要' + parseInt(sqls.length / 2) + '秒' : ''}。`} |
| | | {formErrors} |
| | | </div>, |
| | | onOk() { |
| | | that.setState({visible: true, status: 'loading', sqlList: fromJS(sqls).toJS(), successIds: [], errorIds: [], errorMsg: {}, execId: ''}, () => { |
| | | that.roopSql() |
| | |
| | | if (!group.subButton.Ot) { |
| | | group.subButton.Ot = item.wrap.datatype === 'static' ? 'notRequired' : 'requiredSgl' |
| | | } |
| | | |
| | | if (group.fields) { |
| | | let cells = group.fields.filter(cell => cell.type === 'linkMain') |
| | | |
| | | if (cells.length) { |
| | | this.linkMain.push({ |
| | | config: item, |
| | | forms: cells |
| | | }) |
| | | } |
| | | } |
| | | |
| | | let res = this.resetButton(item, group.subButton, process, group) |
| | | |
| | | if (res) { |
| | |
| | | |
| | | resetButton = (item, cell, process, group, isback) => { |
| | | let sql = '' |
| | | if (cell.OpenType === 'pop' || (cell.OpenType === 'funcbutton' && cell.execMode === 'pop')) { |
| | | if (cell.modal && cell.modal.fields.length) { |
| | | let cells = cell.modal.fields.filter(n => n.type === 'linkMain') |
| | | |
| | | if (cells.length) { |
| | | this.linkMain.push({ |
| | | config: item, |
| | | forms: cells, |
| | | label: cell.label |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | if (['exec', 'prompt', 'pop', 'form', 'formSubmit'].includes(cell.OpenType)) { |
| | | if (cell.intertype === 'system' || cell.procMode === 'system') { // 系统接口 |
| | | if (item.subtype === 'dualdatacard' && isback) { |