remove shared components.

This commit is contained in:
2023-11-21 23:06:57 +08:00
parent ab985ff65f
commit aa7d46effc
33 changed files with 53 additions and 43 deletions

View File

@@ -44,6 +44,6 @@
"unplugin-vue-components": "^0.25.2", "unplugin-vue-components": "^0.25.2",
"vite": "^4.4.11", "vite": "^4.4.11",
"unplugin-vue-markdown": "^0.24.3", "unplugin-vue-markdown": "^0.24.3",
"vue-tsc": "^1.8.18" "vue-tsc": "^1.8.22"
} }
} }

View File

@@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { formatISO } from "date-fns" import { formatISO } from "date-fns"
import TextEditor from "~/shared/TextEditor.vue" import TextEditor from "~/shared/components/TextEditor.vue"
import { BlankContest } from "~/utils/types" import { BlankContest } from "~/utils/types"
import { createContest, editContest, getContest } from "../api" import { createContest, editContest, getContest } from "../api"

View File

@@ -1,10 +1,10 @@
<script setup lang="ts"> <script setup lang="ts">
import { NSwitch, NTag } from "naive-ui" import { NSwitch, NTag } from "naive-ui"
import Pagination from "~/shared/Pagination.vue" import Pagination from "~/shared/components/Pagination.vue"
import { Contest } from "~/utils/types" import { Contest } from "~/utils/types"
import { getContestList } from "../api" import { getContestList } from "../api"
import ContestType from "~/shared/ContestType.vue" import ContestType from "~/shared/components/ContestType.vue"
import ContestTitle from "~/shared/ContestTitle.vue" import ContestTitle from "~/shared/components/ContestTitle.vue"
import { CONTEST_STATUS } from "~/utils/constants" import { CONTEST_STATUS } from "~/utils/constants"
import Actions from "./components/Actions.vue" import Actions from "./components/Actions.vue"

View File

@@ -1,7 +1,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { getProblemList } from "~/admin/api" import { getProblemList } from "~/admin/api"
import { AdminProblemFiltered } from "~/utils/types" import { AdminProblemFiltered } from "~/utils/types"
import Pagination from "~/shared/Pagination.vue" import Pagination from "~/shared/components/Pagination.vue"
import AddButton from "./AddButton.vue" import AddButton from "./AddButton.vue"
interface Props { interface Props {

View File

@@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import TextEditor from "~/shared/TextEditor.vue" import TextEditor from "~/shared/components/TextEditor.vue"
import { unique } from "~/utils/functions" import { unique } from "~/utils/functions"
import { BlankProblem, LANGUAGE, Tag } from "~/utils/types" import { BlankProblem, LANGUAGE, Tag } from "~/utils/types"
import { getProblemTagList } from "~/shared/api" import { getProblemTagList } from "~/shared/api"
@@ -14,7 +14,7 @@ import {
uploadTestcases, uploadTestcases,
} from "../api" } from "../api"
const CodeEditor = defineAsyncComponent(() => import("~/shared/CodeEditor.vue")) const CodeEditor = defineAsyncComponent(() => import("~/shared/components/CodeEditor.vue"))
interface Props { interface Props {
problemID?: string problemID?: string

View File

@@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { getProblemList, getProblem, editProblem } from "../api" import { getProblemList, getProblem, editProblem } from "../api"
import Pagination from "~/shared/Pagination.vue" import Pagination from "~/shared/components/Pagination.vue"
import { NSwitch } from "naive-ui" import { NSwitch } from "naive-ui"
import { AdminProblemFiltered } from "~/utils/types" import { AdminProblemFiltered } from "~/utils/types"
import { parseTime } from "~/utils/functions" import { parseTime } from "~/utils/functions"

View File

@@ -1,6 +1,6 @@
<script setup lang="ts"> <script setup lang="ts">
import { DataTableRowKey, SelectOption } from "naive-ui" import { DataTableRowKey, SelectOption } from "naive-ui"
import Pagination from "~/shared/Pagination.vue" import Pagination from "~/shared/components/Pagination.vue"
import { parseTime } from "~/utils/functions" import { parseTime } from "~/utils/functions"
import { User } from "~/utils/types" import { User } from "~/utils/types"
import { getUserList, deleteUsers, editUser } from "../api" import { getUserList, deleteUsers, editUser } from "../api"

1
src/components.d.ts vendored
View File

@@ -7,7 +7,6 @@ export {}
declare module 'vue' { declare module 'vue' {
export interface GlobalComponents { export interface GlobalComponents {
IEpArrowD: typeof import('~icons/ep/arrow-d')['default']
IEpArrowDown: typeof import('~icons/ep/arrow-down')['default'] IEpArrowDown: typeof import('~icons/ep/arrow-down')['default']
IEpArrowRightBold: typeof import('~icons/ep/arrow-right-bold')['default'] IEpArrowRightBold: typeof import('~icons/ep/arrow-right-bold')['default']
IEpArrowUp: typeof import('~icons/ep/arrow-up')['default'] IEpArrowUp: typeof import('~icons/ep/arrow-up')['default']

View File

@@ -3,7 +3,7 @@ import { isDesktop } from "~/shared/composables/breakpoints"
import { code } from "~/shared/composables/learn" import { code } from "~/shared/composables/learn"
import { useLearnStore } from "./store" import { useLearnStore } from "./store"
const CodeEditor = defineAsyncComponent(() => import("~/shared/CodeEditor.vue")) const CodeEditor = defineAsyncComponent(() => import("~/shared/components/CodeEditor.vue"))
const route = useRoute() const route = useRoute()
const router = useRouter() const router = useRouter()

View File

@@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { parseTime } from "utils/functions" import { parseTime } from "utils/functions"
import { useContestStore } from "oj/store/contest" import { useContestStore } from "oj/store/contest"
import ContestType from "~/shared/ContestType.vue" import ContestType from "~/shared/components/ContestType.vue"
const contestStore = useContestStore() const contestStore = useContestStore()
</script> </script>

View File

@@ -4,6 +4,7 @@ import { isDesktop } from "~/shared/composables/breakpoints"
import { useContestStore } from "../store/contest" import { useContestStore } from "../store/contest"
import ContestInfo from "./components/ContestInfo.vue" import ContestInfo from "./components/ContestInfo.vue"
import ContestMenu from "./components/ContestMenu.vue" import ContestMenu from "./components/ContestMenu.vue"
import Lock from "~/shared/icons/Lock.vue"
const props = defineProps<{ const props = defineProps<{
contestID: string contestID: string
@@ -34,7 +35,7 @@ const passwordFormVisible = computed(
<n-space align="center"> <n-space align="center">
<h2 class="contestTitle">{{ contestStore.contest.title }}</h2> <h2 class="contestTitle">{{ contestStore.contest.title }}</h2>
<n-icon size="large" v-if="contestStore.isPrivate" class="lockIcon"> <n-icon size="large" v-if="contestStore.isPrivate" class="lockIcon">
<i-ep-lock /> <Lock />
</n-icon> </n-icon>
<n-tag <n-tag
size="small" size="small"

View File

@@ -4,8 +4,8 @@ import { getContestList } from "oj/api"
import { filterEmptyValue, parseTime, duration } from "utils/functions" import { filterEmptyValue, parseTime, duration } from "utils/functions"
import { Contest } from "utils/types" import { Contest } from "utils/types"
import { ContestType, CONTEST_STATUS } from "~/utils/constants" import { ContestType, CONTEST_STATUS } from "~/utils/constants"
import ContestTitle from "~/shared/ContestTitle.vue" import ContestTitle from "~/shared/components/ContestTitle.vue"
import Pagination from "~/shared/Pagination.vue" import Pagination from "~/shared/components/Pagination.vue"
import { useUserStore } from "~/shared/store/user" import { useUserStore } from "~/shared/store/user"
import { toggleLogin } from "~/shared/composables/modal" import { toggleLogin } from "~/shared/composables/modal"

View File

@@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { NButton, NIcon } from "naive-ui" import { NButton, NIcon } from "naive-ui"
import { GoldMedal } from "@element-plus/icons-vue" import { GoldMedal } from "@element-plus/icons-vue"
import Pagination from "~/shared/Pagination.vue" import Pagination from "~/shared/components/Pagination.vue"
import AcAndSubmission from "../components/AcAndSubmission.vue" import AcAndSubmission from "../components/AcAndSubmission.vue"
import { getContestProblems, getContestRank } from "oj/api" import { getContestProblems, getContestRank } from "oj/api"
import { ContestRank, ProblemFiltered } from "~/utils/types" import { ContestRank, ProblemFiltered } from "~/utils/types"

View File

@@ -6,7 +6,7 @@ import { problem } from "oj/composables/problem"
import storage from "~/utils/storage" import storage from "~/utils/storage"
const Form = defineAsyncComponent(() => import("./Form.vue")) const Form = defineAsyncComponent(() => import("./Form.vue"))
const CodeEditor = defineAsyncComponent(() => import("~/shared/CodeEditor.vue")) const CodeEditor = defineAsyncComponent(() => import("~/shared/components/CodeEditor.vue"))
const route = useRoute() const route = useRoute()
const contestID = !!route.params.contestID ? route.params.contestID : null const contestID = !!route.params.contestID ? route.params.contestID : null

View File

@@ -1,5 +1,5 @@
<script setup lang="ts"> <script setup lang="ts">
import Copy from "~/shared/Copy.vue" import Copy from "~/shared/components/Copy.vue"
import { code } from "oj/composables/code" import { code } from "oj/composables/code"
import { problem } from "oj/composables/problem" import { problem } from "oj/composables/problem"
import { Problem, ProblemStatus } from "utils/types" import { Problem, ProblemStatus } from "utils/types"

View File

@@ -5,8 +5,8 @@ import { parseTime } from "~/utils/functions"
import { LANGUAGE_SHOW_VALUE } from "~/utils/constants" import { LANGUAGE_SHOW_VALUE } from "~/utils/constants"
import { getSubmissions } from "~/oj/api" import { getSubmissions } from "~/oj/api"
import { isDesktop } from "~/shared/composables/breakpoints" import { isDesktop } from "~/shared/composables/breakpoints"
import SubmissionResultTag from "~/shared/SubmissionResultTag.vue" import SubmissionResultTag from "~/shared/components/SubmissionResultTag.vue"
import Pagination from "~/shared/Pagination.vue" import Pagination from "~/shared/components/Pagination.vue"
import { NButton } from "naive-ui" import { NButton } from "naive-ui"
const userStore = useUserStore() const userStore = useUserStore()

View File

@@ -7,7 +7,7 @@ import { JUDGE_STATUS, SubmissionStatus } from "utils/constants"
import { submissionMemoryFormat, submissionTimeFormat } from "utils/functions" import { submissionMemoryFormat, submissionTimeFormat } from "utils/functions"
import { Submission, SubmitCodePayload } from "utils/types" import { Submission, SubmitCodePayload } from "utils/types"
import { getSubmission, submitCode } from "oj/api" import { getSubmission, submitCode } from "oj/api"
import SubmissionResultTag from "~/shared/SubmissionResultTag.vue" import SubmissionResultTag from "~/shared/components/SubmissionResultTag.vue"
import { useUserStore } from "~/shared/store/user" import { useUserStore } from "~/shared/store/user"
const userStore = useUserStore() const userStore = useUserStore()

View File

@@ -6,7 +6,7 @@ import { getProblemList, getRandomProblemID } from "oj/api"
import ProblemStatus from "./components/ProblemStatus.vue" import ProblemStatus from "./components/ProblemStatus.vue"
import { useUserStore } from "~/shared/store/user" import { useUserStore } from "~/shared/store/user"
import { getProblemTagList } from "~/shared/api" import { getProblemTagList } from "~/shared/api"
import Pagination from "~/shared/Pagination.vue" import Pagination from "~/shared/components/Pagination.vue"
import { isDesktop } from "~/shared/composables/breakpoints" import { isDesktop } from "~/shared/composables/breakpoints"
interface Tag { interface Tag {

View File

@@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { NButton } from "naive-ui" import { NButton } from "naive-ui"
import Chart from "./components/Chart.vue" import Chart from "./components/Chart.vue"
import Pagination from "~/shared/Pagination.vue" import Pagination from "~/shared/components/Pagination.vue"
import { Rank } from "utils/types" import { Rank } from "utils/types"
import { getRank } from "oj/api" import { getRank } from "oj/api"
import { getACRate } from "utils/functions" import { getACRate } from "utils/functions"

View File

@@ -8,7 +8,7 @@ import {
submissionTimeFormat, submissionTimeFormat,
} from "utils/functions" } from "utils/functions"
import copy from "copy-text-to-clipboard" import copy from "copy-text-to-clipboard"
import SubmissionResultTag from "~/shared/SubmissionResultTag.vue" import SubmissionResultTag from "~/shared/components/SubmissionResultTag.vue"
const props = defineProps<{ const props = defineProps<{
submissionID: string submissionID: string

View File

@@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { NButton } from "naive-ui" import { NButton } from "naive-ui"
import SubmissionResultTag from "~/shared/SubmissionResultTag.vue" import SubmissionResultTag from "~/shared/components/SubmissionResultTag.vue"
import Pagination from "~/shared/Pagination.vue" import Pagination from "~/shared/components/Pagination.vue"
import { import {
submissionMemoryFormat, submissionMemoryFormat,
submissionTimeFormat, submissionTimeFormat,

View File

@@ -3,10 +3,10 @@ import { Codemirror } from "vue-codemirror"
import { cpp } from "@codemirror/lang-cpp" import { cpp } from "@codemirror/lang-cpp"
import { python } from "@codemirror/lang-python" import { python } from "@codemirror/lang-python"
import { EditorView } from "@codemirror/view" import { EditorView } from "@codemirror/view"
import { oneDark } from "./themes/oneDark" import { oneDark } from "../themes/oneDark"
import { smoothy } from "./themes/smoothy" import { smoothy } from "../themes/smoothy"
import { LANGUAGE } from "~/utils/types" import { LANGUAGE } from "~/utils/types"
import { isDark } from "./composables/dark" import { isDark } from "../composables/dark"
const styleTheme = EditorView.baseTheme({ const styleTheme = EditorView.baseTheme({
"& .cm-scroller": { "& .cm-scroller": {

View File

@@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { logout } from "./api" import { logout } from "../api"
import { useUserStore } from "./store/user" import { useUserStore } from "../store/user"
import { useConfigStore } from "./store/config" import { useConfigStore } from "../store/config"
import { isDark, toggleDark } from "~/shared/composables/dark" import { isDark, toggleDark } from "~/shared/composables/dark"
import { toggleLogin, toggleSignup } from "~/shared/composables/modal" import { toggleLogin, toggleSignup } from "~/shared/composables/modal"
import { RouterLink } from "vue-router" import { RouterLink } from "vue-router"

View File

@@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { login } from "./api" import { login } from "../api"
import { loginModal, toggleLogin, toggleSignup } from "./composables/modal" import { loginModal, toggleLogin, toggleSignup } from "../composables/modal"
import { useUserStore } from "./store/user" import { useUserStore } from "../store/user"
const userStore = useUserStore() const userStore = useUserStore()
const loginRef = ref() const loginRef = ref()

View File

@@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import { getCaptcha, signup, login } from "./api" import { getCaptcha, signup, login } from "../api"
import { signupModal, toggleLogin, toggleSignup } from "./composables/modal" import { signupModal, toggleLogin, toggleSignup } from "../composables/modal"
import { useUserStore } from "./store/user" import { useUserStore } from "../store/user"
const userStore = useUserStore() const userStore = useUserStore()
const signupRef = ref() const signupRef = ref()

View File

@@ -2,7 +2,7 @@
import "@wangeditor/editor/dist/css/style.css" import "@wangeditor/editor/dist/css/style.css"
import { IDomEditor, IEditorConfig, IToolbarConfig } from "@wangeditor/editor" import { IDomEditor, IEditorConfig, IToolbarConfig } from "@wangeditor/editor"
import { Editor, Toolbar } from "@wangeditor/editor-for-vue" import { Editor, Toolbar } from "@wangeditor/editor-for-vue"
import { uploadImage } from "../admin/api" import { uploadImage } from "../../admin/api"
interface Props { interface Props {
value: string value: string

10
src/shared/icons/Lock.vue Normal file
View File

@@ -0,0 +1,10 @@
<template>
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M6 22q-.825 0-1.413-.588T4 20V10q0-.825.588-1.413T6 8h1V6q0-2.075 1.463-3.538T12 1q2.075 0 3.538 1.463T17 6v2h1q.825 0 1.413.588T20 10v10q0 .825-.588 1.413T18 22H6Zm0-2h12V10H6v10Zm6-3q.825 0 1.413-.588T14 15q0-.825-.588-1.413T12 13q-.825 0-1.413.588T10 15q0 .825.588 1.413T12 17ZM9 8h6V6q0-1.25-.875-2.125T12 3q-1.25 0-2.125.875T9 6v2ZM6 20V10v10Z"></path></svg>
</template>
<script lang="ts">
export default {
name: 'MaterialSymbolsLockOutline'
}
</script>

View File

@@ -1,7 +1,7 @@
<script setup lang="ts"> <script setup lang="ts">
import Login from "../Login.vue" import Login from "../components/Login.vue"
import Signup from "../Signup.vue" import Signup from "../components/Signup.vue"
import Header from "../Header.vue" import Header from "../components/Header.vue"
</script> </script>
<template> <template>