From 5046d0d13dc6a8563b8e54e31913bc44cfa1072f Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 26 四月 2022 19:23:18 +0800 Subject: [PATCH] 2022-04-26 --- src/menu/replaceField/index.jsx | 718 ++++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 481 insertions(+), 237 deletions(-) diff --git a/src/menu/replaceField/index.jsx b/src/menu/replaceField/index.jsx index 74e0380..81e4921 100644 --- a/src/menu/replaceField/index.jsx +++ b/src/menu/replaceField/index.jsx @@ -9,6 +9,7 @@ import Utils from '@/utils/utils.js' import SettingForm from './settingform' import { queryTableSql } from '@/utils/option.js' +import MKEmitter from '@/utils/events.js' import './index.scss' class ReplaceField extends Component { @@ -84,142 +85,152 @@ } submit = () => { - let config = fromJS(this.props.config).toJS() - this.settingRef.handleConfirm().then(res => { this.setState({confirming: true}) - let param = {func: 'sPC_Get_FieldName', TBName: res.table} - if (options.cloudServiceApi) { // 涓斿瓨鍦ㄤ簯绔湴鍧� - param.rduri = options.cloudServiceApi - param.userid = sessionStorage.getItem('CloudUserID') || '' - param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' - } - - Api.getSystemCacheConfig(param).then(result => { - if (!result.status) { - this.setState({ - confirming: false - }) - notification.warning({ - top: 92, - message: result.message, - duration: 5 - }) - return - } - - let map = {} - - result.FDName.forEach(item => { - if (/NVARCHAR|INT|Decimal/ig.test(item.FieldType)) { - item.datatype = item.FieldType - } - map[item.FieldDec] = item - }) - - if (this.props.type === 'custom') { - let _replace = (components) => { - return components.map(item => { - if (item.type === 'tabs') { - item.subtabs.forEach(tab => { - tab.components = _replace(tab.components) - }) - return item - } else if (item.type === 'group') { - item.components = _replace(item.components) - return item - } - - if (item.columns) { - item.columns = item.columns.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName - if (map[col.field].datatype) { - col.datatype = map[col.field].datatype - } - } - return col - }) - } - if (item.search) { - item.search = item.search.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName - } - return col - }) - } + if (res.resource === 'custom') { + if (res.reType === 'name') { + let map = {[res.label.toLowerCase()]: { + FieldDec: res.label, + FieldName: res.field, + datatype: '' + }} - if (item.action) { - item.action.forEach(m => { + this.exec(map) + } else { + let map = {[res.field.toLowerCase()]: { + FieldDec: res.label, + FieldName: res.field, + datatype: '' + }} + + this.execLabel(map) + } + } else { + let param = {func: 'sPC_Get_FieldName', TBName: res.table} + if (options.cloudServiceApi) { // 涓斿瓨鍦ㄤ簯绔湴鍧� + param.rduri = options.cloudServiceApi + param.userid = sessionStorage.getItem('CloudUserID') || '' + param.LoginUID = sessionStorage.getItem('CloudLoginUID') || '' + } + + Api.getSystemCacheConfig(param).then(result => { + if (!result.status) { + this.setState({ + confirming: false + }) + notification.warning({ + top: 92, + message: result.message, + duration: 5 + }) + return + } + + if (res.reType === 'name') { + let map = {} + + result.FDName.forEach(item => { + if (!item.FieldDec) return + if (/NVARCHAR|INT|Decimal/ig.test(item.FieldType)) { + item.datatype = item.FieldType + } + map[item.FieldDec.toLowerCase()] = item + }) + + this.exec(map) + } else { + let map = {} + + result.FDName.forEach(item => { + if (!item.FieldName) return + map[item.FieldName.toLowerCase()] = item + }) + + this.execLabel(map) + } + }) + } + }) + } + + exec = (map) => { + let config = fromJS(this.props.config).toJS() + + if (this.props.type === 'custom') { + let _replace = (components) => { + return components.map(item => { + if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + tab.components = _replace(tab.components) + }) + return item + } else if (item.type === 'group') { + item.components = _replace(item.components) + return item + } + + if (item.columns) { + item.columns = item.columns.map(col => { + let cell = map[col.field.toLowerCase()] + if (cell) { + col.field = cell.FieldName + if (cell.datatype) { + col.datatype = cell.datatype + } + } + return col + }) + } + if (item.search) { + item.search = item.search.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + return col + }) + } + + if (item.action) { + item.action.forEach(m => { + if (m.modal && m.modal.fields) { + m.modal.fields = m.modal.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + return col + }) + } + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Column = map[col.Column.toLowerCase()].FieldName + } + return col + }) + } + }) + } + + if (item.subcards) { + item.subcards.forEach(card => { + if (card.elements) { // 鍗$墖 + card.elements = card.elements.map(m => { + if (m.datatype === 'dynamic' && map[m.field.toLowerCase()]) { + m.field = map[m.field.toLowerCase()].FieldName + } if (m.modal && m.modal.fields) { m.modal.fields = m.modal.fields.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName } return col }) } - }) - } - - if (item.subcards) { - item.subcards.forEach(card => { - if (card.elements) { // 鍗$墖 - card.elements = card.elements.map(m => { - if (m.datatype === 'dynamic' && map[m.field]) { - m.field = map[m.field].FieldName - } - if (m.modal && m.modal.fields) { - m.modal.fields = m.modal.fields.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName - } - return col - }) - } - return m - }) - } - - if (card.backElements) { // 鍗$墖 - card.backElements = card.backElements.map(m => { - if (m.datatype === 'dynamic' && map[m.field]) { - m.field = map[m.field].FieldName - } - if (m.modal && m.modal.fields) { - m.modal.fields = m.modal.fields.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName - } - return col - }) - } - return m - }) - } - - if (card.fields) { // 琛ㄥ崟 - card.fields = card.fields.map(m => { - if (map[m.field]) { - m.field = map[m.field].FieldName - } - return m - }) - } - }) - } - - if (item.elements) { - item.elements = item.elements.map(m => { - if (m.datatype === 'dynamic' && map[m.field]) { - m.field = map[m.field].FieldName - } - if (m.modal && m.modal.fields) { - m.modal.fields = m.modal.fields.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Column = map[col.Column.toLowerCase()].FieldName } return col }) @@ -227,131 +238,364 @@ return m }) } - - if (item.plot) { - if (item.plot.Xaxis && map[item.plot.Xaxis]) { - item.plot.Xaxis = map[item.plot.Xaxis].FieldName - } - // 缁熻鍥� - if (item.plot.InfoValue && map[item.plot.InfoValue]) { - item.plot.InfoValue = map[item.plot.InfoValue].FieldName - } - if (item.plot.InfoType && map[item.plot.InfoType]) { - item.plot.InfoType = map[item.plot.InfoType].FieldName - } - // 鍗犳瘮鍥� - if (item.plot.valueField && map[item.plot.valueField]) { - item.plot.valueField = map[item.plot.valueField].FieldName - } - if (item.plot.labelField && map[item.plot.labelField]) { - item.plot.labelField = map[item.plot.labelField].FieldName - } - // 楗煎浘 - if (item.plot.type && map[item.plot.type]) { - item.plot.type = map[item.plot.type].FieldName - } - // 鏁g偣鍥� - if (item.plot.gender && map[item.plot.gender]) { - item.plot.gender = map[item.plot.gender].FieldName - } - if (item.Yaxis) { - if (Array.isArray(item.Yaxis)) { - item.Yaxis = item.Yaxis.map(m => { - if (map[m]) { - return map[m].FieldName - } - return m - }) - } else { - if (map[item.Yaxis]) { - item.Yaxis = map[item.Yaxis].FieldName - } + + if (card.backElements) { // 鍗$墖 + card.backElements = card.backElements.map(m => { + if (m.datatype === 'dynamic' && map[m.field.toLowerCase()]) { + m.field = map[m.field.toLowerCase()].FieldName } - } - } - - if (item.cols) { - let _update = (cols) => { - return cols.map(col => { - if (col.type === 'action' && col.elements) { - col.elements = col.elements.map(m => { - if (m.modal && m.modal.fields) { - m.modal.fields = m.modal.fields.map(col => { - if (map[col.field]) { - col.field = map[col.field].FieldName - } - return col - }) - } - - return m - }) - } else if (col.type === 'custom' && col.elements) { - col.elements = col.elements.map(m => { - if (m.datatype === 'dynamic' && map[m.field]) { - m.field = map[m.field].FieldName - } - - return m - }) - } else if (col.type === 'colspan') { - col.subcols = _update(col.subcols) - } else if (col.field) { - if (map[col.field]) { - col.field = map[col.field].FieldName + if (m.modal && m.modal.fields) { + m.modal.fields = m.modal.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName } - } - - return col - }) - } - - item.cols = _update(item.cols) + return col + }) + } + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Column = map[col.Column.toLowerCase()].FieldName + } + return col + }) + } + return m + }) } - - return item + + if (card.fields) { // 琛ㄥ崟 + card.fields = card.fields.map(m => { + if (m.field && map[m.field.toLowerCase()]) { + m.field = map[m.field.toLowerCase()].FieldName + } + return m + }) + } }) } - - config.components = _replace(config.components) - } else if (this.props.type === 'table') { - config.columns = config.columns.map(col => { - if (col.field && map[col.field]) { - col.field = map[col.field].FieldName + + if (item.elements) { + item.elements = item.elements.map(m => { + if (m.datatype === 'dynamic' && map[m.field.toLowerCase()]) { + m.field = map[m.field.toLowerCase()].FieldName + } + if (m.modal && m.modal.fields) { + m.modal.fields = m.modal.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + return col + }) + } + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Column = map[col.Column.toLowerCase()].FieldName + } + return col + }) + } + return m + }) + } + + if (item.plot) { + if (item.plot.Xaxis && map[item.plot.Xaxis.toLowerCase()]) { + item.plot.Xaxis = map[item.plot.Xaxis.toLowerCase()].FieldName } - return col - }) - config.search = config.search.map(col => { - if (col.field && map[col.field]) { - col.field = map[col.field].FieldName + // 缁熻鍥� + if (item.plot.InfoValue && map[item.plot.InfoValue.toLowerCase()]) { + item.plot.InfoValue = map[item.plot.InfoValue.toLowerCase()].FieldName } - if (col.datefield && map[col.datefield]) { - col.datefield = map[col.datefield].FieldName + if (item.plot.InfoType && map[item.plot.InfoType.toLowerCase()]) { + item.plot.InfoType = map[item.plot.InfoType.toLowerCase()].FieldName } - return col - }) - } else if (this.props.type === 'form') { - config.fields = config.fields.map(col => { - if (col.field && map[col.field]) { - col.field = map[col.field].FieldName + // 鍗犳瘮鍥� + if (item.plot.valueField && map[item.plot.valueField.toLowerCase()]) { + item.plot.valueField = map[item.plot.valueField.toLowerCase()].FieldName + } + if (item.plot.labelField && map[item.plot.labelField.toLowerCase()]) { + item.plot.labelField = map[item.plot.labelField.toLowerCase()].FieldName + } + // 楗煎浘 + if (item.plot.type && map[item.plot.type.toLowerCase()]) { + item.plot.type = map[item.plot.type.toLowerCase()].FieldName + } + // 鏁g偣鍥� + if (item.plot.gender && map[item.plot.gender.toLowerCase()]) { + item.plot.gender = map[item.plot.gender.toLowerCase()].FieldName + } + if (item.Yaxis) { + if (Array.isArray(item.Yaxis)) { + item.Yaxis = item.Yaxis.map(m => { + if (map[m.toLowerCase()]) { + return map[m.toLowerCase()].FieldName + } + return m + }) + } else { + if (item.Yaxis && map[item.Yaxis.toLowerCase()]) { + item.Yaxis = map[item.Yaxis.toLowerCase()].FieldName + } + } + } + } + + if (item.cols) { + let _update = (cols) => { + return cols.map(col => { + if (col.type === 'action' && col.elements) { + col.elements = col.elements.map(m => { + if (m.modal && m.modal.fields) { + m.modal.fields = m.modal.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + return col + }) + } + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Column = map[col.Column.toLowerCase()].FieldName + } + return col + }) + } + + return m + }) + } else if (col.type === 'custom' && col.elements) { + col.elements = col.elements.map(m => { + if (m.datatype === 'dynamic' && map[m.field.toLowerCase()]) { + m.field = map[m.field.toLowerCase()].FieldName + } + + return m + }) + } else if (col.type === 'colspan') { + col.subcols = _update(col.subcols) + } else if (col.field) { + if (map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + } + + return col + }) + } + + item.cols = _update(item.cols) + } + + return item + }) + } + + config.components = _replace(config.components) + } else if (this.props.type === 'table') { + config.columns = config.columns.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + return col + }) + + config.search = config.search.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + if (col.datefield && map[col.datefield.toLowerCase()]) { + col.datefield = map[col.datefield.toLowerCase()].FieldName + } + return col + }) + + config.action = config.action.map(m => { + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Column = map[col.Column.toLowerCase()].FieldName } return col }) } - - this.setState({ - confirming: false, - visible: false - }) - - notification.success({ - top: 92, - message: '鏇存柊宸插畬鎴愩��', - duration: 3 - }) - this.props.updateConfig(config) + return m }) + } else if (this.props.type === 'form') { + config.fields = config.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.field = map[col.field.toLowerCase()].FieldName + } + return col + }) + } + + this.setState({ + confirming: false, + visible: false }) + + notification.success({ + top: 92, + message: '鏇存柊宸插畬鎴愩��', + duration: 3 + }) + this.props.updateConfig(config) + + setTimeout(() => { + MKEmitter.emit('revert') + }, 300) + } + + execLabel = (map) => { + let config = fromJS(this.props.config).toJS() + + if (this.props.type === 'custom') { + let _replace = (components) => { + return components.map(item => { + if (item.type === 'tabs') { + item.subtabs.forEach(tab => { + tab.components = _replace(tab.components) + }) + return item + } else if (item.type === 'group') { + item.components = _replace(item.components) + return item + } + + if (item.columns) { + item.columns = item.columns.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + } + if (item.search) { + item.search = item.search.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + } + + if (item.action) { + item.action.forEach(m => { + if (m.modal && m.modal.fields) { + m.modal.fields = m.modal.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + } + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Text = map[col.Column.toLowerCase()].FieldDec + } + return col + }) + } + }) + } + + if (item.cols) { + let _update = (cols) => { + return cols.map(col => { + if (col.type === 'action' && col.elements) { + col.elements = col.elements.map(m => { + if (m.modal && m.modal.fields) { + m.modal.fields = m.modal.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + } + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Text = map[col.Column.toLowerCase()].FieldDec + } + return col + }) + } + + return m + }) + } else if (col.type === 'colspan') { + col.subcols = _update(col.subcols) + } else if (col.field) { + if (map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + } + + return col + }) + } + + item.cols = _update(item.cols) + } + + return item + }) + } + + config.components = _replace(config.components) + } else if (this.props.type === 'table') { + config.columns = config.columns.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + + config.search = config.search.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + + config.action = config.action.map(m => { + if (m.verify && m.verify.columns) { + m.verify.columns = m.verify.columns.map(col => { + if (col.Column && map[col.Column.toLowerCase()]) { + col.Text = map[col.Column.toLowerCase()].FieldDec + } + return col + }) + } + return m + }) + } else if (this.props.type === 'form') { + config.fields = config.fields.map(col => { + if (col.field && map[col.field.toLowerCase()]) { + col.label = map[col.field.toLowerCase()].FieldDec + } + return col + }) + } + + this.setState({ + confirming: false, + visible: false + }) + + notification.success({ + top: 92, + message: '鏇存柊宸插畬鎴愩��', + duration: 3 + }) + this.props.updateConfig(config) + setTimeout(() => { + MKEmitter.emit('revert') + }, 500) } render() { -- Gitblit v1.8.0