Merge pull request #11794 from dataease/pr@dev-v2@refactor_tab-group

Pr@dev v2@refactor tab group
This commit is contained in:
王嘉豪 2024-08-27 18:06:57 +08:00 committed by GitHub
commit 0cab19bffb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 20 additions and 12 deletions

View File

@ -39,7 +39,7 @@ const areaDataPush = component => {
component.isShow && component.isShow &&
component.canvasId === 'canvas-main' && component.canvasId === 'canvas-main' &&
component.category !== 'hidden' && component.category !== 'hidden' &&
!['Group', 'GroupArea'].includes(component.component) !['Group', 'GroupArea', 'DeTabs'].includes(component.component)
) { ) {
areaData.value.components.push(component) areaData.value.components.push(component)
} }
@ -75,7 +75,7 @@ const shiftDataPush = curClickIndex => {
!component.isLock && !component.isLock &&
component.isShow && component.isShow &&
component.category !== 'hidden' && component.category !== 'hidden' &&
!['Group', 'GroupArea'].includes(component.component) !['Group', 'GroupArea', 'DeTabs'].includes(component.component)
) )
areaData.value.components.push(...shiftAreaComponents) areaData.value.components.push(...shiftAreaComponents)
dvMainStore.setCurComponent({ component: null, index: null }) dvMainStore.setCurComponent({ component: null, index: null })

View File

@ -160,7 +160,7 @@ const state = reactive({
id: '' id: ''
}, },
// Tab // Tab
ignoreTabMoveComponent: ['de-button', 'de-reset-button', 'DeTabs'], ignoreTabMoveComponent: ['de-button', 'de-reset-button', 'DeTabs', 'Group'],
// tab // tab
parentWidthTabOffset: 40, parentWidthTabOffset: 40,
canvasChangeTips: 'none', canvasChangeTips: 'none',
@ -431,7 +431,7 @@ const areaDataPush = component => {
!component.isLock && !component.isLock &&
component.isShow && component.isShow &&
component.canvasId === 'canvas-main' && component.canvasId === 'canvas-main' &&
!['Group', 'GroupArea'].includes(component.component) !['Group', 'GroupArea', 'DeTabs'].includes(component.component)
) { ) {
areaData.value.components.push(component) areaData.value.components.push(component)
} }

View File

@ -142,9 +142,7 @@ export const composeStore = defineStore('compose', {
const components = [] const components = []
areaData.components.forEach(component => { areaData.components.forEach(component => {
if (!['Group', 'GroupArea'].includes(component.component)) { if (['Group'].includes(component.component)) {
components.push(component)
} else {
// 如果要组合的组件中已经存在组合数据则需要提前拆分 // 如果要组合的组件中已经存在组合数据则需要提前拆分
const parentStyle = { ...component.style } const parentStyle = { ...component.style }
const subComponents = component.propValue const subComponents = component.propValue
@ -155,6 +153,10 @@ export const composeStore = defineStore('compose', {
}) })
components.push(...component.propValue) components.push(...component.propValue)
} else if (['DeTabs', 'GroupArea'].includes(component.component)) {
// do nothing GroupAreas组合视阔区 DeTabs 均不加入分组中
} else {
components.push(component)
} }
}) })
@ -202,10 +204,12 @@ export const composeStore = defineStore('compose', {
// 将已经放到 Group 组件数据删除也就是在 componentData 中删除因为它们已经从 componentData 挪到 Group 组件中了 // 将已经放到 Group 组件数据删除也就是在 componentData 中删除因为它们已经从 componentData 挪到 Group 组件中了
batchDeleteComponent(deleteData) { batchDeleteComponent(deleteData) {
deleteData.forEach(component => { deleteData.forEach(component => {
for (let i = 0, len = componentData.value.length; i < len; i++) { if (!['DeTabs', 'GroupArea'].includes(component.component)) {
if (component.id == componentData.value[i].id) { for (let i = 0, len = componentData.value.length; i < len; i++) {
componentData.value.splice(i, 1) if (component.id == componentData.value[i].id) {
break componentData.value.splice(i, 1)
break
}
} }
} }
}) })

View File

@ -5,6 +5,7 @@ import { copyStoreWithOut } from '@/store/modules/data-visualization/copy'
import { composeStoreWithOut } from '@/store/modules/data-visualization/compose' import { composeStoreWithOut } from '@/store/modules/data-visualization/compose'
import { lockStoreWithOut } from '@/store/modules/data-visualization/lock' import { lockStoreWithOut } from '@/store/modules/data-visualization/lock'
import { storeToRefs } from 'pinia' import { storeToRefs } from 'pinia'
import { getCurInfo } from '@/store/modules/data-visualization/common'
const dvMainStore = dvMainStoreWithOut() const dvMainStore = dvMainStoreWithOut()
const composeStore = composeStoreWithOut() const composeStore = composeStoreWithOut()
@ -235,7 +236,10 @@ function preview() {
function deleteComponent() { function deleteComponent() {
if (curComponent.value) { if (curComponent.value) {
dvMainStore.deleteComponentById(curComponent.value.id) const curInfo = getCurInfo()
if (curInfo) {
dvMainStore.deleteComponent(curInfo.index, curInfo.componentData)
}
} else if (areaData.value.components.length) { } else if (areaData.value.components.length) {
areaData.value.components.forEach(component => { areaData.value.components.forEach(component => {
dvMainStore.deleteComponentById(component.id) dvMainStore.deleteComponentById(component.id)