-

-
-
- {{ title }}
-
-
+
+
+

+
-
+
diff --git a/src/pages/my/index.vue b/src/pages/my/index.vue
new file mode 100644
index 0000000..660bd01
--- /dev/null
+++ b/src/pages/my/index.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/router/index.ts b/src/router/index.ts
new file mode 100644
index 0000000..e41bd07
--- /dev/null
+++ b/src/router/index.ts
@@ -0,0 +1,11 @@
+import { createRouter } from "uni-mini-router";
+// 导入pages.json
+import pagesJson from "../pages.json";
+// 引入uni-parse-pages
+import pagesJsonToRoutes from "uni-parse-pages";
+// 生成路由表
+const routes = pagesJsonToRoutes(pagesJson);
+const router = createRouter({
+ routes: [...routes], // 路由表信息
+});
+export default router;
diff --git a/src/static/logo.png b/src/static/logo.png
index b5771e2..f0431f5 100644
Binary files a/src/static/logo.png and b/src/static/logo.png differ
diff --git a/src/stores/persist.ts b/src/stores/persist.ts
new file mode 100644
index 0000000..f89fa73
--- /dev/null
+++ b/src/stores/persist.ts
@@ -0,0 +1,17 @@
+import type { PiniaPluginContext } from "pinia";
+import { deepClone } from "wot-design-uni/components/common/util";
+
+export function persist({ store }: PiniaPluginContext) {
+ // 暂存State
+ let persistState = deepClone(store.$state);
+ // 从缓存中读取
+ const storageState = uni.getStorageSync(store.$id);
+ if (storageState) {
+ persistState = storageState;
+ }
+ store.$state = persistState;
+ store.$subscribe(() => {
+ // 在存储变化的时候将store缓存
+ uni.setStorageSync(store.$id, deepClone(store.$state));
+ });
+}
diff --git a/src/stores/useTabbar.ts b/src/stores/useTabbar.ts
new file mode 100644
index 0000000..343b61e
--- /dev/null
+++ b/src/stores/useTabbar.ts
@@ -0,0 +1,10 @@
+import { defineStore } from "pinia";
+import { ref } from "vue";
+
+export const useTabbar = defineStore('tabbar', () => {
+ const activeTab = ref('home')
+
+ return {
+ activeTab
+ }
+})
\ No newline at end of file
diff --git a/src/stores/useUser.ts b/src/stores/useUser.ts
new file mode 100644
index 0000000..a4ff2fa
--- /dev/null
+++ b/src/stores/useUser.ts
@@ -0,0 +1,19 @@
+import type { User } from "@/types/api/user";
+import { defineStore } from "pinia";
+import { ref } from "vue";
+
+export const useUser = defineStore("user", () => {
+ const token = ref
(null);
+ const userinfo = ref(null);
+
+ function logout() {
+ token.value = null
+ userinfo.value = null
+ }
+
+ return {
+ token,
+ userinfo,
+ logout,
+ };
+});
diff --git a/src/stores/user.ts b/src/stores/user.ts
deleted file mode 100644
index befb156..0000000
--- a/src/stores/user.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { defineStore } from "pinia";
-import { ref } from "vue";
-
-export const useUserStore = defineStore("user", () => {
- const count = ref(0);
-
- return {
- count,
- };
-});
diff --git a/src/type.d.ts b/src/type.d.ts
new file mode 100644
index 0000000..f455123
--- /dev/null
+++ b/src/type.d.ts
@@ -0,0 +1,2 @@
+//type.d.ts
+declare const ROUTES: [];
diff --git a/src/types/api/user.ts b/src/types/api/user.ts
new file mode 100644
index 0000000..84c7a1b
--- /dev/null
+++ b/src/types/api/user.ts
@@ -0,0 +1,43 @@
+export interface User {
+ id: number;
+ username: string;
+ email: string;
+ avatar: string;
+ department_id: null;
+ creator_id: number;
+ status: number;
+ login_ip: string;
+ login_at: number;
+ created_at: string;
+ updated_at: string;
+ deleted_at: Date;
+ permissions: Permission[];
+ roles: any[];
+ jobs: any[];
+}
+
+export interface Permission {
+ id: number;
+ parent_id: number;
+ permission_name: string;
+ route: string;
+ icon: string;
+ module: PermissionModule;
+ permission_mark: string;
+ component: string;
+ redirect: null | string;
+ keepalive: number;
+ type: number;
+ hidden: boolean;
+ sort: number;
+ active_menu: string;
+ creator_id: number;
+ created_at: string;
+ updated_at: string;
+}
+
+export enum PermissionModule {
+ Lesson = "lesson",
+ Permissions = "permissions",
+ User = "user",
+}
diff --git a/tsconfig.json b/tsconfig.json
index 11fffd2..e387e68 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -7,7 +7,7 @@
"@/*": ["./src/*"]
},
"lib": ["esnext", "dom"],
- "types": ["@dcloudio/types"]
+ "types": ["@dcloudio/types", "wot-design-uni/global"]
},
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}
diff --git a/vite.config.ts b/vite.config.ts
index 3d88bcb..a397941 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,12 +1,18 @@
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";
+import Components from "@uni-helper/vite-plugin-uni-components";
+import { WotResolver } from "@uni-helper/vite-plugin-uni-components/resolvers";
+
// https://vitejs.dev/config/
export default defineConfig(async () => {
const UnoCSS = await import("unocss/vite").then((i) => i.default);
return {
plugins: [
+ Components({
+ resolvers: [WotResolver()],
+ }),
uni(),
// https://github.com/unocss/unocss
UnoCSS(),