From f0bf8c399c354c22227f8f1a76ed806098db59c0 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 21 五月 2024 16:51:02 +0800 Subject: [PATCH] 2024-05-21 --- src/tabviews/custom/components/card/table-card/index.jsx | 131 +++++++++++++++++++++++++------------------ 1 files changed, 76 insertions(+), 55 deletions(-) diff --git a/src/tabviews/custom/components/card/table-card/index.jsx b/src/tabviews/custom/components/card/table-card/index.jsx index 8dcb134..5251e62 100644 --- a/src/tabviews/custom/components/card/table-card/index.jsx +++ b/src/tabviews/custom/components/card/table-card/index.jsx @@ -1,7 +1,7 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Spin, notification, Row, Col, Empty, Pagination, Modal } from 'antd' +import { Spin, Row, Col, Empty, Pagination } from 'antd' import { DownOutlined } from '@ant-design/icons' import Api from '@/api' @@ -12,6 +12,7 @@ import './index.scss' const CardCellComponent = asyncComponent(() => import('../cardcellList')) +const MainAction = asyncComponent(() => import('@/tabviews/zshare/actionList')) const NormalHeader = asyncComponent(() => import('@/tabviews/custom/components/share/normalheader')) class TableCard extends Component { @@ -20,13 +21,14 @@ } state = { - BID: '', // 涓婄骇ID - config: null, // 鍥捐〃閰嶇疆淇℃伅 - loading: false, // 鏁版嵁鍔犺浇鐘舵�� - search: null, // 鎼滅储鏉′欢 - pageIndex: 1, // 椤电爜 - total: 0, // 鎬绘暟 - data: null, // 鏁版嵁 + BID: '', + config: null, + loading: false, + search: null, + pageIndex: 1, + total: 0, + data: null, + precards: [], BData: '' } @@ -94,12 +96,22 @@ } } + let precards = [] + _config.subcards = _config.subcards.filter(item => { + if (item.setting.condition === 'title') { + precards.push(item) + return false + } + return true + }) + this.setState({ BID: BID || '', BData: BData || '', data: _data, config: _config, - search: _config.$searches + search: _config.$searches, + precards }) } @@ -260,8 +272,8 @@ if (config.uuid !== menuId) return - if ((position === 'mainline' || position === 'popclose') && config.setting.supModule && BID) { // 鍒锋柊婧愮粍浠舵椂锛岄檮甯﹀埛鏂颁笂绾ц涓庡綋鍓嶇粍浠� - MKEmitter.emit('reloadData', config.setting.supModule, BID) + if (['mainline', 'maingrid', 'popclose'].includes(position) && config.setting.supModule) { + MKEmitter.emit('reloadData', config.setting.supModule, position === 'maingrid' ? '' : BID) } else { this.loadData() } @@ -417,37 +429,15 @@ this.timer && this.timer.stop() } } - if (result.message) { - if (result.ErrCode === 'Y') { - Modal.success({ - title: result.message - }) - } else if (result.ErrCode === 'S') { - notification.success({ - top: 92, - message: result.message, - duration: 2 - }) - } - } + + UtilsDM.querySuccess(result) } else { this.setState({ loading: false }) this.timer && this.timer.stop() - if (!result.message) return - if (result.ErrCode === 'N') { - Modal.error({ - title: result.message, - }) - } else if (result.ErrCode !== '-2') { - notification.error({ - top: 92, - message: result.message, - duration: 10 - }) - } + UtilsDM.queryFail(result) } } @@ -476,16 +466,12 @@ if (!menu) return - menu.param = {} + menu.param = {$BID: data.$$uuid || ''} - if (card.setting.joint === 'true') { - menu.param.$BID = data.$$uuid || '' - - Object.keys(data).forEach(key => { - if (/^\$/.test(key)) return - menu.param[key] = data[key] - }) - } + Object.keys(data).forEach(key => { + if (/^\$/.test(key)) return + menu.param[key] = data[key] + }) MKEmitter.emit('modifyTabs', menu, true) } else if (card.setting.click === 'link') { @@ -499,21 +485,33 @@ } src = src + `${con}id=${data.$$uuid || ''}&appkey=${window.GLOB.appkey}&userid=${sessionStorage.getItem('UserID')}&LoginUID=${sessionStorage.getItem('LoginUID') || ''}` + } else if (/@/.test(src)) { + src = src.replace(/@id@/ig, data.$$uuid || '') + src = src.replace(/@appkey@/ig, window.GLOB.appkey) + src = src.replace(/@userid@/ig, sessionStorage.getItem('UserID')) + src = src.replace(/@LoginUID@/ig, sessionStorage.getItem('LoginUID')) + + Object.keys(data).forEach(key => { + if (/^\$/.test(key)) return + let reg = new RegExp('@' + key + '@', 'ig') + src = src.replace(reg, data[key]) + }) } window.open(src) } else if (card.setting.click === 'button' && card.setting.linkbtn) { - MKEmitter.emit('triggerBtnId', card.setting.linkbtn, [data], 'linkbtn') + MKEmitter.emit('triggerBtnId', card.setting.linkbtn, [data], 'linkbtn', (data.$$uuid || '') + (data.$Index || '')) } } - getLines = (data) => { + getLines = (data, lindex) => { const { config } = this.state let line = [] config.subcards.forEach((item, index) => { let display = item.setting.condition !== 'true' + let className = '' if (!display && item.setting.controlField) { let val = data[item.setting.controlField] @@ -531,12 +529,20 @@ } else if (item.setting.controlType === '<' && val < item.setting.controlValue) { display = true } + + className = 'mk_line_' + val } if (!display) return + if (config.wrap.parity === 'true') { + if (lindex % 2 === 1) { + className += ' mk-even-line' + } + } + line.push( - <Col key={index} span={24}> + <Col key={index} className={className} span={24}> <div className="card-item-box" style={item.style} onClick={() => {this.openView(item, data)}}> <CardCellComponent data={data} cards={config} cardCell={item} elements={item.elements}/> </div> @@ -571,7 +577,7 @@ } render() { - const { config, loading, data, BID, pageIndex, total } = this.state + const { config, loading, data, BID, pageIndex, total, BData, precards } = this.state if (config.wrap.empty === 'hidden' && (!data || data.length === 0)) return null @@ -584,12 +590,27 @@ </div> : null } <NormalHeader config={config} BID={BID} refresh={this.refreshSearch} /> - {data && data.length > 0 ? <Row className={'card-row-list' + (config.wrap.parity === 'true' ? ' mk-parity' : '')} style={{height: config.wrap.contentHeight}}> - {data.map(item => this.getLines(item))} - </Row> : null} - {data && data.length === 0 ? <div className="card-row-list" style={{height: config.wrap.contentHeight}}> - <Empty description={false}/> - </div> : null} + {config.action && config.action.length > 0 ? + <MainAction + BID={BID} + BData={BData} + setting={config.setting} + actions={config.action} + columns={config.columns} + selectedData={[]} + /> : null + } + <Row className={`card-row-list ${config.wrap.hover === 'true' ? 'mk-hover' : ''}`} style={{height: config.wrap.contentHeight}}> + {precards.map((item, index) => ( + <Col key={index} className="extend-card" span={24}> + <div className="card-item-box" style={item.style}> + <CardCellComponent data={data && data[0] ? data[0] : {}} cards={config} cardCell={item} elements={item.elements}/> + </div> + </Col> + ))} + {data && data.length > 0 ? data.map((item, index) => this.getLines(item, index)) : null} + {data && data.length === 0 ? <Empty description={false}/> : null} + </Row> {config.wrap.pagestyle === 'page' ? <Pagination size="small" current={pageIndex} total={total} onChange={this.changePageIndex} /> : null} {config.wrap.pagestyle === 'more' && data && data.length > 0 ? <div className={'mk-more' + (config.setting.pageSize * pageIndex >= total ? ' disabled' : '')} onClick={this.loadMore}>鏌ョ湅鏇村<DownOutlined/></div> : null} </div> -- Gitblit v1.8.0