From ea6ad9ddc3d5b33897e93276282245f7023836ff Mon Sep 17 00:00:00 2001 From: spring <2396852758@qq.com> Date: 星期四, 28 八月 2025 17:45:28 +0800 Subject: [PATCH] 大数据市场分析 --- src/components/PIMTable/PIMTable.vue | 76 +++++++++++++++++++------------------ 1 files changed, 39 insertions(+), 37 deletions(-) diff --git a/src/components/PIMTable/PIMTable.vue b/src/components/PIMTable/PIMTable.vue index 955173d..985ab54 100644 --- a/src/components/PIMTable/PIMTable.vue +++ b/src/components/PIMTable/PIMTable.vue @@ -40,7 +40,7 @@ :fixed="item.fixed" :label="item.label" :prop="item.prop" - show-overflow-tooltip + :show-overflow-tooltip="item.dataType !== 'multiTagLink'" :align="item.align" :sortable="!!item.sortable" :type="item.type" @@ -80,43 +80,22 @@ style="width: 40px; height: 40px; margin-top: 10px" /> </div> - - <!-- tag --> - <div v-else-if="item.dataType == 'tag'"> - <el-tag - v-if=" - typeof dataTypeFn(scope.row[item.prop], item.formatData) === - 'string' - " - :title="formatters(scope.row[item.prop], item.formatData)" - :type="formatType(scope.row[item.prop], item.formatType)" + <div v-else-if="item.dataType === 'multiTagLink'"> + <el-tooltip + v-for="(file, index) in dataTypeFnArray(scope.row[item.prop], item.formatData)" + :key="index" + :content="file.name" + effect="dark" + placement="top" > - {{ formatters(scope.row[item.prop], item.formatData) }} - </el-tag> - - <el-tag - v-for="(tag, index) in dataTypeFn( - scope.row[item.prop], - item.formatData - )" - v-else-if=" - typeof dataTypeFn(scope.row[item.prop], item.formatData) === - 'object' - " - :key="index" - :title="formatters(scope.row[item.prop], item.formatData)" - :type="formatType(tag, item.formatType)" - > - {{ item.tagGroup ? tag[item.tagGroup.label] ?? tag : tag }} - </el-tag> - - <el-tag - v-else - :title="formatters(scope.row[item.prop], item.formatData)" - :type="formatType(scope.row[item.prop], item.formatType)" - > - {{ formatters(scope.row[item.prop], item.formatData) }} - </el-tag> + <el-tag + type="info" + style="margin-right: 4px;margin-top: 4px; cursor: pointer;" + @click="downloadFile(file)" + > + {{ truncateName(file.name, 5) }} + </el-tag> + </el-tooltip> </div> <!-- 鎸夐挳 --> @@ -351,6 +330,29 @@ return format(val); } else return val; }; +const dataTypeFnArray = (val, format) => { + if (!val) return []; + if (typeof format === "function") { + return format(val); + } + // 淇濊瘉杩斿洖鐨勬槸鏁扮粍 + return Array.isArray(val) ? val : []; +}; + +const truncateName = (name, length = 5) => { + if (!name) return ''; + return name.length > length ? name.slice(0, length) + '...' : name; +}; + + +const downloadFile = (file) => { + const link = document.createElement("a"); + link.href = file.url; + // 璁剧疆涓嬭浇鏂囦欢鍚嶄负 file.name + link.download = file.name; + link.click(); +}; + const formatType = (val, format) => { if (typeof format === "function") { -- Gitblit v1.9.3