From 51e3e72bd14598f98fe2e98af2b24905d0419a17 Mon Sep 17 00:00:00 2001 From: guochunsi <1595020186@qq.com> Date: Wed, 4 Feb 2026 16:33:56 +0800 Subject: [PATCH] a --- .../navBars/breadcrumb/asyncTaskDrawer.vue | 150 ++++++++++++++++++ src/layout/navBars/breadcrumb/user.vue | 34 +++- src/views/admin/system/role/change-role.vue | 68 +++++--- 3 files changed, 222 insertions(+), 30 deletions(-) create mode 100644 src/layout/navBars/breadcrumb/asyncTaskDrawer.vue diff --git a/src/layout/navBars/breadcrumb/asyncTaskDrawer.vue b/src/layout/navBars/breadcrumb/asyncTaskDrawer.vue new file mode 100644 index 0000000..268c33f --- /dev/null +++ b/src/layout/navBars/breadcrumb/asyncTaskDrawer.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/src/layout/navBars/breadcrumb/user.vue b/src/layout/navBars/breadcrumb/user.vue index 4bd1c7c..576c6bd 100644 --- a/src/layout/navBars/breadcrumb/user.vue +++ b/src/layout/navBars/breadcrumb/user.vue @@ -1,6 +1,6 @@ @@ -95,8 +101,10 @@ import { fetchUserMessageList } from '/@/api/admin/message'; import {useFlowJob} from "/@/flow/stores/flowJob"; -const ChangeRoleRef=ref() +const ChangeRoleRef = ref() const ChangeRole = defineAsyncComponent(() => import('/@/views/admin/system/role/change-role.vue')) +const asyncTaskDrawerRef = ref() +const AsyncTaskDrawer = defineAsyncComponent(() => import('/@/layout/navBars/breadcrumb/asyncTaskDrawer.vue')) // 引入组件 const GlobalWebsocket = defineAsyncComponent(() => import('/@/components/Websocket/index.vue')); const UserNews = defineAsyncComponent(() => import('/@/layout/navBars/breadcrumb/userNews.vue')); @@ -207,6 +215,10 @@ const onHandleCommandClick = (path: string) => { const onSearchClick = () => { searchRef.value.openSearch(); }; +// 上传/下载任务点击 +const onAsyncTaskClick = () => { + asyncTaskDrawerRef.value?.open(); +}; // 语言切换 const onLanguageChange = (lang: string) => { Local.remove('themeConfig'); @@ -241,15 +253,25 @@ const getIsDot = () => { }); }; +// 登录后若存储中无角色信息则弹出角色切换框 +const openChangeRoleIfMissing = () => { + const hasRole = Local.get('roleCode') && Local.get('roleName') && Local.get('roleId') + if (!hasRole) { + nextTick(() => { + setTimeout(() => ChangeRoleRef.value?.open(), 100) + }) + } +} + // 页面加载时 onMounted(() => { if (Local.get('themeConfig')) { initI18nOrSize('globalComponentSize', 'disabledSize'); initI18nOrSize('globalI18n', 'disabledI18n'); } - useFlowJob().topJobList() - - getIsDot(); + useFlowJob().topJobList() + getIsDot() + openChangeRoleIfMissing() }); diff --git a/src/views/admin/system/role/change-role.vue b/src/views/admin/system/role/change-role.vue index a8f1a8e..25b4087 100644 --- a/src/views/admin/system/role/change-role.vue +++ b/src/views/admin/system/role/change-role.vue @@ -1,5 +1,13 @@