From 7cfd25aebe5869244e40dbbcd6384f115f35e66e Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 14 六月 2023 09:37:21 +0800
Subject: [PATCH] Merge branch 'master' into positec

---
 src/tabviews/custom/components/share/normalTable/index.jsx |  101 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 73 insertions(+), 28 deletions(-)

diff --git a/src/tabviews/custom/components/share/normalTable/index.jsx b/src/tabviews/custom/components/share/normalTable/index.jsx
index 7cb3013..83b7612 100644
--- a/src/tabviews/custom/components/share/normalTable/index.jsx
+++ b/src/tabviews/custom/components/share/normalTable/index.jsx
@@ -6,16 +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 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
 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 = {
@@ -343,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)
         }
       }
 
@@ -351,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) {
@@ -384,14 +387,6 @@
       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}/>
-      )
     }
 
     if (resProps.rowSpan === 0) return null
@@ -416,7 +411,6 @@
   }
 
   state = {
-    dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     tableId: '',          // 琛ㄦ牸ID
     selectedRowKeys: [],  // 琛ㄦ牸涓�変腑琛�
     pageIndex: 1,         // 鍒濆椤甸潰绱㈠紩
@@ -484,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
               })
             }
@@ -508,6 +502,8 @@
           width: item.Width || 120
         })
       })
+
+      orderfields = null
     }
 
     if (rowspans.length === 0) {
@@ -618,10 +614,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 +738,7 @@
   /**
    * 
    */
-  onSelectChange = selectedRowKeys => {
+  onSelectChange = (selectedRowKeys, e) => {
     const { setting, MenuID, data } = this.props
 
     let index = ''
@@ -798,7 +816,9 @@
       pickup: false
     })
 
-    sorter.field = orderfields[sorter.field] || ''
+    if (orderfields) {
+      sorter.field = orderfields[sorter.field] || ''
+    }
 
     this.props.refreshdata(pagination, filters, sorter)
   }
@@ -819,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
@@ -911,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
@@ -950,7 +977,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 +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
         }
@@ -972,14 +1016,15 @@
           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 {
               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)}

--
Gitblit v1.8.0