MediaCategory.vue 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <template>
  2. <div class="MediaCategory">
  3. <div class="title">
  4. <q-icon :name="icon"
  5. size="19px" />
  6. {{ title }}
  7. </div>
  8. <div class="media-list row q-col-gutter-md">
  9. <div v-for="media in medias.list"
  10. :key="media.id"
  11. class="media-item col-md-3 col-sm-6 col-12">
  12. <media-item :media="media"
  13. @onView="onView(media)"
  14. @onDelete="onDelete(media)" />
  15. </div>
  16. </div>
  17. </div>
  18. </template>
  19. <script>
  20. import { MediaList } from 'src/models/Media.js'
  21. import MediaItem from 'src/components/FormBuilderCustumComponents/ContentMedias/MediaItem.vue'
  22. export default {
  23. name: 'MediaCategory',
  24. components: { MediaItem },
  25. props: {
  26. medias: {
  27. type: MediaList,
  28. default: new MediaList()
  29. },
  30. title: {
  31. type: String,
  32. default: ''
  33. },
  34. icon: {
  35. type: String,
  36. default: ''
  37. }
  38. },
  39. emits: ['update:value'],
  40. data () {
  41. return {
  42. entityCreateLoading: false
  43. }
  44. },
  45. methods: {
  46. onView (media) {
  47. this.$emit('onView', media)
  48. },
  49. onDelete (media) {
  50. this.$emit('onDelete', media)
  51. }
  52. }
  53. }
  54. </script>
  55. <style lang="scss" scoped>
  56. .MediaCategory {
  57. .title {
  58. font-size: 16px;
  59. letter-spacing: 0;
  60. color: #212121;
  61. margin-bottom: 26px;
  62. .q-icon {
  63. margin-left: 9px;
  64. }
  65. }
  66. }
  67. </style>