From 859d6f2e7970885af03cb98e99dfeb24ab34ac95 Mon Sep 17 00:00:00 2001
From: Leo_Ding <2405260743@qq.com>
Date: Thu, 7 Aug 2025 12:55:39 +0800
Subject: [PATCH] =?UTF-8?q?ws=E8=81=8A=E5=A4=A9=E8=AE=B0=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pages/chat/chatPage - 副本 (2).vue | 353 ++++++++++++++
pages/chat/chatPage.vue | 714 +++++++++++++----------------
pages/chat/index.vue | 3 +-
pages/meetingDetail/index.vue | 22 +-
pages/sign/sign.vue | 6 +-
utils/ws.js | 61 +++
6 files changed, 738 insertions(+), 421 deletions(-)
create mode 100644 pages/chat/chatPage - 副本 (2).vue
create mode 100644 utils/ws.js
diff --git a/pages/chat/chatPage - 副本 (2).vue b/pages/chat/chatPage - 副本 (2).vue
new file mode 100644
index 0000000..9b62821
--- /dev/null
+++ b/pages/chat/chatPage - 副本 (2).vue
@@ -0,0 +1,353 @@
+
+
+
+
+
+
+
+
+ {{ msg.content }}
+
+
+
+
+ 对方正在输入...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/chat/chatPage.vue b/pages/chat/chatPage.vue
index 6c87fe8..2e61710 100644
--- a/pages/chat/chatPage.vue
+++ b/pages/chat/chatPage.vue
@@ -1,370 +1,330 @@
-
- 今天 {{ getTime() }}
-
-
-
+
-
- {{ msg.content }}
-
+
+
+ {{ msg.content }}
对方正在输入...
-
-
+
+
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/chat/index.vue b/pages/chat/index.vue
index 58ac98a..fa1ae80 100644
--- a/pages/chat/index.vue
+++ b/pages/chat/index.vue
@@ -30,6 +30,7 @@
import Footer from '@/components/footer_common.vue';
import { get, post } from '@/utils/request';
import { IMAGE_BASE_URL, BASE_URL } from '@/utils/config';
+ import {navigateTo} from '@/utils/router.js'
export default {
name: 'aiHelper',
components: { Footer },
@@ -45,7 +46,7 @@
},
methods: {
goAiType(item) {
- uni.navigateTo({
+ navigateTo({
url: `/pages/chat/chatPage?serviceUrl=${item.serviceUrl}&apiKey=${item.apiKey}&id=${item.id}&name=${item.name}&icon=${item.icon}`
});
},
diff --git a/pages/meetingDetail/index.vue b/pages/meetingDetail/index.vue
index 167fc5d..a421b8c 100644
--- a/pages/meetingDetail/index.vue
+++ b/pages/meetingDetail/index.vue
@@ -89,7 +89,7 @@
@@ -217,16 +217,14 @@
concatPhone: '负责人电话',
companyName: '公司名称',
startTime: '开始时间',
- endTime: '结束时间',
- num: "人数",
- counter: '场次'
+ endTime: '结束时间'
},
- userName: '丁',
- userPhone: "13667879876",
- userCardId: '1234',
- userAddress: '北京二环',
- counter: '10',
- num: '100',
+ userName: '',
+ userPhone: "",
+ userCardId: '',
+ userAddress: '',
+ counter: '',
+ num: '',
// 会议室图片数组
applyTheme: 1,
applyArea:1,
@@ -267,8 +265,8 @@
maxDate: `${year + 1}-12-31`,
// 时间相关
- startTime: `2025-08`,
- endTime: `2025-10`,
+ startTime: ``,
+ endTime: ``,
startTimeValue: `${startHours.toString().padStart(2, '0')}:${startMinutes.toString().padStart(2, '0')}`,
endTimeValue: `${endHours.toString().padStart(2, '0')}:${endMinutes.toString().padStart(2, '0')}`,
diff --git a/pages/sign/sign.vue b/pages/sign/sign.vue
index 6bdcd0c..453231d 100644
--- a/pages/sign/sign.vue
+++ b/pages/sign/sign.vue
@@ -600,14 +600,14 @@ import pickerColor from "./pickerColor.vue"
display: flex;
align-content: center;
flex-direction:column;
- justify-content: center;
+ /* justify-content: center; */
font-size: 28rpx;
}
.handWriting {
background: #fff;
width: 95vw;
- height: 90vh;
+ height: 240px;
margin: 0 auto;
}
@@ -618,7 +618,7 @@ import pickerColor from "./pickerColor.vue"
.handCenter {
border: 4rpx dashed #e9e9e9;
- flex: 5;
+ height: 240px;
overflow: hidden;
width: 95vw;
box-sizing: border-box;
diff --git a/utils/ws.js b/utils/ws.js
new file mode 100644
index 0000000..2c0dbb5
--- /dev/null
+++ b/utils/ws.js
@@ -0,0 +1,61 @@
+// 连接WebSocket
+const connectWebSocket = () => {
+ if (isConnected.value) return;
+
+ socket.value = new WebSocket(WS_URL);
+
+ socket.value.onopen = () => {
+ isConnected.value = true;
+ addMessage('ai', '连接已建立,请问有什么可以帮您?', MESSAGE_TYPE.NORMAL);
+ };
+
+ socket.value.onmessage = (event) => {
+ console.log('收到消息:', event);
+ const data = event.data.trim();
+ if (data.startsWith('')) {
+ aiStatus.value = 2; // 切换到思考状态
+ isReplying.value = true;
+ }
+ if (data.includes('')) {
+ aiStatus.value = 1; // 切换到思考状态
+ }
+ if (data.startsWith('')) {
+ addingText.value = '';
+ isAnswer.value = true;
+ }
+ if (isAnswer.value) {
+ addingText.value += data.replace(//g, '').replace(/<\/answer>/g, '');
+ console.log('添加的文本:', addingText.value);
+ }
+ if (!data.includes('你好,我是 AI 小助手,请输入你的问题。') && !data.includes('')) {
+ processThinkingMessage(data);
+ }
+ if (data.includes('')) {
+ const strList = data.split('')[1].split('')[0];
+ // videoList.value = [{ src: '/videos/1.mp4' }, { src: '/videos/2.mp4' }, { src: '/videos/3.mp4' }];
+ videoList.value = strList.replace(/\[/g, '').replace(/\]/g, '').split(',').map(src => ({ src: `/videos/${src.trim()}.mp4` }))
+ }
+ if (data.includes('')) {
+ currentThinking.value = null
+ isReplying.value = false;
+ isAnswer.value = false;
+ audioText.value = addingText.value;
+ messages.value[messages.value.length - 1].loading = false;
+ // audioText.value='先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也'
+ }
+
+ };
+
+ socket.value.onerror = (error) => {
+ console.error('WebSocket错误:', error);
+ addMessage('ai', '连接出错,请稍后再试', MESSAGE_TYPE.NORMAL);
+ };
+
+ socket.value.onclose = () => {
+ isConnected.value = false;
+ addMessage('ai', '连接已断开', MESSAGE_TYPE.NORMAL);
+ };
+};
\ No newline at end of file