From eb0482b3fc2e91a626baa6ac73e75e0b0038f552 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 03 十一月 2023 01:25:59 +0800 Subject: [PATCH] 2023-11-03 --- src/tabviews/custom/components/table/edit-table/index.jsx | 163 +++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 129 insertions(+), 34 deletions(-) diff --git a/src/tabviews/custom/components/table/edit-table/index.jsx b/src/tabviews/custom/components/table/edit-table/index.jsx index 495a171..bcc54c6 100644 --- a/src/tabviews/custom/components/table/edit-table/index.jsx +++ b/src/tabviews/custom/components/table/edit-table/index.jsx @@ -35,7 +35,8 @@ pageIndex: 1, // 椤电爜 pageSize: 10, // 姣忛〉鏁版嵁鏉℃暟 orderBy: '', // 鎺掑簭 - search: '' // 鎼滅储鏉′欢鏁扮粍锛屼娇鐢ㄦ椂闇�鍒嗗満鏅鐞� + search: '', // 鎼滅储鏉′欢鏁扮粍锛屼娇鐢ㄦ椂闇�鍒嗗満鏅鐞� + allSearch: null } /** @@ -45,10 +46,10 @@ UNSAFE_componentWillMount () { let _config = fromJS(this.props.config).toJS() let setting = {..._config.setting, ..._config.wrap} - setting.tableId = Utils.getuuid() - let BID = '' let BData = '' + + setting.tableId = Utils.getuuid().substr(-6).toUpperCase() if (_config.setting.supModule) { BData = window.GLOB.CacheData.get(_config.setting.supModule) @@ -75,9 +76,12 @@ }) let _columns = [] - setting.initId = '' - let triMap = new Map() + let initId = '' + setting.hasSubmit = false + if (setting.commit === 'change' || setting.commit === 'simple') { + setting.commit = 'change' + } let getColumns = (cols) => { return cols.filter(item => { @@ -114,14 +118,25 @@ } if (item.editable === 'true') { - setting.hasSubmit = true - if (!setting.initId) { - setting.initId = item.uuid + setting.hasSubmit = setting.commit !== 'change' + item.$ctrl = setting.commit === 'change' + + if (!initId) { + initId = item.uuid } - if (item.type === 'text' && (item.editType === 'switch' || item.editType === 'select')) { - triMap.set(item.uuid, item.editType) + if (item.enter === '$sub') { + item.enter = '$noAct' + } else if (item.enter === '$next') { + item.enter = '$next_' + initId } - if (item.type === 'text' && item.editType === 'select') { + + if (item.linkSubField && item.linkSubField.length === 0) { + item.linkSubField = null + } + + if (item.type === 'number') { + + } else if (item.editType === 'select') { item.options = item.options || [] item.options = item.options.filter(cell => { cell.value = cell.Value @@ -129,6 +144,16 @@ return !cell.Hide }) + } else if (item.editType === 'popSelect') { + if (item.pops) { + item.pops.forEach(cell => { + cell.linkSubField = item.linkSubField + this.resetPop(cell) + cell.tabName = cell.initval.replace(/^tab:/, '') + }) + } else { + this.resetPop(item) + } } } } @@ -139,28 +164,22 @@ _columns = getColumns(_config.cols) - if (triMap.size > 0) { - let setColumns = (cols) => { - return cols.map(item => { - if (item.type === 'colspan') { - item.subcols = setColumns(item.subcols) - } else if (item.editable === 'true' && triMap.has(item.enter)) { - item.triType = 'click' - } - - return item - }) - } - - _columns = setColumns(_columns) - - if (setting.initId && triMap.has(setting.initId)) { - setting.triType = 'click' - } - } + setting.initId = initId if (!_config.lineMarks || _config.lineMarks.length === 0) { _config.lineMarks = null + } + + let allSearch = null + if (_config.colsCtrls && _config.colsCtrls.length > 0) { + allSearch = [{key: 'BID', value: BID || ''}] + allSearch.push(..._config.$searches) + if (_config.setting.useMSearch) { + let mainSearch = window.GLOB.SearchBox.get(_config.$searchId) || [] + allSearch.push(...mainSearch) + } + } else { + _config.colsCtrls = null } this.setState({ @@ -172,7 +191,8 @@ setting: setting, actions: _config.action, columns: _columns, - search: _config.$searches + search: _config.$searches, + allSearch }, () => { if (_config.setting.onload === 'true') { setTimeout(() => { @@ -180,6 +200,67 @@ }, _config.setting.delay || 0) } }) + } + + resetPop = (config) => { + let arrfield = config.columns.map(f => f.field) + + if (config.linkSubField && config.linkSubField.length > 0) { + config.linkSubField.forEach(n => { + if (!arrfield.includes(n)) { + arrfield.push(n) + } + }) + } + + if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺 + config.dataSource = config.dataSource.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, '\'Y\'') + } else { + config.dataSource = config.dataSource.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, '\'\'') + } + + config.dataSource = config.dataSource.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`) + config.dataSource = config.dataSource.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`) + config.dataSource = config.dataSource.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`) + config.dataSource = config.dataSource.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`) + + if (/\s/.test(config.dataSource)) { // 鎷兼帴鍒悕 + config.dataSource = '(' + config.dataSource + ') tb' + } + + let labels = {} + config.cols = [] + config.columns.forEach(col => { + labels[col.field] = col.label + + if (col.Hide === 'true') return + + config.cols.push({ + dataIndex: col.field, + title: col.label, + sorter: col.IsSort === 'true', + width: col.Width || 120 + }) + }) + + let placeholder = '' + if (!config.searchKey) { + config.onload = 'true' + } else { + placeholder = [] + config.searchKey.split(',').forEach(key => { + if (!labels[key]) { + placeholder = '' + } else if (placeholder) { + placeholder.push(labels[key]) + } + }) + + placeholder = placeholder ? placeholder.join('銆�') : '' + } + + config.placeholder = placeholder + config.arr_field = arrfield.join(',') } /** @@ -255,14 +336,21 @@ total = data[data.length - 1].mk_total || 0 } + let allSearch = null + if (config.colsCtrls) { + allSearch = [{key: 'BID', value: BID || ''}] + allSearch.push(...searches) + } + this.setState({ data: data, selectedData: [], + allSearch: allSearch, total: total, loading: false }) - MKEmitter.emit('transferData', config.uuid, data) + MKEmitter.emit('transferData' + setting.tableId, data) if (result.message) { if (result.ErrCode === 'Y') { @@ -303,6 +391,11 @@ async loadmainLinedata (id) { const { setting, config, search, orderBy, BID, pageIndex, pageSize, BData } = this.state + if (config.forbidLine) { + this.reloadtable() + return + } + let searches = fromJS(search).toJS() if (config.setting.useMSearch) { // 涓昏〃鎼滅储鏉′欢 let mainSearch = window.GLOB.SearchBox.get(config.$searchId) || [] @@ -365,7 +458,7 @@ return item }) - MKEmitter.emit('transferData', config.uuid, _data, 'line') + MKEmitter.emit('transferData' + setting.tableId, _data, 'line') MKEmitter.emit('resetSelectLine', config.uuid, _data.$$uuid, _data) this.setState({ @@ -580,7 +673,7 @@ } render() { - const { BID, setting, actions, config, columns, BData, data, selectedData } = this.state + const { BID, setting, actions, config, columns, BData, data, selectedData, allSearch } = this.state let style = {...config.style} if (config.wrap.empty === 'hidden' && data.length === 0) { @@ -606,9 +699,11 @@ setting={setting} columns={columns} MenuID={config.uuid} + allSearch={allSearch} submit={config.submit} fields={config.columns} total={this.state.total} + colsCtrls={config.colsCtrls} lineMarks={config.lineMarks} loading={this.state.loading} refreshdata={this.refreshbytable} -- Gitblit v1.8.0