From 01760b8eaa06af780f448072c5510da7797139c8 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Tue, 17 Jan 2023 10:42:50 +0800 Subject: [PATCH] naive-ui. --- README.md | 19 +- index.html | 2 +- package-lock.json | 4454 +++++++++++++++++++++ package.json | 1 + pnpm-lock.yaml | 1640 -------- src/App.vue | 9 +- src/auto-imports.d.ts | 4 + src/components.d.ts | 22 + src/main.ts | 1 - src/oj/components/SubmissionResultTag.vue | 4 +- src/oj/problem/components/SubmitPanel.vue | 2 +- src/oj/status/list.vue | 194 +- src/shared/Header/index.vue | 116 +- src/shared/Login/index.vue | 90 +- src/shared/Pagination/index.vue | 14 +- src/shared/Signup/index.vue | 76 +- src/shared/Split/Pane.vue | 46 - src/shared/Split/Resizer.vue | 47 - src/shared/Split/index.vue | 141 - src/shared/composables/dark.ts | 2 +- src/shared/layout/admin.vue | 8 +- src/shared/layout/default.vue | 18 +- src/shared/split/index.vue | 141 - src/shims.d.ts | 2 - src/utils/constants.ts | 35 +- src/utils/functions.ts | 6 +- src/utils/types.ts | 8 +- tsconfig.json | 3 +- vite.config.ts | 22 +- 29 files changed, 4864 insertions(+), 2263 deletions(-) create mode 100644 package-lock.json delete mode 100644 pnpm-lock.yaml delete mode 100644 src/shared/Split/Pane.vue delete mode 100644 src/shared/Split/Resizer.vue delete mode 100644 src/shared/Split/index.vue delete mode 100644 src/shared/split/index.vue diff --git a/README.md b/README.md index ef72fd5..f0e7dd1 100644 --- a/README.md +++ b/README.md @@ -1,18 +1 @@ -# Vue 3 + TypeScript + Vite - -This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` diff --git a/src/auto-imports.d.ts b/src/auto-imports.d.ts index 815ca7e..a334d10 100644 --- a/src/auto-imports.d.ts +++ b/src/auto-imports.d.ts @@ -149,6 +149,7 @@ declare global { const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation'] const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio'] const useDevicesList: typeof import('@vueuse/core')['useDevicesList'] + const useDialog: typeof import('naive-ui')['useDialog'] const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia'] const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility'] const useDraggable: typeof import('@vueuse/core')['useDraggable'] @@ -181,6 +182,7 @@ declare global { const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier'] const useLastChanged: typeof import('@vueuse/core')['useLastChanged'] const useLink: typeof import('vue-router')['useLink'] + const useLoadingBar: typeof import('naive-ui')['useLoadingBar'] const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage'] const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys'] const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory'] @@ -188,6 +190,7 @@ declare global { const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery'] const useMemoize: typeof import('@vueuse/core')['useMemoize'] const useMemory: typeof import('@vueuse/core')['useMemory'] + const useMessage: typeof import('naive-ui')['useMessage'] const useMounted: typeof import('@vueuse/core')['useMounted'] const useMouse: typeof import('@vueuse/core')['useMouse'] const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement'] @@ -195,6 +198,7 @@ declare global { const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver'] const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage'] const useNetwork: typeof import('@vueuse/core')['useNetwork'] + const useNotification: typeof import('naive-ui')['useNotification'] const useNow: typeof import('@vueuse/core')['useNow'] const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl'] const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination'] diff --git a/src/components.d.ts b/src/components.d.ts index 327b05e..c74b36f 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -45,6 +45,28 @@ declare module '@vue/runtime-core' { IEpLoading: typeof import('~icons/ep/loading')['default'] IEpSelect: typeof import('~icons/ep/select')['default'] IEpSemiSelect: typeof import('~icons/ep/semi-select')['default'] + NAlert: typeof import('naive-ui')['NAlert'] + NButton: typeof import('naive-ui')['NButton'] + NCard: typeof import('naive-ui')['NCard'] + NConfigProvider: typeof import('naive-ui')['NConfigProvider'] + NDataTable: typeof import('naive-ui')['NDataTable'] + NDropdown: typeof import('naive-ui')['NDropdown'] + NDropdownItem: typeof import('naive-ui')['NDropdownItem'] + NDropdownMenu: typeof import('naive-ui')['NDropdownMenu'] + NForm: typeof import('naive-ui')['NForm'] + NFormItem: typeof import('naive-ui')['NFormItem'] + NIcon: typeof import('naive-ui')['NIcon'] + NInput: typeof import('naive-ui')['NInput'] + NLayout: typeof import('naive-ui')['NLayout'] + NLayoutContent: typeof import('naive-ui')['NLayoutContent'] + NLayoutHeader: typeof import('naive-ui')['NLayoutHeader'] + NMenu: typeof import('naive-ui')['NMenu'] + NModal: typeof import('naive-ui')['NModal'] + NPagination: typeof import('naive-ui')['NPagination'] + NSelect: typeof import('naive-ui')['NSelect'] + NSpace: typeof import('naive-ui')['NSpace'] + NSwitch: typeof import('naive-ui')['NSwitch'] + NTag: typeof import('naive-ui')['NTag'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] } diff --git a/src/main.ts b/src/main.ts index 9127565..b8697c0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,7 +1,6 @@ import { createRouter, createWebHistory } from "vue-router" import { createPinia } from "pinia" import "normalize.css" -import "element-plus/theme-chalk/dark/css-vars.css" import loader from "@monaco-editor/loader" import storage from "utils/storage" diff --git a/src/oj/components/SubmissionResultTag.vue b/src/oj/components/SubmissionResultTag.vue index 89644b8..8eb7395 100644 --- a/src/oj/components/SubmissionResultTag.vue +++ b/src/oj/components/SubmissionResultTag.vue @@ -9,9 +9,9 @@ defineProps() diff --git a/src/oj/problem/components/SubmitPanel.vue b/src/oj/problem/components/SubmitPanel.vue index 7b3518f..48d4e9f 100644 --- a/src/oj/problem/components/SubmitPanel.vue +++ b/src/oj/problem/components/SubmitPanel.vue @@ -184,7 +184,7 @@ defineExpose({ submit }) diff --git a/src/oj/status/list.vue b/src/oj/status/list.vue index ec6dff2..1421e58 100644 --- a/src/oj/status/list.vue +++ b/src/oj/status/list.vue @@ -1,38 +1,65 @@ - + diff --git a/src/shared/Header/index.vue b/src/shared/Header/index.vue index f361280..b89aa3a 100644 --- a/src/shared/Header/index.vue +++ b/src/shared/Header/index.vue @@ -4,7 +4,12 @@ import { logout } from "../api" import { useUserStore } from "../store/user" import { isDark, toggleDark } from "~/shared/composables/dark" import { toggleLogin, toggleSignup } from "~/shared/composables/modal" -import { isDesktop } from "../composables/breakpoints" +import type { + MenuOption, + DropdownOption, + DropdownDividerOption, +} from "naive-ui" +import { RouterLink } from "vue-router" const userStore = useUserStore() const router = useRouter() @@ -15,8 +20,8 @@ async function handleLogout() { router.replace("/") } -function handleDropdown(command: string) { - switch (command) { +function handleDropdown(key: string) { + switch (key) { case "logout": handleLogout() break @@ -24,57 +29,66 @@ function handleDropdown(command: string) { } onMounted(userStore.getMyProfile) + +const menus: MenuOption[] = [ + { + label: () => + h(RouterLink, { to: "/learn#step-1" }, { default: () => "自学" }), + key: "learn", + }, + { + label: () => h(RouterLink, { to: "/" }, { default: () => "题库" }), + key: "problem", + }, + { + label: () => h(RouterLink, { to: "/contest" }, { default: () => "比赛" }), + key: "contest", + }, + { + label: () => h(RouterLink, { to: "/status" }, { default: () => "提交" }), + key: "status", + }, + { + label: () => h(RouterLink, { to: "/rank" }, { default: () => "排名" }), + key: "rank", + }, +] + +const options = computed>(() => [ + { label: "我的主页", key: "home" }, + { label: "我的提交", key: "status" }, + { label: "我的设置", key: "setting" }, + { label: "后台管理", key: "admin", show: userStore.isAdminRole }, + { type: "divider" }, + { label: "退出", key: "logout" }, +])