summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzyh <[email protected]>2024-09-11 10:21:44 +0800
committerzyh <[email protected]>2024-09-11 10:21:44 +0800
commit3b88d43ae3dd7f052b30eba39d49d4ae594abe71 (patch)
tree45a2a070ed24868772d6045bffa8ad7dccb2f5cc /src
parentdab936fed29cda391f5d8bf38f3c1f0bd4247d3c (diff)
fix: 修改切换workspace刷新页面 删除leftMenu无用代码
Diffstat (limited to 'src')
-rw-r--r--src/components/layout/index.vue24
-rw-r--r--src/components/layout/layoutHeader.vue16
-rw-r--r--src/components/layout/leftMenu.vue32
-rw-r--r--src/utils/index.js6
-rw-r--r--src/views/workspaces/members/index.vue13
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(() => {