Commit ed30f06ae128163342c029ec4da1b551933a34d0
1 parent
71d4c5ad
feat: xtable增加预览功能
Showing
3 changed files
with
36 additions
and
1 deletions
yudao-ui-admin-vue3/src/plugins/vxeTable/renderer/index.tsx
yudao-ui-admin-vue3/src/plugins/vxeTable/renderer/preview.tsx
0 → 100644
| 1 | +import { VXETable } from 'vxe-table' | |
| 2 | +import { ElImage, ElLink } from 'element-plus' | |
| 3 | + | |
| 4 | +// 图片渲染 | |
| 5 | +VXETable.renderer.add('XPreview', { | |
| 6 | + // 默认显示模板 | |
| 7 | + renderDefault(_renderOpts, params) { | |
| 8 | + const { row, column } = params | |
| 9 | + if (row.type.indexOf('image/') === 0) { | |
| 10 | + return ( | |
| 11 | + <ElImage | |
| 12 | + style="width: 80px; height: 50px" | |
| 13 | + src={row[column.field]} | |
| 14 | + key={row[column.field]} | |
| 15 | + preview-src-list={[row[column.field]]} | |
| 16 | + fit="contain" | |
| 17 | + lazy | |
| 18 | + ></ElImage> | |
| 19 | + ) | |
| 20 | + } else if (row.type.indexOf('video/') === 0) { | |
| 21 | + return ( | |
| 22 | + <video> | |
| 23 | + <source src={row[column.field]}></source> | |
| 24 | + </video> | |
| 25 | + ) | |
| 26 | + } else { | |
| 27 | + return ( | |
| 28 | + <ElLink href={row[column.field]} target="_blank"> | |
| 29 | + {row[column.field]} | |
| 30 | + </ElLink> | |
| 31 | + ) | |
| 32 | + } | |
| 33 | + } | |
| 34 | +}) | ... | ... |