huangxw 4 minggu lalu
induk
melakukan
df9c4ce404
2 mengubah file dengan 31 tambahan dan 4 penghapusan
  1. 29 0
      src/utils/ruoyi.ts
  2. 2 4
      src/views/models/FileLook.vue

+ 29 - 0
src/utils/ruoyi.ts

@@ -328,3 +328,32 @@ export const formatDateRelative = (date: Date): string => {
         return '日期格式错误';
     }
 };
+
+// 根据传入url获取文件后缀名,根据文件后缀名返回相应的图片icon
+export const getFileIconByUrl = (url) => {
+    const fileExtension = url.substring(url.lastIndexOf('.') + 1).toLowerCase();
+    const iconMap = {
+        jpg: 'jpg',
+        jpeg: 'jpg',
+        png: 'png',
+        gif: 'jpg',
+        pdf: 'pdf',
+        doc: 'doc',
+        docx: 'doc',
+        xls: 'xlsx',
+        xlsx: 'xlsx',
+        txt: 'txt',
+        // 大写后缀映射
+        JPG: 'jpg',
+        JPEG: 'jpg',
+        PNG: 'png',
+        GIF: 'jpg',
+        PDF: 'pdf',
+        DOC: 'doc',
+        DOCX: 'doc',
+        XLS: 'xlsx',
+        XLSX: 'xlsx',
+        TXT: 'txt'
+    };
+    return `https://ta.zycpzs.cn/oss-file/smart-trace/szyy/images/file-type-sub/${iconMap?.[fileExtension] || 'def'}.png`; // 默认图标
+};

+ 2 - 4
src/views/models/FileLook.vue

@@ -4,7 +4,7 @@
             <el-col :span="span" v-for="(file, index) in fileList" :key="index">
                 <div class="upload-list-item">
                     <el-link class="flex1 right-item" :href="`${file.url}`" :underline="false" target="_blank">
-                        <img style="width: 36px; height: 36px;" class="mr5" src="@/assets/images/pdf_icon.png" alt="" />
+                        <img style="width: 36px; height: 36px;" class="mr5" :src="getFileIconByUrl(file.url)" alt="" />
                         <div>
                             <div class="item-text">{{ file.fileName }}</div>
                             <div v-if="file.fileSize" class="item-text">{{ changeByte(file.fileSize) }}</div>
@@ -26,7 +26,7 @@
 <script setup lang="ts">
 import { download } from '@/utils/request';
 import { propTypes } from '@/utils/propTypes';
-import { changeByte } from '@/utils/ruoyi';
+import { changeByte, getFileIconByUrl } from '@/utils/ruoyi';
 
 const props = defineProps({
     modelValue: [String, Object, Array],
@@ -57,8 +57,6 @@ watch(
 watch(
     () => props.value,
     async (val) => {
-        console.log(val);
-        
         if (val) {
             let list = [];
             if (Array.isArray(val)) {