Browse Source

替换了树的图片;取消登录送token;按钮图片逻辑修改;核心看点样式优化;

ds_hxl
宋杰 2 weeks ago
parent
commit
25192b19c5
  1. BIN
      src/assets/img/AiEmotion/tree02.jpg
  2. BIN
      src/assets/img/AiEmotion/tree02.png
  3. 8
      src/assets/js/useProjectTracking.js
  4. 90
      src/views/AiEmotion.vue
  5. 5
      src/views/components/emoEnergyConverter.vue
  6. 2
      src/views/components/emotionDecod.vue
  7. 5
      src/views/components/marketTemperature.vue
  8. 98
      src/views/homePage.vue

BIN
src/assets/img/AiEmotion/tree02.jpg

After

Width: 2400  |  Height: 1200  |  Size: 1.2 MiB

BIN
src/assets/img/AiEmotion/tree02.png

Before

Width: 351  |  Height: 176  |  Size: 98 KiB

8
src/assets/js/useProjectTracking.js

@ -40,10 +40,10 @@ export function useProjectTracking(projectRoutes) {
token: token
})
console.log(result);
const result2 = addUsageAPI({
token: token,
})
console.log(result2);
// const result2 = addUsageAPI({
// token: token,
// })
// console.log(result2);
}else{
console.log('没有token');
}

90
src/views/AiEmotion.vue

@ -100,10 +100,14 @@
</div>
<div class="bk-image">
<div class="text-container">
<p>情绪监控-金融宇宙的量子检测网络核心任务:构建全市场情绪引力场雷达</p>
<p>情绪解码-主力思维的神经破译矩阵核心任务:解构资金行为的量子密码</p>
<p>情绪推演-未来战争的时空推演舱核心任务:情绪推演</p>
<p>情绪套利-财富裂变的粒子对撞机核心任务:将情绪差转化为a收益粒子流</p>
<p><span class="title">🔍 情绪监控-金融宇宙的量子检测网络</span>
<span class="content">核心任务:构建全市场情绪引力场雷达实时监测资金流向和情绪波动</span></p>
<p><span class="title">🧠 情绪解码-主力思维的神经破译矩阵</span>
<span class="content">核心任务:解构资金行为的量子密码破译主力操盘意图和策略布局</span></p>
<p><span class="title">🔮 情绪推演-未来战争的时空推演舱</span>
<span class="content">核心任务:基于情绪数据推演未来走势预测市场转折点和机会窗口</span></p>
<p><span class="title">💰 情绪套利-财富裂变的粒子对撞机</span>
<span class="content">核心任务:将情绪差转化为收益粒子流实现情绪能量的价值转换</span></p>
</div>
</div>
<!-- 核心逻辑 -->
@ -115,7 +119,7 @@
<img src="@/assets/img/AiEmotion/量子神经决策树.png" alt="树标题">
</div>
<div class="scaled-img">
<img src="@/assets/img/AiEmotion/tree02.png" alt="树图片">
<!-- <img src="@/assets/img/AiEmotion/tree02.jpg" alt="树图片"> -->
</div>
</div>
<!-- 场景应用 -->
@ -1235,18 +1239,14 @@ defineExpose({
opacity: 0.8;
}
&:hover {
background: linear-gradient(135deg, rgba(0, 212, 255, 0.25) 0%, rgba(0, 150, 255, 0.15) 100%);
transform: translateY(-2px) scale(1.02);
box-shadow: 0 8px 25px rgba(0, 212, 255, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
&:last-child {
margin-bottom: 0;
}
.conclusion-title {
color: #fff000;
color: #FFD700;
font-size: 22px;
font-weight: bold;
margin: 0 0 15px 0;
@ -1269,7 +1269,7 @@ defineExpose({
.conclusion-text {
color: #ffffff;
font-size: 16px;
font-size: 20px;
line-height: 1.8;
margin: 0 0 12px 0;
text-align: left;
@ -1353,12 +1353,22 @@ defineExpose({
opacity: 0.8;
}
.text-container p:hover {
background: linear-gradient(135deg, rgba(0, 212, 255, 0.25) 0%, rgba(0, 150, 255, 0.15) 100%);
transform: translateY(-2px) scale(1.02);
box-shadow: 0 8px 25px rgba(0, 212, 255, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
.text-container .title {
display: block;
color: #FFD700;
font-weight: bold;
margin-bottom: 10px;
font-size: 22px;
}
.text-container .content {
display: block;
color: white;
font-size: 20px;
}
.class07 {
background-image: url("@/assets/img/AiEmotion/bk03.png");
/* 使用导入的背景图片 */
@ -1401,8 +1411,7 @@ defineExpose({
.class0603 {
min-width: 100%;
/* margin: 0 auto; */
margin-top: 3%;
}
.class0502 {
@ -1484,21 +1493,21 @@ defineExpose({
.title2 {
color: white;
font-size: 30px;
font-size: 20px;
font-weight: bold;
margin-left: 44%;
}
.title3 {
color: white;
font-size: 30px;
font-size: 20px;
font-weight: bold;
margin-left: 43%;
}
.title4 {
color: white;
font-size: 2rem;
font-size: 20px;
font-weight: bold;
margin-left: 41.5%;
}
@ -1511,9 +1520,16 @@ defineExpose({
/* 为需要放大的图片添加样式 */
.scaled-img {
transform: scale(2.5);
background-image: url('@/assets/img/AiEmotion/tree02.jpg');
background-size: 100% 100%;
background-position: center;
background-repeat: no-repeat;
width: 70%;
height: 400px;
min-height: 400px;
text-align: center;
margin-top: 8%;
margin: 0 auto;
margin-top: 3%;
}
.lz-img {
@ -1574,7 +1590,7 @@ defineExpose({
/* 设置容器宽度 */
height: auto;
/* 高度根据内容动态变化 */
min-height: 57rem;
min-height: 75rem;
/* 设置最小高度,确保图片显示 */
margin: 0 auto;
}
@ -1777,6 +1793,7 @@ defineExpose({
.container {
padding-top: 2%;
}
.title4 {
color: white;
font-size: 20px;
@ -1790,9 +1807,15 @@ defineExpose({
}
.scaled-img {
transform: scale(1.5);
background-image: url('@/assets/img/AiEmotion/tree02.jpg');
background-size: 100% 100%;
background-position: center;
background-repeat: no-repeat;
text-align: center;
width: 95%;
margin-top: 6%;
height: 200px;
min-height: 200px;
}
.title3 {
@ -1945,11 +1968,10 @@ defineExpose({
.class08 {
background-size: 100% 100%;
background-repeat: no-repeat;
width: 127%;
width: 100%;
height: auto;
min-height: 13rem;
min-height: 20rem;
margin: 0 auto;
margin-left: -41px;
}
.bk-image {
@ -1966,7 +1988,7 @@ defineExpose({
}
.conclusion-title {
color: #fff000;
color: #FFD700;
font-size: 16px;
font-weight: bold;
margin: 0 0 8px 0;
@ -2041,18 +2063,14 @@ defineExpose({
opacity: 0.8;
}
&:hover {
background: linear-gradient(135deg, rgba(0, 212, 255, 0.25) 0%, rgba(0, 150, 255, 0.15) 100%);
transform: translateY(-2px) scale(1.02);
box-shadow: 0 8px 25px rgba(0, 212, 255, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
&:last-child {
margin-bottom: 0;
}
.conclusion-title {
color: #fff000;
color: #FFD700;
font-size: 22px;
font-weight: bold;
margin: 0 0 15px 0;
@ -2075,7 +2093,7 @@ defineExpose({
.conclusion-text {
color: #ffffff;
font-size: 16px;
font-size: 20px;
line-height: 1.8;
margin: 0 0 12px 0;
text-align: left;

5
src/views/components/emoEnergyConverter.vue

@ -280,6 +280,7 @@ function initQXNLZHEcharts(kline, qxnlzhqData) {
type: "candlestick",
data: mixData.map((item) => item.value),
z: 1,
clip: true,
markPoint: {
symbol: 'circle',
symbolSize: 10,
@ -421,7 +422,9 @@ function initQXNLZHEcharts(kline, qxnlzhqData) {
top: '10',
bottom: "0",
containLabel: true,
width: '85%'
width: '85%',
height: 'auto',
overflow: 'hidden'
},
};
//

2
src/views/components/emotionDecod.vue

@ -374,7 +374,7 @@ onBeforeUnmount(() => {
#qxjmqEcharts {
width: 100%;
height: 500px;
height: 800px;
margin-left: 1rem;
top: 5rem;
}

5
src/views/components/marketTemperature.vue

@ -252,7 +252,10 @@ function initChart(raw, klineDataRawValue, WDRLValue) {
{
type: 'slider',
xAxisIndex: 0,
filterMode: 'filter'
filterMode: 'filter',
textStyle: {
color: 'white'
}
},
{
type: 'inside',

98
src/views/homePage.vue

@ -306,7 +306,7 @@ const fnGetToken = () => {
};
// console.log('')
// App
useAppBridge().packageFun("JWwebReady", () => {}, 5, {});
useAppBridge().packageFun("JWwebReady", () => { }, 5, {});
};
// setTimeout
@ -526,16 +526,8 @@ onMounted(async () => {
<img :src="getCountAll" class="action-btn" />
<div class="count-number">{{ UserCount }}</div>
</div>
<img
:src="announcementBtn"
class="announcement-btn action-btn"
@click="showAnnouncement"
/>
<img
:src="feedbackBtn"
class="announcement-btn action-btn"
@click="showFeedback"
/>
<img :src="announcementBtn" class="announcement-btn action-btn" @click="showAnnouncement" />
<img :src="feedbackBtn" class="announcement-btn action-btn" @click="showFeedback" />
</div>
</el-header>
@ -544,28 +536,17 @@ onMounted(async () => {
<div class="main-wrapper">
<section class="tab-section">
<div class="tab-container">
<div
v-for="(tab, index) in tabs"
:key="tab.name"
@click="setActiveTab(tab.name, index)"
:class="[
<div v-for="(tab, index) in tabs" :key="tab.name" @click="setActiveTab(tab.name, index)" :class="[
'tab-item',
{ active: activeIndex === index && !isAnnouncementVisible },
]"
>
]">
<span>{{ tab.label }}</span>
</div>
</div>
</section>
<div class="tab-content" ref="tabContent">
<component
:is="activeComponent"
:messages="messages"
@updateMessage="updateMessage"
@sendMessage="sendMessage"
@ensureAIchat="ensureAIchat"
ref="aiEmotionRef"
/>
<component :is="activeComponent" :messages="messages" @updateMessage="updateMessage"
@sendMessage="sendMessage" @ensureAIchat="ensureAIchat" ref="aiEmotionRef" />
</div>
</div>
</el-main>
@ -578,40 +559,15 @@ onMounted(async () => {
<img v-else :src="thinkNoActive" @click="toggleThink" class="action-btn" />
<img :src="languageBtn" @click="changeLanguage" class="action-btn" /> -->
<!-- 夺宝奇兵大模型按钮 -->
<img
:src="activeTab === 'AIchat' ? dbqbButton02 : dbqbButton01"
@click="setActiveTab('AIchat', 0)"
class="action-btn model-btn"
alt="夺宝奇兵大模型"
/>
<img :src="activeTab === 'AIchat' ? dbqbButton01 : dbqbButton02" @click="setActiveTab('AIchat', 0)"
class="action-btn model-btn" alt="夺宝奇兵大模型" />
<!-- AI情绪大模型按钮 -->
<img
:src="
activeTab === 'AiEmotion' ? emotionButton02 : emotionButton01
"
@click="setActiveTab('AiEmotion', 1)"
class="action-btn model-btn"
alt="AI情绪大模型"
/>
<img
v-if="isVoice"
:src="voice"
@click="toggleVoice"
class="action-btn"
/>
<img
v-else
:src="voiceNoActive"
@click="toggleVoice"
class="action-btn"
/>
<img :src="activeTab === 'AiEmotion' ? emotionButton01 : emotionButton02
" @click="setActiveTab('AiEmotion', 1)" class="action-btn model-btn" alt="AI情绪大模型" />
<img v-if="isVoice" :src="voice" @click="toggleVoice" class="action-btn" />
<img v-else :src="voiceNoActive" @click="toggleVoice" class="action-btn" />
</div>
<img
v-if="!chatStore.isLoading"
:src="sendBtn"
@click="sendMessage"
class="action-btn send-btn"
/>
<img v-if="!chatStore.isLoading" :src="sendBtn" @click="sendMessage" class="action-btn send-btn" />
<div v-else @click="chatStore.setLoading(false)">
<el-icon class="is-loading">
<Loading />
@ -622,17 +578,9 @@ onMounted(async () => {
<!-- 第二行输入框 -->
<div class="footer-second-line">
<img :src="msgBtn" class="msg-icon" />
<el-input
type="textarea"
v-model="message"
@focus="onFocus"
@blur="onBlur"
:autosize="{ minRows: 1, maxRows: 4 }"
placeholder="给AI小财神发消息..."
class="msg-input"
@keydown.enter.exact.prevent="isLoading ? null : sendMessage()"
resize="none"
>
<el-input type="textarea" v-model="message" @focus="onFocus" @blur="onBlur"
:autosize="{ minRows: 1, maxRows: 4 }" placeholder="给AI小财神发消息..." class="msg-input"
@keydown.enter.exact.prevent="isLoading ? null : sendMessage()" resize="none">
</el-input>
</div>
</el-footer>
@ -650,16 +598,8 @@ onMounted(async () => {
<img :src="getCountAll" class="action-btn" />
<div class="count-number">{{ UserCount }}</div>
</div>
<img
:src="announcementBtn"
class="announcement-btn action-btn"
@click="showAnnouncement"
/>
<img
:src="feedbackBtn"
class="announcement-btn action-btn"
@click="showFeedback"
/>
<img :src="announcementBtn" class="announcement-btn action-btn" @click="showAnnouncement" />
<img :src="feedbackBtn" class="announcement-btn action-btn" @click="showFeedback" />
</div>
</el-header>

Loading…
Cancel
Save