Card.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <template>
  2. <v-card
  3. elevation="2"
  4. outlined
  5. shaped
  6. min-height="200"
  7. >
  8. <v-card-title>
  9. <slot name="card.title"></slot>
  10. </v-card-title>
  11. <v-card-text>
  12. <slot name="card.text"></slot>
  13. </v-card-text>
  14. <v-card-actions>
  15. <v-spacer></v-spacer>
  16. <v-btn icon>
  17. <NuxtLink :to="link" class="no-decoration"><v-icon>mdi-pencil</v-icon></NuxtLink>
  18. </v-btn>
  19. <UiButtonDelete :deleteArgs="args"></UiButtonDelete>
  20. <slot name="card.action"></slot>
  21. </v-card-actions>
  22. </v-card>
  23. </template>
  24. <script lang="ts">
  25. import {defineComponent} from '@nuxtjs/composition-api'
  26. import {QUERY_TYPE} from "~/types/enums";
  27. import {DataDeleterArgs} from "~/types/interfaces";
  28. export default defineComponent({
  29. props: {
  30. link:{
  31. type: String,
  32. required: true
  33. },
  34. model:{
  35. type: Function,
  36. required: true
  37. },
  38. id:{
  39. type: Number,
  40. required: true
  41. }
  42. },
  43. setup(props) {
  44. const args: DataDeleterArgs = {
  45. type: QUERY_TYPE.MODEL,
  46. model: props.model,
  47. id: props.id
  48. }
  49. return {
  50. args
  51. }
  52. }
  53. })
  54. </script>
  55. <style scoped>
  56. </style>