Commit Graph
66 Commits
Author SHA1 Message Date
HHY 6726a9fa3a feat: AI炫图接入gpt-image-2.5云端生图(结构化提示词工程+照片参考合成) 2026-09-25 04:15:45 -07:00
HHY 710b3521a2 feat: P0-8 照片式AI炫图(7场景/纯前端合成/光照匹配) 2026-09-25 03:49:49 -07:00
HHY 63f498655f chore: esbuild 校验产物不入库 2026-09-25 03:38:31 -07:00
HHY 5fe6608ae1 feat: P0-7 玻璃装饰格条设计器(8风格/2D+3D渲染/算料计价) 2026-09-25 03:38:18 -07:00
HHY 40c16d56a1 feat: P0-6 Excel导入导出全套(客户/合同/库存/统计, 自动表头探测) 2026-09-25 03:30:27 -07:00
HHY 436d006b5a feat: P0-5 收款财务闭环(收款登记/作废/统计/账户管理/财务页) 2026-09-25 03:20:10 -07:00
HHY cc5b3de6b2 feat: P0-4 按库存优化+切割准备清单(缺料告警) 2026-09-25 03:16:09 -07:00
HHY 87f9869829 feat: P0-3 打印模板体系(区块化模板CRUD+打印中心重构) 2026-09-25 03:13:38 -07:00
HHY 3d0f43d567 chore: 移除误提交的临时token并加入gitignore 2026-09-25 03:09:51 -07:00
HHY d5e3cdbede feat: P0-2 订单BOM计算单+Excel导出(openpyxl) 2026-09-25 03:09:21 -07:00
HHY 8c2bb5e12d feat: P0-1 价格脚本引擎(安全公式解析+脚本CRUD+试算+报价集成) 2026-09-25 03:06:32 -07:00
HHY 5965d572b5 docs: 源站功能差异审计清单(50项未复刻功能盘点+补齐顺序) 2026-09-25 00:44:40 -07:00
HHY 04ff6e86bc del(image): 删除非必要的图片文件 2026-09-24 23:46:03 -07:00
HHY 607252238d fix: models/__init__ 补注册 extend.py 五模型(articles/pay_orders/devices/company_params/sms_codes)
根因: extend 模型未在 models 包导出, init_db 全新建库时缺这 5 张表,
seed 帮助文章步骤查询 articles 崩溃(本地老库碰巧有表未暴露)。
已用全新临时库完整验证: 22 表齐全, 管理员/254 样板/8 帮助文章/公告全部就绪
2026-09-24 21:16:42 -07:00
HHY 47a157d041 chore: .env 加入 gitignore(JWT 密钥等敏感配置不入库) 2026-09-24 21:09:04 -07:00
HHY 4d400ae152 chore: compose 改用 ACR 云端镜像(去除本地构建) 2026-09-24 21:06:34 -07:00
HHY 6ade85a5b3 fix: PyPI 镜像换阿里云源(清华源对 uv_build 返回 403) 2026-09-24 21:01:27 -07:00
HHY f242b174b9 fix: 云端构建兼容——移除 .dockerignore 中文文件名(ACR exclude-patterns 仅收 ASCII), uv 改 PyPI 安装, npm/PyPI 走国内镜像源 2026-09-24 20:56:53 -07:00
HHY 8623b71d56 chore: Docker 部署——多阶段 Dockerfile + compose + 数据卷持久化
- 前端 node:22-alpine 构建阶段(npm ci + vite build)
- 运行时 python:3.14-slim + uv --frozen 冻结安装(依赖层独立缓存)
- entrypoint: 数据卷为空时自动建库并导入 254 套样板
- SQLite 落数据卷 /app/db(HMC_DATABASE_URL 可切 MySQL); healthcheck /api/health
- .dockerignore 排除构建无关资产; .gitattributes 强制 sh LF
2026-09-24 20:45:59 -07:00
HHY 095620110f fix: v2.19 组合水平镜像的 3D 开向同步+放大层菜单可见性
- mirrorUnit 补铰链侧换向: hm.openDirection/sashes.openDirection left↔right 镜像(含变体)
- 数学确认 mirPt+norm.x 翻转组合下重放树拓扑保持, 扇 polyId 无需换位
- rotateUnit 补 hm.openDirection 刚体旋转换向(left→up→right→down)
- ctx-menu z-index 40→2100, 放大预览时右键菜单不再被盖
- 验证: 镜像前后开合 50% 对比截图(铰链侧正确换向), 全量校验 0 失败
2026-09-24 08:53:06 -07:00
HHY bbdf03f56e test: v2.18 全量验证适配——254 套样板自动化校验闭环
- 新增 verify-all-samples.mjs: 区域有效/扇矩形/覆盖度/无重叠四类校验(真实编译模块)
- 修复 AntiTheft/KfcSash 内倒辅扇与玻璃扇同格叠放: 同格叠扇去重(IoU>0.15 仅首层)
- 幽灵形状(空段/无效点)合法跳过
- 终态: 254 样本/409 形状/1247 区域/570 扇失败 0; validate3d 0 无效; 10 类代表样本 3D 抽样比对通过
2026-09-24 07:16:20 -07:00
HHY 8cd3442508 fix: v2.17 3D 建模对齐样板图——门/纱扇/多扇语义修复
- kind 判定收敛: 仅 Slide=推拉; DoubleSash/DoubleKfcSash=对开门按平开(修门渲染成窗)
- 纱扇 Screen 同格不再单独渲染(消除 179 处双层玻璃叠放)
- 同格多扇沿宽度等分(forceRect): 31337 对开两扇对半+isDoor 合并, 31729 上排 6 滑扇等分
- 2D 图纸补纱扇网格纹理(官方画法)
- 验证: 31337/31729 3D 与官方图结构一致, validate3d 0 无效, ui-shots 6 页无报错
2026-09-23 11:23:18 -07:00
HHY 21760d1887 fix: v2.16 样板库画布每块可编辑+模型框污染根治
- 预览对话框打开即编辑态, 报价/下单入口保留
- 格尺寸贴外框方向联动等比缩放整窗, 任意格任意方向均可编辑
- 根因修复: computeModelBox 误含扇 bd 退化点致 W/H 与梃位/缩放参考边全错
- 悬停格淡高亮 + pointer 光标; HUD 标签改格宽/格高
- 验证: 格尺寸/梃位/贴边缩放/组合写回四项截图全过, ui-shots 6 页无报错
2026-09-23 10:39:28 -07:00
HHY 6a5a3d1ed3 feat: v2.15 图纸封面图一致性收尾——官方 PNG 剩余元素补齐
- 分段尺寸标注: 按重放区域分割点生成蓝色分段+总尺寸双排标注(端部刻度/左侧旋转文字)
- 玻璃配置第二行: fl.spet.sp(如 5+12+5)画于编号下方
- 中梃与外框交点白色连接件方块
- 验证: 704 画布与官方封面图逐元素一致, ui-shots 6 页无报错
2026-09-23 09:59:31 -07:00
HHY f4f7270552 feat: v2.14 2D 图纸样式对齐源站设计图(官方 PNG 逐元素比对)
- 玻璃 teal 渐变 + 深色细描边(官方配色)
- 型材立体三段线: 深轮廓+紫灰主体+白高光, 外框/中梃/扇料框统一
- 四角白色角码; 把手+锁点; 玻璃编号标签(polyId 树寻址定位)
- 开向符号对齐官方: 平开虚线大三角(按 openDirection), 推拉滑行箭头
- 尺寸标注改官方蓝色带端部刻度; CombineCanvas 配色同步
- 验证: 704 画布与官方平面图逐元素一致, ui-shots 6 页无报错
2026-09-23 09:41:56 -07:00
HHY 6e5428032a feat: v2.13 细节尺寸编辑——组合与样板的每一格可精确编辑
- WindoorCanvas: 点击玻璃格选中并输入格W/格H(自动平移边界中梃, 共线多段组移动)
- 选中中梃可输入距边位置精确移动; 中梃拖动改组移动修复多段错位
- CombineView: 编辑细节对话框(复用 WindoorCanvas), 保存原位写回对应单元并驱动 3D 重建
- CombineCanvas: 中梃按各自裁剪 bbox 绘制, 与真实分格一致
- 验证: 格尺寸/梃位/组合写回真实浏览器截图全通过
2026-09-23 09:18:56 -07:00
HHY c780618a17 fix: v2.12 全部 2D 画布上下颠倒修复(组合/编辑/效果图/AI变体)
- 根因: 四画布 ty 按 y 向上渲染, 而模型坐标 y 向下(v2.11 实证) → 样板内部布局颠倒
- 统一去翻转: ty 直接映射 + toModel 反演同步 + 顶底序归位
- WindoorCanvas: 尺寸手柄(右下角)/中梃竖向拖动 dy 符号/扇符号与标注位置同步修正
- 验证: 组合页 2D 与 3D 方向一致, 设计图纸 704 布局=官方平面图, ui-shots 6 页无报错
2026-09-23 04:23:04 -07:00
HHY c2c6359a65 fix: v2.11 3D 全开/全关状态错误根治——分割树重放语义破译与扇五金解析重建
- polyId 语义破译: {idx,pos}=(分裂子树节点id,子区域序), 节点id=sp 0基序号, child0=法线指向侧
- replayShape 重写为树重放(锚点兜底), 704/31594/31729 全引用精确命中官方平面图, 798 扇矩形 100% 有效
- 坐标系修正: 模型 y 向下, 3D 翻转 y, 布局与原图一致
- 扇五金解析: Slide/DoubleSash=推拉, hm.openDirection 定铰链侧(含上悬), hm.openToward 定内外开, od=全开幅
- 移除错误的滑扇附着兜底; 2D 编辑器写回 polyId 同步树寻址
- 验证: 全关/46%/100% 三态截图 + ui-shots 6 页 + validate3d 全量 0 无效
2026-09-23 04:09:40 -07:00
HHY fbef67e450 fix: v2.10 3D 室外场景窗户陷入墙体+平开扇出框双重修复
- 墙体与窗体 z 轴关系: 墙厚 3→2.4×型深, 外墙面退至窗框外表面之后(窗框外露 30% 型深), 消除整窗埋入墙厚
- 窗洞净空自适应外框面宽(fwMax+0.015), 替代固定 0.05
- 平开扇铰链偏移符号修复(+(cxr-hingeX)), 消除关闭态扇出框/开启态扇悬空
- 草地垫对齐新墙面, 网格降至墙脚
- 新增 verify-wall.mjs 真实浏览器三态截图验证
2026-09-23 03:27:14 -07:00
HHY 6b11b6803b feat: v2.9 拖拽移动模式(右键菜单入口)
- 菜单新增'拖拽移动此单元': 进入后鼠标移动即拖动单元(增量平移)
- 点击画布落下并 emit change, 菜单动作与拖拽移动并列
- 配套验证脚本 verify-move.mjs(真实鼠标序列端到端)
2026-09-23 03:03:39 -07:00
HHY d6e70fc571 feat: v2.8 3D 预览放大模式+类型修正
- 组合页 3D 预览卡片: 放大按钮切换近全屏浮层(inset 2.5vh/2.5vw)
- 默认高度 300→380, 切换后派发 resize 让 3D 自适应
- drawing.ts 滑扇附着 reduce 种子类型修正(移除未定义 BBox 引用)
- vue-tsc 零错误, 构建通过
2026-09-23 02:48:21 -07:00
HHY 96159d4f35 fix: 推拉滑扇附着上半区(对齐 31729 实况)
- 共享推断模块 inferSashGlyphs: DoubleSash 滑扇对附着较高的重放区域
  (不依赖 vendor polyId 序, 消除推拉窗滑扇落下半区的错位)
- 31729 行为验证: 滑扇矩形 y 2225.8-3370.8 = 上半区 ✓
- verify 脚本 console 过滤放宽([C 前缀统一捕获)
2026-09-22 09:11:51 -07:00
HHY 530b4b9e5a feat: v2.7 3D 开合滑杆真实按压驱动验证
- el-slider 非原生 range(无 click 跳转), 改为按压手柄-移动-释放完整序列
- 开合两态截图对比脚本 open-compare.mjs
- 滑杆 v-model 正常回写
2026-09-22 06:53:53 -07:00
HHY e3b4056855 fix: v2.6 组合画布选中根因修复+右键菜单+3D 三场景
- 选中失效根因: Vue3 布尔 prop 缺省转换(editable 缺省→false)
  withDefaults 默认 true 修复, 左键选中/右键选中/菜单动作全链路打通
- 右键菜单: 右键单元弹操作菜单(顺/逆旋转/镜像/底边对齐/删除)
  动作 emit('ctx') 由父组件统一执行, document 级委托
- 3D 三场景: 室内(窗后墙+木地板)/室外(外墙+草地)/影棚(网格)
  场景联动背景色, 真实浏览器截图验证三场景渲染
- 菜单动作行为级验证: 旋转后 1600x1800 宽高互换✓ 删除清空✓
2026-09-22 05:11:47 -07:00
HHY b6d7db58d6 fix: v2.5 浏览器级可视化验证与修复闭环
- 新增 ui-shots.mjs/open-shot.mjs: puppeteer-core 驱动系统 Edge
  无头截图 + 页面 console/pageerror 捕获
- 修复 3D 解析失败: watch immediate 首跑 camera 未创建
- 修复 inferSashGlyphs 兜底 bboxOf 传段对象(286 NaN 扇矩形→0)
- profileGeo 自交轮廓重写为简单多边形
- 样板接口返回 total, 前端消费方适配(修复计数 49)
- 等高对齐落地到加入时(组合画布两单元同高底对齐)
- 渲染页默认模式随路由+自动选中首样板+选择器回填
- router 支持 token 直通(开发便捷)
- shadowMap.type 移除(three r186 已移除 PCFSoft)
- 综合截图验证: 样板库/组合/3D/工作台全部正常无报错
2026-09-21 15:02:06 -07:00
HHY 2cee9febe5 fix: v2.4 组合画布回归自由拖拽
- 移除拖动松手后的强制自动排列(恢复自由摆放能力)
- 吸附升级为标准六边缘对齐: 拖动单元左/中/右×其余单元左/中/右
  (上/中/下同理), 取最近者吸附并绘制辅助线
- 允许自由重叠摆放(用户自主决定布局)
- 自动排列保留为可选整理按钮
- 参考 Konva/Fabric 吸附标准模式实现
2026-09-21 10:05:44 -07:00
HHY 625a9fbbcb fix: v2.3 组合排列 3D 重叠修复
- CombineCanvas 新增 autoArrange: 单元按 X 序紧贴排布+底边对齐
- 拖动松手重叠检测: 与其他单元相交时自动重新排列
  (消除 3D 玻璃面穿插与 z-fighting)
- 工具栏新增自动排列按钮
- 移除 CombineCanvas 孤儿 @drop(归父容器统一处理)
2026-09-21 05:31:23 -07:00
HHY cf8c0c65ce fix: v2.2 前端完整性治理(vue-tsc 全量清零)
- 组合画布 3D 扇面板解构键名错误(rect/s→rect/sash)——3D 混乱根因之一
- WindoorCanvas isDoor 标注 cx 作用域泄漏修复
- WindoorThreed rebuild 函数定义补全(墙体开关可用)
- 量尺页 openCreate 补定义(点击不再报错)
- 状态筛选 ref 类型纳入空串语义(4 页面)
- CombineCanvas 孤儿 @drop 移除+容器 dragover.prevent(拖放入库修复)
- AIRenderCanvas style 属性名保留处理+表单联合类型
- 零散隐式 any 参数补类型
- 新增 check-frontend.cjs: 未定义引用扫描+API 路径一致性比对
- 全量回归: 18 GET+4 POST+7 SPA 全部通过
2026-09-21 04:27:16 -07:00
HHY 5eb93f043e fix: v2.2 修复 3D 截图纯色空白(墙体尺寸单位错误)
- 根因: 墙体宽度 bw=1/S*0.72 误用模型单位(≈最大边长*0.72, 数千单位)
  而放置坐标是世界单位(窗体≈1), 相机被包在巨墙内只见背景色
- 改为世界单位: 上下墙覆盖窗洞±2.2x0.55, 左右墙 0.55x窗高
- 墙体不投影(避免自遮挡), 地面尺寸同步修正
- Node 验证四墙尺寸全部 ≤2.2 世界单位
2026-09-21 04:08:56 -07:00
HHY cbb888c7ff fix: 3D'解析失败'根因修复+错误信息可见
- watch immediate 首跑时 camera 未创建而 build() 触碰 camera
  → TypeError 被 catch 显示为'解析失败'
  移除 build 内相机定位(每帧 loop 已定位, 首跑安全)
- 移除 shadowMap.type 赋值(three r186 已移除 PCFSoft 常量)
- 解析失败时显示真实错误信息(console+画布标注)
- dist 重建, PCFSoft 赋值触发路径清零
2026-09-21 03:54:32 -07:00
HHY e1572f969d fix: v2.1 3D 渲染问题根治(profileGeo 自交破面+扇矩形 NaN)
- profileGeo 外轮廓路径自相交(闭合斜边穿过槽口)导致三角剖分破面
  重写为正确顶点顺序的 U 槽简单多边形
- 型材截面挤出抽为共享模块 three/profileGeo.ts(+geometryIsValid 校验器)
- inferSashGlyphs 兜底 bboxOf 误传段对象→修正为有限值点集
  (修复扇矩形 NaN 序列化为 null 的问题)
- 新增 scripts/validate3d.cjs: 254 样板×3700 网格×798 扇
  逐网格 NaN 检测全部通过; 窄条扇合法跳过
2026-09-21 03:43:26 -07:00
HHY 56c154bf81 chore: DXF 素材暂存目录保留(功能完成后删除) 2026-09-21 03:10:59 -07:00
HHY b70a904255 feat: v2.0 DXF 截面学习+多腔体型材挤出落地
- 下载源站 49 个真实型材截面 DXF 用于学习(临时, 已按约定删除)
- 自研 DXF 解析器: 提取截面外轮廓/闭合腔体/实体统计
- 学习结论: 外框深46-62宽74-130(3-6腔), 玻璃扇深80-90宽65-72(4-10腔),
  中梃深79-84宽~100(3-7腔), 纱扇薄壁19-38, 转角立柱146x150(5腔)等
- 3D 型材升级: 多腔体截面挤出(外框3腔/扇2腔, 玻璃槽深20%, 壁厚比例修正)
- 学习结论沉淀至方案文档§3.3, DXF 素材已全部删除
2026-09-21 03:02:05 -07:00
HHY d3accdc237 feat: v1.9 3D 建模深度完善——型材截面挤出+场景+光照+视角
- 探明源站 3D 技术路线: BabylonJS + DXF 型材截面挤出 + sashOpen 开合
- 自研对齐实现(Three.js):
  U 型槽型材截面 ExtrudeGeometry 沿框架挤出(外框/中梃/扇框)
  墙体洞口+地面场景(可开关), PCFSoft 阴影
  光照氛围(日景/黄昏/夜景), 视角预设(正面/45°/侧面/室内)
  自动旋转, 3D 截图导出 PNG(preserveDrawingBuffer)
- 开合动画保留: 平开绕铰链/推拉沿轨道/门大角度
2026-09-21 02:50:25 -07:00
HHY 94c9bfe103 fix+feat: 修复工作台接口不存在 + 3D 区域分配制重建
- 补齐公告后端: Announcement 模型 + /api/announcements + 种子公告
  (修复工作台/布局页调用不存在接口报'接口不存在')
- 修复 seed init_db 前置模型导入(announcements 表未建)
- WindoorThreed 区域分配制: 每个重放区域唯一归属
  (扇认领重叠最大区域, 其余静态玻璃), 杜绝扇面板与玻璃重叠混乱
- 全区域薄框线还原真实窗格, 扇面板含玻璃+四边扇框
2026-09-21 02:34:53 -07:00
HHY 4b52767654 fix: 修复 3D NaN 崩溃/样品图不刷新/画布点选失效
- replayShape 段过滤补 Y 轴有限值校验(此前仅校验 X)
- inferSashGlyphs bdRect 增加有限值守卫
- WindoorThreed 逐网格有限值防护 + maxDim 守卫, 杜绝 NaN 网格
- CombineCanvas shapePts 过滤非有限点, 修复包围盒污染导致的点选失效
- 组合画布引入 rev 版本号: 原地变异几何后强制 3D 预览重建
  (修复尺寸编辑后样品图不变化)
2026-09-21 02:26:08 -07:00
HHY 4303aa6986 fix: spa_fallback JSONResponse 未导入与 JWT 密钥长度警告
- main.py 补导入 JSONResponse(修复未匹配 /api 路径 500 的 NameError)
- 默认 JWT 密钥补足至 32 字节以上(消除 InsecureKeyLengthWarning)
2026-09-21 02:14:53 -07:00
HHY cd8afa7863 feat: v1.6 组合画布编辑能力增强
- 选中单元可视化: 蓝色虚线框+四角手柄+实时尺寸标注
- 精确尺寸编辑: 工具栏 W/H 输入框(几何按比例缩放, 锚定左下角)
- 方向键微调: 1mm/Shift+方向键 10mm
- 右侧单元清单点击选中与画布联动, selSize 双向同步
2026-09-21 02:08:01 -07:00
HHY 1585445436 feat: v1.5 3D 门窗开合动画
- 扇推断逻辑抽取为共享模块 inferSashGlyphs(2D符号与3D动画共用)
- WindoorThreed 重写: 扇面板独立网格组
  平开扇绕铰链旋转(od定铰链侧, 门75°/平开32°/双向门40°)
  推拉扇沿轨道平移(双扇前后轨交替)
  区域归属扇的不再重复渲染静态玻璃
- 开合控制条: 开合度滑杆+自动演示+全开/全关, 平滑插值动画
- 组合画布 3D 预览自动获得开合能力
2026-09-21 01:59:12 -07:00
HHY b404653862 feat: v1.4 组合画布旋转编辑+方向核验+双向门符号
- 组合画布旋转编辑: 选中单元 ⟲/⟳ 90°旋转(绕几何中心)
  分割线法向与开向角度同步旋转, 水平镜像(开向镜像)
- 数据方向核验: 以31729/31740真实图纸比对确认2D渲染Y向正确
- 2D渲染补双向开启门虚线交叉符号(wtf)
- Node数学验证: 旋转后宽高互换/法向转轴/可逆性全部通过
2026-09-21 01:51:18 -07:00