From f6c788403ccd2a216d6ba793ed591379c9d02dc5 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 06 五月 2024 10:31:12 +0800 Subject: [PATCH] 2024-05-06 --- src/menu/datasource/index.jsx | 66 ++++++++++++++++++++++++++------- 1 files changed, 52 insertions(+), 14 deletions(-) diff --git a/src/menu/datasource/index.jsx b/src/menu/datasource/index.jsx index 26b3808..10fedf6 100644 --- a/src/menu/datasource/index.jsx +++ b/src/menu/datasource/index.jsx @@ -6,6 +6,7 @@ import VerifyCard from './verifycard' import CreateFunc from '@/templates/zshare/createfunc' +import MKEmitter from '@/utils/events.js' import './index.scss' class DataSource extends Component { @@ -20,14 +21,7 @@ mainSearch: [], visible: false, loading: false, - setting: null, record: {} - } - - UNSAFE_componentWillMount () { - const { config } = this.props - - this.setState({setting: fromJS(config.setting).toJS()}) } shouldComponentUpdate (nextProps, nextState) { @@ -37,11 +31,6 @@ editDataSource = () => { const { config } = this.props const { appType } = this.state - - if (config.type === 'interface') { // 鍏叡鏁版嵁婧愪笉浣跨敤鎼滅储 - this.setState({visible: true}) - return - } let search = [] let menu = fromJS(window.GLOB.customMenu).toJS() @@ -101,6 +90,11 @@ }) }) } + } else if (config.type === 'interface') { + menu.components.forEach(item => { + if (item.type !== 'search') return + search = item.search + }) } else { let filterComponent = (box, mainSearch) => { box.components.forEach(item => { @@ -153,15 +147,25 @@ res.setting.supModule = ['empty'] } + if (!res.setting.primaryKey && res.columns && res.columns.length > 0) { + res.columns.forEach(col => { + if (col.field.toLowerCase() === 'id') { + res.setting.primaryKey = col.field + } + }) + } + if (res.columns) { res.columns = res.columns.map(item => { - if (/int/ig.test(item.datatype)) { item.type = 'number' item.decimal = 0 } else if (/Decimal/ig.test(item.datatype)) { item.type = 'number' item.decimal = +item.datatype.replace(/^Decimal\(18,/ig, '').replace(/\)/ig, '') + } else if (/^date/ig.test(item.datatype)) { + item.type = 'text' + item.fieldlength = 50 } else { item.type = 'text' item.fieldlength = +item.datatype.replace(/^Nvarchar\(/ig, '').replace(/\)/ig, '') @@ -169,7 +173,9 @@ return item }) - res.columns.reverse() + if (!config.fixedCol) { + res.columns.reverse() + } } let maxScript = 0 @@ -208,7 +214,27 @@ if (config.subtype !== 'dualdatacard') { delete res.subColumns + if (config.type === 'interface') { + res.setting.laypage = 'false' + } } else { + res.subColumns = res.subColumns.map(item => { + if (/int/ig.test(item.datatype)) { + item.type = 'number' + item.decimal = 0 + } else if (/Decimal/ig.test(item.datatype)) { + item.type = 'number' + item.decimal = +item.datatype.replace(/^Decimal\(18,/ig, '').replace(/\)/ig, '') + } else if (/^date/ig.test(item.datatype)) { + item.type = 'text' + item.fieldlength = 50 + } else { + item.type = 'text' + item.fieldlength = +item.datatype.replace(/^Nvarchar\(/ig, '').replace(/\)/ig, '') + } + return item + }) + res.subColumns.reverse() } @@ -227,7 +253,19 @@ } this.setState({loading: false, visible: false}) + + if (res.cols) { + res.cols = [...config.cols, ...res.cols] + } else { + delete res.cols + } this.props.updateConfig({...config, ...res}) + + if (res.setting && res.setting.tableName && config.setting && !config.setting.tableName) { + setTimeout(() => { + MKEmitter.emit('publicTableChange', res.setting.tableName, 'init') + }, 150) + } }, () => { this.setState({loading: false}) }) -- Gitblit v1.8.0