|
@@ -45,12 +45,16 @@
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
import { useAppStore } from '@/stores/modules/app'
|
|
import { useAppStore } from '@/stores/modules/app'
|
|
import { advertiserListAdvertiser } from '@/api/advertiser/index'
|
|
import { advertiserListAdvertiser } from '@/api/advertiser/index'
|
|
|
|
+import { toRaw } from 'vue';
|
|
|
|
+import { Router, RouteRecordRaw } from 'vue-router';
|
|
import Notification from './notification.vue'
|
|
import Notification from './notification.vue'
|
|
import MenuSearch from './menuSearch.vue'
|
|
import MenuSearch from './menuSearch.vue'
|
|
import MenuSelect from './menuSelect.vue'
|
|
import MenuSelect from './menuSelect.vue'
|
|
import { useUserStore } from '@/stores/modules/user/index'
|
|
import { useUserStore } from '@/stores/modules/user/index'
|
|
|
|
+import { usePermissionsStore } from '@/stores/modules/user/permissions';
|
|
import Cache from '@/support/cache';
|
|
import Cache from '@/support/cache';
|
|
-import router from '@/router'
|
|
|
|
|
|
+import { Menu } from '@/types/Menu';
|
|
|
|
+// import router from '@/router'
|
|
const store = useAppStore()
|
|
const store = useAppStore()
|
|
const miniPrograms = ref([])
|
|
const miniPrograms = ref([])
|
|
const navData = ref({})
|
|
const navData = ref({})
|
|
@@ -58,6 +62,7 @@ const navDataArr = ref([])
|
|
const searchMenuVisiable = ref(false)
|
|
const searchMenuVisiable = ref(false)
|
|
const isAdverDisabled = ref(false)
|
|
const isAdverDisabled = ref(false)
|
|
const userStore = useUserStore()
|
|
const userStore = useUserStore()
|
|
|
|
+const router = useRouter()
|
|
const adverChange = (e) => {
|
|
const adverChange = (e) => {
|
|
console.log(e, 'userStore', userStore.roles, navData.value, 'navData.value');
|
|
console.log(e, 'userStore', userStore.roles, navData.value, 'navData.value');
|
|
navData.value.app = ''
|
|
navData.value.app = ''
|
|
@@ -110,6 +115,27 @@ const initPer = () => {
|
|
userStore.setStatus(status);
|
|
userStore.setStatus(status);
|
|
userStore.setAvatar(avatar);
|
|
userStore.setAvatar(avatar);
|
|
userStore.setPermissions(permissions);
|
|
userStore.setPermissions(permissions);
|
|
|
|
+
|
|
|
|
+ // 挂载路由(实际是从后端获取用户的权限)
|
|
|
|
+ // 动态路由挂载
|
|
|
|
+ // 挂载路由(实际是从后端获取用户的权限)
|
|
|
|
+ const timer = setTimeout(() => {
|
|
|
|
+ const permissionStore = usePermissionsStore();
|
|
|
|
+ const asyncRoutes = permissionStore.getAsyncMenusFrom(
|
|
|
|
+ toRaw(userStore.getPermissions),
|
|
|
|
+ true
|
|
|
|
+ );
|
|
|
|
+ asyncRoutes.forEach((route: Menu) => {
|
|
|
|
+ router.addRoute(route as unknown as RouteRecordRaw);
|
|
|
|
+ });
|
|
|
|
+ // 在动态路由之后挂载匹配 404 路由
|
|
|
|
+ router.addRoute({
|
|
|
|
+ path: '/:pathMatch(.*)*',
|
|
|
|
+ redirect: '/404'
|
|
|
|
+ });
|
|
|
|
+ clearTimeout(timer)
|
|
|
|
+ }, 50);
|
|
|
|
+
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|