From 5b66fe77e55767eabbf1df66a026157356dd807d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 07 一月 2023 17:28:28 +0800
Subject: [PATCH] 2023-01-07

---
 src/tabviews/custom/components/share/normalTable/index.jsx |  102 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 84 insertions(+), 18 deletions(-)

diff --git a/src/tabviews/custom/components/share/normalTable/index.jsx b/src/tabviews/custom/components/share/normalTable/index.jsx
index e35a7e9..9efe403 100644
--- a/src/tabviews/custom/components/share/normalTable/index.jsx
+++ b/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
@@ -255,7 +252,7 @@
         <div>
           {photos.map((url, i) => (
             <Col key={i} span={col.span || 24}>
-              <MkPicture style={{paddingTop}} scale={scale} url={url} urls={photos}/>
+              <MkPicture style={{paddingTop, backgroundSize: col.backgroundSize || 'cover'}} scale={scale} url={url} urls={photos}/>
             </Col>
           ))}
         </div>
@@ -385,7 +382,10 @@
         <CardCellComponent data={record} cards={config} elements={col.elements}/>
       )
     } else if (col.type === 'action') {
-      style.padding = '0px 5px'
+      style.padding = '0px'
+      if (col.style) {
+        style = {...style, ...col.style}
+      }
       resProps.children = (
         <CardCellComponent data={record} cards={config} elements={col.elements}/>
       )
@@ -404,16 +404,15 @@
     columns: PropTypes.array,        // 琛ㄦ牸鍒�
     lineMarks: PropTypes.array,      // 琛屾爣璁�
     fields: PropTypes.array,         // 缁勪欢瀛楁闆�
-    ContainerId: PropTypes.any,      // 鏍囩椤靛灞侷d
     data: PropTypes.any,             // 琛ㄦ牸鏁版嵁
     total: PropTypes.any,            // 鎬绘暟
     loading: PropTypes.bool,         // 琛ㄦ牸鍔犺浇涓�
     refreshdata: PropTypes.func,     // 琛ㄦ牸涓帓搴忓垪銆侀〉鐮佺殑鍙樺寲鏃跺埛鏂�
     chgSelectData: PropTypes.func,   // 鏁版嵁鍒囨崲
+    autoMatic: PropTypes.any
   }
 
   state = {
-    dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     tableId: '',          // 琛ㄦ牸ID
     selectedRowKeys: [],  // 琛ㄦ牸涓�変腑琛�
     pageIndex: 1,         // 鍒濆椤甸潰绱㈠紩
@@ -549,9 +548,17 @@
   }
 
   componentDidMount () {
-    MKEmitter.addListener('mkCheckTopLine', this.mkCheckTopLine)
+    const { autoMatic } = this.props
+
     MKEmitter.addListener('mkCheckAll', this.mkCheckAll)
     MKEmitter.addListener('resetTable', this.resetTable)
+
+    if (autoMatic === true) {
+      MKEmitter.addListener('autoQueryData', this.autoQueryData)
+      MKEmitter.addListener('autoSelectData', this.autoSelectData)
+    }
+
+    MKEmitter.addListener('mkCheckTopLine', this.mkCheckTopLine)
   }
 
   /**
@@ -561,15 +568,78 @@
     this.setState = () => {
       return
     }
-    MKEmitter.removeListener('mkCheckTopLine', this.mkCheckTopLine)
     MKEmitter.removeListener('mkCheckAll', this.mkCheckAll)
     MKEmitter.removeListener('resetTable', this.resetTable)
+    MKEmitter.removeListener('autoQueryData', this.autoQueryData)
+    MKEmitter.removeListener('autoSelectData', this.autoSelectData)
+    MKEmitter.removeListener('mkCheckTopLine', this.mkCheckTopLine)
   }
 
-  mkCheckTopLine = (menuId, id) => {
+  autoSelectData = (id, index) => {
+    if (id !== this.props.MenuID) return
+
+    const { pageSize, pageIndex } = this.state
+
+    let i = index - (pageIndex - 1) * pageSize - 1
+
+    if (this.props.data[i]) {
+      this.changeRow(this.props.data[i], i)
+      MKEmitter.emit('autoTransSelectData', this.props.MenuID, this.props.data[i])
+    } else {
+      MKEmitter.emit('autoMaticOver', this.props.MenuID)
+    }
+  }
+
+  autoQueryData = (id, index) => {
+    if (id !== this.props.MenuID) return
+
+    const { total } = this.props
+    const { pageSize } = this.state
+
+    if (index !== 1 && (!total || index > total)) {
+      MKEmitter.emit('autoMaticOver', this.props.MenuID)
+      return
+    }
+
+    console.clear()
+
+    let pageIndex = Math.ceil(index / pageSize)
+
+    this.setState({
+      pageIndex: pageIndex,
+      selectedRowKeys: [],
+      activeIndex: null
+    })
+
+    this.props.refreshdata({pageIndex})
+  }
+
+  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) {
@@ -642,11 +712,7 @@
 
       tabmenu.param = __param
 
-      if (['linkage_navigation', 'linkage', 'menu_board'].includes(window.GLOB.navBar)) {
-        MKEmitter.emit('modifyTabs', tabmenu, 'replace')
-      } else {
-        MKEmitter.emit('modifyTabs', tabmenu, 'plus', true)
-      }
+      MKEmitter.emit('modifyTabs', tabmenu, true)
     } else if (item.linkurl) {
       let src = item.linkurl
 
@@ -672,7 +738,7 @@
   /**
    * 
    */
-  onSelectChange = selectedRowKeys => {
+  onSelectChange = (selectedRowKeys, e) => {
     const { setting, MenuID, data } = this.props
 
     let index = ''
@@ -902,7 +968,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} 鏉
       }
     }
 
@@ -915,7 +981,7 @@
     let height = setting.height || false
 
     return (
-      <div className={`normal-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''}`} id={tableId}>
+      <div className={`normal-custom-table ${setting.tableHeader || ''} ${height ? 'fixed-height' : ''} ${setting.mode || ''} table-vertical-${setting.vertical || ''}`} 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
         }

--
Gitblit v1.8.0