From f557135075344057abac55f86a865885a8898056 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Tue, 24 Jan 2023 20:51:07 +0800 Subject: [PATCH] add charts. --- package-lock.json | 46 +++++++++++ package.json | 2 + src/learn/index.vue | 83 ++++++++++++++++---- src/learn/step-1/index.md | 96 +++++++++++++++++++++++ src/learn/step-1/{1.c => main.c} | 0 src/learn/step-2/index.md | 1 + src/learn/step-2/main.c | 1 + src/learn/step-3/index.md | 0 src/learn/step-3/main.c | 0 src/main.ts | 28 ++++++- src/oj/problem/components/ProblemInfo.vue | 38 ++++++++- src/oj/rank/components/Chart.vue | 88 +++++++++++++++++++++ src/oj/rank/list.vue | 9 ++- src/routes.ts | 9 ++- src/shared/Header.vue | 2 +- src/utils/types.ts | 2 +- 16 files changed, 381 insertions(+), 24 deletions(-) rename src/learn/step-1/{1.c => main.c} (100%) create mode 100644 src/learn/step-2/index.md create mode 100644 src/learn/step-2/main.c create mode 100644 src/learn/step-3/index.md create mode 100644 src/learn/step-3/main.c create mode 100644 src/oj/rank/components/Chart.vue diff --git a/package-lock.json b/package-lock.json index ced8913..cb713b6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@monaco-editor/loader": "^1.3.2", "@vueuse/core": "^9.11.1", "axios": "1.2.3", + "chart.js": "^4.2.0", "copy-text-to-clipboard": "^3.0.1", "date-fns": "^2.29.3", "highlight.js": "^11.7.0", @@ -19,6 +20,7 @@ "party-js": "^2.2.0", "pinia": "^2.0.29", "vue": "^3.2.45", + "vue-chartjs": "^5.2.0", "vue-router": "^4.1.6" }, "devDependencies": { @@ -485,6 +487,11 @@ "resolved": "https://registry.npmmirror.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" }, + "node_modules/@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + }, "node_modules/@mdit-vue/plugin-component": { "version": "0.11.2", "resolved": "https://registry.npmmirror.com/@mdit-vue/plugin-component/-/plugin-component-0.11.2.tgz", @@ -1008,6 +1015,17 @@ "node": ">=8" } }, + "node_modules/chart.js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/chart.js/-/chart.js-4.2.0.tgz", + "integrity": "sha512-wbtcV+QKeH0F7gQZaCJEIpsNriFheacouJQTVIjITi3eQA8bTlIBoknz0+dgV79aeKLNMAX+nDslIVE/nJ3rzA==", + "dependencies": { + "@kurkle/color": "^0.3.0" + }, + "engines": { + "pnpm": "^7.0.0" + } + }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", @@ -2491,6 +2509,15 @@ "@vue/shared": "3.2.45" } }, + "node_modules/vue-chartjs": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/vue-chartjs/-/vue-chartjs-5.2.0.tgz", + "integrity": "sha512-d3zpKmGZr2OWHQ1xmxBcAn5ShTG917+/UCLaSpaCDDqT0U7DBsvFzTs69ZnHCgKoXT55GZDW8YEj9Av+dlONLA==", + "peerDependencies": { + "chart.js": "^4.1.1", + "vue": "^3.0.0-0 || ^2.7.0" + } + }, "node_modules/vue-router": { "version": "4.1.6", "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.6.tgz", @@ -2824,6 +2851,11 @@ "resolved": "https://registry.npmmirror.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" }, + "@kurkle/color": { + "version": "0.3.2", + "resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.2.tgz", + "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" + }, "@mdit-vue/plugin-component": { "version": "0.11.2", "resolved": "https://registry.npmmirror.com/@mdit-vue/plugin-component/-/plugin-component-0.11.2.tgz", @@ -3275,6 +3307,14 @@ "fill-range": "^7.0.1" } }, + "chart.js": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/chart.js/-/chart.js-4.2.0.tgz", + "integrity": "sha512-wbtcV+QKeH0F7gQZaCJEIpsNriFheacouJQTVIjITi3eQA8bTlIBoknz0+dgV79aeKLNMAX+nDslIVE/nJ3rzA==", + "requires": { + "@kurkle/color": "^0.3.0" + } + }, "chokidar": { "version": "3.5.3", "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", @@ -4375,6 +4415,12 @@ "@vue/shared": "3.2.45" } }, + "vue-chartjs": { + "version": "5.2.0", + "resolved": "https://registry.npmmirror.com/vue-chartjs/-/vue-chartjs-5.2.0.tgz", + "integrity": "sha512-d3zpKmGZr2OWHQ1xmxBcAn5ShTG917+/UCLaSpaCDDqT0U7DBsvFzTs69ZnHCgKoXT55GZDW8YEj9Av+dlONLA==", + "requires": {} + }, "vue-router": { "version": "4.1.6", "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.1.6.tgz", diff --git a/package.json b/package.json index d772915..a49332b 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "@monaco-editor/loader": "^1.3.2", "@vueuse/core": "^9.11.1", "axios": "1.2.3", + "chart.js": "^4.2.0", "copy-text-to-clipboard": "^3.0.1", "date-fns": "^2.29.3", "highlight.js": "^11.7.0", @@ -21,6 +22,7 @@ "party-js": "^2.2.0", "pinia": "^2.0.29", "vue": "^3.2.45", + "vue-chartjs": "^5.2.0", "vue-router": "^4.1.6" }, "devDependencies": { diff --git a/src/learn/index.vue b/src/learn/index.vue index ea9c58d..eccbfe3 100644 --- a/src/learn/index.vue +++ b/src/learn/index.vue @@ -1,32 +1,72 @@ diff --git a/src/learn/step-1/index.md b/src/learn/step-1/index.md index f8f1878..bb5f29f 100644 --- a/src/learn/step-1/index.md +++ b/src/learn/step-1/index.md @@ -13,3 +13,99 @@ int main() { ``` 123 + +# 11 + +## 1 + +哈哈 + +```c {3-4} +#include + +int main() { + return 0; +} +``` + +123 + +# 11 + +## 1 + +哈哈 + +```c {3-4} +#include + +int main() { + return 0; +} +``` + +123 + +# 11 + +## 1 + +哈哈 + +```c {3-4} +#include + +int main() { + return 0; +} +``` + +123 + +# 11 + +## 1 + +哈哈 + +```c {3-4} +#include + +int main() { + return 0; +} +``` + +123 + +# 11 + +## 1 + +哈哈 + +```c {3-4} +#include + +int main() { + return 0; +} +``` + +123 + +# 11 + +## 1 + +哈哈 + +```c {3-4} +#include + +int main() { + return 0; +} +``` + +123 diff --git a/src/learn/step-1/1.c b/src/learn/step-1/main.c similarity index 100% rename from src/learn/step-1/1.c rename to src/learn/step-1/main.c diff --git a/src/learn/step-2/index.md b/src/learn/step-2/index.md new file mode 100644 index 0000000..e11ff4f --- /dev/null +++ b/src/learn/step-2/index.md @@ -0,0 +1 @@ +asas diff --git a/src/learn/step-2/main.c b/src/learn/step-2/main.c new file mode 100644 index 0000000..b3a6166 --- /dev/null +++ b/src/learn/step-2/main.c @@ -0,0 +1 @@ +1212121212 \ No newline at end of file diff --git a/src/learn/step-3/index.md b/src/learn/step-3/index.md new file mode 100644 index 0000000..e69de29 diff --git a/src/learn/step-3/main.c b/src/learn/step-3/main.c new file mode 100644 index 0000000..e69de29 diff --git a/src/main.ts b/src/main.ts index eb5e525..f814db1 100644 --- a/src/main.ts +++ b/src/main.ts @@ -8,7 +8,19 @@ import { routes } from "./routes" import App from "./App.vue" import { toggleLogin } from "./shared/composables/modal" -import { init } from "./shared/composables/monaco" +import { init as monacoInit } from "./shared/composables/monaco" + +import { + Chart as ChartJS, + Title, + Colors, + Tooltip, + Legend, + BarElement, + ArcElement, + CategoryScale, + LinearScale, +} from "chart.js" const router = createRouter({ history: createWebHistory(), @@ -26,7 +38,19 @@ router.beforeEach((to, from, next) => { next() } }) -init() + +monacoInit() + +ChartJS.register( + CategoryScale, + LinearScale, + BarElement, + ArcElement, + Colors, + Title, + Tooltip, + Legend +) const pinia = createPinia() const app = createApp(App) app.use(router) diff --git a/src/oj/problem/components/ProblemInfo.vue b/src/oj/problem/components/ProblemInfo.vue index 8bc9144..fddf8ee 100644 --- a/src/oj/problem/components/ProblemInfo.vue +++ b/src/oj/problem/components/ProblemInfo.vue @@ -1,5 +1,6 @@ + diff --git a/src/oj/rank/components/Chart.vue b/src/oj/rank/components/Chart.vue new file mode 100644 index 0000000..879b4d7 --- /dev/null +++ b/src/oj/rank/components/Chart.vue @@ -0,0 +1,88 @@ + + + diff --git a/src/oj/rank/list.vue b/src/oj/rank/list.vue index 4d18e77..62c89e4 100644 --- a/src/oj/rank/list.vue +++ b/src/oj/rank/list.vue @@ -1,5 +1,6 @@