From 1075860848d14e3d6d1506b91d9c9039433bf4cc Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期一, 03 三月 2025 17:40:13 +0800
Subject: [PATCH] 合并附件和业务表格

---
 src/components/chat/hooks/useLoadData.ts |   51 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 43 insertions(+), 8 deletions(-)

diff --git a/src/components/chat/hooks/useLoadData.ts b/src/components/chat/hooks/useLoadData.ts
index f7db954..ce793eb 100644
--- a/src/components/chat/hooks/useLoadData.ts
+++ b/src/components/chat/hooks/useLoadData.ts
@@ -108,6 +108,26 @@
 
 		return content;
 	};
+
+	/**
+	 * 鑾峰彇姝ラ缁勫垪琛�
+	 * @param reports
+	 * @returns
+	 */
+	const getStepGroupList = (reports: any[]) => {
+		const stepGroupList = (reports ?? []).map((item) => ({
+			value: convertProcessToStep(item?.exec_process),
+			isShow: false,
+		}));
+		/** @description 鍏ㄩ儴鏀惧埌绗竴涓� */
+		stepGroupList.map((item, index) => {
+			if (index !== 0) {
+				stepGroupList[0].value.push(...item.value);
+				item.value = [];
+			}
+		});
+		return stepGroupList;
+	};
 	const formatShowTimeYear = (str: string) => {
 		const date = moment(str);
 		const now = moment();
@@ -153,8 +173,8 @@
 			} as ChatMessage;
 		});
 		const resList = await Promise.all(
-			(userMsg ?? []).map((item) => {
-				userItemIdMap.set(item.history_id, item);
+			(userMsg ?? []).map((item, index) => {
+				userItemIdMap.set(index, item);
 				return getAnswerById(item.history_id);
 			})
 		);
@@ -164,25 +184,28 @@
 			const currentUserMsg = tmpMessageList[insertIndex - 1];
 			currentUserMsg.content.values = item?.answer?.question ?? currentUserMsg.content.values;
 
-			const mapUser = userItemIdMap.get(item.answer?.history_id);
+			const mapUser = userItemIdMap.get(index);
+			const historyId = mapUser?.history_id;
 
 			const answerTime = formatShowTimeYear(mapUser?.create_time);
+
 			tmpMessageList.splice(
 				insertIndex,
 				0,
 				item.answer === null
 					? null
 					: {
-							historyId: item.answer?.history_id,
+							historyId: historyId,
 							role: RoleEnum.assistant,
 							content: parseContent(item?.answer),
 							state: item.answer_state,
 							createTime: answerTime,
 							isStopMsg: false,
-							stepGroup: (item?.answer?.reports ?? []).map((item) => ({
-								value: convertProcessToStep(item?.exec_process),
-								isShow: false,
-							})),
+							// stepGroup: (item?.answer?.reports ?? []).map((item) => ({
+							// 	value: convertProcessToStep(item?.exec_process),
+							// 	isShow: false,
+							// }))
+							stepGroup: getStepGroupList(item?.answer?.reports ?? []),
 
 							conclusion: item?.answer?.conclusion ?? [],
 							isChecked: false,
@@ -206,6 +229,8 @@
 		} as StepItem;
 	};
 	const convertProcessToStep = (process: any[], isHistory = true) => {
+		let streamIsStart = false;
+
 		const stepList = (process ?? []).reduce((preVal, curVal) => {
 			if (curVal.mode === 'question') {
 				if (isHistory) return preVal;
@@ -218,6 +243,15 @@
 					type: MultiChatType.Select,
 				};
 				last.subStep.push(sub);
+			} else if (curVal.mode === 'begin_stream') {
+				streamIsStart = true;
+				const cur = convertProcessItem(curVal);
+				preVal.push(cur);
+			} else if (curVal.mode === 'end_stream') {
+				streamIsStart = false;
+			} else if (streamIsStart) {
+				const last = preVal.at(-1);
+				last.title += curVal.value;
 			} else {
 				const cur = convertProcessItem(curVal);
 				preVal.push(cur);
@@ -233,5 +267,6 @@
 		convertProcessToStep,
 		convertProcessItem,
 		formatShowTimeYear,
+		getStepGroupList
 	};
 };

--
Gitblit v1.9.3