2020-10-14 20:27:20 +00:00
|
|
|
<template>
|
2020-11-06 00:17:04 +00:00
|
|
|
<q-btn flat dense :icon="icon" :to="{ name: link }" v-if="isGranted" />
|
2020-10-14 20:27:20 +00:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts">
|
2021-01-30 03:16:17 +00:00
|
|
|
import { computed, defineComponent } from 'vue';
|
2020-11-24 17:42:43 +00:00
|
|
|
import { hasPermissions } from 'src/utils/permission';
|
2020-10-31 20:30:02 +00:00
|
|
|
|
2020-10-14 20:27:20 +00:00
|
|
|
export default defineComponent({
|
|
|
|
name: 'ShortCutLink',
|
|
|
|
props: {
|
|
|
|
link: {
|
|
|
|
required: true,
|
2021-03-18 16:23:57 +00:00
|
|
|
type: String,
|
2020-10-14 20:27:20 +00:00
|
|
|
},
|
|
|
|
icon: {
|
|
|
|
required: true,
|
2021-03-18 16:23:57 +00:00
|
|
|
type: String,
|
2020-10-31 18:33:05 +00:00
|
|
|
},
|
|
|
|
permissions: {
|
2021-03-18 16:23:57 +00:00
|
|
|
default: undefined,
|
|
|
|
},
|
2020-10-31 18:33:05 +00:00
|
|
|
},
|
2021-01-30 05:19:43 +00:00
|
|
|
setup(props) {
|
|
|
|
const isGranted = computed(() => hasPermissions(props.permissions || []));
|
2020-11-06 00:17:04 +00:00
|
|
|
return { isGranted };
|
2021-03-18 16:23:57 +00:00
|
|
|
},
|
2020-10-14 20:27:20 +00:00
|
|
|
});
|
|
|
|
</script>
|