king
2023-10-04 ae46c8e640ed64abd7605b289554377e0cdc0cb7
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 = {
@@ -330,29 +330,46 @@
      )
    } else if (col.type === 'formula') {
      let content = col.formula
      Object.keys(record).forEach(key => {
        let reg = new RegExp('@' + key + '@', 'ig')
        content = content.replace(reg, record[key])
      })
      if (col.eval !== 'false') {
      if (col.eval === 'func') {
        try {
          // eslint-disable-next-line
          content = eval(content)
          let func = new Function('data', col.formula)
          content = func([record])
        } catch (e) {
          console.warn(e)
          content = ''
        }
      } else {
        Object.keys(record).forEach(key => {
          let reg = new RegExp('@' + key + '@', 'ig')
          content = content.replace(reg, record[key])
        })
        if (col.eval !== 'false') {
          try {
            // eslint-disable-next-line
            content = eval(content)
          } catch (e) {
            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)
          }
        }
      }
      content = content === undefined ? '' : content
      if (content !== '') {
      if (col.eval === 'func') {
        content = <span dangerouslySetInnerHTML={{__html: content}}></span>
      } else 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 +395,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}/>
      )
@@ -432,7 +441,7 @@
    let rowspans = []
    let orderfields = {}
    if (window.GLOB.dataFormat && !window.GLOB.mkHS) {
    if (window.GLOB.dataFormat) {
      _format = true
      if (window.GLOB.memberLevel >= 30) {
@@ -480,7 +489,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
              })
            }
@@ -737,9 +746,6 @@
    }
  }
  /**
   *
   */
  onSelectChange = (selectedRowKeys, e) => {
    const { setting, MenuID, data } = this.props
@@ -799,7 +805,7 @@
    }
    let selects = this.props.data.filter((item, _index) => newkeys.includes(_index) && !item.$disabled)
    this.props.chgSelectData(selects)
    if (setting.$hasSyncModule) {
@@ -841,20 +847,52 @@
    MKEmitter.emit('resetSelectLine', MenuID, _id, _data)
  }
  resetTable = (id, repage, pageIndex) => {
    const { MenuID } = this.props
  resetTable = (id, type, Index) => {
    const { MenuID, setting, data } = this.props
    if (id !== MenuID) return
    if (repage === 'false') {
    if (type === 'delete') {
      let selectKeys = fromJS(this.state.selectedRowKeys).toJS()
      let activeKey = this.state.activeIndex
      let trans = activeKey === Index
      let _item = null
      let selects = []
      if (setting.tableType) {
        selectKeys = selectKeys.filter(key => key !== Index)
        selectKeys = selectKeys.map(key => key > Index ? key - 1 : key)
        selects = selectKeys.map(key => data[key]).filter(Boolean)
        activeKey = selectKeys.length ? selectKeys[selectKeys.length - 1] : null
        if (trans && selects.length) {
          _item = selects[selects.length - 1]
        }
      }
      this.setState({ selectedRowKeys: selectKeys, activeIndex: activeKey })
      this.props.chgSelectData(selects)
      if (trans) {
        MKEmitter.emit('resetSelectLine', MenuID, (_item ? _item.$$uuid : ''), _item)
      }
      if (setting.$hasSyncModule) {
        MKEmitter.emit('syncBalconyData', MenuID, selects, data.length === selects.length)
      }
    } else if (type === 'false') {
      this.setState({
        selectedRowKeys: [],
        activeIndex: null,
        pickup: false
      })
    } else if (repage === 'repage') {
    } else if (type === 'repage') {
      this.setState({
        pageIndex: pageIndex,
        pageIndex: Index,
        selectedRowKeys: [],
        activeIndex: null,
        pickup: false
@@ -990,6 +1028,9 @@
    }
    let height = setting.height || false
    if (height && height <= 100) {
      height = height + 'vh'
    }
    let loading = this.props.loading
    if (setting.mask === 'hidden') {
      loading = false
@@ -1023,6 +1064,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)}