附图报价系统设计分析5
项目画像
维度
数据
类型
模具制造业附图智能报价工具(全前端SPA)
代码规模
核心JS 12,184行 + 主HTML 8,175行 + 14个Python工具
开发周期
2026-03-14 ~ 03-22(8天密集迭代)
定价数据
10MB+(含数百种零件28个维度参数)
🏗 业务闭环
系统配置→图纸上传→AI解析→工艺规划→工时估算→成本核算→报价输出→合同签订
🔗 四层架构
UI层:5个Tab(系统配置/零件管理/报价管理/报价单/特殊功能)
业务层:14个JS模块(计算/解析/AI处理/校验/策略/标定)
状态层:AppState + LocalStorage(12个数据实体)
AI层:4种解析模式(正则/VL视觉/LLM文本/本地AI)+ Node.js代理
⚙ 核心推理链路
PDF上传 → [PDF.js转图] → [VL/LLM/本地AI] → [正则校验] → [工时估算]
→ [成本计算] → [策略应用] → [报价单]
三级降级:VL视觉→DeepSeek LLM→正则匹配
📈 关键发现
50% 提交是"测试问题优化",典型测试驱动密集迭代
最大瓶颈:PDF转图片内存消耗大、VL API需额外代理、本地AI模型400MB
最急待修:工序/术语的编辑删除功能不完整、大写金额函数缺失
目录
项目概览
业务模型分析
需求清单
系统设计
功能清单
代码规模统计
侧端推理链路
模型特征分析
[Git 历史分析](#Git 历史分析)
后续迭代建议
1. 项目概览
维度
内容
项目名称
模具附图报价系统(Mold Drawing Quotation System)
项目定位
面向模具制造企业的附图智能报价工具,覆盖"图纸解析→工艺规划→工时估算→成本核算→报价输出→合同签订"全流程
技术栈
纯前端:HTML5 + CSS3 + JavaScript (ES6+);桌面端:Electron
数据存储
浏览器 LocalStorage(Web版)/ JSON文件(桌面版)
AI能力
多模型接入:VL视觉模型(通义千问VL)、DeepSeek LLM、Qwen LLM、本地AI(Transformers.js CLIP)
文档处理
PDF.js(PDF解析)、CAD解析(DXF/DWG)
开发者
david_232656(GitCode)
开发周期
2026-03-14 至 2026-03-22(密集开发约8天)
仓库
GitCode(gitcode.com :david_232656)
2. 业务模型分析
2.1 核心业务流
复制代码
系统配置 → 上传附图 → AI大模型解析 → 自动规划工艺路线
→ 工序工时定额估算 → 成本核算 → 报价输出 → 合同签订
2.2 业务角色
角色
职责
报价工程师
上传图纸、审核解析结果、调整工艺路线、确认报价
工艺工程师
维护工序/术语/材料参数、标定工时公式系数
采购人员
管理外购件信息、生成采购单、跟踪交付
销售/管理层
配置报价策略(管理费率/利润率)、审批报价、签订合同
2.3 业务闭环
复制代码
┌──────────────────────────────────────────────────────────────┐
│ 业务闭环 │
├──────────────┬──────────────────┬───────────────────────────┤
│ 报价准备 │ 报价中 │ 报价后 │
├──────────────┼──────────────────┼───────────────────────────┤
│ · 材料库配置 │ · 上传图纸 │ · 采购单生成 │
│ · 工艺参数配置 │ · AI解析图纸 │ · 合同生成/签订 │
│ · 报价策略配置 │ · 工艺路线规划 │ · 交付管理/状态跟踪 │
│ · VL模型配置 │ · 工时定额估算 │ · 历史报价查询 │
│ │ · 成本核算 │ │
│ │ · 报价计算/输出 │ │
└──────────────┴──────────────────┴───────────────────────────┘
2.4 报价计算模型
成本构成树
复制代码
总报价 = 产品总价 + 税费
├── 工件总价 = Σ(材料费 + 加工费 + 热处理费 + 表面处理费)
│ ├── 材料费 = 重量 × 材料单价
│ ├── 加工费 = Σ(工序工时 × 工序单价)
│ ├── 热处理费 = 重量 × 热处理费率
│ └── 表面处理费 = 面积 × 表面处理费率
├── 外购费用
├── 包装费用
├── 运输费用
├── 设计费用
├── 管理费用 = (工件总价 + 外购费 + ...) × 管理费率
├── 二装费用
└── 税费 = 应纳税基数 × 税率
报价策略维度
策略类型
管理费率
利润率
适用场景
标准报价
12%
18%
常规项目
竞争报价
10%
12%
竞争激烈项目
高端报价
18%
25%
高精度/高难度项目
批量报价
8%
10%
批量生产项目
2.5 数据实体关系
复制代码
客户 1─N→ 产品 1─N→ 工件
├─ 工艺路线(多道工序)
└─ 费用明细
原材料 ─→ 材料成本
外购件 ─→ 外购费用
报价策略 ─→ 管理费率/利润率
3. 需求清单
3.1 核心功能需求(已实现)
编号
模块
需求描述
实现状态
优先级
R01
系统配置-工序
工序名称增删改查,支持分类
✅ 已实现
P0
R02
系统配置-术语
工艺术语增删改查,支持分类
✅ 已实现
P0
R03
系统配置-原材料
原材料类别/价格管理,启用禁用
✅ 已实现
P0
R04
系统配置-材料明细
原材料规格/密度/单价/供应商明细
⚠️ 部分实现
P1
R05
零件管理-零件记录
零件编号/名称/材质/重量等管理
✅ 已实现
P0
R06
零件管理-外购件
外购件编号/名称/供应商/单价管理
✅ 已实现
P0
R07
报价管理-客户信息
客户名称/联系人/电话/地址管理
✅ 已实现
P0
R08
报价管理-产品信息
产品编号/名称/图号/数量管理
✅ 已实现
P0
R09
报价管理-工件明细
工件编号/材质/重量/工艺路线配置
✅ 已实现
P0
R10
报价管理-工艺路线
工序选择/工时/单价/小计
✅ 已实现
P0
R11
报价管理-费用计算
材料费/加工费/管理费/利润完整计算
✅ 已实现
P0
R12
报价单输出
报价单格式化输出/打印
✅ 已实现
P0
R13
图纸上传
PDF文件上传/预览
✅ 已实现
P0
R14
图纸解析-正则
正则表达式提取零件名称/材质/尺寸等
✅ 已实现
P0
R15
图纸解析-VL模型
通义千问VL视觉模型解析
✅ 已实现
P1
R16
图纸解析-DeepSeek
DeepSeek LLM解析
✅ 已实现
P1
R17
图纸解析-Qwen
Qwen3.5 LLM解析
✅ 已实现
P1
R18
图纸解析-本地AI
Transformers.js CLIP本地解析
✅ 已实现
P2
R19
CAD说明解析
DXF/DWG文件格式说明解析
✅ 已实现
P1
R20
报价策略管理
多策略维护/对比/推荐
✅ 已实现
P1
R21
工时公式标定
实测数据录入/系数拟合/参数配置
✅ 已实现
P1
R22
采购单生成
基于报价生成采购单
✅ 已实现
P2
R23
合同生成
基于采购单生成合同
✅ 已实现
P2
R24
交付管理
项目状态跟踪/交付信息管理
✅ 已实现
P2
R25
数据导入导出
策略/配置数据导入导出
✅ 已实现
P2
3.2 增强功能与待完善项
编号
需求描述
当前状态
建议优先级
R26
工序编辑(修改已有工序)
⚠️ 部分覆盖
P1
R27
工艺术语完整编辑/删除功能
⚠️ 部分覆盖
P1
R28
大写金额转换函数实现(中文大写)
⚠️ 未完整实现
P2
R29
响应式设计(移动端适配)
⚠️ 仅基础viewport
P2
R30
批量PDF图纸上传/解析
⚠️ 部分实现
P2
R31
数据持久化导出(非LocalStorage)
⚠️ 部分实现
P1
R32
输入校验完善(空值/数字合法性)
⚠️ 部分覆盖
P1
R33
三级解析降级策略(VL→LLM→正则)
⚠️ 部分实现
P2
R34
解析置信度/原始文本查看
⚠️ 部分覆盖
P2
3.3 设计文档中的规划需求(未实现)
4. 系统设计
4.1 架构总览
复制代码
┌──────────────────────────────────────────────────────────────┐
│ 用户界面层 │
│ ┌──────────┬──────────┬──────────┬──────────┬─────────────┐ │
│ │ 系统配置 │ 零件管理 │ 报价管理 │ 报价单 │ 策略/标定 │ │
│ └──────────┴──────────┴──────────┴──────────┴─────────────┘ │
├──────────────────────────────────────────────────────────────┤
│ 业务逻辑层 │
│ ┌──────────┬──────────┬──────────┬──────────┬─────────────┐ │
│ │ AI处理 │ 计算 │ 解析 │ 校验 │ 策略 │ │
│ │(ai-handler)│(calculator)│(parsers)│(validator)│(strategy) │ │
│ └──────────┴──────────┴──────────┴──────────┴─────────────┘ │
├──────────────────────────────────────────────────────────────┤
│ 状态管理层 │
│ ┌───────────────────────┐ ┌──────────────────────────────┐ │
│ │ AppState (state.js) │ │ LocalStorage / JSON文件 │ │
│ └───────────────────────┘ └──────────────────────────────┘ │
├──────────────────────────────────────────────────────────────┤
│ AI/外部服务层 │
│ ┌──────────┬──────────┬──────────┬──────────┬─────────────┐ │
│ │ VL模型 │ DeepSeek │ Qwen │ 本地AI │ Node.js代理 │ │
│ │(视觉API) │ (LLM API)│ (LLM API)│(Transformers)│(vl-proxy) │
│ └──────────┴──────────┴──────────┴──────────┴─────────────┘ │
├──────────────────────────────────────────────────────────────┤
│ 图形渲染层 │
│ ┌───────────────────────┐ ┌──────────────────────────────┐ │
│ │ PDF.js (PDF渲染) │ │ CAD解析 (DXF/DWG) │ │
│ └───────────────────────┘ └──────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
4.2 模块职责与依赖关系
模块
文件
行数
职责
依赖
主逻辑
main.js
5,559
业务编排、PDF转图片、AI调用、UI事件绑定
所有模块
状态管理
state.js
430
全局状态(工件/零件/配置/报价单/模型配置)
-
AI处理
ai-handler.js
692
请求重试、超时控制、降级策略
state.js
本地AI
ai-local.js
258
WebGPU检测、Transformers.js模型加载
-
计算器
calculator.js
556
工时计算、材料计算、报价计算
state.js
解析器
parsers.js
432
正则提取图纸信息
-
CAD解析
cad-parser.js
401
DXF/DWG文件解析
-
校验器
validator.js
358
数字/文本/必填项验证
-
报价策略
strategy.js
286
策略增删改查、对比、推荐
state.js
标定系统
calibration.js
392
实测数据录入、最小二乘法拟合
calculator.js
UI组件
ui.js
1,699
Tab布局、表格渲染、表单生成、报价单模板
state.js
VL代理
vl-proxy.js
226
Node.js代理服务器(解决CORS问题)
-
DWG转换
dwg-converter.js
249
DWG格式转换工具
-
样式
style.css
646
全局样式(配色/布局/打印)
-
4.3 数据存储设计
LocalStorage Key 结构:
Key
存储内容
格式
mold_quotation_operations
工序名称列表
JSON Array
mold_quotation_terms
工艺术语列表
JSON Array
mold_quotation_materials
原材料及价格
JSON Array
mold_quotation_parts
零件记录
JSON Array
mold_quotation_purchased
外购件信息
JSON Array
mold_quotation_customers
客户信息
JSON Array
mold_quotation_products
产品信息
JSON Array
mold_quotation_workpieces
工件明细
JSON Array
mold_quotation_strategies
报价策略
JSON Array
mold_quotation_calibration
工时标定数据
JSON Array
mold_quotation_formula_params
工时公式参数
JSON Object
mold_quotation_vl_config
VL模型配置
JSON Object
currentQuotation
当前报价单
JSON Object
4.4 部署方案
方案A:纯前端SPA(当前)
直接在浏览器打开 HTML 文件运行
数据存储 LocalStorage
需要 Node.js 代理服务器解决 VL API CORS 问题
方案B:Electron桌面应用(开发中)
Electron 28 + electron-builder 打包
内置 Node.js 代理服务器
支持 DWG 文件本地转换
文件系统操作(保存/读取配置)
生成 Windows 安装包(NSIS/自定义打包)
5. 功能清单
5.1 Tab1:系统配置
复制代码
┌─────────────────────────────────────────────┐
│ 系统配置 │
├─────────────────┬───────────────────────────┤
│ [工序名称配置] │ · 添加工序(类型:加工/热 │
│ │ 处理/表面处理/检验/装配) │
│ │ · 预设标准工序库(20+种) │
│ │ · 启用/禁用 │
├─────────────────┼───────────────────────────┤
│ [工艺术语配置] │ · 添加术语及定义 │
│ │ · 分类管理 │
├─────────────────┼───────────────────────────┤
│ [原材料配置] │ · 原材料类别/价格 │
│ │ · 启用/禁用/更新时间 │
├─────────────────┼───────────────────────────┤
│ [报策略配置] │ · 标准/竞争/高端/批量4种 │
│ │ · 管理费率/利润率配置 │
│ │ · 策略导入导出 │
└─────────────────┴───────────────────────────┘
5.2 Tab2:零件管理
复制代码
┌─────────────────────────────────────────────┐
│ 零件管理 │
├─────────────────┬───────────────────────────┤
│ [零件记录] │ · 零件编号/名称/材质/重量 │
│ │ · 图纸编号/展开面积 │
│ │ · 所属产品/备注 │
├─────────────────┼───────────────────────────┤
│ [外购件信息] │ · 外购件编号/名称/规格 │
│ │ · 供应商/单价/最小订购量 │
└─────────────────┴───────────────────────────┘
5.3 Tab3:报价管理
复制代码
┌─────────────────────────────────────────────┐
│ 报价管理 │
├─────────────────┬───────────────────────────┤
│ [客户信息] │ · 客户名称/联系人/电话/地址 │
├─────────────────┼───────────────────────────┤
│ [产品信息] │ · 产品编号/名称/图号 │
├─────────────────┼───────────────────────────┤
│ [工件明细] │ · 工件编号/名称/材质 │
│ │ · 重量/面积/数量 │
├─────────────────┼───────────────────────────┤
│ [工艺路线] │ · 工序选择/工时/单价 │
│ │ · 自动/手动模式 │
├─────────────────┼───────────────────────────┤
│ [费用计算] │ · 材料费/加工费/管理费 │
│ │ · 包工包料/来料加工模式 │
│ │ · 大写金额显示 │
└─────────────────┴───────────────────────────┘
5.4 Tab4:报价单输出
复制代码
┌─────────────────────────────────────────────┐
│ 报价单输出 │
├─────────────────┬───────────────────────────┤
│ [客户信息确认] │ · 客户/产品基本信息 │
├─────────────────┼───────────────────────────┤
│ [工件明细表] │ · 工件清单/工艺路线 │
├─────────────────┼───────────────────────────┤
│ [费用汇总] │ · 各项费用明细 │
├─────────────────┼───────────────────────────┤
│ [打印输出] │ · 格式化报价单打印 │
│ │ · @media print样式 │
└─────────────────┴───────────────────────────┘
5.5 特殊功能模块
复制代码
┌─────────────────────────────────────────────┐
│ 特殊功能模块 │
├─────────────────┬───────────────────────────┤
│ [工时公式标定] │ · 实测数据录入 │
│ │ · 系数拟合(最小二乘法) │
│ │ · 参数配置(切削效率/材料 │
│ │ 系数/精度系数) │
│ │ · 拟合结果可视化验证 │
├─────────────────┼───────────────────────────┤
│ [AI图纸解析] │ · 正则解析(免费) │
│ │ · VL模型解析(需API Key) │
│ │ · DeepSeek LLM解析 │
│ │ · Qwen LLM解析 │
│ │ · 本地AI解析(Transformers) │
│ │ · 三级降级策略 │
├─────────────────┼───────────────────────────┤
│ [采购/合同管理] │ · 采购单生成 │
│ │ · 合同生成/打印 │
│ │ · 交付状态跟踪 │
└─────────────────┴───────────────────────────┘
6. 代码规模统计
6.1 总体统计
统计项
数值
总文件数
~190+(含数据文件、图片、文档)
核心JS代码行数
~12,184 行(dev目录14个JS模块)
主HTML文件
模具附图报价系统.html(8,175行)
Electron桌面版
主进程570行 + 渲染进程JS 2,500+行
Python工具脚本
14个脚本,共~682行
设计文档(MD)
12个文档,共~6,000+行
价格数据文件
定价数据JS(4.4MB+3.4MB+1.7MB)
测试HTML文件
5个测试页面,共~1,145行
CSS样式
dev/style.css(646行)
6.2 核心代码分布
层次
文件
行数
占比
主逻辑
main.js
5,559
23.9%
UI渲染
ui.js
1,699
7.3%
前端页面
index.html
1,575
6.8%
AI处理
ai-handler.js
692
3.0%
样式
style.css
646
2.8%
计算引擎
calculator.js
556
2.4%
状态管理
state.js
430
1.9%
解析器
parsers.js
432
1.9%
CAD解析
cad-parser.js
401
1.7%
标定系统
calibration.js
392
1.7%
校验器
validator.js
358
1.5%
策略管理
strategy.js
286
1.2%
本地AI
ai-local.js
258
1.1%
DWG转换
dwg-converter.js
249
1.1%
VL代理
vl-proxy.js
226
1.0%
小计
13,799
主HTML
模具附图报价系统.html
8,175
---
定价数据
dev/pricing-data*.js
10+MB
---
6.3 文档规模
6.4 Python工具脚本
脚本
行数
功能
read_excel_sheets.py
100
读取Excel定价表,生成压缩JSON
_audit_deep.py
127
深度检查:工序编辑/外购件/置信度等
_audit_html.py
124
HTML审计:SPEC验收标准覆盖检查
_audit_gap.py
111
精准检查:疑似缺失功能验证
_audit_detail.py
86
详细检查:术语删除/大写金额/定额Tab
read_excel.py
16
Excel读取测试
read_pdf.py
13
PDF读取测试
build_html.py
20
HTML构建辅助
extract_docx.py
28
DOCX文档提取
inject_data.py
30
数据注入测试
check_json.py
4
JSON格式验证
_find_lines.py
10
文件行搜索工具
_find_media.py
6
媒体文件查找
_count_lines.py
4
行数统计
7. 侧端推理链路
7.1 核心推理流程
复制代码
用户上传PDF图纸
↓
PDF.js 加载PDF → 渲染为Canvas → 转Base64 JPEG
↓
┌──────解析策略选择──────┐
│ │
├──▶ 模式1:正则解析(无AI成本)
│ PDF文本提取 → 正则匹配 → 结构化数据
│ [无需网络,立即出结果]
│
├──▶ 模式2:VL视觉模型(推荐)
│ PDF图像 → VL API → JSON结构解析
│ [需API Key,效果最好,约0.02元/次]
│ ├── 通义千问VL-Plus/ Max
│ └── 需Node.js代理解决CORS
│
├──▶ 模式3:DeepSeek/Qwen LLM
│ PDF文本提取 → LLM API → 结构化数据
│ [基于文本,效果中等]
│
├──▶ 模式4:本地AI(Transformers.js)
│ PDF图像 → CLIP零样本分类 → 材质/特征识别
│ [完全本地,隐私安全,约400MB模型]
│ └── 硬件要求:WebGPU/8GB+ RAM
│
└──────────────────────────
↓
结构化解码 → 置信度评估
↓
填充报价表单(用户确认/修正)
↓
调用 Calculator.estimateProcessRoute()
↓
自动规划工艺路线(基于材质/尺寸/精度规则)
↓
估算工时定额(切削效率 × 材料系数 × 精度系数)
↓
成本核算 → 应用报价策略 → 生成报价单
7.2 AI推理链路时序
复制代码
[用户] ───上传PDF───→ [PDF.js] ──渲染为图像──→ [Canvas]
│ │
│ ┌────────────────────────────────────────┘
│ ▼
│ [VL API Proxy:3001] (或直连DashScope)
│ │
│ ├── request: image/jpeg base64 + prompt
│ ├── response: JSON {partName, material, dimensions...}
│ │
│ ▼
│ [Validator] ──校验数据类型、范围
│ │
│ ▼
│ [Parser] ──结构化解析
│ │
│ ▼
│ [Calculator] ──工时估算 + 成本计算
│ │
│ ▼
│ [Strategy] ──应用报价策略
│ │
│ ▼
│ [UI] ──渲染报价单
7.3 容错/降级机制
层级
机制
实现
AI请求
最大3次重试 + 指数退避
ai-handler.js execute()
超时控制
120s超时(可配置)
Promise.race + setTimeout
降级链路
VL → DeepSeek → 正则(三级降级)
executeWithFallback()
模型降级
WebGPU → WebGL → WASM → CPU
ai-local.js 设备检测
网络检测
HuggingFace HEAD请求探活
checkNetworkStatus()
内存监控
JS堆内存用量监测
performance.memory 检查
7.4 已知推理瓶颈
瓶颈
原因
影响
PDF转图片内存爆炸
PDF.js 渲染大尺寸PDF时内存飙升
页面卡顿/崩溃(已限制到3MB/600px)
VL API CORS问题
浏览器跨域限制
需额外Node.js代理服务器
Transformers.js模型大
CLIP模型约400MB下载
首次加载时间长,需耐心等待
API Key管理
VL/DeepSeek/Qwen各自需要API Key
用户配置门槛较高
8. 模型特征分析
8.1 价格数据模型
定价数据从 Excel 导出并转换为 JS 文件,共包含:
数据维度
数量/大小
材料类型
~50+种(钢材/铜/铝/塑料等)
零件记录
数百条(含C类零件完整数据集)
规格字段
28个维度(长/宽/高/材质/工时/成本/定价等)
原始数据大小
dev/pricing-data.js: 4.4MB
压缩形式
pricing_data_compact.json: 1.7MB
8.2 工时计算数学模型
复制代码
车削: T = (π × D × L) / 切削效率 × 材料系数
铣削: T = (L × W) / 切削效率 × 材料系数
CNC: T = (L × W × H) / 切削效率 × 材料系数
磨削: T = (L × W) / 磨削效率 × 材料系数 × 精度系数
线割: T = (周长 × H) / 切割速度 × 复杂度系数
总工时 = Σ(T_i) + 基础工时
设备费率
设备
费率(元/h)
车床
30
铣床
30
CNC
60
加工中心
60
平面磨/外圆磨
30
线割
50
钻孔
25
热处理
40
8.3 工艺路线规则模型
材质 → 基础工艺路线:
材质类型
默认工艺路线
模具钢
粗加工 → 热处理 → 精加工 → 检验
普通钢材
粗加工 → 热处理 → 精加工
铝合金
粗加工 → 精加工 → 表面处理
铜合金
粗加工 → 精加工 → 抛光
不锈钢
粗加工 → 精加工 → 表面处理
尺寸 → 附加规则:
大尺寸(>200mm) → 龙门铣粗加工 + 卧式加工中心精加工
小尺寸(<50mm) → 精密车削 → 磨削 → 抛光
高精度(IT6+) → 多次精加工 → 研磨 → 检验
表面粗糙度 → 工艺调整:
Ra>3.2:车/铣 → 磨 → 抛光
Ra1.6-3.2:车/铣 → 磨 → 精磨
Ra0.8-1.6:车/铣 → 磨 → 研磨 → 抛光
Ra<0.8:车/铣 → 磨 → 研磨 → 超精加工
8.4 系数拟合模型(标定系统)
采用最小二乘法(Linear Regression)进行系数拟合:
复制代码
公式: y = a × x + b
其中:a = 1/切削效率,b = 基础工时
拟合方法:
a = (n×Σxy - Σx×Σy) / (n×Σx² - (Σx)²)
b = (Σy - a×Σx) / n
材料系数归一化:以45#钢为基准(1.0),其他材料相对值
精度系数归一化:以粗加工为基准(1.0),精加工(1.3),超精加工(1.8)
9. Git 历史分析
9.1 提交概览
指标
数值
总提交数
22
开发者
1人(david_232656)
首个提交
2026-03-14 17:44
末次提交
2026-03-22 18:00
开发周期
8天(密集迭代)
分支
master(本地);origin/master + origin/DEV(远程)
9.2 提交时间线
复制代码
2026-03-14 Initial commit (671a3b7) ✓
附图报价测试功能优化 (d7567df)
测试问题优化 (6a820e6)
2026-03-15 测试问题优化 (66d3828)
测试问题优化 (ea5fcae)
2026-03-16 VL大模型解析图纸测试问题优化 (c3afda5) ← 核心AI功能
PDF解析测试问题优化 (590f973)
PDF文件解析报错优化 (f7eb71a)
测试问题优化,增加业务流程图 (bef65bd)
测试问题优化 (e239b30)
测试问题优化 (12e68ab)
测试问题优化 (b1dfa66)
增加ElectronDev桌面程序 (88bf7c2) ← 桌面版启动
启动问题优化 (d5ceab7)
更新自述文件 (fa61c95)
2026-03-17 构建问题优化 (9516025)
构建问题优化 (da52a43)
测试问题优化 (1b5e33e)
测试问题优化 (cd095cc)
Initial commit (0db1fc0) ← ElectronDev独立初始化
2026-03-22 3月18-21日代码更改:报价策略测试问题优化 (4678e19)
添加Git LFS配置,防止提交大于100MB的文件 (19e8b38)
9.3 提交类型分布
类型
数量
占比
说明
测试问题优化
11
50%
密集的测试驱动迭代
构建/启动优化
3
13.6%
Electron构建/启动问题
PDF解析优化
2
9.1%
PDF核心功能修复
VL模型功能
1
4.5%
视觉大模型集成
桌面版
1
4.5%
Electron桌面应用
基础设施
2
9.1%
Git LFS/README
Initial commit
2
9.1%
项目初始化
9.4 开发节奏分析
复制代码
测试优化
┌──────────┐
VL集成 ─→ PDF解析 ─→ 业务流程图 ─→ Electron ─→ 策略优化 ─→ LFS配置
03-14 03-16 03-16 03-16 03-17~21 03-22
前3天(03-14~03-16)为核心功能建设期------VL模型、PDF解析、业务流程
03-16 密集提交9次,单日最高活跃度
03-17~03-22 转向稳定性优化和策略系统完善
平均每天2.75次提交(密集度较高)
9.5 代码变更量
统计项
数值
总变更文件数
71个
总新增行数
510,062
总删除行数
8,862
净增行数
501,200(含大量价格数据文件)
单个最大文件
dev/pricing-data-new.js(294,703行)/ dev/pricing-data.js(198,523行)
注:大量新增行主要来自pricing-data*.js系列文件(累计约10MB、50万行),
这些是Excel定价数据的JS序列化文件。删除行中含有二进制文件的Git LFS迁移。
10. 后续迭代建议
10.1 技术债务清单
编号
问题
位置
影响
建议
T01
全局变量过多,模块间耦合度高
main.js + 各模块
维护困难
逐步迁移到模块化架构(ES Module)
T02
无单元测试
全部
修改风险高
引入Jest/Vitest,为核心计算函数写测试
T03
数据文件过大(10MB+ JS)
dev/pricing-data*.js
加载慢
改为按需加载/Lazy Load/服务端API
T04
LocalStorage容量限制(5MB)
全部
数据易丢失
引入IndexedDB或SQLite(Electron)
T05
浏览器文件编码问题
state.js等UTF-16文件
乱码
统一UTF-8编码
T06
价格数据与代码硬耦合
dev/pricing-data.js
更新困难
改为独立JSON文件按需加载
10.2 功能迭代优先级
P0 --- 核心稳定性(建议立即启动)
完善工序/术语的编辑+删除功能(当前仅部分覆盖)
实现完整的大写金额转换函数
增加报价数据的导入/导出备份功能
完善输入校验(空值、数字范围、必填项)
P1 --- 用户体验提升(建议1-2周内)
实现三级推理降级策略的完整链路(VL→LLM→正则)
解析置信度可视化展示 + 原始文本查看
响应式布局适配平板/移动设备
优化PDF解析内存占用(支持更大文件)
P2 --- 功能扩展(建议1个月内)
批量PDF上传与解析
兼容层替换LocalStorage为IndexedDB
Electron桌面版打包与发布(Win安装包)
工时标定系统的可视化图表(拟合曲线)
P3 --- 长期演进(建议3个月+)
后端服务化(Spring Boot)------ 支持多用户、数据共享
ERP/CRM 数据接口集成
基于历史报价的AI智能策略推荐
移动端适配(H5 / 小程序)
10.3 架构演进方向
复制代码
当前(纯前端SPA)
↓
近期(Electron桌面版------有Node能力,可本地文件操作/数据库)
↓
中期(Electron + 本地SQLite + 后端API服务)
↓
远期(Spring Boot + Vue3 前后端分离------与客户赋能系统融合)
10.4 潜在风险
风险
描述
应对措施
AI API依赖
VL/LLM API变更或停服
强化本地AI(Transformers.js)能力
图纸数据安全
图纸上传到第三方API
推广本地AI解析模式,数据脱敏
定价数据过期
材料价格波动导致报价不准
建立价格更新机制,支持定期导入
浏览器兼容
Transformers.js/WebGPU依赖
完善降级策略,提示推荐浏览器