king
2020-12-30 1ed217be1abce1a1da18d90a1a9f358beef79acd
src/tabviews/custom/components/share/normalTable/index.jsx
@@ -381,13 +381,15 @@
  state = {
    dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
    tableId: '',          // 表格ID
    selectedRowKeys: [],  // 表格中选中行
    pageIndex: 1,         // 初始页面索引
    pageSize: 10,         // 每页数据条数
    columns: null,        // 显示列
    activeIndex: null,    // 标记当前选中行
    rowspans: null,       // 行合并字段信息
    pickup: false
    pickup: false,        // 收起未选择项
    orderfields: {}       // 排序id与field转换
  }
  UNSAFE_componentWillMount () {
@@ -395,6 +397,7 @@
    let radio = 5          // 虚化比例
    let _format = false    // 是否虚化处理
    let rowspans = []
    let orderfields = {}
    if (window.GLOB.dataFormat && menuType !== 'HS' && memberLevel) {
      _format = true
@@ -424,7 +427,11 @@
          if (item.marks && item.marks.length === 0) {
            item.marks = ''
          }
          if (item.field) {
            orderfields[item.uuid] = item.field
          }
          cell = {
            align: item.Align,
            dataIndex: item.uuid,
@@ -451,9 +458,27 @@
      rowspans = null
    }
    let tableId = (() => {
      let uuid = []
      let _options = 'abcdefghigklmnopqrstuv'
      for (let i = 0; i < 19; i++) {
        uuid.push(_options.substr(Math.floor(Math.random() * 0x20), 1))
      }
      return uuid.join('')
    }) ()
    if (setting.borderColor) { // 边框颜色
      let style = `#${tableId} table, #${tableId} tr, #${tableId} th, #${tableId} td {border-color: ${setting.borderColor}}`
      let ele = document.createElement('style')
      ele.innerHTML = style
      document.getElementsByTagName('head')[0].appendChild(ele)
    }
    this.setState({
      columns: _columns,
      rowspans
      rowspans,
      tableId,
      orderfields
    })
  }
@@ -606,6 +631,8 @@
  }
  changeTable = (pagination, filters, sorter) => {
    const { orderfields } = this.state
    this.setState({
      pageIndex: pagination.current,
      pageSize: pagination.pageSize,
@@ -613,6 +640,9 @@
      activeIndex: null,
      pickup: false
    })
    sorter.field = orderfields[sorter.field] || ''
    this.props.refreshdata(pagination, filters, sorter)
  }
@@ -721,7 +751,7 @@
  render() {
    const { setting, statFValue, lineMarks, data } = this.props
    const { selectedRowKeys, activeIndex, pickup } = this.state
    const { selectedRowKeys, activeIndex, pickup, tableId } = this.state
    // 设置表格选择属性:单选、多选、不可选
    let rowSelection = null
@@ -768,7 +798,7 @@
    }
    return (
      <div className="normal-custom-table">
      <div className={'normal-custom-table ' + setting.tableHeader} id={tableId}>
        {(setting.tableType === 'radio' || setting.tableType === 'checkbox') && data && data.length > 0 ?
          <Switch title="收起" className="main-pickup" checkedChildren="开" unCheckedChildren="关" defaultChecked={pickup} onChange={this.pickupChange} /> : null
        }