From 12add7610dc9a998b4296e3f203fa858694bdbd3 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 31 八月 2021 12:59:52 +0800 Subject: [PATCH] 2021-08-31 --- src/components/tabview/index.jsx | 41 +++++++++++++++++++++++++++++++++++------ 1 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/components/tabview/index.jsx b/src/components/tabview/index.jsx index cab23a1..c1b6dc0 100644 --- a/src/components/tabview/index.jsx +++ b/src/components/tabview/index.jsx @@ -49,7 +49,7 @@ dict: sessionStorage.getItem('lang') !== 'en-US' ? mzhCN : menUS, } - handleTabview = (e, menu) => { + handleTabview = (e, menu, index) => { e.stopPropagation() // 鍏抽棴tab椤碉紝閲嶆柊閫夋嫨鏄剧ず椤� let tabs = fromJS(this.state.tabviews).toJS() @@ -57,10 +57,37 @@ return tab.MenuID !== menu.MenuID }) - if (menu.selected && tabs[0]) { - tabs[0].selected = true + if (menu.selected && tabs[index - 1]) { + tabs[index - 1].selected = true this.setState({ - activeId: tabs[0].MenuID || '' + activeId: tabs[index - 1].MenuID || '' + }) + + if (this.props.isiframe) { + this.props.toggleIsiframe(false) + } + } + + this.props.modifyTabview(tabs) + } + + closeTabView = (id) => { + // 鍏抽棴tab椤碉紝閲嶆柊閫夋嫨鏄剧ず椤� + let tabs = fromJS(this.state.tabviews).toJS() + let index = 0 + tabs = tabs.filter((tab, i) => { + if (tab.MenuID === id) { + index = i + return false + } else { + return true + } + }) + + if (tabs[index - 1]) { + tabs[index - 1].selected = true + this.setState({ + activeId: tabs[index - 1].MenuID || '' }) if (this.props.isiframe) { @@ -214,6 +241,7 @@ } this.props.modifyTabview([home]) } + MKEmitter.addListener('closeTabView', this.closeTabView) } UNSAFE_componentWillReceiveProps (nextProps) { @@ -257,6 +285,7 @@ this.setState = () => { return } + MKEmitter.removeListener('closeTabView', this.closeTabView) } render () { @@ -267,7 +296,7 @@ <div className="content-header"> {tabviews && tabviews.length > 0 && <Tabs activeKey={activeId}> - {tabviews.map(view => { + {tabviews.map((view, index) => { return ( <Tabs.TabPane tab={ @@ -277,7 +306,7 @@ {view.MenuName} </span> {view.type !== 'Home' ? - <Icon type="close" onClick={(e) => {this.handleTabview(e, view)}}/> : null + <Icon type="close" onClick={(e) => {this.handleTabview(e, view, index)}}/> : null } </span> } -- Gitblit v1.8.0