From a9b02f6862522b54d0824152017bf2acfec2af7b Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 21 三月 2024 10:29:50 +0800 Subject: [PATCH] 2024-03-21 --- src/tabviews/custom/components/table/edit-table/normalTable/index.jsx | 172 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 123 insertions(+), 49 deletions(-) diff --git a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx index ed634a0..a7571dd 100644 --- a/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx +++ b/src/tabviews/custom/components/table/edit-table/normalTable/index.jsx @@ -55,7 +55,7 @@ this.node.blur() - if (config.enter === '$noAct') return + if (/\$noAct/.test(config.enter)) return if (/\$next/.test(config.enter)) { MKEmitter.emit('nextLine' + config.tableId, lineId, config.enter.replace('$next_', '')) @@ -191,7 +191,7 @@ this.props.onChange(values) - if (config.enter === '$noAct') return + if (/\$noAct/.test(config.enter)) return if (/\$next/.test(config.enter)) { MKEmitter.emit('nextLine' + config.tableId, lineId, config.enter.replace('$next_', '')) @@ -283,9 +283,11 @@ this.props.onChange(values, val) + if (config.enter === '$noActX') return + this.node.blur() - if (config.enter === '$noAct') return + if (/\$noAct/.test(config.enter)) return setTimeout(() => { if (/\$next/.test(config.enter)) { @@ -308,7 +310,7 @@ const { config, lineId } = this.props if (config.$ctrl) { - MKEmitter.emit('colBlur' + config.tableId, lineId, config.uuid) + MKEmitter.emit('colBlur' + config.tableId, lineId, config.uuid, true) } setTimeout(() => { @@ -408,7 +410,7 @@ this.node.blur() - if (config.enter === '$noAct') return + if (/\$noAct/.test(config.enter)) return if (/\$next/.test(config.enter)) { MKEmitter.emit('nextLine' + config.tableId, lineId, config.enter.replace('$next_', '')) @@ -536,7 +538,7 @@ this.node.blur() - if (config.enter === '$noAct') return + if (/\$noAct/.test(config.enter)) return setTimeout(() => { if (/\$next/.test(config.enter)) { @@ -750,6 +752,10 @@ } else if (content === config.closeVal) { content = config.closeText } + } else if (col.editType === 'popSelect') { + if (col.showField) { + content = record[col.showField] || content + } } if (content !== '') { @@ -759,6 +765,10 @@ content = `${content.substr(0, 4)}-${content.substr(5, 2)}-${content.substr(8, 2)} ${content.substr(11, 2)}:${content.substr(14, 2)}:${content.substr(17, 2)}` } else if (col.textFormat === 'encryption') { content = <span>{col.prefix || ''}<Encrypts value={content} />{col.postfix || ''}</span> + } + + if (col.noValue === 'hide' && content < '1949-10-02') { + content = '' } if (col.textFormat !== 'encryption') { @@ -807,8 +817,13 @@ <MkDatePicker config={col} lineId={record.$$uuid} defaultValue={_value || null} autoFocus={true} onChange={this.onColChange} onBlur={() => this.setState({editing: false})}/> </td>) } else if (col.editType === 'popSelect') { + let showValue = '' + if (col.showField) { + showValue = record[col.showField] || '' + } + return (<td onClick={(e) => e.stopPropagation()} className="editing_table_cell"> - <MKPopSelect config={col} lineId={record.$$uuid} defaultValue={_value} BID={record.$$BID} autoFocus={true} onChange={this.onColChange} onBlur={() => this.setState({editing: false})}/> + <MKPopSelect config={col} lineId={record.$$uuid} defaultValue={_value} showValue={showValue} BID={record.$$BID} autoFocus={true} onChange={this.onColChange} onBlur={() => this.setState({editing: false})}/> </td>) } else { return (<td onClick={(e) => e.stopPropagation()} className="editing_table_cell"> @@ -1054,8 +1069,13 @@ <MkDatePicker config={col} lineId={record.$$uuid} defaultValue={_value || null} autoFocus={false} onChange={this.onColChange}/> ) } else if (col.editType === 'popSelect') { + let showValue = '' + if (col.showField) { + showValue = record[col.showField] || '' + } + children = ( - <MKPopSelect config={col} lineId={record.$$uuid} defaultValue={_value} BID={record.$$BID} autoFocus={false} onChange={this.onColChange}/> + <MKPopSelect config={col} lineId={record.$$uuid} defaultValue={_value} showValue={showValue} BID={record.$$BID} autoFocus={false} onChange={this.onColChange}/> ) } else { children = ( @@ -1076,6 +1096,10 @@ } else if (content === config.closeVal) { content = config.closeText } + } else if (col.editType === 'popSelect') { + if (col.showField) { + content = record[col.showField] || content + } } if (content !== '') { @@ -1085,6 +1109,10 @@ content = `${content.substr(0, 4)}-${content.substr(5, 2)}-${content.substr(8, 2)} ${content.substr(11, 2)}:${content.substr(14, 2)}:${content.substr(17, 2)}` } else if (col.textFormat === 'encryption') { content = <span>{col.prefix || ''}<Encrypts value={content} />{col.postfix || ''}</span> + } + + if (col.noValue === 'hide' && content < '1949-10-02') { + content = '' } if (col.textFormat !== 'encryption') { @@ -1345,6 +1373,7 @@ timer = null focusId = '' blurId = '' + colId = '' UNSAFE_componentWillMount () { const { setting, fields, columns, BID, colsCtrls } = this.props @@ -1389,7 +1418,7 @@ if (item.resourceType === '1') { let _option = Utils.getSelectQueryOptions(item) - if (/@BID@/ig.test(_option.sql)) { + if (/@BID@/ig.test(_option.sql) && setting.supModule) { hasBid = true } @@ -1470,6 +1499,10 @@ pageOptions = pageOptions.sort((a, b) => a - b) } + if (setting.maxPageSize) { + pageOptions = pageOptions.filter(item => item <= setting.maxPageSize) + } + let allColumns = null if (colsCtrls) { allColumns = [..._columns] @@ -1490,14 +1523,11 @@ pageOptions, columns: _columns, tableId: setting.tableId, - orderfields + orderfields, + deForms: hasBid ? deForms : null }, () => { - if (deForms.length > 0) { - if (hasBid && setting.supModule && !BID) { - this.setState({ deForms }) - } else { - this.improveActionForm(deForms, BID) - } + if (deForms.length > 0 && (!hasBid || BID)) { + this.improveActionForm(deForms, BID) } }) } @@ -1552,7 +1582,11 @@ MKEmitter.removeListener('changeRecord' + tableId, this.changeRecord) } - colBlur = (lineId) => { + colBlur = (lineId, colId, defer) => { + if (defer && this.focusId === lineId && this.colId !== colId) { + return + } + this.blurId = lineId this.focusId = '' @@ -1565,8 +1599,9 @@ }, 150) } - colFocus = (lineId) => { + colFocus = (lineId, colId) => { this.focusId = lineId + this.colId = colId } checkLine = () => { @@ -1673,6 +1708,9 @@ result = originVal === contrastVal } else if (item.match === '!=') { result = originVal !== contrastVal + } else if (item.match === 'regexp') { + let reg = new RegExp(item.contrastValue, 'ig') + result = reg.test(originVal) } else { originVal = isNaN(originVal) ? originVal : +originVal contrastVal = isNaN(contrastVal) ? contrastVal : +contrastVal @@ -1708,9 +1746,11 @@ } transferData = (data, type) => { - const { edData } = this.state + const { edData, tableId } = this.state - if (type === 'line') { + if (type === 'delete') { + + } else if (type === 'line') { let value = '' Object.keys(data).sort().forEach(key => { if (/^\$/.test(key)) return @@ -1728,14 +1768,18 @@ }) } - if (type !== 'line') { - let index = edData.findIndex(item => !item.$origin && !item.$forbid) + if (type === 'delete') { + let _edData = this.state.edData.filter(item => item.$$uuid !== data) - if (index > -1) { - this.setState({visible: true, midData: data}) - } else { - this.updateMutil(data) - } + this.setState({edData: _edData, reseting: true}, () => { + this.setState({reseting: false}) + + if (this.focusId) { + setTimeout(() => { + MKEmitter.emit('setFocus' + tableId, this.focusId, this.colId) + }, 10) + } + }) } else if (type === 'line') { let _edData = this.state.edData.map(item => { if (item.$$uuid === data.$$uuid) { @@ -1747,7 +1791,21 @@ this.setState({edData: _edData, reseting: true}, () => { this.setState({reseting: false}) + + if (this.focusId) { + setTimeout(() => { + MKEmitter.emit('setFocus' + tableId, this.focusId, this.colId) + }, 10) + } }) + } else { + let index = edData.findIndex(item => !item.$origin && !item.$forbid) + + if (index > -1) { + this.setState({visible: true, midData: data}) + } else { + this.updateMutil(data) + } } } @@ -1793,12 +1851,9 @@ } improveActionForm = (deForms, BID) => { - const { setting } = this.props - let deffers = [] let mainItems = [] // 浜戠鎴栧崟鐐规暟鎹� let localItems = [] // 鏈湴鏁版嵁 - let cache = setting.cache !== 'false' let debug = window.GLOB.debugger === true let _sql = `Declare @mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20) select @mk_departmentcode='${sessionStorage.getItem('departmentcode') || ''}',@mk_organization='${sessionStorage.getItem('organization') || ''}',@mk_user_type='${sessionStorage.getItem('mk_user_type') || ''}'\n` let _sso = _sql @@ -1844,13 +1899,17 @@ } if (param.LText) { - param.LText = Utils.formatOptions(param.LText) + if (window.GLOB.execType === 'x') { + param.exec_type = 'x' + } + + param.LText = Utils.formatOptions(param.LText, param.exec_type) param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') - param.secretkey = Utils.encrypt(param.LText, param.timestamp) + param.secretkey = Utils.encrypt(window.GLOB.execType === 'x' ? '' : param.LText, param.timestamp) deffers.push( new Promise(resolve => { - Api.getSystemCacheConfig(param, cache).then(res => { + Api.getSystemCacheConfig(param, false).then(res => { if (!res.status) { notification.warning({ top: 92, @@ -1875,9 +1934,13 @@ } if (mainparam.LText) { - mainparam.LText = Utils.formatOptions(mainparam.LText) + if (window.GLOB.execType === 'x') { + mainparam.exec_type = 'x' + } + + mainparam.LText = Utils.formatOptions(mainparam.LText, mainparam.exec_type) mainparam.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') - mainparam.secretkey = Utils.encrypt(mainparam.LText, mainparam.timestamp) + mainparam.secretkey = Utils.encrypt(window.GLOB.execType === 'x' ? '' : mainparam.LText, mainparam.timestamp) if (window.GLOB.mainSystemApi) { mainparam.rduri = window.GLOB.mainSystemApi @@ -1885,7 +1948,7 @@ deffers.push( new Promise(resolve => { - Api.getSystemCacheConfig(mainparam, cache).then(res => { + Api.getSystemCacheConfig(mainparam, false).then(res => { if (!res.status) { notification.warning({ top: 92, @@ -2001,7 +2064,7 @@ setTimeout(() => { this.plusLine(colId) }, 10) - } else if (edData[index] && setting.commit !== 'change') { + } else if (edData[index] && (setting.commit === 'all' || setting.commit === 'amend')) { setTimeout(() => { this.submit() }, 10) @@ -2142,7 +2205,7 @@ checkData = () => { const { setting } = this.props - const { edData, forms, checkForms } = this.state + const { edData, forms, checkForms, selectedRowKeys } = this.state let data = fromJS(edData).toJS() @@ -2150,6 +2213,17 @@ if (setting.commit === 'amend') { data = data.filter(item => !item.$origin) + } else if (setting.commit === 'check') { + data = data.filter(item => selectedRowKeys.includes(item.$$uuid)) + + if (data.length === 0) { + notification.warning({ + top: 92, + message: '璇烽�夋嫨闇�瑕佹彁浜ょ殑鏁版嵁锛�', + duration: 5 + }) + return null + } } if (data.length === 0) { @@ -2291,8 +2365,8 @@ delete param.excel_in - param.exec_type = 'y' - param.LText = Utils.formatOptions(result.sql) + param.exec_type = window.GLOB.execType || 'y' + param.LText = Utils.formatOptions(result.sql, param.exec_type) param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt('', param.timestamp) @@ -2304,9 +2378,9 @@ Api.genericInterface(param).then((res) => { if (res.status) { - this.execSuccess(res) + this.execSuccess(res, record) } else { - this.execError(res) + this.execError(res, record) } }, (error) => { if (error && error.ErrCode === 'LoginError') return @@ -2323,9 +2397,9 @@ Api.genericInterface(param).then((res) => { if (res.status) { - this.execSuccess(res) + this.execSuccess(res, record) } else { - this.execError(res) + this.execError(res, record) } }, (error) => { if (error && error.ErrCode === 'LoginError') return @@ -2335,7 +2409,7 @@ } } - execSuccess = (res) => { + execSuccess = (res, record) => { const { submit } = this.props const { edData } = this.state @@ -2385,13 +2459,13 @@ } if (submit.execSuccess !== 'never') { - MKEmitter.emit('refreshByButtonResult', submit.$menuId, submit.execSuccess, submit) + MKEmitter.emit('refreshByButtonResult', submit.$menuId, submit.execSuccess, submit, '', record ? [record] : null) } submit.syncComponentId && MKEmitter.emit('reloadData', submit.syncComponentId) } - execError = (res) => { + execError = (res, record) => { const { submit } = this.props if (res.ErrCode === 'E') { @@ -2420,7 +2494,7 @@ }) if (submit.execError !== 'never') { - MKEmitter.emit('refreshByButtonResult', submit.$menuId, submit.execError, submit) + MKEmitter.emit('refreshByButtonResult', submit.$menuId, submit.execError, submit, '', record ? [record] : null) } } @@ -2578,7 +2652,7 @@ {setting.hasSubmit && edData.length > 0 ? <div className="edit-custom-table-btn-wrap" style={submit.wrapStyle}> <Button style={submit.style} onClick={() => setTimeout(() => {this.submit()}, 10)} loading={loading} className="submit-table" type="link">鎻愪氦</Button> </div> : null} - <div className={`edit-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''} mk-edit-${setting.editType || 'simple'}`} style={style}> + <div className={`edit-custom-table ${setting.tableHeader || ''} ${setting.parity === 'true' ? 'mk-parity' : ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''} mk-edit-${setting.editType || 'simple'}`} style={style}> <Table rowKey="$$uuid" components={components} -- Gitblit v1.8.0