From 8f6b3d26bde4e22773cc53386dfbae669a7472ed Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 13 十月 2020 09:16:21 +0800 Subject: [PATCH] 2020-10-13 --- src/tabviews/custom/components/card/data-card/index.jsx | 53 ++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 46 insertions(+), 7 deletions(-) diff --git a/src/tabviews/custom/components/card/data-card/index.jsx b/src/tabviews/custom/components/card/data-card/index.jsx index 8e459c4..3d1c86d 100644 --- a/src/tabviews/custom/components/card/data-card/index.jsx +++ b/src/tabviews/custom/components/card/data-card/index.jsx @@ -9,6 +9,8 @@ import UtilsDM from '@/utils/utils-datamanage.js' import zhCN from '@/locales/zh-CN/main.js' import enUS from '@/locales/en-US/main.js' +import preImg from '@/assets/img/prev.png' +import nextImg from '@/assets/img/next.png' import './index.scss' const CardItem = asyncComponent(() => import('../cardItem')) @@ -26,9 +28,11 @@ state = { dict: localStorage.getItem('lang') !== 'en-US' ? zhCN : enUS, // 瀛楀吀 config: null, // 鍥捐〃閰嶇疆淇℃伅 + pageIndex: 1, empty: false, loading: false, // 鏁版嵁鍔犺浇鐘舵�� - data: null // 鏁版嵁 + data: null, // 鏁版嵁 + total: null } UNSAFE_componentWillMount () { @@ -63,7 +67,7 @@ async loadData () { const { mainSearch, BID, menuType, dataManager } = this.props - const { config, arr_field } = this.state + const { config, arr_field, pageIndex } = this.state let searches = [] if (mainSearch && mainSearch.length > 0) { // 涓昏〃鎼滅储鏉′欢 @@ -75,12 +79,13 @@ }) let _orderBy = config.setting.order || '' - let param = UtilsDM.getQueryDataParams(config.setting, arr_field, searches, _orderBy, 1, config.setting.pageSize, BID, menuType, dataManager) + let param = UtilsDM.getQueryDataParams(config.setting, arr_field, searches, _orderBy, pageIndex, config.setting.pageSize, BID, menuType, dataManager) let result = await Api.genericInterface(param) if (result.status) { this.setState({ data: result.data, + total: result.total, loading: false }) } else { @@ -95,8 +100,38 @@ } } + prevPage = () => { + const { pageIndex } = this.state + + if (pageIndex === 1) return + + this.setState({ + pageIndex: pageIndex - 1 + }, () => { + this.loadData() + }) + } + nextPage = () => { + const { config, pageIndex, total } = this.state + let _total = config.setting.pageSize * pageIndex + + if (_total >= total) return + + this.setState({ + pageIndex: pageIndex + 1 + }, () => { + this.loadData() + }) + } + render() { - const { config, empty, loading, data } = this.state + const { config, empty, loading, data, pageIndex, total } = this.state + + let _total = config.setting.pageSize * pageIndex + let pageable = config.pageable && config.setting.laypage + if ((pageIndex === 1 && total <= _total) || !data) { + pageable = false + } return ( <div className="custom-card-box" style={config.style}> @@ -106,9 +141,13 @@ <Spin /> </div> : null } - {data && data.length > 0 ? data.map((item, index) => ( - <CardItem key={index} card={config.subcards[0]} cards={config} data={item} /> - )) : null} + {pageable ? <div className={'prev-page ' + (pageIndex === 1 ? 'disabled' : '')} onClick={this.prevPage}><div><div><img src={preImg} alt=""/></div></div></div> : null} + {data && data.length > 0 ? <div className="card-row-list"> + {data.map((item, index) => ( + <CardItem key={index} card={config.subcards[0]} cards={config} data={item} /> + ))} + </div> : null} + {pageable ? <div className={'prev-page ' + (total <= _total ? 'disabled' : '')} onClick={this.nextPage}><div><div><img src={nextImg} alt=""/></div></div></div> : null} {empty ? <Empty description={false}/> : null} </div> ) -- Gitblit v1.8.0