diff --git a/components.d.ts b/components.d.ts
index bf4cac3..4cc9083 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -9,6 +9,7 @@ declare module '@vue/runtime-core' {
export interface GlobalComponents {
ElAlert: typeof import('element-plus/es')['ElAlert']
ElButton: typeof import('element-plus/es')['ElButton']
+ ElCol: typeof import('element-plus/es')['ElCol']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElContainer: typeof import('element-plus/es')['ElContainer']
ElDialog: typeof import('element-plus/es')['ElDialog']
@@ -25,10 +26,13 @@ declare module '@vue/runtime-core' {
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
ElOption: typeof import('element-plus/es')['ElOption']
ElPagination: typeof import('element-plus/es')['ElPagination']
+ ElRow: typeof import('element-plus/es')['ElRow']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSpace: typeof import('element-plus/es')['ElSpace']
ElTable: typeof import('element-plus/es')['ElTable']
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
+ ElTabPane: typeof import('element-plus/es')['ElTabPane']
+ ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag']
IEpSelect: typeof import('~icons/ep/select')['default']
IEpSemiSelect: typeof import('~icons/ep/semi-select')['default']
diff --git a/package-lock.json b/package-lock.json
index 95ccda0..d557eb5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,6 +11,7 @@
"@element-plus/icons-vue": "^2.0.10",
"axios": "^1.2.2",
"element-plus": "^2.2.28",
+ "monaco-editor": "^0.34.1",
"pinia": "^2.0.28",
"vue": "^3.2.45",
"vue-router": "^4.1.6"
@@ -1427,6 +1428,11 @@
"ufo": "^1.0.0"
}
},
+ "node_modules/monaco-editor": {
+ "version": "0.34.1",
+ "resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.34.1.tgz",
+ "integrity": "sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ=="
+ },
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
@@ -3112,6 +3118,11 @@
"ufo": "^1.0.0"
}
},
+ "monaco-editor": {
+ "version": "0.34.1",
+ "resolved": "https://registry.npmmirror.com/monaco-editor/-/monaco-editor-0.34.1.tgz",
+ "integrity": "sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ=="
+ },
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz",
diff --git a/package.json b/package.json
index 6b7c53e..f0acd29 100644
--- a/package.json
+++ b/package.json
@@ -13,6 +13,7 @@
"@element-plus/icons-vue": "^2.0.10",
"axios": "^1.2.2",
"element-plus": "^2.2.28",
+ "monaco-editor": "^0.34.1",
"pinia": "^2.0.28",
"vue": "^3.2.45",
"vue-router": "^4.1.6"
diff --git a/src/oj/api.ts b/src/oj/api.ts
index d84cc9a..636f483 100644
--- a/src/oj/api.ts
+++ b/src/oj/api.ts
@@ -58,7 +58,7 @@ export function getRandomProblemID() {
return http.get("pickone")
}
-export function getProblem(id: number) {
+export function getProblem(id: string) {
return http.get("problem", {
params: { problem_id: id },
})
diff --git a/src/oj/components/editor.vue b/src/oj/components/editor.vue
new file mode 100644
index 0000000..8c5c0cc
--- /dev/null
+++ b/src/oj/components/editor.vue
@@ -0,0 +1,78 @@
+
+
+ C
+ Python
+
+
+
+
+
diff --git a/src/oj/problem/detail.vue b/src/oj/problem/detail.vue
index 120821e..363b582 100644
--- a/src/oj/problem/detail.vue
+++ b/src/oj/problem/detail.vue
@@ -1,5 +1,34 @@
-
+
+
+
+
+
+
+ 1
+ 2
+
+
+
+
+
+
+