king
2024-03-21 a9b02f6862522b54d0824152017bf2acfec2af7b
src/tabviews/custom/components/card/table-card/index.jsx
@@ -21,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: ''
  }
@@ -95,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
    })
  }
@@ -508,14 +519,14 @@
    }
  }
  getLines = (data) => {
  getLines = (data, lindex) => {
    const { config } = this.state
    let line = []
    config.subcards.forEach((item, index) => {
      let display = item.setting.condition !== 'true'
      let type = ''
      let className = ''
      if (!display && item.setting.controlField) {
        let val = data[item.setting.controlField]
@@ -534,13 +545,19 @@
          display = true
        }
        type = 'mk_tb_' + val
        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} className={type} 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>
@@ -575,7 +592,7 @@
  }
  render() {
    const { config, loading, data, BID, pageIndex, total, BData } = this.state
    const { config, loading, data, BID, pageIndex, total, BData, precards } = this.state
    if (config.wrap.empty === 'hidden' && (!data || data.length === 0)) return null
    
@@ -598,12 +615,17 @@
            selectedData={[]}
          /> : null
        }
        {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}
        <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>