mirror of
https://github.com/dataease/dataease.git
synced 2025-02-24 11:32:57 +08:00
fix(数据大屏): 修复取消Tab内组合布局错误问题
This commit is contained in:
parent
d6e7ca47b1
commit
aae168ed43
@ -11,7 +11,7 @@ import {
|
|||||||
} from '@/custom-component/component-list'
|
} from '@/custom-component/component-list'
|
||||||
import { createGroupStyle, getComponentRotatedStyle } from '@/utils/style'
|
import { createGroupStyle, getComponentRotatedStyle } from '@/utils/style'
|
||||||
import eventBus from '@/utils/eventBus'
|
import eventBus from '@/utils/eventBus'
|
||||||
import { checkJoinGroup } from '@/utils/canvasUtils'
|
import { canvasIdMapCheck, checkJoinGroup, isMainCanvas, isTabCanvas } from '@/utils/canvasUtils'
|
||||||
|
|
||||||
const dvMainStore = dvMainStoreWithOut()
|
const dvMainStore = dvMainStoreWithOut()
|
||||||
const { curComponent, componentData, curOriginThemes } = storeToRefs(dvMainStore)
|
const { curComponent, componentData, curOriginThemes } = storeToRefs(dvMainStore)
|
||||||
@ -220,15 +220,36 @@ export const composeStore = defineStore('compose', {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
decompose(canvasId = 'canvas-main') {
|
decompose() {
|
||||||
|
const canvasId = curComponent.value.canvasId
|
||||||
const editor = this.editorMap[canvasId]
|
const editor = this.editorMap[canvasId]
|
||||||
const parentStyle = { ...curComponent.value.style }
|
const parentStyle = { ...curComponent.value.style }
|
||||||
const components = curComponent.value.propValue
|
const components = curComponent.value.propValue
|
||||||
const editorRect = editor.getBoundingClientRect()
|
const editorRect = editor.getBoundingClientRect()
|
||||||
dvMainStore.deleteComponentById(curComponent.value.id)
|
const isInTab = isTabCanvas(canvasId)
|
||||||
|
let decomposeComponentData = componentData.value
|
||||||
|
if (isInTab) {
|
||||||
|
const pathMap = {}
|
||||||
|
componentData.value.forEach(componentItem => {
|
||||||
|
canvasIdMapCheck(componentItem, null, pathMap)
|
||||||
|
})
|
||||||
|
const pComponent = pathMap[curComponent.value.id]
|
||||||
|
const pComponentTarget = pComponent.propValue.filter(
|
||||||
|
item => canvasId.indexOf(item.name) > -1
|
||||||
|
)
|
||||||
|
if (pComponentTarget && pComponentTarget.length > 0) {
|
||||||
|
decomposeComponentData = pComponentTarget[0].componentData
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dvMainStore.deleteComponentById(curComponent.value.id, decomposeComponentData)
|
||||||
components.forEach(component => {
|
components.forEach(component => {
|
||||||
decomposeComponent(component, editorRect, parentStyle)
|
decomposeComponent(component, editorRect, parentStyle, canvasId)
|
||||||
dvMainStore.addComponent({ component: component, index: undefined, isFromGroup: true })
|
dvMainStore.addComponent({
|
||||||
|
component: component,
|
||||||
|
index: undefined,
|
||||||
|
isFromGroup: true,
|
||||||
|
componentData: decomposeComponentData
|
||||||
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
calcComposeArea(areaDataValue = this.areaData) {
|
calcComposeArea(areaDataValue = this.areaData) {
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
// 将组合中的各个子组件拆分出来,并计算它们新的 style
|
// 将组合中的各个子组件拆分出来,并计算它们新的 style
|
||||||
export default function decomposeComponent(component, editorRect, parentStyle) {
|
export default function decomposeComponent(
|
||||||
|
component,
|
||||||
|
editorRect,
|
||||||
|
parentStyle,
|
||||||
|
canvasId = 'canvas-main'
|
||||||
|
) {
|
||||||
// 计算出元素新的 top left 坐标
|
// 计算出元素新的 top left 坐标
|
||||||
component.style.left = component.style.left + parentStyle.left
|
component.style.left = component.style.left + parentStyle.left
|
||||||
component.style.top = component.style.top + parentStyle.top
|
component.style.top = component.style.top + parentStyle.top
|
||||||
component.groupStyle = {}
|
component.groupStyle = {}
|
||||||
component.canvasId = 'canvas-main'
|
component.canvasId = canvasId
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user