From 50b49c1b760489c3430fc382656d57c5fbbab07c Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 29 四月 2024 16:07:24 +0800 Subject: [PATCH] 2024-04-29 --- src/tabviews/custom/components/card/table-card/index.jsx | 100 ++++++++++++++++++++++++++++--------------------- 1 files changed, 57 insertions(+), 43 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..231e066 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 }) } @@ -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) } } @@ -507,13 +497,14 @@ } } - 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 +522,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 +570,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 +583,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