From 50b49c1b760489c3430fc382656d57c5fbbab07c Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 29 四月 2024 16:07:24 +0800 Subject: [PATCH] 2024-04-29 --- src/components/breadview/index.jsx | 112 +++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 87 insertions(+), 25 deletions(-) diff --git a/src/components/breadview/index.jsx b/src/components/breadview/index.jsx index 3a44900..44494c8 100644 --- a/src/components/breadview/index.jsx +++ b/src/components/breadview/index.jsx @@ -1,6 +1,6 @@ import React, {Component} from 'react' -import { BackTop, Breadcrumb, notification} from 'antd' -import { HomeOutlined, RightOutlined, RedoOutlined } from '@ant-design/icons' +import { BackTop, Breadcrumb, notification, Modal } from 'antd' +import { HomeOutlined, RightOutlined, RedoOutlined, LoadingOutlined } from '@ant-design/icons' import moment from 'moment' import 'moment/locale/zh-cn' @@ -22,8 +22,38 @@ class BreadView extends Component { state = { - tabview: null, // 鏍囩 - hasNavBar: window.GLOB.navBar === 'linkage_navigation' + tabview: null, + hasNavBar: window.GLOB.navBar === 'linkage_navigation', + visible: false + } + + reloading = false + + UNSAFE_componentWillMount () { + let home = { + MenuID: 'home_page_id', + MenuName: '棣栭〉', + type: 'Home' + } + this.setState({tabview: home}) + } + + componentDidMount () { + MKEmitter.addListener('modifyTabs', this.modifyTabs) + if (window.GLOB.forcedUpdate) { + MKEmitter.addListener('reloadTabs', this.reloadTabs) + } + } + + /** + * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊 + */ + componentWillUnmount () { + this.setState = () => { + return + } + MKEmitter.removeListener('reloadTabs', this.reloadTabs) + MKEmitter.removeListener('modifyTabs', this.modifyTabs) } refreshTabview = () => { @@ -105,15 +135,6 @@ } } - UNSAFE_componentWillMount () { - let home = { - MenuID: 'home_page_id', - MenuName: '棣栭〉', - type: 'Home' - } - this.setState({tabview: home}) - } - gotoHome = () => { let home = { MenuID: 'home_page_id', @@ -134,22 +155,48 @@ } } - componentDidMount () { - MKEmitter.addListener('modifyTabs', this.modifyTabs) - } + reloadTabs = () => { + if (this.reloading) return - /** - * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊 - */ - componentWillUnmount () { - this.setState = () => { - return - } - MKEmitter.removeListener('modifyTabs', this.modifyTabs) + this.reloading = true + let time = new Date().getTime() + + this.setState({visible: true}) + + Api.getAppVersion(true).then((list) => { + let _time = new Date().getTime() + let delay = _time - time + delay = delay < 3000 ? 3000 - delay : 0 + + setTimeout(() => { + this.setState({visible: false}) + this.reloading = false + + Modal.success({ + title: '鏇存柊鎴愬姛銆�', + }) + + if (list && list.length && list.includes(this.state.tabview.MenuID)) { + MKEmitter.emit('reloadMenuView', this.state.tabview.MenuID) + } + }, delay) + }, (message) => { + let _time = new Date().getTime() + let delay = _time - time + delay = delay < 3000 ? 3000 - delay : 0 + + setTimeout(() => { + this.setState({visible: false}) + this.reloading = false + Modal.error({ + title: message || '绯荤粺閰嶇疆鏇存柊澶辫触锛�', + }) + }, delay) + }) } render () { - const { tabview, hasNavBar } = this.state + const { tabview, hasNavBar, visible } = this.state return ( <section id="mk-tabgroup-wrap" className="mk-breadview-wrap"> @@ -175,6 +222,21 @@ </div> </div> </BackTop> + <Modal + visible={visible} + width={400} + closable={false} + centered={true} + footer={null} + destroyOnClose + > + <div className="mk-menus-update"> + <div className="tip"> + 绯荤粺鏇存柊涓紝璇风◢鍚� + </div> + <LoadingOutlined /> + </div> + </Modal> </section> ) } -- Gitblit v1.8.0