From 67a307d8f0fa25fbc56ee9f84c313d521280925f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 04 三月 2022 15:33:09 +0800
Subject: [PATCH] 2022-03-04

---
 src/tabviews/custom/components/table/edit-table/index.jsx |   95 +++++++++++++++++++++++++++--------------------
 1 files changed, 54 insertions(+), 41 deletions(-)

diff --git a/src/tabviews/custom/components/table/edit-table/index.jsx b/src/tabviews/custom/components/table/edit-table/index.jsx
index 09e5078..9c8d79c 100644
--- a/src/tabviews/custom/components/table/edit-table/index.jsx
+++ b/src/tabviews/custom/components/table/edit-table/index.jsx
@@ -9,12 +9,13 @@
 import UtilsDM from '@/utils/utils-datamanage.js'
 import asyncComponent from '@/utils/asyncComponent'
 import MKEmitter from '@/utils/events.js'
+import MainTable from './normalTable'
 import './index.scss'
 
 // 閫氱敤缁勪欢
 const MainSearch = asyncComponent(() => import('@/tabviews/zshare/topSearch'))
 const MainAction = asyncComponent(() => import('@/tabviews/zshare/actionList'))
-const MainTable = asyncComponent(() => import('./normalTable'))
+// const MainTable = asyncComponent(() => import('./normalTable'))
 const NormalHeader = asyncComponent(() => import('@/tabviews/custom/components/share/normalheader'))
 
 class EditableTable extends Component {
@@ -43,7 +44,8 @@
     pageSize: 10,         // 姣忛〉鏁版嵁鏉℃暟
     orderBy: '',          // 鎺掑簭
     search: '',           // 鎼滅储鏉′欢鏁扮粍锛屼娇鐢ㄦ椂闇�鍒嗗満鏅鐞�
-    statFValue: []        // 鍚堣鍊�
+    statFValue: [],       // 鍚堣鍊�
+    lock: false
   }
 
   /**
@@ -200,22 +202,25 @@
       if (setting.laypage) {
         start = pageSize * (pageIndex - 1) + 1
       }
+      let data = result.data.map((item, index) => {
+        item.key = index
+        item.$$uuid = item[setting.primaryKey] || ''
+        item.$$BID = BID || ''
+        item.$$BData = BData || ''
+        item.$Index = start + index + ''
+        item.$type = 'upt'
+        item.$origin = true
+        return item
+      })
 
       this.setState({
-        data: result.data.map((item, index) => {
-          item.key = index
-          item.$$uuid = item[setting.primaryKey] || ''
-          item.$$BID = BID || ''
-          item.$$BData = BData || ''
-          item.$Index = start + index + ''
-          item.$type = 'upt'
-          item.$origin = true
-          return item
-        }),
+        data: data,
         selectedData: [],
         total: result.total,
         loading: false
       })
+
+      MKEmitter.emit('transferData', config.uuid, data)
     } else {
       this.setState({
         loading: false
@@ -231,7 +236,7 @@
   /**
    * @description 鑾峰彇鍗曡鏁版嵁
    */ 
-  async loadmainLinedata (id) {
+  async loadmainLinedata (id, line) {
     const { mainSearch } = this.props
     const { setting, config, arr_field, search, orderBy, BID, pageIndex, pageSize, BData } = this.state
 
@@ -256,34 +261,40 @@
     if (result.status) {
       let data = fromJS(this.state.data).toJS()
       let selectedData = fromJS(this.state.selectedData).toJS()
-      if (result.data && result.data[0]) {
-        let _data = result.data[0] || {}
-        _data.$$uuid = _data[setting.primaryKey] || ''
-        _data.$$BID = BID || ''
-        _data.$$BData = BData || ''
-        _data.$type = 'upt'
-        _data.$origin = true
 
-        try {
-          data = data.map(item => {
-            if (item.$$uuid === _data.$$uuid) {
-              _data.key = item.key
-              _data.$Index = item.$Index
-              return _data
-            } else {
-              return item
-            }
-          })
-          selectedData = selectedData.map(item => {
-            if (_data.$$uuid === item.$$uuid) {
-              return _data
-            }
+      let _data = result.data[0] || {}
+      _data.$$uuid = _data[setting.primaryKey] || ''
+      _data.$$BID = BID || ''
+      _data.$$BData = BData || ''
+      _data.$type = 'upt'
+      _data.$origin = true
+
+      try {
+        data = data.map(item => {
+          if (item.$$uuid === _data.$$uuid) {
+            _data.key = item.key
+            _data.$Index = item.$Index
+            return _data
+          } else {
             return item
-          })
-        } catch (e) {
-          console.warn('鏁版嵁鏌ヨ閿欒')
-        }
+          }
+        })
+        selectedData = selectedData.map(item => {
+          if (_data.$$uuid === item.$$uuid) {
+            return _data
+          }
+          return item
+        })
+      } catch (e) {
+        console.warn('鏁版嵁鏌ヨ閿欒')
+      }
 
+      if (line) {
+        if (line.$type === 'del' && !result.data[0]) {
+          data = data.filter(m => m.$$uuid === line.$$uuid)
+        }
+        MKEmitter.emit('transferData', config.uuid, _data, 'line')
+      } else {
         MKEmitter.emit('resetSelectLine', config.uuid, _data.$$uuid || '', _data)
       }
 
@@ -462,7 +473,7 @@
     })
   }
 
-  reloadData = (menuId, id) => {
+  reloadData = (menuId, id, item) => {
     const { config } = this.state
 
     if (config.uuid !== menuId) return
@@ -471,7 +482,7 @@
     if (!id) {
       this.reloadtable()
     } else {
-      this.loadmainLinedata(id)
+      this.loadmainLinedata(id, item)
     }
   }
 
@@ -555,7 +566,7 @@
   }
 
   render() {
-    const { BID, setting, searchlist, actions, config, columns, BData, data, selectedData } = this.state
+    const { BID, setting, searchlist, actions, config, columns, BData, data, selectedData, lock } = this.state
 
     return (
       <div className="custom-edit-table" style={config.style}>
@@ -568,6 +579,7 @@
           setting={setting}
           actions={actions}
           BData={BData}
+          lock={lock}
           columns={config.columns}
           selectedData={selectedData}
         />
@@ -585,6 +597,7 @@
             loading={this.state.loading}
             refreshdata={this.refreshbytable}
             chgSelectData={(selects) => this.setState({selectedData: selects})}
+            changeLock={(lock) => this.setState({lock: lock})}
             statFValue={this.state.statFValue}
           />
         </div>

--
Gitblit v1.8.0