前端将图片储存table表格中,页面回显

html 复制代码
   <el-table :data="tableData" v-loading="loading" style="width: 100%" height="calc(100vh - 270px)" :size="tableSize"
        @row-dblclick="enterClick">
        <el-table-column prop="name" label="文档名称" show-overflow-tooltip v-if="checkedCities.indexOf(0) !== -1" width="300"
          align="left">
          <template #default="scope">
            <span>
              <img :src="scope.row.icon" alt="" style="width: 18px;">
              {{ scope.row.name }}
            </span>
          </template>
        </el-table-column>
  </el-table>
javascript 复制代码
let iconList: any = [
  {
    suffix: '.xls',
    icon: '/src/assets/fileImg/xls(1).png'
  },
  {
    suffix: '.xlsx',
    icon: '/src/assets/fileImg/xls(1).png'
  },
  {
    suffix: '.pdf',
    icon: '/src/assets/fileImg/PDF.png'
  },
  {
    suffix: '.dll',
    icon: '/src/assets/fileImg/dll.png'
  },
  {
    suffix: '.vue',
    icon: '/src/assets/fileImg/Vue(1).png'
  },
  {
    suffix: '.html',
    icon: '/src/assets/fileImg/HTML(1).png'
  },
  {
    suffix: '.txt',
    icon: '/src/assets/fileImg/txt.png'
  },
  {
    suffix: '.docx',
    icon: '/src/assets/fileImg/docx_doc.png'
  },
  {
    suffix: '.json',
    icon: '/src/assets/fileImg/JSON.png'
  },
  {
    suffix: '.png',
    icon: '/src/assets/fileImg/png.png'
  }
]

    // 初始化表格数据
const getTableData = async () => {
  try {
    loading.value = true
    const res = await getFileList()
    //根据字段类型排序
    const sortedData = computed(() => {
      return res.slice().sort((a: any, b: any) => a.documentType - b.documentType);
    });

    for (let i = 0; i < sortedData.value.length; i++) {
      let suffix = sortedData.value[i].fileSuffix;
      let documentType = sortedData.value[i].documentType;
      for (let j = 0; j < iconList.length; j++) {
        if (iconList[j].suffix === suffix) {
          sortedData.value[i].icon = iconList[j].icon;
          break;
        } else if (iconList[j].suffix !== suffix && documentType === 2) {
          sortedData.value[i].icon = '/src/assets/fileImg/txt.png';
        } else if (documentType === 1) {
          sortedData.value[i].icon = '/src/assets/fileImg/file.png';
        }
      }
    }
    tableData = sortedData.value
    loading.value = false
  } catch {
    loading.value = true
  }
}
相关推荐
yume_sibai8 分钟前
大屏数据可视化 - 边框红绿呼吸灯实现详解
前端·信息可视化·typescript
竹林81821 分钟前
从 ethers.js 迁移到 Viem:一个签名验证 Bug 让我彻底放弃旧爱
javascript
Hyyy34 分钟前
很多Desktop都在上的Computer Use是什么
前端·llm
慢功夫35 分钟前
开篇:VS Code 为什么不是一个普通 React App
前端·visual studio code
你挚爱的强哥1 小时前
Vue2 实现 1.5s 十连击监听(连续点击若干次),封装通用可复用点击检测工具,不用 data!Vue 封装通用连击监听方法,支持自定义时长与点击次数
前端·javascript·vue.js
半个落月1 小时前
用 LangChain.js 手写一个能读写文件和执行命令的 Mini Cursor
javascript·人工智能·后端
天外天-亮1 小时前
HBuilder X 使用 uview-plus 方式
开发语言·javascript·hbuilder x·uview-plus
huashengzsj1 小时前
Shopify个人建站如何搭建独立站:从零开始的完整指南
前端·网络·人工智能
程序猿小泓2 小时前
从 Claude Code 学 Agent Harness:一个前端工程师的 AI Agent 学习笔记
前端·人工智能·学习
柒和远方2 小时前
从审计日志到可下载证据包:事务型 Outbox、租约 fencing 与保留水位
前端·后端·架构