diff options
| author | zyh <[email protected]> | 2024-09-11 10:21:44 +0800 |
|---|---|---|
| committer | zyh <[email protected]> | 2024-09-11 10:21:44 +0800 |
| commit | 3b88d43ae3dd7f052b30eba39d49d4ae594abe71 (patch) | |
| tree | 45a2a070ed24868772d6045bffa8ad7dccb2f5cc /src | |
| parent | dab936fed29cda391f5d8bf38f3c1f0bd4247d3c (diff) | |
fix: 修改切换workspace刷新页面 删除leftMenu无用代码
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/layout/index.vue | 24 | ||||
| -rw-r--r-- | src/components/layout/layoutHeader.vue | 16 | ||||
| -rw-r--r-- | src/components/layout/leftMenu.vue | 32 | ||||
| -rw-r--r-- | src/utils/index.js | 6 | ||||
| -rw-r--r-- | src/views/workspaces/members/index.vue | 13 |
5 files changed, 40 insertions, 51 deletions
diff --git a/src/components/layout/index.vue b/src/components/layout/index.vue index 81b4fd0..1a04b9b 100644 --- a/src/components/layout/index.vue +++ b/src/components/layout/index.vue @@ -1,18 +1,20 @@ <template> <div id="layout"> <layout-header - @refresh="reload" + @refresh="refresh" + @refreshStart="refreshStart" + @refreshEnd="refreshEnd" @goBackWorkspace="goBackWorkspace" @gotoUserManage="gotoUserManage" ></layout-header> <div id="layout-container"> <left-menu - @refresh="reload" + @refresh="refresh" :isUserManage="isUserManage" v-show="showMenu" ></left-menu> <div class="pageContent" :class="currentRoute.name + '-page'"> - <router-view v-if="isReload" @refresh="reload"></router-view> + <router-view v-if="isRefresh"></router-view> </div> </div> </div> @@ -25,13 +27,21 @@ import leftMenu from '@/components/layout/leftMenu.vue'; import { isAdministrator, goHome } from '@/utils/index'; import { useRouter } from 'vue-router'; -const isReload = ref(true); +const isRefresh = ref(true); let isUserManage = ref(false); -const reload = () => { - isReload.value = false; +const refresh = () => { + isRefresh.value = false; nextTick(() => { - isReload.value = true; + isRefresh.value = true; + }); +}; +const refreshStart = () => { + isRefresh.value = false; +}; +const refreshEnd = () => { + nextTick(() => { + isRefresh.value = true; }); }; diff --git a/src/components/layout/layoutHeader.vue b/src/components/layout/layoutHeader.vue index 68f5c99..0f4c766 100644 --- a/src/components/layout/layoutHeader.vue +++ b/src/components/layout/layoutHeader.vue @@ -153,7 +153,12 @@ import mitter from '@/utils/mitter'; const router = useRouter(); -const emit = defineEmits(['refresh', 'goBackWorkspace', 'gotoUserManage']); +const emit = defineEmits([ + 'refreshStart', + 'refreshEnd', + 'goBackWorkspace', + 'gotoUserManage', +]); const { t } = useI18n(); const systemStore = useSystemStore(); @@ -176,15 +181,16 @@ const desktopEnd = () => { }; // 切换workspace -const workspaceChange = (id) => { +const workspaceChange = async (id) => { if (id != workspace.value.id) { const data = permissions.value.find((item) => item.workspace.id == id); setWorkspace(data); - // 刷新页面 否则v-has自定义指令不更新 - emit('refresh'); + emit('refreshStart'); // 切换workspace跳转到首页 - goHome(); + await goHome(); + // 刷新页面 否则v-has自定义指令不更新 + emit('refreshEnd'); } }; diff --git a/src/components/layout/leftMenu.vue b/src/components/layout/leftMenu.vue index 6c0b54e..b6c5c92 100644 --- a/src/components/layout/leftMenu.vue +++ b/src/components/layout/leftMenu.vue @@ -24,8 +24,7 @@ import { useRouter } from 'vue-router'; import { toRefs, ref, watch, computed } from 'vue'; import { useI18n } from 'vue-i18n'; import { useSystemStore } from '@/store/index'; -import { userMenus } from '@/utils/constants' -import { isAdministrator } from '@/utils/index'; +import { userMenus } from '@/utils/constants'; const props = defineProps({ test: { @@ -33,7 +32,7 @@ const props = defineProps({ }, isUserManage: { type: Boolean, - default: false + default: false, }, }); @@ -48,13 +47,14 @@ const workspace = computed(() => { return systemStore.workspace; }); -const currentRoute = computed(()=>{ - return router.currentRoute.value -}) +const currentRoute = computed(() => { + return router.currentRoute.value; +}); const jummp = (name) => { if (name === currentRoute.value.name) { emit('refresh'); + return; } router.push({ name: name, @@ -64,29 +64,13 @@ const jummp = (name) => { }); }; -const userInfo = ref({}); let menus = computed(() => { - if(props.isUserManage) { - return userMenus + if (props.isUserManage) { + return userMenus; } else { return systemStore.menus; } }); - -watch( - () => router.currentRoute.value, - (value) => { - if(isAdministrator && (router.currentRoute.value.path === '/users' - || router.currentRoute.value.path.startsWith('/users/'))) { - props.isUserManage = true; - menus = userMenus - } else { - props.isUserManage = false; - menus = systemStore.menus; - } - }, - { immediate: true } -); </script> <style lang="scss" scoped> diff --git a/src/utils/index.js b/src/utils/index.js index 4b2513e..42810ae 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -24,17 +24,17 @@ export const logoutClear = () => { }; // 跳转到首页 -export const goHome = () => { +export const goHome = async () => { const systemStore = useSystemStore(); const routeName = get(systemStore, 'menus.0.name', ''); const workspace = get(systemStore, 'workspace.name', ''); - router.push({ + await router.push({ name: routeName, params: { workspace: workspace, }, - }); + }) }; export function hash(str, lenHash = 32) { diff --git a/src/views/workspaces/members/index.vue b/src/views/workspaces/members/index.vue index 1a94346..c0a4710 100644 --- a/src/views/workspaces/members/index.vue +++ b/src/views/workspaces/members/index.vue @@ -457,7 +457,7 @@ const submit = async () => { if (res && res.code == 200) { isInviteMembers.value = false; - jumpBack(); + fetchList(); ElMessage.success(t('message.save_success')); } else { ElMessage.error(res.msg || res.error); @@ -468,17 +468,6 @@ const submit = async () => { submitting.value = false; }; -const emit = defineEmits(['refresh']); -const jumpBack = () => { - emit('refresh'); - router.push({ - name: 'workspace_members', - params: { - workspace: workspace.value.name, - }, - }); -}; - // 用户信息 const userInfo = ref({}); onBeforeMount(() => { |
