From 5396ffc7b0f2d63573b99bb496bee23fa9709028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=9D=B0?= Date: Fri, 4 Jul 2025 15:29:01 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E5=A4=BA=E5=AE=9D=E5=A5=87=E5=85=B5?= =?UTF-8?q?=E9=9F=B3=E9=A2=91=E9=87=8D=E6=96=B0=E6=92=AD=E6=94=BE=E5=8F=AA?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E7=AC=AC=E5=9B=9B=E4=B8=AA=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=EF=BC=9B=E6=89=93=E5=AD=97=E6=9C=BA=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E4=B8=8E=E9=9F=B3=E9=A2=91=E5=AF=B9=E5=BA=94=EF=BC=9B?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=83=85=E7=BB=AA=E5=A4=A7=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E6=97=A5=E6=9C=9F=E6=A0=BC=E5=BC=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AIchat.vue | 120 ++++++++++++++++++++++++++++++++++++++++-------- src/views/AiEmotion.vue | 15 +++++- 2 files changed, 115 insertions(+), 20 deletions(-) diff --git a/src/views/AIchat.vue b/src/views/AIchat.vue index aca0296..a56cab2 100644 --- a/src/views/AIchat.vue +++ b/src/views/AIchat.vue @@ -717,18 +717,37 @@ watch( // 播放音频队列 // 防止重复调用的标志 let isCallingPlayNext = false; + // 当前播放索引 + let currentPlayIndex = 0; const playNextAudio = () => { + console.log('=== playNextAudio 被调用 ==='); + console.log('当前队列状态:', { + queueLength: audioQueue.value.length, + queueItems: audioQueue.value.map(item => item.name), + currentPlayIndex: currentPlayIndex, + isPlayingAudio: isPlayingAudio.value, + isCallingPlayNext: isCallingPlayNext, + audioStoreIsPlaying: audioStore.isPlaying + }); + if (audioQueue.value.length === 0 || isPlayingAudio.value || isCallingPlayNext) { - console.log('播放条件不满足 - 队列长度:', audioQueue.value.length, '正在播放:', isPlayingAudio.value, '正在调用:', isCallingPlayNext); + console.log('❌ 播放条件不满足 - 队列长度:', audioQueue.value.length, '正在播放:', isPlayingAudio.value, '正在调用:', isCallingPlayNext); return; } + // 检查是否已播放完所有音频(仅在队列不为空时重置) + if (currentPlayIndex >= audioQueue.value.length && audioQueue.value.length > 0) { + console.log('🔄 所有音频播放完成,重置索引从第一个开始'); + currentPlayIndex = 0; + } + isCallingPlayNext = true; isPlayingAudio.value = true; - const audioInfo = audioQueue.value.shift(); + const audioInfo = audioQueue.value[currentPlayIndex]; - console.log(`开始播放${audioInfo.name}音频,剩余队列:`, audioQueue.value.length); + console.log(`✅ 开始播放${audioInfo.name}音频 (索引:${currentPlayIndex}),队列总长度:`, audioQueue.value.length); + console.log('完整队列内容:', audioQueue.value.map((item, index) => `${index === currentPlayIndex ? '▶️' : '⏸️'} ${item.name}`)); // 只有在确实需要停止时才停止之前的音频 if (audioStore.nowSound && (audioStore.nowSound.playing() || audioStore.nowSound.state() === 'loading')) { @@ -744,6 +763,7 @@ watch( onplay: () => { audioStore.isPlaying = true; audioStore.isPaused = false; + isPlayingAudio.value = true; // 确保状态同步 isCallingPlayNext = false; // 重置调用标志 console.log(`${audioInfo.name}音频开始播放,时长:`, audio.duration()); console.log('音频播放状态确认 - isPlayingAudio:', isPlayingAudio.value, 'audioStore.isPlaying:', audioStore.isPlaying); @@ -761,21 +781,27 @@ watch( }, onend: () => { console.log(`${audioInfo.name}音频播放完成,准备播放下一个`); - console.log('播放完成时的状态 - 队列长度:', audioQueue.value.length, 'isPlayingAudio:', isPlayingAudio.value); + console.log('播放完成时的状态 - 当前索引:', currentPlayIndex, '队列长度:', audioQueue.value.length, 'isPlayingAudio:', isPlayingAudio.value); audioStore.isPlaying = false; audioStore.isPaused = false; audioStore.playbackPosition = 0; isPlayingAudio.value = false; + // 移动到下一个音频索引 + currentPlayIndex++; + // 确保只有在音频真正播放完成时才播放下一个 - if (audioQueue.value.length > 0) { - console.log('队列中还有音频,500ms后播放下一个,当前队列:', audioQueue.value.map(item => item.name)); + if (currentPlayIndex < audioQueue.value.length) { + console.log(`队列中还有音频,500ms后播放下一个 (索引:${currentPlayIndex}),当前队列:`, audioQueue.value.map((item, index) => `${index === currentPlayIndex ? '▶️' : '⏸️'} ${item.name}`)); setTimeout(() => { isCallingPlayNext = false; // 在调用前重置标志 playNextAudio(); }, 500); } else { - console.log('所有音频播放完成'); + console.log('🎉 所有音频播放完成,清除音频实例,队列保持完整,下次播放将从第一个开始'); + // 清除音频实例,确保重新播放时不会使用旧实例 + audioStore.nowSound = null; + audioStore.soundInstance = null; isCallingPlayNext = false; // 重置调用标志 } }, @@ -865,8 +891,10 @@ watch( console.log('当前音频状态 - isPlaying:', audioStore.isPlaying, 'isPaused:', audioStore.isPaused); console.log('当前音频实例:', audioStore.soundInstance); console.log('队列播放状态 - isPlayingAudio:', isPlayingAudio.value, '队列长度:', audioQueue.value.length); + console.log('当前播放索引:', currentPlayIndex, '是否所有音频播放完成:', currentPlayIndex >= audioQueue.value.length); - if (audioStore.soundInstance) { + // 检查是否所有音频都播放完成,如果是则重新开始 + if (audioStore.soundInstance && currentPlayIndex < audioQueue.value.length && isPlayingAudio.value) { if (audioStore.isPlaying) { // 暂停当前音频 console.log('暂停当前音频'); @@ -883,23 +911,77 @@ watch( } } else { console.log('没有音频实例,检查是否需要重新播放队列'); + console.log('重新播放条件检查:', { + isPlayingAudio: isPlayingAudio.value, + queueLength: audioQueue.value.length, + currentPlayIndex: currentPlayIndex, + condition1: audioQueue.value.length === 0, + condition2: currentPlayIndex >= audioQueue.value.length, + finalCondition: !isPlayingAudio.value && (audioQueue.value.length === 0 || currentPlayIndex >= audioQueue.value.length) + }); // 没有音频实例时,检查是否所有音频都播放完成 - if (!isPlayingAudio.value && audioQueue.value.length === 0) { + if (!isPlayingAudio.value && (audioQueue.value.length === 0 || currentPlayIndex >= audioQueue.value.length)) { console.log('所有音频播放完成,重新构建队列从第一个开始播放'); - // 重新构建音频队列,按顺序添加所有音频 + // 重新构建音频队列,按顺序添加所有音频(不自动播放) + const audioItems = []; if (audioPreloadStatus.one.url) { - addToAudioQueue(audioPreloadStatus.one.url, "API1-第一个"); + audioItems.push({ url: audioPreloadStatus.one.url, name: "API1-第一个", order: 1 }); } if (audioPreloadStatus.two.url) { - addToAudioQueue(audioPreloadStatus.two.url, "API2-第二个"); + audioItems.push({ url: audioPreloadStatus.two.url, name: "API2-第二个", order: 2 }); } if (audioPreloadStatus.three.url) { - addToAudioQueue(audioPreloadStatus.three.url, "API3-第三个"); + audioItems.push({ url: audioPreloadStatus.three.url, name: "API3-第三个", order: 3 }); } if (audioPreloadStatus.four.url) { - addToAudioQueue(audioPreloadStatus.four.url, "API4-第四个"); + audioItems.push({ url: audioPreloadStatus.four.url, name: "API4-第四个", order: 4 }); + } + + // 按顺序排序并添加到队列 + audioItems.sort((a, b) => a.order - b.order); + audioQueue.value = audioItems; + + console.log('队列重建完成,队列内容:', audioQueue.value.map(item => item.name)); + console.log('开始从第一个音频播放'); + + // 重置播放状态并开始播放第一个音频 + if (audioQueue.value.length > 0) { + // 完全重置所有播放相关状态 + isPlayingAudio.value = false; + isCallingPlayNext = false; + currentPlayIndex = 0; // 重置播放索引到第一个音频 + audioStore.isPlaying = false; + audioStore.isPaused = false; + audioStore.playbackPosition = 0; + audioStore.nowSound = null; + audioStore.soundInstance = null; + + console.log('🔄 状态完全重置完成,准备从第一个音频开始播放'); + + console.log('✅ 完全重置播放状态,准备播放第一个音频'); + console.log('重置后状态检查:', { + isPlayingAudio: isPlayingAudio.value, + isCallingPlayNext: isCallingPlayNext, + currentPlayIndex: currentPlayIndex, + audioStoreIsPlaying: audioStore.isPlaying, + queueLength: audioQueue.value.length + }); + + setTimeout(() => { + console.log('🚀 延迟后开始播放第一个音频'); + console.log('播放前最终状态检查:', { + currentPlayIndex: currentPlayIndex, + queueLength: audioQueue.value.length, + queueItems: audioQueue.value.map((item, index) => `${index}: ${item.name}`), + isPlayingAudio: isPlayingAudio.value, + isCallingPlayNext: isCallingPlayNext, + audioStoreIsPlaying: audioStore.isPlaying, + audioStoreInstance: !!audioStore.soundInstance + }); + console.log('🎯 即将调用 playNextAudio,期望播放:', audioQueue.value[currentPlayIndex]?.name || '无音频'); + playNextAudio(); + }, 200); } - console.log('队列重建完成,开始从第一个音频播放'); } else if (!isPlayingAudio.value && audioQueue.value.length > 0) { console.log('队列中还有音频,继续播放'); playNextAudio(); @@ -1342,7 +1424,7 @@ watch( // } // }, 50); // 调整速度为50ms/字符 - addTypingTask(aiMessage3, [ac31, ac32], 180); + addTypingTask(aiMessage3, [ac31, ac32], 200); // chatStore.messages.push({ // sender: "ai", @@ -1423,7 +1505,7 @@ watch( addTypingTask( aiMessage4, [ac41, ac42, ac43, ac44, ac45, ac46, ac47, ac48], - 180 + 200 ); // chatStore.messages.push({ @@ -1508,7 +1590,7 @@ watch( // } // }, 50); // 调整速度为50ms/字符 - addTypingTask(aiMessage5, [ac51, ac52, ac53, ac54], 180); + addTypingTask(aiMessage5, [ac51, ac52, ac53, ac54], 240); // chatStore.messages.push({ // sender: "ai", @@ -1539,7 +1621,7 @@ watch( // } // }, 50); // 调整速度为50ms/字符 - addTypingTask(aiMessage6, ["", ac6], 180); + addTypingTask(aiMessage6, ["", ac6], 210); // chatStore.messages.push({ // sender: "ai", diff --git a/src/views/AiEmotion.vue b/src/views/AiEmotion.vue index ca207e3..a185d4c 100644 --- a/src/views/AiEmotion.vue +++ b/src/views/AiEmotion.vue @@ -291,7 +291,19 @@ const stockName = computed(() => currentStock.value?.stockInfo.name || ""); const displayDate = computed(() => { if (!currentStock.value?.apiData) return ""; const lastData = currentStock.value.apiData.GSWDJ?.at(-1); - return lastData ? lastData[0] : ""; + if (!lastData || !lastData[0]) return ""; + + const dateStr = lastData[0]; + // 假设原格式为 YYYY-MM-DD 或 YYYY/MM/DD + const dateMatch = dateStr.match(/(\d{4})[\-\/](\d{1,2})[\-\/](\d{1,2})/); + if (dateMatch) { + const [, year, month, day] = dateMatch; + // 转换为 DD/MM/YYYY 格式 + return `更新时间:${day.padStart(2, '0')}/${month.padStart(2, '0')}/${year}`; + } + + // 如果不匹配预期格式,返回原始值 + return dateStr; }); const data1 = computed(() => { if (!currentStock.value?.apiData) return null; @@ -2004,6 +2016,7 @@ defineExpose({ .span02 { font-size: 1.5rem; + font-weight: bold; color: white; float: right; margin-top: -2%; From a310ee79532012013f7afc3ed6dd76908956eb91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=9D=B0?= Date: Fri, 4 Jul 2025 15:55:14 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=B7=A6=E4=B8=8A=E8=A7=92=E8=82=A1=E7=A5=A8=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E7=9A=84=E5=AE=BD=E5=BA=A6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AiEmotion.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/AiEmotion.vue b/src/views/AiEmotion.vue index 834b678..c6c4411 100644 --- a/src/views/AiEmotion.vue +++ b/src/views/AiEmotion.vue @@ -2754,7 +2754,7 @@ defineExpose({ } .span01 { - width: 70%; + width: 50%; font-size: 1rem; padding: 6px; } From 4617c5c4a8630d5e599b676b28b3d0553a97d15c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=9D=B0?= Date: Fri, 4 Jul 2025 16:06:53 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E6=89=93?= =?UTF-8?q?=E5=8C=85=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build/vite/build.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/vite/build.js b/build/vite/build.js index 0d26ff3..3894ee7 100644 --- a/build/vite/build.js +++ b/build/vite/build.js @@ -5,7 +5,7 @@ export function createBuild(viteEnv) { outDir: VITE_OUTPUT_DIR, cssCodeSplit: true, // 禁用 CSS 代码拆分,将整个项目中的所有 CSS 将被提取到一个 CSS 文件中 brotliSize: false, // 关闭打包计算 - target: 'es2020', + target: 'esnext', minify: 'terser', // 混淆器, terser 构建后文件体积更小, esbuild // 小于此阈值的导入或引用资源将内联为 base64 编码,以避免额外的 http 请求。设置为 0 可以完全禁用此项 assetsInlineLimit: 4096, From 49af4ed7db30ea7a9dee4edb2d8a7fcd1f90fe84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=9D=B0?= Date: Fri, 4 Jul 2025 16:38:02 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BA=86=E6=83=85?= =?UTF-8?q?=E7=BB=AA=E5=A4=A7=E6=A8=A1=E5=9E=8B=E6=8A=A2=E9=BC=A0=E6=A0=87?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AiEmotion.vue | 66 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/src/views/AiEmotion.vue b/src/views/AiEmotion.vue index c6c4411..1ac817e 100644 --- a/src/views/AiEmotion.vue +++ b/src/views/AiEmotion.vue @@ -248,6 +248,8 @@ const hasTriggeredAudio = ref(false); // 是否已触发音频播放 const hasTriggeredTypewriter = ref(false); // 是否已触发打字机效果 const intersectionObserver = ref(null); // 存储observer实例 const isUserInitiated = ref(false); // 标记是否为用户主动搜索 +const isUserScrolling = ref(false); // 标记用户是否正在手动滚动 +const scrollTimeout = ref(null); // 滚动超时定时器 // 显示的文本内容(用于打字机效果) const displayedTexts = ref({ @@ -756,6 +758,12 @@ function startTypewriterEffect(conclusion) { for (let i = 0; i <= disclaimerText.length; i++) { const timer = setTimeout(() => { displayedTexts.value.disclaimer = disclaimerText.substring(0, i); + // 在打字机效果的最后一个字符显示完成后,滚动到底部 + if (i === disclaimerText.length) { + setTimeout(() => { + scrollToBottom(); + }, 100); + } }, totalDelay + i * typeSpeed); typewriterTimers.value.push(timer); } @@ -804,6 +812,10 @@ function playAudio(url) { isAudioPlaying.value = true; emotionAudioStore.isPlaying = true; console.log('开始播放场景应用语音'); + // 音频开始播放时,滚动到底部 + setTimeout(() => { + scrollToBottom(); + }, 100); }, onend: () => { isAudioPlaying.value = false; @@ -1155,6 +1167,12 @@ function renderCharts(data) { } const scrollToBottom = async () => { + // 如果用户正在手动滚动,则不执行自动滚动 + if (isUserScrolling.value) { + console.log('用户正在手动滚动,跳过自动滚动'); + return; + } + const container = userInputDisplayRef.value; if (!container) return; await nextTick(); @@ -1164,6 +1182,32 @@ const scrollToBottom = async () => { container.scrollTop = container.scrollHeight - container.offsetHeight; }; +// 处理用户滚动事件 +const handleUserScroll = () => { + isUserScrolling.value = true; + + // 清除之前的定时器 + if (scrollTimeout.value) { + clearTimeout(scrollTimeout.value); + } + + // 设置定时器,2秒后重新允许自动滚动 + scrollTimeout.value = setTimeout(() => { + isUserScrolling.value = false; + console.log('用户滚动结束,重新允许自动滚动'); + }, 2000); +}; + +// 处理滚轮事件 +const handleWheel = (event) => { + handleUserScroll(); +}; + +// 处理触摸滚动事件 +const handleTouchMove = (event) => { + handleUserScroll(); +}; + // 检查数据是否已加载完成 function isDataLoaded() { @@ -1364,6 +1408,14 @@ onMounted(async () => { // 添加新的监听器 window.addEventListener('resize', globalResizeHandler); window.aiEmotionGlobalResizeHandler = globalResizeHandler; + + // 添加滚动事件监听器 + const container = userInputDisplayRef.value; + if (container) { + container.addEventListener('wheel', handleWheel, { passive: true }); + container.addEventListener('touchmove', handleTouchMove, { passive: true }); + container.addEventListener('scroll', handleUserScroll, { passive: true }); + } // 防抖函数定义 function debounce(func, wait) { @@ -1436,6 +1488,20 @@ onUnmounted(() => { window.removeEventListener('resize', window.aiEmotionGlobalResizeHandler); window.aiEmotionGlobalResizeHandler = null; } + + // 清理滚动事件监听器 + const container = userInputDisplayRef.value; + if (container) { + container.removeEventListener('wheel', handleWheel); + container.removeEventListener('touchmove', handleTouchMove); + container.removeEventListener('scroll', handleUserScroll); + } + + // 清理滚动定时器 + if (scrollTimeout.value) { + clearTimeout(scrollTimeout.value); + scrollTimeout.value = null; + } }); // 声明组件可以触发的事件 From 04f26d29d991cda838e9977de6ae3aacf016d18c Mon Sep 17 00:00:00 2001 From: dongqian <3475123872@qq.com> Date: Fri, 4 Jul 2025 17:09:28 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E6=83=85=E7=BB=AA=E8=A7=A3=E7=A0=81?= =?UTF-8?q?=E9=80=82=E9=85=8Dreally?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AiEmotion.vue | 1 + src/views/components/emotionDecod.vue | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/views/AiEmotion.vue b/src/views/AiEmotion.vue index 9f3e387..a1c3e87 100644 --- a/src/views/AiEmotion.vue +++ b/src/views/AiEmotion.vue @@ -2361,6 +2361,7 @@ defineExpose({ .class04 { width: 100%; height: auto; + margin: 0 auto; /* min-height: 38rem; */ /* min-height: 51rem; */ /* margin-left: -39px; */ diff --git a/src/views/components/emotionDecod.vue b/src/views/components/emotionDecod.vue index a7abc74..caf49c1 100644 --- a/src/views/components/emotionDecod.vue +++ b/src/views/components/emotionDecod.vue @@ -451,6 +451,7 @@ onBeforeUnmount(() => { .qxjmqbox { height: auto; width: 100%; + margin:0 auto; } #qxjmqEcharts { @@ -473,8 +474,7 @@ onBeforeUnmount(() => { .qxjmqbox { height: auto; - width: 100%; - margin: 0; + width: 90%; } } From 0cc13f1b48a3e10a0b29754b4959a93a564c489d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=9D=B0?= Date: Fri, 4 Jul 2025 17:21:42 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=83=85=E7=BB=AA?= =?UTF-8?q?=E5=A4=A7=E6=A8=A1=E5=9E=8B=E7=AD=89=E5=BE=85=E6=8F=90=E5=8D=87?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AiEmotion.vue | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/views/AiEmotion.vue b/src/views/AiEmotion.vue index 1ac817e..62d0121 100644 --- a/src/views/AiEmotion.vue +++ b/src/views/AiEmotion.vue @@ -21,10 +21,10 @@ -
+
-
AI小财神正在加载图表数据和音频内容,请稍候...
+
AI情绪大模型正在努力为您加载,请稍候...
@@ -2869,8 +2869,8 @@ defineExpose({ display: flex; justify-content: center; align-items: center; - min-height: 60vh; - padding: 40px 20px; + min-height: 20vh; + padding: 20px 10px; } .loading-content { From 89fe044e9c6382e72a12dc70a7788b634df0622c Mon Sep 17 00:00:00 2001 From: dongqian <3475123872@qq.com> Date: Fri, 4 Jul 2025 17:40:17 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E6=83=85=E7=BB=AA=E6=8E=A8=E6=BC=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AiEmotion.vue | 27 ++++----------------------- src/views/components/emotionalBottomRadar.vue | 7 +++---- 2 files changed, 7 insertions(+), 27 deletions(-) diff --git a/src/views/AiEmotion.vue b/src/views/AiEmotion.vue index a1c3e87..b3f173c 100644 --- a/src/views/AiEmotion.vue +++ b/src/views/AiEmotion.vue @@ -1914,7 +1914,7 @@ defineExpose({ /* 确保不超出父容器 */ height: auto; /* 高度根据内容动态变化 */ - min-height: 90rem; + /* min-height: 90rem; */ /* 设置最小高度,确保图片显示 */ margin: 0 auto; box-sizing: border-box; @@ -1922,7 +1922,6 @@ defineExpose({ transition: all 0.3s ease; /* 添加平滑过渡效果 */ } - .class04 { background-image: url('@/assets/img/AiEmotion/bk00000.png'); /* 使用导入的背景图片 */ @@ -2173,10 +2172,6 @@ defineExpose({ min-height: 60rem; } - .class05 { - min-height: 75rem; - } - .class06 { min-height: 58rem; } @@ -2206,11 +2201,6 @@ defineExpose({ min-height: 55rem; } - - .class05 { - min-height: 65rem; - } - .class06 { min-height: 50rem; } @@ -2377,10 +2367,6 @@ defineExpose({ min-height: 45rem; } - .class05 { - min-height: 48rem; - } - .class06 { min-height: 35rem; } @@ -2611,7 +2597,7 @@ defineExpose({ background-repeat: no-repeat; width: 100%; height: auto; - min-height: 48rem; + /* min-height: 48rem; */ } .class06 { @@ -2721,11 +2707,11 @@ defineExpose({ align-items: center; } - .class003{ + .class003 { padding-top: 14%; gap: 30px; } - + .class003 .div01, .class003 .div02 { /* width: 90%; */ @@ -2758,11 +2744,6 @@ defineExpose({ min-height: 35rem; } - - .class05 { - min-height: 35rem; - } - .class06 { min-height: 25rem; } diff --git a/src/views/components/emotionalBottomRadar.vue b/src/views/components/emotionalBottomRadar.vue index 2c24654..aadca65 100644 --- a/src/views/components/emotionalBottomRadar.vue +++ b/src/views/components/emotionalBottomRadar.vue @@ -461,7 +461,7 @@ function initEmotionalBottomRadar(KlineData, barAndLineData) { start: 0, end: 100, show: true, - bottom: 10, + bottom: window.innerWidth > 768 ? 80 : 50, height: 20, borderColor: '#CFD6E3', fillerColor: 'rgba(135, 175, 274, 0.2)', @@ -701,16 +701,15 @@ onBeforeUnmount(() => { height: 1040px; box-sizing: border-box; overflow: hidden; - margin: 0; + margin: 0px auto !important; padding: 0; } /* 手机端适配样式 */ @media only screen and (max-width: 768px) { #bottomRadarChart { - width: 100%; + width: 90% !important; height: 560px; - margin: 0; padding: 0; } } From 8af188683aeced4e14c40c7c7e75fc12fc4d036d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=9D=B0?= Date: Fri, 4 Jul 2025 18:03:44 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E6=A1=86=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AiEmotion.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/AiEmotion.vue b/src/views/AiEmotion.vue index 62d0121..084291a 100644 --- a/src/views/AiEmotion.vue +++ b/src/views/AiEmotion.vue @@ -21,7 +21,7 @@
-
+
AI情绪大模型正在努力为您加载,请稍候...
From 809df7fcffd72b13db86d08f3544830c835d4632 Mon Sep 17 00:00:00 2001 From: dongqian <3475123872@qq.com> Date: Fri, 4 Jul 2025 19:13:06 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E6=83=85=E7=BB=AA=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=E6=A0=87=E9=A2=98=E6=98=AF=E6=92=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/AiEmotion.vue | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/views/AiEmotion.vue b/src/views/AiEmotion.vue index 864a61f..909763c 100644 --- a/src/views/AiEmotion.vue +++ b/src/views/AiEmotion.vue @@ -1531,7 +1531,7 @@ defineExpose({ display: flex; align-items: center; justify-content: center; - gap: 25vw; + gap: 25%; /* flex-direction: column; */ /* gap: 1rem; */ } @@ -1565,6 +1565,7 @@ defineExpose({ background-size: 100% 100%; /* width: 50%; */ width: 30vw; + max-width: 400px; min-width: 200px; min-height: 40px; text-align: center; @@ -1582,6 +1583,7 @@ defineExpose({ background-size: 100% 100%; /* width: 35%; */ width: 30vw; + max-width: 400px; min-width: 200px; min-height: 40px; text-align: center;