From f66e19dd13af07ee466306632ad43c72f1f16ae7 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 26 五月 2021 14:49:55 +0800
Subject: [PATCH] 2021-05-26

---
 src/tabviews/custom/components/card/data-card/index.jsx |   44 ++++++++++++++++++++++++++++++++++++--------
 1 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/src/tabviews/custom/components/card/data-card/index.jsx b/src/tabviews/custom/components/card/data-card/index.jsx
index 8269c1b..92d3b69 100644
--- a/src/tabviews/custom/components/card/data-card/index.jsx
+++ b/src/tabviews/custom/components/card/data-card/index.jsx
@@ -46,7 +46,19 @@
   UNSAFE_componentWillMount () {
     const { data, initdata, BID } = this.props
     let _config = fromJS(this.props.config).toJS()
-    let _card = _config.subcards[0]
+
+    _config.subcards = _config.subcards.map(item => {
+      item.setting.$click = ''
+      if (item.setting.click === 'button') {
+        if (item.elements.filter(ele => ele.eleType === 'button').length < 2) {
+          item.setting.$click = ' trigger-button'
+        }
+        item.setting.click = ''
+      }
+      return item
+    })
+
+    let _card = _config.subcards.shift()
     let _cols = new Map()
 
     let _data = null
@@ -58,6 +70,15 @@
     } else if (_config.setting.sync === 'true' && initdata) {
       _data = initdata || []
       _sync = false
+    }
+
+    if (_config.wrap.cardFloat && _config.wrap.cardFloat !== 'left') {
+      let _width = 0
+      _config.subcards.forEach(card => {
+        _width += card.setting.width
+      })
+      
+      _config.$offset = _width
     }
 
     if (_data) {
@@ -540,9 +561,11 @@
       switchable = true
     }
     let offset = 0
+
     if (config.wrap.cardFloat && config.wrap.cardFloat !== 'left') {
-      if (data && card.setting.width * data.length < 24) {
-        offset = 24 - card.setting.width * data.length
+      let length = data ? data.length : 0
+      if (card.setting.width * length + config.$offset < 24) {
+        offset = 24 - card.setting.width * length - config.$offset
         if (config.wrap.cardFloat === 'center') {
           offset = Math.floor(offset / 2)
         }
@@ -570,15 +593,20 @@
         }
         <div className={`data-zoom ${config.wrap.cardType || ''} ${config.wrap.scale || ''}`}>
           {switchable ? <div className={'prev-page ' + (pageIndex === 1 ? 'disabled' : '')} onClick={this.prevPage}><div><div><img src={preImg} alt=""/></div></div></div> : null}
-          {data && data.length > 0 ? <Row className="card-row-list">
-            {data.map((item, index) => (
-              <Col className={(activeKey === index ? ' active' : (selectKeys.indexOf(index) > -1 ? ' selected' : '')) + (card.setting.click ? ' pointer' : '')} key={index} span={card.setting.width} offset={!index ? offset : 0} onClick={() => {this.changeCard(index, item)}}>
+          <Row className="card-row-list">
+            {data && data.map((item, index) => (
+              <Col className={(activeKey === index ? ' active' : (selectKeys.indexOf(index) > -1 ? ' selected' : '')) + (card.setting.$click ? ' pointer' : '') + card.setting.$click} key={index} span={card.setting.width} offset={!index ? offset : 0} onClick={() => {this.changeCard(index, item)}}>
                 <CardItem card={card} cards={config} data={item}/>
               </Col>
             ))}
-          </Row> : null}
+            {config.subcards.map((item, index) => (
+              <Col key={'mk' + index} className={item.setting.$click} span={item.setting.width || 6} offset={(!data || data.length === 0) ? offset : 0}>
+                <CardItem card={item} cards={config} data={{$$BID: BID}}/>
+              </Col>
+            ))}
+          </Row>
           {switchable ? <div className={'prev-page ' + (total <= _total ? 'disabled' : '')} onClick={this.nextPage}><div><div><img src={nextImg} alt=""/></div></div></div> : null}
-          {!data || data.length === 0 ? <Empty description={false}/> : null}
+          {config.subcards.length === 0 && (!data || data.length === 0) ? <Empty description={false}/> : null}
         </div>
         {config.wrap.pagestyle !== 'switch' && config.setting.laypage && data ? <Pagination size="small" total={total} showTotal={t => `鍏� ${t} 鏉} pageSize={config.setting.pageSize} onChange={this.changePageIndex} current={pageIndex}/> : null}
       </div>

--
Gitblit v1.8.0