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/components/breadview/index.jsx |  123 +++++++++++++++++++++++++---------------
 1 files changed, 76 insertions(+), 47 deletions(-)

diff --git a/src/components/breadview/index.jsx b/src/components/breadview/index.jsx
index 2302004..62ae100 100644
--- a/src/components/breadview/index.jsx
+++ b/src/components/breadview/index.jsx
@@ -1,39 +1,29 @@
 import React, {Component} from 'react'
-import {connect} from 'react-redux'
-import { is, fromJS } from 'immutable'
-import { BackTop, Breadcrumb, Icon} from 'antd'
+import { BackTop, Breadcrumb, notification} from 'antd'
+import { HomeOutlined, RightOutlined, RedoOutlined } from '@ant-design/icons'
 import moment from 'moment'
 import 'moment/locale/zh-cn'
 
 import asyncComponent from '@/utils/asyncLoadComponent'
 import NotFount from '@/components/404'
-import mzhCN from '@/locales/zh-CN/main.js'
-import menUS from '@/locales/en-US/main.js'
+import options from '@/store/options.js'
 import MKEmitter from '@/utils/events.js'
-
+import Api from '@/api'
 import './index.scss'
 
 const Home = asyncComponent(() => import('@/tabviews/home'))
 const CustomPage = asyncComponent(() => import('@/tabviews/custom'))
 const CommonTable = asyncComponent(() => import('@/tabviews/commontable'))
+// const BaseTable = asyncComponent(() => import('@/tabviews/basetable'))
 const CalendarPage = asyncComponent(() => import('@/tabviews/calendar'))
 const TreePage = asyncComponent(() => import('@/tabviews/treepage'))
 const Iframe = asyncComponent(() => import('@/tabviews/iframe'))
 const RoleManage = asyncComponent(() => import('@/tabviews/rolemanage'))
 const FormTab = asyncComponent(() => import('@/tabviews/formtab'))
 
-let service = ''
-
-if (process.env.NODE_ENV === 'production') {
-  service = document.location.origin + '/' + window.GLOB.service + 'zh-CN/'
-} else {
-  service = window.GLOB.location + '/' + window.GLOB.service + 'zh-CN/'
-}
-
 class BreadView extends Component {
   state = {
     tabview: null, // 鏍囩
-    dict: sessionStorage.getItem('lang') !== 'en-US' ? mzhCN : menUS,
     hasNavBar: window.GLOB.navBar === 'linkage_navigation'
   }
 
@@ -41,15 +31,62 @@
     const { tabview } = this.state
     window.GLOB.CacheMap = new Map()
 
-    MKEmitter.emit('reloadMenuView', tabview.MenuID)
+    if (options.sysType === 'local' && window.GLOB.systemType !== 'production') {
+      let roledefer = new Promise(resolve => {
+        Api.getSystemConfig({
+          func: 's_Get_TrdMenu_Role',
+          edition_type: 'A',
+          pro_sys: ''
+        }).then(result => {
+          if (!result) return
+          if (!result.status) {
+            notification.error({
+              top: 92,
+              message: result.message,
+              duration: 10
+            })
+          } else {
+            let _permAction = {loaded: true} // 鎸夐挳鏉冮檺
+    
+            if (result.UserRoles_Menu) {
+              result.UserRoles_Menu.forEach(menu => {
+                if (!menu.MenuID) return
+                _permAction[menu.MenuID] = true
+              })
+            }
+  
+            window.GLOB.mkActions = _permAction
+          }
+
+          resolve()
+        })
+      })
+  
+      // 鑾峰彇涓昏彍鍗曞弬鏁�
+      let menudefer = new Promise(resolve => {
+        Api.getAppVersion().then(() => {
+          resolve()
+        }, () => {
+          resolve()
+        })
+      })
+      
+      Promise.all([roledefer, menudefer]).then(() => {
+        MKEmitter.emit('reloadMenuView', tabview.MenuID)
+      })
+    } else {
+      MKEmitter.emit('reloadMenuView', tabview.MenuID)
+    }
   }
 
   selectcomponent = (view) => {
     // 鏍规嵁tab椤典腑鑿滃崟淇℃伅锛岄�夋嫨鎵�闇�鐨勭粍浠�
     if (view.type === 'Home') {
       return (<Home MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>)
-    } else if (view.type === 'CommonTable' || view.type === 'ManageTable') {
+    } else if (view.type === 'CommonTable') {
       return (<CommonTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
+    // } else if (view.type === 'BaseTable') {
+    //   return (<BaseTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
     } else if (view.type === 'CustomPage') {
       return (<CustomPage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
     } else if (view.type === 'TreePage') {
@@ -61,7 +98,7 @@
     } else if (view.type === 'FormTab') {
       return (<FormTab MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>)
     } else if (view.type === 'iframe') {
-      return (<Iframe key={view.MenuID} MenuID={view.MenuID} MenuNo={view.MenuNo} title={view.MenuName} MenuName={view.MenuName} url={service + view.LinkUrl}/>)
+      return (<Iframe key={view.MenuID} MenuID={view.MenuID} MenuNo={view.MenuNo} title={view.MenuName} MenuName={view.MenuName} url={window.GLOB.baseurl + 'zh-CN/' + view.LinkUrl}/>)
     } else {
       return (<NotFount key={view.MenuID} />)
     }
@@ -76,8 +113,7 @@
 
     let home = {
       MenuID: 'home_page_id',
-      MenuName: this.state.dict['main.homepage'],
-      selected: true,
+      MenuName: '棣栭〉',
       type: 'Home'
     }
     this.setState({tabview: home})
@@ -86,25 +122,27 @@
   gotoHome = () => {
     let home = {
       MenuID: 'home_page_id',
-      MenuName: this.state.dict['main.homepage'],
-      selected: true,
+      MenuName: '棣栭〉',
       type: 'Home'
     }
     this.setState({tabview: home})
   }
 
-  UNSAFE_componentWillReceiveProps (nextProps) {
-    if (nextProps.tabviews && !is(fromJS(this.state.tabviews), fromJS(nextProps.tabviews))) {
-      // 淇濆瓨淇敼鏍囩闆�
-      this.setState({
-        tabview: nextProps.tabviews[nextProps.tabviews.length - 1]
-      })
+  modifyTabs = (tab, type) => {
+    if (!tab || type !== 'replace') return
 
-      let node = document.getElementById('root').parentNode.parentNode
-      if (node) {
-        node.scrollTop = 0
-      }
+    this.setState({
+      tabview: tab,
+    })
+
+    let node = document.getElementById('root').parentNode.parentNode
+    if (node) {
+      node.scrollTop = 0
     }
+  }
+
+  componentDidMount () {
+    MKEmitter.addListener('modifyTabs', this.modifyTabs)
   }
 
   /**
@@ -114,6 +152,7 @@
     this.setState = () => {
       return
     }
+    MKEmitter.removeListener('modifyTabs', this.modifyTabs)
   }
 
   render () {
@@ -123,17 +162,17 @@
       <section id="mk-breadview-wrap" className="mk-breadview-wrap">
         {hasNavBar && tabview ? <Breadcrumb separator="">
           <Breadcrumb.Item>
-            <Icon type="home" onClick={this.gotoHome} />
+            <HomeOutlined onClick={this.gotoHome} />
           </Breadcrumb.Item>
           {tabview.ParentNames && tabview.ParentNames[0] ?
             <Breadcrumb.Item>{tabview.ParentNames[0]}</Breadcrumb.Item> : null}
           {tabview.ParentNames && tabview.ParentNames[0] ?
-              <Breadcrumb.Separator children={<Icon type="right" />} /> : null}
+              <Breadcrumb.Separator children={<RightOutlined />} /> : null}
           {tabview.ParentNames && tabview.ParentNames[1] ?
             <Breadcrumb.Item>{tabview.ParentNames[1]}</Breadcrumb.Item> : null}
           {tabview.ParentNames && tabview.ParentNames[1] ?
-              <Breadcrumb.Separator children={<Icon type="right" />} /> : null}
-          <Breadcrumb.Item><Icon type="redo" onClick={this.refreshTabview}/>{tabview.MenuName}</Breadcrumb.Item>
+              <Breadcrumb.Separator children={<RightOutlined />} /> : null}
+          <Breadcrumb.Item><RedoOutlined onClick={this.refreshTabview}/>{tabview.MenuName}</Breadcrumb.Item>
         </Breadcrumb> : null}
         {tabview ? this.selectcomponent(tabview) : null}
         <BackTop>
@@ -148,14 +187,4 @@
   }
 }
 
-const mapStateToProps = (state) => {
-  return {
-    tabviews: state.tabviews
-  }
-}
-
-const mapDispatchToProps = () => {
-  return {}
-}
-
-export default connect(mapStateToProps, mapDispatchToProps)(BreadView)
\ No newline at end of file
+export default BreadView
\ No newline at end of file

--
Gitblit v1.8.0