画布loading

This commit is contained in:
李志鹏
2026-02-06 13:05:19 +08:00
parent c196ab6678
commit fd85ea02c1
4 changed files with 31 additions and 28 deletions

View File

@@ -148,8 +148,8 @@
}
})
console.log("config", props.config)
const loading = ref(false)
const loading_ = ref(false)
const loading = ref(true)
const loading_ = ref(true)
const loadingTimeout = ref(null)
watch(
() => loading.value,
@@ -1001,7 +1001,7 @@
await new Promise((resolve) => optimizeCanvasRendering(canvasManager.canvas, resolve))
await canvasManager?.createOtherLayers?.(otherData)
layerManager.activeLayerId.value = ""
layerManager?.sortLayers()
await layerManager?.sortLayers()
await layerManager?.updateLayersObjectsInteractivity?.(true)
canvasManager?.canvas?.renderAll()
setTimeout(() => {

View File

@@ -1580,7 +1580,7 @@ export class LayerManager {
/**
* 排序图层,确保图层顺序: 普通图层 > 固定图层 > 背景图层
*/
sortLayers() {
async sortLayers() {
// 对图层进行排序:背景图层在最底层(数组最后),固定图层在中间
this.layers.value.sort((a, b) => {
// 如果a是背景图层它应该排在后面最底层
@@ -1604,17 +1604,17 @@ export class LayerManager {
});
// 更新画布对象顺序
this._rearrangeObjects();
await this._rearrangeObjects();
}
/**
* 重新排列画布上的对象以匹配图层顺序
* @private
*/
_rearrangeObjects() {
async _rearrangeObjects() {
if (this.layerSort) {
// 使用LayerSort的高级排序
this.layerSort.rearrangeObjects();
await this.layerSort.rearrangeObjects();
return;
}

View File

@@ -30,7 +30,8 @@ export class LayerSort {
if (canvasObjects.length === 0) return;
// 使用画布渲染优化
await optimizeCanvasRendering(this.canvas, () => {
await new Promise((resolve) => {
optimizeCanvasRendering(this.canvas, () => {
// 计算每个对象应该在的 z-index 位置
const objectZIndexMap = this.calculateObjectZIndexes();
@@ -51,6 +52,8 @@ export class LayerSort {
this.canvas.moveTo(item.object, index);
}
});
resolve();
});
});
}

View File

@@ -52,9 +52,9 @@
</div>
</div>
<div class="mark_loading" v-show="isShowMark">
<!-- <div class="mark_loading" v-show="isShowMark">
<a-spin size="large" />
</div>
</div> -->
</div>
</template>