From fc8c8d714687a22f711d642d192bd4149f3b7e88 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 22 四月 2024 11:15:14 +0800 Subject: [PATCH] 2024-04-22 --- src/menu/datasource/verifycard/index.jsx | 140 +++++++++++++++++++++++++++++++++------------- 1 files changed, 100 insertions(+), 40 deletions(-) diff --git a/src/menu/datasource/verifycard/index.jsx b/src/menu/datasource/verifycard/index.jsx index a3c262b..b31ecfd 100644 --- a/src/menu/datasource/verifycard/index.jsx +++ b/src/menu/datasource/verifycard/index.jsx @@ -48,6 +48,7 @@ systemScripts: [], median: {}, visible: false, + editLineId: '', pvisible: false, reload: false, script: null, @@ -263,18 +264,18 @@ let _scriptSql = `Select distinct func+Remark as funcname,longparam, s.Sort from聽 s_custom_script s inner join (select OpenID from sapp where ID=@Appkey@) p on s.openid = case when s.appkey='' then s.openid else p.OpenID end order by s.Sort` - _scriptSql = Utils.formatOptions(_scriptSql) + _scriptSql = Utils.formatOptions(_scriptSql, 'x') let _sParam = { func: 'sPC_Get_SelectedList', LText: _scriptSql, obj_name: 'data', - arr_field: 'funcname,longparam' + arr_field: 'funcname,longparam', + exec_type: 'x' } _sParam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') - _sParam.secretkey = Utils.encrypt(_sParam.LText, _sParam.timestamp) - + _sParam.secretkey = Utils.encrypt('', _sParam.timestamp) _sParam.open_key = Utils.encryptOpenKey(_sParam.secretkey, _sParam.timestamp) // 浜戠鏁版嵁楠岃瘉 Api.getCloudConfig(_sParam).then(res => { @@ -545,7 +546,7 @@ submitDataSource = () => { const { config, mainSearch } = this.props - const { activeKey, setting, columns, subColumns, scripts, cols } = this.state + const { activeKey, setting, columns, subColumns, scripts, cols, median } = this.state if (config.subtype === 'dualdatacard') { let arr = columns.map(col => col.field.toLowerCase()) @@ -562,6 +563,42 @@ message: '瀛愯〃涓瓧娈�' + _arr.join('銆�') + '涓庝富琛ㄥ瓧娈甸噸澶嶏紒', duration: 5 }) + return Promise.reject() + } + } else if (config.subtype === 'editable') { + let _arr = [] + columns.forEach(col => { + let key = col.field.toLowerCase() + if (['jskey', 'data_type', 'bid'].includes(key)) { + _arr.push(col.field) + } + }) + + if (_arr.length > 0) { + notification.warning({ + top: 92, + message: '瀛楁闆嗕腑涓嶅彲浣跨敤' + _arr.join('銆�') + '锛佹敞锛氭瀛楁涓烘彁浜ゆ椂鐨勭郴缁熷瓧娈点��', + duration: 5 + }) + return Promise.reject() + } + } + + if (median.interType === 'system') { + let _loading = false + if (this.scriptsForm && this.scriptsForm.state.editItem) { + _loading = true + } else if (this.scriptsForm && this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))) { + _loading = true + } + + if (_loading) { + notification.warning({ + top: 92, + message: '瀛樺湪鏈繚瀛樿剼鏈紝璇风偣鍑荤‘瀹氫繚瀛橈紝鎴栫偣鍑诲彇娑堟斁寮冧慨鏀癸紒', + duration: 5 + }) + this.setState({activeKey: 'scripts'}) return Promise.reject() } } @@ -607,23 +644,6 @@ } this.sqlverify(() => { resolve({setting, columns, subColumns, scripts, cols }) }, reject, 'submit') } else if (activeKey === 'scripts') { - let _loading = false - if (this.scriptsForm && this.scriptsForm.state.editItem) { - _loading = true - } else if (this.scriptsForm && this.scriptsForm.props.form.getFieldValue('sql') && !/^\s+$/.test(this.scriptsForm.props.form.getFieldValue('sql'))) { - _loading = true - } - - if (_loading) { - notification.warning({ - top: 92, - message: '瀛樺湪鏈繚瀛樿剼鏈紝璇风偣鍑荤‘瀹氫繚瀛橈紝鎴栫偣鍑诲彇娑堟斁寮冧慨鏀癸紒', - duration: 5 - }) - reject() - return - } - this.sqlverify(() => { resolve({setting, columns, subColumns, scripts, cols }) }, reject, 'submit') } }) @@ -658,19 +678,28 @@ if (config.subtype === 'dualdatacard') { _columns = [...columns, ...subColumns] } - let r = SettingUtils.getDebugSql(setting, _scripts, _columns, searches, config.type) + + let r = SettingUtils.getDebugSql(setting, _scripts, _columns, searches, config.subtype) let _debugId = md5(r.sql) - + if (r.custompage && setting.laypage === 'true' && _columns.findIndex(col => col.field === 'mk_total') === -1) { - Modal.warning({ - title: `鏁版嵁婧愭垨鑷畾涔夎剼鏈腑浣跨敤鑷畾涔夊垎椤垫帓搴忔椂锛岃鍦ㄥ瓧娈甸泦涓坊鍔� mk_total銆俙, - okText: '鐭ラ亾浜�', - onOk: () => { - reject() - } - }) - return + if (config.subtype !== 'basetable') { + Modal.warning({ + title: `鏁版嵁婧愭垨鑷畾涔夎剼鏈腑浣跨敤鑷畾涔夊垎椤垫帓搴忔椂锛岃鍦ㄥ瓧娈甸泦涓坊鍔� mk_total銆俙, + okText: '鐭ラ亾浜�', + onOk: () => { + reject() + } + }) + return + } else { + notification.warning({ + top: 92, + message: '鏁版嵁婧愭垨鑷畾涔夎剼鏈腑浣跨敤鑷畾涔夊垎椤垫帓搴忔椂锛岃鍦ㄦ樉绀哄垪涓坊鍔� mk_total銆�', + duration: 5 + }) + } } if (debugId === _debugId) { @@ -782,7 +811,9 @@ return } + let editLineId = '' if (script) { + editLineId = script.uuid _scripts = _scripts.map(item => { if (script.uuid === item.uuid) { item.sql = scriptValue @@ -797,10 +828,11 @@ status: 'true' } + editLineId = _script.uuid _scripts.push(_script) } - this.setState({loading: true}) + this.setState({loading: true, editLineId}) this.sqlverify(() => {this.setState({scripts: _scripts, script: null, scriptValue: '', loading: false})}, () => {this.setState({loading: false})}, 'script', _scripts) } @@ -927,7 +959,8 @@ } copyColumns = () => { - const { columns } = this.state + const { columns, setting } = this.state + let m = [] let n = [] let s = [] @@ -951,8 +984,29 @@ } let oInput = document.createElement('input') - oInput.value = `/*${m.join(',')}*/ - ${n.join(',')}` + oInput.value = `create table #${setting.tableName || 'tb'} + (${m.join(',')},sort_id INT IDENTITY(1,1)) + insert into #${setting.tableName || 'tb'} + (${n.join(',')}) + select ${n.join(',')} + from ${setting.dataresource ? `(${setting.dataresource.replace(/\n/g, ' ')}) tb` : setting.tableName || 'tb'} + order by @orderBy@ + + declare @mk_total int + set @mk_total = 0 + + select @mk_total = count(1) from #${setting.tableName || 'tb'} + declare @pageIndex_top int + set @pageIndex_top=(@pageIndex@-1)*@pageSize@ + + if @mk_total > @pageIndex@*@pageSize@ + delete #${setting.tableName || 'tb'} where sort_id > @pageIndex@*@pageSize@ + + if @pageIndex_top > 0 + delete #${setting.tableName || 'tb'} where sort_id <= @pageIndex_top + + drop table #${setting.tableName || 'tb'}` + document.body.appendChild(oInput) oInput.select() document.execCommand('Copy') @@ -1079,7 +1133,7 @@ render() { const { config } = this.props - const { columns, subColumns, median, setting, scripts, colColumns, scriptsColumns, activeKey, loading, searches, defaultsql, visible, pvisible, reload, script, scriptValue, searchKey } = this.state + const { columns, subColumns, median, setting, scripts, colColumns, scriptsColumns, activeKey, loading, searches, defaultsql, visible, pvisible, reload, script, scriptValue, searchKey, editLineId } = this.state return ( <div className="model-data-source-wrap"> @@ -1103,7 +1157,7 @@ wrappedComponentRef={(inst) => this.settingForm = inst} /> : null} </TabPane> - {config.subtype !== 'basetable' ? <TabPane tab={ + {!['basetable', 'invoice', 'invTable'].includes(config.subtype) ? <TabPane tab={ <span> 瀛楁闆� {columns.length ? <span className="count-tip">{columns.length}</span> : null} @@ -1159,7 +1213,7 @@ }) return } - this.setState({visible: true, script: null, scriptValue: ''}) + this.setState({visible: true, script: null, scriptValue: '', editLineId: ''}) }}/> : null} <CustomScriptsForm type={config.type} @@ -1209,8 +1263,14 @@ </div> ) } else { + let sign = '' + if (script && script.uuid === item.uuid) { + sign = 'active' + } else if (editLineId === item.uuid) { + sign = 'edited' + } return ( - <div className={'script-item ' + (script && script.uuid === item.uuid ? 'active' : '') } key={item.uuid}> + <div className={'script-item ' + sign} key={item.uuid}> <div style={{cursor: 'pointer'}} onClick={() => { this.setState({script: item, scriptValue: item.sql}) }}> -- Gitblit v1.8.0