From 96989af7e330a08d376002b0759705a477039f61 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 19 十月 2023 19:46:41 +0800 Subject: [PATCH] Merge branch 'positec' into dms --- src/menu/datasource/index.jsx | 49 +++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 41 insertions(+), 8 deletions(-) diff --git a/src/menu/datasource/index.jsx b/src/menu/datasource/index.jsx index 26b3808..68edece 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) { @@ -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, '') @@ -209,6 +213,23 @@ if (config.subtype !== 'dualdatacard') { delete res.subColumns } 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 +248,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