Browse Source

新增弹窗;解决拿不到token的问题;

songjie/feature-20250628160649-上线前优化
宋杰 3 weeks ago
parent
commit
adc34f8538
  1. 153
      src/views/DBQBmodel.vue
  2. 151
      src/views/Emotionsmodel.vue
  3. 19
      src/views/Selectmodel.vue

153
src/views/DBQBmodel.vue

@ -75,7 +75,26 @@ const goToHomePage = async () => {
} else {
console.log("无权限");
noPermissonDialogVisible.value = true;
noPermissonDialogObj.value.msg = res.msg;
noPermissonDialogObj.value.title = "Token规则";
noPermissonDialogObj.value.content = [
{
title: "Token消耗规则",
rules: [
'在"夺宝奇兵大模型"、"AI情绪大模型"中搜索股票,若搜索成功,内容正常生成,则会消耗1Token',
'在"夺宝奇兵大模型"、"AI情绪大模型"中搜索股票,若搜索有误,无法生成内容,则不会消耗Token',
'搜索同一只股票,产出内容相同时,只扣除1次Token',
'"夺宝奇兵"和"AI小财神"中Token是互通的'
]
},
{
title: "Token兑换规则",
rules: [
'点击右上角"获取Token次数",即可进入Token兑换页进行金币兑换Token',
"金币兑换Token的比例为:1金币=1Token;一经兑换,不予退还"
]
}
];
noPermissonDialogObj.value.notice = "注意:报告生成过程中,请耐心等待,在此期间请勿进行页面刷新操作,以免导致报告生成进程中断";
console.log("noPermissonDialogVisible", noPermissonDialogVisible.value);
console.log("noPermissonDialogObj", noPermissonDialogObj.value);
@ -121,11 +140,24 @@ const closeNoPermissionDialog = () => {
</div>
<div v-if="noPermissonDialogVisible" class="noPermissionDialog">
<div class="noPermissionContent" @click="closeNoPermissionDialog">
<div class="noPermissionCloseBtn">
<div class="noPermissionContent">
<div class="noPermissionCloseBtn" @click="closeNoPermissionDialog">
<el-icon class="noPermissionIcon"><Close /></el-icon>
</div>
{{ noPermissonDialogObj.msg }}
<div class="tokenRulesContainer">
<h3 class="tokenTitle">{{ noPermissonDialogObj.title }}</h3>
<div v-for="(section, index) in noPermissonDialogObj.content" :key="index" class="tokenSection">
<h4 class="sectionTitle">{{ section.title }}</h4>
<ul class="rulesList">
<li v-for="(rule, ruleIndex) in section.rules" :key="ruleIndex" class="ruleItem">
{{ rule }}
</li>
</ul>
</div>
<div class="noticeSection">
{{ noPermissonDialogObj.notice }}
</div>
</div>
</div>
</div>
</template>
@ -217,37 +249,93 @@ const closeNoPermissionDialog = () => {
.noPermissionDialog {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
position: fixed;
bottom: 15%;
/* margin: auto auto; */
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.5);
z-index: 1000;
color: white;
}
.noPermissionCloseBtn {
border-radius: 5px;
border: 1px solid white;
border-radius: 20%;
border: 3px solid white;
background-color: #8621d9;
padding: 2px;
padding: 8px;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: -10px;
right: -10px;
top: -15px;
right: -15px;
cursor: pointer;
width: 30px;
height: 30px;
}
.noPermissionContent {
position: relative;
border-radius: 10px;
border: 2px solid white;
padding: 30px;
background: linear-gradient(135deg, #1a0b4d 0%, #2d1b69 100%);
max-width: 90vw;
max-height: 80vh;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.tokenRulesContainer {
text-align: left;
}
.tokenTitle {
color: #ffd700;
font-size: 24px;
font-weight: bold;
text-align: center;
margin-bottom: 20px;
margin-top: 0;
}
.tokenSection {
margin-bottom: 20px;
}
.sectionTitle {
color: #ffd700;
font-size: 18px;
font-weight: bold;
margin-bottom: 10px;
margin-top: 0;
}
.rulesList {
list-style: none;
padding: 0;
margin: 0;
}
.ruleItem {
color: white;
font-size: 16px;
line-height: 1.6;
margin-bottom: 8px;
padding-left: 0;
}
.noticeSection {
background-color: rgba(255, 215, 0, 0.1);
border: 1px solid #ffd700;
border-radius: 5px;
border: 1px solid white;
padding: 10px 30px;
background-color: #261176;
display: flex;
justify-content: center;
align-items: center;
padding: 15px;
margin-top: 20px;
color: #ffd700;
font-size: 14px;
line-height: 1.5;
}
/* 手机适配 - 小屏幕时保持纵向排列 */
@ -277,5 +365,36 @@ const closeNoPermissionDialog = () => {
width: 50%;
/* margin-top: 20px; */
}
.noPermissionContent {
width: 70vw;
height: auto;
max-height: 80vh;
max-width: none;
max-height: none;
padding: 20px;
}
.tokenRulesContainer {
height: 100%;
overflow-y: auto;
}
.tokenTitle {
font-size: 20px;
}
.sectionTitle {
font-size: 16px;
}
.ruleItem {
font-size: 13px;
}
.noticeSection {
font-size: 13px;
padding: 12px;
}
}
</style>

151
src/views/Emotionsmodel.vue

@ -28,11 +28,24 @@
</div>
<div v-if="noPermissonDialogVisible" class="noPermissionDialog">
<div class="noPermissionContent" @click="closeNoPermissionDialog">
<div class="noPermissionCloseBtn">
<div class="noPermissionContent">
<div class="noPermissionCloseBtn" @click="closeNoPermissionDialog">
<el-icon class="noPermissionIcon"><Close /></el-icon>
</div>
{{ noPermissonDialogObj.msg }}
<div class="tokenRulesContainer">
<h3 class="tokenTitle">{{ noPermissonDialogObj.title }}</h3>
<div v-for="(section, index) in noPermissonDialogObj.content" :key="index" class="tokenSection">
<h4 class="sectionTitle">{{ section.title }}</h4>
<ul class="rulesList">
<li v-for="(rule, ruleIndex) in section.rules" :key="ruleIndex" class="ruleItem">
{{ rule }}
</li>
</ul>
</div>
<div class="noticeSection">
{{ noPermissonDialogObj.notice }}
</div>
</div>
</div>
</div>
</template>
@ -112,7 +125,26 @@ const goToAiEmotion = async () => {
} else {
console.log("无权限");
noPermissonDialogVisible.value = true;
noPermissonDialogObj.value.msg = res.msg;
noPermissonDialogObj.value.title = "Token规则";
noPermissonDialogObj.value.content = [
{
title: "Token消耗规则",
rules: [
'在"夺宝奇兵大模型"、"AI情绪大模型"中搜索股票,若搜索成功,内容正常生成,则会消耗1Token',
'在"夺宝奇兵大模型"、"AI情绪大模型"中搜索股票,若搜索有误,无法生成内容,则不会消耗Token',
'搜索同一只股票,产出内容相同时,只扣除1次Token',
'"夺宝奇兵"和"AI小财神"中Token是互通的'
]
},
{
title: "Token兑换规则",
rules: [
'点击右上角"获取Token次数",即可进入Token兑换页进行金币兑换Token',
"金币兑换Token的比例为:1金币=1Token;一经兑换,不予退还"
]
}
];
noPermissonDialogObj.value.notice = "注意:报告生成过程中,请耐心等待,在此期间请勿进行页面刷新操作,以免导致报告生成进程中断";
console.log("noPermissonDialogVisible", noPermissonDialogVisible.value);
console.log("noPermissonDialogObj", noPermissonDialogObj.value);
@ -209,37 +241,93 @@ const closeNoPermissionDialog = () => {
.noPermissionDialog {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
position: fixed;
bottom: 15%;
/* margin: auto auto; */
top: 0;
left: 0;
background-color: rgba(0, 0, 0, 0.5);
z-index: 1000;
color: white;
}
.noPermissionCloseBtn {
border-radius: 5px;
border: 1px solid white;
border-radius: 20%;
border: 3px solid white;
background-color: #8621d9;
padding: 2px;
padding: 8px;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: -10px;
right: -10px;
top: -15px;
right: -15px;
cursor: pointer;
width: 30px;
height: 30px;
}
.noPermissionContent {
position: relative;
border-radius: 10px;
border: 2px solid white;
padding: 30px;
background: linear-gradient(135deg, #1a0b4d 0%, #2d1b69 100%);
max-width: 90vw;
max-height: 80vh;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
}
.tokenRulesContainer {
text-align: left;
}
.tokenTitle {
color: #ffd700;
font-size: 24px;
font-weight: bold;
text-align: center;
margin-bottom: 20px;
margin-top: 0;
}
.tokenSection {
margin-bottom: 20px;
}
.sectionTitle {
color: #ffd700;
font-size: 18px;
font-weight: bold;
margin-bottom: 10px;
margin-top: 0;
}
.rulesList {
list-style: none;
padding: 0;
margin: 0;
}
.ruleItem {
color: white;
font-size: 16px;
line-height: 1.6;
margin-bottom: 8px;
padding-left: 0;
}
.noticeSection {
background-color: rgba(255, 215, 0, 0.1);
border: 1px solid #ffd700;
border-radius: 5px;
border: 1px solid white;
padding: 10px 30px;
background-color: #261176;
display: flex;
justify-content: center;
align-items: center;
padding: 15px;
margin-top: 20px;
color: #ffd700;
font-size: 14px;
line-height: 1.5;
}
@media (max-width: 1024px) {
@ -291,5 +379,34 @@ const closeNoPermissionDialog = () => {
width: 50%;
height: auto;
}
.noPermissionContent {
width: 70vw;
height: auto;
max-height: 80vh;
padding: 20px;
}
.tokenRulesContainer {
height: 100%;
overflow-y: auto;
}
.tokenTitle {
font-size: 20px;
}
.sectionTitle {
font-size: 16px;
}
.ruleItem {
font-size: 13px;
}
.noticeSection {
font-size: 13px;
padding: 12px;
}
}
</style>

19
src/views/Selectmodel.vue

@ -48,16 +48,13 @@ onMounted(() => {
/phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone/i.test(
navigator.userAgent
);
fnGetToken()
// const token = getQueryVariable("token");
// !isPhone &&
// token &&
// localStorage.setItem(
// "localToken",
// decodeURIComponent(String(getQueryVariable("token")))
// );
!isPhone &&
localStorage.setItem(
"localToken",
decodeURIComponent(String(getQueryVariable("token")))
);
fnGetToken()
// localStorage.setItem(
// "localToken",
// "pCtw6AYK0EHAaIexoFHsbZjtsfEAIhcmwkCFm6uKko8VPfMvyDiODL9v9c0veic9fIpQbvT8zN4sH/Si6Q"
@ -68,9 +65,9 @@ onMounted(() => {
// token
const fnGetToken = () => {
// console.log('fnGetToken')
console.log('进入fnGetToken')
window.JWready = (ress) => {
// console.log('JWready')
console.log('进入JWready')
try {
ress = JSON.parse(ress);
// console.log(ress, 'ress')

Loading…
Cancel
Save