panhui 2 years ago
parent
commit
6d9b559d8e
4 changed files with 366 additions and 348 deletions
  1. 12 0
      src/components/game/Game.vue
  2. 7 1
      src/game/scenes/PlayScene.ts
  3. 19 328
      src/views/page/HomeView.vue
  4. 328 19
      src/views/page/HomeView1.vue

+ 12 - 0
src/components/game/Game.vue

@@ -1,6 +1,8 @@
 <script setup lang="ts">
 import PhaserContainer from '@/components/game/PhaserContainer.vue'
 import { emitter } from '@/plugins'
+import { useUserStore } from '@/store'
+import { useRouter } from 'vue-router'
 
 emitter.on('completeGame', () => {
     console.log('complete122')
@@ -11,6 +13,16 @@ emitter.on('completeGame', () => {
         splash.style.display = 'none'
     }
 })
+
+const router = useRouter()
+const userStore = useUserStore()
+emitter.on('enterMoments', () => {
+    if (!userStore.userInfo.id) {
+        router.push({ name: 'login' })
+    } else {
+        router.push({ name: 'moments' })
+    }
+})
 </script>
 
 <template>

+ 7 - 1
src/game/scenes/PlayScene.ts

@@ -1,4 +1,5 @@
 import { Scene } from 'phaser'
+import { emitter } from '@/plugins'
 
 enum Direction {
     LEFT = 'l',
@@ -245,7 +246,6 @@ export default class PlayScene extends Scene {
 
         //朋友圈跳转入口
         this.enterBtn = this.add.image(1100, 158, 'enter')
-        const key = this.add.image(-200, 200, 'enter', 'simple-key-gold')
         this.tweens.chain({
             targets: this.enterBtn,
             tweens: [
@@ -265,6 +265,12 @@ export default class PlayScene extends Scene {
             loop: -1,
             loopDelay: 300
         })
+
+        this.enterBtn.setInteractive();
+
+        this.enterBtn.on('pointerdown', () => {
+            emitter.emit('enterMoments')
+        })
     }
 
     update() {

+ 19 - 328
src/views/page/HomeView.vue

@@ -1,340 +1,31 @@
 <template>
-    <n-el
-        class="page h-full flex flex-col bg-cover bg-center overflow-auto"
-        :style="{ backgroundImage: `url(${isMobile ? h5Bg : pcBg})` }"
-    >
-        <NConfigProvider
-            :theme-overrides="{
-                Button: {
-                    heightSmall: '24px'
-                }
-            }"
-        >
-            <n-page-header>
-                <template #title>
-                    <div
-                        class="flex items-center py-3 lg:py-8 pl-4 md:pl-10 lg:pl-15 2xl:pl-52"
-                        @click="showConsoleEve"
-                    >
-                        <!-- <n-avatar :size="isMobile ? 'small' : 'medium'" :src="logo"></n-avatar> -->
-                        <!-- <span class="ml-[6px] lg:ml-3 text-white text-base lg:text-lg alimamaShuHeiTi">走马AI助手 </span> -->
-                        <img src="@/assets/logo-text.png" class="h-[28px] md:h-[40px]" alt="" />
-                    </div>
-                </template>
-                <template #extra>
-                    <div class="flex items-center py-3 lg:py-[30px] pr-4 lg:pr-15 2xl:pr-52">
-                        <!-- <n-button text class="!p-[8px] !mr-[8px] lg:!p-[12px] lg:!mr-[12px]" @click="showDesc = true">
-                            <img
-                                class="w-[20px] h-[20px] lg:w-[24px] lg:h-[24px]"
-                                src="@/assets/icon_jieshao.png"
-                                alt=""
-                            />
-                            <span class="text-white ml-[4px] lg:ml-[6px] text-xs lg:text-sm">介绍</span>
-                        </n-button> -->
-                        <template v-if="isLogin">
-                            <n-button text v-if="isMobile" @click="goMine">
-                                <user-avatar avatarType="small" onlyAvatar />
-                            </n-button>
-                            <n-popover placement="bottom" trigger="click" v-else>
-                                <template #trigger>
-                                    <n-button text>
-                                        <user-avatar :avatarType="isMobile ? 'small' : 'medium'" onlyAvatar />
-                                    </n-button>
-                                </template>
-                                <n-button size="small" @click="logout" text>退出登录</n-button>
-                            </n-popover>
-                        </template>
-
-                        <template v-else>
-                            <n-button v-if="!isMobile" type="primary" round @click="showLogin = true"> 登录 </n-button>
-                            <n-button v-else round @click="$router.push('/login')" type="primary" size="small"
-                                >登录</n-button
-                            >
-                        </template>
-                    </div>
-                </template>
-            </n-page-header>
-        </NConfigProvider>
-
-        <div
-            class="flex flex-col items-center content-center pl-4 md:pl-10 lg:pl-15 2xl:pl-52 md:items-start flex-1 pt-4 pb-24 page-content md:pb-4 md:justify-center"
-        >
-            <img src="@/assets/brand.png" class="w-3/4 max-w-[510px] md:translate-x-[-10px]" alt="" />
-
-            <div class="text-xs leading-6 md:text-base text-white opacity-80 text-center md:text-left mt-4 w-[90%] max-w-[705px]">
-                走马AI助手是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,并能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。后续更新:向量数据库应用,AI助手角色赋予,AI助手私有化,FileChat等。
-            </div>
-
-            <NConfigProvider
-                class="w-[90%] max-w-[426px] mt-8"
-                :theme-overrides="{
-                    common: { cardColor: 'transparent' },
-                    Card: {
-                        paddingMedium: '0',
-                        borderRadius: '12px',
-                        borderColor: 'rgba(255, 255, 255, 0.2)'
-                    }
-                }"
-            >
-                <n-card
-                    class="vip rounded-xl overflow-hidden backdrop-blur-sm"
-                    :content-style="{
-                        padding: 0
-                    }"
-                    :bordered="isMobile"
-                >
-                    <n-grid cols="4" responsive="screen">
-                        <n-grid-item v-for="(item, index) in items" :key="item.name">
-                            <div class="flex flex-col items-center h-[120px] md:h-[108px] justify-center md:items-start">
-                                <div class="flex flex-col items-center relative" :class="{ 'pb-[44px]': index === 1 }">
-                                    <img class="w-[60px] h-[60px]" :src="item.img" alt="" />
-                                    <div
-                                        class="text text-xs text-gray-50 mt-2 text-center"
-                                        :class="{ 'absolute bottom-0': index === 1 }"
-                                    >
-                                        <div class="whitespace-nowrap">{{ item.name }}</div>
-                                        <div class="mt-1 text-[10px] text-neutral-400 whitespace-nowrap">
-                                            {{ item.desc }}
-                                        </div>
-                                    </div>
-                                </div>
-                            </div>
-                        </n-grid-item>
-                    </n-grid>
-                </n-card>
-            </NConfigProvider>
-
-            <div class="flex-1" v-if="isMobile"></div>
-
-            <NConfigProvider
-                :theme-overrides="{
-                    Button: {
-                        heightMedium: '44px',
-                        heightLarge: isMobile ? '44px' : '60px',
-                        fontSizeLarge: isMobile ? '16px' : '24px'
-                    }
-                }"
-                class="mt-16 w-[300px] sm:w-80"
-            >
-                <n-button
-                    type="primary"
-                    class="alimamaShuHeiTi max-w-[300px] !border-white"
-                    block
-                    round
-                    size="large"
-                    @click="goChat"
-                    :loading="loading"
-                >
-                    立即体验
-                </n-button>
-            </NConfigProvider>
-        </div>
-
-        <NConfigProvider
-            :theme="darkTheme"
-            :theme-overrides="{
-                Card: {
-                    colorModal: '#20223c'
-                },
-                Input: {
-                    border: '1px solid #2B3038'
-                }
-            }"
-        >
-            <n-modal v-model:show="showLogin" transform-origin="center">
-                <n-card class="!max-w-xl !rounded-xl">
-                    <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" theme="dark"></login-form>
-                    </div>
-                </n-card>
-            </n-modal>
-        </NConfigProvider>
-
-        <NConfigProvider
-            :theme="lightTheme"
-            :theme-overrides="{
-                Card: {
-                    colorModal: 'linear-gradient(180deg, rgba(196, 218, 255, 1), #fbf1ff)'
-                },
-                Input: {
-                    border: '1px solid #2B3038'
-                }
-            }"
-        >
-            <n-modal v-model:show="showDesc" class="!max-w-xl !w-[85%] !rounded-[12px]">
-                <n-card content-style="padding:2px">
-                    <div
-                        class="pt-[20px] rounded-[12px]"
-                        style="background: linear-gradient(180deg, #e8f2ff 0%, #fbf1ff 100%)"
-                    >
-                        <img class="w-[180px] block mx-[auto]" src="@/assets/png-wenzi.png" alt="" />
-                        <div class="text-center text-[10px] text-[#2900D499] uppercase">走马AI助手 introduce</div>
-                        <div class="text-black text-sm px-4 pb-[22px] pt-[10px]">
-                            <p>
-                                为维持高速稳定的客户体验,走马AI助手采用微软Microsoft
-                                Azure云服务器,微软Azure是业界第一名的智能AI、物联网、混合云,集机器学习、数据分析与信息系统服务集大成,是唯一在中国正式商用的国际公有云。OpenAi公司的ChatGPT即部署于微软Azure,确保了两者的同源与互通。
-                            </p>
-                            <p class="mt-[10px]">
-                                针对国内用户的使用习惯,走马AI助手专门对微信生态进行了全面优化,用户不用跳转到外部浏览器,将走马AI助手保存到“收藏”内,即可完成一键登录、使用,复制、分享等功能,在微信上的响应速度、使用体验远超同类产品。
-                            </p>
-                        </div>
-                    </div>
-                </n-card>
-            </n-modal>
-        </NConfigProvider>
-    </n-el>
+    <div class="h-full bg-[#090A20]">
+        <game />
+    </div>
 </template>
-
 <script setup lang="ts">
-import {
-    NAvatar,
-    NButton,
-    NPageHeader,
-    NCard,
-    NGrid,
-    NGridItem,
-    NModal,
-    NConfigProvider,
-    darkTheme,
-    lightTheme,
-    NEl,
-    NPopover,
-    useMessage,
-    useDialog
-} from 'naive-ui'
-import h5Bg from '@/assets/bg_mobile.jpg'
-import pcBg from '@/assets/bg_desktop1.jpg'
-import logo from '@/assets/logo.png'
-import { useUserStore } from '@/store'
-import { useRouter, useRoute } 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 imgQiye from '@/assets/qiye.png'
-import imgHuihua from '@/assets/huihua.png'
-import imgItem02 from '@/assets/png-02.png'
-import imgItem03 from '@/assets/png-03.png'
-import imgItem05 from '@/assets/png-05.png'
-import imgItem06 from '@/assets/png-06.png'
-import imgItem07 from '@/assets/png-07.png'
-import { init as initEruda } from '@/utils/console'
-import { useStorage } from '@vueuse/core'
-import borderImg from '@/assets/png-biankuang.png'
-
-const { isMobile } = useBasicLayout()
-
-const router = useRouter()
-const route = useRoute()
-const userStore = useUserStore()
-const showLogin = ref(false)
-const items = [
-    {
-        name: '基础问答',
-        desc: '快速检索',
-        img: imgItem01
-    },
-    {
-        name: '独立会话',
-        desc: '上下文精准约束',
-        img: imgQiye
-    },
-    {
-        name: '企业链路',
-        desc: '高效稳定',
-        img: imgHuihua
-    },
-    {
-        name: '后续权益',
-        desc: '免费开放',
-        img: imgItem06
+import robot1Img from '@/assets/robot1.gif'
+import Game from '@/components/game/Game.vue'
+import { onMounted } from 'vue'
+onMounted(() => {
+    const splash = document.getElementById('splash-screen')
+    if (splash) {
+        splash.setAttribute('isHold', 'true')
+        splash.style.opacity = '1'
+        splash.style.display = 'block'
     }
-]
-
-const isLogin = computed(() => {
-    return !!userStore.userInfo.id
 })
-
-const onLogin = () => {
-    showLogin.value = false
-    loading.value = true
-    router.replace({ name: 'moments' })
-}
-
-const loading = ref(false)
-function goChat() {
-    if (!userStore.userInfo.id) {
-        if (!isMobile.value) {
-            showLogin.value = true
-        } else {
-            router.push({ name: 'login' })
-        }
-    } else {
-        loading.value = true
-        router.push({ name: 'moments' })
-    }
-}
-
-function goMine() {
-    router.push({
-        name: 'mine'
-    })
-}
-
-const dialog = useDialog()
-const message = useMessage()
-function logout() {
-    dialog.create({
-        title: '提示',
-        content: '确认要退出登录吗?',
-        positiveText: '退出登录',
-        negativeText: '取消',
-        maskClosable: false,
-        onPositiveClick: () => {
-            userStore.logout()
-            message.success('退出登录成功')
-        }
-    })
-}
-let clickNum = 0
-let to: any = null
-function showConsoleEve() {
-    clickNum++
-    if (clickNum >= 10) {
-        initEruda()
-        useStorage('showConsole', 0).value = new Date().getTime() + 60 * 60 * 1000
-        clickNum = 0
-        return
-    } else {
-        if (to) {
-            clearTimeout(to)
-        }
-        to = setTimeout(() => {
-            clickNum = 0
-        }, 1000)
-    }
-}
-
-setTimeout(() => {
-    if (route.query.login && !isMobile.value) {
-        showLogin.value = true
-        router.replace({ query: {} }).catch(() => {})
-    }
-}, 300)
-
-//介绍
-const showDesc = ref(false)
 </script>
 
 <style lang="less" scoped>
-:deep(.n-page-header-wrapper) {
-    position: sticky;
-    top: 0;
-    z-index: 20;
+.page {
+    width: 100vw;
+    height: 100vh;
+    position: relative;
 }
 
-:deep(.n-avatar) {
-    --n-merged-color: transparent;
+#robot1 {
+    position: absolute;
+    right: 0;
 }
 </style>

+ 328 - 19
src/views/page/HomeView1.vue

@@ -1,31 +1,340 @@
 <template>
-    <div class="h-full bg-[#090A20]">
-        <game />
-    </div>
+    <n-el
+        class="page h-full flex flex-col bg-cover bg-center overflow-auto"
+        :style="{ backgroundImage: `url(${isMobile ? h5Bg : pcBg})` }"
+    >
+        <NConfigProvider
+            :theme-overrides="{
+                Button: {
+                    heightSmall: '24px'
+                }
+            }"
+        >
+            <n-page-header>
+                <template #title>
+                    <div
+                        class="flex items-center py-3 lg:py-8 pl-4 md:pl-10 lg:pl-15 2xl:pl-52"
+                        @click="showConsoleEve"
+                    >
+                        <!-- <n-avatar :size="isMobile ? 'small' : 'medium'" :src="logo"></n-avatar> -->
+                        <!-- <span class="ml-[6px] lg:ml-3 text-white text-base lg:text-lg alimamaShuHeiTi">走马AI助手 </span> -->
+                        <img src="@/assets/logo-text.png" class="h-[28px] md:h-[40px]" alt="" />
+                    </div>
+                </template>
+                <template #extra>
+                    <div class="flex items-center py-3 lg:py-[30px] pr-4 lg:pr-15 2xl:pr-52">
+                        <!-- <n-button text class="!p-[8px] !mr-[8px] lg:!p-[12px] lg:!mr-[12px]" @click="showDesc = true">
+                            <img
+                                class="w-[20px] h-[20px] lg:w-[24px] lg:h-[24px]"
+                                src="@/assets/icon_jieshao.png"
+                                alt=""
+                            />
+                            <span class="text-white ml-[4px] lg:ml-[6px] text-xs lg:text-sm">介绍</span>
+                        </n-button> -->
+                        <template v-if="isLogin">
+                            <n-button text v-if="isMobile" @click="goMine">
+                                <user-avatar avatarType="small" onlyAvatar />
+                            </n-button>
+                            <n-popover placement="bottom" trigger="click" v-else>
+                                <template #trigger>
+                                    <n-button text>
+                                        <user-avatar :avatarType="isMobile ? 'small' : 'medium'" onlyAvatar />
+                                    </n-button>
+                                </template>
+                                <n-button size="small" @click="logout" text>退出登录</n-button>
+                            </n-popover>
+                        </template>
+
+                        <template v-else>
+                            <n-button v-if="!isMobile" type="primary" round @click="showLogin = true"> 登录 </n-button>
+                            <n-button v-else round @click="$router.push('/login')" type="primary" size="small"
+                                >登录</n-button
+                            >
+                        </template>
+                    </div>
+                </template>
+            </n-page-header>
+        </NConfigProvider>
+
+        <div
+            class="flex flex-col items-center content-center pl-4 md:pl-10 lg:pl-15 2xl:pl-52 md:items-start flex-1 pt-4 pb-24 page-content md:pb-4 md:justify-center"
+        >
+            <img src="@/assets/brand.png" class="w-3/4 max-w-[510px] md:translate-x-[-10px]" alt="" />
+
+            <div class="text-xs leading-6 md:text-base text-white opacity-80 text-center md:text-left mt-4 w-[90%] max-w-[705px]">
+                走马AI助手是人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,并能完成撰写邮件、视频脚本、文案、翻译、代码,写论文等任务。后续更新:向量数据库应用,AI助手角色赋予,AI助手私有化,FileChat等。
+            </div>
+
+            <NConfigProvider
+                class="w-[90%] max-w-[426px] mt-8"
+                :theme-overrides="{
+                    common: { cardColor: 'transparent' },
+                    Card: {
+                        paddingMedium: '0',
+                        borderRadius: '12px',
+                        borderColor: 'rgba(255, 255, 255, 0.2)'
+                    }
+                }"
+            >
+                <n-card
+                    class="vip rounded-xl overflow-hidden backdrop-blur-sm"
+                    :content-style="{
+                        padding: 0
+                    }"
+                    :bordered="isMobile"
+                >
+                    <n-grid cols="4" responsive="screen">
+                        <n-grid-item v-for="(item, index) in items" :key="item.name">
+                            <div class="flex flex-col items-center h-[120px] md:h-[108px] justify-center md:items-start">
+                                <div class="flex flex-col items-center relative" :class="{ 'pb-[44px]': index === 1 }">
+                                    <img class="w-[60px] h-[60px]" :src="item.img" alt="" />
+                                    <div
+                                        class="text text-xs text-gray-50 mt-2 text-center"
+                                        :class="{ 'absolute bottom-0': index === 1 }"
+                                    >
+                                        <div class="whitespace-nowrap">{{ item.name }}</div>
+                                        <div class="mt-1 text-[10px] text-neutral-400 whitespace-nowrap">
+                                            {{ item.desc }}
+                                        </div>
+                                    </div>
+                                </div>
+                            </div>
+                        </n-grid-item>
+                    </n-grid>
+                </n-card>
+            </NConfigProvider>
+
+            <div class="flex-1" v-if="isMobile"></div>
+
+            <NConfigProvider
+                :theme-overrides="{
+                    Button: {
+                        heightMedium: '44px',
+                        heightLarge: isMobile ? '44px' : '60px',
+                        fontSizeLarge: isMobile ? '16px' : '24px'
+                    }
+                }"
+                class="mt-16 w-[300px] sm:w-80"
+            >
+                <n-button
+                    type="primary"
+                    class="alimamaShuHeiTi max-w-[300px] !border-white"
+                    block
+                    round
+                    size="large"
+                    @click="goChat"
+                    :loading="loading"
+                >
+                    立即体验
+                </n-button>
+            </NConfigProvider>
+        </div>
+
+        <NConfigProvider
+            :theme="darkTheme"
+            :theme-overrides="{
+                Card: {
+                    colorModal: '#20223c'
+                },
+                Input: {
+                    border: '1px solid #2B3038'
+                }
+            }"
+        >
+            <n-modal v-model:show="showLogin" transform-origin="center">
+                <n-card class="!max-w-xl !rounded-xl">
+                    <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" theme="dark"></login-form>
+                    </div>
+                </n-card>
+            </n-modal>
+        </NConfigProvider>
+
+        <NConfigProvider
+            :theme="lightTheme"
+            :theme-overrides="{
+                Card: {
+                    colorModal: 'linear-gradient(180deg, rgba(196, 218, 255, 1), #fbf1ff)'
+                },
+                Input: {
+                    border: '1px solid #2B3038'
+                }
+            }"
+        >
+            <n-modal v-model:show="showDesc" class="!max-w-xl !w-[85%] !rounded-[12px]">
+                <n-card content-style="padding:2px">
+                    <div
+                        class="pt-[20px] rounded-[12px]"
+                        style="background: linear-gradient(180deg, #e8f2ff 0%, #fbf1ff 100%)"
+                    >
+                        <img class="w-[180px] block mx-[auto]" src="@/assets/png-wenzi.png" alt="" />
+                        <div class="text-center text-[10px] text-[#2900D499] uppercase">走马AI助手 introduce</div>
+                        <div class="text-black text-sm px-4 pb-[22px] pt-[10px]">
+                            <p>
+                                为维持高速稳定的客户体验,走马AI助手采用微软Microsoft
+                                Azure云服务器,微软Azure是业界第一名的智能AI、物联网、混合云,集机器学习、数据分析与信息系统服务集大成,是唯一在中国正式商用的国际公有云。OpenAi公司的ChatGPT即部署于微软Azure,确保了两者的同源与互通。
+                            </p>
+                            <p class="mt-[10px]">
+                                针对国内用户的使用习惯,走马AI助手专门对微信生态进行了全面优化,用户不用跳转到外部浏览器,将走马AI助手保存到“收藏”内,即可完成一键登录、使用,复制、分享等功能,在微信上的响应速度、使用体验远超同类产品。
+                            </p>
+                        </div>
+                    </div>
+                </n-card>
+            </n-modal>
+        </NConfigProvider>
+    </n-el>
 </template>
+
 <script setup lang="ts">
-import robot1Img from '@/assets/robot1.gif'
-import Game from '@/components/game/Game.vue'
-import { onMounted } from 'vue'
-onMounted(() => {
-    const splash = document.getElementById('splash-screen')
-    if (splash) {
-        splash.setAttribute('isHold', 'true')
-        splash.style.opacity = '1'
-        splash.style.display = 'block'
+import {
+    NAvatar,
+    NButton,
+    NPageHeader,
+    NCard,
+    NGrid,
+    NGridItem,
+    NModal,
+    NConfigProvider,
+    darkTheme,
+    lightTheme,
+    NEl,
+    NPopover,
+    useMessage,
+    useDialog
+} from 'naive-ui'
+import h5Bg from '@/assets/bg_mobile.jpg'
+import pcBg from '@/assets/bg_desktop1.jpg'
+import logo from '@/assets/logo.png'
+import { useUserStore } from '@/store'
+import { useRouter, useRoute } 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 imgQiye from '@/assets/qiye.png'
+import imgHuihua from '@/assets/huihua.png'
+import imgItem02 from '@/assets/png-02.png'
+import imgItem03 from '@/assets/png-03.png'
+import imgItem05 from '@/assets/png-05.png'
+import imgItem06 from '@/assets/png-06.png'
+import imgItem07 from '@/assets/png-07.png'
+import { init as initEruda } from '@/utils/console'
+import { useStorage } from '@vueuse/core'
+import borderImg from '@/assets/png-biankuang.png'
+
+const { isMobile } = useBasicLayout()
+
+const router = useRouter()
+const route = useRoute()
+const userStore = useUserStore()
+const showLogin = ref(false)
+const items = [
+    {
+        name: '基础问答',
+        desc: '快速检索',
+        img: imgItem01
+    },
+    {
+        name: '独立会话',
+        desc: '上下文精准约束',
+        img: imgQiye
+    },
+    {
+        name: '企业链路',
+        desc: '高效稳定',
+        img: imgHuihua
+    },
+    {
+        name: '后续权益',
+        desc: '免费开放',
+        img: imgItem06
     }
+]
+
+const isLogin = computed(() => {
+    return !!userStore.userInfo.id
 })
+
+const onLogin = () => {
+    showLogin.value = false
+    loading.value = true
+    router.replace({ name: 'moments' })
+}
+
+const loading = ref(false)
+function goChat() {
+    if (!userStore.userInfo.id) {
+        if (!isMobile.value) {
+            showLogin.value = true
+        } else {
+            router.push({ name: 'login' })
+        }
+    } else {
+        loading.value = true
+        router.push({ name: 'moments' })
+    }
+}
+
+function goMine() {
+    router.push({
+        name: 'mine'
+    })
+}
+
+const dialog = useDialog()
+const message = useMessage()
+function logout() {
+    dialog.create({
+        title: '提示',
+        content: '确认要退出登录吗?',
+        positiveText: '退出登录',
+        negativeText: '取消',
+        maskClosable: false,
+        onPositiveClick: () => {
+            userStore.logout()
+            message.success('退出登录成功')
+        }
+    })
+}
+let clickNum = 0
+let to: any = null
+function showConsoleEve() {
+    clickNum++
+    if (clickNum >= 10) {
+        initEruda()
+        useStorage('showConsole', 0).value = new Date().getTime() + 60 * 60 * 1000
+        clickNum = 0
+        return
+    } else {
+        if (to) {
+            clearTimeout(to)
+        }
+        to = setTimeout(() => {
+            clickNum = 0
+        }, 1000)
+    }
+}
+
+setTimeout(() => {
+    if (route.query.login && !isMobile.value) {
+        showLogin.value = true
+        router.replace({ query: {} }).catch(() => {})
+    }
+}, 300)
+
+//介绍
+const showDesc = ref(false)
 </script>
 
 <style lang="less" scoped>
-.page {
-    width: 100vw;
-    height: 100vh;
-    position: relative;
+:deep(.n-page-header-wrapper) {
+    position: sticky;
+    top: 0;
+    z-index: 20;
 }
 
-#robot1 {
-    position: absolute;
-    right: 0;
+:deep(.n-avatar) {
+    --n-merged-color: transparent;
 }
 </style>