diff --git a/package-lock.json b/package-lock.json index 1e83d80..de28eaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,6 +29,7 @@ "vue-router": "^4.3.3" }, "devDependencies": { + "@iconify/vue": "^4.1.2", "@types/node": "^20.14.2", "@vitejs/plugin-legacy": "^5.4.1", "@vitejs/plugin-vue": "^5.0.5", @@ -2288,6 +2289,27 @@ "node": ">=12" } }, + "node_modules/@iconify/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz", + "integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==", + "dev": true + }, + "node_modules/@iconify/vue": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@iconify/vue/-/vue-4.1.2.tgz", + "integrity": "sha512-CQnYqLiQD5LOAaXhBrmj1mdL2/NCJvwcC4jtW2Z8ukhThiFkLDkutarTOV2trfc9EXqUqRs0KqXOL9pZ/IyysA==", + "dev": true, + "dependencies": { + "@iconify/types": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/cyberalien" + }, + "peerDependencies": { + "vue": ">=3" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", diff --git a/package.json b/package.json index 259b4ef..0161429 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "vue-router": "^4.3.3" }, "devDependencies": { + "@iconify/vue": "^4.1.2", "@types/node": "^20.14.2", "@vitejs/plugin-legacy": "^5.4.1", "@vitejs/plugin-vue": "^5.0.5", diff --git a/src/oj/announcement/list.vue b/src/oj/announcement/list.vue index 2202da1..8a42645 100644 --- a/src/oj/announcement/list.vue +++ b/src/oj/announcement/list.vue @@ -6,6 +6,7 @@ import { Announcement } from "~/utils/types" import { isDesktop } from "~/shared/composables/breakpoints" import { NTag } from "naive-ui" import TitleWithTag from "./components/TitleWithTag.vue" +import { Icon } from "@iconify/vue" const total = ref(0) const content = ref("") @@ -25,7 +26,7 @@ const columns: DataTableColumn[] = [ { key: "tag", title: "标签", - render: (row) => h(NTag, row.tag || "公告"), + render: (row) => h(NTag, () => row.tag || "公告"), }, { key: "create_time", diff --git a/src/oj/contest/components/ContestInfo.vue b/src/oj/contest/components/ContestInfo.vue index 0cc185f..a91e48b 100644 --- a/src/oj/contest/components/ContestInfo.vue +++ b/src/oj/contest/components/ContestInfo.vue @@ -2,7 +2,7 @@ import { parseTime } from "utils/functions" import { useContestStore } from "oj/store/contest" import ContestType from "~/shared/components/ContestType.vue" -import Info from "~/shared/icons/Info.vue" +import { Icon } from "@iconify/vue" const contestStore = useContestStore() @@ -16,7 +16,7 @@ const contestStore = useContestStore() - - + diff --git a/src/oj/problem/components/ProblemStatus.vue b/src/oj/problem/components/ProblemStatus.vue index 70f7be4..4e173ba 100644 --- a/src/oj/problem/components/ProblemStatus.vue +++ b/src/oj/problem/components/ProblemStatus.vue @@ -1,7 +1,6 @@ diff --git a/src/oj/problem/components/Submit.vue b/src/oj/problem/components/Submit.vue index ff70620..cfd27f3 100644 --- a/src/oj/problem/components/Submit.vue +++ b/src/oj/problem/components/Submit.vue @@ -8,11 +8,9 @@ import { Submission, SubmitCodePayload } from "utils/types" import { getSubmission, submitCode } from "oj/api" import SubmissionResultTag from "~/shared/components/SubmissionResultTag.vue" import { useUserStore } from "~/shared/store/user" -import Loading from "~/shared/icons/Loading.vue" -import Bulb from "~/shared/icons/Bulb.vue" -import Play from "~/shared/icons/Play.vue" // @ts-ignore import confetti from "canvas-confetti" +import { Icon } from "@iconify/vue" const userStore = useUserStore() const route = useRoute() @@ -218,9 +216,12 @@ watch( > {{ submitLabel }} diff --git a/src/oj/problem/list.vue b/src/oj/problem/list.vue index 3b77614..7710b55 100644 --- a/src/oj/problem/list.vue +++ b/src/oj/problem/list.vue @@ -8,8 +8,7 @@ import { useUserStore } from "~/shared/store/user" import { getProblemTagList } from "~/shared/api" import Pagination from "~/shared/components/Pagination.vue" import { isDesktop } from "~/shared/composables/breakpoints" -import ArrowUp from "~/shared/icons/ArrowUp.vue" -import ArrowDown from "~/shared/icons/ArrowDown.vue" +import { Icon } from "@iconify/vue" interface Tag { id: number @@ -222,10 +221,8 @@ function rowProps(row: ProblemFiltered) { 标签 diff --git a/src/oj/rank/components/Index.vue b/src/oj/rank/components/Index.vue index 62db629..29c06e6 100644 --- a/src/oj/rank/components/Index.vue +++ b/src/oj/rank/components/Index.vue @@ -1,7 +1,5 @@ @@ -8,9 +8,7 @@ defineEmits(["click", "search"]) diff --git a/src/oj/submission/components/SubmissionLink.vue b/src/oj/submission/components/SubmissionLink.vue index 66f1dfa..4e86e77 100644 --- a/src/oj/submission/components/SubmissionLink.vue +++ b/src/oj/submission/components/SubmissionLink.vue @@ -5,9 +5,7 @@ @@ -17,7 +15,7 @@ - + diff --git a/src/shared/components/Copy.vue b/src/shared/components/Copy.vue index 45b0303..96bfbc3 100644 --- a/src/shared/components/Copy.vue +++ b/src/shared/components/Copy.vue @@ -1,12 +1,14 @@