Files
FiDA_Front/src/components/Canvas/DepthCanvas/manager/LayerManager.ts
2026-03-09 16:45:30 +08:00

47 lines
1.1 KiB
TypeScript

import { ref } from 'vue'
export class LayerManager {
stateManager: any
canvasManager: any
layers: any
activeID: any
constructor(options) {
this.stateManager = options.stateManager;
this.canvasManager = options.canvasManager;
this.layers = ref([])
this.activeID = ref("")
}
setActiveID(id: string) { this.activeID.value = id }
getLayerByID(id) {
return this.layers.value.find((item: any) => item.info.id === id)
}
setLayerNameByID(id, name: string) {
const layer = this.getLayerByID(id)
if (layer) {
layer.info.name = name
this.canvasManager.renderAll()
}
}
setLayerVisibleByID(id, visible: boolean) {
const layer = this.getLayerByID(id)
if (layer) {
layer.set({
visible: visible
})
this.canvasManager.renderAll()
}
}
deleteLayerByID(id) {
this.canvasManager.deleteObjectById(id)
}
// 拖拽排序
dragSort(id, newIndex) {
const index = Math.abs(this.layers.value.length - newIndex - 1)
this.canvasManager.dragSort(id, index)
}
// 更新图层列表
updateLayers() {
this.layers.value = this.canvasManager.getObjects().reverse()
}
}