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 @@ + + + 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 @@ - + + +