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:
parent
d3b09be774
commit
97030fa04b
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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>
|
||||
|
Loading…
x
Reference in New Issue
Block a user