index.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <script setup lang="ts">
  2. import { hasAuth, getAuths } from "@/router/utils";
  3. defineOptions({
  4. name: "PermissionButtonRouter"
  5. });
  6. </script>
  7. <template>
  8. <div>
  9. <p class="mb-2!">当前拥有的code列表:{{ getAuths() }}</p>
  10. <el-card shadow="never" class="mb-2">
  11. <template #header>
  12. <div class="card-header">组件方式判断权限</div>
  13. <el-link
  14. class="mt-2"
  15. href="https://github.com/pure-admin/vue-pure-admin/blob/main/src/views/permission/button/index.vue"
  16. target="_blank"
  17. >
  18. 代码位置 src/views/permission/button/index.vue
  19. </el-link>
  20. </template>
  21. <el-space wrap>
  22. <Auth value="permission:btn:add">
  23. <el-button plain type="warning">
  24. 拥有code:'permission:btn:add' 权限可见
  25. </el-button>
  26. </Auth>
  27. <Auth :value="['permission:btn:edit']">
  28. <el-button plain type="primary">
  29. 拥有code:['permission:btn:edit'] 权限可见
  30. </el-button>
  31. </Auth>
  32. <Auth
  33. :value="[
  34. 'permission:btn:add',
  35. 'permission:btn:edit',
  36. 'permission:btn:delete'
  37. ]"
  38. >
  39. <el-button plain type="danger">
  40. 拥有code:['permission:btn:add', 'permission:btn:edit',
  41. 'permission:btn:delete'] 权限可见
  42. </el-button>
  43. </Auth>
  44. </el-space>
  45. </el-card>
  46. <el-card shadow="never" class="mb-2">
  47. <template #header>
  48. <div class="card-header">函数方式判断权限</div>
  49. </template>
  50. <el-space wrap>
  51. <el-button v-if="hasAuth('permission:btn:add')" plain type="warning">
  52. 拥有code:'permission:btn:add' 权限可见
  53. </el-button>
  54. <el-button v-if="hasAuth(['permission:btn:edit'])" plain type="primary">
  55. 拥有code:['permission:btn:edit'] 权限可见
  56. </el-button>
  57. <el-button
  58. v-if="
  59. hasAuth([
  60. 'permission:btn:add',
  61. 'permission:btn:edit',
  62. 'permission:btn:delete'
  63. ])
  64. "
  65. plain
  66. type="danger"
  67. >
  68. 拥有code:['permission:btn:add', 'permission:btn:edit',
  69. 'permission:btn:delete'] 权限可见
  70. </el-button>
  71. </el-space>
  72. </el-card>
  73. <el-card shadow="never">
  74. <template #header>
  75. <div class="card-header">
  76. 指令方式判断权限(该方式不能动态修改权限)
  77. </div>
  78. </template>
  79. <el-space wrap>
  80. <el-button v-auth="'permission:btn:add'" plain type="warning">
  81. 拥有code:'permission:btn:add' 权限可见
  82. </el-button>
  83. <el-button v-auth="['permission:btn:edit']" plain type="primary">
  84. 拥有code:['permission:btn:edit'] 权限可见
  85. </el-button>
  86. <el-button
  87. v-auth="[
  88. 'permission:btn:add',
  89. 'permission:btn:edit',
  90. 'permission:btn:delete'
  91. ]"
  92. plain
  93. type="danger"
  94. >
  95. 拥有code:['permission:btn:add', 'permission:btn:edit',
  96. 'permission:btn:delete'] 权限可见
  97. </el-button>
  98. </el-space>
  99. </el-card>
  100. </div>
  101. </template>