From 7e46c386be5c2cfc20af3936d26839ad3fce44b0 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 16 八月 2023 17:40:32 +0800
Subject: [PATCH] Merge branch 'master' into positec
---
src/tabviews/custom/components/share/normalTable/index.jsx | 92 ++++++++++++++++++++++++++++++++++------------
1 files changed, 68 insertions(+), 24 deletions(-)
diff --git a/src/tabviews/custom/components/share/normalTable/index.jsx b/src/tabviews/custom/components/share/normalTable/index.jsx
index 4922254..90c6088 100644
--- a/src/tabviews/custom/components/share/normalTable/index.jsx
+++ b/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,32 +330,47 @@
)
} 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) {
- if (window.debugger) {
- console.info(content)
+ if (window.GLOB.debugger === true) {
console.warn(e)
}
content = ''
}
-
- if (col.round && typeof(content) === 'number') {
- content = Math.round(content * col.round) / col.round
- content = content.toFixed(col.decimal)
+ } 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) {
+ if (window.GLOB.debugger === true) {
+ 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 || ''}`
content = content.replace(/\n/ig, '<br/>').replace(/\s/ig, ' ')
content = <span dangerouslySetInnerHTML={{__html: content}}></span>
@@ -430,7 +445,7 @@
let rowspans = []
let orderfields = {}
- if (window.GLOB.dataFormat && !window.GLOB.mkHS) {
+ if (window.GLOB.dataFormat) {
_format = true
if (window.GLOB.memberLevel >= 30) {
@@ -735,9 +750,6 @@
}
}
- /**
- *
- */
onSelectChange = (selectedRowKeys, e) => {
const { setting, MenuID, data } = this.props
@@ -797,7 +809,7 @@
}
let selects = this.props.data.filter((item, _index) => newkeys.includes(_index) && !item.$disabled)
-
+
this.props.chgSelectData(selects)
if (setting.$hasSyncModule) {
@@ -839,20 +851,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
--
Gitblit v1.8.0