diff --git a/apps/web/src/views/EntryDetailView.vue b/apps/web/src/views/EntryDetailView.vue index 39e1458..d550db5 100644 --- a/apps/web/src/views/EntryDetailView.vue +++ b/apps/web/src/views/EntryDetailView.vue @@ -58,9 +58,6 @@ const selectedChild = computed(() => childCategories.value.find((category) => category.id === childCategoryId.value), ); const selectedCategory = computed(() => selectedChild.value ?? selectedParent.value); -const ledgerOptions = computed(() => - ledgerStore.ledgers.map((ledger) => ({ id: ledger.id, label: ledger.name })), -); const dateLabel = computed(() => { if (!occurredAt.value) return "请选择时间"; const date = new Date(occurredAt.value); @@ -77,11 +74,12 @@ const timeInvalid = computed(() => { if (!occurredAt.value) return true; return Number.isNaN(new Date(occurredAt.value).getTime()); }); -const ledgerLabel = computed(() => - ledgerIds.value.length === 1 - ? ledgerOptions.value.find((ledger) => ledger.id === ledgerIds.value[0])?.label ?? "未知账本" - : `${ledgerIds.value.length} 个账本`, +const linkedLedgerNames = computed(() => + ledgerStore.ledgers + .filter((ledger) => ledgerIds.value.includes(ledger.id)) + .map((ledger) => ledger.name), ); +const ledgerLabel = computed(() => linkedLedgerNames.value.join("、") || "未知账本"); const createdAtLabel = computed(() => { if (!entry.value) return ""; return new Intl.DateTimeFormat("zh-CN", { @@ -182,7 +180,10 @@ async function saveEntry() { } async function deleteEntry() { - if (!entry.value || !window.confirm("确定删除这笔条目吗?")) return; + if (!entry.value) return; + const count = ledgerIds.value.length; + const message = `确定从这笔账目关联的全部账本中删除吗?\n\n共 ${count} 个账本,删除后无法恢复。`; + if (!window.confirm(message)) return; await store.deleteEntry(entry.value.id); await router.replace("/"); } @@ -261,9 +262,9 @@ async function deleteEntry() { tabindex="-1" /> - @@ -289,7 +290,7 @@ async function deleteEntry() {
-