index.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <template>
  2. <!-- 筛选 -->
  3. <div>筛选</div>
  4. <v-divider class="my-3"></v-divider>
  5. <!-- 实习报告 -->
  6. <div>
  7. <div v-for="item in items" :key="item.date" class="mb-3">
  8. <div class="title-date">{{ item.date }}</div>
  9. <div class="d-flex flex-wrap">
  10. <img
  11. v-for="(src, index) in item.arr"
  12. :key="index"
  13. :src="src"
  14. @click="handlePreview(item.arr, index)"
  15. class="cursor-pointer"
  16. style="width: 200px; height: 250px;"
  17. />
  18. </div>
  19. </div>
  20. </div>
  21. </template>
  22. <script setup>
  23. defineOptions({ name: 'InternshipReport' })
  24. import { ref } from 'vue'
  25. import { usePersonCenterStore } from '@/store/personCenter'
  26. const items = ref([
  27. {
  28. date: '2025-02-21',
  29. arr: [
  30. 'https://minio.citupro.com/dev/huomiao/report.png',
  31. 'https://minio.citupro.com/dev/huomiao/report1.png',
  32. 'https://minio.citupro.com/dev/huomiao/report2.png'
  33. ]
  34. },
  35. {
  36. date: '2025-02-25',
  37. arr: [
  38. 'https://minio.citupro.com/dev/huomiao/report.png',
  39. 'https://minio.citupro.com/dev/huomiao/report1.png',
  40. 'https://minio.citupro.com/dev/huomiao/report2.png'
  41. ]
  42. },
  43. {
  44. date: '2025-03-01',
  45. arr: [
  46. 'https://minio.citupro.com/dev/huomiao/report.png',
  47. 'https://minio.citupro.com/dev/huomiao/report1.png',
  48. 'https://minio.citupro.com/dev/huomiao/report2.png'
  49. ]
  50. }
  51. ])
  52. // 预览
  53. const personCenterStore = usePersonCenterStore()
  54. const handlePreview = (arr, index) => {
  55. personCenterStore.setPreviewData(arr, index)
  56. }
  57. </script>
  58. <style scoped lang="scss">
  59. .title-date {
  60. border-left: 5px solid var(--v-primary-base);
  61. padding-left: 12px;
  62. line-height: 17px;
  63. }
  64. </style>