Sfoglia il codice sorgente

Merge branch 'dev' into feature-1.1.1

liujia 1 giorno fa
parent
commit
451d545a46
3 ha cambiato i file con 18 aggiunte e 3 eliminazioni
  1. 4 0
      CHANGELOG.md
  2. 1 1
      package.json
  3. 13 2
      src/components/EditableFurniture/index.vue

+ 4 - 0
CHANGELOG.md

@@ -1,4 +1,8 @@
 
+## v0.9.1 (2025-10-21)
+- feat: 暂时禁用家具自身旋转功能; (08a435e)
+- fix: 解决家具编辑回显的偏移问题 (cb0a5bd)
+
 ## v0.9.0 (2025-10-21)
 - fix(EditableFurniture): 修复家具旋转后位置计算错误并添加序号显示 (5985c73)
 - feat: 调整转换函数变量名; (d708571)

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "ln-web",
-  "version": "0.9.0",
+  "version": "0.9.1",
   "private": true,
   "type": "module",
   "scripts": {

+ 13 - 2
src/components/EditableFurniture/index.vue

@@ -286,10 +286,21 @@ const startDrag = (e: MouseEvent) => {
   const startY = e.clientY
   const initLeft = pixelPosition.left
   const initTop = pixelPosition.top
+  const canvasSize = props.canvasSize
 
   const onMove = (ev: MouseEvent) => {
-    pixelPosition.left = initLeft + (ev.clientX - startX)
-    pixelPosition.top = initTop + (ev.clientY - startY)
+    // 计算新的位置
+    let newLeft = initLeft + (ev.clientX - startX)
+    let newTop = initTop + (ev.clientY - startY)
+
+    // 边界检查 - 确保家具不会超出画布
+    newLeft = Math.max(0, Math.min(newLeft, canvasSize - boundingBox.value.width))
+    newTop = Math.max(0, Math.min(newTop, canvasSize - boundingBox.value.height))
+
+    // 更新位置
+    pixelPosition.left = newLeft
+    pixelPosition.top = newTop
+
     updateGeoPosition()
     emit('update', { ...localItem })
   }