king
2023-05-31 836dc03f4dd7f3e5e1770723f5b406c4bb1c1a18
src/tabviews/custom/components/share/normalTable/index.jsx
@@ -6,13 +6,13 @@
import asyncComponent from '@/utils/asyncComponent'
import { getMark } from '@/utils/utils.js'
import MkIcon from '@/components/mk-icon'
import MKEmitter from '@/utils/events.js'
import Encrypts from '@/components/encrypts'
import './index.scss'
const { Paragraph } = Typography
const Video = asyncComponent(() => import('@/components/video'))
const MkIcon = asyncComponent(() => import('@/components/mk-icon'))
const MkPicture = asyncComponent(() => import('@/components/mkPicture'))
const CardCellComponent = asyncComponent(() => import('@/tabviews/custom/components/card/cardcellList'))
const PicRadio = {
@@ -340,7 +340,16 @@
          // eslint-disable-next-line
          content = eval(content)
        } catch (e) {
          if (window.debugger) {
            console.info(content)
            console.warn(e)
          }
          content = ''
        }
        if (col.round && typeof(content) === 'number') {
          content = Math.round(content * col.round) / col.round
          content = content.toFixed(col.decimal)
        }
      }
@@ -348,11 +357,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) {
@@ -378,14 +384,6 @@
        style = {...style, ...col.style}
      }
      resProps.children = (
        <CardCellComponent data={record} cards={config} elements={col.elements}/>
      )
    } else if (col.type === 'action') {
      style.padding = '0px'
      if (col.style) {
        style = {...style, ...col.style}
      }
      resProps.children = (
        <CardCellComponent data={record} cards={config} elements={col.elements}/>
      )
@@ -480,7 +478,7 @@
              onCell: record => ({
                record,
                col: item,
                config: item.type === 'custom' || item.type === 'action' ? {setting, columns: fields} : null,
                config: item.type === 'custom' ? {setting, columns: fields} : null,
                triggerLink: this.triggerLink
              })
            }
@@ -504,6 +502,8 @@
          width: item.Width || 120
        })
      })
      orderfields = null
    }
    if (rowspans.length === 0) {
@@ -816,7 +816,9 @@
      pickup: false
    })
    sorter.field = orderfields[sorter.field] || ''
    if (orderfields) {
      sorter.field = orderfields[sorter.field] || ''
    }
    this.props.refreshdata(pagination, filters, sorter)
  }
@@ -837,13 +839,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
@@ -929,7 +938,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
@@ -979,13 +988,26 @@
    }
    let height = setting.height || false
    if (height && height <= 100) {
      height = height + 'vh'
    }
    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
        }
@@ -994,7 +1016,7 @@
          size={setting.size || 'middle'}
          bordered={setting.bordered !== 'false'}
          rowSelection={rowSelection}
          columns={this.state.columns}
          columns={columns}
          dataSource={_data}
          loading={loading}
          scroll={{ x: '100%', y: height }}
@@ -1002,6 +1024,7 @@
            return {
              lineMarks: setting.tableMode !== 'fast' ? lineMarks : null,
              data: record,
              title: setting.tipField ? record[setting.tipField] : '',
              className: index === activeIndex ? ' mk-row-active ' : '',
              onClick: () => {this.changeRow(record, index)},
              onDoubleClick: () => {this.doubleClickLine(record)}