imgPreview.vue 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <script setup lang="ts">
  2. import { tableDataImage } from "./data";
  3. const columns: TableColumnList = [
  4. {
  5. label: "日期",
  6. prop: "date"
  7. },
  8. {
  9. label: "姓名",
  10. prop: "name"
  11. },
  12. {
  13. label: "地址",
  14. prop: "address"
  15. },
  16. {
  17. label: "视频",
  18. slot: "video"
  19. },
  20. {
  21. label: "图像",
  22. slot: "image"
  23. }
  24. ];
  25. </script>
  26. <template>
  27. <pure-table :data="tableDataImage" :columns="columns">
  28. <template #video>
  29. <video
  30. width="180"
  31. height="180"
  32. controls
  33. muted
  34. poster="http://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/byted-player-videos/1.0.0/poster.jpg"
  35. >
  36. <source
  37. src="http://lf3-static.bytednsdoc.com/obj/eden-cn/nupenuvpxnuvo/xgplayer_doc/xgplayer-demo.mp4"
  38. type="video/mp4"
  39. />
  40. </video>
  41. </template>
  42. <template #image="{ row, index }">
  43. <el-image
  44. preview-teleported
  45. loading="lazy"
  46. :src="row.image"
  47. :preview-src-list="tableDataImage.map(v => v.image)"
  48. :initial-index="index"
  49. fit="cover"
  50. class="w-[100px] h-[100px]"
  51. />
  52. </template>
  53. </pure-table>
  54. </template>