123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <script setup lang="ts">
- import { initRouter } from "@/router/utils";
- import { storageLocal } from "@pureadmin/utils";
- import { type CSSProperties, ref, computed } from "vue";
- import { useUserStoreHook } from "@/store/modules/user";
- import { usePermissionStoreHook } from "@/store/modules/permission";
- defineOptions({
- name: "PermissionPage"
- });
- const elStyle = computed((): CSSProperties => {
- return {
- width: "85vw",
- justifyContent: "start"
- };
- });
- const username = ref(useUserStoreHook()?.username);
- const options = [
- {
- value: "admin",
- label: "管理员角色"
- },
- {
- value: "common",
- label: "普通角色"
- }
- ];
- function onChange() {
- useUserStoreHook()
- .loginByUsername({ username: username.value, password: "admin123" })
- .then(res => {
- if (res.success) {
- storageLocal().removeItem("async-routes");
- usePermissionStoreHook().clearAllCachePage();
- initRouter();
- }
- });
- }
- </script>
- <template>
- <el-space direction="vertical" size="large">
- <el-tag :style="elStyle" size="large" effect="dark">
- 模拟后台根据不同角色返回对应路由,观察左侧菜单变化(管理员角色可查看系统管理菜单、普通角色不可查看系统管理菜单)
- </el-tag>
- <el-card shadow="never" :style="elStyle">
- <template #header>
- <div class="card-header">
- <span>当前角色:{{ username }}</span>
- </div>
- </template>
- <el-select v-model="username" @change="onChange">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- </el-card>
- </el-space>
- </template>
|