Files
ledgerly/frontend
rosercode 524fa52908 feat: 规则支持一键应用到匹配账单,AI 规则建议可编辑并实时去重
本次为分类与标签规则补充两项能力:规则管理页可一键把规则的分类与标签应用到其命中的全部历史账单(先预览命中账单再确认,分类覆盖、标签追加);AI 生成的规则建议支持在弹窗内完整编辑名称、类型、关键词、金额区间、分类与标签,编辑后由后端实时重算重复标记并自动调整勾选,同时把「同时应用到勾选账单」默认开启并记入本机偏好。

变更内容:
- 后端新增 `POST /api/rule/apply-preview` 与 `POST /api/rule/apply`(`RuleService.previewApply` / `applyToMatchedTransactions`):按规则条件匹配全部历史账单并预览命中明细,应用时分类覆盖、标签追加,新增 DTO `RuleApplyRequest` 与 VO `RuleApplyPreviewVO` / `RuleApplyResultVO` / `RuleMatchedTransactionVO`。
- 后端新增 `POST /api/ai/rule/check-duplicates`(`AiRuleService.checkDuplicates`):纯本地复用规则签名逻辑,返回编辑后逐条重复标记,新增 DTO `AiRuleDuplicateCheckRequest`。
- 前端新增 `RuleApplyPreviewModal.vue`(命中账单预览与一键应用)与共享组件 `AiRuleEditorTable.vue`(完整编辑 + 编辑后防抖去重重算 + 重复项自动增删勾选),`RuleManage.vue` 与 `AiRuleSuggestModal.vue` 统一改用该编辑表。
- 规则管理页新增行内「应用」按钮与勾选规则后的「应用匹配账单」批量入口;收支记录页「同时应用到勾选账单」默认开启并经偏好 `ledgerly.transaction.aiRuleApplyToSelection` 持久化。
- 补充 `frontend/src/api/rule.ts`、`frontend/src/api/ai.ts` 接口封装与 `locales/messages.ts` 中英日文案。

说明:
- `apply-preview` / `apply` 与 `check-duplicates` 均为本地匹配、不调用大模型、不外发敏感数据,去重签名口径与匹配逻辑保持一致。
- 未改动数据库表结构。
- 一次应用命中较多账单时预览明细最多展示 500 条,应用仍作用于全部命中。
2026-10-13 23:44:47 +08:00
..
2026-08-30 14:36:22 +08:00
2026-08-30 14:36:22 +08:00
2026-08-30 14:36:22 +08:00

Vue 3 + TypeScript + Vite

This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 <script setup> SFCs, check out the script setup docs to learn more.

Learn more about the recommended Project Setup and IDE Support in the Vue Docs TypeScript Guide.