89 lines
2.3 KiB
Java
89 lines
2.3 KiB
Java
import { dvMainStoreWithOut } from '@/store/modules/data-visualization/dvMain'
|
|
import { storeToRefs } from 'pinia'
|
|
|
|
const dvMainStore = dvMainStoreWithOut()
|
|
const { componentData } = storeToRefs(dvMainStore)
|
|
|
|
// 检查是否可以加入到分组
|
|
export function checkJoinGroup(item) {
|
|
if (item.component === 'DeTabs') {
|
|
let result = true
|
|
item.propValue.forEach(tabItem => {
|
|
tabItem.componentData.forEach(tabComponent => {
|
|
if (tabComponent.component === 'Group') {
|
|
result = false
|
|
}
|
|
})
|
|
})
|
|
return result
|
|
} else {
|
|
return true
|
|
}
|
|
}
|
|
// 检查是否可以移入tab
|
|
export function checkJoinTab(item) {
|
|
if (item.component === 'Group') {
|
|
let result = true
|
|
item.propValue.forEach(groupItem => {
|
|
if (groupItem.component === 'DeTabs') {
|
|
result = false
|
|
}
|
|
})
|
|
return result
|
|
} else {
|
|
return true
|
|
}
|
|
}
|
|
|
|
// 目前仅允许group中还有一层Tab 或者 Tab中含有一层group
|
|
export function itemCanvasPathCheck(item, checkType) {
|
|
if (checkType === 'canvas-main') {
|
|
return isMainCanvas(item.canvasId)
|
|
}
|
|
const pathMap = {}
|
|
componentData.value.forEach(componentItem => {
|
|
canvasIdMapCheck(componentItem, null, pathMap)
|
|
})
|
|
|
|
// 父组件是Tab且在group中
|
|
if (checkType === 'pTabGroup') {
|
|
return Boolean(
|
|
pathMap[item.id] &&
|
|
pathMap[item.id].component === 'DeTabs' &&
|
|
pathMap[pathMap[item.id].id] &&
|
|
pathMap[pathMap[item.id].id].component === 'Group'
|
|
)
|
|
}
|
|
// 当前组件是group且在Tab中
|
|
if (checkType === 'groupInTab') {
|
|
return Boolean(
|
|
item.component === 'Group' &&
|
|
pathMap[pathMap[item.id].id] &&
|
|
pathMap[pathMap[item.id].id].component === 'DeTabs'
|
|
)
|
|
}
|
|
|
|
// 当前组件是Tab且在Group中
|
|
if (checkType === 'tabInGroup') {
|
|
return Boolean(
|
|
item.component === 'DeTabs' && pathMap[item.id] && pathMap[item.id].component === 'Group'
|
|
)
|
|
}
|
|
return false
|
|
}
|
|
|
|
export function canvasIdMapCheck(item, pItem, pathMap) {
|
|
pathMap[item.id] = pItem
|
|
if (item.component === 'DeTabs') {
|
|
item.propValue.forEach(tabItem => {
|
|
tabItem.componentData.forEach(tabComponent => {
|
|
canvasIdMapCheck(tabComponent, item, pathMap)
|
|
})
|
|
})
|
|
} else if (item.component === 'Group') {
|
|
item.propValue.forEach(groupItem => {
|
|
canvasIdMapCheck(groupItem, item, pathMap)
|
|
})
|
|
}
|
|
}
|