Merge branch 'dev_vite' of ssh://18.167.251.121:10002/aidlab/aida_front into dev_vite

This commit is contained in:
X1627315083
2025-11-13 11:21:29 +08:00
2 changed files with 53 additions and 3 deletions

View File

@@ -314,7 +314,7 @@
// 鼠标事件
props.canvas.on("selection:created", getActiveObject);
props.canvas.on("selection:updated", getActiveObject);
// props.canvas.on("selection:cleared", () => console.log("selection:cleared"));
props.canvas.on("selection:cleared", close);
props.canvas.on("object:rotating", objectRotatingChange);
}
@@ -327,7 +327,7 @@
// 移除鼠标事件
props.canvas.off("selection:created", getActiveObject);
props.canvas.off("selection:updated", getActiveObject);
// props.canvas.off("selection:cleared");
props.canvas.off("selection:cleared", close);
props.canvas.off("object:rotating", objectRotatingChange);
}
</script>

View File

@@ -127,6 +127,7 @@ const canvasRef = ref(null);
const canvasContainerRef = shallowRef(null);
const imageUploadRef = ref(null);
const currentZoom = ref(100);
const appContainerRef = ref(null);
// 画布设置
const canvasWidth = ref(props.config.width);
@@ -914,6 +915,32 @@ const cropImage = (url) => {
};
provide("cropImage", cropImage); // 提供给子组件使用
// 处理画布容器的拖放事件
const isDragOver = ref(false);
const canvasDragover = (e) => {
e.preventDefault();
const types = e.dataTransfer.types;
isDragOver.value = types.includes("Files");
};
// 处理画布容器的拖离事件
const canvasDragleave = (e) => {
e.preventDefault();
isDragOver.value = false;
};
// 处理画布容器的拖放事件
const canvasDragdrop = (e) => {
e.preventDefault();
isDragOver.value = false;
const files = e.dataTransfer.files;
for (const file of files) {
if (file.type.startsWith("image/")) {
handleImageUpload({ target: { files: [file] } });
}
}
};
// 提供外部ref实例方法
defineExpose({
layers, // 图层数据
@@ -1104,7 +1131,13 @@ defineExpose({
</script>
<template>
<div class="app-container">
<div
ref="appContainerRef"
class="app-container"
@dragover.stop="canvasDragover"
@dragleave.stop="canvasDragleave"
@drop.stop="canvasDragdrop"
>
<!-- 头部菜单组件 -->
<div class="header-menu">
<HeaderMenu
@@ -1293,6 +1326,8 @@ defineExpose({
:api="Https.httpUrls.queryLibraryPage"
isLibrary
/>
<!-- 上传图片遮罩 -->
<div v-show="isDragOver" class="dragover-tip"></div>
</div>
</template>
@@ -1325,6 +1360,21 @@ defineExpose({
border-bottom: 1px solid #e0e0e0;
background-color: #ffffff;
}
>.dragover-tip{
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
color: #fff;
font-size: 1.6rem;
z-index: 9999;
pointer-events: none;
}
}
.main-content {