Template
1
0
mirror of https://github.com/un-pany/v3-admin-vite.git synced 2025-04-20 10:59:21 +08:00

refactor: 优化权限示例页面 UI

This commit is contained in:
pany 2024-11-28 14:44:27 +08:00
parent d3b09be774
commit 97030fa04b
3 changed files with 37 additions and 46 deletions

View File

@ -12,16 +12,21 @@ watch(switchRoles, (value) => {
</script>
<template>
<div>
<div>你的角色{{ userStore.roles }}</div>
<el-card shadow="never">
<div>
<span>你的角色</span>
<el-tag v-for="(role, index) in userStore.roles" :key="index" effect="plain" size="large">
{{ role }}
</el-tag>
</div>
<div class="switch-roles">
<span>切换用户模拟重新登录</span>
<span>切换用户</span>
<el-radio-group v-model="switchRoles">
<el-radio-button label="editor" value="editor" />
<el-radio-button label="admin" value="admin" />
</el-radio-group>
</div>
</div>
</el-card>
</template>
<style lang="scss" scoped>

View File

@ -6,51 +6,37 @@ import SwitchRoles from "./components/SwitchRoles.vue"
<template>
<div class="app-container">
<SwitchRoles />
<!-- v-permission 示例 -->
<div class="margin-top-30">
<div>
<el-tag v-permission="['admin']" type="success" size="large" effect="plain">
这里采用了 v-permission="['admin']" 所以只有 admin 可以看见这句话
</el-tag>
</div>
<div>
<el-tag v-permission="['editor']" type="success" size="large" effect="plain">
这里采用了 v-permission="['editor']" 所以只有 editor 可以看见这句话
</el-tag>
</div>
<div class="margin-top-15">
<el-tag v-permission="['admin', 'editor']" type="success" size="large" effect="plain">
这里采用了 v-permission="['admin', 'editor']" 所以 admin editor 都可以看见这句话
</el-tag>
</div>
</div>
<!-- checkPermission 示例 -->
<div class="margin-top-30">
<el-tag type="warning" size="large">
例如 Element Plus el-tab-pane el-table-column 以及其它动态渲染 Dom 的场景不适合使用
v-permission这种情况下你可以通过 v-if checkPermission 来实现
</el-tag>
<el-tabs type="border-card" class="margin-top-15">
<el-card header="权限指令 v-permission 示例" shadow="never" class="margin-top-20">
<el-button v-permission="['admin']">
admin
</el-button>
<el-button v-permission="['admin', 'editor']">
admin editor
</el-button>
</el-card>
<el-card header="权限函数 checkPermission 示例" shadow="never" class="margin-top-20">
<el-text type="warning" size="large">
Element Plus el-tab-pane el-table-column 以及其它动态渲染 DOM 的场景不适合使用 v-permission
这种情况下你可以通过 v-if + checkPermission 来实现
</el-text>
<el-tabs type="border-card" class="margin-top-20">
<el-tab-pane v-if="checkPermission(['admin'])" label="admin">
这里采用了 <el-tag>v-if="checkPermission(['admin'])"</el-tag> 所以只有 admin 可以看见这句话
</el-tab-pane>
<el-tab-pane v-if="checkPermission(['editor'])" label="editor">
这里采用了 <el-tag>v-if="checkPermission(['editor'])"</el-tag> 所以只有 editor 可以看见这句话
<el-tag size="large">
v-if="checkPermission(['admin'])"
</el-tag>
</el-tab-pane>
<el-tab-pane v-if="checkPermission(['admin', 'editor'])" label="admin 和 editor">
这里采用了 <el-tag>v-if="checkPermission(['admin', 'editor'])"</el-tag> 所以 admin editor 都可以看见这句话
<el-tag size="large">
v-if="checkPermission(['admin', 'editor'])"
</el-tag>
</el-tab-pane>
</el-tabs>
</div>
</el-card>
</div>
</template>
<style lang="scss" scoped>
.margin-top-15 {
margin-top: 15px;
}
.margin-top-30 {
margin-top: 30px;
.margin-top-20 {
margin-top: 20px;
}
</style>

View File

@ -5,14 +5,14 @@ import SwitchRoles from "./components/SwitchRoles.vue"
<template>
<div class="app-container">
<SwitchRoles />
<el-tag type="warning" size="large">
当前页面只有 admin 角色可见切换角色后将不能进入该页面
</el-tag>
<el-card shadow="never" class="content">
当前页面只有Admin角色可见切换角色后将不能进入该页面
</el-card>
</div>
</template>
<style lang="scss" scoped>
.el-tag {
margin-top: 15px;
.content {
margin-top: 20px;
}
</style>