From a181fc113d024ed34d6b488c65882961bd1de3f4 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 02 六月 2020 19:00:57 +0800 Subject: [PATCH] 2020-06-02 --- src/templates/sharecomponent/tabscomponent/index.jsx | 49 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/templates/sharecomponent/tabscomponent/index.jsx b/src/templates/sharecomponent/tabscomponent/index.jsx index 5749ffe..79711ac 100644 --- a/src/templates/sharecomponent/tabscomponent/index.jsx +++ b/src/templates/sharecomponent/tabscomponent/index.jsx @@ -16,7 +16,6 @@ class TablesComponent extends Component { static propTpyes = { - type: PropTypes.string, // 鑿滃崟绫诲瀷 tabs: PropTypes.array, // 鏍囩缁� config: PropTypes.object, // 椤甸潰閰嶇疆 setSubConfig: PropTypes.func, // 瀛愭爣绛鹃厤缃� @@ -28,6 +27,7 @@ tabgroups: [], // 鏍囩缁� card: [], // 缂栬緫鏍囩 group: [], // 缂栬緫缁� + levels: null, // 鏍戝舰椤甸潰鐨勬爣绛剧骇鍒叧鑱� visible: false // 妯℃�佹鎺у埗 } @@ -83,22 +83,28 @@ * @description 鏍囩缂栬緫锛岀瓫閫夊彲閫夌殑涓嬬骇鏍囩涓庡凡鍏宠仈鐨勪笅绾ф爣绛� */ handleTab = (card, _group) => { + const { config } = this.props let tabgroups = fromJS(this.state.tabgroups).toJS() let menus = [ {value: '', text: '绌�'}, - {value: 'mainTable', text: this.props.type === 'main' ? '涓昏〃' : '涓绘暟鎹�'} + {value: 'mainTable', text: '涓昏〃'} ] let equalTabs = [] let supMenu = card.supMenu || '' let equalTab = card.equalTab || [] let isuptab = true let equalTabIds = [] + let levels = {} - tabgroups.forEach((group, i) => { + tabgroups.forEach(group => { if (group.uuid === _group.uuid) { isuptab = false group.sublist.forEach(tab => { // 鍙叧鑱旂殑鍚岀骇鏍囩 + if (tab.level) { + levels[tab.uuid] = tab.level + } + if (tab.uuid === card.uuid) return equalTabIds.push(tab.uuid) @@ -106,6 +112,10 @@ }) } else if (isuptab) { group.sublist.forEach(tab => { + if (tab.level) { + levels[tab.uuid] = tab.level + } + menus.push({ value: tab.uuid, text: tab.label @@ -122,11 +132,16 @@ equalTab = equalTab.filter(tabId => equalTabIds.includes(tabId)) } + if (config.Template !== 'TreePage') { + levels = null + } + this.setState({ visible: true, card: card, + levels: levels, group: _group, - formlist: getTabForm(card, supMenu, menus, equalTab, equalTabs, this.props.type) + formlist: getTabForm(card, supMenu, menus, equalTab, equalTabs, config.Template) }) } @@ -176,6 +191,20 @@ return _group }) + // 鏇存柊涓庝箣鍏宠仈鐨勬爣绛炬樉绀虹骇鍒� + if (config.Template === 'TreePage' && res.level !== card.level) { + tabgroups = tabgroups.map(_group => { + _group.sublist = _group.sublist.map(item => { + if (item.supMenu === res.uuid) { + item.level = res.level + } + + return item + }) + return _group + }) + } + this.setState({ card: null, group: null, @@ -204,6 +233,17 @@ if (_group.uuid === group.uuid) { _group.sublist = _group.sublist.filter(item => item.uuid !== card.uuid) } + return _group + }) + + // 娓呴櫎涓庝箣鍏宠仈鏍囩鐨勪笂绾ф爣绛捐缃� + tabgroups = tabgroups.map(_group => { + _group.sublist = _group.sublist.map(item => { + if (item.supMenu === card.uuid) { + item.supMenu = '' + } + return item + }) return _group }) @@ -386,6 +426,7 @@ dict={this.state.dict} card={this.state.card} tabs={this.props.tabs} + levels={this.state.levels} formlist={this.state.formlist} inputSubmit={this.handleSubmit} wrappedComponentRef={(inst) => this.tabsFormRef = inst} -- Gitblit v1.8.0