From a7c6bffc152da5eeb780cca98fe73b7d90becf04 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 30 十月 2024 16:22:19 +0800 Subject: [PATCH] Merge branch 'master' into positec --- src/menu/datasource/index.jsx | 114 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 88 insertions(+), 26 deletions(-) diff --git a/src/menu/datasource/index.jsx b/src/menu/datasource/index.jsx index 769b314..dd54aa7 100644 --- a/src/menu/datasource/index.jsx +++ b/src/menu/datasource/index.jsx @@ -181,37 +181,93 @@ let maxScript = 0 let useExec = false - if (window.GLOB.funcs && window.GLOB.funcs.length > 0) { - window.GLOB.funcs.forEach(m => { - let reg = new RegExp('\\$ex@' + m.func_code + '@ex\\$', 'ig') - if (res.setting.dataresource) { - res.setting.dataresource = res.setting.dataresource.replace(reg, `/*$ex@${m.func_code}-begin*/\n${m.key_sql}\n/*@ex$-end*/`) + let sFields = [] + res.searches && res.searches.forEach(item => { + if (!item.key) return + + if (item.type === 'date') { + if (sFields.includes(item.key)) { + sFields.push(item.key + '1') + } else { + sFields.push(item.key) } - res.scripts.forEach(item => { - item.sql = item.sql.replace(reg, `/*$ex@${m.func_code}-begin*/\n${m.key_sql}\n/*@ex$-end*/`) - - if (item.status === 'false') return - - if (/exec\s/ig.test(item.sql)) { - useExec = true - maxScript = 1000 - } else if (item.sql.length > maxScript) { - maxScript = item.sql.length - } + } else if (item.type === 'dateweek' || item.type === 'range' || (item.type === 'datemonth' && item.match !== '=')) { + sFields.push(item.key) + sFields.push(item.key + '1') + } else if (item.type === 'daterange') { + if (/,/.test(item.key)) { + sFields.push(item.key.split(',')[0]) + sFields.push(item.key.split(',')[1]) + } else { + sFields.push(item.key) + sFields.push(item.key + '1') + } + } else if (item.type === 'text' || item.type === 'select') { + item.key.split(',').forEach(field => { + sFields.push(field) }) - }) - } else { - res.scripts.forEach(item => { - if (item.status === 'false') return + } else { + sFields.push(item.key) + } + }) + delete res.searches + sFields = sFields.join('|') - if (/exec\s/ig.test(item.sql)) { - useExec = true + // if (window.GLOB.funcs && window.GLOB.funcs.length > 0) { + // window.GLOB.funcs.forEach(m => { + // let reg = new RegExp('\\$ex@' + m.func_code + '@ex\\$', 'ig') + // if (res.setting.dataresource) { + // res.setting.dataresource = res.setting.dataresource.replace(reg, `/*$ex@${m.func_code}-begin*/\n${m.key_sql}\n/*@ex$-end*/`) + // } + // res.scripts.forEach(item => { + // item.sql = item.sql.replace(reg, `/*$ex@${m.func_code}-begin*/\n${m.key_sql}\n/*@ex$-end*/`) + + // if (item.status === 'false') return + + // if (/exec\s/ig.test(item.sql)) { + // useExec = true + // maxScript = 1000 + // } else if (item.sql.length > maxScript) { + // maxScript = item.sql.length + // } + // }) + // }) + // } else { + // res.scripts.forEach(item => { + // if (item.status === 'false') return + + // if (/exec\s/ig.test(item.sql)) { + // useExec = true + // maxScript = 1000 + // } else if (item.sql.length > maxScript) { + // maxScript = item.sql.length + // } + // }) + // } + + if (res.setting.interType === 'system' && res.setting.dataresource && res.setting.execute !== 'false') { + res.setting.dataresource = res.setting.dataresource.replace(/\t+|\v+/g, ' ') + if (sFields) { + if (new RegExp(`@(${sFields})@`, 'ig').test(res.setting.dataresource)) { maxScript = 1000 - } else if (item.sql.length > maxScript) { - maxScript = item.sql.length } - }) + } } + + res.scripts.forEach(item => { + if (item.status === 'false') return + + item.sql = item.sql.replace(/\t+|\v+/g, ' ') + + if (/exec\s/ig.test(item.sql)) { + useExec = true + maxScript = 1000 + } else if (sFields && new RegExp(`@(${sFields})@`, 'ig').test(item.sql)) { + maxScript = 1000 + } else if (item.sql.length > maxScript) { + maxScript = item.sql.length + } + }) res.setting.maxScript = maxScript @@ -288,6 +344,12 @@ }) } + cancel = () => { + this.verifyRef.closeDataSource(() => { + this.setState({ visible: false, loading: false }) + }) + } + creatFunc = () => { const { config } = this.props const { mainSearch } = this.state @@ -330,7 +392,7 @@ onCancel={() => {this.setState({ visible: false, loading: false }) }} footer={[ config.subtype !== 'dualdatacard' && record.interType === 'inner' ? <CreateFunc key="create" getMsg={this.creatFunc}/> : null, - <Button key="cancel" onClick={() => { this.setState({ visible: false, loading: false }) }}>鍙栨秷</Button>, + <Button key="cancel" onClick={this.cancel}>鍙栨秷</Button>, <Button key="confirm" type="primary" loading={loading} onClick={this.verifySubmit}>纭畾</Button> ]} destroyOnClose -- Gitblit v1.8.0