This commit is contained in:
2023-10-21 20:58:04 +08:00
parent 50b435ba80
commit 57a9995792
8 changed files with 158 additions and 30 deletions

View File

@@ -1,13 +1,12 @@
import { ref } from 'vue' import { ref } from 'vue'
const debugAPI = import.meta.env.VITE_DEBUG_API const debugAPI = import.meta.env.VITE_DEBUG_API
const releseAPI = `${document.location.protocol}//api.vtsuru.live/` const releseAPI = `${document.location.protocol}//api.vtsuru.live/api/`
export const isBackendUsable = ref(true) export const isBackendUsable = ref(true)
export const BASE_API = process.env.NODE_ENV === 'development' ? debugAPI : releseAPI export const BASE_API = process.env.NODE_ENV === 'development' ? debugAPI : releseAPI
export const FETCH_API = 'https://fetch.vtsuru.live/' export const FETCH_API = 'https://fetch.vtsuru.live/'
export const FIVESING_SEARCH_API = 'http://search.5sing.kugou.com/home/json?sort=1&page=1&filter=3&type=0&keyword='
export const TURNSTILE_KEY = '0x4AAAAAAAETUSAKbds019h0' export const TURNSTILE_KEY = '0x4AAAAAAAETUSAKbds019h0'

View File

@@ -12,6 +12,11 @@ const routes: Array<RouteRecordRaw> = [
name: 'verify', name: 'verify',
component: () => import('@/views/VerifyView.vue'), component: () => import('@/views/VerifyView.vue'),
}, },
{
path: '/about',
name: 'about',
component: () => import('@/views/AboutView.vue'),
},
{ {
path: '/user/:id', path: '/user/:id',
name: 'user', name: 'user',

1
src/svgs/ic_vtuber.svg Normal file
View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1697886231944" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2563" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M212.5568 605.0816C212.48 647.936 198.7584 687.1296 171.52 722.688c-40.9088 53.3248-83.9168 69.2736-77.824 85.1968 11.3408 35.4048 45.568 49.024 102.656 40.8832 36.7872 61.44 95.488 90.0096 176.0256 85.6064 88.6016-9.6 119.6544-92.0064 93.1072-247.2192l-252.9024-82.048zM734.6688 591.4112a293.504 293.504 0 0 1-52.352 122.8288c-40.448 55.7056-31.3856 56.9344-25.344 73.6 7.7824 21.4528 24.0128 50.048 48.7424 85.8112 80.2048 26.9312 158.3616 13.056 234.496-41.5744 30.9504-25.344-15.9744-57.2672-51.9424-136.6016-10.3168-22.784-5.0688-88.0128 15.7696-195.6608l-169.3696 91.5968z" fill="#23ADE5" p-id="2564"></path><path d="M706.2016 689.664l113.28-16.384c35.9936-44.6464 69.888-54.5024 101.6832-29.5168 47.6928 37.4272 8.2688 142.0288-71.5008 102.7584-1.7408 0-51.5072 5.5296-149.3504 16.64l5.888-73.5232zM420.6336 759.4752a41.8816 41.8816 0 0 1 18.5088 56.7296l-36.096 69.7088a43.136 43.136 0 0 1-57.5488 18.7648 41.8816 41.8816 0 0 1-18.4832-56.7296l36.0448-69.7088a43.136 43.136 0 0 1 57.5744-18.7648z" fill="#FFE6DF" p-id="2565"></path><path d="M465.4592 698.112c-35.5072-0.6656-67.456 23.296-95.872 71.8336-0.0512 0.3584 18.0992 20.1728 54.4512 59.4688l-18.5856 64.1536c2.6624 36.1728 57.0624 54.272 163.1744 54.272s165.1456-21.4272 177.152-64.2304l-30.72-93.2352c50.7904-1.1264 76.2112-7.424 76.2112-18.8416 0-17.152-27.6736-97.536-27.6736-115.328 0-11.8528-26.4448-5.632-79.3088 18.688l-218.8288 23.2192z" fill="#47CFE5" p-id="2566"></path><path d="M528.5376 684.0832l56.192-4.9152 22.912 53.6832c-23.9616 27.9552-38.3488 41.8048-43.0848 41.5232-6.3744-0.0256-22.912-11.1616-49.6384-33.408l13.6192-56.8832z" fill="#FED878" p-id="2567"></path><path d="M560.512 728.0128l-37.4272 106.3936 53.888 79.0784 38.8608-87.168z" fill="#FED878" p-id="2568"></path><path d="M574.5408 705.024c290.4832-44.8256 302.72-134.016 290.5088-252.928-12.2368-118.8864-160.2816-200.4224-330.752-182.0928-170.4192 18.3296-298.6752 129.5872-286.464 248.4736 12.2112 118.912 36.224 231.3216 326.7072 186.5216z" fill="#FFE6DF" p-id="2569"></path><path d="M388.0192 350.848c25.6512 24.32 31.744 31.4112 85.4528 58.4448 105.1392 42.752 245.8112 9.344 192.2048-92.928 19.5328 43.4176 96.256 99.7632 131.4304 118.5024-8.7552 137.216-15.5648 200.7808 8.7552 209.1008 19.584 6.7072 83.584-40.064 102.1184-171.1872 19.712-239.4624-231.7824-433.152-347.9552-354.304C283.7504 23.9616 83.2256 343.3472 139.648 558.5664c30.72 113.6896 139.392 207.9232 174.7456 182.3488 24.8064-17.92 3.2768-148.4288-35.0464-228.864 48.7168-40.448 68.7104-57.6256 108.672-161.1776z" fill="#23ADE5" p-id="2570"></path><path d="M337.3056 490.1632l2.3808 0.3584 129.3568 29.184c13.1584 2.944 16.896 19.3536 7.424 27.904l-2.0736 1.5872-105.9328 69.504a16.2816 16.2816 0 0 1-19.968-25.6l2.0992-1.6384 73.8048-48.4352-91.8784-20.736a16.3072 16.3072 0 0 1-12.6464-17.0752l0.3584-2.3808a16.3072 16.3072 0 0 1 17.0752-12.672z" fill="#24A7DA" p-id="2571"></path><path d="M653.927816 504.23771a86.5792 42.3168 84 1 0 84.169968-8.84662 86.5792 42.3168 84 1 0-84.169968 8.84662Z" fill="#24A7DA" p-id="2572"></path><path d="M625.2544 565.632l2.4064 0.256a16.2816 16.2816 0 0 1 13.2352 18.8672c-8.5248 48.2048-28.672 71.5264-57.4464 67.712a58.7776 58.7776 0 0 1-24.6272-9.9584l-1.3312-0.9472-1.5104 1.28c-28.6208 22.912-55.8848 15.0528-71.04-22.6304l-1.6896-4.48a16.2816 16.2816 0 0 1 30.72-10.9056l2.176 5.888c5.6576 14.1312 9.984 16.2048 20.0448 6.8608l4.0448-4.0448 4.6592-5.0944a16.3072 16.3072 0 0 1 23.04-1.3312l1.8432 1.9712c2.8672 3.584 11.8528 10.2912 17.9456 11.0848 7.5264 1.024 15.232-7.8848 21.0688-41.0624a16.3072 16.3072 0 0 1 16.4608-13.4656z" fill="#24A7DA" p-id="2573"></path></svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

50
src/views/AboutView.vue Normal file
View File

@@ -0,0 +1,50 @@
<script setup lang="ts">
import { NButton, NCard, NDivider, NLayoutContent, NSpace, NText } from 'naive-ui'
</script>
<template>
<NLayoutContent style="height: 100vh">
<NSpace style="margin-top: 50px" justify="center" align="center" vertical>
<NCard style="max-width: 80vw; width: 700px">
<template #header> 关于 </template>
<NText>
一个兴趣释然的网站.
<br />
反馈 | 建议 | 需求 | 闲聊: :
<NButton
tag="a"
type="info"
target="_blank"
href="http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=uJNTU6LQ7xANoxP1IyZxS1xYkOKVOF7G&authKey=nl3Bv4UascE4tJ98UDTihEZSvivzuaQGfMViy1BqUe5lYgrz6hi0huK6dyAYq1hi&noverify=0&group_code=873260337"
text
>
873260337
</NButton>
<NDivider vertical />
邮箱:
<NButton
tag="a"
type="info"
href="mailto:megghy@qq.com"
text
>
megghy@qq.com
</NButton>
</NText>
<template #footer>
<NSpace vertical>
<span>
开发者:
<NButton type="primary" tag="a" href="https://space.bilibili.com/10021741" target="_blank" text style=""> Megghy </NButton>
</span>
<span>
技术栈: 前端 VUE3 + NAIVE UI, 后端 .NET 8
</span>
</NSpace>
</template>
</NCard>
<NButton @click="$router.push({ name: 'manage-index' })">
回到主页
</NButton>
</NSpace>
</NLayoutContent>
</template>

View File

@@ -1,35 +1,110 @@
<script setup lang="ts"> <script setup lang="ts">
import RegisterAndLogin from '@/components/RegisterAndLogin.vue'; import RegisterAndLogin from '@/components/RegisterAndLogin.vue'
import { NGradientText, NSpace, NText } from 'naive-ui' import { NCard, NDivider, NGradientText, NSpace, NText, NIcon, NGrid, NGridItem, NButton } from 'naive-ui'
import vtb from '@/svgs/ic_vtuber.svg'
import { AnalyticsSharp, Calendar, Chatbox, MusicalNote } from '@vicons/ionicons5'
import { useWindowSize } from '@vueuse/core'
import { Lottery24Filled, MoreHorizontal24Filled } from '@vicons/fluent'
const { width } = useWindowSize()
const functions = [
{
name: '日程表',
desc: '提供多种样式的日程表 (还没做完',
icon: Calendar,
},
{
name: '歌单',
desc: '可以放自己的歌单或者能唱的歌, 支持多种样式 (也还没做完',
icon: MusicalNote,
},
{
name: '棉花糖 (提问箱',
desc: '一个简单易用的提问箱',
icon: Chatbox,
},
{
name: '动态抽奖',
desc: '从动态评论区抽取评论或者转发的用户',
icon: Lottery24Filled,
},
{
name: '数据跟踪',
desc: '绑定账号后查看粉丝 舰长 观看数 等数据的历史记录',
icon: AnalyticsSharp,
},
{
name: '还有更多',
desc: '有其他合理需求或者建议, 或者有想要添加的样式? 向我提出!',
icon: MoreHorizontal24Filled,
},
]
const iconColor = 'white'
</script> </script>
<template> <template>
<div class="index-background"> <div class="index-background">
<NSpace justify="center"> <NSpace vertical justify="center" align="center" style="padding-top: 30px">
<NSpace justify="center" align="center" :size="width > 700 ? 50 : 0">
<vtb />
<NSpace vertical justify="center">
<NGradientText <NGradientText
:size="50" size="3.6rem"
:gradient="{ :gradient="{
deg: 180, deg: 180,
from: '#e5e5e5', from: '#e5e5e5',
to: '#c2ebeb', to: '#c2ebeb',
}" }"
style="font-family: Microsoft YaHei,Times New Roman, Times, serif;" style="font-family: Microsoft YaHei, Times New Roman, Times, serif; font-weight: 700"
> >
VTSURU.LIVE VTSURU.LIVE
</NGradientText> </NGradientText>
<NText style="font-size: 1.5em; font-weight: 500"> 一个给主播提供便利功能的网站 😊 </NText>
<span></span>
<NSpace justify="center">
<NButton type="primary" size="large" @click="$router.push({ name: 'manage-index' })"> 开始使用 </NButton>
</NSpace>
</NSpace>
</NSpace>
<NDivider style="width: 90vw" />
<NGrid cols="2 600:3 800:4" x-gap="50" y-gap="50" style="max-width: 80vw">
<NGridItem v-for="item in functions" :key="item.name">
<NSpace align="end">
<NIcon :component="item.icon" :color="iconColor" size="20" />
<NText class="index-feature header"> {{ item.name }} </NText>
</NSpace>
<NText class="index-feature content"> {{ item.desc }} </NText>
</NGridItem>
</NGrid>
</NSpace>
<NSpace style="position: absolute; bottom: 0;margin: 0 auto;width: 100vw;" justify="center">
<span style="color: white">
BY
<NButton tag="a" href="https://space.bilibili.com/10021741" target="_blank" text style="color: rgb(161, 236, 199)"> Megghy </NButton>
</span>
</NSpace> </NSpace>
<div style="width:500px;">
<RegisterAndLogin />
</div>
</div> </div>
</template> </template>
<style lang="stylus"> <style lang="stylus" scoped>
body body
margin:0 margin:0
.index-background .index-background
display: abslute;
height: 100vh; height: 100vh;
background: #8360c3; /* fallback for old browsers */ background: #8360c3; /* fallback for old browsers */
background: -webkit-linear-gradient(to right, #2ebf91, #8360c3); /* Chrome 10-25, Safari 5.1-6 */ background: -webkit-linear-gradient(to right, #2ebf91, #8360c3); /* Chrome 10-25, Safari 5.1-6 */
background: linear-gradient(to right, #2ebf91, #8360c3); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ background: linear-gradient(to right, #2ebf91, #8360c3); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
.index-background .header
font-size: 1.3rem;
font-weight: 700;
font-color: #b1b1b1;
.index-background .content
max-width: 300px;
font-size: 17px;
font-color: #b1b1b1;
</style> </style>

View File

@@ -193,7 +193,7 @@ onMounted(() => {
<NSpace justify="center"> <NSpace justify="center">
<NText depth="3" v-if="width > 150"> <NText depth="3" v-if="width > 150">
有更多功能建议请 有更多功能建议请
<NButton text type="info"> 反馈 </NButton> <NButton text type="info" @click="$router.push({ name: 'about' })"> 反馈 </NButton>
</NText> </NText>
</NSpace> </NSpace>
</NLayoutSider> </NLayoutSider>

View File

@@ -1,16 +1,14 @@
<script setup lang="ts"> <script setup lang="ts">
import { useAccount } from '@/api/account' import { useAccount } from '@/api/account'
import { NAlert, NButton, NCard, NDivider, NSpace, NTag, NText, NThing, NTime } from 'naive-ui' import { NAlert, NButton, NCard, NDivider, NSpace, NTag, NText, NThing, NTime } from 'naive-ui'
import SettingsManageView from './SettingsManageView.vue'; import SettingsManageView from './SettingsManageView.vue'
const accountInfo = useAccount() const accountInfo = useAccount()
</script> </script>
<template> <template>
<NSpace justify="center" align="center" vertical style="width: 100%;"> <NSpace justify="center" align="center" vertical style="width: 100%">
<NCard embedded style="max-width: 90%;width: 800px;"> <NCard embedded style="max-width: 90%; width: 800px">
<NSpace align="center" justify="center" vertical> <NSpace align="center" justify="center" vertical>
<NText style="font-size: 3rem"> <NText style="font-size: 3rem">
{{ accountInfo?.name }} {{ accountInfo?.name }}
@@ -40,9 +38,9 @@ const accountInfo = useAccount()
</template> </template>
</NAlert> </NAlert>
</NCard> </NCard>
<div style="width: 100%;"> </NSpace>
<NDivider/> <div>
<NDivider />
<SettingsManageView /> <SettingsManageView />
</div> </div>
</NSpace>
</template> </template>

View File

@@ -237,7 +237,7 @@ onMounted(() => {
</script> </script>
<template> <template>
<NButton @click="showAddModal = true"> 添加周程 </NButton> <NButton @click="showAddModal = true" type="primary"> 添加周程 </NButton>
<NDivider /> <NDivider />
<NModal v-model:show="showAddModal" style="width: 600px; max-width: 90vw" preset="card" title="添加周程"> <NModal v-model:show="showAddModal" style="width: 600px; max-width: 90vw" preset="card" title="添加周程">
<NSpace vertical> <NSpace vertical>