remove shared components.
This commit is contained in:
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
1
src/components.d.ts
vendored
@@ -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']
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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": {
|
||||||
@@ -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"
|
||||||
@@ -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()
|
||||||
@@ -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()
|
||||||
@@ -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
10
src/shared/icons/Lock.vue
Normal 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>
|
||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user