From 52b3b54470ecc3c80d816a9891b651ce7f5a0eaa Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期六, 11 十月 2025 13:39:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_NEW' into dev_NEW
---
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