perf: 代码优化 views/permission
This commit is contained in:
parent
be75b2b118
commit
4d07d52b91
@ -2,8 +2,5 @@
|
||||
|
||||
.app-main {
|
||||
background-color: $theme-bg-color !important;
|
||||
// 指令权限页面 @/views/permission/directive.vue
|
||||
.permission-alert {
|
||||
background-color: lighten($theme-bg-color, 8%);
|
||||
}
|
||||
// 写在这里...
|
||||
}
|
||||
|
@ -13,52 +13,39 @@ const handleRolesChange = () => {
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<SwitchRoles @change="handleRolesChange" />
|
||||
<div :key="key" class="margin-top">
|
||||
<!-- v-permission 示例 -->
|
||||
<div :key="key" class="margin-top-30">
|
||||
<div>
|
||||
<span v-permission="['admin']" class="permission-alert">
|
||||
只有
|
||||
<el-tag>admin</el-tag>可以看见这个
|
||||
</span>
|
||||
<el-tag v-permission="['admin']" class="permission-code" type="info" size="large">
|
||||
v-permission="['admin']"
|
||||
<el-tag v-permission="['admin']" type="success" size="large" effect="plain">
|
||||
这里采用了 v-permission="['admin']" 所以只有 admin 可以看见这句话
|
||||
</el-tag>
|
||||
</div>
|
||||
<div>
|
||||
<span v-permission="['editor']" class="permission-alert">
|
||||
只有
|
||||
<el-tag>editor</el-tag>可以看见这个
|
||||
</span>
|
||||
<el-tag v-permission="['editor']" class="permission-code" type="info" size="large">
|
||||
v-permission="['editor']"
|
||||
<el-tag v-permission="['editor']" type="success" size="large" effect="plain">
|
||||
这里采用了 v-permission="['editor']" 所以只有 editor 可以看见这句话
|
||||
</el-tag>
|
||||
</div>
|
||||
<div>
|
||||
<span v-permission="['admin', 'editor']" class="permission-alert">
|
||||
两者
|
||||
<el-tag>admin</el-tag>和 <el-tag>editor</el-tag>都可以看见这个
|
||||
</span>
|
||||
<el-tag v-permission="['admin', 'editor']" class="permission-code" type="info" size="large">
|
||||
v-permission="['admin', 'editor']"
|
||||
<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>
|
||||
<div :key="'checkPermission' + key" class="margin-top">
|
||||
<el-tag type="info" size="large">
|
||||
在某些情况下,不适合使用 v-permission。例如: Element Plus 的 el-tab-pane 或 el-table-column 以及其它动态渲染 Dom
|
||||
的场景。你只能通过手动设置 v-if 来实现。
|
||||
<!-- checkPermission 示例 -->
|
||||
<div :key="`checkPermission${key}`" 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">
|
||||
<el-tabs type="border-card" class="margin-top-15">
|
||||
<el-tab-pane v-if="checkPermission(['admin'])" label="admin">
|
||||
admin 可以看见这个
|
||||
<el-tag class="permission-code" type="info"> v-if="checkPermission(['admin'])" </el-tag>
|
||||
这里采用了 <el-tag>v-if="checkPermission(['admin'])"</el-tag> 所以只有 admin 可以看见这句话
|
||||
</el-tab-pane>
|
||||
<el-tab-pane v-if="checkPermission(['editor'])" label="editor">
|
||||
editor 可以看见这个
|
||||
<el-tag class="permission-code" type="info"> v-if="checkPermission(['editor'])" </el-tag>
|
||||
这里采用了 <el-tag>v-if="checkPermission(['editor'])"</el-tag> 所以只有 editor 可以看见这句话
|
||||
</el-tab-pane>
|
||||
<el-tab-pane v-if="checkPermission(['admin', 'editor'])" label="admin 和 editor">
|
||||
两者 admin 和 editor 都可以看见这个
|
||||
<el-tag class="permission-code" type="info"> v-if="checkPermission(['admin', 'editor'])" </el-tag>
|
||||
这里采用了 <el-tag>v-if="checkPermission(['admin', 'editor'])"</el-tag> 所以 admin 和 editor 都可以看见这句话
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
@ -66,21 +53,10 @@ const handleRolesChange = () => {
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.permission-alert {
|
||||
width: 320px;
|
||||
.margin-top-15 {
|
||||
margin-top: 15px;
|
||||
background-color: #f0f9eb;
|
||||
color: #67c23a;
|
||||
padding: 8px 16px;
|
||||
border-radius: 4px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.permission-code {
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.margin-top {
|
||||
.margin-top-30 {
|
||||
margin-top: 30px;
|
||||
}
|
||||
</style>
|
||||
|
@ -10,13 +10,13 @@ const handleRolesChange = () => {
|
||||
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-tag type="success" size="large"> 当前页面只有 admin 权限可见 </el-tag>
|
||||
<SwitchRoles @change="handleRolesChange" />
|
||||
<el-tag type="warning" size="large">当前页面只有 admin 权限可见,切换权限后将不能进入该页面</el-tag>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.el-tag {
|
||||
margin-bottom: 15px;
|
||||
margin-top: 15px;
|
||||
}
|
||||
</style>
|
||||
|
Loading…
x
Reference in New Issue
Block a user