From c5e5a7580632bc39a9e0c78d548f22a8be5f2019 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 18 十月 2023 18:04:51 +0800 Subject: [PATCH] 2023-10-18 --- src/menu/datasource/verifycard/customscript/index.jsx | 102 +++++++++++++++++++++++++++++++------------------- 1 files changed, 63 insertions(+), 39 deletions(-) diff --git a/src/menu/datasource/verifycard/customscript/index.jsx b/src/menu/datasource/verifycard/customscript/index.jsx index 63146d0..8f28de4 100644 --- a/src/menu/datasource/verifycard/customscript/index.jsx +++ b/src/menu/datasource/verifycard/customscript/index.jsx @@ -19,7 +19,8 @@ searches: PropTypes.array, // 鎼滅储鏉′欢 systemScripts: PropTypes.array, // 绯荤粺鑴氭湰 scriptSubmit: PropTypes.func, // 鑴氭湰楠岃瘉鍚庢彁浜� - scriptsChange: PropTypes.func // 鑴氭湰楠岃瘉 + scriptsChange: PropTypes.func, + addProcess: PropTypes.func } state = { @@ -32,54 +33,41 @@ UNSAFE_componentWillMount() { const { searches } = this.props + this.getSearchField(searches) + } + + UNSAFE_componentWillReceiveProps (nextProps) { + if (!is(fromJS(this.props.searches), fromJS(nextProps.searches))) { + this.getSearchField(nextProps.searches) + } + } + + getSearchField = (searches) => { let _usefulFields = [] searches.forEach(item => { - if (!item.field) return + if (['dateweek', 'datemonth'].includes(item.type)) { + _usefulFields.push(item.key) + _usefulFields.push(item.key + '1') + } else if (item.type === 'daterange') { + let _skey = item.key + let _ekey = item.key + '1' - if (item.type === 'group') { - _usefulFields.push(item.field) - _usefulFields.push(item.datefield) - _usefulFields.push(item.datefield + '1') - } else if (['dateweek', 'datemonth', 'daterange'].includes(item.type)) { - _usefulFields.push(item.field) - _usefulFields.push(item.field + '1') - } else if (item.type === 'date' && _usefulFields.includes(item.field)) { - _usefulFields.push(item.field + '1') + if (/,/.test(item.key)) { + _skey = item.key.split(',')[0] + _ekey = item.key.split(',')[1] + } + _usefulFields.push(_skey) + _usefulFields.push(_ekey) + } else if (item.type === 'date' && _usefulFields.includes(item.key)) { + _usefulFields.push(item.key + '1') } else { - _usefulFields.push(item.field) + _usefulFields.push(item.key) } }) this.setState({ usefulFields: _usefulFields.join(', ') }) - } - - UNSAFE_componentWillReceiveProps (nextProps) { - if (!is(fromJS(this.props.searches), fromJS(nextProps.searches))) { - - let _usefulFields = [] - nextProps.searches.forEach(item => { - if (!item.field) return - - if (item.type === 'group') { - _usefulFields.push(item.field) - _usefulFields.push(item.datefield) - _usefulFields.push(item.datefield + '1') - } else if (['dateweek', 'datemonth', 'daterange'].includes(item.type)) { - _usefulFields.push(item.field) - _usefulFields.push(item.field + '1') - } else if (item.type === 'date' && _usefulFields.includes(item.field)) { - _usefulFields.push(item.field + '1') - } else { - _usefulFields.push(item.field) - } - }) - - this.setState({ - usefulFields: _usefulFields.join(', ') - }) - } } edit = (record) => { @@ -155,6 +143,25 @@ duration: 5 }) return + } else if (/\son\s+[a-z0-9_]+\.[a-z0-9_]+\s*=\s*[a-z0-9_]+\.[a-z0-9_]+/ig.test(values.sql)) { + let list = values.sql.match(/\son\s+[a-z0-9_]+\.[a-z0-9_]+\s*=\s*[a-z0-9_]+\.[a-z0-9_]+/ig) + let errors = [] + list.forEach(str => { + str = str.replace(/^\s/, '') + let strs = str.match(/(\s|=)[a-z0-9_]+\./ig) + if (strs.length === 2 && (strs[0].replace(/\s|\./g, '') === strs[1].replace(/\s|\./g, ''))) { + errors.push(str) + } + }) + + if (errors.length > 0) { + notification.warning({ + top: 92, + message: '涓嶅彲浣跨敤鍚屼竴涓〃瀛楁杩涜鍏宠仈锛�' + errors.join('銆�'), + duration: 5 + }) + return + } } let error = Utils.verifySql(values.sql, 'customscript') @@ -209,6 +216,8 @@ } selectScript = (value, option) => { + const { setting } = this.props + let _sql = this.props.form.getFieldValue('sql') if (_sql === ' ') { _sql = '' @@ -220,6 +229,18 @@ if (value === 'defaultsql') { value = this.props.defaultsql + } else if (value === 'flowstart') { + value = `/* select a.*, w.remark as remark_w, w.statusname as statusname_w,w.status as status_w,w.works_flow_param,w.modifydate as modifydate_w from (select * from ${setting.tableName} where status=0 and deleted=0 $@ and createuserid=@userid@ @$) a + inner join (select * from s_my_works_flow where works_flow_code=@works_flow_code@ and status=0 and deleted=0) w on a.id=w.works_flow_id */` + this.props.addProcess() + } else if (value === 'flowcheck') { + value = `/* select a.*, w.remark as remark_w, w.statusname as statusname_w,w.status as status_w,w.works_flow_param,w.modifydate as modifydate_w + from (select * from ${setting.tableName} where status=0 and deleted=0 ) a + inner join (select * from s_my_works_flow where works_flow_code=@works_flow_code@ and status>0 and status<888 and deleted=0) w + on a.id=w.works_flow_id + $@ inner join (select works_flow_id from s_my_works_flow_role where userid=@userid@ and works_flow_code=@works_flow_code@ and deleted=0 ) r + on r.works_flow_id=w.works_flow_id @$ */` + this.props.addProcess() } _sql = _sql.replace(/\s{6}$/, '') @@ -314,6 +335,7 @@ <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'绯荤粺鍙橀噺锛岀郴缁熶細瀹氫箟鍙橀噺骞惰祴鍊笺��'}><span style={{color: '#fa8c16'}}>UserName, FullName, RoleID, mk_departmentcode, mk_organization, mk_user_type, mk_nation, mk_province, mk_city, mk_district, mk_address</span></Tooltip>, <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'鎺掑簭銆佸垎椤典互鍙婃悳绱㈡潯浠跺彉閲忥紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆備娇鐢ˊpageSize@鎴朄orderBy@浠h〃鑷畾涔夊垎椤碉紝鎬绘暟璇蜂互mk_total杩斿洖銆�'}>orderBy, pageSize, pageIndex{usefulFields ? ', ' + usefulFields : ''}{type === 'calendar' ? ', mk_year' : ''}</Tooltip> <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'url鍙橀噺锛岃鎸夌収@xxx@鏍煎紡浣跨敤銆�'}>{urlFields ? ', ' : ''}<span style={{color: '#13c2c2'}}>{urlFields}</span></Tooltip> + {window.GLOB.process ? <Tooltip mouseLeaveDelay={0.3} mouseEnterDelay={0.3} placement="top" title={'宸ヤ綔娴佸彉閲忥紝璇锋寜鐓xxx@鏍煎紡浣跨敤銆�'}>, <span style={{color: 'purple'}}>works_flow_code</span></Tooltip> : null} </Form.Item> </Col> <Col span={8} style={{whiteSpace: 'nowrap'}}> @@ -341,6 +363,8 @@ onSelect={this.selectScript} > <Select.Option style={{whiteSpace: 'normal'}} key="default" value="defaultsql">榛樿sql</Select.Option> + {window.GLOB.process ? <Select.Option style={{whiteSpace: 'normal'}} key="flowstart" value="flowstart">榛樿sql锛堝伐浣滄祦-鍙戣捣锛�</Select.Option> : null} + {window.GLOB.process ? <Select.Option style={{whiteSpace: 'normal'}} key="flowcheck" value="flowcheck">榛樿sql锛堝伐浣滄祦-瀹℃牳锛�</Select.Option> : null} <Select.Option key="debugger" value={`z_debug: select @ErrorCode='E',@retmsg='娴嬭瘯鏂偣' goto aaa`}> 娴嬭瘯鏂偣 </Select.Option> -- Gitblit v1.8.0