diff --git a/web/src/lib/components/analysis/BillDetailDrawer.svelte b/web/src/lib/components/analysis/BillDetailDrawer.svelte index da790c1..b0564ad 100644 --- a/web/src/lib/components/analysis/BillDetailDrawer.svelte +++ b/web/src/lib/components/analysis/BillDetailDrawer.svelte @@ -25,7 +25,7 @@ interface Props { open?: boolean; record?: UIBill | null; - categories?: string[]; + categories?: readonly string[]; title?: string; viewDescription?: string; diff --git a/web/src/routes/bills/+page.svelte b/web/src/routes/bills/+page.svelte index a1567a6..e400c2f 100644 --- a/web/src/routes/bills/+page.svelte +++ b/web/src/routes/bills/+page.svelte @@ -14,6 +14,7 @@ import ManualBillInput from '$lib/components/bills/ManualBillInput.svelte'; import BillDetailDrawer from '$lib/components/analysis/BillDetailDrawer.svelte'; import { cleanedBillToUIBill, type UIBill } from '$lib/models/bill'; + import { categories } from '$lib/data/categories'; import { formatLocalDate, formatDateTime } from '$lib/utils'; import Loader2 from '@lucide/svelte/icons/loader-2'; import AlertCircle from '@lucide/svelte/icons/alert-circle'; @@ -89,12 +90,7 @@ applyFilters(); } - // 分类列表(硬编码常用分类) - const categories = [ - '餐饮美食', '交通出行', '生活服务', '日用百货', - '服饰美容', '医疗健康', '通讯话费', '住房缴费', - '文化娱乐', '金融理财', '教育培训', '人情往来', '其他' - ]; + async function loadBills() { isLoading = true; diff --git a/web/src/routes/review/+page.svelte b/web/src/routes/review/+page.svelte index 2244f23..da0a06a 100644 --- a/web/src/routes/review/+page.svelte +++ b/web/src/routes/review/+page.svelte @@ -8,6 +8,7 @@ import BillDetailDrawer from '$lib/components/analysis/BillDetailDrawer.svelte'; import { cleanedBillToUIBill, type UIBill } from '$lib/models/bill'; import { updateBill } from '$lib/api'; + import { categories } from '$lib/data/categories'; import Loader2 from '@lucide/svelte/icons/loader-2'; import AlertCircle from '@lucide/svelte/icons/alert-circle'; import AlertTriangle from '@lucide/svelte/icons/alert-triangle'; @@ -80,12 +81,7 @@ let drawerOpen = $state(false); let selectedBill = $state(null); - // 分类列表(用于编辑选择) - const categories = [ - '餐饮美食', '交通出行', '生活服务', '日用百货', - '服饰美容', '医疗健康', '通讯话费', '住房缴费', - '文化娱乐', '金融理财', '教育培训', '人情往来', '其他' - ]; + // 点击行打开详情 function handleRowClick(record: CleanedBill) {