Go to file
puzzlesion 1bd8f25cdb feat: 图纸工作台核心功能重构与交互增强
本次提交对图纸工作台进行了全面的功能重构和交互体验升级,主要涵盖了数据结构优化、核心逻辑增强、以及全新的可视化交互功能。

### 主要更新内容:

#### 1. **核心应用逻辑 (app.js)**

-   **数据结构优化**:
    -   重构了初始化逻辑,现在每个图片被视为一个独立的 \drawing\ 对象,包含自身的坐标边界和关联图片,使数据模型更清晰。
-   **状态管理**:
    -   引入 \currentDrawingId\ 状态,用于精确追踪和控制当前显示的图纸。
-   **核心功能增强**:
    -   **自动图纸切换**: 实现了 \getDrawingForItem\ 映射逻辑,当用户在结构树中选择不同层级的件号时,系统能自动切换到其关联的图纸。
    -   **件号重命名 (handleItemRename)**: 彻底重写了重命名逻辑,现在支持递归更新所有子孙件号的ID和层级关系,保证了复杂结构下数据的一致性。
    -   **件号更新 (handleItemUpdate)**: 增强了件号创建和更新的鲁棒性,在添加深层级子件号时,会自动创建不存在的父级装配件,简化了操作流程。
    -   **图片拖拽**: 新增 \updateImagePosition\ 处理器,允许用户在画布上直接拖动图片并更新其世界坐标。

#### 2. **数据编辑器 (components/DataEditor.js)**

-   **UI/UX 改进**:
    -   大幅扩展了可编辑字段,增加了中文名、英文名、规格、材料、比例和备注等详细属性。
    -   界面现在能够智能区分零件和装配件,并对装配件的重量输入框进行只读处理,因为其重量由子件自动汇总计算。
    -   为只读字段添加了明确的提示信息,优化了用户体验。

#### 3. **图纸查看器 (components/DrawingViewer.js)**

-   **全新交互功能**:
    -   **画布平移与缩放**: 实现了完整的画布拖拽平移和鼠标滚轮缩放功能,操作更流畅。
    -   **表格与图片拖拽**: 用户现在可以直接在画布上拖动明细表 (\GraphicalTable\) 和图纸中的图片,实现自由布局。
    -   **点击创建件号**: 在画布空白处单击,会弹出输入框,允许用户在指定位置快速创建新的件号,并记录其在图纸上的标记位置 (\markerPosition\)。
-   **UI 浮层与控件**:
    -   在画布上增加了多个交互浮层,包括左上角的图纸-件号绑定工具、右上角的缩放按钮、以及两侧用于切换图纸的箭头按钮。
    -   新增了动态输入框 (\inputBox\),用于响应画布点击事件,提升了操作的直观性。
-   **渲染与状态**:
    -   \GraphicalTable\ 和 \<image>\ 元素现在具备了拖拽所需的所有属性和事件处理。
    -   内部状态管理重构,以支持新的视图变换 (\iewTransform\) 和交互状态。

#### 4. **主页面 (index.html)**

-   **项目依赖**:
    -   将 React 的 CDN 依赖切换为本地 \endor\ 目录下的文件,提高了应用的稳定性和加载速度。
    -   移除了 Babel 依赖,因为项目已统一使用 \React.createElement\ API,无需 JSX 编译。
-   **样式系统**:
    -   全面拥抱 Tailwind CSS 的 \@layer\ 规则,对样式进行了分层(theme, base, components, utilities),使 CSS 结构更清晰、更易于维护。
    -   定义了全局 CSS 变量,统一了颜色、尺寸等设计规范。
2025-09-13 13:52:07 +08:00
.claude feat: 图纸工作台核心功能重构与交互增强 2025-09-13 13:52:07 +08:00
.specstory feat: 图纸工作台核心功能重构与交互增强 2025-09-13 13:52:07 +08:00
assets/images Initial commit 2025-09-12 18:44:30 +08:00
components feat: 图纸工作台核心功能重构与交互增强 2025-09-13 13:52:07 +08:00
docs feat: 图纸工作台核心功能重构与交互增强 2025-09-13 13:52:07 +08:00
utils Initial commit 2025-09-12 18:44:30 +08:00
vendor feat: 图纸工作台核心功能重构与交互增强 2025-09-13 13:52:07 +08:00
图片 feat: 图纸工作台核心功能重构与交互增强 2025-09-13 13:52:07 +08:00
模板 feat: 图纸工作台核心功能重构与交互增强 2025-09-13 13:52:07 +08:00
.cursorindexingignore Initial commit 2025-09-12 18:44:30 +08:00
app.js feat: 图纸工作台核心功能重构与交互增强 2025-09-13 13:52:07 +08:00
index.html feat: 图纸工作台核心功能重构与交互增强 2025-09-13 13:52:07 +08:00
README.md Initial commit 2025-09-12 18:44:30 +08:00
参考(仅表格).HTML feat: 图纸工作台核心功能重构与交互增强 2025-09-13 13:52:07 +08:00

图纸工作台 - 切分识别与编辑系统 (产品原型)

这是一个用于产品功能展示的交互式前端原型,旨在模拟一个专业的图纸切分、识别与编辑平台的核心功能。

该原型完全使用HTML、CSS和JavaScript通过React库构建不包含任何后端服务或数据库所有数据都存储在浏览器内存中刷新页面会重置所有状态。

核心功能

  • 层级结构管理:在左侧树状视图中展示和操作件号的层级关系。
  • 图纸与表格预览:在中间区域展示图纸背景、可拖拽的数据表格,并支持通过输入件号动态创建层级。
  • 数据编辑:在右侧区域编辑选中件号的详细信息,父项的重量等数据会根据子项自动汇总计算。
  • 数据校验与导出:实现了“保存”时的数据校验逻辑,以及模拟生成和下载 .dxf 文件的“导出”功能。

如何预览

因为这是一个纯静态项目您不需要安装任何依赖如Node.js, npm等。您只需要一个现代浏览器如Chrome, Firefox, Edge, Safari即可。

方法一:直接在浏览器中打开 (最简单)

  1. 在文件管理器中找到项目所在的文件夹。
  2. 直接双击 index.html 文件,或者将该文件拖拽到浏览器窗口中。

方法二通过本地Web服务器运行 (推荐)

直接从文件系统打开HTML文件有时会因为浏览器的安全策略CORS等导致某些功能如加载外部资源出现问题。虽然本项目目前没有这类问题但通过本地服务器预览是更专业、更可靠的方式。

如果您安装了 Python (macOS 和大多数 Linux 发行版都已预装),可以轻松启动一个本地服务器:

  1. 打开终端 (Terminal)

  2. 进入项目目录

    cd /path/to/your/project/cad编辑页面
    

    (请将 /path/to/your/project/ 替换为实际的项目路径)

  3. 启动服务器

    • 如果您使用 Python 3:
      python3 -m http.server 8000
      
    • 如果您使用 Python 2:
      python -m SimpleHTTPServer 8000
      
  4. 在浏览器中访问 打开您的浏览器,并访问地址:http://localhost:8000

现在您应该能看到并与这个产品原型进行交互了。