From 67a307d8f0fa25fbc56ee9f84c313d521280925f Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 04 三月 2022 15:33:09 +0800 Subject: [PATCH] 2022-03-04 --- src/tabviews/custom/components/table/edit-table/index.jsx | 95 +++++++++++++++++++++++++++-------------------- 1 files changed, 54 insertions(+), 41 deletions(-) diff --git a/src/tabviews/custom/components/table/edit-table/index.jsx b/src/tabviews/custom/components/table/edit-table/index.jsx index 09e5078..9c8d79c 100644 --- a/src/tabviews/custom/components/table/edit-table/index.jsx +++ b/src/tabviews/custom/components/table/edit-table/index.jsx @@ -9,12 +9,13 @@ import UtilsDM from '@/utils/utils-datamanage.js' import asyncComponent from '@/utils/asyncComponent' import MKEmitter from '@/utils/events.js' +import MainTable from './normalTable' import './index.scss' // 閫氱敤缁勪欢 const MainSearch = asyncComponent(() => import('@/tabviews/zshare/topSearch')) const MainAction = asyncComponent(() => import('@/tabviews/zshare/actionList')) -const MainTable = asyncComponent(() => import('./normalTable')) +// const MainTable = asyncComponent(() => import('./normalTable')) const NormalHeader = asyncComponent(() => import('@/tabviews/custom/components/share/normalheader')) class EditableTable extends Component { @@ -43,7 +44,8 @@ pageSize: 10, // 姣忛〉鏁版嵁鏉℃暟 orderBy: '', // 鎺掑簭 search: '', // 鎼滅储鏉′欢鏁扮粍锛屼娇鐢ㄦ椂闇�鍒嗗満鏅鐞� - statFValue: [] // 鍚堣鍊� + statFValue: [], // 鍚堣鍊� + lock: false } /** @@ -200,22 +202,25 @@ if (setting.laypage) { start = pageSize * (pageIndex - 1) + 1 } + let data = result.data.map((item, index) => { + item.key = index + item.$$uuid = item[setting.primaryKey] || '' + item.$$BID = BID || '' + item.$$BData = BData || '' + item.$Index = start + index + '' + item.$type = 'upt' + item.$origin = true + return item + }) this.setState({ - data: result.data.map((item, index) => { - item.key = index - item.$$uuid = item[setting.primaryKey] || '' - item.$$BID = BID || '' - item.$$BData = BData || '' - item.$Index = start + index + '' - item.$type = 'upt' - item.$origin = true - return item - }), + data: data, selectedData: [], total: result.total, loading: false }) + + MKEmitter.emit('transferData', config.uuid, data) } else { this.setState({ loading: false @@ -231,7 +236,7 @@ /** * @description 鑾峰彇鍗曡鏁版嵁 */ - async loadmainLinedata (id) { + async loadmainLinedata (id, line) { const { mainSearch } = this.props const { setting, config, arr_field, search, orderBy, BID, pageIndex, pageSize, BData } = this.state @@ -256,34 +261,40 @@ if (result.status) { let data = fromJS(this.state.data).toJS() let selectedData = fromJS(this.state.selectedData).toJS() - if (result.data && result.data[0]) { - let _data = result.data[0] || {} - _data.$$uuid = _data[setting.primaryKey] || '' - _data.$$BID = BID || '' - _data.$$BData = BData || '' - _data.$type = 'upt' - _data.$origin = true - try { - data = data.map(item => { - if (item.$$uuid === _data.$$uuid) { - _data.key = item.key - _data.$Index = item.$Index - return _data - } else { - return item - } - }) - selectedData = selectedData.map(item => { - if (_data.$$uuid === item.$$uuid) { - return _data - } + let _data = result.data[0] || {} + _data.$$uuid = _data[setting.primaryKey] || '' + _data.$$BID = BID || '' + _data.$$BData = BData || '' + _data.$type = 'upt' + _data.$origin = true + + try { + data = data.map(item => { + if (item.$$uuid === _data.$$uuid) { + _data.key = item.key + _data.$Index = item.$Index + return _data + } else { return item - }) - } catch (e) { - console.warn('鏁版嵁鏌ヨ閿欒') - } + } + }) + selectedData = selectedData.map(item => { + if (_data.$$uuid === item.$$uuid) { + return _data + } + return item + }) + } catch (e) { + console.warn('鏁版嵁鏌ヨ閿欒') + } + if (line) { + if (line.$type === 'del' && !result.data[0]) { + data = data.filter(m => m.$$uuid === line.$$uuid) + } + MKEmitter.emit('transferData', config.uuid, _data, 'line') + } else { MKEmitter.emit('resetSelectLine', config.uuid, _data.$$uuid || '', _data) } @@ -462,7 +473,7 @@ }) } - reloadData = (menuId, id) => { + reloadData = (menuId, id, item) => { const { config } = this.state if (config.uuid !== menuId) return @@ -471,7 +482,7 @@ if (!id) { this.reloadtable() } else { - this.loadmainLinedata(id) + this.loadmainLinedata(id, item) } } @@ -555,7 +566,7 @@ } render() { - const { BID, setting, searchlist, actions, config, columns, BData, data, selectedData } = this.state + const { BID, setting, searchlist, actions, config, columns, BData, data, selectedData, lock } = this.state return ( <div className="custom-edit-table" style={config.style}> @@ -568,6 +579,7 @@ setting={setting} actions={actions} BData={BData} + lock={lock} columns={config.columns} selectedData={selectedData} /> @@ -585,6 +597,7 @@ loading={this.state.loading} refreshdata={this.refreshbytable} chgSelectData={(selects) => this.setState({selectedData: selects})} + changeLock={(lock) => this.setState({lock: lock})} statFValue={this.state.statFValue} /> </div> -- Gitblit v1.8.0