|
|
@@ -1,124 +1,105 @@
|
|
|
<template>
|
|
|
- <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 #avatar>
|
|
|
- <n-avatar :src="logo" />
|
|
|
- </template>
|
|
|
- <template #extra>
|
|
|
+ <n-el
|
|
|
+ class="page h-full flex flex-col bg-cover bg-center overflow-auto"
|
|
|
+ :style="{ backgroundImage: `url(${isMobile ? h5Bg : pcBg})` }"
|
|
|
+ >
|
|
|
+ <n-page-header>
|
|
|
+ <template #title>
|
|
|
+ <div class="flex items-center py-3 lg:py-8 pl-4 lg:pl-52">
|
|
|
+ <img style="width: 34px" :src="logo" />
|
|
|
+ <span class="ml-3 text-white text-sm lg:text-lg">CHILLGPT </span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template #extra>
|
|
|
+ <div class="flex items-center py-3 lg:py-8 pr-4 lg:pr-52">
|
|
|
<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>
|
|
|
+ </template>
|
|
|
+ </n-page-header>
|
|
|
|
|
|
- <div class="flex-1 page-content">
|
|
|
- <img src="@/assets/brand.png" class="img1" alt="" />
|
|
|
+ <div class="flex flex-col items-center content-center flex-1 pt-4 pb-24 lg:py-32 page-content">
|
|
|
+ <img src="@/assets/brand.png" class="w-4/5 max-w-3xl" alt="" />
|
|
|
|
|
|
- <div class="desc">
|
|
|
- ChillGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。
|
|
|
- </div>
|
|
|
+ <div class="text-sm lg:text-lg text-white text-center mt-4 w-8/12 max-w-4xl">
|
|
|
+ ChillGPT是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。
|
|
|
+ </div>
|
|
|
|
|
|
+ <NConfigProvider
|
|
|
+ v-if="!isMobile"
|
|
|
+ class="w-9/12 max-w-5xl mt-8"
|
|
|
+ :theme-overrides="{
|
|
|
+ common: { cardColor: 'transparent' },
|
|
|
+ Card: {
|
|
|
+ paddingMedium: '0',
|
|
|
+ borderRadius: '12px',
|
|
|
+ borderColor: 'rgba(255, 255, 255, 0.2)'
|
|
|
+ }
|
|
|
+ }"
|
|
|
+ >
|
|
|
<n-card
|
|
|
- class="vip"
|
|
|
+ class="vip rounded-xl border overflow-hidden"
|
|
|
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"
|
|
|
+ :content-style="{
|
|
|
+ padding: 0
|
|
|
+ }"
|
|
|
>
|
|
|
- <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>
|
|
|
- </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>
|
|
|
- </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>
|
|
|
- </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>
|
|
|
- </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>
|
|
|
- </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>
|
|
|
- </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
|
|
|
+ class="flex items-center justify-center h-11 text-lg text-white"
|
|
|
+ style="font-family: AlimamaShuHeiTi"
|
|
|
+ >
|
|
|
+ 会员权益
|
|
|
+ </div>
|
|
|
+ <n-grid cols="2 s:5 m:7" responsive="screen" class="backdrop-blur-lg">
|
|
|
+ <n-grid-item v-for="item in items" :key="item.name">
|
|
|
+ <div class="flex flex-col items-center pt-5 pb-7">
|
|
|
+ <img class="w-11 h-11" :src="item.img" alt="" />
|
|
|
+ <div class="text text-sm text-gray-50 mt-2 text-center">
|
|
|
+ <div>{{ item.name }}</div>
|
|
|
+ <div class="mt-0.5">{{ item.desc }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</n-grid-item>
|
|
|
</n-grid>
|
|
|
</n-card>
|
|
|
-
|
|
|
- <div class="flex-1" v-else></div>
|
|
|
-
|
|
|
- <div class="btn">
|
|
|
- <n-button type="primary" block round size="large" @click="goChat"> 立即体验 </n-button>
|
|
|
- </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">
|
|
|
+ </NConfigProvider>
|
|
|
+
|
|
|
+ <div class="flex-1" v-else></div>
|
|
|
+
|
|
|
+ <NConfigProvider
|
|
|
+ :theme-overrides="{
|
|
|
+ Button: {
|
|
|
+ heightMedium: '44px'
|
|
|
+ }
|
|
|
+ }"
|
|
|
+ class="mt-16 w-5/6 sm:w-80"
|
|
|
+ >
|
|
|
+ <n-button type="primary" block round size="large" @click="goChat"> 立即体验 </n-button>
|
|
|
+ </NConfigProvider>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <NConfigProvider
|
|
|
+ :theme="darkTheme"
|
|
|
+ :theme-overrides="{
|
|
|
+ Card: {
|
|
|
+ borderRadius: '12px'
|
|
|
+ }
|
|
|
+ }"
|
|
|
+ class="w-9/12 max-w-xl"
|
|
|
+ >
|
|
|
+ <n-modal v-model:show="showLogin" transform-origin="center" class="max-w-xl" style="width: 75%">
|
|
|
+ <n-card :border="false">
|
|
|
+ <div class="text-white text-2xl text-center font-bold py-8">登录</div>
|
|
|
+ <div class="max-w-sm my-5 mx-auto pb-16">
|
|
|
<login-form @success="onLogin"></login-form>
|
|
|
</div>
|
|
|
</n-card>
|
|
|
</n-modal>
|
|
|
- </n-el>
|
|
|
- </NConfigProvider>
|
|
|
+ </NConfigProvider>
|
|
|
+ </n-el>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
@@ -142,12 +123,56 @@ import { useRouter } from 'vue-router'
|
|
|
import { ref, computed } from 'vue'
|
|
|
import { UserAvatar, LoginForm } from '@/components/common'
|
|
|
import { useBasicLayout } from '@/hooks/useBasicLayout'
|
|
|
+import imgItem01 from '@/assets/png-01.png'
|
|
|
+import imgItem02 from '@/assets/png-02.png'
|
|
|
+import imgItem03 from '@/assets/png-03.png'
|
|
|
+import imgItem04 from '@/assets/png-04.png'
|
|
|
+import imgItem05 from '@/assets/png-05.png'
|
|
|
+import imgItem06 from '@/assets/png-06.png'
|
|
|
+import imgItem07 from '@/assets/png-07.png'
|
|
|
|
|
|
const { isMobile } = useBasicLayout()
|
|
|
|
|
|
const router = useRouter()
|
|
|
const userStore = useUserStore()
|
|
|
const showLogin = ref(false)
|
|
|
+const items = [
|
|
|
+ {
|
|
|
+ name: '无限对话',
|
|
|
+ desc: '畅快聊天',
|
|
|
+ img: imgItem01
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '推荐奖励',
|
|
|
+ desc: '一级经销商权限',
|
|
|
+ img: imgItem02
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '空投福利',
|
|
|
+ desc: '高价值数字藏品',
|
|
|
+ img: imgItem03
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '全线3折购',
|
|
|
+ desc: 'Chillgpt生态',
|
|
|
+ img: imgItem04
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '测试白名单',
|
|
|
+ desc: '第一优先级',
|
|
|
+ img: imgItem05
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: 'Chillgpt Pix',
|
|
|
+ desc: '六个月免费会员',
|
|
|
+ img: imgItem06
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '可申请Chillg',
|
|
|
+ desc: '城市级节点权限',
|
|
|
+ img: imgItem07
|
|
|
+ }
|
|
|
+]
|
|
|
|
|
|
const isLogin = computed(() => {
|
|
|
return !!userStore.userInfo.id
|
|
|
@@ -172,120 +197,9 @@ function goChat() {
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
-.page {
|
|
|
- background-size: cover;
|
|
|
- background-position: center;
|
|
|
- overflow: auto;
|
|
|
-}
|
|
|
-
|
|
|
-:deep(.n-page-header) {
|
|
|
- padding: 30px 200px;
|
|
|
-
|
|
|
- .n-avatar {
|
|
|
- background-color: transparent;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
:deep(.n-page-header-wrapper) {
|
|
|
position: sticky;
|
|
|
top: 0;
|
|
|
z-index: 20;
|
|
|
}
|
|
|
-
|
|
|
-.page-content {
|
|
|
- .f-col();
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
- padding: 130px 0;
|
|
|
-
|
|
|
- .img1 {
|
|
|
- width: 80vw;
|
|
|
- max-width: 760px;
|
|
|
- }
|
|
|
-
|
|
|
- .desc {
|
|
|
- font-size: 18px;
|
|
|
- color: #ffffff;
|
|
|
- line-height: 28px;
|
|
|
- margin-top: 16px;
|
|
|
- width: 90vw;
|
|
|
- max-width: 959px;
|
|
|
- text-align: center;
|
|
|
- }
|
|
|
-
|
|
|
- .vip {
|
|
|
- width: 70vw;
|
|
|
- max-width: 668px;
|
|
|
- background-color: transparent;
|
|
|
- border-radius: 12px;
|
|
|
- border: 1px solid rgba(255, 255, 255, 0.2);
|
|
|
- margin-top: 30px;
|
|
|
- overflow: hidden;
|
|
|
- }
|
|
|
-
|
|
|
- .btn {
|
|
|
- width: 53.3vw;
|
|
|
- max-width: 300px;
|
|
|
- min-width: 200px;
|
|
|
- margin-top: 70px;
|
|
|
- .n-button {
|
|
|
- height: 44px;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-@media screen and(max-width:1024px) {
|
|
|
- :deep(.n-page-header) {
|
|
|
- padding: 10px 16px;
|
|
|
- .n-page-header__title {
|
|
|
- font-size: 16px;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- .page-content {
|
|
|
- padding: 16px 0 100px;
|
|
|
- justify-content: flex-start;
|
|
|
- .desc {
|
|
|
- font-size: 12px;
|
|
|
- color: #ffffff;
|
|
|
- line-height: 24px;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.n-grid {
|
|
|
- backdrop-filter: blur(16px);
|
|
|
-}
|
|
|
-
|
|
|
-.vip-item {
|
|
|
- .f-col();
|
|
|
- align-items: center;
|
|
|
- padding: 18px 0 28px;
|
|
|
- img {
|
|
|
- width: 44px;
|
|
|
- height: 44px;
|
|
|
- }
|
|
|
- .text {
|
|
|
- font-size: 11px;
|
|
|
- color: #fcf7fe;
|
|
|
- line-height: 12px;
|
|
|
- margin-top: 8px;
|
|
|
- text-align: center;
|
|
|
- div + div {
|
|
|
- margin-top: 2px;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-.login {
|
|
|
- width: 560px;
|
|
|
- // background: #0a0b21;
|
|
|
- border-radius: 12px;
|
|
|
-}
|
|
|
-
|
|
|
-.login-box {
|
|
|
- width: 334px;
|
|
|
- margin: 20px auto 0;
|
|
|
- padding-bottom: 60px;
|
|
|
-}
|
|
|
</style>
|