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>