| | |
| | | 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 { |
| | |
| | | } |
| | | |
| | | submit = () => { |
| | | let config = fromJS(this.props.config).toJS() |
| | | |
| | | this.settingRef.handleConfirm().then(res => { |
| | | this.setState({confirming: true}) |
| | | |
| | | if (res.resource === 'custom') { |
| | | if (res.reType === 'name') { |
| | | let map = {[res.label.toLowerCase()]: { |
| | | FieldDec: res.label, |
| | | FieldName: res.field, |
| | | datatype: '' |
| | | }} |
| | | |
| | | 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 |
| | |
| | | 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] = item |
| | | 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) => { |
| | |
| | | |
| | | 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 |
| | | 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 (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 |
| | | }) |
| | |
| | | item.action.forEach(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 |
| | | 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 |
| | | }) |
| | |
| | | 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.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 (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 (card.backElements) { // 卡片 |
| | | card.backElements = card.backElements.map(m => { |
| | | if (m.datatype === 'dynamic' && map[m.field]) { |
| | | m.field = map[m.field].FieldName |
| | | 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 (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 (card.fields) { // 表单 |
| | | card.fields = card.fields.map(m => { |
| | | if (map[m.field]) { |
| | | m.field = map[m.field].FieldName |
| | | if (m.field && map[m.field.toLowerCase()]) { |
| | | m.field = map[m.field.toLowerCase()].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.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 (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.plot) { |
| | | if (item.plot.Xaxis && map[item.plot.Xaxis]) { |
| | | item.plot.Xaxis = map[item.plot.Xaxis].FieldName |
| | | if (item.plot.Xaxis && map[item.plot.Xaxis.toLowerCase()]) { |
| | | item.plot.Xaxis = map[item.plot.Xaxis.toLowerCase()].FieldName |
| | | } |
| | | // 统计图 |
| | | if (item.plot.InfoValue && map[item.plot.InfoValue]) { |
| | | item.plot.InfoValue = map[item.plot.InfoValue].FieldName |
| | | if (item.plot.InfoValue && map[item.plot.InfoValue.toLowerCase()]) { |
| | | item.plot.InfoValue = map[item.plot.InfoValue.toLowerCase()].FieldName |
| | | } |
| | | if (item.plot.InfoType && map[item.plot.InfoType]) { |
| | | item.plot.InfoType = map[item.plot.InfoType].FieldName |
| | | if (item.plot.InfoType && map[item.plot.InfoType.toLowerCase()]) { |
| | | item.plot.InfoType = map[item.plot.InfoType.toLowerCase()].FieldName |
| | | } |
| | | // 占比图 |
| | | if (item.plot.valueField && map[item.plot.valueField]) { |
| | | item.plot.valueField = map[item.plot.valueField].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]) { |
| | | item.plot.labelField = map[item.plot.labelField].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]) { |
| | | item.plot.type = map[item.plot.type].FieldName |
| | | if (item.plot.type && map[item.plot.type.toLowerCase()]) { |
| | | item.plot.type = map[item.plot.type.toLowerCase()].FieldName |
| | | } |
| | | // 散点图 |
| | | if (item.plot.gender && map[item.plot.gender]) { |
| | | item.plot.gender = map[item.plot.gender].FieldName |
| | | 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]) { |
| | | return map[m].FieldName |
| | | if (map[m.toLowerCase()]) { |
| | | return map[m.toLowerCase()].FieldName |
| | | } |
| | | return m |
| | | }) |
| | | } else { |
| | | if (map[item.Yaxis]) { |
| | | item.Yaxis = map[item.Yaxis].FieldName |
| | | if (item.Yaxis && map[item.Yaxis.toLowerCase()]) { |
| | | item.Yaxis = map[item.Yaxis.toLowerCase()].FieldName |
| | | } |
| | | } |
| | | } |
| | |
| | | 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 |
| | | 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 |
| | | }) |
| | |
| | | }) |
| | | } 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 |
| | | 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]) { |
| | | col.field = map[col.field].FieldName |
| | | if (map[col.field.toLowerCase()]) { |
| | | col.field = map[col.field.toLowerCase()].FieldName |
| | | } |
| | | } |
| | | |
| | |
| | | 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 (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]) { |
| | | col.field = map[col.field].FieldName |
| | | if (col.field && map[col.field.toLowerCase()]) { |
| | | col.field = map[col.field.toLowerCase()].FieldName |
| | | } |
| | | if (col.datefield && map[col.datefield]) { |
| | | col.datefield = map[col.datefield].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 |
| | | }) |
| | | } |
| | | return m |
| | | }) |
| | | } 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 (col.field && map[col.field.toLowerCase()]) { |
| | | col.field = map[col.field.toLowerCase()].FieldName |
| | | } |
| | | return col |
| | | }) |
| | |
| | | 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() { |
| | | const { visible, loadingTable, tables, confirming } = this.state |