From c98e45bfac25e9110ad0383faac54a54d98ea9d5 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 18 十一月 2021 20:47:04 +0800 Subject: [PATCH] 2021-11-18 --- src/tabviews/scriptmanage/index.jsx | 96 ++++++++++++++++++++++-------------------------- 1 files changed, 44 insertions(+), 52 deletions(-) diff --git a/src/tabviews/scriptmanage/index.jsx b/src/tabviews/scriptmanage/index.jsx index 59cf26f..06d760a 100644 --- a/src/tabviews/scriptmanage/index.jsx +++ b/src/tabviews/scriptmanage/index.jsx @@ -10,12 +10,14 @@ import Utils from '@/utils/utils.js' import options from '@/store/options.js' import { scriptMainTable, buttonConfig } from './config' +import MKEmitter from '@/utils/events.js' +import asyncComponent from '@/utils/asyncComponent' import asyncSpinComponent from '@/utils/asyncSpinComponent' -import TopSearch from './topSearch' import MainAction from './actionList' import './index.scss' +const MainSearch = asyncComponent(() => import('@/tabviews/zshare/topSearch')) const MainTable = asyncSpinComponent(() => import('@/tabviews/zshare/normalTable')) class ScriptTable extends Component { @@ -33,11 +35,9 @@ actions: [], // 鎸夐挳闆� columns: [], // 鏄剧ず鍒� arr_field: '', // 浣跨敤 sPC_Get_TableData 鏃剁殑鏌ヨ瀛楁闆� - logcolumns: null, // 鏃ュ織涓樉绀虹殑鍒椾俊鎭� (澧炲姞鑷冲叏閮ㄥ垪锛岄櫎鍘诲悎骞跺垪) setting: {}, // 椤甸潰鍏ㄥ眬璁剧疆锛氭暟鎹簮銆佹寜閽強鏄剧ず鍒楀浐瀹氥�佷富閿瓑 data: [], // 鍒楄〃鏁版嵁闆� selectedData: [], // 宸查�夎〃鏍兼暟鎹� - resetTable: false, // 琛ㄦ牸閲嶇疆锛屽�煎湪true涓巉alse涔嬮棿鍒囨崲锛屽垏鎹㈡椂琛ㄦ牸閲嶇疆 total: 0, // 鎬绘暟 loading: false, // 鍒楄〃鏁版嵁鍔犺浇涓� pageIndex: 1, // 椤电爜 @@ -56,7 +56,6 @@ let _arrField = [] // 瀛楁闆� let _columns = [] // 鏄剧ず鍒� - let _logcolumns = [] // 鏃ュ織鏄剧ず鍒� let _hideCol = [] // 闅愯棌鍙婂悎骞跺垪涓瓧娈电殑uuid闆� let colMap = new Map() // 鐢ㄤ簬瀛楁杩囨护 @@ -64,13 +63,9 @@ config.columns.forEach(col => { if (col.field) { _arrField.push(col.field) - - _logcolumns.push(col) } if (col.type === 'colspan' && col.sublist) { // 绛涢�夐殣钘忓垪 _hideCol = _hideCol.concat(col.sublist) - } else if (col.Hide === 'true') { - _hideCol.push(col.uuid) } colMap.set(col.uuid, col) }) @@ -79,16 +74,22 @@ config.columns.forEach(col => { if (_hideCol.includes(col.uuid)) return - if (col.type === 'colspan' && col.sublist) { - let _col = JSON.parse(JSON.stringify(col)) - let subColumn = [] - _col.sublist.forEach(sub => { + if (col.type === 'colspan') { + if (col.unfold !== 'true') { // 涓嶅睍寮�涓烘棫鐗堝悎骞跺垪 + col.type = 'old_colspan' + } + + let _col = fromJS(col).toJS() + let subcols = [] + _col.sublist && _col.sublist.forEach(sub => { if (colMap.has(sub)) { - subColumn.push(colMap.get(sub)) + subcols.push(colMap.get(sub)) } }) - _col.subColumn = subColumn - _columns.push(_col) + if (subcols.length > 0) { + _col.subcols = subcols + _columns.push(_col) + } } else { _columns.push(col) } @@ -105,7 +106,6 @@ return item }), columns: _columns, - logcolumns: _logcolumns, arr_field: _arrField.join(','), search: Utils.initMainSearch(config.search) }, () => { @@ -120,6 +120,7 @@ * @description 涓昏〃鏁版嵁鍔犺浇 */ async loadmaindata () { + const { setting } = this.state let param = this.getDefaultParam() this.setState({ @@ -134,8 +135,8 @@ if (result.status) { this.setState({ data: result.data.map((item, index) => { - item.LongParam = Utils.formatOptions(item.LongParam, true) item.key = index + item.$$uuid = item[setting.primaryKey] || '' return item }), total: result.total, @@ -166,7 +167,8 @@ let param = { func: 'sPC_Get_TableData', obj_name: 'data', - arr_field: arr_field + arr_field: arr_field, + menuname: this.props.MenuName || '' } let _orderBy = orderBy || setting.order @@ -180,11 +182,11 @@ let DateCount = `select count(1) as total from ${_dataresource} ${_search}` param.LText = Utils.formatOptions(LText) - param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' + param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') param.secretkey = Utils.encrypt(param.LText, param.timestamp) param.DateCount = Utils.formatOptions(DateCount) - param.open_key = Utils.encrypt(param.secretkey, param.timestamp, true) // 浜戠鏁版嵁楠岃瘉 + param.open_key = Utils.encryptOpenKey(param.secretkey, param.timestamp) // 浜戠鏁版嵁楠岃瘉 return param } @@ -194,12 +196,12 @@ * 鍚湁鍒濆涓嶅姞杞界殑椤甸潰锛屼慨鏀硅缃� */ refreshbysearch = (searches) => { + MKEmitter.emit('resetTable', this.props.MenuID) // 鍒楄〃閲嶇疆 this.setState({ loading: true, pageIndex: 1, selectedData: [], - search: searches, - resetTable: !this.state.resetTable + search: searches }, () => { this.loadmaindata() }) @@ -232,11 +234,11 @@ * @description 琛ㄦ牸鍒锋柊 */ reloadtable = () => { + MKEmitter.emit('resetTable', this.props.MenuID) // 鍒楄〃閲嶇疆 this.setState({ loading: true, pageIndex: 1, - selectedData: [], - resetTable: !this.state.resetTable + selectedData: [] }, () => { this.loadmaindata() }) @@ -251,21 +253,6 @@ }, () => { this.loadconfig() }) - } - - /** - * @description 鎸夐挳鎿嶄綔瀹屾垚鍚庯紙鎴愬姛鎴栧け璐ワ級锛岄〉闈㈠埛鏂帮紝閲嶇疆椤电爜鍙婇�夋嫨椤� - */ - refreshbyaction = (btn, type) => { - if (btn.execSuccess === 'grid' && type === 'success') { - this.reloadtable() - } else if (btn.execError === 'grid' && type === 'error') { - this.reloadtable() - } else if (btn.execSuccess === 'view' && type === 'success') { - this.reloadview() - } else if (btn.execError === 'view' && type === 'error') { - this.reloadview() - } } /** @@ -285,9 +272,21 @@ }) } + reloadMenuView = (menuId) => { + const { MenuID } = this.props + + if (MenuID !== menuId) return + + this.reloadview() + } + UNSAFE_componentWillMount () { // 缁勪欢鍔犺浇鏃讹紝鑾峰彇鑿滃崟鏁版嵁 this.loadconfig() + } + + componentDidMount () { + MKEmitter.addListener('reloadMenuView', this.reloadMenuView) } shouldComponentUpdate (nextProps, nextState) { @@ -301,18 +300,15 @@ this.setState = () => { return } + MKEmitter.removeListener('reloadMenuView', this.reloadMenuView) } render() { - const { dict, searchlist, config, setting, actions, columns, pickup, selectedData } = this.state + const { searchlist, setting, actions, columns, pickup, selectedData } = this.state return ( - <div className="veruptable pick-control" id={this.state.ContainerId}> - <TopSearch - dict={dict} - searchlist={searchlist} - refreshdata={this.refreshbysearch} - /> + <div className="script-manage-table" id={this.state.ContainerId}> + <MainSearch searchlist={searchlist} menuType="HS" refreshdata={this.refreshbysearch}/> <MainAction BID="" type="main" @@ -321,9 +317,8 @@ dict={this.state.dict} MenuID={this.props.MenuID} selectedData={selectedData} - logcolumns={this.state.logcolumns} ContainerId={this.state.ContainerId} - refreshdata={this.refreshbyaction} + refreshdata={this.reloadtable} /> <div className="main-table-box"> {this.state.data && this.state.data.length > 0 ? @@ -332,9 +327,8 @@ </div> : null } <MainTable - tableId="mainTable" + tableId={this.props.MenuID} pickup={pickup} - config={config} setting={setting} columns={columns} dict={this.state.dict} @@ -344,8 +338,6 @@ loading={this.state.loading} refreshdata={this.refreshbytable} buttonTrigger={() => {}} - handleTableId={() => {}} - resetTable={this.state.resetTable} chgSelectData={this.changeSelectedData} /> </div> -- Gitblit v1.8.0