From c98e45bfac25e9110ad0383faac54a54d98ea9d5 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 18 十一月 2021 20:47:04 +0800 Subject: [PATCH] 2021-11-18 --- src/components/tabview/index.jsx | 53 ++++++++++++++++++++++++++--------------------------- 1 files changed, 26 insertions(+), 27 deletions(-) diff --git a/src/components/tabview/index.jsx b/src/components/tabview/index.jsx index 9cb3e0d..199b2a6 100644 --- a/src/components/tabview/index.jsx +++ b/src/components/tabview/index.jsx @@ -6,7 +6,7 @@ import moment from 'moment' import 'moment/locale/zh-cn' -import { toggleIsiframe, initActionPermission } from '@/store/action' +import { initActionPermission } from '@/store/action' import asyncComponent from '@/utils/asyncLoadComponent' import NotFount from '@/components/404' import options from '@/store/options.js' @@ -64,7 +64,9 @@ if (index > -1) { let activeId = '' - if (index > 0) { + if (id !== this.state.activeId) { + activeId = this.state.activeId + } else if (index > 0) { activeId = tabs[index - 1].MenuID || '' } else if (tabs[index]) { activeId = tabs[index].MenuID || '' @@ -74,10 +76,6 @@ activeId, tabviews: tabs }) - - if (this.props.isiframe) { - this.props.toggleIsiframe(false) - } let node = document.getElementById('root').parentNode.parentNode if (node) { @@ -138,10 +136,27 @@ } } - modifyTabs = (tab, type) => { - const { tabviews } = this.state + modifyTabs = (tab, type, fixed) => { + const { tabviews, activeId } = this.state - if (type === 'plus') { + if (type === 'plus' && fixed) { + let _tabs = tabviews.filter(item => item.MenuID !== tab.MenuID) + let index = _tabs.findIndex(item => item.MenuID === activeId) + + this.setState({ + tabviews: _tabs + }, () => { + if (index > -1) { + _tabs.splice(index + 1, 0, tab) + } else { + _tabs.push(tab) + } + this.setState({ + tabviews: _tabs, + activeId: tab.MenuID + }) + }) + } else if (type === 'plus') { if (tabviews.findIndex(item => item.MenuID === tab.MenuID) > -1) { let _tabs = tabviews.filter(item => item.MenuID !== tab.MenuID) this.setState({ @@ -174,16 +189,6 @@ changeTab = (e, menu) => { e.stopPropagation() // 绐楀彛鍒囨崲 - let _isiframe = this.props.isiframe - if (menu.type === 'iframe') { - _isiframe = true - } else { - _isiframe = false - } - - if (_isiframe !== this.props.isiframe) { - this.props.toggleIsiframe(_isiframe) - } this.setState({ activeId: menu.MenuID || '' @@ -252,10 +257,6 @@ MKEmitter.addListener('closeTabView', this.closeTabView) } - UNSAFE_componentWillReceiveProps (nextProps) { - - } - /** * @description 缁勪欢閿�姣侊紝娓呴櫎state鏇存柊 */ @@ -271,7 +272,7 @@ const { tabviews, activeId } = this.state return ( - <section id="mk-tabview-wrap" className={'mk-tabview-wrap' + (this.props.collapse ? ' collapsed' : '')}> + <section id="mk-tabview-wrap" className={'mk-tabview-wrap' + (this.props.collapse ? ' collapsed' : '') + (tabviews && tabviews.length > 0 ? ' hastab' : '')}> <div className="content-header"> {tabviews && tabviews.length > 0 && <Tabs activeKey={activeId}> @@ -314,14 +315,12 @@ const mapStateToProps = (state) => { return { collapse: state.collapse, - isiframe: state.isiframe } } const mapDispatchToProps = (dispatch) => { return { - initActionPermission: (permAction) => dispatch(initActionPermission(permAction)), - toggleIsiframe: (isiframe) => dispatch(toggleIsiframe(isiframe)) + initActionPermission: (permAction) => dispatch(initActionPermission(permAction)) } } -- Gitblit v1.8.0