From cb4c8706eb48183ac8875d92d4a950ad6b6675a2 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 18 三月 2020 11:01:11 +0800 Subject: [PATCH] 2020-03-18 --- src/components/tabview/index.jsx | 69 +++++++++++++--------------------- 1 files changed, 26 insertions(+), 43 deletions(-) diff --git a/src/components/tabview/index.jsx b/src/components/tabview/index.jsx index a15b7b9..bd3e1f4 100644 --- a/src/components/tabview/index.jsx +++ b/src/components/tabview/index.jsx @@ -3,20 +3,29 @@ import {connect} from 'react-redux' import { is, fromJS } from 'immutable' import {Tabs, Icon, Button, ConfigProvider, message, BackTop} from 'antd' -import {modifyTabview, toggleIsiframe, refreshTabView} from '@/store/action' -// import asyncComponent from '@/utils/asyncComponent' -import asyncComponent from '@/utils/asyncLoadComponent' -import NotFount from '@/components/404' import enUS from 'antd/es/locale/en_US' import zhCN from 'antd/es/locale/zh_CN' -import mzhCN from '@/locales/zh-CN/main.js' -import menUS from '@/locales/en-US/main.js' import moment from 'moment' import 'moment/locale/zh-cn' + +import {modifyTabview, toggleIsiframe, refreshTabView} from '@/store/action' +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 './index.scss' +const Home = asyncComponent(() => import('@/tabviews/home')) +const CommonTable = asyncComponent(() => import('@/tabviews/commontable')) +const VerupTable = asyncComponent(() => import('@/tabviews/verup')) +const ManageTable = asyncComponent(() => import('@/tabviews/managetable')) +const Iframe = asyncComponent(() => import('@/tabviews/iframe')) +const DataManage = asyncComponent(() => import('@/tabviews/datamanage')) +const RoleManage = asyncComponent(() => import('@/tabviews/rolemanage')) +const TabForm = asyncComponent(() => import('@/tabviews/tabform')) +const FormTab = asyncComponent(() => import('@/tabviews/formtab')) -let Comps = {} let service = window.GLOB.service ? (/\/$/.test(window.GLOB.service) ? window.GLOB.service : window.GLOB.service + '/') : '' if (process.env.NODE_ENV === 'production') { @@ -88,21 +97,23 @@ selectcomponent = (view) => { // 鏍规嵁tab椤典腑鑿滃崟淇℃伅锛岄�夋嫨鎵�闇�鐨勭粍浠� if (view.type === 'Home') { - return (<Comps.Home MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) + return (<Home MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) } else if (view.type === 'CommonTable') { - return (<Comps.CommonTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) + return (<CommonTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) + } else if (view.type === 'VerupTable') { + return (<VerupTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) } else if (view.type === 'ManageTable') { - return (<Comps.CommonTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) + return (<ManageTable MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) } else if (view.type === 'DataManage') { - return (<Comps.DataManage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) + return (<DataManage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) } else if (view.type === 'RolePermission') { - return (<Comps.RoleManage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) + return (<RoleManage MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID}/>) } else if (view.type === 'TabForm') { - return (<Comps.TabForm MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>) + return (<TabForm MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>) } else if (view.type === 'FormTab') { - return (<Comps.FormTab MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>) + return (<FormTab MenuNo={view.MenuNo} MenuID={view.MenuID} MenuName={view.MenuName} key={view.MenuID} param={view.param}/>) } else if (view.type === 'iframe') { - return (<Comps.Iframe key={view.MenuID} title={view.MenuName} MenuName={view.MenuName} url={service + view.LinkUrl}/>) + return (<Iframe key={view.MenuID} title={view.MenuName} MenuName={view.MenuName} url={service + view.LinkUrl}/>) } else { return (<NotFount key={view.MenuID} />) } @@ -163,30 +174,6 @@ UNSAFE_componentWillReceiveProps (nextProps) { if (nextProps.tabviews && !is(fromJS(this.state.tabviews), fromJS(nextProps.tabviews))) { - // tab绐楀彛椤靛鍔犳垨鍒犻櫎 - if (nextProps.tabviews.length > this.state.tabviews.length) { - // 鏌ョ湅鏂皌ab椤甸渶瑕佺粍浠舵槸鍚﹀姞杞� - let MenuIDs = this.state.tabviews.map(tab => {return tab.MenuID}) - let newtab = nextProps.tabviews.filter(tab => !MenuIDs.includes(tab.MenuID))[0] - if (!Comps.Home && newtab.type === 'Home') { - Comps.Home = asyncComponent(() => import('@/tabviews/home')) - } else if (!Comps.CommonTable && newtab.type === 'CommonTable') { - Comps.CommonTable = asyncComponent(() => import('@/tabviews/commontable')) - } else if (!Comps.CommonTable && newtab.type === 'ManageTable') { - Comps.CommonTable = asyncComponent(() => import('@/tabviews/managetable')) - } else if (!Comps.Iframe && newtab.type === 'iframe') { - Comps.Iframe = asyncComponent(() => import('@/tabviews/iframe')) - } else if (!Comps.DataManage && newtab.type === 'DataManage') { - Comps.DataManage = asyncComponent(() => import('@/tabviews/datamanage')) - } else if (!Comps.RoleManage && newtab.type === 'RolePermission') { - Comps.RoleManage = asyncComponent(() => import('@/tabviews/rolemanage')) - } else if (!Comps.TabForm && newtab.type === 'TabForm') { - Comps.TabForm = asyncComponent(() => import('@/tabviews/tabform')) - } else if (!Comps.FormTab && newtab.type === 'FormTab') { - Comps.FormTab = asyncComponent(() => import('@/tabviews/formtab')) - } - } - // 淇濆瓨淇敼鏍囩闆� this.setState({ tabviews: nextProps.tabviews @@ -198,10 +185,6 @@ } } } - - // shouldComponentUpdate(nextProps, nextState) { - // return !is(fromJS(this.props), fromJS(nextProps)) || !is(fromJS(this.state), fromJS(nextState)) - // } render () { const { tabviews } = this.state -- Gitblit v1.8.0