fix routes.

This commit is contained in:
2023-06-13 12:02:59 +08:00
parent c27f5c43c7
commit 03f24190fc
13 changed files with 408 additions and 454 deletions

436
package-lock.json generated
View File

@@ -9,7 +9,7 @@
"version": "0.0.1",
"dependencies": {
"@codemirror/lang-cpp": "^6.0.2",
"@codemirror/lang-python": "^6.1.2",
"@codemirror/lang-python": "^6.1.3",
"@element-plus/icons-vue": "^2.1.0",
"@vueuse/core": "^10.1.2",
"@wangeditor/editor": "^5.1.23",
@@ -20,29 +20,29 @@
"copy-text-to-clipboard": "^3.1.0",
"date-fns": "^2.30.0",
"highlight.js": "^11.8.0",
"naive-ui": "^2.34.3",
"naive-ui": "^2.34.4",
"normalize.css": "^8.0.1",
"party-js": "^2.2.0",
"pinia": "^2.0.36",
"vue": "^3.3.2",
"pinia": "^2.1.3",
"vue": "^3.3.4",
"vue-chartjs": "^5.2.0",
"vue-codemirror": "^6.1.1",
"vue-router": "^4.2.0"
"vue-router": "^4.2.2"
},
"devDependencies": {
"@iconify-json/ep": "^1.1.10",
"@types/node": "^20.1.5",
"@vitejs/plugin-legacy": "^4.0.3",
"@types/node": "^20.3.0",
"@vitejs/plugin-legacy": "^4.0.4",
"@vitejs/plugin-vue": "^4.2.3",
"markdown-it-shiki": "^0.9.0",
"prettier": "^2.8.8",
"terser": "^5.17.4",
"typescript": "^5.0.4",
"unplugin-auto-import": "^0.16.0",
"unplugin-icons": "^0.16.1",
"unplugin-vue-components": "^0.24.1",
"vite": "^4.3.6",
"vite-plugin-vue-markdown": "^0.23.4",
"terser": "^5.18.0",
"typescript": "^5.1.3",
"unplugin-auto-import": "^0.16.4",
"unplugin-icons": "^0.16.3",
"unplugin-vue-components": "^0.25.1",
"vite": "^4.3.9",
"vite-plugin-vue-markdown": "^0.23.5",
"vue-tsc": "^1.6.5"
}
},
@@ -70,9 +70,9 @@
}
},
"node_modules/@antfu/utils": {
"version": "0.7.2",
"resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.2.tgz",
"integrity": "sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==",
"version": "0.7.4",
"resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.4.tgz",
"integrity": "sha512-qe8Nmh9rYI/HIspLSTwtbMFPj6dISG6+dJnOguTlPNXtCvS2uezdxscVBb7/3DrmNbQK49TDqpkSQ1chbRGdpQ==",
"dev": true
},
"node_modules/@babel/code-frame": {
@@ -1763,19 +1763,19 @@
}
},
"node_modules/@codemirror/lang-python": {
"version": "6.1.2",
"resolved": "https://registry.npmmirror.com/@codemirror/lang-python/-/lang-python-6.1.2.tgz",
"integrity": "sha512-nbQfifLBZstpt6Oo4XxA2LOzlSp4b/7Bc5cmodG1R+Cs5PLLCTUvsMNWDnziiCfTOG/SW1rVzXq/GbIr6WXlcw==",
"version": "6.1.3",
"resolved": "https://registry.npmmirror.com/@codemirror/lang-python/-/lang-python-6.1.3.tgz",
"integrity": "sha512-S9w2Jl74hFlD5nqtUMIaXAq9t5WlM0acCkyuQWUUSvZclk1sV+UfnpFiZzuZSG+hfEaOmxKR5UxY/Uxswn7EhQ==",
"dependencies": {
"@codemirror/autocomplete": "^6.3.2",
"@codemirror/language": "^6.0.0",
"@lezer/python": "^1.0.0"
"@codemirror/language": "^6.8.0",
"@lezer/python": "^1.1.4"
}
},
"node_modules/@codemirror/language": {
"version": "6.6.0",
"resolved": "https://registry.npmmirror.com/@codemirror/language/-/language-6.6.0.tgz",
"integrity": "sha512-cwUd6lzt3MfNYOobdjf14ZkLbJcnv4WtndYaoBkbor/vF+rCNguMPK0IRtvZJG4dsWiaWPcK8x1VijhvSxnstg==",
"version": "6.8.0",
"resolved": "https://registry.npmmirror.com/@codemirror/language/-/language-6.8.0.tgz",
"integrity": "sha512-r1paAyWOZkfY0RaYEZj3Kul+MiQTEbDvYqf8gPGaRvNneHXCmfSaAVFjwRUPlgxS8yflMxw2CTu6uCMp8R8A2g==",
"dependencies": {
"@codemirror/state": "^6.0.0",
"@codemirror/view": "^6.0.0",
@@ -2217,16 +2217,16 @@
"dev": true
},
"node_modules/@iconify/utils": {
"version": "2.1.5",
"resolved": "https://registry.npmmirror.com/@iconify/utils/-/utils-2.1.5.tgz",
"integrity": "sha512-6MvDI+I6QMvXn5rK9KQGdpEE4mmLTcuQdLZEiX5N+uZB+vc4Yw9K1OtnOgkl8mp4d9X0UrILREyZgF1NUwUt+Q==",
"version": "2.1.6",
"resolved": "https://registry.npmmirror.com/@iconify/utils/-/utils-2.1.6.tgz",
"integrity": "sha512-WJNcj/mmFQoYok+576EexlCQe/g2tZ8X9jR4QLo++z6DlVqrjwt7FBYetTQ3iyTtrPMFHcAx0JiCqtUz30XG5A==",
"dev": true,
"dependencies": {
"@antfu/install-pkg": "^0.1.1",
"@antfu/utils": "^0.7.2",
"@antfu/utils": "^0.7.4",
"@iconify/types": "^2.0.0",
"debug": "^4.3.4",
"kolorist": "^1.7.0",
"kolorist": "^1.8.0",
"local-pkg": "^0.4.3"
}
},
@@ -2262,9 +2262,9 @@
}
},
"node_modules/@jridgewell/source-map": {
"version": "0.3.2",
"resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.2.tgz",
"integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
"version": "0.3.3",
"resolved": "https://registry.npmmirror.com/@jridgewell/source-map/-/source-map-0.3.3.tgz",
"integrity": "sha512-b+fsZXeLYi9fEULmfBrhxn4IrPlINf8fiNarzTof004v3lFdntdwa9PF7vFJqm3mg7s+ScJMxXaE3Acp1irZcg==",
"dev": true,
"dependencies": {
"@jridgewell/gen-mapping": "^0.3.0",
@@ -2272,9 +2272,9 @@
}
},
"node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
"version": "0.3.2",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
"integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
"version": "0.3.3",
"resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
"integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==",
"dev": true,
"dependencies": {
"@jridgewell/set-array": "^1.0.1",
@@ -2565,9 +2565,9 @@
"dev": true
},
"node_modules/@types/node": {
"version": "20.1.5",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-20.1.5.tgz",
"integrity": "sha512-IvGD1CD/nego63ySR7vrAKEX3AJTcmrAN2kn+/sDNLi1Ff5kBzDeEdqWDplK+0HAEoLYej137Sk0cUU8OLOlMg==",
"version": "20.3.0",
"resolved": "https://registry.npmmirror.com/@types/node/-/node-20.3.0.tgz",
"integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==",
"dev": true
},
"node_modules/@types/web-bluetooth": {
@@ -2626,18 +2626,18 @@
}
},
"node_modules/@vitejs/plugin-legacy": {
"version": "4.0.3",
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.0.3.tgz",
"integrity": "sha512-RqDQOSEmFSNL42vITkNp8HE8Ak1yjGgaav4B6BGcZ8/URK0wikzwSyhNRirHDkp+snflEEk7iPZXTXUYA9exbg==",
"version": "4.0.4",
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-legacy/-/plugin-legacy-4.0.4.tgz",
"integrity": "sha512-UwVfkMfUEszbQ2vs3RDfiDxxvYnIjmtIrGxTnxRev5Sh8ZoDpieV2dwvTUB7zXKJpfRsOgimM6MxQ65VDHJeQw==",
"dev": true,
"dependencies": {
"@babel/core": "^7.21.3",
"@babel/preset-env": "^7.20.2",
"@babel/core": "^7.21.4",
"@babel/preset-env": "^7.21.4",
"browserslist": "^4.21.5",
"core-js": "^3.29.1",
"core-js": "^3.30.1",
"magic-string": "^0.30.0",
"regenerator-runtime": "^0.13.11",
"systemjs": "^6.14.0"
"systemjs": "^6.14.1"
},
"engines": {
"node": "^14.18.0 || >=16.0.0"
@@ -2719,18 +2719,6 @@
"vue-template-compiler": "^2.7.14"
}
},
"node_modules/@volar/vue-language-core/node_modules/minimatch": {
"version": "9.0.0",
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.0.tgz",
"integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/@volar/vue-typescript": {
"version": "1.6.5",
"resolved": "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-1.6.5.tgz",
@@ -2745,36 +2733,36 @@
}
},
"node_modules/@vue/compiler-core": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.2.tgz",
"integrity": "sha512-CKZWo1dzsQYTNTft7whzjL0HsrEpMfiK7pjZ2WFE3bC1NA7caUjWioHSK+49y/LK7Bsm4poJZzAMnvZMQ7OTeg==",
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.3.4.tgz",
"integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==",
"dependencies": {
"@babel/parser": "^7.21.3",
"@vue/shared": "3.3.2",
"@vue/shared": "3.3.4",
"estree-walker": "^2.0.2",
"source-map-js": "^1.0.2"
}
},
"node_modules/@vue/compiler-dom": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.2.tgz",
"integrity": "sha512-6gS3auANuKXLw0XH6QxkWqyPYPunziS2xb6VRenM3JY7gVfZcJvkCBHkb5RuNY1FCbBO3lkIi0CdXUCW1c7SXw==",
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz",
"integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==",
"dependencies": {
"@vue/compiler-core": "3.3.2",
"@vue/shared": "3.3.2"
"@vue/compiler-core": "3.3.4",
"@vue/shared": "3.3.4"
}
},
"node_modules/@vue/compiler-sfc": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.2.tgz",
"integrity": "sha512-jG4jQy28H4BqzEKsQqqW65BZgmo3vzdLHTBjF+35RwtDdlFE+Fk1VWJYUnDMMqkFBo6Ye1ltSKVOMPgkzYj7SQ==",
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz",
"integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==",
"dependencies": {
"@babel/parser": "^7.20.15",
"@vue/compiler-core": "3.3.2",
"@vue/compiler-dom": "3.3.2",
"@vue/compiler-ssr": "3.3.2",
"@vue/reactivity-transform": "3.3.2",
"@vue/shared": "3.3.2",
"@vue/compiler-core": "3.3.4",
"@vue/compiler-dom": "3.3.4",
"@vue/compiler-ssr": "3.3.4",
"@vue/reactivity-transform": "3.3.4",
"@vue/shared": "3.3.4",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.0",
"postcss": "^8.1.10",
@@ -2793,12 +2781,12 @@
}
},
"node_modules/@vue/compiler-ssr": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.2.tgz",
"integrity": "sha512-K8OfY5FQtZaSOJHHe8xhEfIfLrefL/Y9frv4k4NsyQL3+0lRKxr9QuJhfdBDjkl7Fhz8CzKh63mULvmOfx3l2w==",
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz",
"integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==",
"dependencies": {
"@vue/compiler-dom": "3.3.2",
"@vue/shared": "3.3.2"
"@vue/compiler-dom": "3.3.4",
"@vue/shared": "3.3.4"
}
},
"node_modules/@vue/devtools-api": {
@@ -2807,21 +2795,21 @@
"integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q=="
},
"node_modules/@vue/reactivity": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.2.tgz",
"integrity": "sha512-yX8C4uTgg2Tdj+512EEMnMKbLveoITl7YdQX35AYgx8vBvQGszKiiCN46g4RY6/deeo/5DLbeUUGxCq1qWMf5g==",
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.3.4.tgz",
"integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==",
"dependencies": {
"@vue/shared": "3.3.2"
"@vue/shared": "3.3.4"
}
},
"node_modules/@vue/reactivity-transform": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.2.tgz",
"integrity": "sha512-iu2WaQvlJHdnONrsyv4ibIEnSsuKF+aHFngGj/y1lwpHQtalpVhKg9wsKMoiKXS9zPNjG9mNKzJS9vudvjzvyg==",
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz",
"integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==",
"dependencies": {
"@babel/parser": "^7.20.15",
"@vue/compiler-core": "3.3.2",
"@vue/shared": "3.3.2",
"@vue/compiler-core": "3.3.4",
"@vue/shared": "3.3.4",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.0"
}
@@ -2838,21 +2826,21 @@
}
},
"node_modules/@vue/runtime-core": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.2.tgz",
"integrity": "sha512-qSl95qj0BvKfcsO+hICqFEoLhJn6++HtsPxmTkkadFbuhe3uQfJ8HmQwvEr7xbxBd2rcJB6XOJg7nWAn/ymC5A==",
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.3.4.tgz",
"integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==",
"dependencies": {
"@vue/reactivity": "3.3.2",
"@vue/shared": "3.3.2"
"@vue/reactivity": "3.3.4",
"@vue/shared": "3.3.4"
}
},
"node_modules/@vue/runtime-dom": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.2.tgz",
"integrity": "sha512-+drStsJT+0mtgHdarT7cXZReCcTFfm6ptxMrz0kAW5hms6UNBd8Q1pi4JKlncAhu+Ld/TevsSp7pqAZxBBoGng==",
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz",
"integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==",
"dependencies": {
"@vue/runtime-core": "3.3.2",
"@vue/shared": "3.3.2",
"@vue/runtime-core": "3.3.4",
"@vue/shared": "3.3.4",
"csstype": "^3.1.1"
}
},
@@ -2862,21 +2850,21 @@
"integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ=="
},
"node_modules/@vue/server-renderer": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.2.tgz",
"integrity": "sha512-QCwh6OGwJg6GDLE0fbQhRTR6tnU+XDJ1iCsTYHXBiezCXAhqMygFRij7BiLF4ytvvHcg5kX9joX5R5vP85++wg==",
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.3.4.tgz",
"integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==",
"dependencies": {
"@vue/compiler-ssr": "3.3.2",
"@vue/shared": "3.3.2"
"@vue/compiler-ssr": "3.3.4",
"@vue/shared": "3.3.4"
},
"peerDependencies": {
"vue": "3.3.2"
"vue": "3.3.4"
}
},
"node_modules/@vue/shared": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.2.tgz",
"integrity": "sha512-0rFu3h8JbclbnvvKrs7Fe5FNGV9/5X2rPD7KmOzhLSUAiQH5//Hq437Gv0fR5Mev3u/nbtvmLl8XgwCU20/ZfQ=="
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.3.4.tgz",
"integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ=="
},
"node_modules/@vueuse/core": {
"version": "10.1.2",
@@ -3462,9 +3450,9 @@
}
},
"node_modules/core-js": {
"version": "3.29.1",
"resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.29.1.tgz",
"integrity": "sha512-+jwgnhg6cQxKYIIjGtAHq2nwUOolo9eoFZ4sHfUH09BLXBgxnH4gA0zEd+t+BO2cNB8idaBtZFcFTRjQJRJmAw==",
"version": "3.31.0",
"resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.31.0.tgz",
"integrity": "sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==",
"dev": true,
"hasInstallScript": true
},
@@ -4427,9 +4415,9 @@
"peer": true
},
"node_modules/kolorist": {
"version": "1.7.0",
"resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.7.0.tgz",
"integrity": "sha512-ymToLHqL02udwVdbkowNpzjFd6UzozMtshPQKVi5k1EjKRqKqBrOnE9QbLEb0/pV76SAiIT13hdL8R6suc+f3g==",
"version": "1.8.0",
"resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz",
"integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==",
"dev": true
},
"node_modules/linkify-it": {
@@ -4682,15 +4670,15 @@
}
},
"node_modules/minimatch": {
"version": "7.4.3",
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-7.4.3.tgz",
"integrity": "sha512-5UB4yYusDtkRPbRiy1cqZ1IpGNcJCGlEMG17RKzPddpyiPKoCdwohbED8g4QXT0ewCt8LTkQXuljsUfQ3FKM4A==",
"version": "9.0.1",
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.1.tgz",
"integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=10"
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/minipass": {
@@ -4748,15 +4736,15 @@
}
},
"node_modules/mlly": {
"version": "1.2.0",
"resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.2.0.tgz",
"integrity": "sha512-+c7A3CV0KGdKcylsI6khWyts/CYrGTrRVo4R/I7u/cUsy0Conxa6LUhiEzVKIw14lc2L5aiO4+SeVe4TeGRKww==",
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.3.0.tgz",
"integrity": "sha512-HT5mcgIQKkOrZecOjOX3DJorTikWXwsBfpcr/MGBkhfWcjiqvnaL/9ppxvIUXfjT6xt4DVIAsN9fMUz1ev4bIw==",
"dev": true,
"dependencies": {
"acorn": "^8.8.2",
"pathe": "^1.1.0",
"pkg-types": "^1.0.2",
"ufo": "^1.1.1"
"pkg-types": "^1.0.3",
"ufo": "^1.1.2"
}
},
"node_modules/mri": {
@@ -4783,9 +4771,9 @@
"dev": true
},
"node_modules/naive-ui": {
"version": "2.34.3",
"resolved": "https://registry.npmmirror.com/naive-ui/-/naive-ui-2.34.3.tgz",
"integrity": "sha512-fUMr0dzb/iGsOTWgoblPVobY5X5dihQ1eam5dA+H74oyLYAvgX4pL96xQFPBLIYqvyRFBAsN85kHN5pLqdtpxA==",
"version": "2.34.4",
"resolved": "https://registry.npmmirror.com/naive-ui/-/naive-ui-2.34.4.tgz",
"integrity": "sha512-aPG8PDfhSzIzn/jSC9y3Jb3Pe2wHJ7F0cFV1EWlbImSrZECeUmoc+fIcOSWbizoztkKfaUAeKwYdMl09MKkj1g==",
"dependencies": {
"@css-render/plugin-bem": "^0.15.10",
"@css-render/vue3-ssr": "^0.15.10",
@@ -4804,7 +4792,7 @@
"treemate": "^0.3.11",
"vdirs": "^0.1.8",
"vooks": "^0.2.12",
"vueuc": "^0.4.47"
"vueuc": "^0.4.51"
},
"peerDependencies": {
"vue": "^3.0.0"
@@ -4962,9 +4950,9 @@
}
},
"node_modules/pathe": {
"version": "1.1.0",
"resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.0.tgz",
"integrity": "sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==",
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.1.tgz",
"integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==",
"dev": true
},
"node_modules/picocolors": {
@@ -4982,17 +4970,17 @@
}
},
"node_modules/pinia": {
"version": "2.0.36",
"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.36.tgz",
"integrity": "sha512-4UKApwjlmJH+VuHKgA+zQMddcCb3ezYnyewQ9NVrsDqZ/j9dMv5+rh+1r48whKNdpFkZAWVxhBp5ewYaYX9JcQ==",
"version": "2.1.3",
"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.1.3.tgz",
"integrity": "sha512-XNA/z/ye4P5rU1pieVmh0g/hSuDO98/a5UC8oSP0DNdvt6YtetJNHTrXwpwsQuflkGT34qKxAEcp7lSxXNjf/A==",
"dependencies": {
"@vue/devtools-api": "^6.5.0",
"vue-demi": "*"
"vue-demi": ">=0.14.5"
},
"peerDependencies": {
"@vue/composition-api": "^1.4.0",
"typescript": ">=4.4.4",
"vue": "^2.6.14 || ^3.2.0"
"vue": "^2.6.14 || ^3.3.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
@@ -5003,14 +4991,36 @@
}
}
},
"node_modules/pinia/node_modules/vue-demi": {
"version": "0.14.5",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.5.tgz",
"integrity": "sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/pkg-types": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.2.tgz",
"integrity": "sha512-hM58GKXOcj8WTqUXnsQyJYXdeAPbythQgEF3nTcEo+nkD49chjQ9IKm/QJy9xf6JakXptz86h7ecP2024rrLaQ==",
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.0.3.tgz",
"integrity": "sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==",
"dev": true,
"dependencies": {
"jsonc-parser": "^3.2.0",
"mlly": "^1.1.1",
"mlly": "^1.2.0",
"pathe": "^1.1.0"
}
},
@@ -5203,12 +5213,12 @@
}
},
"node_modules/resolve": {
"version": "1.22.1",
"resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.1.tgz",
"integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
"version": "1.22.2",
"resolved": "https://registry.npmmirror.com/resolve/-/resolve-1.22.2.tgz",
"integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==",
"dev": true,
"dependencies": {
"is-core-module": "^2.9.0",
"is-core-module": "^2.11.0",
"path-parse": "^1.0.7",
"supports-preserve-symlinks-flag": "^1.0.0"
},
@@ -5545,13 +5555,13 @@
}
},
"node_modules/terser": {
"version": "5.17.4",
"resolved": "https://registry.npmmirror.com/terser/-/terser-5.17.4.tgz",
"integrity": "sha512-jcEKZw6UPrgugz/0Tuk/PVyLAPfMBJf5clnGueo45wTweoV8yh7Q7PEkhkJ5uuUbC7zAxEcG3tqNr1bstkQ8nw==",
"version": "5.18.0",
"resolved": "https://registry.npmmirror.com/terser/-/terser-5.18.0.tgz",
"integrity": "sha512-pdL757Ig5a0I+owA42l6tIuEycRuM7FPY4n62h44mRLRfnOxJkkOHd6i89dOpwZlpF6JXBwaAHF6yWzFrt+QyA==",
"dev": true,
"dependencies": {
"@jridgewell/source-map": "^0.3.2",
"acorn": "^8.5.0",
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.8.2",
"commander": "^2.20.0",
"source-map-support": "~0.5.20"
},
@@ -5615,16 +5625,16 @@
"integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg=="
},
"node_modules/typescript": {
"version": "5.0.4",
"resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.0.4.tgz",
"integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==",
"version": "5.1.3",
"resolved": "https://registry.npmmirror.com/typescript/-/typescript-5.1.3.tgz",
"integrity": "sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==",
"devOptional": true,
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
},
"engines": {
"node": ">=12.20"
"node": ">=14.17"
}
},
"node_modules/uc.micro": {
@@ -5634,9 +5644,9 @@
"dev": true
},
"node_modules/ufo": {
"version": "1.1.1",
"resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.1.1.tgz",
"integrity": "sha512-MvlCc4GHrmZdAllBc0iUDowff36Q9Ndw/UzqmEKyrfSzokTd9ZCy1i+IIk5hrYKkjoYVQyNbrw7/F8XJ2rEwTg==",
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.1.2.tgz",
"integrity": "sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==",
"dev": true
},
"node_modules/unctx": {
@@ -5738,17 +5748,17 @@
}
},
"node_modules/unplugin-auto-import": {
"version": "0.16.0",
"resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.16.0.tgz",
"integrity": "sha512-AbeGl3kzoGyqh2uWwwSVYCXy2ouvSbHfBc2u7xmNBpOosWa7SIAz+nQx3f1JpMXunEZ9TTChXkor4WcGrpkc7Q==",
"version": "0.16.4",
"resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.16.4.tgz",
"integrity": "sha512-xdgBa9NAS3JG8HjkAZHSbGSMlrjKpaWKXGUzaF6RzEtr980RCl1t0Zsu0skUInNYrEQfqaHc7aGWPv41DLTK/w==",
"dev": true,
"dependencies": {
"@antfu/utils": "^0.7.2",
"@rollup/pluginutils": "^5.0.2",
"local-pkg": "^0.4.3",
"magic-string": "^0.30.0",
"minimatch": "^9.0.0",
"unimport": "^3.0.6",
"minimatch": "^9.0.1",
"unimport": "^3.0.7",
"unplugin": "^1.3.1"
},
"engines": {
@@ -5779,22 +5789,10 @@
"node": ">=12"
}
},
"node_modules/unplugin-auto-import/node_modules/minimatch": {
"version": "9.0.0",
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.0.tgz",
"integrity": "sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=16 || 14 >=14.17"
}
},
"node_modules/unplugin-auto-import/node_modules/unimport": {
"version": "3.0.6",
"resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.0.6.tgz",
"integrity": "sha512-GYxGJ1Bri1oqx8VFDjdgooGzeK7jBk3bvhXmamTIpu3nONOcUMGwZbX7X0L5RA7OWMXpR4vzpSQP7pXUzJg1/Q==",
"version": "3.0.8",
"resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.0.8.tgz",
"integrity": "sha512-AOt6xj3QMwqcTZRPB+NhFkyVEjCKnpTVoPm5x6424zz2NYYtCfym2bpJofzPHIJKPNIh5ko2/t2q46ZIMgdmbw==",
"dev": true,
"dependencies": {
"@rollup/pluginutils": "^5.0.2",
@@ -5802,25 +5800,25 @@
"fast-glob": "^3.2.12",
"local-pkg": "^0.4.3",
"magic-string": "^0.30.0",
"mlly": "^1.2.0",
"pathe": "^1.1.0",
"pkg-types": "^1.0.2",
"mlly": "^1.3.0",
"pathe": "^1.1.1",
"pkg-types": "^1.0.3",
"scule": "^1.0.0",
"strip-literal": "^1.0.1",
"unplugin": "^1.3.1"
}
},
"node_modules/unplugin-icons": {
"version": "0.16.1",
"resolved": "https://registry.npmmirror.com/unplugin-icons/-/unplugin-icons-0.16.1.tgz",
"integrity": "sha512-qTunFUkpAyDnwzwV7YV1ZgCWRYfLuURcCurhhXOWMy2ipY88qx1pADvral2hJu4Xymh0X0t3Zcll3BIru2AVLQ==",
"version": "0.16.3",
"resolved": "https://registry.npmmirror.com/unplugin-icons/-/unplugin-icons-0.16.3.tgz",
"integrity": "sha512-hivVVr6++WHSj6Iz+rjTa14/ALMYT+PFd2sPtTBKlQR3cdzui1VwM72TzSu94NkDm/KVncvOIiBwoHwUPeL9bg==",
"dev": true,
"dependencies": {
"@antfu/install-pkg": "^0.1.1",
"@antfu/utils": "^0.7.2",
"@iconify/utils": "^2.1.5",
"@antfu/utils": "^0.7.4",
"@iconify/utils": "^2.1.6",
"debug": "^4.3.4",
"kolorist": "^1.7.0",
"kolorist": "^1.8.0",
"local-pkg": "^0.4.3",
"unplugin": "^1.3.1"
},
@@ -5846,21 +5844,21 @@
}
},
"node_modules/unplugin-vue-components": {
"version": "0.24.1",
"resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.24.1.tgz",
"integrity": "sha512-T3A8HkZoIE1Cja95xNqolwza0yD5IVlgZZ1PVAGvVCx8xthmjsv38xWRCtHtwl+rvZyL9uif42SRkDGw9aCfMA==",
"version": "0.25.1",
"resolved": "https://registry.npmmirror.com/unplugin-vue-components/-/unplugin-vue-components-0.25.1.tgz",
"integrity": "sha512-kzS2ZHVMaGU2XEO2keYQcMjNZkanDSGDdY96uQT9EPe+wqSZwwgbFfKVJ5ti0+8rGAcKHColwKUvctBhq2LJ3A==",
"dev": true,
"dependencies": {
"@antfu/utils": "^0.7.2",
"@antfu/utils": "^0.7.4",
"@rollup/pluginutils": "^5.0.2",
"chokidar": "^3.5.3",
"debug": "^4.3.4",
"fast-glob": "^3.2.12",
"local-pkg": "^0.4.3",
"magic-string": "^0.30.0",
"minimatch": "^7.4.2",
"resolve": "^1.22.1",
"unplugin": "^1.1.0"
"minimatch": "^9.0.1",
"resolve": "^1.22.2",
"unplugin": "^1.3.1"
},
"engines": {
"node": ">=14"
@@ -5941,9 +5939,9 @@
}
},
"node_modules/vite": {
"version": "4.3.6",
"resolved": "https://registry.npmmirror.com/vite/-/vite-4.3.6.tgz",
"integrity": "sha512-cqIyLSbA6gornMS659AXTVKF7cvSHMdKmJJwQ9DXq3lwsT1uZSdktuBRlpHQ8VnOWx0QHtjDwxPpGtyo9Fh/Qg==",
"version": "4.3.9",
"resolved": "https://registry.npmmirror.com/vite/-/vite-4.3.9.tgz",
"integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==",
"dev": true,
"dependencies": {
"esbuild": "^0.17.5",
@@ -5989,9 +5987,9 @@
}
},
"node_modules/vite-plugin-vue-markdown": {
"version": "0.23.4",
"resolved": "https://registry.npmmirror.com/vite-plugin-vue-markdown/-/vite-plugin-vue-markdown-0.23.4.tgz",
"integrity": "sha512-aGB2baimtxRqLyvyuVzdykSNkyMa8KciwOzF52QxiaaOoW1Kznto1ypz1NG5J7tFHWt/RR5YO51CiADtr344qQ==",
"version": "0.23.5",
"resolved": "https://registry.npmmirror.com/vite-plugin-vue-markdown/-/vite-plugin-vue-markdown-0.23.5.tgz",
"integrity": "sha512-NXTZ4y+n691gLPWayMBbh4jldQeaqDp9e9WjWUYbn9obsLqS9qU+hr4RAruDq5kP4siTOp7JDV34Sw5eA7WxLg==",
"dev": true,
"dependencies": {
"@antfu/utils": "^0.7.2",
@@ -6030,15 +6028,15 @@
"dev": true
},
"node_modules/vue": {
"version": "3.3.2",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.2.tgz",
"integrity": "sha512-98hJcAhyDwZoOo2flAQBSPVYG/o0HA9ivIy2ktHshjE+6/q8IMQ+kvDKQzOZTFPxvnNMcGM+zS2A00xeZMA7tA==",
"version": "3.3.4",
"resolved": "https://registry.npmmirror.com/vue/-/vue-3.3.4.tgz",
"integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==",
"dependencies": {
"@vue/compiler-dom": "3.3.2",
"@vue/compiler-sfc": "3.3.2",
"@vue/runtime-dom": "3.3.2",
"@vue/server-renderer": "3.3.2",
"@vue/shared": "3.3.2"
"@vue/compiler-dom": "3.3.4",
"@vue/compiler-sfc": "3.3.4",
"@vue/runtime-dom": "3.3.4",
"@vue/server-renderer": "3.3.4",
"@vue/shared": "3.3.4"
}
},
"node_modules/vue-chartjs": {
@@ -6065,32 +6063,10 @@
"vue": "3.x"
}
},
"node_modules/vue-demi": {
"version": "0.13.11",
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
"integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
"hasInstallScript": true,
"bin": {
"vue-demi-fix": "bin/vue-demi-fix.js",
"vue-demi-switch": "bin/vue-demi-switch.js"
},
"engines": {
"node": ">=12"
},
"peerDependencies": {
"@vue/composition-api": "^1.0.0-rc.1",
"vue": "^3.0.0-0 || ^2.6.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
"optional": true
}
}
},
"node_modules/vue-router": {
"version": "4.2.0",
"resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.0.tgz",
"integrity": "sha512-c+usESa6ZoWsm4PPdzRSyenp5A4dsUtnDJnrI03fY1IpIihA9TK3x5ffgkFDpjhLJZewsXoKURapNLFdZjuqTg==",
"version": "4.2.2",
"resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.2.2.tgz",
"integrity": "sha512-cChBPPmAflgBGmy3tBsjeoe3f3VOSG6naKyY5pjtrqLGbNEXdzCigFUHgBvp9e3ysAtFtEx7OLqcSDh/1Cq2TQ==",
"dependencies": {
"@vue/devtools-api": "^6.5.0"
},

View File

@@ -11,7 +11,7 @@
},
"dependencies": {
"@codemirror/lang-cpp": "^6.0.2",
"@codemirror/lang-python": "^6.1.2",
"@codemirror/lang-python": "^6.1.3",
"@element-plus/icons-vue": "^2.1.0",
"@vueuse/core": "^10.1.2",
"@wangeditor/editor": "^5.1.23",
@@ -22,29 +22,29 @@
"copy-text-to-clipboard": "^3.1.0",
"date-fns": "^2.30.0",
"highlight.js": "^11.8.0",
"naive-ui": "^2.34.3",
"naive-ui": "^2.34.4",
"normalize.css": "^8.0.1",
"party-js": "^2.2.0",
"pinia": "^2.0.36",
"vue": "^3.3.2",
"pinia": "^2.1.3",
"vue": "^3.3.4",
"vue-chartjs": "^5.2.0",
"vue-codemirror": "^6.1.1",
"vue-router": "^4.2.0"
"vue-router": "^4.2.2"
},
"devDependencies": {
"@iconify-json/ep": "^1.1.10",
"@types/node": "^20.1.5",
"@vitejs/plugin-legacy": "^4.0.3",
"@types/node": "^20.3.0",
"@vitejs/plugin-legacy": "^4.0.4",
"@vitejs/plugin-vue": "^4.2.3",
"markdown-it-shiki": "^0.9.0",
"prettier": "^2.8.8",
"terser": "^5.17.4",
"typescript": "^5.0.4",
"unplugin-auto-import": "^0.16.0",
"unplugin-icons": "^0.16.1",
"unplugin-vue-components": "^0.24.1",
"vite": "^4.3.6",
"vite-plugin-vue-markdown": "^0.23.4",
"terser": "^5.18.0",
"typescript": "^5.1.3",
"unplugin-auto-import": "^0.16.4",
"unplugin-icons": "^0.16.3",
"unplugin-vue-components": "^0.25.1",
"vite": "^4.3.9",
"vite-plugin-vue-markdown": "^0.23.5",
"vue-tsc": "^1.6.5"
}
}

View File

@@ -113,6 +113,6 @@ function handleAll() {
<style scoped>
.inputArea {
width: 200px;
height: calc(100vh - 108px);
height: 500px;
}
</style>

View File

@@ -105,6 +105,7 @@ declare global {
const toReactive: typeof import('@vueuse/core')['toReactive']
const toRef: typeof import('vue')['toRef']
const toRefs: typeof import('vue')['toRefs']
const toValue: typeof import('vue')['toValue']
const triggerRef: typeof import('vue')['triggerRef']
const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount']
const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount']

4
src/components.d.ts vendored
View File

@@ -3,11 +3,9 @@
// @ts-nocheck
// Generated by unplugin-vue-components
// Read more: https://github.com/vuejs/core/pull/3399
import '@vue/runtime-core'
export {}
declare module '@vue/runtime-core' {
declare module 'vue' {
export interface GlobalComponents {
IEpArrowRightBold: typeof import('~icons/ep/arrow-right-bold')['default']
IEpBell: typeof import('~icons/ep/bell')['default']

View File

@@ -1,24 +1,3 @@
我是第一步
我是第二步
我是第三步
我是第一步
我是第二步
我是第三步
我是第一步
我是第二步
我是第三步
我是第一步
我是第二步
我是第三步
我是第一步
我是第二步
我是第三步
我是第一步
我是第二步
我是第三步
我是第一步
我是第二步
我是第三步
我是第一步
我是第二步
我是第三步

View File

@@ -11,7 +11,7 @@ import { toggleLogin } from "./shared/composables/modal"
const router = createRouter({
history: createWebHistory(),
routes,
routes: [routes],
})
router.beforeEach((to, from, next) => {

View File

@@ -50,7 +50,7 @@ const columns: DataTableColumn<Rank>[] = [
() => row.user.username
),
},
{ title: "骚话", key: "mood", minWidth: 200 },
{ title: "自我介绍", key: "mood", minWidth: 200 },
{ title: "已解决", key: "accepted_number", width: 100 },
{ title: "提交数", key: "submission_number", width: 100 },
{

View File

@@ -127,7 +127,7 @@ const columns = computed(() => {
),
},
{
title: "编号",
title: "提交编号",
key: "id",
minWidth: 160,
render: (row) => {

View File

@@ -57,7 +57,7 @@ async function saveProfile() {
<n-form-item label="真名">
<n-input v-model:value="userStore.profile.real_name" />
</n-form-item>
<n-form-item label="骚话">
<n-form-item label="自我介绍">
<n-input v-model:value="userStore.profile.mood" />
</n-form-item>
<n-button

View File

@@ -1,176 +1,174 @@
import { RouteRecordRaw } from "vue-router"
import { loadChart } from "./shared/composables/chart"
export const routes: RouteRecordRaw[] = [
{
path: "/",
component: () => import("~/shared/layout/default.vue"),
children: [
{ path: "", component: () => import("oj/problem/list.vue") },
{
path: "problem/:problemID",
component: () => import("oj/problem/detail.vue"),
props: true,
name: "problem",
beforeEnter: loadChart,
},
{
path: "submission",
component: () => import("oj/submission/list.vue"),
name: "submissions",
},
{
path: "submission/:submissionID",
component: () => import("oj/submission/detail.vue"),
props: true,
meta: { requiresAuth: true },
},
{
path: "contest",
component: () => import("oj/contest/list.vue"),
name: "contests",
},
{
path: "contest/:contestID",
component: () => import("oj/contest/detail.vue"),
props: true,
meta: { requiresAuth: true },
children: [
{
path: "",
component: () => import("oj/contest/pages/problems.vue"),
props: true,
meta: { requiresAuth: true },
name: "contest problems",
},
{
path: "submission",
component: () => import("oj/submission/list.vue"),
meta: { requiresAuth: true },
name: "contest submissions",
},
{
path: "rank",
component: () => import("oj/contest/pages/rank.vue"),
props: true,
meta: { requiresAuth: true },
name: "contest rank",
},
],
},
{
path: "contest/:contestID/problem/:problemID",
component: () => import("oj/problem/detail.vue"),
props: true,
name: "contest problem",
meta: { requiresAuth: true },
beforeEnter: loadChart,
},
{
path: "rank",
component: () => import("oj/rank/list.vue"),
beforeEnter: loadChart,
},
{
path: "user",
component: () => import("oj/user/index.vue"),
meta: { requiresAuth: true },
},
{
path: "setting",
component: () => import("oj/user/setting.vue"),
meta: { requiresAuth: true },
},
{
path: "learn",
redirect: "learn/step-1",
},
{
path: "learn/:step+",
component: () => import("learn/index.vue"),
name: "learn",
},
],
},
{
path: "/admin",
component: () => import("~/shared/layout/admin.vue"),
children: [
{
path: "",
name: "admin home",
component: () => import("~/admin/setting/home.vue"),
},
{
path: "config",
name: "admin config",
component: () => import("admin/setting/config.vue"),
},
{
path: "announcement",
name: "admin announcement",
component: () => import("admin/setting/announcement.vue"),
},
{
path: "user/list",
name: "admin user list",
component: () => import("admin/user/list.vue"),
},
{
path: "user/generate",
name: "admin user generate",
component: () => import("~/admin/user/generate.vue"),
},
{
path: "problem/list",
name: "admin problem list",
component: () => import("admin/problem/list.vue"),
},
{
path: "problem/create",
name: "admin problem create",
component: () => import("admin/problem/detail.vue"),
},
{
path: "problem/edit/:problemID",
name: "admin problem edit",
component: () => import("admin/problem/detail.vue"),
props: true,
},
{
path: "contest/list",
name: "admin contest list",
component: () => import("admin/contest/list.vue"),
},
{
path: "contest/create",
name: "admin contest create",
component: () => import("admin/contest/detail.vue"),
},
{
path: "contest/edit/:contestID",
name: "admin contest edit",
component: () => import("admin/contest/detail.vue"),
props: true,
},
{
path: "contest/:contestID/problem/list",
name: "admin contest problem list",
component: () => import("admin/problem/list.vue"),
props: true,
},
{
path: "contest/:contestID/problem/create",
name: "admin contest problem create",
component: () => import("admin/problem/detail.vue"),
props: true,
},
{
path: "contest/:contestID/problem/edit/:problemID",
name: "admin contest problem edit",
component: () => import("admin/problem/detail.vue"),
props: true,
},
],
},
]
export const routes: RouteRecordRaw = {
path: "/",
component: () => import("~/shared/layout/default.vue"),
children: [
{ path: "", component: () => import("oj/problem/list.vue") },
{
path: "problem/:problemID",
component: () => import("oj/problem/detail.vue"),
props: true,
name: "problem",
beforeEnter: loadChart,
},
{
path: "submission",
component: () => import("oj/submission/list.vue"),
name: "submissions",
},
{
path: "submission/:submissionID",
component: () => import("oj/submission/detail.vue"),
props: true,
meta: { requiresAuth: true },
},
{
path: "contest",
component: () => import("oj/contest/list.vue"),
name: "contests",
},
{
path: "contest/:contestID",
component: () => import("oj/contest/detail.vue"),
props: true,
meta: { requiresAuth: true },
children: [
{
path: "",
component: () => import("oj/contest/pages/problems.vue"),
props: true,
meta: { requiresAuth: true },
name: "contest problems",
},
{
path: "submission",
component: () => import("oj/submission/list.vue"),
meta: { requiresAuth: true },
name: "contest submissions",
},
{
path: "rank",
component: () => import("oj/contest/pages/rank.vue"),
props: true,
meta: { requiresAuth: true },
name: "contest rank",
},
],
},
{
path: "contest/:contestID/problem/:problemID",
component: () => import("oj/problem/detail.vue"),
props: true,
name: "contest problem",
meta: { requiresAuth: true },
beforeEnter: loadChart,
},
{
path: "rank",
component: () => import("oj/rank/list.vue"),
beforeEnter: loadChart,
},
{
path: "user",
component: () => import("oj/user/index.vue"),
meta: { requiresAuth: true },
},
{
path: "setting",
component: () => import("oj/user/setting.vue"),
meta: { requiresAuth: true },
},
{
path: "learn",
redirect: "learn/step-1",
},
{
path: "learn/:step+",
component: () => import("learn/index.vue"),
name: "learn",
},
{
path: "/admin",
component: () => import("~/shared/layout/admin.vue"),
children: [
{
path: "",
name: "admin home",
component: () => import("~/admin/setting/home.vue"),
},
{
path: "config",
name: "admin config",
component: () => import("admin/setting/config.vue"),
},
{
path: "announcement",
name: "admin announcement",
component: () => import("admin/setting/announcement.vue"),
},
{
path: "user/list",
name: "admin user list",
component: () => import("admin/user/list.vue"),
},
{
path: "user/generate",
name: "admin user generate",
component: () => import("~/admin/user/generate.vue"),
},
{
path: "problem/list",
name: "admin problem list",
component: () => import("admin/problem/list.vue"),
},
{
path: "problem/create",
name: "admin problem create",
component: () => import("admin/problem/detail.vue"),
},
{
path: "problem/edit/:problemID",
name: "admin problem edit",
component: () => import("admin/problem/detail.vue"),
props: true,
},
{
path: "contest/list",
name: "admin contest list",
component: () => import("admin/contest/list.vue"),
},
{
path: "contest/create",
name: "admin contest create",
component: () => import("admin/contest/detail.vue"),
},
{
path: "contest/edit/:contestID",
name: "admin contest edit",
component: () => import("admin/contest/detail.vue"),
props: true,
},
{
path: "contest/:contestID/problem/list",
name: "admin contest problem list",
component: () => import("admin/problem/list.vue"),
props: true,
},
{
path: "contest/:contestID/problem/create",
name: "admin contest problem create",
component: () => import("admin/problem/detail.vue"),
props: true,
},
{
path: "contest/:contestID/problem/edit/:problemID",
name: "admin contest problem edit",
component: () => import("admin/problem/detail.vue"),
props: true,
},
],
},
],
}

View File

@@ -36,6 +36,7 @@ const menus = computed<MenuOption[]>(() => [
label: () =>
h(RouterLink, { to: "/learn/step-1" }, { default: () => "自学" }),
key: "learn",
show: false,
},
{
label: () => h(RouterLink, { to: "/" }, { default: () => "题库" }),

View File

@@ -8,10 +8,6 @@ const route = useRoute()
const router = useRouter()
const userStore = useUserStore()
const options: MenuOption[] = [
{
label: () => h(RouterLink, { to: "/" }, { default: () => "返回 OJ" }),
key: "return to OJ",
},
{
label: () => h(RouterLink, { to: "/admin" }, { default: () => "首页" }),
key: "admin home",
@@ -105,14 +101,19 @@ onMounted(async () => {
</script>
<template>
<n-layout has-sider position="absolute">
<n-layout-sider width="160" bordered :native-scrollbar="false">
<div class="admin">
<n-layout-sider width="160" bordered>
<n-menu :options="options" :value="active" />
</n-layout-sider>
<n-layout-content content-style="padding: 16px; min-width: 600px">
<router-view></router-view>
</n-layout-content>
</n-layout>
</div>
</template>
<style scoped></style>
<style scoped>
.admin {
margin: -16px;
display: flex;
}
</style>