From 404dfd588ca780dbafea362880d185d3643ebf8b Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期四, 31 十月 2024 13:45:55 +0800
Subject: [PATCH] createTime

---
 src/components/chat/chatComponents/summaryCom/components/recordSetTable/RecordSetTable.vue |   40 +++++++++++++++++++++++++++++++---------
 1 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/src/components/chat/chatComponents/summaryCom/components/recordSetTable/RecordSetTable.vue b/src/components/chat/chatComponents/summaryCom/components/recordSetTable/RecordSetTable.vue
index 4c1d85b..2bcc031 100644
--- a/src/components/chat/chatComponents/summaryCom/components/recordSetTable/RecordSetTable.vue
+++ b/src/components/chat/chatComponents/summaryCom/components/recordSetTable/RecordSetTable.vue
@@ -26,7 +26,7 @@
 					:maxHeight="tableHeight"
 					:cell-style="tableCellStyle"
 					:header-cell-style="tableHeaderCellStyle"
-					:data="chunkTableData[pager.index - 1]"
+					:data="tableData"
 					@row-click="recordSelectChange"
 					:spanMethod="objectSpanMethod"
 					class="w-full h-full"
@@ -291,14 +291,13 @@
 		return values;
 	}
 
-	const groupData = _.groupBy(values, (item, index) => {
-		const groupValue = item[curGroupIndex];
-		return groupValue;
-	});
+
+
+	const groupData = getItemMap(values,curGroupIndex,true)
 	// 椤哄欢涓嬩竴涓垎缁�
 	i++;
 	// 閲嶆柊鎺掑竷涓�涓嬩綅缃紝淇濊瘉 group 鐩搁偦锛屽悓鏃舵墦涓� rowspan
-	const result = Object.values(groupData).reduce((preVal, curVal) => {
+	const result = Object.values(Array.from(groupData.values())).reduce((preVal, curVal) => {
 		curVal.map((item, index) => {
 			// 琛屽垪浣滀负 key
 			const key = `${j + index},${curGroupIndex}`;
@@ -309,6 +308,26 @@
 		j += curVal.length;
 		return preVal;
 	}, []);
+	return result;
+};
+
+ const getItemMap = <T>(arr: T[], defaultProps = 'ID', isMultiple = false) => {
+	if (!arr || arr.length === 0) return {};
+
+	const result = arr.reduce((acc, curr) => {
+		if (isMultiple) {
+			if (!acc.get(curr[defaultProps])) {
+				acc.set(curr[defaultProps], [curr]);
+			} else {
+				{/* acc[curr[defaultProps]].push(curr); */}
+				acc.get(curr[defaultProps]).push(curr);
+			}
+		} else {
+			acc.set(curr[defaultProps], curr);
+		}
+		return acc;
+	}, new Map()) as Map<string, T | T[]>;
+
 	return result;
 };
 
@@ -339,7 +358,8 @@
 	// 璁$畻姣忎竴鍒楁渶闀跨殑鏍囬瀛楃涓插拰鏍囬瀛楃涓查暱搴�
 	for (const item of tableValues.value) {
 		item.map((subItem, index) => {
-			const subItemLen = subItem?.gblen();
+			// subItem 鍙兘鏄� 鏁板瓧
+			const subItemLen = (subItem +'')?.gblen();
 			if (maxLenList[index] < subItemLen) {
 				maxLenList[index] = subItemLen;
 				maxStrList[index] = subItem;
@@ -419,7 +439,7 @@
 	}
 	if (tableCols.value.length > 0) {
 		cellRowSpanMap.clear();
-		tableValues.value = buildGroupData(tableValues.value);
+		// tableValues.value = buildGroupData(tableValues.value);
 		calcColWidth(width);
 		nextTick(() => {
 			calcPagerHeight();
@@ -503,11 +523,13 @@
 	tableRef.value.doLayout();
 
 	// pager.index = 1;
-	chunkTableData.value = _.chunk(tableValues.value ?? [], pager.size);
+	chunkTableData.value = (_.chunk(tableValues.value ?? [], pager.size));
 };
 
 //#endregion
 
+const tableData = computed(()=>buildGroupData(chunkTableData.value[pager.index - 1]))
+
 const reloadTable = () => {
 	// 閲嶆柊璁$畻瀹藉害
 

--
Gitblit v1.9.3