-
+
diff --git a/src/pages/index/bangumi.vue b/src/pages/index/bangumi.vue
new file mode 100644
index 00000000..1479408a
--- /dev/null
+++ b/src/pages/index/bangumi.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
diff --git a/src/pages/calendar.vue b/src/pages/index/calendar.vue
similarity index 100%
rename from src/pages/calendar.vue
rename to src/pages/index/calendar.vue
diff --git a/src/pages/config.vue b/src/pages/index/config.vue
similarity index 100%
rename from src/pages/config.vue
rename to src/pages/index/config.vue
diff --git a/src/pages/downloader.vue b/src/pages/index/downloader.vue
similarity index 100%
rename from src/pages/downloader.vue
rename to src/pages/index/downloader.vue
diff --git a/src/pages/log.vue b/src/pages/index/log.vue
similarity index 100%
rename from src/pages/log.vue
rename to src/pages/index/log.vue
diff --git a/src/pages/player.vue b/src/pages/index/player.vue
similarity index 100%
rename from src/pages/player.vue
rename to src/pages/index/player.vue
diff --git a/src/pages/login.vue b/src/pages/login.vue
new file mode 100644
index 00000000..4f293bdd
--- /dev/null
+++ b/src/pages/login.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
diff --git a/src/router-type.d.ts b/src/router-type.d.ts
index b722f11f..898b5e6c 100644
--- a/src/router-type.d.ts
+++ b/src/router-type.d.ts
@@ -39,156 +39,110 @@ import type {
declare module 'vue-router/auto/routes' {
export interface RouteNamedMap {
- 'Bangumi List': RouteRecordInfo<
- 'Bangumi List',
- '/',
- Record
,
- Record
- >;
- Calendar: RouteRecordInfo<
- 'Calendar',
- '/calendar',
- Record,
- Record
- >;
- Config: RouteRecordInfo<
- 'Config',
- '/config',
- Record,
- Record
- >;
- Downloader: RouteRecordInfo<
- 'Downloader',
- '/downloader',
- Record,
- Record
- >;
- Log: RouteRecordInfo<
- 'Log',
- '/log',
- Record,
- Record
- >;
- Player: RouteRecordInfo<
- 'Player',
- '/player',
- Record,
- Record
- >;
+ '/': RouteRecordInfo<'/', '/', Record, Record>,
+ 'Bangumi List': RouteRecordInfo<'Bangumi List', '/bangumi', Record, Record>,
+ 'Calendar': RouteRecordInfo<'Calendar', '/calendar', Record, Record>,
+ 'Config': RouteRecordInfo<'Config', '/config', Record, Record>,
+ 'Downloader': RouteRecordInfo<'Downloader', '/downloader', Record, Record>,
+ 'Log': RouteRecordInfo<'Log', '/log', Record, Record>,
+ 'Player': RouteRecordInfo<'Player', '/player', Record, Record>,
+ 'Login': RouteRecordInfo<'Login', '/login', Record, Record>,
}
}
declare module 'vue-router/auto' {
- import type { RouteNamedMap } from 'vue-router/auto/routes';
+ import type { RouteNamedMap } from 'vue-router/auto/routes'
- export type RouterTyped = _RouterTyped;
+ export type RouterTyped = _RouterTyped
/**
* Type safe version of `RouteLocationNormalized` (the type of `to` and `from` in navigation guards).
* Allows passing the name of the route to be passed as a generic.
*/
- export type RouteLocationNormalized<
- Name extends keyof RouteNamedMap = keyof RouteNamedMap
- > = RouteLocationNormalizedTypedList[Name];
+ export type RouteLocationNormalized = RouteLocationNormalizedTypedList[Name]
/**
* Type safe version of `RouteLocationNormalizedLoaded` (the return type of `useRoute()`).
* Allows passing the name of the route to be passed as a generic.
*/
- export type RouteLocationNormalizedLoaded<
- Name extends keyof RouteNamedMap = keyof RouteNamedMap
- > = RouteLocationNormalizedLoadedTypedList[Name];
+ export type RouteLocationNormalizedLoaded = RouteLocationNormalizedLoadedTypedList[Name]
/**
* Type safe version of `RouteLocationResolved` (the returned route of `router.resolve()`).
* Allows passing the name of the route to be passed as a generic.
*/
- export type RouteLocationResolved<
- Name extends keyof RouteNamedMap = keyof RouteNamedMap
- > = RouteLocationResolvedTypedList[Name];
+ export type RouteLocationResolved = RouteLocationResolvedTypedList[Name]
/**
* Type safe version of `RouteLocation` . Allows passing the name of the route to be passed as a generic.
*/
- export type RouteLocation<
- Name extends keyof RouteNamedMap = keyof RouteNamedMap
- > = RouteLocationTypedList[Name];
+ export type RouteLocation = RouteLocationTypedList[Name]
/**
* Type safe version of `RouteLocationRaw` . Allows passing the name of the route to be passed as a generic.
*/
- export type RouteLocationRaw<
- Name extends keyof RouteNamedMap = keyof RouteNamedMap
- > =
+ export type RouteLocationRaw =
| RouteLocationAsString
| RouteLocationAsRelativeTypedList[Name]
- | RouteLocationAsPathTypedList[Name];
+ | RouteLocationAsPathTypedList[Name]
/**
* Generate a type safe params for a route location. Requires the name of the route to be passed as a generic.
*/
- export type RouteParams =
- RouteNamedMap[Name]['params'];
+ export type RouteParams = RouteNamedMap[Name]['params']
/**
* Generate a type safe raw params for a route location. Requires the name of the route to be passed as a generic.
*/
- export type RouteParamsRaw =
- RouteNamedMap[Name]['paramsRaw'];
+ export type RouteParamsRaw = RouteNamedMap[Name]['paramsRaw']
- export function useRouter(): RouterTyped;
- export function useRoute<
- Name extends keyof RouteNamedMap = keyof RouteNamedMap
- >(name?: Name): RouteLocationNormalizedLoadedTypedList[Name];
+ export function useRouter(): RouterTyped
+ export function useRoute(name?: Name): RouteLocationNormalizedLoadedTypedList[Name]
- export const useLink: UseLinkFnTyped;
+ export const useLink: UseLinkFnTyped
- export function onBeforeRouteLeave(
- guard: NavigationGuard
- ): void;
- export function onBeforeRouteUpdate(
- guard: NavigationGuard
- ): void;
+ export function onBeforeRouteLeave(guard: NavigationGuard): void
+ export function onBeforeRouteUpdate(guard: NavigationGuard): void
- export const RouterLink: RouterLinkTyped;
- export const RouterLinkProps: RouterLinkPropsTyped;
+ export const RouterLink: RouterLinkTyped
+ export const RouterLinkProps: RouterLinkPropsTyped
// Experimental Data Fetching
export function defineLoader<
P extends Promise,
Name extends keyof RouteNamedMap = keyof RouteNamedMap,
- isLazy extends boolean = false
+ isLazy extends boolean = false,
>(
name: Name,
loader: (route: RouteLocationNormalizedLoaded) => P,
- options?: _DefineLoaderOptions
- ): _DataLoader, isLazy>;
+ options?: _DefineLoaderOptions,
+ ): _DataLoader, isLazy>
export function defineLoader<
P extends Promise,
- isLazy extends boolean = false
+ isLazy extends boolean = false,
>(
loader: (route: RouteLocationNormalizedLoaded) => P,
- options?: _DefineLoaderOptions
- ): _DataLoader, isLazy>;
+ options?: _DefineLoaderOptions,
+ ): _DataLoader, isLazy>
export {
_definePage as definePage,
_HasDataLoaderMeta as HasDataLoaderMeta,
_setupDataFetchingGuard as setupDataFetchingGuard,
_stopDataFetchingScope as stopDataFetchingScope,
- } from 'unplugin-vue-router/runtime';
+ } from 'unplugin-vue-router/runtime'
}
declare module 'vue-router' {
- import type { RouteNamedMap } from 'vue-router/auto/routes';
+ import type { RouteNamedMap } from 'vue-router/auto/routes'
export interface TypesConfig {
- beforeRouteUpdate: NavigationGuard;
- beforeRouteLeave: NavigationGuard;
+ beforeRouteUpdate: NavigationGuard
+ beforeRouteLeave: NavigationGuard
- $route: RouteLocationNormalizedLoadedTypedList[keyof RouteNamedMap];
- $router: _RouterTyped;
+ $route: RouteLocationNormalizedLoadedTypedList[keyof RouteNamedMap]
+ $router: _RouterTyped
- RouterLink: RouterLinkTyped;
+ RouterLink: RouterLinkTyped
}
}
diff --git a/src/router/index.ts b/src/router/index.ts
index 12d3df8e..bef10c3b 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -4,4 +4,11 @@ const router = createRouter({
history: createWebHashHistory(),
});
+router.beforeEach((to) => {
+ const { isLogin } = useAuth();
+ if (!isLogin.value && to.path !== '/login') {
+ return { name: 'Login' };
+ }
+});
+
export { router };
diff --git a/types/auth.ts b/types/auth.ts
index 643b3767..9345054e 100644
--- a/types/auth.ts
+++ b/types/auth.ts
@@ -11,3 +11,8 @@ export interface Logout {
export interface Update {
message: 'update success';
}
+
+export interface User {
+ username: string;
+ password: string;
+}
diff --git a/unocss.config.ts b/unocss.config.ts
index 15347acb..609a9e77 100644
--- a/unocss.config.ts
+++ b/unocss.config.ts
@@ -18,6 +18,7 @@ export default defineConfig({
primary: '#493475',
running: '#A3D491',
stopped: '#DF7F91',
+ page: '#F0F0F0',
},
},
rules: [
@@ -52,7 +53,7 @@ export default defineConfig({
[
'layout-container',
- 'wh-screen min-w-1024px min-h-768px p-16px space-y-12px flex flex-col bg-[#F0F0F0]',
+ 'wh-screen min-w-1024px min-h-768px p-16px space-y-12px flex flex-col bg-page',
],
[
'layout-main',