preview.tsx 853 B

12345678910111213141516171819202122232425262728293031323334
  1. import { VXETable } from 'vxe-table'
  2. import { ElImage, ElLink } from 'element-plus'
  3. // 图片渲染
  4. VXETable.renderer.add('XPreview', {
  5. // 默认显示模板
  6. renderDefault(_renderOpts, params) {
  7. const { row, column } = params
  8. if (row.type.indexOf('image/') === 0) {
  9. return (
  10. <ElImage
  11. style="width: 80px; height: 50px"
  12. src={row[column.field]}
  13. key={row[column.field]}
  14. preview-src-list={[row[column.field]]}
  15. fit="contain"
  16. lazy
  17. ></ElImage>
  18. )
  19. } else if (row.type.indexOf('video/') === 0) {
  20. return (
  21. <video>
  22. <source src={row[column.field]}></source>
  23. </video>
  24. )
  25. } else {
  26. return (
  27. <ElLink href={row[column.field]} target="_blank">
  28. {row[column.field]}
  29. </ElLink>
  30. )
  31. }
  32. }
  33. })