From dffca835084e337dbb1ffbc168cc433714d6f8db Mon Sep 17 00:00:00 2001 From: HHY Date: Sun, 20 Sep 2026 09:04:37 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20v0.4=20=E7=94=BB=E5=B8=83=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=99=A8=E2=80=94=E2=80=94=E6=8B=96=E6=8B=BD=E5=B8=83?= =?UTF-8?q?=E7=BD=AE=E5=88=86=E6=A0=BCv1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - WindoorCanvas editable模式: 加竖梃/横梃点击玻璃区域实时分割 - 多边形两次交叉点法分割, mm.sp分割线记录同步, 撤销栈 - 订单详情: 编辑分格后保存图纸(PUT orders/{id}) - 样板库: 另存为我的样板(POST windoor/templates, 企业隔离) - 10个API端点回归全部通过 --- CHANGELOG | 1 + doc/API.md | 2 + frontend/src/components/WindoorCanvas.vue | 175 ++++++++++++++++++---- frontend/src/views/OrdersView.vue | 34 ++++- frontend/src/views/TemplatesView.vue | 46 +++++- src/huamenchuang/api/windoor.py | 19 +++ src/huamenchuang/schemas/windoor.py | 9 ++ 7 files changed, 252 insertions(+), 34 deletions(-) create mode 100644 src/huamenchuang/schemas/windoor.py diff --git a/CHANGELOG b/CHANGELOG index 0aef52a..d4eed24 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,6 @@ # CHANGELOG +- [2026-09-20 09:04] FEAT: v0.4 画布编辑器(拖拽布置v1)——WindoorCanvas 增加 editable 模式:+竖梃/+横梃点击玻璃区域实时分割(两次交叉点法多边形重算+mm.sp分割线同步)、撤销栈;订单详情可保存图纸(PUT orders),样板库可另存我的样板(新增 POST windoor/templates is_default=0);10接口回归全通过 (Files: frontend/src/components/WindoorCanvas.vue, frontend/src/views/*, src/huamenchuang/api/windoor.py, src/huamenchuang/schemas/windoor.py, doc/API.md) - [2026-09-20 09:35] FEAT: v0.3 报价算料+仓库库存+前端扩展——报价引擎(从drawing_data几何提取外框/中梃/扇框型材清单+玻璃鞋带面积,套价格本计价);仓库模块(材料CRUD/出入库/流水/负库存拦截/预警);前端新增仓库页与报价弹窗(样板库/订单详情可唤起);SQLite路径锚定项目根修复cwd问题;全接口回归9/9通过 (Files: src/huamenchuang/**, frontend/**, doc/API.md) - [2026-09-20 09:05] FEAT: 前后端全量开发 v0.2——后端新增客户/合同(意向单→正式)/优化下料(FFD)模块与订单合同快照;前端 Vue3+Element Plus 七页面(登录/工作台/订单/合同/客户/样板库/优化下料)与自研二维窗型画布渲染器(缩放/平移/开向标记/尺寸标注);构建产物挂载后端+SPA history 回退;全接口回归 6/6 通过 (Files: src/huamenchuang/**, frontend/**, README.md, doc/API.md) - [2026-09-20 08:14] FEAT: 订单模块 v0.1 实现与二维平面图全量采集——FastAPI 分层架构(api/services/repositories/models)、订单状态机(意向单→正式单→生产中→完工/取消)、7节点生产进度、审计日志、JWT认证、样板库API;创建契约对齐目标站{contract_id,drawing_data,pic_url};254张样板平面图全部下载成功并静态挂载;端到端冒烟测试7/7通过 (Files: src/huamenchuang/**, pyproject.toml, README.md, doc/API.md, data/windoor-images/*, data/fetch-images.py) diff --git a/doc/API.md b/doc/API.md index d0bde85..f966495 100644 --- a/doc/API.md +++ b/doc/API.md @@ -49,6 +49,7 @@ | 用户自存窗型列表 | GET | `/api/windoor/` | `page` | ⏳(需服务端排序参数,待抓包) | | 用户窗型详情 | GET | `/api/windoor/{id}` | 路径 `id` | ⏳(同 drawing_data 结构) | | 模板排序 | POST | `/api/windoor_template_sort` | `{ids:[...]}` | ⏳ | +| **保存自定义样板** | POST | `/api/windoor/templates` | `{name, drawing_data, catelog_id?, note?}` | ✅ v0.4 新增:编辑器"另存为我的样板"(is_default=0,企业隔离) | `drawing_data` 结构参见《克隆实施方案.md》§2.2。 @@ -288,6 +289,7 @@ | `/optimize` | 优化下料 | 需求/原料编辑 + FFD 计算结果(利用率/切割组合表) | **画布渲染器**(`components/WindoorCanvas.vue`,自研 Canvas2D):解析 drawing_data → Frame 玻璃区域多边形填充/描边 → 外框加粗 → 扇开向三角标记(od 角度) → 总宽高尺寸标注;支持滚轮缩放、拖拽平移、双击复位。 +**画布编辑器**(v0.4,`editable` 模式):+竖梃/+横梃工具 → 点击玻璃区域完成分割(多边形两次交叉点法实时重算区域,mm.sp 同步追加分割线记录),支持撤销;订单详情可"保存图纸"(PUT orders/{id}),样板库可"另存为我的样板"(POST windoor/templates)。 **报价弹窗**(`components/QuoteDialog.vue`):明细表 + 总价,可从样板库/订单详情唤起,支持浏览器打印。 ### 12.11 种子数据 diff --git a/frontend/src/components/WindoorCanvas.vue b/frontend/src/components/WindoorCanvas.vue index 1aac177..3e048f9 100644 --- a/frontend/src/components/WindoorCanvas.vue +++ b/frontend/src/components/WindoorCanvas.vue @@ -1,9 +1,14 @@