diff --git a/admin-frontend-vue/src/pages/account/user-delete-model.ts b/admin-frontend-vue/src/pages/account/user-delete-model.ts index acb393fc..7874cf54 100644 --- a/admin-frontend-vue/src/pages/account/user-delete-model.ts +++ b/admin-frontend-vue/src/pages/account/user-delete-model.ts @@ -1,10 +1,10 @@ /** 用户删除确认模型(任务 51):删除确认文案 + 不可删原因,镜像 Java deleteUser 约束。 */ import type { AdminUser } from '../../types/admin' -/** 删除二次确认文案(删除后不可恢复)。 */ +/** 删除二次确认文案(对齐 admin.js:970 原文:半角引号、无补充句)。 */ export function deleteConfirmMessage(user: AdminUser | null | undefined): string { const username = user?.username || '' - return `确定删除用户“${username}”吗?删除后不可恢复。` + return `确定删除用户 "${username}" 吗?` } /** 返回不可删除原因;可删除时返回 undefined。 */ diff --git a/admin-frontend-vue/src/pages/invalidasin/invalid-asin-model.ts b/admin-frontend-vue/src/pages/invalidasin/invalid-asin-model.ts index d3472f12..cb7d5fb9 100644 --- a/admin-frontend-vue/src/pages/invalidasin/invalid-asin-model.ts +++ b/admin-frontend-vue/src/pages/invalidasin/invalid-asin-model.ts @@ -38,10 +38,10 @@ export function recordSourceLabel(source: string | null | undefined): string { return (source || '').trim().toUpperCase() === 'MANUAL' ? '手动新增' : '自动导入' } -/** 删除二次确认文案。 */ +/** 删除二次确认文案(对齐 admin.js:3775 原文)。 */ export function invalidAsinDeleteText(item: Pick | null | undefined): string { const value = item?.dataValue || '该 ASIN' - return `确定删除不符合 ASIN“${value}”吗?删除后不可恢复。` + return `确定删除“${value}”吗?` } /** diff --git a/admin-frontend-vue/tests/align-delete-copy.test.ts b/admin-frontend-vue/tests/align-delete-copy.test.ts new file mode 100644 index 00000000..e241c97a --- /dev/null +++ b/admin-frontend-vue/tests/align-delete-copy.test.ts @@ -0,0 +1,15 @@ +import test from 'node:test' +import assert from 'node:assert/strict' +import { deleteConfirmMessage } from '../src/pages/account/user-delete-model.ts' +import { invalidAsinDeleteText } from '../src/pages/invalidasin/invalid-asin-model.ts' + +/** 对齐 admin.js:970/3775 删除确认原文。 */ + +test('align_user_delete_confirm_half_width_quotes_no_suffix', () => { + assert.equal(deleteConfirmMessage({ id: 1, username: 'demo', role: 'normal' }), '确定删除用户 "demo" 吗?') + assert.equal(deleteConfirmMessage({ id: 2, username: 'mgr', role: 'admin' }), '确定删除用户 "mgr" 吗?') +}) + +test('align_invalid_asin_delete_confirm', () => { + assert.equal(invalidAsinDeleteText({ dataValue: 'B0TEST' }), '确定删除“B0TEST”吗?') +}) diff --git a/admin-frontend-vue/tests/task-250.test.ts b/admin-frontend-vue/tests/task-250.test.ts index 243d05e5..5dd221c6 100644 --- a/admin-frontend-vue/tests/task-250.test.ts +++ b/admin-frontend-vue/tests/task-250.test.ts @@ -47,7 +47,7 @@ test('test_task_250_users_list_boundary_limit_or_missing_field', () => { // 边界上限:所属管理员筛选仅超管可见(非超管隐藏)。 const page = readSource('src/pages/account/UsersPage.vue') assert.match(page, /isSuperAdmin|super_admin|createdByAdminId/, '需按超管身份控制管理员筛选项') - assert.ok(deleteConfirmMessage({ id: 1, username: 'demo', role: 'normal' }).includes('确定删除用户“demo”吗?')) + assert.ok(deleteConfirmMessage({ id: 1, username: 'demo', role: 'normal' }).includes('确定删除用户 "demo" 吗?')) }) test('test_task_250_users_list_invalid_input_rejected', () => { diff --git a/admin-frontend-vue/tests/task-51.test.ts b/admin-frontend-vue/tests/task-51.test.ts index dd525485..d0a0ee70 100644 --- a/admin-frontend-vue/tests/task-51.test.ts +++ b/admin-frontend-vue/tests/task-51.test.ts @@ -15,7 +15,7 @@ test('test_task_051_user_delete_normal_primary_path', () => { test('test_task_051_user_delete_normal_variant_input', () => { // 正常变体:admin 角色用户亦可删除(仅超管/自己受限)。 assert.equal(isDeletableUser({ id: 4, username: 'mgr', role: 'admin' }, 1), true) - assert.equal(deleteConfirmMessage({ id: 4, username: 'mgr', role: 'admin' }), '确定删除用户“mgr”吗?删除后不可恢复。') + assert.equal(deleteConfirmMessage({ id: 4, username: 'mgr', role: 'admin' }), '确定删除用户 "mgr" 吗?') }) test('test_task_051_user_delete_normal_repeated_operation_is_idempotent', () => {