huangxw пре 5 месеци
родитељ
комит
e4f4ab1357

BIN
src/assets/images/file-type-sub/csv.png


BIN
src/assets/images/file-type-sub/def.png


BIN
src/assets/images/file-type-sub/doc.png


BIN
src/assets/images/file-type-sub/jpg.png


BIN
src/assets/images/file-type-sub/pdf.png


BIN
src/assets/images/file-type-sub/png.png


BIN
src/assets/images/file-type-sub/ppt.png


BIN
src/assets/images/file-type-sub/txt.png


BIN
src/assets/images/file-type-sub/xlsx.png


BIN
src/assets/images/file-type-sub/zip.png


+ 29 - 0
src/utils/models.ts

@@ -73,3 +73,32 @@ export const formatOrigin = (adcdCodeDesc: any, nationTypeDesc: any) => {
         return nationTypeDesc || '-';
     }
 };
+
+// 根据传入url获取文件后缀名,根据文件后缀名返回相应的图片icon
+export const getFileIconByUrl = (url: string) => {
+    const fileExtension = url.substring(url.lastIndexOf('.') + 1).toLowerCase();
+    const iconMap: Record<string, string> = {
+        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]}.png`; // 默认图标
+};

+ 1 - 4
src/views/authority/authority-input/index.vue

@@ -232,10 +232,7 @@ const getExpertDetail = async () => {
     if (route.query?.id) {
         const res = await expertPersonDetail(route.query.id);
         if (!res || res.code !== 200) return;
-        form.value = {
-            ...res.data,
-            attachment: res.data.attachments
-        };
+        form.value = res.data
     }
 };
 onMounted(() => {

+ 4 - 3
src/views/authority/models/ExpertInfo.vue

@@ -34,16 +34,17 @@
             </el-descriptions>
         </div>
         <div class="jianjie">
+            <div class="f-s-14 c-#303133 mb-10">简介:</div>
             <div v-html="props.info?.brief"></div>
         </div>
 
         <div class="pt-30">
-            <div v-if="props.info?.attachments?.length" class="flex1 pt-20">
+            <div v-if="props.info?.attachment?.length" class="flex1 pt-20">
                 <div class="c-333 mb-10">附件:</div>
-                <FileLook v-model="props.info.attachments" :span="6"></FileLook>
+                <FileLook v-model="props.info.attachment" :span="6"></FileLook>
             </div>
             <div v-if="info?.images" class="flex1 pt-20">
-                <div class="c-333 mb-10">附件:</div>
+                <div class="c-333 mb-10">图片:</div>
                 <div class="d-flex flex-w">
                     <template v-for="(item, index) in info?.images.split(',')" :key="index">
                         <ImagePreview class="mr-20" :src="item" width="120px" height="120px"></ImagePreview>

+ 2 - 1
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>
@@ -27,6 +27,7 @@
 import { download } from '@/utils/request';
 import { propTypes } from '@/utils/propTypes';
 import { changeByte } from '@/utils/ruoyi';
+import { getFileIconByUrl } from '@/utils/models';
 
 const props = defineProps({
     modelValue: [String, Object, Array],

+ 6 - 6
src/views/training/meeting/index.vue

@@ -37,11 +37,11 @@
                 <div class="flex1 ov-hd">
                     <vxe-table :loading="loading" border :data="dataList" min-height="0" max-height="100%">
                         <vxe-column title="序号" align="center" type="seq" width="50" />
-                        <vxe-column field="trainingName" title="会议名称" :formatter="colNoData" min-width="150" class-name="f-w-5" />
-                        <vxe-column field="trainingTime" min-width="130" title="会议时间" class-name="f-w-5">
+                        <vxe-column field="trainingName" title="会议名称" :formatter="colNoData" min-width="150" class-name="f-w-600" />
+                        <vxe-column field="trainingTime" min-width="130" title="会议时间" class-name="f-w-600">
                             <template #default="{ row }">{{ row.trainingStart }}~{{ row.trainingEnd }}</template>
                         </vxe-column>
-                        <vxe-column field="signupsTime" min-width="130" title="报名时间" class-name="f-w-5">
+                        <vxe-column field="signupsTime" min-width="130" title="报名时间" class-name="f-w-600">
                             <template #default="{ row }">{{ row.signupStart }}~{{ row.signupEnd }}</template>
                         </vxe-column>
                         <vxe-column field="joinType" title="会议方式" width="80">
@@ -55,9 +55,9 @@
                                 {{ selectDictLabel(yes_no, row.certFlag) }}
                             </template>
                         </vxe-column>
-                        <vxe-column field="joinCount" title="报名人数" width="60" class-name="f-w-5" />
-                        <vxe-column field="signCount" title="签到人数" width="60" class-name="f-w-5" />
-                        <vxe-column field="waitCount" title="待审核人数" width="60" class-name="f-w-5" />
+                        <vxe-column field="joinCount" title="报名人数" width="60" class-name="f-w-600" />
+                        <vxe-column field="signCount" title="签到人数" width="60" class-name="f-w-600" />
+                        <vxe-column field="waitCount" title="待审核人数" width="60" class-name="f-w-600" />
                         <vxe-column field="certCount" title="领取证书人数" width="80" />
                         <vxe-column field="certFlag" title="会议状态" width="80">
                             <template #default="{ row }">