Browse Source

Merge branch 'milestone-20250710-上线前优化' of http://39.101.133.168:8807/hongxilin/AIxiaocaishen into milestone-20250710-上线前优化

songjie/feature-20250628160649-上线前优化
宋杰 1 day ago
parent
commit
370d89ebcc
  1. BIN
      src/assets/img/AIchat/圈.png
  2. 2
      src/store/dataList.js
  3. 193
      src/views/AIchat.vue
  4. 3
      src/views/homePage.vue

BIN
src/assets/img/AIchat/圈.png

Before

Width: 640  |  Height: 640  |  Size: 494 KiB

After

Width: 739  |  Height: 750  |  Size: 154 KiB

2
src/store/dataList.js

@ -192,7 +192,7 @@ export const useDataStore = defineStore("data", () => {
// if (newValue === 1) fetchChartData() // if (newValue === 1) fetchChartData()
// }) // })
initData();
// initData();
return { return {
// brainDataList, // brainDataList,

193
src/views/AIchat.vue

@ -421,6 +421,36 @@ const createTypingEffect = (message, content, speed) => {
const processNextElement = () => { const processNextElement = () => {
if (currentIndex >= content.length) { if (currentIndex >= content.length) {
if (message.isEnd) {
if (message.isEnd == '1') {
apiStatus.one.isEnd = true;
} else if (message.isEnd == '2') {
apiStatus.two.isEnd = true;
} else if (message.isEnd == '3') {
apiStatus.three.isEnd = true;
} else if (message.isEnd == '4') {
apiStatus.four.isEnd = true;
}
}
if (message.error) {
chatStore.messages.push({
class: "ing",
type: "ing",
flag: false,
content: '工作流返回出错,请稍后重试',
})
chatStore.isLoading = false;
if (message.error == '2') {
apiStatus.two.isError = true;
} else if (message.error == '3') {
apiStatus.three.isError = true;
} else if (message.error == '4') {
apiStatus.four.isError = true;
}
}
if (message.end) {
chatStore.isLoading = false;
}
message.isTyping = false; message.isTyping = false;
nextTick(() => { nextTick(() => {
resolve(); // resolve resolve(); // resolve
@ -519,11 +549,65 @@ const createTypingEffect = (message, content, speed) => {
} }
}); });
} }
if (message.isEnd) {
if (message.isEnd == '1') {
apiStatus.one.isEnd = true;
} else if (message.isEnd == '2') {
apiStatus.two.isEnd = true;
} else if (message.isEnd == '3') {
apiStatus.three.isEnd = true;
} else if (message.isEnd == '4') {
apiStatus.four.isEnd = true;
}
}
if (message.error) {
chatStore.messages.push({
class: "ing",
type: "ing",
flag: false,
content: '工作流返回出错,请稍后重试',
})
chatStore.isLoading = false;
if (message.error == '2') {
apiStatus.two.isError = true;
} else if (message.error == '3') {
apiStatus.three.isError = true;
} else if (message.error == '4') {
apiStatus.four.isError = true;
}
}
// 1resolve // 1resolve
setTimeout(() => { setTimeout(() => {
resolve(); resolve();
}, 1000); }, 1000);
} else { } else {
if (message.isEnd) {
if (message.isEnd == '1') {
apiStatus.one.isEnd = true;
} else if (message.isEnd == '2') {
apiStatus.two.isEnd = true;
} else if (message.isEnd == '3') {
apiStatus.three.isEnd = true;
} else if (message.isEnd == '4') {
apiStatus.four.isEnd = true;
}
}
if (message.error) {
chatStore.messages.push({
class: "ing",
type: "ing",
flag: false,
content: '工作流返回出错,请稍后重试',
})
chatStore.isLoading = false;
if (message.error == '2') {
apiStatus.two.isError = true;
} else if (message.error == '3') {
apiStatus.three.isError = true;
} else if (message.error == '4') {
apiStatus.four.isError = true;
}
}
// 1resolve // 1resolve
setTimeout(() => { setTimeout(() => {
resolve(); resolve();
@ -533,6 +617,8 @@ const createTypingEffect = (message, content, speed) => {
}); });
}; };
let apiStatus = {}
// //
const processTypingQueue = async () => { const processTypingQueue = async () => {
if (isTypingInProgress.value || typingQueue.value.length === 0) { if (isTypingInProgress.value || typingQueue.value.length === 0) {
@ -639,10 +725,17 @@ watch(
content: aiContent, content: aiContent,
}); });
chatStore.setLoading(false);
chatStore.isLoading = false;
} }
} catch (e) { } catch (e) {
console.log(e, "意图识别失败"); console.log(e, "意图识别失败");
chatStore.messages.push({
class: "ing",
type: "ing",
flag: false,
content: '工作流返回出错,请稍后重试',
})
chatStore.isLoading = false;
} }
if (flag) { if (flag) {
@ -686,6 +779,8 @@ watch(
marketList: userStore.aiGoldMarketList, marketList: userStore.aiGoldMarketList,
}); });
const HomePage = result20.data.HomePage; const HomePage = result20.data.HomePage;
const AIGoldBull = result20.data.AIGoldBull; const AIGoldBull = result20.data.AIGoldBull;
@ -696,11 +791,11 @@ watch(
let result23; let result23;
let result24; let result24;
// API // API
const apiStatus = {
one: { completed: false, result: null, error: null },
two: { completed: false, result: null, error: null },
three: { completed: false, result: null, error: null },
four: { completed: false, result: null, error: null },
apiStatus = {
one: { completed: false, result: null, error: null, isError: false, isEnd: false },
two: { completed: false, result: null, error: null, isError: false, isEnd: false },
three: { completed: false, result: null, error: null, isError: false, isEnd: false },
four: { completed: false, result: null, error: null, isError: false, isEnd: false },
}; };
// //
@ -1034,8 +1129,8 @@ watch(
const checkAndExecuteInOrder = () => { const checkAndExecuteInOrder = () => {
// OneAPI - // OneAPI -
if (canStartFirstOutput() && !apiStatus.one.executed) { if (canStartFirstOutput() && !apiStatus.one.executed) {
apiStatus.one.executed = true;
if (apiStatus.one.result) { if (apiStatus.one.result) {
apiStatus.one.executed = true;
console.log("执行OneAPI代码(文本和音频同步开始):", apiStatus.one.result); console.log("执行OneAPI代码(文本和音频同步开始):", apiStatus.one.result);
// API1 // API1
@ -1235,6 +1330,8 @@ watch(
messageId: klineMessageId2, messageId: klineMessageId2,
hasValidData: true, // hasValidData hasValidData: true, // hasValidData
klineType: 2, klineType: 2,
error: apiStatus.two.error ? '2' : '',
isEnd: '1',
}, },
"", "",
50 50
@ -1271,6 +1368,14 @@ watch(
// console.warn("K线"); // console.warn("K线");
// } // }
// }); // });
} else {
chatStore.messages.push({
class: "ing",
type: "ing",
flag: false,
content: '工作流返回出错,请稍后重试',
})
chatStore.isLoading = false;
} }
} }
@ -1280,8 +1385,9 @@ watch(
apiStatus.two.completed && apiStatus.two.completed &&
!apiStatus.two.executed !apiStatus.two.executed
) { ) {
apiStatus.two.executed = true;
if (apiStatus.two.result) { if (apiStatus.two.result) {
apiStatus.two.executed = true;
console.log("执行TwoAPI代码:", apiStatus.two.result); console.log("执行TwoAPI代码:", apiStatus.two.result);
// API2 // API2
@ -1329,6 +1435,8 @@ watch(
type: "content3", type: "content3",
content: "", content: "",
isTyping: true, isTyping: true,
error: apiStatus.three.error ? '3' : '',
isEnd: '2'
}); });
// chatStore.messages.push(aiMessage2); // chatStore.messages.push(aiMessage2);
@ -1350,6 +1458,18 @@ watch(
// type: "content3", // type: "content3",
// content: ac2, // content: ac2,
// }); // });
} else {
console.log('1111111111111111111')
if (apiStatus.one.isEnd && apiStatus.two.error && !apiStatus.two.isError) {
apiStatus.two.isError = true
chatStore.messages.push({
class: "ing",
type: "ing",
flag: false,
content: '工作流返回出错,请稍后重试',
})
chatStore.isLoading = false;
}
} }
} }
@ -1359,8 +1479,9 @@ watch(
apiStatus.three.completed && apiStatus.three.completed &&
!apiStatus.three.executed !apiStatus.three.executed
) { ) {
apiStatus.three.executed = true;
if (apiStatus.three.result) { if (apiStatus.three.result) {
apiStatus.three.executed = true;
console.log("执行ThreeAPI代码:", apiStatus.three.result); console.log("执行ThreeAPI代码:", apiStatus.three.result);
// API3 // API3
@ -1489,6 +1610,8 @@ watch(
type: "content3", type: "content3",
content: "", content: "",
isTyping: true, isTyping: true,
error: apiStatus.four.error ? '4' : '',
isEnd: '3'
}); });
// chatStore.messages.push(aiMessage4); // chatStore.messages.push(aiMessage4);
@ -1515,6 +1638,17 @@ watch(
// type: "content3", // type: "content3",
// content: ac4, // content: ac4,
// }); // });
} else {
if (apiStatus.two.isEnd && apiStatus.three.error && !apiStatus.three.isError) {
apiStatus.three.isError = true;
chatStore.messages.push({
class: "ing",
type: "ing",
flag: false,
content: '工作流返回出错,请稍后重试1111',
})
chatStore.isLoading = false;
}
} }
} }
@ -1524,8 +1658,9 @@ watch(
apiStatus.four.completed && apiStatus.four.completed &&
!apiStatus.four.executed !apiStatus.four.executed
) { ) {
apiStatus.four.executed = true;
if (apiStatus.four.result) { if (apiStatus.four.result) {
apiStatus.four.executed = true;
console.log("执行FourAPI代码:", apiStatus.four.result); console.log("执行FourAPI代码:", apiStatus.four.result);
// API4 // API4
@ -1608,6 +1743,7 @@ watch(
type: "mianze", type: "mianze",
content: "", content: "",
isTyping: true, isTyping: true,
end: true
}); });
// chatStore.messages.push(aiMessage6); // chatStore.messages.push(aiMessage6);
@ -1623,13 +1759,24 @@ watch(
// } // }
// }, 50); // 50ms/ // }, 50); // 50ms/
addTypingTask(aiMessage6, ["", ac6], 210); addTypingTask(aiMessage6, ["", ac6], 210);
// chatStore.isLoading = false;
// chatStore.messages.push({ // chatStore.messages.push({
// sender: "ai", // sender: "ai",
// class: "mianze", // class: "mianze",
// type: "mianze", // type: "mianze",
// content: "AI,", // content: "AI,",
// }); // });
} else {
if (apiStatus.three.isEnd && apiStatus.four.error && !apiStatus.four.isError) {
apiStatus.four.isError = true;
chatStore.messages.push({
class: "ing",
type: "ing",
flag: false,
content: '工作流返回出错,请稍后重试',
})
chatStore.isLoading = false;
}
} }
} }
@ -1722,12 +1869,15 @@ watch(
apiStatus.two.error = error; apiStatus.two.error = error;
audioPreloadStatus.two.loaded = true; audioPreloadStatus.two.loaded = true;
checkAndExecuteInOrder(); checkAndExecuteInOrder();
} }
}; };
const handleThreeAPI = async () => { const handleThreeAPI = async () => {
try { try {
result23 = await dbqbSecondThreeAPI(params2); result23 = await dbqbSecondThreeAPI(params2);
// result23 = await dbqbSecondThreeAPI();
console.log("ThreeAPI成功返回:", result23); console.log("ThreeAPI成功返回:", result23);
apiStatus.three.completed = true; apiStatus.three.completed = true;
@ -1774,6 +1924,7 @@ watch(
apiStatus.four.error = error; apiStatus.four.error = error;
audioPreloadStatus.four.loaded = true; audioPreloadStatus.four.loaded = true;
checkAndExecuteInOrder(); checkAndExecuteInOrder();
} }
}; };
@ -1925,7 +2076,7 @@ watch(
// }); // });
// chatStore.setLoading(false); // chatStore.setLoading(false);
} finally { } finally {
chatStore.setLoading(false);
// chatStore.setLoading(false);
await chatStore.getUserCount(); await chatStore.getUserCount();
} }
} }
@ -2059,7 +2210,7 @@ function KlineCanvsEcharts(containerId) {
}, },
axisLabel: { axisLabel: {
show: true, show: true,
formatter: function (v) {},
formatter: function (v) { },
textStyle: { textStyle: {
color: "auto", color: "auto",
}, },
@ -3626,15 +3777,11 @@ onUnmounted(() => {
<img :src="logo2" alt="夺宝奇兵大模型logo" class="logo2" /> <img :src="logo2" alt="夺宝奇兵大模型logo" class="logo2" />
</div> </div>
<div
v-for="(msg, index) in chatMsg"
:key="index"
:class="{
<div v-for="(msg, index) in chatMsg" :key="index" :class="{
'message-bubble': true, 'message-bubble': true,
[msg.sender]: msg.sender, [msg.sender]: msg.sender,
[msg.class]: msg.class, [msg.class]: msg.class,
}"
>
}">
<div v-if="msg.type === 'kline'" class="kline-container"> <div v-if="msg.type === 'kline'" class="kline-container">
<div :id="'kline-container-' + index" class="chart-mount-point"> <div :id="'kline-container-' + index" class="chart-mount-point">
<div v-if="!msg.hasValidData" class="no-data-message"> <div v-if="!msg.hasValidData" class="no-data-message">
@ -3715,6 +3862,7 @@ onUnmounted(() => {
/* right: 30px; */ /* right: 30px; */
/* top: -30px; */ /* top: -30px; */
} }
.logo1 { .logo1 {
max-width: 350px; max-width: 350px;
min-width: 200px; min-width: 200px;
@ -3849,28 +3997,35 @@ onUnmounted(() => {
.dot:nth-child(1) { .dot:nth-child(1) {
animation-delay: 0s; animation-delay: 0s;
} }
.dot:nth-child(2) { .dot:nth-child(2) {
animation-delay: 0.2s; animation-delay: 0.2s;
} }
.dot:nth-child(3) { .dot:nth-child(3) {
animation-delay: 0.4s; animation-delay: 0.4s;
} }
.dot:nth-child(4) { .dot:nth-child(4) {
animation-delay: 0.6s; animation-delay: 0.6s;
} }
.dot:nth-child(5) { .dot:nth-child(5) {
animation-delay: 0.8s; animation-delay: 0.8s;
} }
.dot:nth-child(6) { .dot:nth-child(6) {
animation-delay: 1s; animation-delay: 1s;
} }
@keyframes loading { @keyframes loading {
0%, 0%,
60%, 60%,
100% { 100% {
opacity: 0.4; opacity: 0.4;
} }
30% { 30% {
opacity: 1; opacity: 1;
} }

3
src/views/homePage.vue

@ -176,7 +176,6 @@ const sendMessage = async () => {
ElMessage.warning("输入内容不能为空"); ElMessage.warning("输入内容不能为空");
return; return;
} }
isScrolling.value = false; isScrolling.value = false;
// AiEmotion // AiEmotion
@ -197,7 +196,7 @@ const sendMessage = async () => {
console.log(chatStore.isLoading, "isLoading.value1111"); console.log(chatStore.isLoading, "isLoading.value1111");
if (chatStore.isLoading) return; if (chatStore.isLoading) return;
chatStore.setLoading(true);
chatStore.isLoading=true;
console.log(chatStore.isLoading, "isLoading.value2222"); console.log(chatStore.isLoading, "isLoading.value2222");
const messageContent = message.value; const messageContent = message.value;

Loading…
Cancel
Save