26 Commits

Author SHA1 Message Date
宋杰 0605f99c2f 金币兑换token域名修改。 3 days ago
宋杰 20f7f5a071 Merge branch 'milestone-20250710-上线前优化' of http://39.101.133.168:8807/hongxilin/AIxiaocaishen into milestone-20250710-上线前优化 3 days ago
no99 58f0e03f70 Merge branch 'milestone-20250820-金币兑换Token' into dev 3 days ago
no99 ebd6d23934 Merge branch 'hongxilin/feature-20250628153758-财神优化:字正确性,一致性等' into milestone-20250710-上线前优化 3 days ago
no99 5190be38d6 首页跳转优化 3 days ago
宋杰 b92e820cb9 修复情绪大模型历史记录和输入的对话框不一致问题。 4 days ago
宋杰 b29bbedd2d 俩模型对话框一致。 4 days ago
宋杰 bca5a27e28 情绪大模型取消请求前次数判断,由工作流接口进行判断。 4 days ago
宋杰 d23741ee48 Merge branch 'milestone-20250710-上线前优化' of http://39.101.133.168:8807/hongxilin/AIxiaocaishen into songjie/feature-20250628160649-上线前优化 4 days ago
宋杰 be9fc1cb0f 情绪大模型第一个接口请求失败后触发自动滚动。 4 days ago
宋杰 1c86468b86 解决情绪大模型交互图表时触发自动滚动的问题。 4 days ago
宋杰 b1539082be 解决思考过程缺少问题。 4 days ago
宋杰 dac54e1029 Merge branch 'songjie/feature-20250628160649-上线前优化' into milestone-20250710-上线前优化 5 days ago
宋杰 d91325b01d 修改测试配置文件。 5 days ago
宋杰 d48a94646c Merge branch 'songjie/feature-20250628160649-上线前优化' into milestone-20250710-上线前优化 5 days ago
宋杰 2701f1e080 修改打包文件; 5 days ago
宋杰 37856fe2ea Merge branch 'songjie/feature-20250628160649-上线前优化' into milestone-20250710-上线前优化 5 days ago
宋杰 c309ec0ec6 根据环境判断是否取消打印。 5 days ago
宋杰 cb7f4bc674 Merge branch 'songjie/feature-20250628160649-上线前优化' into milestone-20250710-上线前优化 5 days ago
宋杰 53827f94f1 去空格。 5 days ago
宋杰 1581cae71f Merge branch 'milestone-20250710-上线前优化' of http://39.101.133.168:8807/hongxilin/AIxiaocaishen into milestone-20250710-上线前优化 5 days ago
宋杰 fed205d04e 手机端样式调整; 5 days ago
宋杰 4f687c2346 电脑端样式修改; 5 days ago
no99 b155be7b6d 音频状态更改时机修改 5 days ago
no99 cdd78b368c 当接口报错时,把chatStore.firstAPICall打开。 5 days ago
no99 9b0c067f53 发送消息不能换行问题,消息过长时,不靠右的问题 5 days ago
  1. 11
      .env.development
  2. 7
      build/vite/build.js
  3. 25
      src/views/AIchat.vue
  4. 70
      src/views/AiEmotion.vue
  5. 16
      src/views/components/HistoryRecord.vue
  6. 38
      src/views/components/emoEnergyConverter.vue
  7. 38
      src/views/components/emotionDecod.vue
  8. 38
      src/views/components/emotionalBottomRadar.vue
  9. 39
      src/views/components/marketTemperature.vue
  10. 73
      src/views/homePage.vue

11
.env.development

@ -5,12 +5,15 @@ VITE_OUTPUT_DIR = 'dev'
VITE_PUBLIC_PATH = /aixiaocaishen
#新数据接口
VITE_APP_API_BASE_URL = "http://39.101.133.168:8828/link"
# VITE_APP_API_BASE_URL = "https://api.homilychart.com/link"
VITE_APP_API_BASE_CAZE_URL = "http://39.101.133.168:8828/link"
# VITE_APP_API_BASE_URL = "http://39.101.133.168:8828/link"
#金币数据接口
VITE_APP_API_BASE_URL = "https://hwjb.homilychart.com"
# VITE_APP_API_BASE_CAZE_URL = "http://39.101.133.168:8828/link"
# VITE_APP_API_BASE_CAZE_URL = "https://api.homilychart.com/link"
VITE_APP_API_BASE_CAZE_URL = "https://hwjb.homilychart.com"
VITE_APP_API_BASE_HW_URL = "http://39.101.133.168:8828/hljw"
VITE_APP_API_BASE_HW_URL = "https://hwjb.homilychart.com/hljw"
VITE_APP_IMG_API_BASE_URL = "http://39.101.133.168:8828/hljw/api/aws/upload"
#MJ API

7
build/vite/build.js

@ -1,5 +1,6 @@
export function createBuild(viteEnv) {
const { VITE_OUTPUT_DIR } = viteEnv;
const { VITE_OUTPUT_DIR, VITE_ENV } = viteEnv;
const env = VITE_ENV;
return {
sourcemap: false, // 是否启用
outDir: VITE_OUTPUT_DIR,
@ -36,8 +37,8 @@ export function createBuild(viteEnv) {
// 压缩配置
terserOptions: {
compress: {
drop_console: true, // 生产环境移除console
drop_debugger: true // 生产环境移除debugger
drop_console: env == "production", // 生产环境移除console
drop_debugger: env == "production" // 生产环境移除debugger
}
}
};

25
src/views/AIchat.vue

@ -1115,7 +1115,6 @@ watch(
chatStore.messages.push(newVal[newVal.length - 1]);
chatStore.currentUserIndex = chatStore.messages.length - 1;
chatStore.inputUserIndex = chatStore.messages.length - 1;
console.log(
"消息列表已更新,最新消息:",
chatStore.messages[chatStore.messages.length - 1],
@ -1160,12 +1159,12 @@ watch(
codeData.value.name
);
}
for (let i = chatStore.messages.length - 1; i >= 0; --i) {
if (chatStore.messages[i].sender == "user") {
chatStore.messages[i].audioStatus = true;
break;
}
}
// for (let i = chatStore.messages.length - 1; i >= 0; --i) {
// if (chatStore.messages[i].sender == "user") {
// chatStore.messages[i].audioStatus = true;
// break;
// }
// }
chatStore.messages.push({
// class: "ing",
// type: "ing",
@ -1563,6 +1562,9 @@ watch(
audioPreloadStatus.one.url
);
if (chatStore.currentUserIndex == chatStore.inputUserIndex) {
chatStore.messages[
chatStore.inputUserIndex
].audioStatus = true;
addToAudioQueue(audioPreloadStatus.one.url, "API1-第一个");
} else {
chatStore.messages[
@ -2470,10 +2472,12 @@ watch(
});
chatStore.isLoading = false;
chatStore.chatInput = false;
chatStore.firstAPICall = false;
emit("enableInput");
}
} catch (e) {
console.error("请求失败:", e);
chatStore.firstAPICall = false;
hasValidData.value = false; //
// chatStore.messages.pop();
// chatStore.messages.push({
@ -4949,7 +4953,7 @@ p {
/* 用户消息容器样式 */
.user-message-container {
display: flex;
/* align-items: flex-start; */
align-items: flex-end;
margin: 10px 0px;
justify-content: flex-end;
gap: 10px;
@ -4959,6 +4963,8 @@ p {
.user-msg {
margin-left: auto;
display: flex;
flex-direction: column;
}
.user-content {
@ -4966,6 +4972,7 @@ p {
height: 100%;
align-items: center;
margin-right: 5px;
justify-content: flex-end;
}
.user-sendTime {
@ -5010,9 +5017,9 @@ p {
font-weight: bold;
border-radius: 10px;
margin: 0;
width: fit-content;
display: flex;
align-items: center;
word-break: break-word; /* 启用强制换行 */
}
.message-bubble.ai {

70
src/views/AiEmotion.vue

@ -2053,31 +2053,31 @@ async function handleSendMessage(input, onComplete) {
});
//
await chatStore.getUserCount(); //
if (chatStore.UserCount <= 0) {
const aiMessage = reactive({
sender: "ai",
text: "您的剩余次数为0,无法使用情绪大模型,请联系客服或购买服务包。",
});
messages.value.push(aiMessage);
// AIemotion store
emotionStore.addConversation({
sender: "ai",
text: "您的剩余次数为0,无法使用情绪大模型,请联系客服或购买服务包。",
timestamp: new Date().toISOString(),
});
//
isRotating.value = false;
messages.value = [...previousMessages, ...messages.value];
//
if (onComplete && typeof onComplete === "function") {
onComplete();
//
currentOnCompleteCallback.value = null;
}
return;
}
// await chatStore.getUserCount(); //
// if (chatStore.UserCount <= 0) {
// const aiMessage = reactive({
// sender: "ai",
// text: "0使",
// });
// messages.value.push(aiMessage);
// // AIemotion store
// emotionStore.addConversation({
// sender: "ai",
// text: "0使",
// timestamp: new Date().toISOString(),
// });
// //
// isRotating.value = false;
// messages.value = [...previousMessages, ...messages.value];
// //
// if (onComplete && typeof onComplete === "function") {
// onComplete();
// //
// currentOnCompleteCallback.value = null;
// }
// return;
// }
//
const thinkingMessageRef = await showThinkingProcess();
@ -2138,6 +2138,12 @@ async function handleSendMessage(input, onComplete) {
});
isRotating.value = false;
messages.value = [...previousMessages, ...messages.value];
//
nextTick(() => {
scrollToBottom();
});
//
if (onComplete && typeof onComplete === "function") {
onComplete();
@ -2152,7 +2158,7 @@ async function handleSendMessage(input, onComplete) {
if (thinkingMessageRef && parsedData.name) {
thinkingMessage3Ref = await continueThinkingProcess(
thinkingMessageRef,
// parsedData.name
parsedData.name
);
}
//
@ -4093,10 +4099,18 @@ const emit = defineEmits(["updateMessage", "sendMessage", "ensureAIchat", "enabl
.user-content {
display: flex;
height: 100%;
align-items: center;
align-items: flex-start;
margin-right: 5px;
}
/* 确保历史记录模式下用户消息也能正确换行 */
.user-content .user-message {
white-space: pre-wrap;
word-wrap: break-word;
word-break: break-word;
overflow-wrap: break-word;
}
.user-message-speaker {
width: 32px;
height: 32px;
@ -4141,7 +4155,7 @@ const emit = defineEmits(["updateMessage", "sendMessage", "ensureAIchat", "enabl
font-weight: bold;
padding: 15px 20px;
border-radius: 15px;
max-width: 60%;
max-width: 80%;
text-align: left;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
margin: 0;

16
src/views/components/HistoryRecord.vue

@ -16,7 +16,7 @@
<img
class="collapsed-toggle-btn"
@click="openHistory"
src="https://d31zlh4on95l9h.cloudfront.net/images/b2d784f8607ab65081f5289459581bfe.png"
src="https://d31zlh4on95l9h.cloudfront.net/images/815e7ebfb1963eadca9435e82c3c4a8d.png"
alt="icon"
title="打开边栏"
/>
@ -30,7 +30,7 @@
>
<img
class="collapsed-bottom-announcement"
src="https://d31zlh4on95l9h.cloudfront.net/images/c51c7fbb68671729801fb10d65bd7789.png"
src="https://d31zlh4on95l9h.cloudfront.net/images/172be9b9c4d936f2f6b182ef7a4bed10.png"
alt="icon"
/>
</div>
@ -41,7 +41,7 @@
>
<img
class="collapsed-bottom-feedback"
src="https://d31zlh4on95l9h.cloudfront.net/images/41d6e25c19466718d462bcee2f050140.png"
src="https://d31zlh4on95l9h.cloudfront.net/images/ed88a0a7095c3cd1e0b51ffcca7f4068.png"
alt="icon"
/>
</div>
@ -62,7 +62,7 @@
<img
class="toggle-btn"
@click="closeHistory"
src="https://d31zlh4on95l9h.cloudfront.net/images/b2d784f8607ab65081f5289459581bfe.png"
src="https://d31zlh4on95l9h.cloudfront.net/images/815e7ebfb1963eadca9435e82c3c4a8d.png"
alt="icon"
title="收起边栏"
/>
@ -184,14 +184,14 @@
<div class="bottom-btn" @click="handleAnnouncementClick" title="公告">
<img
class="bottom-announcement"
src="https://d31zlh4on95l9h.cloudfront.net/images/c51c7fbb68671729801fb10d65bd7789.png"
src="https://d31zlh4on95l9h.cloudfront.net/images/172be9b9c4d936f2f6b182ef7a4bed10.png"
alt="icon"
/>
</div>
<div class="bottom-btn" @click="handleFeedbackClick" title="用户反馈">
<img
class="bottom-feedback"
src="https://d31zlh4on95l9h.cloudfront.net/images/41d6e25c19466718d462bcee2f050140.png"
src="https://d31zlh4on95l9h.cloudfront.net/images/ed88a0a7095c3cd1e0b51ffcca7f4068.png"
alt="icon"
/>
</div>
@ -346,7 +346,7 @@
>
<img
class="mobile-bottom-announcement"
src="https://d31zlh4on95l9h.cloudfront.net/images/c51c7fbb68671729801fb10d65bd7789.png"
src="https://d31zlh4on95l9h.cloudfront.net/images/172be9b9c4d936f2f6b182ef7a4bed10.png"
alt="icon"
/>
<div class="mobile-bottom-text">公告</div>
@ -358,7 +358,7 @@
>
<img
class="mobile-bottom-feedback"
src="https://d31zlh4on95l9h.cloudfront.net/images/41d6e25c19466718d462bcee2f050140.png"
src="https://d31zlh4on95l9h.cloudfront.net/images/ed88a0a7095c3cd1e0b51ffcca7f4068.png"
alt="icon"
/>
<div class="mobile-bottom-text">用户反馈</div>

38
src/views/components/emoEnergyConverter.vue

@ -862,6 +862,44 @@ function initQXNLZHEcharts(kline, qxnlzhqData) {
};
//
qxnlzhqEchartsInstance.setOption(option);
//
if (qxnlzhqEchartsInstance) {
//
qxnlzhqEchartsInstance.on('dataZoom', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
//
qxnlzhqEchartsInstance.on('mousewheel', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
//
qxnlzhqEchartsInstance.on('mousedown', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
//
qxnlzhqEchartsInstance.on('mouseup', () => {
if (window.handleChartInteractionEnd) {
window.handleChartInteractionEnd();
}
});
//
qxnlzhqEchartsInstance.on('click', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
}
// resize
const debounce = (func, wait) => {

38
src/views/components/emotionDecod.vue

@ -412,6 +412,44 @@ function initQXNLZHEcharts(kline, qxnlzhqData) {
}
KlineCanvsChart = echarts.init(KlineCanvs.value);
KlineCanvsChart.setOption(KlineOption);
//
if (KlineCanvsChart) {
//
KlineCanvsChart.on('dataZoom', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
//
KlineCanvsChart.on('mousewheel', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
//
KlineCanvsChart.on('mousedown', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
//
KlineCanvsChart.on('mouseup', () => {
if (window.handleChartInteractionEnd) {
window.handleChartInteractionEnd();
}
});
//
KlineCanvsChart.on('click', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
}
// resize
const debounce = (func, wait) => {

38
src/views/components/emotionalBottomRadar.vue

@ -676,6 +676,44 @@ function initEmotionalBottomRadar(KlineData, barAndLineData) {
// 使
bottomRadarChart.setOption(option)
//
if (bottomRadarChart) {
//
bottomRadarChart.on('dataZoom', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
//
bottomRadarChart.on('mousewheel', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
//
bottomRadarChart.on('mousedown', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
//
bottomRadarChart.on('mouseup', () => {
if (window.handleChartInteractionEnd) {
window.handleChartInteractionEnd();
}
});
//
bottomRadarChart.on('click', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
}
//
if (bottomRadarRef.value) {

39
src/views/components/marketTemperature.vue

@ -678,6 +678,45 @@ function initChart(raw, klineDataRawValue, WDRLValue) {
},
],
});
//
if (chartInstance) {
//
chartInstance.on('dataZoom', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
//
chartInstance.on('mousewheel', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
//
chartInstance.on('mousedown', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
//
chartInstance.on('mouseup', () => {
if (window.handleChartInteractionEnd) {
window.handleChartInteractionEnd();
}
});
//
chartInstance.on('click', () => {
if (window.handleChartInteractionStart) {
window.handleChartInteractionStart();
}
});
}
// resize
const debounce = (func, wait) => {
let timeout;

73
src/views/homePage.vue

@ -365,6 +365,8 @@ const aiEmotionHeightObserver = ref(null);
const isAiEmotionAutoScrollEnabled = ref(false);
const isAiEmotionUserScrolling = ref(false); //
const aiEmotionScrollTimer = ref(null); //
const isChartInteracting = ref(false); //
const chartInteractionTimer = ref(null); //
//
const getCurrentScrollContainer = () => {
@ -404,7 +406,8 @@ const debouncedAiEmotionScrollToBottom = _.debounce(() => {
if (
activeTab.value === "AiEmotion" &&
isAiEmotionAutoScrollEnabled.value &&
!isAiEmotionUserScrolling.value
!isAiEmotionUserScrolling.value &&
!isChartInteracting.value
) {
const container = tabContentAiEmotion.value;
if (container) {
@ -422,7 +425,11 @@ const startAiEmotionHeightObserver = () => {
// ResizeObserver
aiEmotionHeightObserver.value = new ResizeObserver((entries) => {
if (isAiEmotionAutoScrollEnabled.value && activeTab.value === "AiEmotion") {
if (
isAiEmotionAutoScrollEnabled.value &&
activeTab.value === "AiEmotion" &&
!isChartInteracting.value
) {
debouncedAiEmotionScrollToBottom();
}
});
@ -456,7 +463,8 @@ const startAiEmotionHeightObserver = () => {
if (
shouldScroll &&
isAiEmotionAutoScrollEnabled.value &&
activeTab.value === "AiEmotion"
activeTab.value === "AiEmotion" &&
!isChartInteracting.value
) {
debouncedAiEmotionScrollToBottom();
}
@ -505,6 +513,34 @@ const handleAiEmotionUserScroll = () => {
// }, 2000);
};
//
const handleChartInteractionStart = () => {
console.log("图表交互开始,临时禁用自动滚动");
isChartInteracting.value = true;
//
if (chartInteractionTimer.value) {
clearTimeout(chartInteractionTimer.value);
}
};
const handleChartInteractionEnd = () => {
//
if (chartInteractionTimer.value) {
clearTimeout(chartInteractionTimer.value);
}
// 1
chartInteractionTimer.value = setTimeout(() => {
isChartInteracting.value = false;
console.log("图表交互结束,恢复自动滚动");
}, 1000);
};
// 使
window.handleChartInteractionStart = handleChartInteractionStart;
window.handleChartInteractionEnd = handleChartInteractionEnd;
// AiEmotion
const handleAiEmotionScrollToBottom = () => {
if (activeTab.value === "AiEmotion") {
@ -887,12 +923,14 @@ const backToHome = () => {
if (env == "development" || env == "test") {
window.parent.location.href =
"http://121.89.234.155:8807/hljw/homepage?menu=999999991";
} else if (env == "product") {
window.parent.location.href =
"https://web.homilychart.com/product/hljw/homepage?menu=999999991";
} else if (env == "production") {
window.parent.location.href =
"https://web.homilychart.com/hljw/homepage?menu=999999991";
} else {
window.parent.postMessage(
{
type: "NAVIGATE_TO_HOMEPAGE",
menu: "999999991",
},
"*"
);
}
// window.parent.location.href = window.parent.document.referrer
}
@ -1087,6 +1125,17 @@ onUnmounted(() => {
}
// AiEmotion
stopAiEmotionHeightObserver();
//
if (chartInteractionTimer.value) {
clearTimeout(chartInteractionTimer.value);
}
if (window.handleChartInteractionStart) {
delete window.handleChartInteractionStart;
}
if (window.handleChartInteractionEnd) {
delete window.handleChartInteractionEnd;
}
});
</script>
@ -1141,7 +1190,7 @@ onUnmounted(() => {
</div>
<div class="backToHomeBtn" @click="backToHome()">
<img
src="https://d31zlh4on95l9h.cloudfront.net/images/d8b388e461423f79087ddbe016002217.png"
src="https://d31zlh4on95l9h.cloudfront.net/images/9cbc5b2eb2327bd04d015c19d8c3f1f9.png"
alt="返回首页"
class="backImg"
/>
@ -1190,7 +1239,7 @@ onUnmounted(() => {
</div>
<div class="pc-backToHomeBtn" @click="backToHome()">
<img
src="https://d31zlh4on95l9h.cloudfront.net/images/d8b388e461423f79087ddbe016002217.png"
src="https://d31zlh4on95l9h.cloudfront.net/images/9cbc5b2eb2327bd04d015c19d8c3f1f9.png"
alt="返回首页"
class="pc-backImg"
/>
@ -1750,7 +1799,7 @@ body {
}
.backImg {
width: 100%;
width: 60%;
height: auto;
}

Loading…
Cancel
Save