|
|
@@ -62,6 +62,7 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
disabled:false,
|
|
|
+ loading: false, // 画布加载状态
|
|
|
|
|
|
fcanvas: null,
|
|
|
fcanvasId: '',
|
|
|
@@ -211,11 +212,13 @@ export default {
|
|
|
},
|
|
|
// 初始化
|
|
|
async init() {
|
|
|
-
|
|
|
+ // 设置加载状态
|
|
|
+ this.loading = true
|
|
|
|
|
|
//不存在数据(新建场景)
|
|
|
if(this.isEmpty ){
|
|
|
this.addCanvas()
|
|
|
+ this.loading = false
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
@@ -227,6 +230,7 @@ export default {
|
|
|
this.$emit('update:index', redirectIndex)
|
|
|
}
|
|
|
// 模特/场景图不需要 fabric,保持占位
|
|
|
+ this.loading = false
|
|
|
return
|
|
|
}
|
|
|
|
|
|
@@ -254,6 +258,7 @@ export default {
|
|
|
// this.minimapInit()
|
|
|
this.actionInit()
|
|
|
this.layerInit();
|
|
|
+ this.loading = false // 加载完成
|
|
|
this.$nextTick(() => {
|
|
|
this.$emit('init')
|
|
|
})
|
|
|
@@ -1270,6 +1275,44 @@ export default {
|
|
|
|
|
|
}
|
|
|
|
|
|
+/* Canvas loading 遮罩 */
|
|
|
+.canvas-container {
|
|
|
+ position: relative;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+}
|
|
|
+
|
|
|
+.canvas-loading-overlay {
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ bottom: 0;
|
|
|
+ background: rgba(255, 255, 255, 0.8);
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ z-index: 1000;
|
|
|
+}
|
|
|
+
|
|
|
+.canvas-loading-content {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ gap: 12px;
|
|
|
+ color: #666;
|
|
|
+}
|
|
|
+
|
|
|
+.canvas-loading-content .el-icon {
|
|
|
+ font-size: 24px;
|
|
|
+ color: #409eff;
|
|
|
+}
|
|
|
+
|
|
|
+.loading-text {
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 500;
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
</style>
|
|
|
|