From 53b9fb93d0376eb02bb996935f1720b4e95cd897 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 12 十月 2022 14:41:06 +0800
Subject: [PATCH] 2022-10-12
---
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