From f7ea0b4ceb05fc15e363d918bff74022efd29d53 Mon Sep 17 00:00:00 2001
From: wujingjing <gersonwu@qq.com>
Date: 星期四, 22 八月 2024 17:36:31 +0800
Subject: [PATCH] onClickOutside

---
 src/components/chat/Chat.vue                        |   22 ++--
 package-lock.json                                   |  204 ++++++++++++++++++++++++++++++++++------
 src/components/chat/components/playBar/PlayBar.vue  |    7 +
 package.json                                        |    5 
 src/components/chat/hooks/useAssistantContentOpt.ts |   17 ++
 5 files changed, 202 insertions(+), 53 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 3b9cf72..1f83011 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -17,6 +17,7 @@
 				"@tailwindcss/typography": "^0.5.9",
 				"@types/three": "^0.164.1",
 				"@vue-office/pdf": "^1.5.3",
+				"@vueuse/core": "^11.0.1",
 				"@wangeditor/editor": "^5.1.23",
 				"@wangeditor/editor-for-vue": "^5.1.12",
 				"amis": "^3.2.0",
@@ -1473,9 +1474,9 @@
 			"integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q=="
 		},
 		"node_modules/@types/web-bluetooth": {
-			"version": "0.0.16",
-			"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
-			"integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
+			"version": "0.0.20",
+			"resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
+			"integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow=="
 		},
 		"node_modules/@types/webxr": {
 			"version": "0.5.17",
@@ -1856,36 +1857,86 @@
 			"integrity": "sha512-KTEngal0aiUvNJ6I1Chk5Ew5XqChsFsxP4GKAYXWb99zKJWjNU72p2FWEOmZWHxHcqtniOJsgnpd3zizdpfEag=="
 		},
 		"node_modules/@vueuse/core": {
-			"version": "9.13.0",
-			"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz",
-			"integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
+			"version": "11.0.1",
+			"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-11.0.1.tgz",
+			"integrity": "sha512-YTrekI18WwEyP3h168Fir94G/HNC27wvXJI21Alm0sPOwvhihfkrvHIe+5PNJq+MpgWdRcsjvE/38JaoKrgZhQ==",
 			"dependencies": {
-				"@types/web-bluetooth": "^0.0.16",
-				"@vueuse/metadata": "9.13.0",
-				"@vueuse/shared": "9.13.0",
-				"vue-demi": "*"
+				"@types/web-bluetooth": "^0.0.20",
+				"@vueuse/metadata": "11.0.1",
+				"@vueuse/shared": "11.0.1",
+				"vue-demi": ">=0.14.10"
 			},
 			"funding": {
 				"url": "https://github.com/sponsors/antfu"
 			}
 		},
+		"node_modules/@vueuse/core/node_modules/vue-demi": {
+			"version": "0.14.10",
+			"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz",
+			"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
+			"hasInstallScript": true,
+			"bin": {
+				"vue-demi-fix": "bin/vue-demi-fix.js",
+				"vue-demi-switch": "bin/vue-demi-switch.js"
+			},
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/antfu"
+			},
+			"peerDependencies": {
+				"@vue/composition-api": "^1.0.0-rc.1",
+				"vue": "^3.0.0-0 || ^2.6.0"
+			},
+			"peerDependenciesMeta": {
+				"@vue/composition-api": {
+					"optional": true
+				}
+			}
+		},
 		"node_modules/@vueuse/metadata": {
-			"version": "9.13.0",
-			"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz",
-			"integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==",
+			"version": "11.0.1",
+			"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-11.0.1.tgz",
+			"integrity": "sha512-dTFvuHFAjLYOiSd+t9Sk7xUiuL6jbfay/eX+g+jaipXXlwKur2VCqBCZX+jfu+2vROUGcUsdn3fJR9KkpadIOg==",
 			"funding": {
 				"url": "https://github.com/sponsors/antfu"
 			}
 		},
 		"node_modules/@vueuse/shared": {
-			"version": "9.13.0",
-			"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz",
-			"integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
+			"version": "11.0.1",
+			"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-11.0.1.tgz",
+			"integrity": "sha512-eAPf5CQB3HR0S76HqrhjBqFYstZfiHWZq8xF9EQmobGBkrhPfErJEhr8aMNQMqd6MkENIx2pblIEfJGlHpClug==",
 			"dependencies": {
-				"vue-demi": "*"
+				"vue-demi": ">=0.14.10"
 			},
 			"funding": {
 				"url": "https://github.com/sponsors/antfu"
+			}
+		},
+		"node_modules/@vueuse/shared/node_modules/vue-demi": {
+			"version": "0.14.10",
+			"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz",
+			"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
+			"hasInstallScript": true,
+			"bin": {
+				"vue-demi-fix": "bin/vue-demi-fix.js",
+				"vue-demi-switch": "bin/vue-demi-switch.js"
+			},
+			"engines": {
+				"node": ">=12"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/antfu"
+			},
+			"peerDependencies": {
+				"@vue/composition-api": "^1.0.0-rc.1",
+				"vue": "^3.0.0-0 || ^2.6.0"
+			},
+			"peerDependenciesMeta": {
+				"@vue/composition-api": {
+					"optional": true
+				}
 			}
 		},
 		"node_modules/@wangeditor/basic-modules": {
@@ -3419,6 +3470,44 @@
 			},
 			"peerDependencies": {
 				"vue": "^3.2.0"
+			}
+		},
+		"node_modules/element-plus/node_modules/@types/web-bluetooth": {
+			"version": "0.0.16",
+			"resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
+			"integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
+		},
+		"node_modules/element-plus/node_modules/@vueuse/core": {
+			"version": "9.13.0",
+			"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz",
+			"integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
+			"dependencies": {
+				"@types/web-bluetooth": "^0.0.16",
+				"@vueuse/metadata": "9.13.0",
+				"@vueuse/shared": "9.13.0",
+				"vue-demi": "*"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/antfu"
+			}
+		},
+		"node_modules/element-plus/node_modules/@vueuse/metadata": {
+			"version": "9.13.0",
+			"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz",
+			"integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==",
+			"funding": {
+				"url": "https://github.com/sponsors/antfu"
+			}
+		},
+		"node_modules/element-plus/node_modules/@vueuse/shared": {
+			"version": "9.13.0",
+			"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz",
+			"integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
+			"dependencies": {
+				"vue-demi": "*"
+			},
+			"funding": {
+				"url": "https://github.com/sponsors/antfu"
 			}
 		},
 		"node_modules/element-resize-detector": {
@@ -8838,9 +8927,9 @@
 			"integrity": "sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q=="
 		},
 		"@types/web-bluetooth": {
-			"version": "0.0.16",
-			"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
-			"integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
+			"version": "0.0.20",
+			"resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
+			"integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow=="
 		},
 		"@types/webxr": {
 			"version": "0.5.17",
@@ -9109,27 +9198,43 @@
 			"integrity": "sha512-KTEngal0aiUvNJ6I1Chk5Ew5XqChsFsxP4GKAYXWb99zKJWjNU72p2FWEOmZWHxHcqtniOJsgnpd3zizdpfEag=="
 		},
 		"@vueuse/core": {
-			"version": "9.13.0",
-			"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-9.13.0.tgz",
-			"integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
+			"version": "11.0.1",
+			"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-11.0.1.tgz",
+			"integrity": "sha512-YTrekI18WwEyP3h168Fir94G/HNC27wvXJI21Alm0sPOwvhihfkrvHIe+5PNJq+MpgWdRcsjvE/38JaoKrgZhQ==",
 			"requires": {
-				"@types/web-bluetooth": "^0.0.16",
-				"@vueuse/metadata": "9.13.0",
-				"@vueuse/shared": "9.13.0",
-				"vue-demi": "*"
+				"@types/web-bluetooth": "^0.0.20",
+				"@vueuse/metadata": "11.0.1",
+				"@vueuse/shared": "11.0.1",
+				"vue-demi": ">=0.14.10"
+			},
+			"dependencies": {
+				"vue-demi": {
+					"version": "0.14.10",
+					"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz",
+					"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
+					"requires": {}
+				}
 			}
 		},
 		"@vueuse/metadata": {
-			"version": "9.13.0",
-			"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-9.13.0.tgz",
-			"integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
+			"version": "11.0.1",
+			"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-11.0.1.tgz",
+			"integrity": "sha512-dTFvuHFAjLYOiSd+t9Sk7xUiuL6jbfay/eX+g+jaipXXlwKur2VCqBCZX+jfu+2vROUGcUsdn3fJR9KkpadIOg=="
 		},
 		"@vueuse/shared": {
-			"version": "9.13.0",
-			"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-9.13.0.tgz",
-			"integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
+			"version": "11.0.1",
+			"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-11.0.1.tgz",
+			"integrity": "sha512-eAPf5CQB3HR0S76HqrhjBqFYstZfiHWZq8xF9EQmobGBkrhPfErJEhr8aMNQMqd6MkENIx2pblIEfJGlHpClug==",
 			"requires": {
-				"vue-demi": "*"
+				"vue-demi": ">=0.14.10"
+			},
+			"dependencies": {
+				"vue-demi": {
+					"version": "0.14.10",
+					"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.10.tgz",
+					"integrity": "sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==",
+					"requires": {}
+				}
 			}
 		},
 		"@wangeditor/basic-modules": {
@@ -10286,6 +10391,37 @@
 				"lodash-unified": "^1.0.2",
 				"memoize-one": "^6.0.0",
 				"normalize-wheel-es": "^1.2.0"
+			},
+			"dependencies": {
+				"@types/web-bluetooth": {
+					"version": "0.0.16",
+					"resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz",
+					"integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
+				},
+				"@vueuse/core": {
+					"version": "9.13.0",
+					"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz",
+					"integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
+					"requires": {
+						"@types/web-bluetooth": "^0.0.16",
+						"@vueuse/metadata": "9.13.0",
+						"@vueuse/shared": "9.13.0",
+						"vue-demi": "*"
+					}
+				},
+				"@vueuse/metadata": {
+					"version": "9.13.0",
+					"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz",
+					"integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
+				},
+				"@vueuse/shared": {
+					"version": "9.13.0",
+					"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz",
+					"integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
+					"requires": {
+						"vue-demi": "*"
+					}
+				}
 			}
 		},
 		"element-resize-detector": {
diff --git a/package.json b/package.json
index 478e586..621b624 100644
--- a/package.json
+++ b/package.json
@@ -19,8 +19,6 @@
 		"fix-memory-limit": "cross-env LIMIT=8048 increase-memory-limit"
 	},
 	"dependencies": {
-		"amis": "^3.2.0",
-		"qs": "^6.11.2",
 		"@amap/amap-jsapi-loader": "^1.0.1",
 		"@amap/amap-jsapi-types": "^0.0.15",
 		"@element-plus/icons-vue": "^2.1.0",
@@ -29,8 +27,10 @@
 		"@tailwindcss/typography": "^0.5.9",
 		"@types/three": "^0.164.1",
 		"@vue-office/pdf": "^1.5.3",
+		"@vueuse/core": "^11.0.1",
 		"@wangeditor/editor": "^5.1.23",
 		"@wangeditor/editor-for-vue": "^5.1.12",
+		"amis": "^3.2.0",
 		"axios": "^1.3.4",
 		"bimfacesdkloader": "^0.1.0",
 		"countup.js": "^2.5.0",
@@ -57,6 +57,7 @@
 		"pinia": "^2.0.33",
 		"print-js": "^1.6.0",
 		"qrcodejs2-fixes": "^0.0.2",
+		"qs": "^6.11.2",
 		"screenfull": "^6.0.2",
 		"sortablejs": "^1.15.0",
 		"splitpanes": "^3.1.5",
diff --git a/src/components/chat/Chat.vue b/src/components/chat/Chat.vue
index 0b172f2..25f06d7 100644
--- a/src/components/chat/Chat.vue
+++ b/src/components/chat/Chat.vue
@@ -259,23 +259,21 @@
 	processId.value = uuidv4();
 	let judgeParams = null;
 	if (!preQuestion.value) {
-		const aiContent = computedMessageList.value.filter((item) => item.role === RoleEnum.assistant);
-		const lastQuestion = aiContent[aiContent.length - 2]?.content?.origin?.question;
-		judgeParams = lastQuestion
-			? {
-					prev_question: lastQuestion,
-			  }
-			: {};
+		// const aiContent = computedMessageList.value.filter((item) => item.role === RoleEnum.assistant);
+		// const lastQuestion = aiContent[aiContent.length - 2]?.content?.origin?.question;
+		// judgeParams = lastQuestion
+		// 	? {
+		// 			prev_question: lastQuestion,
+		// 	  }
+		// 	: {};
+			// 姝e父鍥炵瓟鏆傛椂涓嶉噰鐢�
+		judgeParams = {};
 	} else {
 		judgeParams = {
 			prev_question: preQuestion.value,
 		};
 	}
-	// const judgeParams = !preQuestion.value
-	// 	? {}
-	// 	: {
-	// 			prev_question: preQuestion.value,
-	// 	  };
+	
 	const params = {
 		process_id: processId.value,
 		question: text,
diff --git a/src/components/chat/components/playBar/PlayBar.vue b/src/components/chat/components/playBar/PlayBar.vue
index 1795676..620da7d 100644
--- a/src/components/chat/components/playBar/PlayBar.vue
+++ b/src/components/chat/components/playBar/PlayBar.vue
@@ -78,6 +78,8 @@
 import VoicePage from './voicePage/VoicePage.vue';
 import { querySimilarityHistory } from '/@/api/ai/chat';
 import { useClickOther } from '/@/hooks/useClickOther';
+
+import { onClickOutside } from '@vueuse/core'
 const emits = defineEmits(['sendClick']);
 const props = defineProps(['isTalking', 'isHome']);
 const voicePageIsShow = defineModel('voicePageIsShow', {
@@ -130,7 +132,10 @@
 	left: null,
 	bottom: null,
 });
-useClickOther([tipEleRef], triggerShow);
+
+onClickOutside(tipEleRef,()=>{
+	triggerShow.value = true
+})
 const inputText = (text) => {
 	nextTick(() => {
 		setTimeout(() => {
diff --git a/src/components/chat/hooks/useAssistantContentOpt.ts b/src/components/chat/hooks/useAssistantContentOpt.ts
index 50dd174..a691603 100644
--- a/src/components/chat/hooks/useAssistantContentOpt.ts
+++ b/src/components/chat/hooks/useAssistantContentOpt.ts
@@ -6,6 +6,7 @@
 import { AnswerState, AnswerType, RoleEnum } from '../model/types';
 import { SetHistoryAnswerState } from '/@/api/ai/chat';
 import { useClickOther } from '/@/hooks/useClickOther';
+import { onClickOutside } from '@vueuse/core';
 
 export type AssistantContentOptOption = {
 	forbidScroll: Ref<boolean>;
@@ -79,14 +80,22 @@
 			};
 		});
 	};
-	useClickOther(
+
+	onClickOutside(
 		computed(() => feedbackPanelRef.value?.[curFeedbackIndex.value]),
-		feedbackIsShow,
-		() => {
+		(e) => {
 			feedbackIsShow.value = false;
 			feedbackContent.value = '';
 		}
 	);
+	// useClickOther(
+	// 	computed(() => feedbackPanelRef.value?.[curFeedbackIndex.value]),
+	// 	feedbackIsShow,
+	// 	() => {
+	// 		feedbackIsShow.value = false;
+	// 		feedbackContent.value = '';
+	// 	}
+	// );
 	const showAskMore = computed(() => {
 		if (!displayMessageList.value || displayMessageList.value.length === 0) return false;
 		const last = displayMessageList.value.at(-1);
@@ -103,7 +112,7 @@
 		sendChatMessage({ type: AnswerType.Text, values: item.question });
 	};
 
-	const fixQuestionClick = (item,originData) => {
+	const fixQuestionClick = (item, originData) => {
 		if (!item.question) return;
 		preQuestion.value = originData?.question;
 		try {

--
Gitblit v1.9.3