From 97030fa04b4502976b7a0f9700eca023a7dd3ad4 Mon Sep 17 00:00:00 2001 From: pany <939630029@qq.com> Date: Thu, 28 Nov 2024 14:44:27 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E6=9D=83?= =?UTF-8?q?=E9=99=90=E7=A4=BA=E4=BE=8B=E9=A1=B5=E9=9D=A2=20UI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../permission/components/SwitchRoles.vue | 13 ++-- src/pages/demo/permission/directive.vue | 60 +++++++------------ src/pages/demo/permission/page.vue | 10 ++-- 3 files changed, 37 insertions(+), 46 deletions(-) diff --git a/src/pages/demo/permission/components/SwitchRoles.vue b/src/pages/demo/permission/components/SwitchRoles.vue index c24c3ea..cc6338a 100644 --- a/src/pages/demo/permission/components/SwitchRoles.vue +++ b/src/pages/demo/permission/components/SwitchRoles.vue @@ -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> diff --git a/src/pages/demo/permission/directive.vue b/src/pages/demo/permission/directive.vue index 0ebfd1e..34c2b31 100644 --- a/src/pages/demo/permission/directive.vue +++ b/src/pages/demo/permission/directive.vue @@ -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> diff --git a/src/pages/demo/permission/page.vue b/src/pages/demo/permission/page.vue index e4907bc..4474602 100644 --- a/src/pages/demo/permission/page.vue +++ b/src/pages/demo/permission/page.vue @@ -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>