Browse Source

Merge branch 'milestone-20250909-周更新分支' into dev

master
宋杰 1 day ago
parent
commit
248562b746
  1. 2
      src/views/AiEmotion.vue
  2. 6
      src/views/Announcement.vue
  3. 17
      src/views/Feedback.vue
  4. 9
      src/views/Selectmodel.vue
  5. 1
      src/views/components/HistoryRecord.vue
  6. 4
      src/views/components/marketTemperature.vue
  7. 179
      src/views/homePage.vue

2
src/views/AiEmotion.vue

@ -4696,7 +4696,7 @@ const emit = defineEmits(["updateMessage", "sendMessage", "ensureAIchat", "enabl
} }
/* 图片样式 */ /* 图片样式 */
.golden-wheel img {
.golden-wheel-img {
width: 50%; width: 50%;
} }

6
src/views/Announcement.vue

@ -99,11 +99,11 @@ onMounted(() => {
}); });
</script> </script>
<template> <template>
<div>
<!-- <div>
<div> <div>
<img :src="back" alt="返回按钮" class="backImg" @click="feedbackBack" /> <img :src="back" alt="返回按钮" class="backImg" @click="feedbackBack" />
</div> </div>
</div>
</div> -->
<div class="main-wrapper"> <div class="main-wrapper">
<div v-if="showVideoContainer" class="video-container"> <div v-if="showVideoContainer" class="video-container">
<video <video
@ -134,6 +134,7 @@ onMounted(() => {
> >
<div class="announcementItem"> <div class="announcementItem">
{{ item.market }} {{ item.market }}
<br>
<span <span
class="codeItem" class="codeItem"
v-for="(code, index) in item.code" v-for="(code, index) in item.code"
@ -216,5 +217,6 @@ p {
.code { .code {
cursor: pointer; cursor: pointer;
white-space: nowrap;
} }
</style> </style>

17
src/views/Feedback.vue

@ -217,11 +217,11 @@ onMounted(() => {
<template> <template>
<el-container> <el-container>
<div>
<!-- <div>
<div> <div>
<img :src="back" alt="返回按钮" class="backImg" @click="feedbackBack" /> <img :src="back" alt="返回按钮" class="backImg" @click="feedbackBack" />
</div> </div>
</div>
</div> -->
<el-scrollbar> <el-scrollbar>
<el-header> <el-header>
<div class="feedbackImgClass"> <div class="feedbackImgClass">
@ -337,7 +337,11 @@ onMounted(() => {
<img w-full :src="dialogImageUrl" alt="Preview Image" /> <img w-full :src="dialogImageUrl" alt="Preview Image" />
</el-dialog> </el-dialog>
<el-dialog v-model="feedbackBackDialogVisible" class="save-dialog">
<el-dialog
v-model="feedbackBackDialogVisible"
class="save-dialog"
align-center
>
<div class="imgLine"> <div class="imgLine">
<img class="dialogImg" :src="save" alt="保存" /> <img class="dialogImg" :src="save" alt="保存" />
</div> </div>
@ -365,6 +369,7 @@ onMounted(() => {
<el-dialog <el-dialog
v-model="feedbackContentOverLengthDialogVisible" v-model="feedbackContentOverLengthDialogVisible"
class="save-dialog" class="save-dialog"
align-center
> >
<div class="feedbackContentOverLengthTitle">温馨提示</div> <div class="feedbackContentOverLengthTitle">温馨提示</div>
<div class="feedbackContentOverLengthContent">当前输入字数已达上限</div> <div class="feedbackContentOverLengthContent">当前输入字数已达上限</div>
@ -378,7 +383,7 @@ onMounted(() => {
</div> </div>
</el-dialog> </el-dialog>
<el-dialog v-model="submitSuccessDialogVisible" class="save-dialog">
<el-dialog v-model="submitSuccessDialogVisible" class="save-dialog" align-center>
<div class="imgLine"> <div class="imgLine">
<img class="dialogImg" :src="success" alt="成功" /> <img class="dialogImg" :src="success" alt="成功" />
</div> </div>
@ -659,6 +664,10 @@ onMounted(() => {
width: 100px; width: 100px;
height: 100px; height: 100px;
} }
.save-dialog {
width: 80%;
}
} }
.feedbackContentOverLengthBtn { .feedbackContentOverLengthBtn {

9
src/views/Selectmodel.vue

@ -150,6 +150,7 @@ const goToEmotionsmodel = () => {
flex-wrap: nowrap; flex-wrap: nowrap;
position: absolute; position: absolute;
top: 40vh; top: 40vh;
z-index: 5;
} }
.btn-item { .btn-item {
@ -320,7 +321,7 @@ const goToEmotionsmodel = () => {
.footer-text1 { .footer-text1 {
background-image: url("@/assets/img/Selectmodel/智能体.png"); background-image: url("@/assets/img/Selectmodel/智能体.png");
width: 100vw; width: 100vw;
height: 60px;
height: 10vw;
margin-top: 10px; margin-top: 10px;
background-size: 100% 100%; background-size: 100% 100%;
/* 保证全宽显示 */ /* 保证全宽显示 */
@ -328,9 +329,13 @@ const goToEmotionsmodel = () => {
.footer-text2 { .footer-text2 {
width: 70vw; width: 70vw;
height: 24px;
margin-top: 10px; margin-top: 10px;
} }
.footer-wrapper{
gap: 0;
}
} }
/* 平板适配 */ /* 平板适配 */

1
src/views/components/HistoryRecord.vue

@ -383,6 +383,7 @@
v-model="deleteDialogVisible" v-model="deleteDialogVisible"
title="永久删除记录" title="永久删除记录"
:width="computedDialogWidth" :width="computedDialogWidth"
align-center
> >
<span>删除后该记录将不可恢复确认删除吗</span> <span>删除后该记录将不可恢复确认删除吗</span>
<template #footer> <template #footer>

4
src/views/components/marketTemperature.vue

@ -1083,8 +1083,8 @@ defineExpose({ initChart });
font-size: calc(10px + 1.5vw); font-size: calc(10px + 1.5vw);
color: #00ffff; color: #00ffff;
position: absolute; position: absolute;
bottom: 42%;
left: 30px;
bottom: 60%;
left: 10px;
} }
.secondTitle { .secondTitle {

179
src/views/homePage.vue

@ -37,6 +37,7 @@ import voiceNoActive from "../assets/img/homePage/tail/voice-no-active.png";
import sendBtn from "../assets/img/homePage/tail/send.png"; import sendBtn from "../assets/img/homePage/tail/send.png";
import msgBtn from "../assets/img/homePage/tail/msg.png"; import msgBtn from "../assets/img/homePage/tail/msg.png";
import feedbackBtn from "../assets/img/Feedback/feedbackBtn.png"; import feedbackBtn from "../assets/img/Feedback/feedbackBtn.png";
import back from "../assets/img/Feedback/back.png";
import AiEmotion from "./AiEmotion.vue"; import AiEmotion from "./AiEmotion.vue";
import HistoryRecord from "./components/HistoryRecord.vue"; import HistoryRecord from "./components/HistoryRecord.vue";
@ -333,8 +334,8 @@ const isAnnouncementVisible = ref(false);
// Token // Token
const tokenRuleDialogVisible = ref(false); const tokenRuleDialogVisible = ref(false);
const hasShownTokenRule = ref({ const hasShownTokenRule = ref({
AIchat: sessionStorage.getItem('hasShownTokenRule_AIchat') === 'true',
AiEmotion: sessionStorage.getItem('hasShownTokenRule_AiEmotion') === 'true'
AIchat: sessionStorage.getItem("hasShownTokenRule_AIchat") === "true",
AiEmotion: sessionStorage.getItem("hasShownTokenRule_AiEmotion") === "true",
}); });
// Token // Token
@ -351,25 +352,29 @@ const handleGlobalClick = () => {
}; };
onMounted(() => { onMounted(() => {
document.addEventListener('click', handleGlobalClick);
document.addEventListener("click", handleGlobalClick);
}); });
// //
onUnmounted(() => { onUnmounted(() => {
document.removeEventListener('click', handleGlobalClick);
document.removeEventListener("click", handleGlobalClick);
}); });
// Token // Token
const checkTokenRuleOnPageLoad = () => { const checkTokenRuleOnPageLoad = () => {
const activeTab = sessionStorage.getItem('activeTabAI');
const fromExternalPage = sessionStorage.getItem('fromExternalPage');
const activeTab = sessionStorage.getItem("activeTabAI");
const fromExternalPage = sessionStorage.getItem("fromExternalPage");
if (fromExternalPage === 'true' && activeTab && !hasShownTokenRule.value[activeTab]) {
if (
fromExternalPage === "true" &&
activeTab &&
!hasShownTokenRule.value[activeTab]
) {
tokenRuleDialogVisible.value = true; tokenRuleDialogVisible.value = true;
hasShownTokenRule.value[activeTab] = true; hasShownTokenRule.value[activeTab] = true;
sessionStorage.setItem(`hasShownTokenRule_${activeTab}`, 'true');
sessionStorage.setItem(`hasShownTokenRule_${activeTab}`, "true");
// //
sessionStorage.removeItem('fromExternalPage');
sessionStorage.removeItem("fromExternalPage");
} }
}; };
@ -954,6 +959,10 @@ const expandHistory = () => {
} }
}; };
const feedbackBack = () => {
dataStore.isFeedback = false;
};
const backToHome = () => { const backToHome = () => {
if (isMobile.value) { if (isMobile.value) {
console.log("用户是移动端"); console.log("用户是移动端");
@ -980,11 +989,11 @@ const backToHome = () => {
} else { } else {
window.parent.postMessage( window.parent.postMessage(
{ {
type: 'NAVIGATE_TO_HOMEPAGE',
menu: '999999991'
type: "NAVIGATE_TO_HOMEPAGE",
menu: "999999991",
}, },
'*'
)
"*"
);
} }
// window.parent.location.href = window.parent.document.referrer // window.parent.location.href = window.parent.document.referrer
} }
@ -1205,8 +1214,6 @@ onMounted(async () => {
sessionStorage.removeItem("activeLevel"); sessionStorage.removeItem("activeLevel");
sessionStorage.setItem("rechargeFlag", "0"); sessionStorage.setItem("rechargeFlag", "0");
} }
}); });
onUnmounted(() => { onUnmounted(() => {
@ -1257,8 +1264,8 @@ onUnmounted(() => {
v-if="!dataStore.isFeedback" v-if="!dataStore.isFeedback"
class="main-container" class="main-container"
:class="{ :class="{
collapsed: historyRecordRef?.isCollapsed && !isMobile,
unCollapsed: !historyRecordRef?.isCollapsed && !isMobile,
collapsed: !isMobile && historyRecordRef?.isCollapsed,
unCollapsed: !isMobile && !historyRecordRef?.isCollapsed,
}" }"
> >
<!-- AI小财神头部 logo 次数 公告 --> <!-- AI小财神头部 logo 次数 公告 -->
@ -1478,10 +1485,15 @@ onUnmounted(() => {
> >
<el-header class="homepage-head"> <el-header class="homepage-head">
<!-- logo --> <!-- logo -->
<!-- <div class="homepage-logo">
<img :src="logo" alt="图片加载失败" class="logo1" />
<img :src="madeInHL" alt="图片加载失败" class="logo2" />
</div> -->
<div class="homepage-logo">
<img
:src="back"
alt="返回按钮"
class="backToHomeImg"
@click="feedbackBack"
/>
<!-- <img :src="madeInHL" alt="图片加载失败" class="logo2" /> -->
</div>
<div class="homepage-right-group"> <div class="homepage-right-group">
<div class="count-badge" @click="showCount"> <div class="count-badge" @click="showCount">
@ -1659,6 +1671,7 @@ onUnmounted(() => {
v-model="confirmDialogVisible" v-model="confirmDialogVisible"
:width="isMobile ? '60%' : '30%'" :width="isMobile ? '60%' : '30%'"
:show-close="false" :show-close="false"
:align-center="isMobile"
> >
<div class="confirmDialogTitle">兑换</div> <div class="confirmDialogTitle">兑换</div>
<div class="confirmDialogContent"> <div class="confirmDialogContent">
@ -1679,6 +1692,7 @@ onUnmounted(() => {
:width="isMobile ? '60%' : '30%'" :width="isMobile ? '60%' : '30%'"
:show-close="false" :show-close="false"
class="changeSuccessDialog" class="changeSuccessDialog"
:align-center="isMobile"
> >
<div class="changeSuccessDialogTitle">兑换成功</div> <div class="changeSuccessDialogTitle">兑换成功</div>
<div class="changeSuccessDialogContent"> <div class="changeSuccessDialogContent">
@ -1687,7 +1701,11 @@ onUnmounted(() => {
</el-dialog> </el-dialog>
<!-- Token规则提示框 --> <!-- Token规则提示框 -->
<div v-if="tokenRuleDialogVisible" class="tokenRuleDialog" @click="closeTokenRuleDialog">
<div
v-if="tokenRuleDialogVisible"
class="tokenRuleDialog"
@click="closeTokenRuleDialog"
>
<div class="tokenRuleDialogContent" @click.stop> <div class="tokenRuleDialogContent" @click.stop>
<div class="tokenRuleDialogClose" @click="closeTokenRuleDialog"> <div class="tokenRuleDialogClose" @click="closeTokenRuleDialog">
<el-icon><Close /></el-icon> <el-icon><Close /></el-icon>
@ -1696,16 +1714,30 @@ onUnmounted(() => {
<div class="tokenRuleSection"> <div class="tokenRuleSection">
<div class="tokenRuleSectionTitle">Token消耗规则</div> <div class="tokenRuleSectionTitle">Token消耗规则</div>
<div class="tokenRuleItem"> "夺宝奇兵大模型""AI情绪大模型"中搜索股票若搜索成功内容正常生成则会消耗1Token</div>
<div class="tokenRuleItem"> "夺宝奇兵大模型""AI情绪大模型"中搜索股票若搜索有误无法生成内容则不会消耗Token</div>
<div class="tokenRuleItem"> 搜索同一只股票产出内容相同时只扣除1Token</div>
<div class="tokenRuleItem"> "夺宝奇兵""AI小财神"中Token是互通的</div>
<div class="tokenRuleItem">
"夺宝奇兵大模型""AI情绪大模型"中搜索股票若搜索成功内容正常生成则会消耗1Token
</div>
<div class="tokenRuleItem">
"夺宝奇兵大模型""AI情绪大模型"中搜索股票若搜索有误无法生成内容则不会消耗Token
</div>
<div class="tokenRuleItem">
搜索同一只股票产出内容相同时只扣除1Token
</div>
<div class="tokenRuleItem">
"夺宝奇兵""AI小财神"中Token是互通的
</div>
</div> </div>
<div class="tokenRuleSection"> <div class="tokenRuleSection">
<div class="tokenRuleSectionTitle">Token兑换规则</div> <div class="tokenRuleSectionTitle">Token兑换规则</div>
<div class="tokenRuleItem"> 点击右上角"获取Token"即可进入Token兑换页进行金币兑换Token</div>
<div class="tokenRuleItem"> 金币兑换Token的比例为1金币=1Token一经兑换不予退还</div>
<div class="tokenRuleItem">
点击右上角"获取Token"即可进入Token兑换页进行金币兑换Token
</div>
<div class="tokenRuleItem">
金币兑换Token的比例为1金币=1Token一经兑换不予退还
</div>
</div> </div>
<div class="tokenRuleNote"> <div class="tokenRuleNote">
@ -1770,6 +1802,12 @@ onUnmounted(() => {
padding: 0 6%; padding: 0 6%;
} }
.backToHomeImg {
width: 40px;
height: 40px;
margin-left: 10px;
}
@media (max-width: 768px) { @media (max-width: 768px) {
.tab-container { .tab-container {
gap: 15px; gap: 15px;
@ -1832,22 +1870,6 @@ body {
/* -webkit-overflow-scrolling: touch; */ /* -webkit-overflow-scrolling: touch; */
} }
.main-container {
flex: 1;
transition: margin-left 0.3s ease;
display: flex;
flex-direction: column;
overflow: hidden;
}
.main-container.unCollapsed {
margin-left: 300px; /* 为历史记录组件留出空间 */
}
/* 当历史记录组件折叠时调整主容器边距 */
.main-container.collapsed {
margin-left: 3%;
}
.zhezhao { .zhezhao {
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -1856,23 +1878,30 @@ body {
position: fixed; position: fixed;
} }
/* 移动端适配 */
@media (max-width: 768px) {
.homepage {
background-image: url("https://d31zlh4on95l9h.cloudfront.net/images/90d31d7052e729c63acb9e2cb94d1307.png");
}
@media (min-width: 769px) {
.main-container { .main-container {
/* margin-left: 280px; */
flex: 1;
transition: margin-left 0.3s ease;
display: flex;
flex-direction: column;
overflow: hidden;
} }
.main-container.unCollapsed { .main-container.unCollapsed {
margin-left: 280px;
margin-left: 300px; /* 为历史记录组件留出空间 */
} }
/* 当历史记录组件折叠时调整主容器边距 */
.main-container.collapsed { .main-container.collapsed {
margin-left: 40px; margin-left: 40px;
} }
} }
/* 移动端适配 */
@media (max-width: 768px) {
.homepage {
background-image: url("https://d31zlh4on95l9h.cloudfront.net/images/90d31d7052e729c63acb9e2cb94d1307.png");
}
}
.homepage .el-container { .homepage .el-container {
height: 100%; height: 100%;
flex-direction: column; flex-direction: column;
@ -1932,10 +1961,10 @@ body {
.homepage-right-group { .homepage-right-group {
display: flex; display: flex;
gap: 8px;
/* gap: 8px; */
align-items: center; align-items: center;
margin-left: auto; margin-left: auto;
margin-right: 20px;
margin-right: 5px;
} }
.homepage-right-group .action-btn { .homepage-right-group .action-btn {
@ -2536,7 +2565,7 @@ body {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
position: fixed; position: fixed;
bottom: 15%;
bottom: 20%;
color: white; color: white;
z-index: 9999; z-index: 9999;
} }
@ -2580,12 +2609,10 @@ body {
font-size: 20px; font-size: 20px;
font-weight: bold; font-weight: bold;
text-align: center; text-align: center;
margin-bottom: 20px;
width: 100%; width: 100%;
} }
.tokenRuleSection { .tokenRuleSection {
margin-bottom: 15px;
width: 100%; width: 100%;
} }
@ -2600,7 +2627,6 @@ body {
color: white; color: white;
font-size: 16px; font-size: 16px;
line-height: 1.5; line-height: 1.5;
margin-bottom: 6px;
} }
.tokenRuleNote { .tokenRuleNote {
@ -2611,22 +2637,24 @@ body {
color: white; color: white;
font-size: 14px; font-size: 14px;
line-height: 1.5; line-height: 1.5;
margin-top: 15px;
text-align: center; text-align: center;
word-wrap: break-word; word-wrap: break-word;
overflow-wrap: break-word; overflow-wrap: break-word;
} }
@media (max-width: 768px) { @media (max-width: 768px) {
.tokenRuleDialog {
bottom: 20%;
}
.tokenRuleDialogContent { .tokenRuleDialogContent {
width: 90vw;
width: 80vw;
padding: 15px 20px; padding: 15px 20px;
max-height: 80vh; max-height: 80vh;
} }
.tokenRuleDialogTitle { .tokenRuleDialogTitle {
font-size: 18px; font-size: 18px;
margin-bottom: 15px;
} }
.tokenRuleSectionTitle { .tokenRuleSectionTitle {
@ -2635,9 +2663,8 @@ body {
} }
.tokenRuleItem { .tokenRuleItem {
font-size: 14px;
font-size: 13px;
line-height: 1.4; line-height: 1.4;
margin-bottom: 5px;
word-wrap: break-word; word-wrap: break-word;
overflow-wrap: break-word; overflow-wrap: break-word;
} }
@ -2645,7 +2672,6 @@ body {
.tokenRuleNote { .tokenRuleNote {
font-size: 12px; font-size: 12px;
padding: 10px; padding: 10px;
margin-top: 12px;
line-height: 1.4; line-height: 1.4;
} }
@ -2656,6 +2682,29 @@ body {
} }
@media (max-width: 768px) { @media (max-width: 768px) {
.logo1 {
max-width: 110px;
width: 25vw;
}
.homepage-right-group {
gap: 10px;
}
.homepage-right-group .action-btn {
height: 30px;
}
.count-number {
top: 10px;
font-size: 12px;
}
.backImg {
width: 40px;
height: auto;
}
.action-btn { .action-btn {
height: 21px; height: 21px;
} }
@ -2782,8 +2831,6 @@ body {
.changeSuccessDialogContent { .changeSuccessDialogContent {
font-size: 1rem; font-size: 1rem;
} }
} }
</style> </style>

Loading…
Cancel
Save