king
2022-08-02 8d66ff34fae5b048a6b7923cc75d34f13a08be9d
src/templates/sharecomponent/tabscomponent/index.jsx
@@ -1,7 +1,8 @@
import React, {Component} from 'react'
import PropTypes from 'prop-types'
import { is, fromJS } from 'immutable'
import { Icon, Tooltip, Modal, notification } from 'antd'
import { Tooltip, Modal, notification } from 'antd'
import { QuestionCircleOutlined, ArrowDownOutlined, ArrowUpOutlined, PlusOutlined, DeleteOutlined } from '@ant-design/icons'
import Utils from '@/utils/utils.js'
import zhCN from '@/locales/zh-CN/model.js'
@@ -23,7 +24,7 @@
  }
  state = {
    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
    dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
    tabgroups: [],     // 标签组
    card: [],          // 编辑标签
    group: [],         // 编辑组
@@ -101,7 +102,7 @@
      if (group.uuid === _group.uuid) {
        isuptab = false
        group.sublist.forEach(tab => { // 可关联的同级标签
          if (tab.level) {
          if (tab.level || tab.level === 0) {
            levels[tab.uuid] = tab.level
          }
@@ -112,7 +113,7 @@
        })
      } else if (isuptab) {
        group.sublist.forEach(tab => {
          if (tab.level) {
          if (tab.level || tab.level === 0) {
            levels[tab.uuid] = tab.level
          }
@@ -226,8 +227,6 @@
    confirm({
      content: `确定删除<<${card.label}>>吗?`,
      okText: this.state.dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      onOk() {
        tabgroups = tabgroups.map(_group => {
          if (_group.uuid === group.uuid) {
@@ -250,7 +249,7 @@
        _this.setState({
          tabgroups: tabgroups
        }, () => {
          _this.props.updatetabs({...config, tabgroups: tabgroups}, [card])
          _this.props.updatetabs({...config, tabgroups: tabgroups})
        })
      },
      onCancel() {}
@@ -267,8 +266,6 @@
    confirm({
      content: `确定新建标签组吗?`,
      okText: this.state.dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      onOk() {
        if (_tabgroups.length === 1) {
          _tabgroups.forEach(group => {
@@ -301,8 +298,6 @@
    confirm({
      content: `确定删除标签组吗?`,
      okText: this.state.dict['model.confirm'],
      cancelText: this.state.dict['header.cancel'],
      onOk() {
        _tabgroups = _tabgroups.filter(_group => _group.uuid !== group.uuid)
@@ -376,6 +371,10 @@
    }
  }
  shouldComponentUpdate (nextProps, nextState) {
    return !is(fromJS(this.state), fromJS(nextState))
  }
  /**
   * @description 组件销毁,清除state更新
   */
@@ -393,28 +392,28 @@
        {tabgroups.map((group, index) => {
          return (
            <div key={index} className="tab-line-list">
              {index === 0 ? <Tooltip placement="bottomLeft" overlayClassName="middle" title={dict['model.tooltip.tabs.guide']}>
                <Icon type="question-circle" />
              {index === 0 ? <Tooltip placement="bottomLeft" overlayClassName="middle" title="在左侧工具栏《标签页》中,选择对应类型的标签页拖至此处添加。">
                <QuestionCircleOutlined style={{color: '#c49f47', position: 'absolute', left: '5px', top: '20px'}} />
              </Tooltip> : null}
              {index !== (tabgroups.length - 1) ?
                <Icon type="arrow-down" onClick={() => {this.handleGroup(index, 'down')}} /> : null
                <ArrowDownOutlined onClick={() => {this.handleGroup(index, 'down')}} /> : null
              }
              {index !== 0 ? <Icon type="arrow-up" onClick={() => {this.handleGroup(index, 'up')}} /> : null}
              {index === 0 ? <Icon type="plus" onClick={this.addTabGroup} /> : null}
              {index !== 0 ? <Icon type="delete" onClick={() => {this.delTabGroup(group)}} /> : null}
              {index !== 0 ? <ArrowUpOutlined onClick={() => {this.handleGroup(index, 'up')}} /> : null}
              {index === 0 ? <PlusOutlined onClick={this.addTabGroup} /> : null}
              {index !== 0 ? <DeleteOutlined onClick={() => {this.delTabGroup(group)}} /> : null}
              <TabDragElement
                list={group.sublist}
                handleList={(list, newcard) => this.handleList(list, newcard, group.uuid)}
                handleMenu={(card) => this.handleTab(card, group)}
                deleteMenu={(card) => this.deleteElement(card, group)}
                doubleClickCard={this.props.setSubConfig}
                placeholder={this.state.dict['header.form.tab.placeholder']}
                placeholder={dict['form.required.add'] + dict['model.form.tab']}
              />
            </div>)
        })}
        {/* 标签编辑 */}
        <Modal
          title={this.state.dict['header.modal.tabs.edit']}
          title="标签-编辑"
          visible={visible}
          width={750}
          maskClosable={false}
@@ -423,7 +422,7 @@
          destroyOnClose
        >
          <TabForm
            dict={this.state.dict}
            dict={dict}
            card={this.state.card}
            tabs={this.props.tabs}
            levels={this.state.levels}