zhaoruhui 6 days ago
parent
commit
6c1b833bf0
  1. 32
      src/views/DBQBmodel.vue
  2. 30
      src/views/Emotionsmodel.vue
  3. 1
      src/views/Selectmodel.vue
  4. 107
      src/views/components/emoEnergyConverter.vue
  5. 27
      src/views/homePage.vue

32
src/views/DBQBmodel.vue

@ -135,7 +135,7 @@ const closeNoPermissionDialog = () => {
<style scoped>
.homepage {
/* background-image: url("@/assets/img/DBQBmodel/bg.png"); */
/* width: 100vw; */
width: 100%;
min-height: 100vh;
background-size: cover;
background-position: center;
@ -143,6 +143,7 @@ const closeNoPermissionDialog = () => {
display: flex;
flex-direction: column;
align-items: center;
overflow-x: hidden;
}
/* 顶部标题图 */
@ -156,12 +157,14 @@ const closeNoPermissionDialog = () => {
}
.bottom-icon {
/* width: 100%; */
width: 100%;
display: flex;
flex-direction: column;
position: absolute;
bottom: 10vh;
left: 0;
right: 0;
margin: 0 auto;
align-items: center;
}
@ -209,6 +212,22 @@ const closeNoPermissionDialog = () => {
border: none;
padding: 0;
cursor: pointer;
animation: breathing 3s ease-in-out infinite;
}
@keyframes breathing {
0% {
transform: scale(1);
opacity: 0.8;
}
50% {
transform: scale(1.1);
opacity: 1;
}
100% {
transform: scale(1);
opacity: 0.8;
}
}
.btn-item img {
@ -224,6 +243,8 @@ const closeNoPermissionDialog = () => {
align-items: center;
position: fixed;
bottom: 15%;
left: 0;
right: 0;
/* margin: auto auto; */
color: white;
}
@ -254,6 +275,11 @@ const closeNoPermissionDialog = () => {
/* 手机适配 - 小屏幕时保持纵向排列 */
@media screen and (max-width: 768px) {
.homepage {
width: 100%;
overflow-x: hidden;
}
.top-icon {
margin-top: 12%;
width: 90%;

30
src/views/Emotionsmodel.vue

@ -147,16 +147,19 @@ const closeNoPermissionDialog = () => {
width: 20vw;
min-width: 300px;
height: auto;
position: absolute;
top: 10vh;
/* position: absolute; */
/* top: 10vh; */
}
.bottom-icon {
display: flex;
flex-direction: column;
align-items: center;
position: absolute;
/* position: absolute;
bottom: 0vh;
left: 0;
right: 0;
margin: 0 auto; */
}
/* 四维体系整体容器修复 */
@ -198,6 +201,22 @@ const closeNoPermissionDialog = () => {
border: none;
cursor: pointer;
transition: transform 0.3s ease;
animation: breathing 3s ease-in-out infinite;
}
@keyframes breathing {
0% {
transform: scale(1);
opacity: 0.8;
}
50% {
transform: scale(1.1);
opacity: 1;
}
100% {
transform: scale(1);
opacity: 0.8;
}
}
.btn-item:hover {
@ -216,6 +235,8 @@ const closeNoPermissionDialog = () => {
align-items: center;
position: fixed;
bottom: 15%;
left: 0;
right: 0;
/* margin: auto auto; */
color: white;
}
@ -255,6 +276,7 @@ const closeNoPermissionDialog = () => {
@media (max-width: 768px) {
.homepage {
min-height: 100vh;
width: 100%;
background-image: url("@/assets/img/DBQBmodel/手机背景.png");
background-size: cover;
background-position: center;
@ -263,11 +285,13 @@ const closeNoPermissionDialog = () => {
flex-direction: column;
justify-content: space-evenly;
align-items: center;
overflow-x: hidden;
}
.top-icon {
width: 80vw;
margin-top: -1vh;
scale: 0.8;
}
.sub-title {

1
src/views/Selectmodel.vue

@ -186,6 +186,7 @@ const goToEmotionsmodel = () => {
height: 150px;
width: 100%;
background-image: url("@/assets/img/Selectmodel/-s-夺宝奇兵logo.png");
scale: 0.8;
}
.btn-ai {

107
src/views/components/emoEnergyConverter.vue

@ -5,7 +5,6 @@
<script setup>
import { ref, onMounted, onBeforeUnmount, toRef, reactive } from 'vue'
import { useLanguage } from '@/utils/languageService'
import { ElMessage } from 'element-plus'
import * as echarts from 'echarts'
// import { text } from 'stream/consumers'
// import { start } from 'repl'
@ -20,8 +19,8 @@ let markLineRegions = reactive([])
const dataMax = ref(null)
//
function getNameTop(min, max, regionMin, regionMax, regionMiidle) {
max = Math.min(max, regionMax)
min = Math.max(min, regionMin)
// max = Math.min(max, regionMax)
// min = Math.max(min, regionMin)
// console.log(
// 'min',
@ -40,10 +39,10 @@ function getNameTop(min, max, regionMin, regionMax, regionMiidle) {
const chartHeight = qxnlzhqEchartsInstance.getHeight()
const topHeight = 40
const bottomHeight = 60
const dataZoomHeight = 20
const noHeight = topHeight + bottomHeight + dataZoomHeight
// console.log('%', ((max - Number(regionMiidle)) / (max - min)) * (chartHeight - noHeight))
// console.log(chartHeight)
const xDateFontSize = window.innerHeight > 769 ? 12 + 5 : 9 + 5
const noHeight = topHeight + bottomHeight + xDateFontSize
console.log('%', ((max - Number(regionMiidle)) / (max - min)) * (chartHeight - noHeight))
console.log('chartHeight', chartHeight)
// 60: x20:
return ((max - Number(regionMiidle)) / (max - min)) * (chartHeight - noHeight)
// return 2.84
@ -105,14 +104,16 @@ const generateGraphics = (min, max) => {
right: region.right,
top:
window.innerWidth > 769
? 40 - 6 + getNameTop(min, max, regionMin, regionMax, safeY)
: 40 - 3 + getNameTop(min, max, regionMin, regionMax, safeY),
? 40 + getNameTop(min, max, regionMin, regionMax, safeY) - 6
: 40 + getNameTop(min, max, regionMin, regionMax, safeY) - 4.5,
// top: 40,
style: {
text: region.name,
fill: region.fontColor,
fontSize: window.innerWidth > 769 ? 12 : 9,
fontWeight: 'bold'
fontWeight: 'bold',
// 使
textVerticalAlign: 'middle'
},
z: 2
})
@ -349,13 +350,21 @@ function initQXNLZHEcharts(kline, qxnlzhqData) {
}
let markLineMax = Math.max(
Math.ceil(dataMax * 1.02),
qxnlzhqData.yl > 0 ? qxnlzhqData.yl : Math.ceil(dataMax * 1.02),
stopProfitPrice * 1.02
dataMax * 1.02,
stopProfitPrice * 1.02,
qxnlzhqData.cc,
qxnlzhqData.dd,
qxnlzhqData.gg,
qxnlzhqData.ht,
qxnlzhqData.js,
qxnlzhqData.qs,
qxnlzhqData.tp,
qxnlzhqData.yl,
qxnlzhqData.zc
)
markLineRegions = regions.filter((region) => {
return region.max < markLineMax
return region.max <= markLineMax
})
console.log('markLineMax', markLineMax, 'markLineRegions', markLineRegions)
@ -866,7 +875,8 @@ function initQXNLZHEcharts(kline, qxnlzhqData) {
borderColor: 'white'
},
textStyle: {
color: 'white'
color: 'white',
fontSize: window.innerWidth > 769 ? 12 : 9
}
},
{
@ -916,34 +926,67 @@ function initQXNLZHEcharts(kline, qxnlzhqData) {
//
show: true,
color: 'white',
fontSize: window.innerWidth > 769 ? 12 : 9
fontSize: window.innerWidth > 769 ? 12 : 9,
formatter: function (value) {
return parseFloat(value.toFixed(2)).toString()
}
},
axisTick: {
// 线
show: true,
color: 'white'
},
min:
qxnlzhqData.dd < stopLossPrice * 0.98
? Math.floor(qxnlzhqData.dd)
: Math.floor(stopLossPrice * 0.98),
max: Math.round(
Math.max(
Math.ceil(dataMax * 1.02),
qxnlzhqData.yl > 0 ? qxnlzhqData.yl : Math.ceil(dataMax * 1.02),
stopProfitPrice * 1.02
)
// min:
// qxnlzhqData.dd < stopLossPrice * 0.98
// ? Math.floor(qxnlzhqData.dd)
// : Math.floor(stopLossPrice * 0.98),
// max: Math.round(
// Math.max(
// Math.ceil(dataMax * 1.02),
// qxnlzhqData.yl > 0 ? qxnlzhqData.yl : Math.ceil(dataMax * 1.02),
// stopProfitPrice * 1.02
// )
// )
min: Math.min(qxnlzhqData.dd, stopLossPrice * 0.98),
max: Math.max(
dataMax * 1.02,
stopProfitPrice * 1.02,
qxnlzhqData.cc,
qxnlzhqData.dd,
qxnlzhqData.gg,
qxnlzhqData.ht,
qxnlzhqData.js,
qxnlzhqData.qs,
qxnlzhqData.tp,
qxnlzhqData.yl,
qxnlzhqData.zc
)
},
//
// graphic: generateGraphics(
// qxnlzhqData.dd < stopLossPrice * 0.98
// ? Math.floor(qxnlzhqData.dd)
// : Math.floor(stopLossPrice * 0.98),
// Math.max(
// Math.ceil(dataMax * 1.02),
// qxnlzhqData.yl > 0 ? qxnlzhqData.yl : Math.ceil(dataMax * 1.02),
// stopProfitPrice * 1.02
// )
// ),
graphic: generateGraphics(
qxnlzhqData.dd < stopLossPrice * 0.98
? Math.floor(qxnlzhqData.dd)
: Math.floor(stopLossPrice * 0.98),
Math.min(qxnlzhqData.dd, stopLossPrice * 0.98),
Math.max(
Math.ceil(dataMax * 1.02),
qxnlzhqData.yl > 0 ? qxnlzhqData.yl : Math.ceil(dataMax * 1.02),
stopProfitPrice * 1.02
dataMax * 1.02,
stopProfitPrice * 1.02,
qxnlzhqData.cc,
qxnlzhqData.dd,
qxnlzhqData.gg,
qxnlzhqData.ht,
qxnlzhqData.js,
qxnlzhqData.qs,
qxnlzhqData.tp,
qxnlzhqData.yl,
qxnlzhqData.zc
)
),
series: [

27
src/views/homePage.vue

@ -342,6 +342,23 @@ const closeTokenRuleDialog = () => {
tokenRuleDialogVisible.value = false;
};
// 使
// 便
const handleGlobalClick = () => {
if (tokenRuleDialogVisible.value) {
tokenRuleDialogVisible.value = false;
}
};
onMounted(() => {
document.addEventListener('click', handleGlobalClick);
});
//
onUnmounted(() => {
document.removeEventListener('click', handleGlobalClick);
});
// Token
const checkTokenRuleOnPageLoad = () => {
const activeTab = sessionStorage.getItem('activeTabAI');
@ -1670,8 +1687,8 @@ onUnmounted(() => {
</el-dialog>
<!-- Token规则提示框 -->
<div v-if="tokenRuleDialogVisible" class="tokenRuleDialog">
<div class="tokenRuleDialogContent">
<div v-if="tokenRuleDialogVisible" class="tokenRuleDialog" @click="closeTokenRuleDialog">
<div class="tokenRuleDialogContent" @click.stop>
<div class="tokenRuleDialogClose" @click="closeTokenRuleDialog">
<el-icon><Close /></el-icon>
</div>
@ -1681,13 +1698,13 @@ onUnmounted(() => {
<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"> 搜索同一只股票产出内容相同时只扣除1Token</div>
<div class="tokenRuleItem"> "夺宝奇兵""AI小财神"中Token是互通的</div>
</div>
<div class="tokenRuleSection">
<div class="tokenRuleSectionTitle">Token兑换规则</div>
<div class="tokenRuleItem"> 点击右上角"获取Token次数"即可进入Token兑换页进行金币兑换Token</div>
<div class="tokenRuleItem"> 点击右上角"获取Token"即可进入Token兑换页进行金币兑换Token</div>
<div class="tokenRuleItem"> 金币兑换Token的比例为1金币=1Token一经兑换不予退还</div>
</div>
@ -1798,7 +1815,7 @@ body {
/* height: var(--app-height, 100vh); */
height: var(--app-height, 100vh);
margin: 0 auto;
background-image: url("https://d31zlh4on95l9h.cloudfront.net/images/2dc3c13a74100b906e809d26b66db211.png");
background-image: url("https://d31zlh4on95l9h.cloudfront.net/images/98c8230d386012c9f1e70bf05a30de5e.png");
background-size: 100% 100%;
background-repeat: no-repeat;
background-position: center;

Loading…
Cancel
Save