Showing
1 changed file
with
35 additions
and
36 deletions
1 | -<script lang="ts" setup> | |
2 | - import { Icon } from '/@/components/Icon'; | |
3 | - import { computed, ExtractPropTypes, unref } from 'vue'; | |
4 | - import { usePermission } from '/@/hooks/web/usePermission'; | |
5 | - | |
6 | - interface AuthIconProps extends ExtractPropTypes<typeof Icon> { | |
7 | - auth?: string; | |
8 | - } | |
9 | - | |
10 | - const props = defineProps<AuthIconProps>(); | |
11 | - | |
12 | - const emit = defineEmits(['click']); | |
13 | - | |
14 | - const { hasPermission } = usePermission(); | |
15 | - | |
16 | - const getHasPermission = computed(() => { | |
17 | - const { auth } = props; | |
18 | - console.log(auth); | |
19 | - return auth ? hasPermission(auth) : true; | |
20 | - }); | |
21 | - | |
22 | - const getBindProps = computed(() => { | |
23 | - return { | |
24 | - ...props, | |
25 | - ...(unref(getHasPermission) ? { onClick: (event: Event) => emit('click', event) } : {}), | |
26 | - }; | |
27 | - }); | |
28 | -</script> | |
29 | - | |
30 | -<template> | |
31 | - <Icon | |
32 | - v-bind="getBindProps" | |
33 | - class="justify-center items-center" | |
34 | - :class="getHasPermission ? '' : '!cursor-not-allowed !text-gray-200'" | |
35 | - /> | |
36 | -</template> | |
1 | +<script lang="ts" setup> | |
2 | + import { Icon } from '/@/components/Icon'; | |
3 | + import { computed, ExtractPropTypes, unref } from 'vue'; | |
4 | + import { usePermission } from '/@/hooks/web/usePermission'; | |
5 | + | |
6 | + interface AuthIconProps extends ExtractPropTypes<typeof Icon> { | |
7 | + auth?: string; | |
8 | + } | |
9 | + | |
10 | + const props = defineProps<AuthIconProps>(); | |
11 | + | |
12 | + const emit = defineEmits(['click']); | |
13 | + | |
14 | + const { hasPermission } = usePermission(); | |
15 | + | |
16 | + const getHasPermission = computed(() => { | |
17 | + const { auth } = props; | |
18 | + return auth ? hasPermission(auth) : true; | |
19 | + }); | |
20 | + | |
21 | + const getBindProps = computed(() => { | |
22 | + return { | |
23 | + ...props, | |
24 | + ...(unref(getHasPermission) ? { onClick: (event: Event) => emit('click', event) } : {}), | |
25 | + }; | |
26 | + }); | |
27 | +</script> | |
28 | + | |
29 | +<template> | |
30 | + <Icon | |
31 | + v-bind="getBindProps" | |
32 | + class="justify-center items-center" | |
33 | + :class="getHasPermission ? '' : '!cursor-not-allowed !text-gray-200'" | |
34 | + /> | |
35 | +</template> | ... | ... |