3 changed files with 339 additions and 1 deletions
@ -0,0 +1,310 @@ |
|||
<script setup> |
|||
import { onMounted, ref, computed, onUnmounted } from "vue"; |
|||
import { useRouter } from "vue-router"; |
|||
import bgImageSmall from "@/assets/img/DBQBmodel/手机背景.png"; |
|||
import bgImageLarge from "@/assets/img/DBQBmodel/电脑背景.png"; |
|||
import topIcon from "@/assets/img/DBQBmodel/大标题.png"; |
|||
import subtitle from "@/assets/img/DBQBmodel/-s-构建场景.png"; |
|||
import text1 from "@/assets/img/DBQBmodel/-s-数据可计算.png"; |
|||
import text2 from "@/assets/img/DBQBmodel/-s-场景可预演.png"; |
|||
import text3 from "@/assets/img/DBQBmodel/-s-交易可掌控.png"; |
|||
import btnIcon from "@/assets/img/DBQBmodel/-s-开启财运.png"; |
|||
import { setHeight } from "@/utils/setHeight"; |
|||
import { checkStatusAPI } from "../api/AIxiaocaishen"; |
|||
import BackToHomeButton from "@/views/components/BackToHomeButton.vue"; |
|||
const router = useRouter(); |
|||
const pageRef = ref(null); |
|||
const windowWidth = ref(window.innerWidth); |
|||
|
|||
// 响应式计算背景图片 |
|||
const bgImage = computed(() => { |
|||
return windowWidth.value > 1024 ? bgImageLarge : bgImageSmall; |
|||
}); |
|||
|
|||
// 监听窗口大小变化 |
|||
const handleResize = () => { |
|||
windowWidth.value = window.innerWidth; |
|||
}; |
|||
|
|||
onMounted(() => { |
|||
setHeight(pageRef.value); |
|||
window.addEventListener("resize", handleResize); |
|||
}); |
|||
|
|||
onUnmounted(() => { |
|||
window.removeEventListener("resize", handleResize); |
|||
}); |
|||
|
|||
const noPermissonDialogVisible = ref(false); |
|||
const noPermissonDialogObj = ref({}); |
|||
const goToHomePage = async () => { |
|||
try { |
|||
let params = { |
|||
token: localStorage.getItem("localToken"), |
|||
model: 2, // 深度九大模型的参数值 |
|||
}; |
|||
|
|||
const userAgent = navigator.userAgent; |
|||
let isMobile = |
|||
/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( |
|||
userAgent |
|||
); |
|||
|
|||
let Client = "pc"; |
|||
|
|||
if (isMobile) { |
|||
if (/iPhone|iPad|iPod/i.test(userAgent)) { |
|||
Client = "ios"; |
|||
} else if (/Android/i.test(userAgent)) { |
|||
Client = "android"; |
|||
} else { |
|||
Client = "android"; // 其他移动设备 |
|||
} |
|||
} |
|||
|
|||
let headers = { |
|||
Client: Client, |
|||
}; |
|||
|
|||
const res = await checkStatusAPI(headers, params); |
|||
if (res.code == 200) { |
|||
// 设置 sessionStorage 控制 homepage.vue 激活 AiEmotion tab |
|||
sessionStorage.setItem("activeTabAI", "deepNine"); |
|||
sessionStorage.setItem("activeIndexAI", "2"); |
|||
// 设置标记表示从外部页面跳转过来 |
|||
sessionStorage.setItem("fromExternalPage", "true"); |
|||
router.push("/homePage"); |
|||
} else { |
|||
console.log("无权限"); |
|||
noPermissonDialogVisible.value = true; |
|||
noPermissonDialogObj.value.msg = res.msg; |
|||
|
|||
console.log("noPermissonDialogVisible", noPermissonDialogVisible.value); |
|||
console.log("noPermissonDialogObj", noPermissonDialogObj.value); |
|||
} |
|||
} catch (e) { |
|||
console.error("获取权限失败", e); |
|||
} |
|||
}; |
|||
|
|||
const closeNoPermissionDialog = () => { |
|||
noPermissonDialogVisible.value = false; |
|||
}; |
|||
</script> |
|||
|
|||
<template> |
|||
<div |
|||
ref="pageRef" |
|||
class="homepage" |
|||
:style="{ backgroundImage: `url(${bgImage})` }" |
|||
> |
|||
<BackToHomeButton /> |
|||
|
|||
<div v-if="false"></div> |
|||
<!-- 顶部图标 --> |
|||
<!-- <img class="top-icon" :src="topIcon" alt="顶部图标" /> --> |
|||
<h1 style="color: aliceblue;">深度九大模型</h1> |
|||
<!-- 副标题 --> |
|||
<div class="bottom-icon"> |
|||
<img class="sub-title" :src="subtitle" alt="构建场景化交易" /> |
|||
<!-- 中间文字 --> |
|||
<div class="content-text"> |
|||
<img class="content-text1" :src="text1" alt=" 数据可计算" /> |
|||
<img class="content-text2" :src="text2" alt=" 场景可预演" /> |
|||
<img class="content-text3" :src="text3" alt=" 交易可掌控" /> |
|||
</div> |
|||
|
|||
<!-- 底部按钮 --> |
|||
<div class="buttons-container"> |
|||
<button class="btn-item" @click="goToHomePage"> |
|||
<img :src="btnIcon" alt="按钮图片" /> |
|||
</button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
|
|||
<div v-if="noPermissonDialogVisible" class="noPermissionDialog"> |
|||
<div class="noPermissionContent" @click="closeNoPermissionDialog"> |
|||
<div class="noPermissionCloseBtn"> |
|||
<el-icon class="noPermissionIcon"><Close /></el-icon> |
|||
</div> |
|||
{{ noPermissonDialogObj.msg }} |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<style scoped> |
|||
.homepage { |
|||
/* background-image: url("@/assets/img/DBQBmodel/bg.png"); */ |
|||
width: 100%; |
|||
min-height: 100vh; |
|||
background-size: cover; |
|||
background-position: center; |
|||
background-repeat: no-repeat; |
|||
display: flex; |
|||
flex-direction: column; |
|||
align-items: center; |
|||
overflow-x: hidden; |
|||
} |
|||
|
|||
/* 顶部标题图 */ |
|||
.top-icon { |
|||
width: 80%; |
|||
max-width: 500px; |
|||
height: auto; |
|||
/* margin-top: 20px; */ |
|||
position: absolute; |
|||
top: 11vh; |
|||
} |
|||
|
|||
.bottom-icon { |
|||
width: 100%; |
|||
display: flex; |
|||
flex-direction: column; |
|||
position: absolute; |
|||
bottom: 10vh; |
|||
left: 0; |
|||
right: 0; |
|||
margin: 0 auto; |
|||
align-items: center; |
|||
} |
|||
|
|||
/* 副标题 */ |
|||
.sub-title { |
|||
/* padding-top: 40px; */ |
|||
width: 100%; |
|||
max-width: 350px; |
|||
height: auto; |
|||
/* margin-top: 18rem; */ |
|||
} |
|||
|
|||
/* 中间三个描述图 */ |
|||
.content-text { |
|||
display: flex; |
|||
flex-direction: row; |
|||
/* 改为横向排列 */ |
|||
align-items: center; |
|||
justify-content: center; |
|||
/* 添加水平居中 */ |
|||
/* gap: 23px; */ |
|||
margin-bottom: 10px; |
|||
flex-wrap: wrap; |
|||
/* 添加换行支持,防止小屏幕溢出 */ |
|||
} |
|||
|
|||
.content-text img { |
|||
width: 80%; |
|||
max-width: 300px; |
|||
height: auto; |
|||
flex: 1; |
|||
/* 让图片平均分配空间 */ |
|||
min-width: 200px; |
|||
/* 设置最小宽度 */ |
|||
} |
|||
|
|||
/* 按钮区 */ |
|||
.buttons-container { |
|||
align-items: center; |
|||
} |
|||
|
|||
.btn-item { |
|||
width: auto; |
|||
background: none; |
|||
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 { |
|||
width: 200%; |
|||
max-width: 350px; |
|||
height: auto; |
|||
} |
|||
|
|||
.noPermissionDialog { |
|||
width: 100%; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
position: fixed; |
|||
bottom: 15%; |
|||
left: 0; |
|||
right: 0; |
|||
/* margin: auto auto; */ |
|||
color: white; |
|||
} |
|||
|
|||
.noPermissionCloseBtn { |
|||
border-radius: 5px; |
|||
border: 1px solid white; |
|||
background-color: #8621d9; |
|||
padding: 2px; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
position: absolute; |
|||
top: -10px; |
|||
right: -10px; |
|||
} |
|||
|
|||
.noPermissionContent { |
|||
position: relative; |
|||
border-radius: 5px; |
|||
border: 1px solid white; |
|||
padding: 10px 30px; |
|||
background-color: #261176; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
} |
|||
|
|||
/* 手机适配 - 小屏幕时保持纵向排列 */ |
|||
@media screen and (max-width: 768px) { |
|||
.homepage { |
|||
width: 100%; |
|||
overflow-x: hidden; |
|||
} |
|||
|
|||
.top-icon { |
|||
margin-top: 12%; |
|||
width: 90%; |
|||
} |
|||
|
|||
.sub-title { |
|||
width: 80%; |
|||
margin-top: 25%; |
|||
} |
|||
|
|||
.content-text { |
|||
flex-direction: column; |
|||
/* 小屏幕时恢复纵向排列 */ |
|||
} |
|||
|
|||
.content-text img { |
|||
width: 70%; |
|||
flex: none; |
|||
/* 取消flex布局 */ |
|||
} |
|||
|
|||
.btn-item img { |
|||
width: 50%; |
|||
/* margin-top: 20px; */ |
|||
} |
|||
} |
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue