admin config.
This commit is contained in:
266
package-lock.json
generated
266
package-lock.json
generated
@@ -11,7 +11,7 @@
|
||||
"@codemirror/lang-cpp": "^6.0.2",
|
||||
"@codemirror/lang-python": "^6.1.2",
|
||||
"@element-plus/icons-vue": "^2.1.0",
|
||||
"@vueuse/core": "^9.13.0",
|
||||
"@vueuse/core": "^10.1.0",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||
"axios": "1.3.5",
|
||||
@@ -23,7 +23,7 @@
|
||||
"naive-ui": "^2.34.3",
|
||||
"normalize.css": "^8.0.1",
|
||||
"party-js": "^2.2.0",
|
||||
"pinia": "^2.0.34",
|
||||
"pinia": "^2.0.35",
|
||||
"vue": "^3.2.47",
|
||||
"vue-chartjs": "^5.2.0",
|
||||
"vue-codemirror": "^6.1.1",
|
||||
@@ -31,19 +31,19 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify-json/ep": "^1.1.10",
|
||||
"@types/node": "^18.15.11",
|
||||
"@types/node": "^18.15.13",
|
||||
"@vitejs/plugin-legacy": "^4.0.2",
|
||||
"@vitejs/plugin-vue": "^4.1.0",
|
||||
"markdown-it-shiki": "^0.8.0",
|
||||
"markdown-it-shiki": "^0.8.1",
|
||||
"prettier": "^2.8.7",
|
||||
"terser": "^5.16.9",
|
||||
"terser": "^5.17.1",
|
||||
"typescript": "^5.0.4",
|
||||
"unplugin-auto-import": "^0.15.2",
|
||||
"unplugin-auto-import": "^0.15.3",
|
||||
"unplugin-icons": "^0.16.1",
|
||||
"unplugin-vue-components": "^0.24.1",
|
||||
"vite": "^4.2.1",
|
||||
"vite-plugin-vue-markdown": "^0.22.4",
|
||||
"vue-tsc": "^1.2.0"
|
||||
"vite": "^4.3.1",
|
||||
"vite-plugin-vue-markdown": "^0.22.6",
|
||||
"vue-tsc": "^1.4.4"
|
||||
}
|
||||
},
|
||||
"node_modules/@ampproject/remapping": {
|
||||
@@ -2351,9 +2351,9 @@
|
||||
}
|
||||
},
|
||||
"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",
|
||||
"integrity": "sha512-ucFiEULCkLcCG1Tf1MfG5u5PS4BIXWIeKGHRGsXxz1ix2GbZWKFVgWEdNEckBu8s75Fv1WJLIOiAYZyri2f1nw==",
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmmirror.com/@mdit-vue/plugin-component/-/plugin-component-0.12.0.tgz",
|
||||
"integrity": "sha512-LrwV3f0Y6H7b7m/w1Y3bkGuR3HOiBK4QiHHW3HuRMza6MZodDQbj8Baik5/V5GiSg1/ltijS1CymVcycd1EfTw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/markdown-it": "^12.2.3",
|
||||
@@ -2361,21 +2361,21 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@mdit-vue/plugin-frontmatter": {
|
||||
"version": "0.11.1",
|
||||
"resolved": "https://registry.npmmirror.com/@mdit-vue/plugin-frontmatter/-/plugin-frontmatter-0.11.1.tgz",
|
||||
"integrity": "sha512-AdZJInjD1pTJXlfhuoBS5ycuIQ3ewBfY0R/XHM3TRDEaDHQJHxouUCpCyijZmpdljTU45lFetIowaKtAi7GBog==",
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmmirror.com/@mdit-vue/plugin-frontmatter/-/plugin-frontmatter-0.12.0.tgz",
|
||||
"integrity": "sha512-26Y3JktjGgNoCVH7NLqi5RcdAauAqxepTt2qXueRcRHtGpiRQV2/M1FveIhCOTCtHSuG5bBOHUxGaV6vRK3Vbw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@mdit-vue/types": "0.11.0",
|
||||
"@mdit-vue/types": "0.12.0",
|
||||
"@types/markdown-it": "^12.2.3",
|
||||
"gray-matter": "^4.0.3",
|
||||
"markdown-it": "^13.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@mdit-vue/types": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmmirror.com/@mdit-vue/types/-/types-0.11.0.tgz",
|
||||
"integrity": "sha512-ygCGP7vFpqS02hpZwEe1uz8cfImWX06+zRs08J+tCZRKb6k+easIaIHFtY9ZSxt7j9L/gAPLDo/5RmOT6z0DPQ==",
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmmirror.com/@mdit-vue/types/-/types-0.12.0.tgz",
|
||||
"integrity": "sha512-mrC4y8n88BYvgcgzq9bvTlDgFyi2zuvzmPilRvRc3Uz1iIvq8mDhxJ0rHKFUNzPEScpDvJdIujqiDrulMqiudA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@nodelib/fs.scandir": {
|
||||
@@ -2566,9 +2566,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "18.15.11",
|
||||
"resolved": "https://registry.npmmirror.com/@types/node/-/node-18.15.11.tgz",
|
||||
"integrity": "sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==",
|
||||
"version": "18.15.13",
|
||||
"resolved": "https://registry.npmmirror.com/@types/node/-/node-18.15.13.tgz",
|
||||
"integrity": "sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/web-bluetooth": {
|
||||
@@ -2674,69 +2674,75 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@volar/language-core": {
|
||||
"version": "1.3.0-alpha.0",
|
||||
"resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.3.0-alpha.0.tgz",
|
||||
"integrity": "sha512-W3uMzecHPcbwddPu4SJpUcPakRBK/y/BP+U0U6NiPpUX1tONLC4yCawt+QBJqtgJ+sfD6ztf5PyvPL3hQRqfOA==",
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/@volar/language-core/-/language-core-1.4.1.tgz",
|
||||
"integrity": "sha512-EIY+Swv+TjsWpxOxujjMf1ZXqOjg9MT2VMXZ+1dKva0wD8W0L6EtptFFcCJdBbcKmGMFkr57Qzz9VNMWhs3jXQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@volar/source-map": "1.3.0-alpha.0"
|
||||
"@volar/source-map": "1.4.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@volar/source-map": {
|
||||
"version": "1.3.0-alpha.0",
|
||||
"resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.3.0-alpha.0.tgz",
|
||||
"integrity": "sha512-jSdizxWFvDTvkPYZnO6ew3sBZUnS0abKCbuopkc0JrIlFbznWC/fPH3iPFIMS8/IIkRxq1Jh9VVG60SmtsdaMQ==",
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/@volar/source-map/-/source-map-1.4.1.tgz",
|
||||
"integrity": "sha512-bZ46ad72dsbzuOWPUtJjBXkzSQzzSejuR3CT81+GvTEI2E994D8JPXzM3tl98zyCNnjgs4OkRyliImL1dvJ5BA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"muggle-string": "^0.2.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@volar/typescript": {
|
||||
"version": "1.3.0-alpha.0",
|
||||
"resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.3.0-alpha.0.tgz",
|
||||
"integrity": "sha512-5UItyW2cdH2mBLu4RrECRNJRgtvvzKrSCn2y3v/D61QwIDkGx4aeil6x8RFuUL5TFtV6QvVHXnsOHxNgd+sCow==",
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/@volar/typescript/-/typescript-1.4.1.tgz",
|
||||
"integrity": "sha512-phTy6p9yG6bgMIKQWEeDOi/aeT0njZsb1a/G1mrEuDsLmAn24Le4gDwSsGNhea6Uhu+3gdpUZn2PmZXa+WG2iQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@volar/language-core": "1.3.0-alpha.0"
|
||||
"@volar/language-core": "1.4.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@volar/vue-language-core": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-1.2.0.tgz",
|
||||
"integrity": "sha512-w7yEiaITh2WzKe6u8ZdeLKCUz43wdmY/OqAmsB/PGDvvhTcVhCJ6f0W/RprZL1IhqH8wALoWiwEh/Wer7ZviMQ==",
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmmirror.com/@volar/vue-language-core/-/vue-language-core-1.4.4.tgz",
|
||||
"integrity": "sha512-c3hL6un+CfoOlusGvpypcodmk9ke/ImrWIUc0GkgI+imoQpUGzgu3tEQWlPs604R7AhxeZwWUi8hQNfax0R/zA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@volar/language-core": "1.3.0-alpha.0",
|
||||
"@volar/source-map": "1.3.0-alpha.0",
|
||||
"@vue/compiler-dom": "^3.2.47",
|
||||
"@vue/compiler-sfc": "^3.2.47",
|
||||
"@vue/reactivity": "^3.2.47",
|
||||
"@vue/shared": "^3.2.47",
|
||||
"minimatch": "^6.1.6",
|
||||
"@volar/language-core": "1.4.1",
|
||||
"@volar/source-map": "1.4.1",
|
||||
"@vue/compiler-dom": "^3.2.0",
|
||||
"@vue/compiler-sfc": "^3.2.0",
|
||||
"@vue/reactivity": "^3.2.0",
|
||||
"@vue/shared": "^3.2.0",
|
||||
"minimatch": "^9.0.0",
|
||||
"muggle-string": "^0.2.2",
|
||||
"vue-template-compiler": "^2.7.14"
|
||||
}
|
||||
},
|
||||
"node_modules/@volar/vue-language-core/node_modules/minimatch": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-6.2.0.tgz",
|
||||
"integrity": "sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==",
|
||||
"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": ">=10"
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
}
|
||||
},
|
||||
"node_modules/@volar/vue-typescript": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-1.2.0.tgz",
|
||||
"integrity": "sha512-zjmRi9y3J1EkG+pfuHp8IbHmibihrKK485cfzsHjiuvJMGrpkWvlO5WVEk8oslMxxeGC5XwBFE9AOlvh378EPA==",
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmmirror.com/@volar/vue-typescript/-/vue-typescript-1.4.4.tgz",
|
||||
"integrity": "sha512-L61Fk15jlJw3QtIddD4cVE5jei5i6zbLJRiaEMYDDnUKB259/qUrdvnMfnZUFVyDwlevzdstjtaUyreeG/0nPQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@volar/typescript": "1.3.0-alpha.0",
|
||||
"@volar/vue-language-core": "1.2.0"
|
||||
"@volar/typescript": "1.4.1",
|
||||
"@volar/vue-language-core": "1.4.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
@@ -2868,27 +2874,71 @@
|
||||
"integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ=="
|
||||
},
|
||||
"node_modules/@vueuse/core": {
|
||||
"version": "9.13.0",
|
||||
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-9.13.0.tgz",
|
||||
"integrity": "sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==",
|
||||
"version": "10.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-10.1.0.tgz",
|
||||
"integrity": "sha512-3Znoa5m5RO+z4/C9w6DRaKTR3wCVJvD5rav8HTDGsr+7rOZRHtcgFJ8NcCs0ZvIpmev2kExTa311ns5j2RbzDQ==",
|
||||
"dependencies": {
|
||||
"@types/web-bluetooth": "^0.0.16",
|
||||
"@vueuse/metadata": "9.13.0",
|
||||
"@vueuse/shared": "9.13.0",
|
||||
"vue-demi": "*"
|
||||
"@vueuse/metadata": "10.1.0",
|
||||
"@vueuse/shared": "10.1.0",
|
||||
"vue-demi": ">=0.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/core/node_modules/vue-demi": {
|
||||
"version": "0.14.0",
|
||||
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.0.tgz",
|
||||
"integrity": "sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==",
|
||||
"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/@vueuse/metadata": {
|
||||
"version": "9.13.0",
|
||||
"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-9.13.0.tgz",
|
||||
"integrity": "sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ=="
|
||||
"version": "10.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-10.1.0.tgz",
|
||||
"integrity": "sha512-cM28HjDEw5FIrPE9rgSPFZvQ0ZYnOLAOr8hl1XM6tFl80U3WAR5ROdnAqiYybniwP5gt9MKKAJAqd/ab2aHkqg=="
|
||||
},
|
||||
"node_modules/@vueuse/shared": {
|
||||
"version": "9.13.0",
|
||||
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-9.13.0.tgz",
|
||||
"integrity": "sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==",
|
||||
"version": "10.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-10.1.0.tgz",
|
||||
"integrity": "sha512-2X52ogu12i9DkKOQ01yeb/BKg9UO87RNnpm5sXkQvyORlbq8ONS5l39MYkjkeVWWjdT0teJru7a2S41dmHmqjQ==",
|
||||
"dependencies": {
|
||||
"vue-demi": "*"
|
||||
"vue-demi": ">=0.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/shared/node_modules/vue-demi": {
|
||||
"version": "0.14.0",
|
||||
"resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.0.tgz",
|
||||
"integrity": "sha512-gt58r2ogsNQeVoQ3EhoUAvUsH9xviydl0dWJj7dabBC/2L4uBId7ujtCwDRD0JhkGsV1i0CtfLAeyYKBht9oWg==",
|
||||
"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/@wangeditor/basic-modules": {
|
||||
@@ -4485,8 +4535,6 @@
|
||||
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"yallist": "^4.0.0"
|
||||
},
|
||||
@@ -4525,9 +4573,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/markdown-it-shiki": {
|
||||
"version": "0.8.0",
|
||||
"resolved": "https://registry.npmmirror.com/markdown-it-shiki/-/markdown-it-shiki-0.8.0.tgz",
|
||||
"integrity": "sha512-RsMhQPFnQlXIlTdu94cYjCKeX3G3JmAijICB1BuoIZn12HEWIGGF970tytOq1404ioM3mXkETjXtBu7D73BzWQ==",
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmmirror.com/markdown-it-shiki/-/markdown-it-shiki-0.8.1.tgz",
|
||||
"integrity": "sha512-x3R9nxmOMGai+ZWNL+KpiA6f39xplB7ssyeOrptwlMVPRSMVBnKFi66acIqqbUjK2o8caH48B+sWwL0/8ljAOA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"shiki": "^0.14.1",
|
||||
@@ -4926,9 +4974,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/pinia": {
|
||||
"version": "2.0.34",
|
||||
"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.34.tgz",
|
||||
"integrity": "sha512-cgOoGUiyqX0SSgX8XelK9+Ri4XA2/YyNtgjogwfzIx1g7iZTaZPxm7/bZYMCLU2qHRiHhxG7SuQO0eBacFNc2Q==",
|
||||
"version": "2.0.35",
|
||||
"resolved": "https://registry.npmmirror.com/pinia/-/pinia-2.0.35.tgz",
|
||||
"integrity": "sha512-P1IKKQWhxGXiiZ3atOaNI75bYlFUbRxtJdhPLX059Z7+b9Z04rnTZdSY8Aph1LA+/4QEMAYHsTQ638Wfe+6K5g==",
|
||||
"dependencies": {
|
||||
"@vue/devtools-api": "^6.5.0",
|
||||
"vue-demi": "*"
|
||||
@@ -5240,8 +5288,6 @@
|
||||
"resolved": "https://registry.npmmirror.com/semver/-/semver-7.3.8.tgz",
|
||||
"integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"lru-cache": "^6.0.0"
|
||||
},
|
||||
@@ -5496,9 +5542,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/terser": {
|
||||
"version": "5.16.9",
|
||||
"resolved": "https://registry.npmmirror.com/terser/-/terser-5.16.9.tgz",
|
||||
"integrity": "sha512-HPa/FdTB9XGI2H1/keLFZHxl6WNvAI4YalHGtDQTlMnJcoqSab1UwL4l1hGEhs6/GmLHBZIg/YgB++jcbzoOEg==",
|
||||
"version": "5.17.1",
|
||||
"resolved": "https://registry.npmmirror.com/terser/-/terser-5.17.1.tgz",
|
||||
"integrity": "sha512-hVl35zClmpisy6oaoKALOpS0rDYLxRFLHhRuDlEGTKey9qHjS1w9GMORjuwIMt70Wan4lwsLYyWDVnWgF+KUEw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/source-map": "^0.3.2",
|
||||
@@ -5689,17 +5735,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/unplugin-auto-import": {
|
||||
"version": "0.15.2",
|
||||
"resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.15.2.tgz",
|
||||
"integrity": "sha512-Wivfu+xccgvEZG8QtZcIvt6napfX9wyOFqM//7FHOtev8+k+dp3ykiqsEl6TODgHmqTTBeQX4Ah1JvRgUNjlkg==",
|
||||
"version": "0.15.3",
|
||||
"resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.15.3.tgz",
|
||||
"integrity": "sha512-RLT8SqbPn4bT7yBshZId0uPSofKWnwr66RyDaxWaFb/+f7OTDOWAsVNz+hOQLBWSjvbekr2xZY9ccS8TDHJbCQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@antfu/utils": "^0.7.2",
|
||||
"@rollup/pluginutils": "^5.0.2",
|
||||
"local-pkg": "^0.4.3",
|
||||
"magic-string": "^0.30.0",
|
||||
"minimatch": "^7.4.3",
|
||||
"unimport": "^3.0.3",
|
||||
"minimatch": "^9.0.0",
|
||||
"unimport": "^3.0.6",
|
||||
"unplugin": "^1.3.1"
|
||||
},
|
||||
"engines": {
|
||||
@@ -5730,10 +5776,22 @@
|
||||
"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.4",
|
||||
"resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.0.4.tgz",
|
||||
"integrity": "sha512-eoof/HLiNJcIkVpnqc7sJbzKSLx39J6xTaP7E4ElgVQKeq2t9fPTkvJKcA55IJTaRPkEkDq8kcc/IZPmrypnFg==",
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.0.6.tgz",
|
||||
"integrity": "sha512-GYxGJ1Bri1oqx8VFDjdgooGzeK7jBk3bvhXmamTIpu3nONOcUMGwZbX7X0L5RA7OWMXpR4vzpSQP7pXUzJg1/Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@rollup/pluginutils": "^5.0.2",
|
||||
@@ -5880,15 +5938,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmmirror.com/vite/-/vite-4.2.1.tgz",
|
||||
"integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==",
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmmirror.com/vite/-/vite-4.3.1.tgz",
|
||||
"integrity": "sha512-EPmfPLAI79Z/RofuMvkIS0Yr091T2ReUoXQqc5ppBX/sjFRhHKiPPF/R46cTdoci/XgeQpB23diiJxq5w30vdg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.17.5",
|
||||
"postcss": "^8.4.21",
|
||||
"resolve": "^1.22.1",
|
||||
"rollup": "^3.18.0"
|
||||
"rollup": "^3.20.2"
|
||||
},
|
||||
"bin": {
|
||||
"vite": "bin/vite.js"
|
||||
@@ -5929,15 +5986,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vite-plugin-vue-markdown": {
|
||||
"version": "0.22.4",
|
||||
"resolved": "https://registry.npmmirror.com/vite-plugin-vue-markdown/-/vite-plugin-vue-markdown-0.22.4.tgz",
|
||||
"integrity": "sha512-+kDzqGI5Lq0Wa6M4EJtV7cqOIHgGp6g4jcazXljQKLl9Og4fRs6FuGAPa2HiJ44Z9es85LAPiPbTjwrZEGEUKA==",
|
||||
"version": "0.22.6",
|
||||
"resolved": "https://registry.npmmirror.com/vite-plugin-vue-markdown/-/vite-plugin-vue-markdown-0.22.6.tgz",
|
||||
"integrity": "sha512-BB0/yYoRO+4hceFZRgU/iAOpgklFvo/eHLapOkavIoDkP0jeoQubOMTEF8K4FuYRX9jaN5WcP2TrfhUgc7RuUg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@antfu/utils": "^0.7.2",
|
||||
"@mdit-vue/plugin-component": "^0.11.2",
|
||||
"@mdit-vue/plugin-frontmatter": "^0.11.1",
|
||||
"@mdit-vue/types": "^0.11.0",
|
||||
"@mdit-vue/plugin-component": "^0.12.0",
|
||||
"@mdit-vue/plugin-frontmatter": "^0.12.0",
|
||||
"@mdit-vue/types": "^0.12.0",
|
||||
"@rollup/pluginutils": "^5.0.2",
|
||||
"@types/markdown-it": "^12.2.3",
|
||||
"markdown-it": "^13.0.1"
|
||||
@@ -6049,13 +6106,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vue-tsc": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.2.0.tgz",
|
||||
"integrity": "sha512-rIlzqdrhyPYyLG9zxsVRa+JEseeS9s8F2BbVVVWRRsTZvJO2BbhLEb2HW3MY+DFma0378tnIqs+vfTzbcQtRFw==",
|
||||
"version": "1.4.4",
|
||||
"resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-1.4.4.tgz",
|
||||
"integrity": "sha512-2XsCjF2mLo6gwOVcOpngwJkP8GzYQjNh20A+Pr2FGdsWzr9jjXJ0k08/DfcslfncsuCrTrnWtb4KEL3gcDtlNA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@volar/vue-language-core": "1.2.0",
|
||||
"@volar/vue-typescript": "1.2.0"
|
||||
"@volar/vue-language-core": "1.4.4",
|
||||
"@volar/vue-typescript": "1.4.4",
|
||||
"semver": "^7.3.8"
|
||||
},
|
||||
"bin": {
|
||||
"vue-tsc": "bin/vue-tsc.js"
|
||||
@@ -6125,9 +6183,7 @@
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"peer": true
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/yocto-queue": {
|
||||
"version": "0.1.0",
|
||||
|
||||
18
package.json
18
package.json
@@ -13,7 +13,7 @@
|
||||
"@codemirror/lang-cpp": "^6.0.2",
|
||||
"@codemirror/lang-python": "^6.1.2",
|
||||
"@element-plus/icons-vue": "^2.1.0",
|
||||
"@vueuse/core": "^9.13.0",
|
||||
"@vueuse/core": "^10.1.0",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||
"axios": "1.3.5",
|
||||
@@ -25,7 +25,7 @@
|
||||
"naive-ui": "^2.34.3",
|
||||
"normalize.css": "^8.0.1",
|
||||
"party-js": "^2.2.0",
|
||||
"pinia": "^2.0.34",
|
||||
"pinia": "^2.0.35",
|
||||
"vue": "^3.2.47",
|
||||
"vue-chartjs": "^5.2.0",
|
||||
"vue-codemirror": "^6.1.1",
|
||||
@@ -33,18 +33,18 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@iconify-json/ep": "^1.1.10",
|
||||
"@types/node": "^18.15.11",
|
||||
"@types/node": "^18.15.13",
|
||||
"@vitejs/plugin-legacy": "^4.0.2",
|
||||
"@vitejs/plugin-vue": "^4.1.0",
|
||||
"markdown-it-shiki": "^0.8.0",
|
||||
"markdown-it-shiki": "^0.8.1",
|
||||
"prettier": "^2.8.7",
|
||||
"terser": "^5.16.9",
|
||||
"terser": "^5.17.1",
|
||||
"typescript": "^5.0.4",
|
||||
"unplugin-auto-import": "^0.15.2",
|
||||
"unplugin-auto-import": "^0.15.3",
|
||||
"unplugin-icons": "^0.16.1",
|
||||
"unplugin-vue-components": "^0.24.1",
|
||||
"vite": "^4.2.1",
|
||||
"vite-plugin-vue-markdown": "^0.22.4",
|
||||
"vue-tsc": "^1.2.0"
|
||||
"vite": "^4.3.1",
|
||||
"vite-plugin-vue-markdown": "^0.22.6",
|
||||
"vue-tsc": "^1.4.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,9 +11,14 @@ import {
|
||||
import { Server } from "~/utils/types"
|
||||
import { parseTime } from "~/utils/functions"
|
||||
|
||||
interface Testcase {
|
||||
id: string
|
||||
create_time: string
|
||||
}
|
||||
|
||||
const message = useMessage()
|
||||
|
||||
const columns: DataTableColumn<any>[] = [
|
||||
const testcaseColumns: DataTableColumn<Testcase>[] = [
|
||||
{ title: "上次修改时间", key: "create_time" },
|
||||
{ title: "ID", key: "id" },
|
||||
{
|
||||
@@ -68,7 +73,7 @@ const serverColumns: DataTableColumn<Server>[] = [
|
||||
render: (row) => row.memory_usage + "%",
|
||||
width: 80,
|
||||
},
|
||||
{ title: "IP", key: "ip", width: 100 },
|
||||
{ title: "IP", key: "ip", width: 140 },
|
||||
{ title: "判题机版本", key: "judger_version" },
|
||||
{ title: "服务器 URL", key: "service_url" },
|
||||
{
|
||||
@@ -85,9 +90,12 @@ const serverColumns: DataTableColumn<Server>[] = [
|
||||
},
|
||||
]
|
||||
|
||||
const testcases = ref([])
|
||||
const testcases = ref<Testcase[]>([])
|
||||
const token = ref("")
|
||||
const servers = ref<Server[]>([])
|
||||
const abnormalServers = computed(() =>
|
||||
servers.value.filter((item) => item.status === "abnormal")
|
||||
)
|
||||
|
||||
const websiteConfig = reactive({
|
||||
website_base_url: "https://oj.hyyz.izhai.net",
|
||||
@@ -134,6 +142,14 @@ async function delJudgeServer(hostname: string) {
|
||||
message.success("删除成功")
|
||||
}
|
||||
|
||||
async function deleteAbnormalServers() {
|
||||
const dels = abnormalServers.value.map((item) =>
|
||||
deleteJudgeServer(item.hostname)
|
||||
)
|
||||
await Promise.all(dels)
|
||||
message.success("删除成功")
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getWebsiteConfig()
|
||||
getTestcases()
|
||||
@@ -178,8 +194,21 @@ onMounted(() => {
|
||||
</n-space>
|
||||
</n-space>
|
||||
</n-card>
|
||||
<n-card class="box" title="判题服务器">
|
||||
<div class="serverToken">
|
||||
<n-card class="box">
|
||||
<template #header>
|
||||
<n-space align="center">
|
||||
判题服务器
|
||||
<n-button
|
||||
v-if="abnormalServers.length"
|
||||
size="small"
|
||||
type="warning"
|
||||
@click="deleteAbnormalServers"
|
||||
>
|
||||
删除无效服务器
|
||||
</n-button>
|
||||
</n-space>
|
||||
</template>
|
||||
<div class="box">
|
||||
接口凭证 <n-tag size="small">{{ token }}</n-tag>
|
||||
</div>
|
||||
<n-data-table
|
||||
@@ -190,16 +219,11 @@ onMounted(() => {
|
||||
:data="servers"
|
||||
/>
|
||||
</n-card>
|
||||
<n-card class="box">
|
||||
<n-card class="box" v-if="testcases.length">
|
||||
<template #header>
|
||||
<n-space align="center">
|
||||
无效的测试用例
|
||||
<n-button
|
||||
v-if="testcases.length"
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="() => deleteTestcase()"
|
||||
>
|
||||
<n-button size="small" type="warning" @click="() => deleteTestcase()">
|
||||
全部删除
|
||||
</n-button>
|
||||
</n-space>
|
||||
@@ -208,7 +232,7 @@ onMounted(() => {
|
||||
striped
|
||||
size="small"
|
||||
class="table"
|
||||
:columns="columns"
|
||||
:columns="testcaseColumns"
|
||||
:data="testcases"
|
||||
/>
|
||||
</n-card>
|
||||
@@ -226,8 +250,4 @@ onMounted(() => {
|
||||
.table {
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
.serverToken {
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
</style>
|
||||
|
||||
9
src/auto-imports.d.ts
vendored
9
src/auto-imports.d.ts
vendored
@@ -21,7 +21,9 @@ declare global {
|
||||
const createInjectionState: typeof import('@vueuse/core')['createInjectionState']
|
||||
const createPinia: typeof import('pinia')['createPinia']
|
||||
const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn']
|
||||
const createReusableTemplate: typeof import('@vueuse/core')['createReusableTemplate']
|
||||
const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable']
|
||||
const createTemplatePromise: typeof import('@vueuse/core')['createTemplatePromise']
|
||||
const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn']
|
||||
const customRef: typeof import('vue')['customRef']
|
||||
const debouncedRef: typeof import('@vueuse/core')['debouncedRef']
|
||||
@@ -113,11 +115,14 @@ declare global {
|
||||
const unrefElement: typeof import('@vueuse/core')['unrefElement']
|
||||
const until: typeof import('@vueuse/core')['until']
|
||||
const useActiveElement: typeof import('@vueuse/core')['useActiveElement']
|
||||
const useAnimate: typeof import('@vueuse/core')['useAnimate']
|
||||
const useArrayDifference: typeof import('@vueuse/core')['useArrayDifference']
|
||||
const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery']
|
||||
const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter']
|
||||
const useArrayFind: typeof import('@vueuse/core')['useArrayFind']
|
||||
const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex']
|
||||
const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast']
|
||||
const useArrayIncludes: typeof import('@vueuse/core')['useArrayIncludes']
|
||||
const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin']
|
||||
const useArrayMap: typeof import('@vueuse/core')['useArrayMap']
|
||||
const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce']
|
||||
@@ -208,6 +213,8 @@ declare global {
|
||||
const useOnline: typeof import('@vueuse/core')['useOnline']
|
||||
const usePageLeave: typeof import('@vueuse/core')['usePageLeave']
|
||||
const useParallax: typeof import('@vueuse/core')['useParallax']
|
||||
const useParentElement: typeof import('@vueuse/core')['useParentElement']
|
||||
const usePerformanceObserver: typeof import('@vueuse/core')['usePerformanceObserver']
|
||||
const usePermission: typeof import('@vueuse/core')['usePermission']
|
||||
const usePointer: typeof import('@vueuse/core')['usePointer']
|
||||
const usePointerLock: typeof import('@vueuse/core')['usePointerLock']
|
||||
@@ -275,8 +282,10 @@ declare global {
|
||||
const watchArray: typeof import('@vueuse/core')['watchArray']
|
||||
const watchAtMost: typeof import('@vueuse/core')['watchAtMost']
|
||||
const watchDebounced: typeof import('@vueuse/core')['watchDebounced']
|
||||
const watchDeep: typeof import('@vueuse/core')['watchDeep']
|
||||
const watchEffect: typeof import('vue')['watchEffect']
|
||||
const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable']
|
||||
const watchImmediate: typeof import('@vueuse/core')['watchImmediate']
|
||||
const watchOnce: typeof import('@vueuse/core')['watchOnce']
|
||||
const watchPausable: typeof import('@vueuse/core')['watchPausable']
|
||||
const watchPostEffect: typeof import('vue')['watchPostEffect']
|
||||
|
||||
Reference in New Issue
Block a user