From 9c6795fd3c44e46cf3955fbfd8f8eeca23acb7a9 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期六, 08 十月 2022 00:31:51 +0800
Subject: [PATCH] 2022-10-08

---
 src/tabviews/custom/components/form/tab-form/index.jsx |   74 ++++++++++++++++++++++++-------------
 1 files changed, 48 insertions(+), 26 deletions(-)

diff --git a/src/tabviews/custom/components/form/tab-form/index.jsx b/src/tabviews/custom/components/form/tab-form/index.jsx
index 69100f4..870b4ad 100644
--- a/src/tabviews/custom/components/form/tab-form/index.jsx
+++ b/src/tabviews/custom/components/form/tab-form/index.jsx
@@ -1,7 +1,6 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { connect } from 'react-redux'
 import { Spin, notification } from 'antd'
 
 import Api from '@/api'
@@ -18,11 +17,9 @@
 
 class TabForm extends Component {
   static propTpyes = {
-    BID: PropTypes.any,              // 鐖剁骇Id
     data: PropTypes.array,           // 缁熶竴鏌ヨ鏁版嵁
     config: PropTypes.object,        // 缁勪欢閰嶇疆淇℃伅
     mainSearch: PropTypes.any,       // 澶栧眰鎼滅储鏉′欢
-    menuType: PropTypes.any,         // 鑿滃崟绫诲瀷
   }
 
   state = {
@@ -31,16 +28,29 @@
     config: null,              // 鍥捐〃閰嶇疆淇℃伅
     loading: false,            // 鏁版嵁鍔犺浇鐘舵��
     sync: false,               // 鏄惁缁熶竴璇锋眰鏁版嵁
-    data: null,                  // 鏁版嵁
+    data: null,
+    BData: '',
     group: null,
   }
 
   UNSAFE_componentWillMount () {
-    const { data, BID } = this.props
+    const { data } = this.props
     let config = fromJS(this.props.config).toJS()
 
     let _data = null
     let _sync = false
+
+    let BID = ''
+    let BData = ''
+
+    if (config.setting.supModule) {
+      BData = window.GLOB.CacheData.get(config.setting.supModule)
+    } else {
+      BData = window.GLOB.CacheData.get(config.$pageId)
+    }
+    if (BData) {
+      BID = BData.$BID || ''
+    }
 
     if (config.wrap.datatype !== 'static') {
       _sync = config.setting.sync === 'true'
@@ -78,6 +88,7 @@
       data: _data,
       group: config.subcards[0],
       BID: BID || '',
+      BData: BData || '',
       config: config,
       arr_field: config.columns.map(col => col.field).join(','),
     }, () => {
@@ -168,20 +179,33 @@
     this.execSuccess(btn, id)
   }
 
-  resetParentParam = (MenuID, id) => {
+  resetParentParam = (MenuID, id, data) => {
     const { config } = this.state
-    if (config.wrap.datatype === 'static' || !config.setting.supModule || config.setting.supModule !== MenuID) return
+    if (!config.setting.supModule || config.setting.supModule !== MenuID) return
+
     if (id !== this.state.BID || id !== '') {
-      this.setState({ BID: id }, () => {
-        this.loadData()
-      })
+      if (config.wrap.datatype === 'static' || (config.setting.supModule && !id)) {
+        this.setState({
+          data: null,
+          BID: id,
+          BData: data
+        }, () => {
+          this.setState({
+            data: {$$empty: true}
+          })
+        })
+      } else {
+        this.setState({ BID: id, BData: data }, () => {
+          this.loadData()
+        })
+      }
     }
   }
 
   execSuccess = (btn, id) => {
     if (btn.linkmenu && btn.linkmenu.length > 0) {
       let menu_id = btn.linkmenu[btn.linkmenu.length - 1]
-      let menu = this.props.permMenus.filter(m => m.MenuID === menu_id)[0] || ''
+      let menu = window.GLOB.mkThdMenus.filter(m => m.MenuID === menu_id)[0] || ''
 
       if (!menu) return
 
@@ -199,12 +223,19 @@
   }
 
   async loadData () {
-    const { mainSearch, menuType } = this.props
+    const { mainSearch } = this.props
     const { config, arr_field, BID } = this.state
 
-    if (config.wrap.datatype === 'static' || (config.setting.supModule && !BID)) {
+    if (config.wrap.datatype === 'static') {
       this.setState({
         data: {$$empty: true}
+      })
+      return
+    } else if (config.setting.supModule && !BID) {
+      this.setState({
+        data: null
+      }, () => {
+        this.setState({data: {$$empty: true}})
       })
       return
     }
@@ -221,7 +252,7 @@
     })
 
     let _orderBy = config.setting.order || ''
-    let param = UtilsDM.getQueryDataParams(config.setting, arr_field, searches, _orderBy, 1, 1, BID, menuType)
+    let param = UtilsDM.getQueryDataParams(config.setting, arr_field, searches, _orderBy, 1, 1, BID)
 
     let result = await Api.genericInterface(param)
     if (result.status) {
@@ -264,7 +295,7 @@
   }
 
   render() {
-    const { config, loading, BID, data, group, dict } = this.state
+    const { config, loading, BID, BData, data, group, dict } = this.state
 
     return (
       <div className="custom-tab-form-box" id={'anchor' + config.uuid} style={{...config.style}}>
@@ -283,6 +314,7 @@
         </div> : null}
         {group && data ? <MutilForm
           BID={BID}
+          BData={BData}
           dict={dict}
           data={data}
           action={group}
@@ -303,14 +335,4 @@
   }
 }
 
-const mapStateToProps = (state) => {
-  return {
-    permMenus: state.permMenus,
-  }
-}
-
-const mapDispatchToProps = () => {
-  return {}
-}
-
-export default connect(mapStateToProps, mapDispatchToProps)(TabForm)
\ No newline at end of file
+export default TabForm
\ No newline at end of file

--
Gitblit v1.8.0