From bdeacb9f02dfa74bac74296a4a2c989a8e0d45ff Mon Sep 17 00:00:00 2001
From: xusd <330628789@qq.com>
Date: Thu, 26 Jun 2025 17:52:12 +0800
Subject: [PATCH] feature:AI演示

---
 src/views/register/visit/SelfInspection.jsx |   68 ++++++++++++++++++++++++++++-----
 1 files changed, 57 insertions(+), 11 deletions(-)

diff --git a/src/views/register/visit/SelfInspection.jsx b/src/views/register/visit/SelfInspection.jsx
index 5e95d76..190cff3 100644
--- a/src/views/register/visit/SelfInspection.jsx
+++ b/src/views/register/visit/SelfInspection.jsx
@@ -34,6 +34,22 @@
 	return $$.ax.request({ urlAi: `case-law/getRiskResult`, data, typeAi: 'post', service: 'mediate' });
 }
 
+//获取久拖未决结果
+function getLongRiskResultApi(data) {
+	// 构造AI请求参数格式
+	const aiRequestData = {
+		inputs: {
+			caseId: data.caseId,
+			caseText: data.caseText
+		},
+		response_mode: "blocking",
+		user: "system",
+		query: "分析案件是否为久拖未决案件",
+		conversation_id: data.caseId
+	};
+	return $$.ax.request({ url: `ai/chat/risk`, data: aiRequestData, type: 'post', service: 'sys' });
+}
+
 function embeddingTextToMilvusApi(data) {
 	return $$.ax.request({ urlAi: `case-law/embeddingTextToMilvus`, data, typeAi: 'post', service: 'mediate' });
 }
@@ -170,7 +186,7 @@
 		setIsReview(!isReview);
 	};
 
-  	//提交信息,需要校验规则
+	//提交信息,需要校验规则
 	const handleSubmit = async () => {
 		if (formRef.current) {
 			formRef.current.validate(undefined, (errors, values) => {
@@ -285,15 +301,18 @@
 			plaintiffsCertiNo,
 			defendantsCertiNo,
 		});
-		global.setSpinning(false);
+	
 		if (res.type) {
-		  if (res.data?.length < 1) {
-		    submitDisputeApi(data, isSelfAccept)
-		  } else {
-		    setRepeatData({ hisData: res.data, isSelfAccept, newData: data, visible: true })
-		    console.log(repeatData, 'repeatData');
-		  }
+			if (res.data?.length < 1) {
+				submitDisputeApi(data, isSelfAccept)
+			} else {
+				setRepeatData({ hisData: res.data, isSelfAccept, newData: data, visible: true })
+				global.setSpinning(false);
+				console.log(repeatData, 'repeatData');
+				return;
+			}
 		}
+	
 	};
 
 	async function submitDisputeApi(data, isSelfAccept) {
@@ -302,7 +321,7 @@
 		if (response.type) {
 			if (isSelfAccept) {
 				getRiskResult({ caseId: id, caseText: (data.caseDes || '') + '/n' + (data.caseClaim || '') });
-				embeddingTextToMilvus({ caseId: id, caseDes: data.caseDes || '', caseClaim: data.caseClaim || '' });
+				// embeddingTextToMilvus({ caseId: id, caseDes: data.caseDes || '', caseClaim: data.caseClaim || '' });
 				//自行受理
 				Message.success({
 					content: (
@@ -316,12 +335,30 @@
 					position: 'bottom',
 				});
 				navigate(`/mediate/visit/handleFeedback?caseTaskId=${response.data}&caseId=${id}`);
+				// 跳转后关闭转圈效果
+				global.setSpinning(false);
 			} else {
 				getRiskResult({ caseId: id, caseText: (data.caseDes || '') + '/n' + (data.caseClaim || '') });
-				embeddingTextToMilvus({ caseId: id, caseDes: data.caseDes || '', caseClaim: data.caseClaim || '' });
+				// 获取久拖未决分析结果并传入跳转页面
+				const longRiskResult = await getLongRiskResult({ caseId: id, caseText: (data.caseDes || '') + '/n' + (data.caseClaim || '') });
+				// embeddingTextToMilvus({ caseId: id, caseDes: data.caseDes || '', caseClaim: data.caseClaim || '' });
 				Message.success('提交成功!');
-				navigate(`/mediate/visit/visitWorkBench`, { replace: true });
+				
+				// 只有当longRiskResult === '1'时才带上参数
+				if (longRiskResult === '1') {
+					// 将AI分析结果作为参数传入跳转页面
+					const aiResultParam = longRiskResult ? `?aiResult=${longRiskResult}` : '';
+					// 当longRiskResult=='1'时,将caseDes存储到sessionStorage
+					if (data.caseDes) {
+						sessionStorage.setItem('ai_chat_caseDes', data.caseDes);
+					}
+					navigate(`/mediate/visit/visitWorkBench${aiResultParam}`, { replace: true });
+				} else {
+					navigate(`/mediate/visit/visitWorkBench`, { replace: true });
+				}
 				setCurrent(2);
+				// 跳转后关闭转圈效果
+				global.setSpinning(false);
 			}
 		}
 	}
@@ -333,6 +370,15 @@
 		}
 	}
 
+	// ai分析是否为久拖未决案件
+	async function getLongRiskResult(data) {
+		const res = await getLongRiskResultApi(data);
+		if (res.type) {
+			return res.data; // 返回AI分析结果
+		}
+		return null;
+	}
+
 	// 向量化处理
 	async function embeddingTextToMilvus(data) {
 		const res = await embeddingTextToMilvusApi(data);

--
Gitblit v1.8.0