From b23db4e1b9e8bc813b4b3b95d35552e5e2e980c6 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 01 二月 2021 18:51:00 +0800 Subject: [PATCH] 2021-02-01 --- src/tabviews/custom/components/share/normalTable/index.jsx | 66 +++++++++++++++++++++++---------- 1 files changed, 46 insertions(+), 20 deletions(-) diff --git a/src/tabviews/custom/components/share/normalTable/index.jsx b/src/tabviews/custom/components/share/normalTable/index.jsx index e377073..ca764a7 100644 --- a/src/tabviews/custom/components/share/normalTable/index.jsx +++ b/src/tabviews/custom/components/share/normalTable/index.jsx @@ -170,7 +170,7 @@ } render() { - let { col, config, record, className, style, triggerLink, updateStatus, ...resProps } = this.props + let { col, config, record, className, style, triggerLink, ...resProps } = this.props if (!col) return (<td {...resProps} className={className} style={style}/>) @@ -246,6 +246,10 @@ if (col.blur) { content = md5(content) + } + + if (col.rowspan === 'true') { + resProps.rowSpan = record['$$' + col.field] } if (col.linkThdMenu || col.linkurl) { @@ -347,12 +351,12 @@ } else if (col.type === 'custom') { style.padding = '0px' resProps.children = ( - <CardCellComponent data={record} cards={config} elements={col.elements} updateStatus={this.props.updateStatus}/> + <CardCellComponent data={record} cards={config} elements={col.elements}/> ) } else if (col.type === 'action') { style.padding = '0px 5px' resProps.children = ( - <CardCellComponent data={record} cards={config} elements={col.elements} updateStatus={this.props.updateStatus}/> + <CardCellComponent data={record} cards={config} elements={col.elements}/> ) } @@ -376,18 +380,19 @@ loading: PropTypes.bool, // 琛ㄦ牸鍔犺浇涓� refreshdata: PropTypes.func, // 琛ㄦ牸涓帓搴忓垪銆侀〉鐮佺殑鍙樺寲鏃跺埛鏂� chgSelectData: PropTypes.func, // 鏁版嵁鍒囨崲 - refreshbyaction: PropTypes.func, // 鎸夐挳鎵ц瀹屾垚鍚庡埛鏂� } state = { dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, + tableId: '', // 琛ㄦ牸ID selectedRowKeys: [], // 琛ㄦ牸涓�変腑琛� pageIndex: 1, // 鍒濆椤甸潰绱㈠紩 pageSize: 10, // 姣忛〉鏁版嵁鏉℃暟 columns: null, // 鏄剧ず鍒� activeIndex: null, // 鏍囪褰撳墠閫変腑琛� rowspans: null, // 琛屽悎骞跺瓧娈典俊鎭� - pickup: false + pickup: false, // 鏀惰捣鏈�夋嫨椤� + orderfields: {} // 鎺掑簭id涓巉ield杞崲 } UNSAFE_componentWillMount () { @@ -395,6 +400,7 @@ let radio = 5 // 铏氬寲姣斾緥 let _format = false // 鏄惁铏氬寲澶勭悊 let rowspans = [] + let orderfields = {} if (window.GLOB.dataFormat && menuType !== 'HS' && memberLevel) { _format = true @@ -424,7 +430,11 @@ if (item.marks && item.marks.length === 0) { item.marks = '' } - + + if (item.field) { + orderfields[item.uuid] = item.field + } + cell = { align: item.Align, dataIndex: item.uuid, @@ -435,8 +445,7 @@ record, col: item, config: item.type === 'custom' || item.type === 'action' ? {setting, columns: fields} : null, - triggerLink: this.triggerLink, - updateStatus: this.updateStatus + triggerLink: this.triggerLink }) } } @@ -451,9 +460,27 @@ rowspans = null } + let tableId = (() => { + let uuid = [] + let _options = 'abcdefghigklmnopqrstuv' + for (let i = 0; i < 19; i++) { + uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1)) + } + return uuid.join('') + }) () + + if (setting.borderColor) { // 杈规棰滆壊 + let style = `#${tableId} table, #${tableId} tr, #${tableId} th, #${tableId} td {border-color: ${setting.borderColor}}` + let ele = document.createElement('style') + ele.innerHTML = style + document.getElementsByTagName('head')[0].appendChild(ele) + } + this.setState({ columns: _columns, - rowspans + rowspans, + tableId, + orderfields }) } @@ -473,12 +500,6 @@ return } MKEmitter.removeListener('resetTable', this.resetTable) - } - - updateStatus = (type, positon, btn) => { - if (type === 'refresh') { - this.props.refreshbyaction(positon, btn) - } } // 瀛楁閫忚 @@ -606,6 +627,8 @@ } changeTable = (pagination, filters, sorter) => { + const { orderfields } = this.state + this.setState({ pageIndex: pagination.current, pageSize: pagination.pageSize, @@ -613,6 +636,9 @@ activeIndex: null, pickup: false }) + + sorter.field = orderfields[sorter.field] || '' + this.props.refreshdata(pagination, filters, sorter) } @@ -667,13 +693,13 @@ let preItem = data[index - 1] rowspans.forEach((cell, i) => { if (i === 0) { - if ((item[cell] || item[cell] === 0) && preItem[cell] === item[cell]) { + if (preItem[cell] === item[cell]) { item['$' + cell] = preItem['$' + cell] + 1 } else { item['$' + cell] = 1 } } else { - if ((item[cell] || item[cell] === 0) && preItem[cell] === item[cell]) { + if (preItem[cell] === item[cell]) { item['$' + cell] = preItem['$' + cell] + 1 } else { item['$' + cell] = 1 @@ -721,7 +747,7 @@ render() { const { setting, statFValue, lineMarks, data } = this.props - const { selectedRowKeys, activeIndex, pickup } = this.state + const { selectedRowKeys, activeIndex, pickup, tableId } = this.state // 璁剧疆琛ㄦ牸閫夋嫨灞炴�э細鍗曢�夈�佸閫夈�佷笉鍙�� let rowSelection = null @@ -768,13 +794,13 @@ } return ( - <div className="normal-custom-table"> + <div className={'normal-custom-table ' + setting.tableHeader} id={tableId}> {(setting.tableType === 'radio' || setting.tableType === 'checkbox') && data && data.length > 0 ? <Switch title="鏀惰捣" className="main-pickup" checkedChildren="寮�" unCheckedChildren="鍏�" defaultChecked={pickup} onChange={this.pickupChange} /> : null } <Table - size="middle" components={components} + size={setting.size || 'middle'} bordered={setting.bordered !== 'false'} rowSelection={rowSelection} columns={this.state.columns} -- Gitblit v1.8.0