From 8e003c1a94d26cc4d477e7aa03593ccb4d7e6c61 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 11 十月 2024 17:47:40 +0800 Subject: [PATCH] 2024-10-11 --- src/menu/datasource/verifycard/index.jsx | 109 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 87 insertions(+), 22 deletions(-) diff --git a/src/menu/datasource/verifycard/index.jsx b/src/menu/datasource/verifycard/index.jsx index b59417f..500966b 100644 --- a/src/menu/datasource/verifycard/index.jsx +++ b/src/menu/datasource/verifycard/index.jsx @@ -23,6 +23,7 @@ const { Search } = Input const { confirm } = Modal +const ExcelOut = asyncComponent(() => import('./excelout')) const CodeMirror = asyncComponent(() => import('@/templates/zshare/codemirror')) const FieldsComponent = asyncComponent(() => import('@/templates/sharecomponent/fieldscomponent')) const EditTable = asyncComponent(() => import('@/templates/zshare/editTable')) @@ -41,9 +42,8 @@ loading: false, colLoading: false, searchKey: '', - initsql: '', // sql楠岃瘉鏃跺彉閲忓0鏄庡強璧嬪�� usefulfields: '', - defaultsql: '', // 榛樿Sql + defaultsql: '', systemScripts: [], median: {}, visible: false, @@ -51,6 +51,7 @@ pvisible: false, reload: false, script: null, + oriConfig: null, scriptValue: '', cols: null, colColumns: [ @@ -200,17 +201,17 @@ let _setting = fromJS(config.setting).toJS() let scripts = config.scripts ? fromJS(config.scripts).toJS() : [] - if (window.GLOB.funcs && window.GLOB.funcs.length > 0) { - window.GLOB.funcs.forEach(m => { - let reg = new RegExp(`\\/\\*\\$ex@${m.func_code}-begin\\*\\/[\\s\\S]+\\/\\*@ex\\$-end\\*\\/`, 'ig') - if (_setting.dataresource) { - _setting.dataresource = _setting.dataresource.replace(reg, `$ex@${m.func_code}@ex$`) - } - scripts && scripts.forEach(item => { - item.sql = item.sql.replace(reg, `$ex@${m.func_code}@ex$`) - }) - }) - } + // if (window.GLOB.funcs && window.GLOB.funcs.length > 0) { + // window.GLOB.funcs.forEach(m => { + // let reg = new RegExp(`\\/\\*\\$ex@${m.func_code}-begin\\*\\/[\\s\\S]+\\/\\*@ex\\$-end\\*\\/`, 'ig') + // if (_setting.dataresource) { + // _setting.dataresource = _setting.dataresource.replace(reg, `$ex@${m.func_code}@ex$`) + // } + // scripts && scripts.forEach(item => { + // item.sql = item.sql.replace(reg, `$ex@${m.func_code}@ex$`) + // }) + // }) + // } let columns = config.columns ? fromJS(config.columns).toJS() : [] let subColumns = config.subColumns ? fromJS(config.subColumns).toJS() : [] @@ -249,7 +250,13 @@ median: _setting, searches: formatSearch(search), searchKey: '', - debugId: _setting.debugId || '' + debugId: _setting.debugId || '', + oriConfig: fromJS({ + scripts, + columns: columns, + subColumns: subColumns, + setting: _setting + }).toJS() }) this.getsysScript() @@ -547,7 +554,7 @@ submitDataSource = () => { const { config, mainSearch } = this.props - const { activeKey, setting, columns, subColumns, scripts, cols, median } = this.state + const { activeKey, setting, columns, subColumns, scripts, cols, median, searches } = this.state if (config.subtype === 'dualdatacard') { let arr = columns.map(col => col.field.toLowerCase()) @@ -612,12 +619,13 @@ if (res.useMSearch === 'true') { // 浣跨敤涓绘悳绱㈡潯浠� search = [...search, ...mainSearch] } + let _searches = formatSearch(search) this.setState({ - searches: formatSearch(search), + searches: _searches, setting: res }, () => { - this.sqlverify(() => { resolve({setting: res, columns, subColumns, scripts, cols }) }, reject, 'submit') + this.sqlverify(() => { resolve({setting: res, columns, subColumns, scripts, cols, searches: _searches }) }, reject, 'submit') }) }, () => { reject() @@ -632,7 +640,7 @@ reject() return } - this.sqlverify(() => { resolve({setting, columns, subColumns, scripts, cols }) }, reject, 'submit') + this.sqlverify(() => { resolve({setting, columns, subColumns, scripts, cols, searches }) }, reject, 'submit') } else if (activeKey === 'subcolumns') { if (this.subdatasource && this.subdatasource.state.editingKey) { notification.warning({ @@ -643,11 +651,37 @@ reject() return } - this.sqlverify(() => { resolve({setting, columns, subColumns, scripts, cols }) }, reject, 'submit') + this.sqlverify(() => { resolve({setting, columns, subColumns, scripts, cols, searches }) }, reject, 'submit') } else if (activeKey === 'scripts') { - this.sqlverify(() => { resolve({setting, columns, subColumns, scripts, cols }) }, reject, 'submit') + this.sqlverify(() => { resolve({setting, columns, subColumns, scripts, cols, searches }) }, reject, 'submit') } }) + } + + closeDataSource = (callback) => { + const { setting, columns, subColumns, scripts, oriConfig } = this.state + + let line = scripts.map(item => item.sql).join('') + line += columns.map(item => item.field + item.datatype).join('') + line += subColumns.map(item => item.field + item.datatype).join('') + line += setting.interType + (setting.dataresource || '') + (setting.order || '') + (setting.primaryKey || '') + + let _line = oriConfig.scripts.map(item => item.sql).join('') + _line += oriConfig.columns.map(item => item.field + item.datatype).join('') + _line += oriConfig.subColumns.map(item => item.field + item.datatype).join('') + _line += oriConfig.setting.interType + (oriConfig.setting.dataresource || '') + (oriConfig.setting.order || '') + (oriConfig.setting.primaryKey || '') + + if (line !== _line) { + confirm({ + content: '鏁版嵁婧愬凡淇敼锛岀‘瀹氬彇娑堝悧锛�', + onOk() { + callback() + }, + onCancel() {} + }) + } else { + callback() + } } sqlverify = (resolve, reject, type, testScripts) => { @@ -985,7 +1019,7 @@ }) if (window.debugger) { - console.info('select ' + s.join(', ')) + window.mkInfo('select ' + s.join(', ')) } let extend = '' @@ -1152,6 +1186,33 @@ }) } + tolowercase = (type) => { + const that = this + confirm({ + content: type === 'sub' ? '纭畾灏嗗瓙琛ㄥ瓧娈佃浆涓哄皬鍐欏悧锛�' : '纭畾灏嗗瓧娈佃浆涓哄皬鍐欏悧锛�', + onOk() { + that.execlowercase(type) + }, + onCancel() {} + }) + } + + execlowercase = (type) => { + const { subColumns, columns } = this.state + + if (type === 'sub') { + this.setState({subColumns: fromJS(subColumns).toJS().map(col => { + col.field = col.field.toLowerCase() + return col + })}) + } else { + this.setState({columns: fromJS(columns).toJS().map(col => { + col.field = col.field.toLowerCase() + return col + })}) + } + } + /** * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊 */ @@ -1199,6 +1260,8 @@ type="fields" updatefield={this.updatefields} /> + <SwapOutlined className="columns-lowercase" title="杞皬鍐�" onClick={() => this.tolowercase()}/> + <ExcelOut data={columns} setting={setting}/> <EditTable actions={['edit', 'move', 'copy', 'del', 'clear']} searchKey={searchKey} type="datasourcefield" wrappedComponentRef={(inst) => this.datasource = inst} data={columns} columns={colColumns} onChange={(columns) => this.setState({columns})}/> </TabPane> : <TabPane tab={ <span> @@ -1207,6 +1270,7 @@ </span> } key="columns"> <div className="base-table-columns"></div> + <ExcelOut data={columns} setting={setting}/> <EditTable actions={[]} searchKey={searchKey} type="datasourcefield" data={columns} columns={colColumns}/> </TabPane>} {config.subtype === 'dualdatacard' ? <TabPane tab={ @@ -1221,6 +1285,8 @@ type="fields" updatefield={this.updateSubfields} /> + <SwapOutlined className="columns-lowercase" title="杞皬鍐�" onClick={() => this.tolowercase('sub')}/> + <ExcelOut data={subColumns} setting={setting}/> <EditTable actions={['edit', 'move', 'copy', 'del', 'clear']} searchKey={searchKey} type="datasourcefield" wrappedComponentRef={(inst) => this.subdatasource = inst} data={subColumns} columns={colColumns} onChange={(subColumns) => this.setState({subColumns})}/> </TabPane> : null} <TabPane tab={ @@ -1251,7 +1317,6 @@ setting={setting} searches={searches} defaultsql={defaultsql} - initsql={this.state.initsql} customScripts={scripts} systemScripts={this.state.systemScripts} scriptsChange={this.scriptsChange} -- Gitblit v1.8.0