king
2021-08-31 12add7610dc9a998b4296e3f203fa858694bdbd3
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>
                    }