Files
ledgerly-docs/guide/transactions.md
T
rosercode 41d1a4d5a9 docs: 补充管理页批量操作说明并同步规则/AI 规则文档
为规则、分类、标签管理页新增的「批量操作模式」与多选删除补充使用与开发文档,同时补上此前已完成但未同步的 AI 规则建议可编辑、编辑后实时重算去重等文档,并登记批量模式截图脚本。

变更内容:
- guide/categories-tags.md:补充分类与标签的批量删除说明,并回填 tags-batch.png、categories-batch.png 配图。
- guide/rules.md:批量删除与应用匹配账单改为需先进入「批量操作」模式(默认不显示勾选框)。
- dev/api.md:新增 DELETE /api/tag/batch、/api/category/batch,并补齐规则命中账单预览/一键应用、AI 规则去重校验等接口。
- dev/data-model.md:说明标签删除清理交易标签与规则标签关联、分类删除保留逻辑引用(账单显示未分类)。
- dev/rule-engine.md、dev/ai.md、dev/preferences.md、guide/ai.md、guide/transactions.md:同步 AI 规则建议可编辑、编辑后实时重算去重、应用开关默认开启并持久化等说明。
- scripts/ts/capture-elements.ts:新增 captureBatchModes()(标签/分类批量模式截图)并纳入 main()。

说明:
- 截图经测试环境(前端 5174 / 后端 8081,虚构数据)生成,已上传 OSS,正文以 OSS 长期地址引用;public/screenshots 目录不入库。
2026-10-14 01:07:46 +08:00

252 lines
16 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.
# 收支记录
「收支记录」页面用于查看和管理每一笔收入与支出。
![收支记录](https://adcarac.oss-cn-beijing.aliyuncs.com/finance-app-docs/screenshots/transactions.png)
## 顶部操作
| 按钮 | 功能 |
|---|---|
| 排序 | 交易时间(新→旧 / 旧→新)、金额(高→低 / 低→高) |
| 查看统计 | 携带当前筛选条件跳转到[统计面板](/guide/dashboard) |
| 导入账单 | 打开账单导入弹窗 |
| 渠道管理 | 进入[交易渠道管理](/guide/channels)页,维护自定义渠道 |
| 导出 Excel | 按当前筛选条件导出;单次上限 **10000 条**,超出会提示缩小筛选范围后重试 |
| 刷新 | 按当前筛选条件与页码重新加载列表 |
| 智能记账 | 用一句话描述收支,AI 解析后预填表单(需启用 AI) |
| 新增记录 | 手动新增一笔记录 |
## 批量操作
批量操作相关按钮位于**列表右上角**(分页统计信息的上方)。默认为普通模式,表格不显示勾选列,点「批量操作」后才进入多选模式:
| 按钮 | 功能 |
|---|---|
| 批量操作 / 退出批量 | 进入多选模式,表格左侧出现勾选列;点「退出批量」会清空已勾选记录并隐藏勾选列 |
| 一键设置 | 批量设置分类、计入统计与标签;**有勾选时作用于勾选记录,未勾选时作用于当前页全部记录**,详见[一键设置(批量设置)](#一键设置-批量设置) |
| 批量删除 | 勾选至少一条后出现,确认后删除所选记录 |
| 建立关系 | 勾选至少两条后出现,为所选记录[建立账单关系](/guide/relations) |
| AI 生成规则 | 启用 AI 后出现;勾选至少一条账单,由 AI 归纳分类/标签规则,规则可编辑、去重实时重算,可「同时应用到当前勾选的账单」(默认开启并记住),详见 [AI 生成规则](#ai-生成规则从勾选账单) |
> 翻页、刷新或退出批量模式都会清空已勾选记录。**批量删除**与**建立关系**只作用于勾选记录;**一键设置**在未勾选时才作用于当前页全部记录,且当次勾选范围以打开弹窗时的选择为准。
## AI 生成规则(从勾选账单)
启用 AI 后,批量操作区会出现「**AI 生成规则**」按钮。勾选若干账单后点击,AI 会依据这些账单的**类型、备注、交易渠道、已有分类与标签**归纳出「关键词 → 分类/标签」规则。
在弹窗中可**直接编辑**每条规则(名称、类型、关键词、金额区间、分类、标签;AI 建议的新分类/新标签以「新建:xxx」选项保留);编辑后系统会自动重新判定是否与已有规则重复,**改成不重复自动勾选、改成重复自动取消并禁用**。勾选后点「创建勾选规则」批量创建,系统会自动创建建议中不存在的新分类与标签。
弹窗底部可勾选「**同时应用到当前勾选的 N 条账单**」——命中规则时会**覆盖这些账单的分类并追加标签**(不改动备注与金额)。该开关**默认开启**,并会记住上次选择。生成与「同时应用」全程不发送金额、原始账单数据等敏感字段。
![AI 生成规则(收支记录)](https://adcarac.oss-cn-beijing.aliyuncs.com/finance-app-docs/screenshots/elements/ai-rule-transactions.png)
> 与[规则管理](/guide/rules#ai-生成规则)页的「AI 生成规则」(依据**已打标签记录**归纳)不同,此入口直接以**勾选的账单**为依据,不要求已打标签;两处的规则建议都可编辑、都会对与已有规则重复的建议标记「已存在」并禁止导入,且编辑后实时重算。
## 账单导入
「收支记录」页支持把支付宝、微信、美团、淘宝、京东、招商银行、交通银行的账单文件解析并导入为收支记录。
![导入账单弹窗](https://adcarac.oss-cn-beijing.aliyuncs.com/finance-app-docs/screenshots/elements/import-bill.png)
### 入口
| 入口 | 形式 | 说明 |
|---|---|---|
| 收支记录页「**导入账单**」按钮 | 弹窗 | 桌面端常用 |
| 通知邮件中的链接 `/bill-import` | 独立页 | **仅由通知邮件直达**,面向手机;独立页面(非弹窗),元素精简、系统内无其他入口 |
> `/bill-import` 是「定时通知」邮件里附带的直达上传页,方便在手机上直接上传账单,不会从系统内其他页面跳转进入。
### 支持的账单类型与格式
| 账单类型 | 支持格式 |
|---|---|
| 支付宝 | `.csv`、`.zip` |
| 微信 | `.xlsx`、`.zip` |
| 美团 | `.csv`、`.zip` |
| 淘宝 | `.xlsx` |
| 京东 | `.csv`、`.zip` |
| 招商银行 | `.csv`、`.pdf`、`.zip` |
| 交通银行 | `.xls`、`.zip` |
各平台账单的导出方法见[账单类型与获取](/guide/bills/overview)。
### 导入流程
导入采用「解析预览 → 确认导入」两步,先解析不落库,确认后才写入。
**第一步:选择类型与文件**
1. 选择账单类型(默认记住上次选择)。
2. 点击或拖拽上传账单文件。
3. 点击「解析」。
切换账单类型会清空已选文件;页面会提示该类型支持的格式与在对应 App 中的导出路径。若上传的是**加密压缩包**,解析时会弹出密码输入框,输入后重新解析。
**第二步:解析预览**
![账单解析预览](https://adcarac.oss-cn-beijing.aliyuncs.com/finance-app-docs/screenshots/elements/bill-parse-preview.png)
- **默认归类**:可为本次导入设置默认的支出分类、收入分类与默认标签。
- **筛选**:关键字、类型(收入/支出/不计入)、状态(可导入/已存在/不可导入)、金额区间。
- **逐行勾选**:默认勾选解析器建议的行;只有「可导入」的行可勾选。
- **计入统计**:可对勾选行批量「设为计入 / 设为不计入」,建议按来源设置(见下)。
- **预览列**:交易时间、类型、计入统计、金额、交易对方、商品名称、状态、**匹配规则与建议**。
::: tip 按来源设置计入统计
- **微信、支付宝**来源默认**计入**;**其他**来源(银行、美团、淘宝、京东等)默认**不计入**——它们往往最终走微信/支付宝支付。
- **例外**:工资、奖金等明确收入应计入。
:::
::: tip 去重
系统按「用户 + 交易号」去重。已存在于系统中的交易会标记为「已存在」,默认不勾选,避免重复导入。
:::
**第三步:导入结果**
显示成功、跳过、失败的数量与明细消息。完成后可在下方表格中查看。
### 常见问题
- **解析失败**:确认账单类型与文件格式是否匹配;银行账单请使用系统支持的导出格式。
- **需要解压密码**:部分账单压缩包在导出时设置了密码,需在解析时输入。
- **部分行不可导入**:可能是金额/时间字段无法解析,或该交易号已存在。
- **重复导入**:同一账单重复导入时,已存在的交易会被跳过。
## 筛选与 AI 智能查询
**常用筛选**:类型、分类(含「未分类」)、日期范围、备注关键字、交易渠道。交易渠道下拉包含内置渠道与账号下的[自定义渠道](/guide/channels)。
**更多筛选**:标签(含「无标签」)、计入统计、金额区间。
启用 AI 后,顶部会出现「**AI 搜索**」入口,点击打开一个**可拖拽、可缩放的浮窗**(非模态,打开后仍可继续操作主界面)。在浮窗中用自然语言查询,例如:
- 「上个月餐饮」
- 「超过500的支出」
- 「待报销的支出」
- 「微信支付」
浮窗输入框支持多行,按 `Ctrl + Enter`(Mac 为 `⌘ + Enter`)提交;解析结果会直接应用为筛选条件并立即查询。浮窗的位置与大小会被记住,输入时还能快速选择历史提问。筛选条件与每页条数、排序方式会自动记忆,下次进入自动还原。
![AI 查询浮窗](https://adcarac.oss-cn-beijing.aliyuncs.com/finance-app-docs/screenshots/elements/ai-query-window.png)
## 表格与行操作
表格展示:交易时间、类型、分类、金额、交易渠道、备注、标签、计入统计开关、关系与操作。
- **备注隐藏**:可将敏感备注持久隐藏为 `******`,需要时临时「查看」或「取消隐藏」。默认这些记录会从列表与 Excel 导出中排除,可在[设置 → 外观设置](/guide/settings#外观设置)中开启「显示已隐藏备注的记录」。
- **计入统计**:行内开关可直接切换;关闭后该记录不纳入月度统计(适合借款、转账等),行内会以删除线标示(样式可在外观设置中调整)。
- **关系**:展示该记录所属[账单关系](/guide/relations)组的数量,点击可查看与管理。
- **行操作**:编辑、详情、删除。
### 账单详情
点击行内「**详情**」打开「账单详情」弹窗,集中展示单条账单的以下信息:
- **基本信息**:类型、金额、分类、交易渠道、交易时间、是否计入统计、备注与创建时间。
- **标签**:该记录的全部标签。
- **账单关系**:所属的[账单关系](/guide/relations)组,可在弹窗内直接新建。
- **来源图片**:图片记账生成的记录会展示其来源截图,默认加载缩略图,可按需点「加载原图」查看原图。
- **原始数据**:账单导入或图片记账时保留的原始字段(以 JSON 展示),用于核对金额、交易状态、对方账号、交易类型等明细。
![账单详情弹窗](https://adcarac.oss-cn-beijing.aliyuncs.com/finance-app-docs/screenshots/elements/bill-detail.png)
> - **账单导入**记录保留原始账单行字段;**图片记账**记录保留模型从截图提取的原始字段;**手动新增**的记录没有来源图片与原始数据。
> - 原始数据是排查导入异常、核对账单的重要依据。
分页的每页条数**候选与默认值在[设置 → 外观设置](/guide/settings#外观设置)中统一配置**(默认候选 10 / 20 / 50 / 100,默认 20);各表格会分别记住上次选择的每页条数。
## 一键设置(批量设置)
在列表右上角点「一键设置」,对**勾选的记录**批量设置;若未勾选任何记录,则作用于**当前表格展示的全部记录**:
![一键设置弹窗](https://adcarac.oss-cn-beijing.aliyuncs.com/finance-app-docs/screenshots/elements/batch-set.png)
- 设置支出分类 / 收入分类。
- 设置是否计入统计。
- 添加标签 / 移除标签。
- 启用 AI 时,可选择建议范围(分类与标签 / 仅分类 / 仅标签)并点击「AI 智能建议」,由 AI 生成建议后进入 AI 建议弹窗。
## AI 建议弹窗
展示每条记录的建议分类、建议标签与理由,默认全选,可逐条取消。若建议中包含系统中不存在的分类或标签,会以「新建」标记,确认后自动创建。应用后分类会被覆盖、标签会被追加。
## AI 智能记账
「智能记账」弹窗提供**文字记账**与**图片记账**两种方式。
![AI 智能记账弹窗](https://adcarac.oss-cn-beijing.aliyuncs.com/finance-app-docs/screenshots/elements/ai-record.png)
- **文字记账**:用一句话描述一笔收支,例如「昨天中午吃饭 35 支付宝」,AI 会解析为类型、金额、分类、交易渠道、时间、备注、标签等字段,并预填到新增记录表单,确认后保存。
- **图片记账**:上传一至多张账单或支付截图(也可 `Ctrl+V` 粘贴),AI 实时识别其中的每一笔交易,生成可编辑的记录列表,勾选后批量导入。
再次打开弹窗会记住上次使用的记账方式。图片记账的用法与限制详见 [AI 能力 → 图片记账](/guide/ai#图片记账)。
## 手动添加记录
1. 在收支记录页右上角点击「**新增记录**」。
2. 在弹窗中填写表单:
| 字段 | 说明 |
|---|---|
| 类型 | 支出 / 收入 |
| 分类 | 新增时必填;可点右侧「新建分类」直接创建 |
| 金额 | 大于 0 |
| 交易渠道 | 可选,含内置渠道与[自定义渠道](/guide/channels);可点右侧「新建渠道」直接创建;启用 AI 时可一键推荐或新建 |
| 交易时间 | 默认当前时间 |
| 备注 | 可选 |
| 标签 | 可选,可多选;可点右侧「新建标签」直接创建 |
| 计入统计 | 默认开启;关闭后不纳入统计 |
3. 点击「确定」保存。
![新增记录弹窗](https://adcarac.oss-cn-beijing.aliyuncs.com/finance-app-docs/screenshots/elements/add-record.png)
::: tip 记账时直接新建分类 / 标签 / 渠道
新增与编辑弹窗中,**分类**、**标签**、**交易渠道** 三行在选择框右侧各有一个「**新建分类 / 新建标签 / 新建渠道**」按钮,**不受 AI 启用状态影响**,随时可用。点击后弹出精简表单,创建完成即自动填入当前账单:
- **新建分类**:填写名称、类型(默认跟随当前账单类型)与图标;创建后自动选中,并把账单类型同步为该分类的类型。
- **新建标签**:填写名称与颜色;创建后自动追加到已选标签。
- **新建渠道**:填写名称;创建后自动选中。
![记账弹窗内新建分类](https://adcarac.oss-cn-beijing.aliyuncs.com/finance-app-docs/screenshots/elements/record-new-category.png)
:::
## 编辑记录
在记录行点击「编辑」即可修改记录,弹窗字段与新增一致;编辑时允许不设置分类。
![编辑记录弹窗](https://adcarac.oss-cn-beijing.aliyuncs.com/finance-app-docs/screenshots/elements/edit-record.png)
### 编辑时的 AI 辅助
启用 AI 后,编辑弹窗中的**分类**、**标签**与**交易渠道**旁会出现 AI 辅助按钮(与新增记录一致):
| 按钮 | 作用 |
|---|---|
| 分类 · **AI 推荐** | 根据当前类型、金额、交易渠道、备注,从已有分类中推荐并填入 |
| 分类 · **AI 新建** | 根据当前账单信息生成新分类;确认「保存并选用」后创建并选中,若已存在同名同类型分类则直接选中 |
| 标签 · **AI 推荐** | 推荐已有标签并追加(自动去重) |
| 标签 · **AI 新建** | 生成新标签(含建议颜色),确认后创建并选中;同名标签直接选中 |
| 渠道 · **AI 推荐** | 根据当前类型、金额、渠道、备注,从已有渠道中推荐并填入 |
| 渠道 · **AI 新建** | 生成新渠道名称;确认「保存并选用」后创建并选中,同名渠道直接选中 |
![编辑记录中的渠道 AI 辅助](https://adcarac.oss-cn-beijing.aliyuncs.com/finance-app-docs/screenshots/elements/ai-channel-suggest.png)
> 「AI 新建」需先填写备注或金额,便于模型理解;生成结果会显示确认条,点击「保存并选用」才真正创建。
>
> 上述 AI 辅助按钮仅在[启用 AI](/guide/ai)后出现;**分类、标签、交易渠道三行始终各有一个手动「新建」按钮**(不受 AI 状态影响),可直接填写并创建,详见[手动添加记录](#手动添加记录)中的说明。
编辑完成后点击「确定」保存。其他 AI 能力(批量建议、智能记账、智能查询)见 [AI 能力](/guide/ai)。
::: tip 计入统计
「计入统计」用于区分真实消费与资金流转,建议**按账单来源**设置,避免多来源重复统计:
- **微信、支付宝**来源:默认**计入**(除非有特殊情况)。
- **其他**来源(银行、美团、淘宝、京东等):默认**不计入**——这些渠道的扣款往往最终走微信/支付宝,重复计入会导致统计翻倍。
- **例外**:工资、奖金等明确收入应计入。
此外,借款、信用卡还款、账户间转账等资金流转也建议关闭该开关,避免统计失真。
:::