From ea47523c6f82e8fa3535ecfb908aab21ed5e05d6 Mon Sep 17 00:00:00 2001 From: xlsea Date: Thu, 5 Jun 2025 22:06:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=8F=9C=E5=8D=95=E7=BA=A7=E8=81=94?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=B0=E5=A2=9E=E5=88=A0=E9=99=A4=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/locales/langs/en-us.ts | 1 + src/locales/langs/zh-cn.ts | 1 + src/typings/app.d.ts | 1 + .../modules/menu-cascade-delete-modal.vue | 21 ++++++++++++++----- 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/locales/langs/en-us.ts b/src/locales/langs/en-us.ts index c884a79a..c2c4c9f5 100644 --- a/src/locales/langs/en-us.ts +++ b/src/locales/langs/en-us.ts @@ -591,6 +591,7 @@ const local: App.I18n.Schema = { buttonPermissionList: 'Button Permission List', emptyMenu: 'Empty Menu', menuDetail: 'Menu Detail', + cascadeDeleteContent: 'Cascade delete menu will delete the selected menu and all its sub-menus, are you sure?', iconifyTip: 'iconify address:`https://icones.js.org`', isFrameTip: 'If you choose External Link, the routing address needs to start with `http(s)://`', isCacheTip: diff --git a/src/locales/langs/zh-cn.ts b/src/locales/langs/zh-cn.ts index 0ab6341e..46b37507 100644 --- a/src/locales/langs/zh-cn.ts +++ b/src/locales/langs/zh-cn.ts @@ -591,6 +591,7 @@ const local: App.I18n.Schema = { buttonPermissionList: '按钮权限列表', emptyMenu: '暂无菜单', menuDetail: '菜单详情', + cascadeDeleteContent: '级联删除菜单将删除所选中的菜单,是否继续?', iconifyTip: 'iconify 地址:https://icones.js.org', isFrameTip: '选择是外链则路由地址需要以`http(s)://`开头', isCacheTip: '选择是则会被`keep-alive`缓存,需要匹配组件的`name`和地址保持一致', diff --git a/src/typings/app.d.ts b/src/typings/app.d.ts index 29415bb3..36c232c2 100644 --- a/src/typings/app.d.ts +++ b/src/typings/app.d.ts @@ -710,6 +710,7 @@ declare namespace App { buttonPermissionList: string; emptyMenu: string; menuDetail: string; + cascadeDeleteContent: string; iconifyTip: string; isFrameTip: string; isCacheTip: string; diff --git a/src/views/system/menu/modules/menu-cascade-delete-modal.vue b/src/views/system/menu/modules/menu-cascade-delete-modal.vue index 3f94a117..307f7550 100644 --- a/src/views/system/menu/modules/menu-cascade-delete-modal.vue +++ b/src/views/system/menu/modules/menu-cascade-delete-modal.vue @@ -56,11 +56,22 @@ function closeDrawer() { async function handleSubmit() { await validate(); - const { error } = await fetchCascadeDeleteMenu(model.menuIds); - if (error) return; - window.$message?.success($t('common.deleteSuccess')); - closeDrawer(); - emit('submitted'); + window.$dialog?.warning({ + title: $t('page.system.menu.cascadeDelete'), + content: $t('page.system.menu.cascadeDeleteContent'), + positiveText: $t('common.delete'), + positiveButtonProps: { + type: 'error' + }, + negativeText: $t('common.cancel'), + onPositiveClick: async () => { + const { error } = await fetchCascadeDeleteMenu(model.menuIds); + if (error) return; + window.$message?.success($t('common.deleteSuccess')); + closeDrawer(); + emit('submitted'); + } + }); } watch(visible, () => {