From b3244137d60aec81664fcbec09cb473e3fd37a02 Mon Sep 17 00:00:00 2001 From: DaxPay Dev Date: Sat, 25 Jul 2026 10:58:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor(admin,merchant):=20=E5=95=86=E6=88=B7?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E5=88=A0=E9=99=A4=E5=8D=87=E7=BA=A7=E4=B8=BA?= =?UTF-8?q?=E5=BC=BA=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 两端 MchAppWorkbench.handleDelete 改用 useDeleteConfirm, 须输入应用名匹配并经最终确认方可执行; 设为默认/取消默认的普通二次确认保持不变 --- .../payment/merchant/app/MchAppWorkbench.vue | 22 ++++++++++--------- .../payment/merchant/app/MchAppWorkbench.vue | 18 ++++++++------- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/apps/daxpay-admin/src/views/payment/merchant/app/MchAppWorkbench.vue b/apps/daxpay-admin/src/views/payment/merchant/app/MchAppWorkbench.vue index 3f8d332a1..a98e3b90d 100644 --- a/apps/daxpay-admin/src/views/payment/merchant/app/MchAppWorkbench.vue +++ b/apps/daxpay-admin/src/views/payment/merchant/app/MchAppWorkbench.vue @@ -9,6 +9,7 @@ import { MchAppInfoApi, type MchAppInfoResult } from '#/api/payment/merchant/mch-app-info.api'; import RouteQueryMissingState from '#/components/route/RouteQueryMissingState.vue'; import { PermCodes } from '#/constants/perm-codes'; + import { useDeleteConfirm } from '#/hooks/useDeleteConfirm'; import { useMessage } from '#/hooks/useMessage'; import { usePermission } from '#/hooks/usePermission'; import { normalizeRouteQueryValue, useRequiredRouteQuery } from '#/hooks/useRequiredRouteQuery'; @@ -39,6 +40,7 @@ const route = useRoute(); const router = useRouter(); const { confirm, message } = useMessage(); + const { openDeleteConfirm } = useDeleteConfirm(); const { hasPermission } = usePermission(); const routeContext = useRequiredRouteQuery({ @@ -312,7 +314,7 @@ } /** - * 删除应用 + * 删除应用(强确认:须输入应用名称匹配) * * 默认应用禁止删除(与 MchAppInfoService.delete 后端校验对齐), * 需先把其他应用设为默认, 再删除当前应用。 @@ -322,15 +324,15 @@ message.warning($t('payment.merchant.app.app.deleteDefaultBlocked')); return; } - confirm({ - content: $t('payment.merchant.app.app.confirmDelete'), - onOk() { - return MchAppInfoApi.delete(appInfo.value.id!).then(() => { - message.success($t('common.operationSuccess')); - router.push({ - path: '/payment/merchant/app', - query: { mchNo: mchNo.value }, - }); + openDeleteConfirm({ + name: appInfo.value.appName || '', + verificationText: appInfo.value.appName || '', + onConfirm: async () => { + await MchAppInfoApi.delete(appInfo.value.id!); + message.success($t('common.operationSuccess')); + router.push({ + path: '/payment/merchant/app', + query: { mchNo: mchNo.value }, }); }, }); diff --git a/apps/daxpay-merchant/src/views/payment/merchant/app/MchAppWorkbench.vue b/apps/daxpay-merchant/src/views/payment/merchant/app/MchAppWorkbench.vue index bd2082580..618130054 100644 --- a/apps/daxpay-merchant/src/views/payment/merchant/app/MchAppWorkbench.vue +++ b/apps/daxpay-merchant/src/views/payment/merchant/app/MchAppWorkbench.vue @@ -9,6 +9,7 @@ import { MchAppInfoApi, type MchAppInfoResult } from '#/api/payment/merchant/mch-app-info.api'; import RouteQueryMissingState from '#/components/route/RouteQueryMissingState.vue'; import { PermCodes } from '#/constants/perm-codes'; + import { useDeleteConfirm } from '#/hooks/useDeleteConfirm'; import { useMessage } from '#/hooks/useMessage'; import { usePermission } from '#/hooks/usePermission'; import { useRequiredRouteQuery } from '#/hooks/useRequiredRouteQuery'; @@ -38,6 +39,7 @@ const router = useRouter(); const { confirm, message } = useMessage(); + const { openDeleteConfirm } = useDeleteConfirm(); const { hasPermission } = usePermission(); // 商户端无 mchNo URL 维度,仅校验 appId @@ -299,7 +301,7 @@ } /** - * 删除应用 + * 删除应用(强确认:须输入应用名称匹配) * * 默认应用禁止删除(与 MchAppInfoService.delete 后端校验对齐), * 需先把其他应用设为默认, 再删除当前应用。 @@ -309,13 +311,13 @@ message.warning($t('payment.merchant.app.app.deleteDefaultBlocked')); return; } - confirm({ - content: $t('payment.merchant.app.app.confirmDelete'), - onOk() { - return MchAppInfoApi.delete(appInfo.value.id!).then(() => { - message.success($t('common.operationSuccess')); - router.push('/mch/app'); - }); + openDeleteConfirm({ + name: appInfo.value.appName || '', + verificationText: appInfo.value.appName || '', + onConfirm: async () => { + await MchAppInfoApi.delete(appInfo.value.id!); + message.success($t('common.operationSuccess')); + router.push('/mch/app'); }, }); }