king
2020-11-16 3ca91a731665962918a026f521c556f4745ebf35
src/tabviews/custom/components/share/tabtransfer/index.jsx
@@ -4,6 +4,7 @@
import { is, fromJS } from 'immutable'
import { Row, Col, Empty, notification } from 'antd'
import moment from 'moment'
import md5 from 'md5'
import Api from '@/api'
import options from '@/store/options.js'
@@ -17,6 +18,7 @@
const AntvPie = asyncComponent(() => import('@/tabviews/custom/components/chart/antv-pie'))
const AntvTabs = asyncComponent(() => import('@/tabviews/custom/components/tabs/antv-tabs'))
const DataCard = asyncComponent(() => import('@/tabviews/custom/components/card/data-card'))
const TableCard = asyncComponent(() => import('@/tabviews/custom/components/card/table-card'))
const PropCard = asyncComponent(() => import('@/tabviews/custom/components/card/prop-card'))
class TabTransfer extends Component {
@@ -68,21 +70,25 @@
    }
    let params = []
    config.components.forEach(component => {
      if (component.type === 'tabs') return
    config.components.forEach(item => {
      if (item.type === 'tabs') return
      if (!component.format || (component.subtype === 'propcard' && component.wrap.datatype === 'static')) return
      if (!item.setting || item.setting.interType !== 'system') return
      if (!item.format || (item.subtype === 'propcard' && item.wrap.datatype === 'static')) return
      if (component.dataName && !component.pageable && component.setting.interType === 'system' && component.setting.onload === 'true' && component.setting.sync === 'true') {
        let param = this.getDefaultParam(component, _mainSearch)
      if (item.dataName && (!item.pageable || (item.pageable && !item.setting.laypage)) && item.setting.onload === 'true' && item.setting.sync === 'true') {
        let param = this.getDefaultParam(item, _mainSearch)
        params.push(param)
      } else {
        component.setting.sync = 'false'
        item.setting.sync = 'false'
      }
    })
    this.setState({mainSearch: _mainSearch, self})
    this.loadmaindata(params)
    if (params.length > 0) {
      this.loadmaindata(params)
    }
  }
  UNSAFE_componentWillReceiveProps(nextProps) {
@@ -103,8 +109,14 @@
    if (search && search.length > 0) {
      searchlist = Utils.initMainSearch(search)
    }
    if (setting.useMSearch === 'true') {
      searchlist = [...mainSearch, ...searchlist]
      let keys = searchlist.map(item => item.key)
      mainSearch.forEach(item => {
        if (!keys.includes(item.key)) {
          searchlist.push(item)
        }
      })
    }
    let arr_field = columns.map(col => col.field)
@@ -164,7 +176,7 @@
   * @description 主表数据加载
   */ 
  loadmaindata = (params) => {
    if (!params || params.length === 0) return
    const { config } = this.props
    let LText_field = []
    let LText = params.map((item, index) => {
      let _sql = item.sql
@@ -190,6 +202,16 @@
    param.LText = Utils.formatOptions(param.LText)
    param.LText_field = Utils.formatOptions(param.LText_field)
    if (config.cacheUseful === 'true') {
      param.time_type = config.timeUnit
      param.time_limit = config.cacheTime
      if (config.diffUser) {
        param.userid = sessionStorage.getItem('UserID')
      }
      param.data_md5 = md5(JSON.stringify(param))
    }
    param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss')
    param.secretkey = Utils.encrypt(param.LText, param.timestamp)
@@ -251,22 +273,24 @@
            <AntvTabs config={item} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
          </Col>
        )
      } else if (item.type === 'card') {
        if (item.subtype === 'datacard') {
          return (
            <Col span={item.width} key={item.uuid}>
              <DataCard config={item} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
            </Col>
          )
        } else if (item.subtype === 'propcard') {
          return (
            <Col span={item.width} key={item.uuid}>
              <PropCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
            </Col>
          )
        } else {
          return null
        }
      } else if (item.type === 'card' && item.subtype === 'datacard') {
        return (
          <Col span={item.width} key={item.uuid}>
            <DataCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
          </Col>
        )
      } else if (item.type === 'card' && item.subtype === 'propcard') {
        return (
          <Col span={item.width} key={item.uuid}>
            <PropCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
          </Col>
        )
      } else if (item.type === 'table' && item.subtype === 'tablecard') {
        return (
          <Col span={item.width} key={item.uuid}>
            <TableCard config={item} data={data} BID={BID} mainSearch={mainSearch} menuType={menuType} dataManager={dataManager} />
          </Col>
        )
      } else {
        return null
      }