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/home/index.jsx |   63 +++++++++++++++++++------------
 1 files changed, 39 insertions(+), 24 deletions(-)

diff --git a/src/tabviews/home/index.jsx b/src/tabviews/home/index.jsx
index ae14a8f..f79eb7e 100644
--- a/src/tabviews/home/index.jsx
+++ b/src/tabviews/home/index.jsx
@@ -1,10 +1,10 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import { connect } from 'react-redux'
 import { notification, Spin } from 'antd'
 
 import Api from '@/api'
 import asyncComponent from '@/utils/asyncComponent'
+import MKEmitter from '@/utils/events.js'
 import './index.scss'
 
 const DefaultHome = asyncComponent(() => import('./defaulthome'))
@@ -18,25 +18,50 @@
   state = {
     loading: true,
     background: sessionStorage.getItem('home_background'),
-    waiting: true,
+    waitMenu: true,
+    waitAction: true,
     view: ''
   }
 
   componentDidMount () {
     this.loadHomeConfig()
-    if (this.props.permMenus.length > 0 && JSON.stringify(this.props.permAction) !== '{}') {
+    if (window.GLOB.mkThdMenus.length > 0) {
       this.setState({
-        waiting: false
+        waitMenu: false
       })
+    } else {
+      MKEmitter.addListener('mkMenuLoaded', this.mkMenuLoaded)
+    }
+    if (window.GLOB.mkActions.loaded) {
+      this.setState({
+        waitAction: false
+      })
+    } else {
+      MKEmitter.addListener('mkActionLoaded', this.mkActionLoaded)
     }
   }
 
-  UNSAFE_componentWillReceiveProps (nextProps) {
-    if (nextProps.permMenus.length > 0 && JSON.stringify(nextProps.permAction) !== '{}') {
-      this.setState({
-        waiting: false
-      })
+  /**
+   * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊
+   */
+  componentWillUnmount () {
+    this.setState = () => {
+      return
     }
+    MKEmitter.removeListener('mkMenuLoaded', this.mkMenuLoaded)
+    MKEmitter.removeListener('mkActionLoaded', this.mkActionLoaded)
+  }
+
+  mkMenuLoaded = () => {
+    this.setState({
+      waitMenu: false
+    })
+  }
+
+  mkActionLoaded = () => {
+    this.setState({
+      waitAction: false
+    })
   }
 
   loadHomeConfig = () => {
@@ -54,7 +79,8 @@
         } else {
           this.setState({
             loading: false,
-            waiting: false,
+            waitMenu: false,
+            waitAction: false,
             view: 'default'
           })
         }
@@ -73,9 +99,9 @@
   }
 
   render() {
-    const { loading, waiting, view, background } = this.state
+    const { loading, waitAction, waitMenu, view, background } = this.state
 
-    if (loading || waiting) {
+    if (loading || waitAction || waitMenu) {
       return (<div className="home-loading-view" style={{background: background}}><Spin className="home-box-spin" size="large" /></div>)
     } else if (view === 'custom') {
       return (<CustomPage MenuID={this.props.MenuID} MenuName="棣栭〉"/>)
@@ -85,15 +111,4 @@
   }
 }
 
-const mapStateToProps = (state) => {
-  return {
-    permAction: state.permAction,
-    permMenus: state.permMenus
-  }
-}
-
-const mapDispatchToProps = () => {
-  return {}
-}
-
-export default connect(mapStateToProps, mapDispatchToProps)(Home)
\ No newline at end of file
+export default Home
\ No newline at end of file

--
Gitblit v1.8.0