ui/app.js + index.html
DOM 渲染层,通过 store.subscribe 驱动,不直接操作 service/repo(Sprint 8)。
ui/app.js + index.html + style.css
层级:ui(依赖 runtime/store)
Sprint:S8
架构约束
UI 层遵守以下强规则:
- 只通过
store.*操作数据,禁止直接importservice 或 repo - 所有状态通过
store.subscribe()监听,不做本地缓存 - 图表(Chart.js)通过 CDN 引入,不打包
页面布局
关键 DOM 元素
| ID | 类型 | 说明 |
|---|---|---|
jd-input | textarea | JD 文本输入 |
file-input | input[file] | 简历文件上传 |
upload-zone | div | 拖拽上传区域 |
api-key-input | input[password] | API Key 输入 |
engine-toggle | checkbox/button | 本地/AI 引擎切换 |
match-btn | button | 触发匹配 |
result-section | div | 结果展示容器 |
total-score | div | 总分数字 |
radar-chart | canvas | Chart.js 雷达图 |
engine-badge | span | 当前引擎状态标识 |
状态驱动渲染
雷达图配置
使用 Chart.js 4.x 渲染三维雷达图: