king
2023-04-27 d52169be5ed98d6846bb07f75e5a305271e374d4
src/tabviews/custom/components/share/normalTable/index.jsx
@@ -8,10 +8,7 @@
import { getMark } from '@/utils/utils.js'
import MkIcon from '@/components/mk-icon'
import MKEmitter from '@/utils/events.js'
import zhCN from '@/locales/zh-CN/main.js'
import enUS from '@/locales/en-US/main.js'
import Encrypts from '@/components/encrypts'
import '@/assets/css/table.scss'
import './index.scss'
const { Paragraph } = Typography
@@ -351,11 +348,8 @@
      if (content !== '') {
        content = `${col.prefix || ''}${content}${col.postfix || ''}`
        if (col.eval === 'false') {
          content = content.replace(/\n/ig, '<br/>').replace(/\s/ig, '&nbsp;')
          content = <span dangerouslySetInnerHTML={{__html: content}}></span>
        }
        content = content.replace(/\n/ig, '<br/>').replace(/\s/ig, '&nbsp;')
        content = <span dangerouslySetInnerHTML={{__html: content}}></span>
      }
      if (col.marks) {
@@ -416,7 +410,6 @@
  }
  state = {
    dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
    tableId: '',          // 表格ID
    selectedRowKeys: [],  // 表格中选中行
    pageIndex: 1,         // 初始页面索引
@@ -508,6 +501,8 @@
          width: item.Width || 120
        })
      })
      orderfields = null
    }
    if (rowspans.length === 0) {
@@ -618,10 +613,32 @@
    this.props.refreshdata({pageIndex})
  }
  mkCheckTopLine = (menuId, id) => {
  mkCheckTopLine = (menuId, id, type) => {
    const { MenuID, data, setting } = this.props
    if (MenuID !== menuId || !data || data.length === 0) return
    if (type === 'sign') {
      let index = ''
      let keys = []
      let items = []
      data.forEach((item, i) => {
        if (!item.$disabled && item.selected === 'true') {
          items.push(item)
          keys.push(i)
          index = i
        }
      })
      this.changedata(index)
      this.setState({ selectedRowKeys: keys, activeIndex: index })
      this.props.chgSelectData(items)
      if (setting.$hasSyncModule) {
        MKEmitter.emit('syncBalconyData', MenuID, items, data.length === keys.length)
      }
      return
    }
    let index = 0
    if (id) {
@@ -720,7 +737,7 @@
  /**
   * 
   */
  onSelectChange = selectedRowKeys => {
  onSelectChange = (selectedRowKeys, e) => {
    const { setting, MenuID, data } = this.props
    let index = ''
@@ -798,7 +815,9 @@
      pickup: false
    })
    sorter.field = orderfields[sorter.field] || ''
    if (orderfields) {
      sorter.field = orderfields[sorter.field] || ''
    }
    this.props.refreshdata(pagination, filters, sorter)
  }
@@ -819,13 +838,20 @@
    MKEmitter.emit('resetSelectLine', MenuID, _id, _data)
  }
  resetTable = (id, repage) => {
  resetTable = (id, repage, pageIndex) => {
    const { MenuID } = this.props
    if (id !== MenuID) return
    if (repage === 'false') {
      this.setState({
        selectedRowKeys: [],
        activeIndex: null,
        pickup: false
      })
    } else if (repage === 'repage') {
      this.setState({
        pageIndex: pageIndex,
        selectedRowKeys: [],
        activeIndex: null,
        pickup: false
@@ -911,7 +937,7 @@
  render() {
    const { setting, statFValue, lineMarks, data } = this.props
    const { selectedRowKeys, activeIndex, pickup, tableId, pageOptions } = this.state
    const { selectedRowKeys, activeIndex, pickup, tableId, pageOptions, columns } = this.state
    // 设置表格选择属性:单选、多选、不可选
    let rowSelection = null
@@ -950,7 +976,7 @@
        pageSizeOptions: pageOptions,
        showSizeChanger: true,
        total: this.props.total || 0,
        showTotal: (total, range) => `${range[0]}-${range[1]} ${this.state.dict['main.pagination.of']} ${total} ${this.state.dict['main.pagination.items']}`
        showTotal: (total, range) => `${range[0]}-${range[1]} 共 ${total} 条`
      }
    }
@@ -961,9 +987,23 @@
    }
    let height = setting.height || false
    let loading = this.props.loading
    if (setting.mask === 'hidden') {
      loading = false
    }
    let fixed = ''
    if (setting.colfixed && setting.colfixed.length) {
      if (setting.colfixed.includes('first')) {
        fixed = 'mk-fixed-first-col'
      }
      if (setting.colfixed.includes('last')) {
        fixed += ' mk-fixed-last-col'
      }
    }
    return (
      <div className={`normal-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''}`} id={tableId}>
      <div className={`normal-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || 'middle'} table-col-${columns.length} ${fixed}`} id={tableId}>
        {(setting.tableType === 'radio' || setting.tableType === 'checkbox') && data && data.length > 0 ?
          <Switch title="收起" className="main-pickup" checkedChildren="开" unCheckedChildren="关" checked={pickup} onChange={this.pickupChange} /> : null
        }
@@ -972,9 +1012,9 @@
          size={setting.size || 'middle'}
          bordered={setting.bordered !== 'false'}
          rowSelection={rowSelection}
          columns={this.state.columns}
          columns={columns}
          dataSource={_data}
          loading={this.props.loading}
          loading={loading}
          scroll={{ x: '100%', y: height }}
          onRow={(record, index) => {
            return {