mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-05 23:56:42 +08:00
add menus
This commit is contained in:
@@ -79,81 +79,88 @@ const upgradeBanner = computed(() => {
|
|||||||
to: '/dashboard',
|
to: '/dashboard',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<!-- 👉 发现 -->
|
||||||
|
<VerticalNavSectionTitle
|
||||||
|
:item="{
|
||||||
|
heading: '发现',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
<VerticalNavLink
|
<VerticalNavLink
|
||||||
:item="{
|
:item="{
|
||||||
title: '用户设置',
|
title: '推荐',
|
||||||
icon: 'mdi-account-cog-outline',
|
icon: 'mdi-movie-star',
|
||||||
to: '/account-settings',
|
to: '/ranking',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 👉 Pages -->
|
|
||||||
<VerticalNavSectionTitle
|
|
||||||
:item="{
|
|
||||||
heading: 'Pages',
|
|
||||||
}"
|
|
||||||
/>
|
|
||||||
<VerticalNavLink
|
<VerticalNavLink
|
||||||
:item="{
|
:item="{
|
||||||
title: '登录',
|
title: '资源搜索',
|
||||||
icon: 'mdi-login',
|
|
||||||
to: '/login',
|
|
||||||
}"
|
|
||||||
/>
|
|
||||||
<VerticalNavLink
|
|
||||||
:item="{
|
|
||||||
title: '注册',
|
|
||||||
icon: 'mdi-account-plus-outline',
|
|
||||||
to: '/register',
|
|
||||||
}"
|
|
||||||
/>
|
|
||||||
<VerticalNavLink
|
|
||||||
:item="{
|
|
||||||
title: '404',
|
|
||||||
icon: 'mdi-information-outline',
|
|
||||||
to: '/no-existence',
|
|
||||||
}"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- 👉 User Interface -->
|
|
||||||
<VerticalNavSectionTitle
|
|
||||||
:item="{
|
|
||||||
heading: 'User Interface',
|
|
||||||
}"
|
|
||||||
/>
|
|
||||||
<VerticalNavLink
|
|
||||||
:item="{
|
|
||||||
title: '排版',
|
|
||||||
icon: 'mdi-alpha-t-box-outline',
|
|
||||||
to: '/typography',
|
|
||||||
}"
|
|
||||||
/>
|
|
||||||
<VerticalNavLink
|
|
||||||
:item="{
|
|
||||||
title: '图标',
|
|
||||||
icon: 'mdi-eye-outline',
|
|
||||||
to: '/icons',
|
|
||||||
}"
|
|
||||||
/>
|
|
||||||
<VerticalNavLink
|
|
||||||
:item="{
|
|
||||||
title: '卡片',
|
|
||||||
icon: 'mdi-credit-card-outline',
|
|
||||||
to: '/cards',
|
|
||||||
}"
|
|
||||||
/>
|
|
||||||
<VerticalNavLink
|
|
||||||
:item="{
|
|
||||||
title: '表格',
|
|
||||||
icon: 'mdi-table',
|
icon: 'mdi-table',
|
||||||
to: '/tables',
|
to: '/resources',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 👉 订阅 -->
|
||||||
|
<VerticalNavSectionTitle
|
||||||
|
:item="{
|
||||||
|
heading: '订阅',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
<VerticalNavLink
|
<VerticalNavLink
|
||||||
:item="{
|
:item="{
|
||||||
title: '表单布局',
|
title: '电影',
|
||||||
icon: 'mdi-form-select',
|
icon: 'mdi-movie-check-outline',
|
||||||
to: '/form-layouts',
|
to: '/subscribe-movie',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
<VerticalNavLink
|
||||||
|
:item="{
|
||||||
|
title: '电视剧',
|
||||||
|
icon: 'mdi-television-classic',
|
||||||
|
to: '/subscribe-tv',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
<!-- 👉 整理 -->
|
||||||
|
<VerticalNavSectionTitle
|
||||||
|
:item="{
|
||||||
|
heading: '整理',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
<VerticalNavLink
|
||||||
|
:item="{
|
||||||
|
title: '正在下载',
|
||||||
|
icon: 'mdi-download-outline',
|
||||||
|
to: '/downloading',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
<VerticalNavLink
|
||||||
|
:item="{
|
||||||
|
title: '历史记录',
|
||||||
|
icon: 'mdi-history',
|
||||||
|
to: '/history',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 👉 用户设置 -->
|
||||||
|
<VerticalNavSectionTitle
|
||||||
|
:item="{
|
||||||
|
heading: '设置',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
<VerticalNavLink
|
||||||
|
:item="{
|
||||||
|
title: '站点管理',
|
||||||
|
icon: 'mdi-web',
|
||||||
|
to: '/sites',
|
||||||
|
}"
|
||||||
|
/>
|
||||||
|
<VerticalNavLink
|
||||||
|
:item="{
|
||||||
|
title: '设置',
|
||||||
|
icon: 'mdi-cog-outline',
|
||||||
|
to: '/account-settings',
|
||||||
}"
|
}"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import CardBasic from '@/views/pages/cards/card-basic/CardBasic.vue';
|
||||||
|
import CardNavigation from '@/views/pages/cards/card-basic/CardNavigation.vue';
|
||||||
|
import CardSolid from '@/views/pages/cards/card-basic/CardSolid.vue';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<p class="text-2xl mb-6">
|
||||||
|
Basic Cards
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<CardBasic />
|
||||||
|
|
||||||
|
<p class="text-2xl mb-6 mt-14">
|
||||||
|
Navigation Cards
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<CardNavigation />
|
||||||
|
|
||||||
|
<p class="text-2xl mt-14 mb-6 ">
|
||||||
|
Solid Cards
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<CardSolid />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import DemoSimpleTableBasics from '@/views/pages/tables/DemoSimpleTableBasics.vue'
|
||||||
|
import DemoSimpleTableDensity from '@/views/pages/tables/DemoSimpleTableDensity.vue'
|
||||||
|
import DemoSimpleTableFixedHeader from '@/views/pages/tables/DemoSimpleTableFixedHeader.vue'
|
||||||
|
import DemoSimpleTableHeight from '@/views/pages/tables/DemoSimpleTableHeight.vue'
|
||||||
|
import DemoSimpleTableTheme from '@/views/pages/tables/DemoSimpleTableTheme.vue'
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<VRow>
|
||||||
|
<VCol cols="12">
|
||||||
|
<VCard title="Basic">
|
||||||
|
<DemoSimpleTableBasics />
|
||||||
|
</VCard>
|
||||||
|
</VCol>
|
||||||
|
|
||||||
|
<VCol cols="12">
|
||||||
|
<VCard title="Theme">
|
||||||
|
<VCardText>
|
||||||
|
use <code>theme</code> prop to switch table to the dark theme.
|
||||||
|
</VCardText>
|
||||||
|
<DemoSimpleTableTheme />
|
||||||
|
</VCard>
|
||||||
|
</VCol>
|
||||||
|
|
||||||
|
<VCol cols="12">
|
||||||
|
<VCard title="Density">
|
||||||
|
<VCardText>
|
||||||
|
You can show a dense version of the table by using the <code>density</code> prop.
|
||||||
|
</VCardText>
|
||||||
|
<DemoSimpleTableDensity />
|
||||||
|
</VCard>
|
||||||
|
</VCol>
|
||||||
|
|
||||||
|
<VCol cols="12">
|
||||||
|
<VCard title="Height">
|
||||||
|
<VCardText>
|
||||||
|
You can set the height of the table by using the <code>height</code> prop.
|
||||||
|
</VCardText>
|
||||||
|
<DemoSimpleTableHeight />
|
||||||
|
</VCard>
|
||||||
|
</VCol>
|
||||||
|
|
||||||
|
<VCol cols="12">
|
||||||
|
<VCard title="Fixed Header">
|
||||||
|
<VCardText>
|
||||||
|
You can fix the header of table by using the <code>fixed-header</code> prop.
|
||||||
|
</VCardText>
|
||||||
|
<DemoSimpleTableFixedHeader />
|
||||||
|
</VCard>
|
||||||
|
</VCol>
|
||||||
|
</VRow>
|
||||||
|
</template>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import CardSolid from '@/views/pages/cards/card-basic/CardSolid.vue';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<CardSolid />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import CardSolid from '@/views/pages/cards/card-basic/CardSolid.vue';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<CardSolid />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
+32
-36
@@ -12,48 +12,44 @@ const router = createRouter({
|
|||||||
path: 'dashboard',
|
path: 'dashboard',
|
||||||
component: () => import('../pages/dashboard.vue')
|
component: () => import('../pages/dashboard.vue')
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: 'ranking',
|
||||||
|
component: () => import('../pages/ranking.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'resources',
|
||||||
|
component: () => import('../pages/resources.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'subscribe-movie',
|
||||||
|
component: () => import('../pages/subscribe-movie.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'subscribe-tv',
|
||||||
|
component: () => import('../pages/subscribe-tv.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'downloading',
|
||||||
|
component: () => import('../pages/downloading.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'history',
|
||||||
|
component: () => import('../pages/history.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'sites',
|
||||||
|
component: () => import('../pages/sites.vue'),
|
||||||
|
meta: {
|
||||||
|
requiresAuth: true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: 'account-settings',
|
path: 'account-settings',
|
||||||
component: () => import('../pages/account-settings.vue'),
|
component: () => import('../pages/account-settings.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
requiresAuth: true
|
requiresAuth: true
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
{
|
|
||||||
path: 'typography',
|
|
||||||
component: () => import('../pages/typography.vue'),
|
|
||||||
meta: {
|
|
||||||
requiresAuth: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'icons',
|
|
||||||
component: () => import('../pages/icons.vue'),
|
|
||||||
meta: {
|
|
||||||
requiresAuth: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'cards',
|
|
||||||
component: () => import('../pages/cards.vue'),
|
|
||||||
meta: {
|
|
||||||
requiresAuth: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'tables',
|
|
||||||
component: () => import('../pages/tables.vue'),
|
|
||||||
meta: {
|
|
||||||
requiresAuth: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'form-layouts',
|
|
||||||
component: () => import('../pages/form-layouts.vue'),
|
|
||||||
meta: {
|
|
||||||
requiresAuth: true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user