|
|
@@ -1,139 +1,149 @@
|
|
|
<template>
|
|
|
- <div class="page h-full flex flex-col" :style="{ backgroundImage: `url(${desktopMode ? pcBg : h5Bg})` }">
|
|
|
- <n-page-header>
|
|
|
- <template #title>
|
|
|
- <span class="title">CHILLGPT </span>
|
|
|
- </template>
|
|
|
- <template #avatar>
|
|
|
- <n-avatar :src="logo" />
|
|
|
- </template>
|
|
|
- <template #extra>
|
|
|
- <user-avatar avatarType="small" v-if="isLogin" />
|
|
|
- <template v-else>
|
|
|
- <n-button v-if="desktopMode" type="primary" round @click="showLogin = true"> 登录 </n-button>
|
|
|
- <n-button v-else @click="$router.push('/login')">登录</n-button>
|
|
|
+ <NConfigProvider>
|
|
|
+ <n-el class="page h-full flex flex-col" :style="{ backgroundImage: `url(${isMobile ? h5Bg : pcBg})` }">
|
|
|
+ <n-page-header>
|
|
|
+ <template #title>
|
|
|
+ <span class="title">CHILLGPT </span>
|
|
|
</template>
|
|
|
- </template>
|
|
|
- </n-page-header>
|
|
|
+ <template #avatar>
|
|
|
+ <n-avatar :src="logo" />
|
|
|
+ </template>
|
|
|
+ <template #extra>
|
|
|
+ <user-avatar avatarType="small" v-if="isLogin" />
|
|
|
+ <template v-else>
|
|
|
+ <n-button v-if="!isMobile" type="primary" round @click="showLogin = true"> 登录 </n-button>
|
|
|
+ <n-button v-else @click="$router.push('/login')">登录</n-button>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </n-page-header>
|
|
|
|
|
|
- <div class="flex-1 page-content">
|
|
|
- <img src="@/assets/png-CHILLGPT.png" class="img1" alt="" />
|
|
|
+ <div class="flex-1 page-content">
|
|
|
+ <img src="@/assets/brand.png" class="img1" alt="" />
|
|
|
|
|
|
- <div class="desc">
|
|
|
- ChillGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。
|
|
|
- </div>
|
|
|
+ <div class="desc">
|
|
|
+ ChillGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。
|
|
|
+ </div>
|
|
|
|
|
|
- <n-card
|
|
|
- class="vip"
|
|
|
- v-if="desktopMode"
|
|
|
- title="会员权益"
|
|
|
- content-style="padding:0"
|
|
|
- header-style="text-align:center;padding:0;height:44px;line-height:44px;font-size: 16px;font-family: AlimamaShuHeiTi;"
|
|
|
- >
|
|
|
- <n-grid cols="2 s:3 m:4 l:7 xl:7 2xl:7" responsive="screen">
|
|
|
- <n-grid-item>
|
|
|
- <div class="vip-item">
|
|
|
- <img src="@/assets/png-01.png" alt="" />
|
|
|
- <div class="text">
|
|
|
- <div>无限对话</div>
|
|
|
- <div>畅快聊天</div>
|
|
|
+ <n-card
|
|
|
+ class="vip"
|
|
|
+ v-if="!isMobile"
|
|
|
+ title="会员权益"
|
|
|
+ content-style="padding:0"
|
|
|
+ header-style="text-align:center;padding:0;height:44px;line-height:44px;font-size: 16px;font-family: AlimamaShuHeiTi;color:#ffffff"
|
|
|
+ >
|
|
|
+ <n-grid cols="2 s:3 m:4 l:7 xl:7 2xl:7" responsive="screen">
|
|
|
+ <n-grid-item>
|
|
|
+ <div class="vip-item">
|
|
|
+ <img src="@/assets/png-01.png" alt="" />
|
|
|
+ <div class="text">
|
|
|
+ <div>无限对话</div>
|
|
|
+ <div>畅快聊天</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </n-grid-item>
|
|
|
- <n-grid-item>
|
|
|
- <div class="vip-item">
|
|
|
- <img src="@/assets/png-02.png" alt="" />
|
|
|
- <div class="text">
|
|
|
- <div>推荐奖励</div>
|
|
|
- <div>一级经销商权限</div>
|
|
|
+ </n-grid-item>
|
|
|
+ <n-grid-item>
|
|
|
+ <div class="vip-item">
|
|
|
+ <img src="@/assets/png-02.png" alt="" />
|
|
|
+ <div class="text">
|
|
|
+ <div>推荐奖励</div>
|
|
|
+ <div>一级经销商权限</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </n-grid-item>
|
|
|
- <n-grid-item>
|
|
|
- <div class="vip-item">
|
|
|
- <img src="@/assets/png-03.png" alt="" />
|
|
|
- <div class="text">
|
|
|
- <div>空投福利</div>
|
|
|
- <div>高价值数字藏品</div>
|
|
|
+ </n-grid-item>
|
|
|
+ <n-grid-item>
|
|
|
+ <div class="vip-item">
|
|
|
+ <img src="@/assets/png-03.png" alt="" />
|
|
|
+ <div class="text">
|
|
|
+ <div>空投福利</div>
|
|
|
+ <div>高价值数字藏品</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </n-grid-item>
|
|
|
- <n-grid-item>
|
|
|
- <div class="vip-item">
|
|
|
- <img src="@/assets/png-04.png" alt="" />
|
|
|
- <div class="text">
|
|
|
- <div>全线3折购</div>
|
|
|
- <div>Chillgpt生态</div>
|
|
|
+ </n-grid-item>
|
|
|
+ <n-grid-item>
|
|
|
+ <div class="vip-item">
|
|
|
+ <img src="@/assets/png-04.png" alt="" />
|
|
|
+ <div class="text">
|
|
|
+ <div>全线3折购</div>
|
|
|
+ <div>Chillgpt生态</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </n-grid-item>
|
|
|
- <n-grid-item>
|
|
|
- <div class="vip-item">
|
|
|
- <img src="@/assets/png-05.png" alt="" />
|
|
|
- <div class="text">
|
|
|
- <div>测试白名单</div>
|
|
|
- <div>第一优先级</div>
|
|
|
+ </n-grid-item>
|
|
|
+ <n-grid-item>
|
|
|
+ <div class="vip-item">
|
|
|
+ <img src="@/assets/png-05.png" alt="" />
|
|
|
+ <div class="text">
|
|
|
+ <div>测试白名单</div>
|
|
|
+ <div>第一优先级</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </n-grid-item>
|
|
|
- <n-grid-item>
|
|
|
- <div class="vip-item">
|
|
|
- <img src="@/assets/png-06.png" alt="" />
|
|
|
- <div class="text">
|
|
|
- <div>Chillgpt Pix</div>
|
|
|
- <div>六个月免费会员</div>
|
|
|
+ </n-grid-item>
|
|
|
+ <n-grid-item>
|
|
|
+ <div class="vip-item">
|
|
|
+ <img src="@/assets/png-06.png" alt="" />
|
|
|
+ <div class="text">
|
|
|
+ <div>Chillgpt Pix</div>
|
|
|
+ <div>六个月免费会员</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </n-grid-item>
|
|
|
- <n-grid-item>
|
|
|
- <div class="vip-item">
|
|
|
- <img src="@/assets/png-07.png" alt="" />
|
|
|
- <div class="text">
|
|
|
- <div>可申请Chillg</div>
|
|
|
- <div>城市级节点权限</div>
|
|
|
+ </n-grid-item>
|
|
|
+ <n-grid-item>
|
|
|
+ <div class="vip-item">
|
|
|
+ <img src="@/assets/png-07.png" alt="" />
|
|
|
+ <div class="text">
|
|
|
+ <div>可申请Chillg</div>
|
|
|
+ <div>城市级节点权限</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </n-grid-item>
|
|
|
- </n-grid>
|
|
|
- </n-card>
|
|
|
+ </n-grid-item>
|
|
|
+ </n-grid>
|
|
|
+ </n-card>
|
|
|
|
|
|
- <div class="flex-1" v-else></div>
|
|
|
+ <div class="flex-1" v-else></div>
|
|
|
|
|
|
- <div class="btn">
|
|
|
- <n-button type="primary" block round size="large" @click="goChat"> 立即体验 </n-button>
|
|
|
+ <div class="btn">
|
|
|
+ <n-button type="primary" block round size="large" @click="goChat"> 立即体验 </n-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
|
- <n-modal v-model:show="showLogin" transform-origin="center">
|
|
|
- <n-card
|
|
|
- title="登录"
|
|
|
- class="login"
|
|
|
- :border="false"
|
|
|
- header-style="text-align:center;padding:30px;font-size:24px;"
|
|
|
- >
|
|
|
- <div class="login-box">
|
|
|
- <login-form @success="onLogin"></login-form>
|
|
|
- </div>
|
|
|
- </n-card>
|
|
|
- </n-modal>
|
|
|
- </div>
|
|
|
+ <n-modal v-model:show="showLogin" transform-origin="center">
|
|
|
+ <n-card
|
|
|
+ title="登录"
|
|
|
+ class="login"
|
|
|
+ :border="false"
|
|
|
+ header-style="text-align:center;padding:30px;font-size:24px;"
|
|
|
+ >
|
|
|
+ <div class="login-box">
|
|
|
+ <login-form @success="onLogin"></login-form>
|
|
|
+ </div>
|
|
|
+ </n-card>
|
|
|
+ </n-modal>
|
|
|
+ </n-el>
|
|
|
+ </NConfigProvider>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import { NAvatar, NButton, NPageHeader, NCard, NGrid, NGridItem, NModal } from 'naive-ui'
|
|
|
-import h5Bg from '@/assets/png-shouye.jpg'
|
|
|
-import pcBg from '@/assets/png-bg.jpg'
|
|
|
+import {
|
|
|
+ NAvatar,
|
|
|
+ NButton,
|
|
|
+ NPageHeader,
|
|
|
+ NCard,
|
|
|
+ NGrid,
|
|
|
+ NGridItem,
|
|
|
+ NModal,
|
|
|
+ NConfigProvider,
|
|
|
+ darkTheme,
|
|
|
+ NEl
|
|
|
+} from 'naive-ui'
|
|
|
+import h5Bg from '@/assets/bg_mobile.jpg'
|
|
|
+import pcBg from '@/assets/bg_desktop.jpg'
|
|
|
import logo from '@/assets/logo.png'
|
|
|
import { useUserStore } from '@/store'
|
|
|
import { useRouter } from 'vue-router'
|
|
|
import { ref, computed } from 'vue'
|
|
|
import { UserAvatar, LoginForm } from '@/components/common'
|
|
|
-import { useWindowSize } from '@vueuse/core'
|
|
|
+import { useBasicLayout } from '@/hooks/useBasicLayout'
|
|
|
|
|
|
-const { width } = useWindowSize()
|
|
|
-const desktopMode = computed(() => {
|
|
|
- return width.value > 768
|
|
|
-})
|
|
|
+const { isMobile } = useBasicLayout()
|
|
|
|
|
|
const router = useRouter()
|
|
|
const userStore = useUserStore()
|
|
|
@@ -150,13 +160,13 @@ const onLogin = () => {
|
|
|
|
|
|
function goChat() {
|
|
|
if (!userStore.userInfo.id) {
|
|
|
- if (desktopMode.value) {
|
|
|
+ if (!isMobile.value) {
|
|
|
showLogin.value = true
|
|
|
} else {
|
|
|
- router.push('/login')
|
|
|
+ router.push({ name: 'login' })
|
|
|
}
|
|
|
} else {
|
|
|
- router.push('/chat')
|
|
|
+ router.push({ name: 'Chat' })
|
|
|
}
|
|
|
}
|
|
|
</script>
|
|
|
@@ -210,6 +220,7 @@ function goChat() {
|
|
|
border-radius: 12px;
|
|
|
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
|
margin-top: 30px;
|
|
|
+ overflow: hidden;
|
|
|
}
|
|
|
|
|
|
.btn {
|
|
|
@@ -268,69 +279,13 @@ function goChat() {
|
|
|
|
|
|
.login {
|
|
|
width: 560px;
|
|
|
-
|
|
|
- background: #0a0b21;
|
|
|
+ // background: #0a0b21;
|
|
|
border-radius: 12px;
|
|
|
}
|
|
|
|
|
|
-.input-pre {
|
|
|
- width: 24px;
|
|
|
- height: 24px;
|
|
|
- margin-right: 12px;
|
|
|
-}
|
|
|
.login-box {
|
|
|
width: 334px;
|
|
|
margin: 20px auto 0;
|
|
|
padding-bottom: 60px;
|
|
|
-
|
|
|
- .submit {
|
|
|
- margin-top: 40px;
|
|
|
- .n-button {
|
|
|
- height: 40px;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-:deep(.n-input) {
|
|
|
- --n-border-radius: 0 !important;
|
|
|
- --n-color: rgba(255, 255, 255, 0) !important;
|
|
|
-
|
|
|
- .n-input__input-el {
|
|
|
- --n-height: 50px;
|
|
|
- }
|
|
|
- .n-input-wrapper {
|
|
|
- --n-padding-left: 0;
|
|
|
- --n-padding-right: 0;
|
|
|
- }
|
|
|
-
|
|
|
- .n-input__border {
|
|
|
- border-top-width: 0px !important;
|
|
|
- border-left-width: 0px !important;
|
|
|
- border-right-width: 0px !important;
|
|
|
- }
|
|
|
- .n-input__state-border {
|
|
|
- border-top-width: 0px !important;
|
|
|
- border-left-width: 0px !important;
|
|
|
- border-right-width: 0px !important;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.send {
|
|
|
- margin-left: 20px !important;
|
|
|
- margin-top: 8px;
|
|
|
-}
|
|
|
-
|
|
|
-:deep(.n-checkbox) {
|
|
|
- --n-font-size: 12px !important;
|
|
|
- --n-text-color: #939599 !important;
|
|
|
- .n-checkbox-box {
|
|
|
- --n-size: 16px;
|
|
|
- --n-border-radius: 100px;
|
|
|
- --n-border: 1px solid #c8c9cc;
|
|
|
- --n-check-mark-color: #fff;
|
|
|
- }
|
|
|
-
|
|
|
- .prim {
|
|
|
- color: var(--prim);
|
|
|
- }
|
|
|
}
|
|
|
</style>
|