Commit ed30f06ae128163342c029ec4da1b551933a34d0

Authored by xingyu
1 parent 71d4c5ad

feat: xtable增加预览功能

yudao-ui-admin-vue3/src/plugins/vxeTable/renderer/index.tsx
@@ -4,3 +4,4 @@ import './dict' @@ -4,3 +4,4 @@ import './dict'
4 import './html' 4 import './html'
5 import './link' 5 import './link'
6 import './img' 6 import './img'
  7 +import './preview'
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 +})
yudao-ui-admin-vue3/src/views/infra/fileList/fileList.data.ts
@@ -23,7 +23,7 @@ const crudSchemas = reactive&lt;VxeCrudSchema&gt;({ @@ -23,7 +23,7 @@ const crudSchemas = reactive&lt;VxeCrudSchema&gt;({
23 field: 'url', 23 field: 'url',
24 table: { 24 table: {
25 cellRender: { 25 cellRender: {
26 - name: 'XImg' 26 + name: 'XPreview'
27 } 27 }
28 } 28 }
29 }, 29 },