4.2 KiB
管理端接入
报销类型页面布局
报销类型页面采用左侧搜索/选择类型、右侧编辑规则的分栏布局。类型列表和规则区域分别滚动,底部保存栏始终可见;保存成功显示反馈,继续修改后恢复保存提示。新增类型固定在左下方,重命名/删除集中在详情标题的更多菜单中。
基本信息包含明确的说明和提示标签;上传材料逐行配置不使用/选填/必填,编辑与删除位于该行更多菜单。添加、编辑材料使用弹窗,保存材料时也保存当前类型规则。只读权限及删除确认保持不变。全局类型页面不显示无关的项目/组别筛选。
保存规则只合并当前类型的服务端结果,不覆盖其他类型尚未保存的编辑。切换类型不会自动保存;刷新或退出前仍应主动保存。
回归验证:swiftc reimburse/AdminModels.swift reimburse/AdminStore.swift tests/AdminPolicyEditorTests.swift -o /tmp/admin-policy-editor-tests && /tmp/admin-policy-editor-tests。
报销类型管理
“报销类型”页新增“类型管理”区域,可查看全部启用/停用类型。平台管理员可新增、重命名或确认删除,普通管理账号只读。新增名称限制 1–40 字且不可重名,默认停用;创建后在下方配置规则、勾选启用并保存。删除立即生效,不是停用;历史报销记录及附件保留,历史类型名称不随重命名改变。类型配置对所有项目生效。
服务端拒绝时弹窗保留输入并显示错误;成功后更新列表和当前选择,不清空其他类型尚未保存的规则。需同步更新 Go 服务和微信小程序,无需为本功能修改数据库结构。
删除材料与不使用
“报销类型”中的垃圾桶会确认后调用材料类型删除接口,立即从全局材料列表及所有报销类型的材料规则中删除该材料,不删除历史报销附件。即使材料已选“不使用”,也保留删除入口。删除失败不会在本机假装移除;成功后保留其他尚未保存的规则编辑。
“不使用”只改变当前报销类型是否需要此材料,需要点击“保存规则”生效,不删除材料类型。
多附件兼容
项目管理详情现在展示每个材料分类下的全部附件,并支持逐份预览、下载和 ZIP 导出。新版本同时解码旧服务的单附件对象和新服务的附件数组;多附件服务上线时需同步重新构建 Mac 应用。本地 OCR 和 Office 导出不受此次改动影响。
独立模型兼容测试:swiftc reimburse/AdminModels.swift tests/AdminAttachmentsTests.swift -o /tmp/admin-attachments-tests && /tmp/admin-attachments-tests。
应用新增“项目管理”入口,原“本地贴票”入口及 OCR、核对、配对、Office 导出保持原样。
使用
- 先启动
scoopex-expense-api,执行其数据库迁移。 - 微信小程序登录后查看“我的”账户 ID,由服务器操作者初始化首位平台管理员。
- 打开管理端,设置 API 地址,生成微信登录码,在手机小程序中确认。
- 平台管理员创建项目,按账户 ID 任命项目负责人。
- 项目负责人选择项目、创建组别,按账户 ID 勾选多个组授权管理员。
- 管理员选择具体组别,生成邀请二维码,审核扫码入组申请。
- 成员提交报销后,在报销审批列表打开详情,查看/下载凭证并批准或退回。
“全部授权组”汇总数据;单个组筛选用于成员和邀请管理。二维码和登录票据不是管理员授权渠道。 登录凭证保存于 macOS 钥匙串;网络不使用代理。HTTP 仅允许本机地址,部署必须使用 HTTPS。 平台管理员默认没有项目发票读取权限,需另行指定为项目负责人才能进入该项目业务。
构建
Xcode 工程已开启出站网络沙盒权限。
该仓库当前没有 native-engine/dist/receipt-engine-helper.app,完整应用构建仍需按 README 重建原有 OCR 引擎。新增 Swift 管理界面可独立进行类型检查;不能把类型检查当作完整 OCR 安装包验收。
完整接口、初始化命令、部署注意事项见 Go 项目的 PROJECT-ACCESS.md。