Files
reimburse/UI-OPTIMIZATION.md
T
2026-09-20 16:31:24 +08:00

56 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 界面优化实施记录
依据 `界面优化方案.md` 实施,仅调整 macOS 客户端。未修改后端、小程序、Python 引擎及导出模板。
## 已实施
- 默认进入本地贴票;统一语义色、通知、搜索框、徽章和统计组件。
- 人工配对支持两栏独立搜索、日期/金额/文件名排序、三档缩略图、方向键导航、空格勾选及预览内勾选。单击卡片立即勾选或取消,不等待双击判定;放大预览使用卡片右上角按钮。已选连线持续显示,兼容一对一、一对多、多对一及多对多,不依赖悬停或焦点。同组材料通过中间主线和独立分支相连,分支沿网格间隙绕开相邻卡片,避免多对多交叉线遮挡票据。左右滚动实时更新连线位置,滚出视野的已选材料归并到上下边缘数量标记;连线限制在材料区内,不覆盖搜索栏和操作栏。
- 已核对按费用类型并排分列:固定类型表头,共用纵向滚动区,以紧凑凭证缩略图、金额、日期及份数展示每组材料。不再将未经确认的 OCR 商户候选或文件名作为卡片标题,详情标题使用组号,原始 OCR 数据保留用于搜索和核对。仅显示当前结果中有材料的类型,空列自动隐藏,有材料后自动出现,其余列自动分配可用宽度;窄窗口横向滚动。点击凭证打开详情,支持大图预览、前后组切换、修改类型及撤销配对。保留搜索、列内排序、需关注过滤、整列勾选、类型金额小计及筛选外勾选计数,选择汇总和导出集中到底部。
- 扫描页空工作区隐藏统计;待配对入口前移,提醒可关闭/折叠,统计与金额汇总紧凑化,分类金额增加占比条。
- 材料预览异步解码、先显示缩略图,支持取消和重试;没有缓存预览的 PDF 仍只显示首页。预览外围适配深色模式,纸张本身保留白底。
- 报销单、材料和模板窗口按屏幕可用范围限制尺寸。报销单正文可滚动,签字岗位支持快选与移除后撤销,空用途与重复用途提供反馈。
- 模板填写位置支持预览单元格点选、原文行悬停高亮、格式/范围/重复位置实时校验;窄预览使用紧凑缩放菜单。最终模板合法性仍交由原引擎验证。
- 收款资料保存反馈及尾号复制;成功与错误通知可分别显示、关闭,成功提示自动消失,导出成功提供访达入口。
- 项目管理拆为审批、成员、组别、权限、类型规则及操作记录六个页面,共享基础组件;增加审批列排序、已加载数量、横向导航、成功服务地址历史与扫码重试按钮。
- Store 缓存已核对排序、全局序号、分类汇总及需关注数量;扫描处理在 Dock 图标显示进度。
## 交互约定
- `Command-1/2/3` 切换本地页面,`Command-F` 聚焦搜索,`Command-,` 打开模板,原有 `Command-O` 导入保留。
- 撤销最近核对组采用 `Command-Option-Z`,避免覆盖文本编辑的标准 `Command-Z`
- 搜索支持空格分隔多个条件。筛选不清空勾选,全选/取消全选只作用于当前结果。
- “需关注”包括自动证据分低于 90、缺少可验证评分,或包含识别失败材料的组;不修改配对结论。
- 表格排序不改变导出顺序。PPT 与报销单仍只导出所选组,行程表仍使用全部已核对材料。
- 用途重复仅提示,不跨费用类型重新合并;签字全部删除时仍沿用原默认岗位。金额口径、PPT 版式、模板指纹及预览/保存一致性校验不变。
- 再次导入替换工作区与危险操作的原确认流程保留。
## 验证
运行 Swift 回归测试:
```sh
node tests/run-ui-checks.mjs
```
运行上述测试以及隔离的原生界面检查:
```sh
node tests/run-ui-checks.mjs --render
```
仅重跑原生界面检查:
```sh
node tests/run-ui-checks.mjs --render-only
```
测试使用临时工作区、生成的样例材料与内存收款存储,不读取真实工作区或收款钥匙串。截图目录由脚本输出。
- 12 组 Swift 回归:搜索排序、需关注、隐藏勾选保留、金额汇总、证据评分、模板持久化与指纹、预览一致性、导入校验、收款存储、附件兼容、审批导出范围及规则编辑状态。
- 原生检查:1280×800、1024×640、900×560 的浅色/深色渲染、弹窗、窄表格预览;搜索焦点、不同缩放的单元格点击、异步图像缩放、PDF 首页及加载取消。
- 原有 `SpreadsheetLayoutTests.swift` 的排版与像素回归另行通过。
- 完整 Xcode Debug 构建及本地引擎指纹检查通过。
本轮未使用真实服务执行微信登录、在线审批或真实材料 OCR 验收。Dock 进度、VoiceOver 朗读及不同 macOS 版本的系统材质效果仍需交互验收。未引入无限历史通知队列,也未改变扫码轮询为自动重复生成二维码。