fix: 修复控制台接口
This commit is contained in:
parent
23e3e37f70
commit
5c5ee575d0
2
node_modules/.cache/babel-loader/4225dd8dfd5ec597effe61050b940c6d.json
generated
vendored
2
node_modules/.cache/babel-loader/4225dd8dfd5ec597effe61050b940c6d.json
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/.cache/babel-loader/69134d78f1d594e9df5c68bbdb4ca32f.json
generated
vendored
2
node_modules/.cache/babel-loader/69134d78f1d594e9df5c68bbdb4ca32f.json
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/.cache/babel-loader/8f3e6d2e4d37494f5fd9b7d119a9d775.json
generated
vendored
2
node_modules/.cache/babel-loader/8f3e6d2e4d37494f5fd9b7d119a9d775.json
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/.cache/babel-loader/bb334ee97e9a5bd27f7a7739b5337918.json
generated
vendored
2
node_modules/.cache/babel-loader/bb334ee97e9a5bd27f7a7739b5337918.json
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/.cache/babel-loader/d3c1f297bf4753d4b38cce2c5f7a5727.json
generated
vendored
2
node_modules/.cache/babel-loader/d3c1f297bf4753d4b38cce2c5f7a5727.json
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/.cache/vue-loader/0e05823e540dcfdf0657428ed50617f6.json
generated
vendored
2
node_modules/.cache/vue-loader/0e05823e540dcfdf0657428ed50617f6.json
generated
vendored
@ -1 +1 @@
|
||||
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/user/Console.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/user/Console.vue","mtime":1742646402778},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL0NvbnNvbGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFlZGJhNjhkJnNjb3BlZD10cnVlIgppbXBvcnQgc2NyaXB0IGZyb20gIi4vQ29uc29sZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmV4cG9ydCAqIGZyb20gIi4vQ29uc29sZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmltcG9ydCBzdHlsZTAgZnJvbSAiLi9Db25zb2xlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTFlZGJhNjhkJmxhbmc9Y3NzIgppbXBvcnQgc3R5bGUxIGZyb20gIi4vQ29uc29sZS52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MSZpZD0xZWRiYTY4ZCZzY29wZWQ9dHJ1ZSZsYW5nPWNzcyIKaW1wb3J0IHN0eWxlMiBmcm9tICIuL0NvbnNvbGUudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTImaWQ9MWVkYmE2OGQmc2NvcGVkPXRydWUmbGFuZz1jc3MiCgoKLyogbm9ybWFsaXplIGNvbXBvbmVudCAqLwppbXBvcnQgbm9ybWFsaXplciBmcm9tICIhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qcyIKdmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoCiAgc2NyaXB0LAogIHJlbmRlciwKICBzdGF0aWNSZW5kZXJGbnMsCiAgZmFsc2UsCiAgbnVsbCwKICAiMWVkYmE2OGQiLAogIG51bGwKICAKKQoKLyogY3VzdG9tIGJsb2NrcyAqLwppbXBvcnQgYmxvY2swIGZyb20gIi4vQ29uc29sZS52dWU/dnVlJnR5cGU9Y3VzdG9tJmluZGV4PTAmYmxvY2tUeXBlPWRpdiZjbGFzcz1ib3hhbGwmc3R5bGU9aGVpZ2h0JTNBJTIwNHJlbSIKaWYgKHR5cGVvZiBibG9jazAgPT09ICdmdW5jdGlvbicpIGJsb2NrMChjb21wb25lbnQpCmltcG9ydCBibG9jazEgZnJvbSAiLi9Db25zb2xlLnZ1ZT92dWUmdHlwZT1jdXN0b20maW5kZXg9MSZibG9ja1R5cGU9bGkiCmlmICh0eXBlb2YgYmxvY2sxID09PSAnZnVuY3Rpb24nKSBibG9jazEoY29tcG9uZW50KQppbXBvcnQgYmxvY2syIGZyb20gIi4vQ29uc29sZS52dWU/dnVlJnR5cGU9Y3VzdG9tJmluZGV4PTImYmxvY2tUeXBlPWxpIgppZiAodHlwZW9mIGJsb2NrMiA9PT0gJ2Z1bmN0aW9uJykgYmxvY2syKGNvbXBvbmVudCkKCi8qIGhvdCByZWxvYWQgKi8KaWYgKG1vZHVsZS5ob3QpIHsKICB2YXIgYXBpID0gcmVxdWlyZSgiL1VzZXJzL3NodWd1YW5nL0Rlc2t0b3Av5q+V6K6+L0NvZGVNYXN0ZXIvQ29kZU1hc3Rlci9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanMiKQogIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKQogIGlmIChhcGkuY29tcGF0aWJsZSkgewogICAgbW9kdWxlLmhvdC5hY2NlcHQoKQogICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnMWVkYmE2OGQnKSkgewogICAgICBhcGkuY3JlYXRlUmVjb3JkKCcxZWRiYTY4ZCcsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfSBlbHNlIHsKICAgICAgYXBpLnJlbG9hZCgnMWVkYmE2OGQnLCBjb21wb25lbnQub3B0aW9ucykKICAgIH0KICAgIG1vZHVsZS5ob3QuYWNjZXB0KCIuL0NvbnNvbGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFlZGJhNjhkJnNjb3BlZD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICBhcGkucmVyZW5kZXIoJzFlZGJhNjhkJywgewogICAgICAgIHJlbmRlcjogcmVuZGVyLAogICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zCiAgICAgIH0pCiAgICB9KQogIH0KfQpjb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSAic3JjL3ZpZXdzL3VzZXIvQ29uc29sZS52dWUiCmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRz"}]}
|
||||
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/user/Console.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/user/Console.vue","mtime":1747403482892},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL0NvbnNvbGUudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTFlZGJhNjhkJnNjb3BlZD10cnVlIgppbXBvcnQgc2NyaXB0IGZyb20gIi4vQ29uc29sZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmV4cG9ydCAqIGZyb20gIi4vQ29uc29sZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anMiCmltcG9ydCBzdHlsZTAgZnJvbSAiLi9Db25zb2xlLnZ1ZT92dWUmdHlwZT1zdHlsZSZpbmRleD0wJmlkPTFlZGJhNjhkJmxhbmc9bGVzcyZzY29wZWQ9dHJ1ZSIKCgovKiBub3JtYWxpemUgY29tcG9uZW50ICovCmltcG9ydCBub3JtYWxpemVyIGZyb20gIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvdnVlLWxvYWRlci9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzIgp2YXIgY29tcG9uZW50ID0gbm9ybWFsaXplcigKICBzY3JpcHQsCiAgcmVuZGVyLAogIHN0YXRpY1JlbmRlckZucywKICBmYWxzZSwKICBudWxsLAogICIxZWRiYTY4ZCIsCiAgbnVsbAogIAopCgovKiBob3QgcmVsb2FkICovCmlmIChtb2R1bGUuaG90KSB7CiAgdmFyIGFwaSA9IHJlcXVpcmUoIi9Vc2Vycy9zaHVndWFuZy9EZXNrdG9wL+avleiuvi9Db2RlTWFzdGVyL0NvZGVNYXN0ZXIvbm9kZV9tb2R1bGVzL3Z1ZS1ob3QtcmVsb2FkLWFwaS9kaXN0L2luZGV4LmpzIikKICBhcGkuaW5zdGFsbChyZXF1aXJlKCd2dWUnKSkKICBpZiAoYXBpLmNvbXBhdGlibGUpIHsKICAgIG1vZHVsZS5ob3QuYWNjZXB0KCkKICAgIGlmICghYXBpLmlzUmVjb3JkZWQoJzFlZGJhNjhkJykpIHsKICAgICAgYXBpLmNyZWF0ZVJlY29yZCgnMWVkYmE2OGQnLCBjb21wb25lbnQub3B0aW9ucykKICAgIH0gZWxzZSB7CiAgICAgIGFwaS5yZWxvYWQoJzFlZGJhNjhkJywgY29tcG9uZW50Lm9wdGlvbnMpCiAgICB9CiAgICBtb2R1bGUuaG90LmFjY2VwdCgiLi9Db25zb2xlLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0xZWRiYTY4ZCZzY29wZWQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgYXBpLnJlcmVuZGVyKCcxZWRiYTY4ZCcsIHsKICAgICAgICByZW5kZXI6IHJlbmRlciwKICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucwogICAgICB9KQogICAgfSkKICB9Cn0KY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gInNyYy92aWV3cy91c2VyL0NvbnNvbGUudnVlIgpleHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cw=="}]}
|
2
node_modules/.cache/vue-loader/3c2918d55d1ecb17ea5e9c83314928a9.json
generated
vendored
2
node_modules/.cache/vue-loader/3c2918d55d1ecb17ea5e9c83314928a9.json
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/.cache/vue-loader/3e3f7357bcb83761dc64f2abe0bef3cd.json
generated
vendored
2
node_modules/.cache/vue-loader/3e3f7357bcb83761dc64f2abe0bef3cd.json
generated
vendored
@ -1 +1 @@
|
||||
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/Index.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/Index.vue","mtime":1742646402775},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL0luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yMzU0MzYwOCZzY29wZWQ9dHJ1ZSIKaW1wb3J0IHNjcmlwdCBmcm9tICIuL0luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPWpzIgpleHBvcnQgKiBmcm9tICIuL0luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPWpzIgppbXBvcnQgc3R5bGUwIGZyb20gIi4vSW5kZXgudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjM1NDM2MDgmc2NvcGVkPXRydWUmbGFuZz1jc3MiCgoKLyogbm9ybWFsaXplIGNvbXBvbmVudCAqLwppbXBvcnQgbm9ybWFsaXplciBmcm9tICIhLi4vLi4vbm9kZV9tb2R1bGVzL3Z1ZS1sb2FkZXIvbGliL3J1bnRpbWUvY29tcG9uZW50Tm9ybWFsaXplci5qcyIKdmFyIGNvbXBvbmVudCA9IG5vcm1hbGl6ZXIoCiAgc2NyaXB0LAogIHJlbmRlciwKICBzdGF0aWNSZW5kZXJGbnMsCiAgZmFsc2UsCiAgbnVsbCwKICAiMjM1NDM2MDgiLAogIG51bGwKICAKKQoKLyogaG90IHJlbG9hZCAqLwppZiAobW9kdWxlLmhvdCkgewogIHZhciBhcGkgPSByZXF1aXJlKCIvVXNlcnMvc2h1Z3VhbmcvRGVza3RvcC/mr5Xorr4vQ29kZU1hc3Rlci9Db2RlTWFzdGVyL25vZGVfbW9kdWxlcy92dWUtaG90LXJlbG9hZC1hcGkvZGlzdC9pbmRleC5qcyIpCiAgYXBpLmluc3RhbGwocmVxdWlyZSgndnVlJykpCiAgaWYgKGFwaS5jb21wYXRpYmxlKSB7CiAgICBtb2R1bGUuaG90LmFjY2VwdCgpCiAgICBpZiAoIWFwaS5pc1JlY29yZGVkKCcyMzU0MzYwOCcpKSB7CiAgICAgIGFwaS5jcmVhdGVSZWNvcmQoJzIzNTQzNjA4JywgY29tcG9uZW50Lm9wdGlvbnMpCiAgICB9IGVsc2UgewogICAgICBhcGkucmVsb2FkKCcyMzU0MzYwOCcsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfQogICAgbW9kdWxlLmhvdC5hY2NlcHQoIi4vSW5kZXgudnVlP3Z1ZSZ0eXBlPXRlbXBsYXRlJmlkPTIzNTQzNjA4JnNjb3BlZD10cnVlIiwgZnVuY3Rpb24gKCkgewogICAgICBhcGkucmVyZW5kZXIoJzIzNTQzNjA4JywgewogICAgICAgIHJlbmRlcjogcmVuZGVyLAogICAgICAgIHN0YXRpY1JlbmRlckZuczogc3RhdGljUmVuZGVyRm5zCiAgICAgIH0pCiAgICB9KQogIH0KfQpjb21wb25lbnQub3B0aW9ucy5fX2ZpbGUgPSAic3JjL3ZpZXdzL0luZGV4LnZ1ZSIKZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHM="}]}
|
||||
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/Index.vue","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/Index.vue","mtime":1747401845585},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tICIuL0luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yMzU0MzYwOCZzY29wZWQ9dHJ1ZSIKaW1wb3J0IHNjcmlwdCBmcm9tICIuL0luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPWpzIgpleHBvcnQgKiBmcm9tICIuL0luZGV4LnZ1ZT92dWUmdHlwZT1zY3JpcHQmc2V0dXA9dHJ1ZSZsYW5nPWpzIgppbXBvcnQgc3R5bGUwIGZyb20gIi4vSW5kZXgudnVlP3Z1ZSZ0eXBlPXN0eWxlJmluZGV4PTAmaWQ9MjM1NDM2MDgmc2NvcGVkPXRydWUmbGFuZz1sZXNzIgoKCi8qIG5vcm1hbGl6ZSBjb21wb25lbnQgKi8KaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSAiIS4uLy4uL25vZGVfbW9kdWxlcy92dWUtbG9hZGVyL2xpYi9ydW50aW1lL2NvbXBvbmVudE5vcm1hbGl6ZXIuanMiCnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKAogIHNjcmlwdCwKICByZW5kZXIsCiAgc3RhdGljUmVuZGVyRm5zLAogIGZhbHNlLAogIG51bGwsCiAgIjIzNTQzNjA4IiwKICBudWxsCiAgCikKCi8qIGhvdCByZWxvYWQgKi8KaWYgKG1vZHVsZS5ob3QpIHsKICB2YXIgYXBpID0gcmVxdWlyZSgiL1VzZXJzL3NodWd1YW5nL0Rlc2t0b3Av5q+V6K6+L0NvZGVNYXN0ZXIvQ29kZU1hc3Rlci9ub2RlX21vZHVsZXMvdnVlLWhvdC1yZWxvYWQtYXBpL2Rpc3QvaW5kZXguanMiKQogIGFwaS5pbnN0YWxsKHJlcXVpcmUoJ3Z1ZScpKQogIGlmIChhcGkuY29tcGF0aWJsZSkgewogICAgbW9kdWxlLmhvdC5hY2NlcHQoKQogICAgaWYgKCFhcGkuaXNSZWNvcmRlZCgnMjM1NDM2MDgnKSkgewogICAgICBhcGkuY3JlYXRlUmVjb3JkKCcyMzU0MzYwOCcsIGNvbXBvbmVudC5vcHRpb25zKQogICAgfSBlbHNlIHsKICAgICAgYXBpLnJlbG9hZCgnMjM1NDM2MDgnLCBjb21wb25lbnQub3B0aW9ucykKICAgIH0KICAgIG1vZHVsZS5ob3QuYWNjZXB0KCIuL0luZGV4LnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD0yMzU0MzYwOCZzY29wZWQ9dHJ1ZSIsIGZ1bmN0aW9uICgpIHsKICAgICAgYXBpLnJlcmVuZGVyKCcyMzU0MzYwOCcsIHsKICAgICAgICByZW5kZXI6IHJlbmRlciwKICAgICAgICBzdGF0aWNSZW5kZXJGbnM6IHN0YXRpY1JlbmRlckZucwogICAgICB9KQogICAgfSkKICB9Cn0KY29tcG9uZW50Lm9wdGlvbnMuX19maWxlID0gInNyYy92aWV3cy9JbmRleC52dWUiCmV4cG9ydCBkZWZhdWx0IGNvbXBvbmVudC5leHBvcnRz"}]}
|
2
node_modules/.cache/vue-loader/73c907a8cb90cb64d669e0217bd1f072.json
generated
vendored
2
node_modules/.cache/vue-loader/73c907a8cb90cb64d669e0217bd1f072.json
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/.cache/vue-loader/cd133d8d32022f0804ca3afb83f41d06.json
generated
vendored
2
node_modules/.cache/vue-loader/cd133d8d32022f0804ca3afb83f41d06.json
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/.cache/vue-loader/d2338bbe77d94e53ddf0e50952492af7.json
generated
vendored
2
node_modules/.cache/vue-loader/d2338bbe77d94e53ddf0e50952492af7.json
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/.cache/vue-loader/d84aeb3ccd1f3848d9c5153e1a245efb.json
generated
vendored
2
node_modules/.cache/vue-loader/d84aeb3ccd1f3848d9c5153e1a245efb.json
generated
vendored
@ -1 +1 @@
|
||||
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/Index.vue?vue&type=template&id=23543608&scoped=true","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/Index.vue","mtime":1742646402775},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/loaders/templateLoader.js","mtime":1743264597097},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CiAgPGRpdj4KICA8ZGl2IGNsYXNzPSJiYWNrZ3JvdW5kIj4KICAgIDwhLS0g6IOM5pmvIFNWRyDlhYPntKAgLS0+CiAgICA8c3ZnCiAgICAgIGNsYXNzPSJiZy1sZWZ0IgogICAgICBoZWlnaHQ9IjkwdmgiCiAgICAgIHZpZXdCb3g9IjAgMCA5NjAgMTA4MCIKICAgICAgZmlsbD0ibm9uZSIKICAgICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICAgPgogICAgICA8IS0tIOecgeeVpSBTVkcg5YaF5a65IC0tPgogICAgPC9zdmc+CiAgICA8c3ZnCiAgICAgIGNsYXNzPSJiZy1yaWdodCIKICAgICAgaGVpZ2h0PSI5MHZoIgogICAgICB2aWV3Qm94PSIwIDAgOTYwIDEwODAiCiAgICAgIGZpbGw9Im5vbmUiCiAgICAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgID4KICAgICAgPCEtLSDnnIHnlaUgU1ZHIOWGheWuuSAtLT4KICAgIDwvc3ZnPgogIDwvZGl2PgogIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICA8IS0tIEhlYWRlciBTZWN0aW9uIC0tPgogICAgPGRpdiBjbGFzcz0iaGVhZGVyIj4KICAgICAgPGgxPuaZuuernuS6kei1my3moKHlm63nq57otZvnrqHnkIbns7vnu588L2gxPgogICAgICA8cD4KICAgICAgICDln7rkuo5WdWUgMuWSjFNwcmluZyBCb2905byA5Y+R77yM6ZuG5oiQ5LqG6Zi/6YeM5LqRT1NT44CBQW50IERlc2lnbiBWdWXjgIFFY2hhcnRz562J5aSa6aG55oqA5pyv77yM5Li65qCh5Zut56ue6LWb566h55CG5o+Q5L6b5LqG5LiA56uZ5byP6Kej5Yaz5pa55qGI44CCCiAgICAgIDwvcD4KICAgICAgPHJvdXRlci1saW5rIHRvPSIvcmFjZS9saXN0IiB0YXJnZXQ9Il9ibGFuayI+56uL5Y2z5L2T6aqMPC9yb3V0ZXItbGluaz4KICAgICAgPHJvdXRlci1saW5rIHRvPSIvcmFjZS9saXN0IiAgdGFyZ2V0PSJfYmxhbmsiPuiBlOezu+aIkeS7rDwvcm91dGVyLWxpbms+CiAgICA8L2Rpdj4KCiAgICA8IS0tIEZlYXR1cmVzIFNlY3Rpb24gLS0+CiAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlcyI+CiAgICAgIDxkaXYgY2xhc3M9ImZlYXR1cmUtY2FyZCIgdi1mb3I9ImZlYXR1cmUgaW4gZmVhdHVyZXMiIDprZXk9ImZlYXR1cmUudGl0bGUiPgogICAgICAgIDxoMz57eyBmZWF0dXJlLnRpdGxlIH19PC9oMz4KICAgICAgICA8cD57eyBmZWF0dXJlLmRlc2NyaXB0aW9uIH19PC9wPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gQ29udGFjdCBTZWN0aW9uIC0tPgogICAgPGRpdiBjbGFzcz0iY29udGFjdC1zZWN0aW9uIj4KICAgICAgPGgyPuWKoOWFpeaIkeS7rOeahOekvuWMujwvaDI+CiAgICAgIDxwPuaJq+aPj+S4i+aWueS6jOe7tOegge+8jOWKoOWFpeaZuuernuS6kei1m+S6pOa1gee+pO+8jOS6huino+abtOWkmuS/oeaBr+S4juaKgOacr+S6pOa1geOAgjwvcD4KICAgICAgPCEtLSA8aW1nIHNyYz0iaW1nL3dlY2hhdC1ncm91cC0zLmpwZWciIGFsdD0i5b6u5L+h576k5LqM57u056CBIiAvPiAtLT4KICAgIDwvZGl2PgogPCEtLSBGb290ZXIgU2VjdGlvbiAtLT4KICAgIDxkaXYgY2xhc3M9ImZvb3RlciI+wqkgMjAyMyDmmbrnq57kupHotZst5qCh5Zut56ue6LWb566h55CG57O757ufIOeJiOadg+aJgOaciTwvZGl2PgogIDwvZGl2Pgo8L2Rpdj4K"},null]}
|
||||
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/Index.vue?vue&type=template&id=23543608&scoped=true","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/Index.vue","mtime":1747401845585},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js","mtime":1743264596348},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/loaders/templateLoader.js","mtime":1743264597097},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js","mtime":1743264595665},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/vue-loader/lib/index.js","mtime":1743264596512}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CjxkaXYgY2xhc3M9ImluZGV4LXBhZ2UiPgogIDxkaXYgY2xhc3M9ImJhY2tncm91bmQiPgogICAgPGRpdiBjbGFzcz0iZ3JhZGllbnQtYmciPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icGFydGljbGVzIj48L2Rpdj4KICA8L2Rpdj4KICAKICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgogICAgPCEtLSBIZXJvIFNlY3Rpb24gLS0+CiAgICA8ZGl2IGNsYXNzPSJoZXJvLXNlY3Rpb24iPgogICAgICA8ZGl2IGNsYXNzPSJoZXJvLWNvbnRlbnQiPgogICAgICAgIDxoMSBjbGFzcz0iYW5pbWF0ZS10aXRsZSI+5pm656ue5LqR6LWbPC9oMT4KICAgICAgICA8aDIgY2xhc3M9ImFuaW1hdGUtc3VidGl0bGUiPuaWsOS4gOS7o+agoeWbreernui1m+euoeeQhuezu+e7nzwvaDI+CiAgICAgICAgPHAgY2xhc3M9ImFuaW1hdGUtdGV4dCI+CiAgICAgICAgICDln7rkuo5WdWUgMuWSjFNwcmluZyBCb2905byA5Y+R77yM6ZuG5oiQ5aSa6aG55YmN5rK/5oqA5pyv77yMCiAgICAgICAgICDmiZPpgKDmmbrog73ljJbnq57otZvnrqHnkIblubPlj7AKICAgICAgICA8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0iaGVyby1idXR0b25zIj4KICAgICAgICAgIDxyb3V0ZXItbGluayB0bz0iL3JhY2UvbGlzdCIgY2xhc3M9InByaW1hcnktYnRuIj4KICAgICAgICAgICAgPHNwYW4+56uL5Y2z5L2T6aqMPC9zcGFuPgogICAgICAgICAgICA8aSBjbGFzcz0iZmFzIGZhLWFycm93LXJpZ2h0Ij48L2k+CiAgICAgICAgICA8L3JvdXRlci1saW5rPgogICAgICAgICAgPHJvdXRlci1saW5rIHRvPSIvcmFjZS9saXN0IiBjbGFzcz0ic2Vjb25kYXJ5LWJ0biI+CiAgICAgICAgICAgIDxzcGFuPuS6huino+abtOWkmjwvc3Bhbj4KICAgICAgICAgIDwvcm91dGVyLWxpbms+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPCEtLSBGZWF0dXJlcyBHcmlkIC0tPgogICAgPGRpdiBjbGFzcz0iZmVhdHVyZXMtc2VjdGlvbiI+CiAgICAgIDxoMiBjbGFzcz0ic2VjdGlvbi10aXRsZSI+5qC45b+D54m55oCnPC9oMj4KICAgICAgPGRpdiBjbGFzcz0iZmVhdHVyZXMtZ3JpZCI+CiAgICAgICAgPGRpdiAKICAgICAgICAgIHYtZm9yPSJmZWF0dXJlIGluIGZlYXR1cmVzIiAKICAgICAgICAgIDprZXk9ImZlYXR1cmUudGl0bGUiIAogICAgICAgICAgY2xhc3M9ImZlYXR1cmUtY2FyZCIKICAgICAgICA+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJmZWF0dXJlLWljb24iPgogICAgICAgICAgICA8aSA6Y2xhc3M9ImZlYXR1cmUuaWNvbiI+PC9pPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8aDM+e3sgZmVhdHVyZS50aXRsZSB9fTwvaDM+CiAgICAgICAgICA8cD57eyBmZWF0dXJlLmRlc2NyaXB0aW9uIH19PC9wPgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKICAgIDwhLS0gQ29udGFjdCBTZWN0aW9uIC0tPgogICAgPGRpdiBjbGFzcz0iY29udGFjdC1zZWN0aW9uIj4KICAgICAgPGRpdiBjbGFzcz0iY29udGFjdC1jb250ZW50Ij4KICAgICAgICA8aDI+5Yqg5YWl5oiR5LusPC9oMj4KICAgICAgICA8cD7miavmj4/kuIvmlrnkuoznu7TnoIHvvIzliqDlhaXmioDmnK/kuqTmtYHnvqQ8L3A+CiAgICAgICAgPGRpdiBjbGFzcz0icXItY29kZSI+CiAgICAgICAgICA8IS0tIOS6jOe7tOeggeWNoOS9jSAtLT4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+Cg=="},null]}
|
2
node_modules/.cache/vue-loader/fb7f4b253e1eb37fe9385fc1838f0658.json
generated
vendored
2
node_modules/.cache/vue-loader/fb7f4b253e1eb37fe9385fc1838f0658.json
generated
vendored
File diff suppressed because one or more lines are too long
@ -305,7 +305,7 @@ export function deleteList(data) {
|
||||
|
||||
});
|
||||
}
|
||||
// 查看所有资料√
|
||||
// 查看所有资料
|
||||
export const Allinformation = params => request.get('/api/information/getAll', { params });
|
||||
// 录制成绩
|
||||
export function RegistrationAdd(data) {
|
||||
@ -335,6 +335,8 @@ export const getWinInfo = params => request.get('/registration/getWinInfo', { pa
|
||||
export const getCounts = params => request.get('/registration/getCount', { params });
|
||||
// 根据参赛类型获取参赛人数
|
||||
export const getCountByCompetitionType = params => request.get('/registration/getCountByCompetitionType', { params });
|
||||
|
||||
export const getCountTotal = params => request.get('/counts/statistics', { params });
|
||||
// 根据获奖等级获取参赛人数
|
||||
export const getWinCountByLevel = params => request.get('/registration/getWinCountByLevel', { params });
|
||||
// 添加好友
|
||||
|
@ -1,220 +1,198 @@
|
||||
|
||||
import Vue from 'vue'; // 引入 Vue.js
|
||||
import VueRouter from 'vue-router'; // 引入 Vue Router
|
||||
import GlobalLayout from '@/layouts/GlobalLayout'; // 引入全局布局组件
|
||||
// import routes from './routes';
|
||||
import Vue from 'vue';
|
||||
import VueRouter from 'vue-router';
|
||||
import GlobalLayout from '@/layouts/GlobalLayout';
|
||||
|
||||
Vue.use(VueRouter); // 使用 Vue Router
|
||||
Vue.use(VueRouter);
|
||||
|
||||
|
||||
// 假设这是用户的权限级别,从用户的会话或配置中获取
|
||||
const usersData = JSON.parse(localStorage.getItem("users"));
|
||||
const userPrivileges = usersData && usersData.userPrivileges ? parseInt(usersData.userPrivileges) : 0;
|
||||
// const userPrivileges = 2;
|
||||
|
||||
const RouteView = {
|
||||
name: 'RouteView',
|
||||
render: h => h('router-view'), // 渲染路由视图组件
|
||||
render: h => h('router-view'),
|
||||
};
|
||||
|
||||
export const routes = [
|
||||
{
|
||||
path: '/', // 根路由
|
||||
path: '/',
|
||||
name: 'Home',
|
||||
meta: { title: '主页' },
|
||||
redirect: '/race/list', // 重定向至赛事列表页面
|
||||
component: GlobalLayout, // 使用全局布局组件
|
||||
redirect: '/race/list',
|
||||
component: GlobalLayout,
|
||||
children: [
|
||||
{
|
||||
path: '/console', // 赛事管理路由
|
||||
{
|
||||
path: '/console',
|
||||
name: 'Console',
|
||||
redirect: '/console/list', // 默认重定向至赛事列表页面
|
||||
component: RouteView, // 使用路由视图组件
|
||||
meta: { title: '首 页', icon: 'appstore' }, // 路由元信息
|
||||
redirect: '/console/list',
|
||||
component: RouteView,
|
||||
meta: { title: '首 页', icon: 'appstore' },
|
||||
children: [
|
||||
{
|
||||
path: '/console/list', // 赛事列表路由
|
||||
path: '/console/list',
|
||||
name: 'ConsoleLog',
|
||||
component: () => import('@/views/user/Console.vue'), // 异步加载赛事列表组件
|
||||
// meta: { title: '大数据', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
meta: { title: '大数据', auth: 0 }, // 路由元信息,指定需要的权限
|
||||
component: () => import('@/views/user/Console.vue'),
|
||||
meta: { title: '大数据', auth: 0 },
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
path: '/race', // 赛事管理路由
|
||||
path: '/race',
|
||||
name: 'Race',
|
||||
redirect: '/race/list', // 默认重定向至赛事列表页面
|
||||
component: RouteView, // 使用路由视图组件
|
||||
meta: { title: '赛事管理', icon: 'appstore' }, // 路由元信息
|
||||
redirect: '/race/list',
|
||||
component: RouteView,
|
||||
meta: { title: '赛事管理', icon: 'appstore' },
|
||||
children: [
|
||||
{
|
||||
path: '/race/list', // 赛事列表路由
|
||||
path: '/race/list',
|
||||
name: 'RaceList',
|
||||
component: () => import('@/views/race/Race'), // 异步加载赛事列表组件
|
||||
meta: { title: '赛事列表', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
component: () => import('@/views/race/Race'),
|
||||
meta: { title: '赛事列表', auth: [0, 1, 2] },
|
||||
},
|
||||
{
|
||||
path: '/race/record', // 参赛记录路由
|
||||
path: '/race/record',
|
||||
name: 'Record',
|
||||
component: () => import('@/views/race/Record'), // 异步加载参赛记录组件
|
||||
meta: { title: '参赛记录', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
component: () => import('@/views/race/Record'),
|
||||
meta: { title: '参赛记录', auth: [0, 1, 2] },
|
||||
},
|
||||
{
|
||||
path: '/race/down', // 参赛记录路由
|
||||
path: '/race/down',
|
||||
name: 'Down',
|
||||
component: () => import('@/views/race/Down'), // 异步加载参赛记录组件
|
||||
meta: { title: '参赛资料', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
component: () => import('@/views/race/Down'),
|
||||
meta: { title: '参赛资料', auth: [0, 1, 2] },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: '/user', // 用户管理路由
|
||||
redirect: '/user/student', // 默认重定向至学生列表页面
|
||||
path: '/user',
|
||||
redirect: '/user/student',
|
||||
name: 'User',
|
||||
component: RouteView, // 使用路由视图组件
|
||||
meta: { title: '用户管理', icon: 'user', auth: [0, 1] }, // 路由元信息,指定需要的权限
|
||||
component: RouteView,
|
||||
meta: { title: '用户管理', icon: 'user', auth: [0, 1] },
|
||||
children: [
|
||||
{
|
||||
path: '/user/student', // 学生列表路由
|
||||
path: '/user/student',
|
||||
name: 'Student',
|
||||
component: () => import('@/views/user/Student'), // 异步加载学生列表组件
|
||||
meta: { title: '学生列表', auth: [0, 1] }, // 路由元信息
|
||||
component: () => import('@/views/user/Student'),
|
||||
meta: { title: '学生列表', auth: [0, 1] },
|
||||
},
|
||||
{
|
||||
path: '/user/teacher', // 教师列表路由
|
||||
path: '/user/teacher',
|
||||
name: 'Teacher',
|
||||
component: () => import('@/views/user/Teacher'), // 异步加载教师列表组件
|
||||
meta: { title: '教师列表', auth: [0] }, // 路由元信息
|
||||
component: () => import('@/views/user/Teacher'),
|
||||
meta: { title: '教师列表', auth: [0] },
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
{
|
||||
path: '/community', // 权限管理路由
|
||||
redirect: '/community/list', // 默认重定向至角色列表页面
|
||||
path: '/community',
|
||||
redirect: '/community/list',
|
||||
name: 'Role',
|
||||
component: RouteView, // 使用路由视图组件
|
||||
meta: { title: '交流社区', icon: 'key' }, // 路由元信息
|
||||
component: RouteView,
|
||||
meta: { title: '交流社区', icon: 'key' },
|
||||
children: [
|
||||
{
|
||||
path: '/community/Article', // 权限列表路由
|
||||
path: '/community/Article',
|
||||
name: 'Article',
|
||||
meta: { title: '论坛首页', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
component: () => import('@/views/communtiy/Article.vue'), // 异步加载权限列表组件
|
||||
meta: { title: '论坛首页', auth: [0, 1, 2] },
|
||||
component: () => import('@/views/communtiy/Article.vue'),
|
||||
},
|
||||
{
|
||||
path: '/community/publish', // 权限列表路由
|
||||
path: '/community/publish',
|
||||
name: 'publish',
|
||||
meta: { title: '在线发帖', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
component: () => import('@/components/edit/tinymce.vue'), // 异步加载权限列表组件
|
||||
meta: { title: '在线发帖', auth: [0, 1, 2] },
|
||||
component: () => import('@/components/edit/tinymce.vue'),
|
||||
},
|
||||
{
|
||||
path: '/community/editcontent', // 权限列表路由
|
||||
path: '/community/editcontent',
|
||||
name: 'editcontent',
|
||||
meta: { title: '修改帖子', auth: [0, 1, 2] ,hidden:true}, // 路由元信息,指定需要的权限
|
||||
component: () => import('@/components/edit/EditContent.vue'), // 异步加载权限列表组件
|
||||
meta: { title: '修改帖子', auth: [0, 1, 2], hidden: true },
|
||||
component: () => import('@/components/edit/EditContent.vue'),
|
||||
},
|
||||
{
|
||||
path: '/community/pages',
|
||||
path: '/community/pages',
|
||||
name: 'pages',
|
||||
meta: { title: '帖子详细', auth: [0, 1, 2] }, // 路由元信息
|
||||
component: () => import('@/views/communtiy/pages.vue'), // 异步加载登录页面组件
|
||||
meta: { title: '帖子详细', auth: [0, 1, 2] },
|
||||
component: () => import('@/views/communtiy/pages.vue'),
|
||||
},
|
||||
{
|
||||
path: '/account/center', // 角色列表路由
|
||||
path: '/account/center',
|
||||
name: 'AccountCenter',
|
||||
meta: { title: '个人中心', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
component: () => import('@/views/account/center/index.vue'), // 异步加载角色列表组件
|
||||
meta: { title: '个人中心', auth: [0, 1, 2] },
|
||||
component: () => import('@/views/account/center/index.vue'),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: '/account', // 权限管理路由
|
||||
path: '/account',
|
||||
name: 'Account',
|
||||
component: RouteView, // 使用路由视图组件
|
||||
meta: { title: '竞赛助手', icon: 'key' }, // 路由元信息
|
||||
component: RouteView,
|
||||
meta: { title: '竞赛助手', icon: 'key' },
|
||||
children: [
|
||||
{
|
||||
path: '/account/Ai', // 角色列表路由
|
||||
path: '/account/Ai',
|
||||
name: 'AccountSettings',
|
||||
meta: { title: '竞赛助手', auth: 0 }, // 路由元信息,指定需要的权限
|
||||
component: () => import('@/views/user/Ai.vue'), // 异步加载角色列表组件
|
||||
|
||||
meta: { title: '竞赛助手', auth: 0 },
|
||||
component: () => import('@/views/user/Ai.vue'),
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: '/login', // 登录页面路由
|
||||
path: '/login',
|
||||
name: 'Login',
|
||||
meta: { title: '登陆' }, // 路由元信息
|
||||
component: () => import('@/views/Login'), // 异步加载登录页面组件
|
||||
},{
|
||||
path: '/index', // 登录页面路由
|
||||
meta: { title: '登陆' },
|
||||
component: () => import('@/views/Login'),
|
||||
},
|
||||
{
|
||||
path: '/index',
|
||||
name: 'Index',
|
||||
meta: { title: '主页' }, // 路由元信息
|
||||
component: () => import('@/views/Index'), // 异步加载登录页面组件
|
||||
meta: { title: '主页' },
|
||||
component: () => import('@/views/Index'),
|
||||
},
|
||||
{
|
||||
path: '/404', // 404 页面路由
|
||||
component: () => import('@/components/common/404'), // 异步加载 404 组件
|
||||
path: '/404',
|
||||
component: () => import('@/components/common/404'),
|
||||
},
|
||||
{
|
||||
path: '*', // 匹配任何不存在的路由
|
||||
redirect: '/404', // 重定向至 404 页面
|
||||
path: '*',
|
||||
redirect: '/404',
|
||||
},
|
||||
];
|
||||
// const userPrivileges = 1;
|
||||
// 这个函数假设是从某处获取用户权限级别
|
||||
console.log("routes",routes)
|
||||
// 使用filterRoutes函数过滤路由
|
||||
// const filteredRoutes = filterRoutes(routes, userPrivileges);
|
||||
|
||||
const filteredRoutes = filterRoutes(routes, userPrivileges);
|
||||
// 然后可以使用filteredRoutes来初始化Vue Router或生成路由菜单
|
||||
|
||||
const router = new VueRouter({
|
||||
mode: 'hash',
|
||||
base: process.env.BASE_URL,
|
||||
routes: routes, // 使用过滤后的路由配置
|
||||
// routes: routes, // 使用过滤后的路由配置
|
||||
routes: routes,
|
||||
});
|
||||
|
||||
/**
|
||||
* 根据用户权限过滤路由
|
||||
* @param {Array} routes 路由配置数组
|
||||
* @param {number} userPrivileges 当前用户权限级别
|
||||
* @returns 过滤后的路由数组
|
||||
*/
|
||||
export function filterRoutes(routes, userPrivileges) {
|
||||
// 过滤单个路由
|
||||
function filterSingleRoute(route, userPrivileges) {
|
||||
// 如果路由或其子路由需要的权限高于用户权限,则不包括该路由
|
||||
if (route.meta && route.meta.auth) {
|
||||
if (Array.isArray(route.meta.auth)) {
|
||||
// 如果路由需要多个权限,只要用户拥有其中之一即可访问
|
||||
if (!route.meta.auth.some(authLevel => userPrivileges == authLevel)) {
|
||||
if (!route.meta.auth.some(authLevel => userPrivileges == authLevel)) {
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
// 如果路由需要的权限高于用户权限,则不包括该路由
|
||||
if (userPrivileges < route.meta.auth) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 如果路由有子路由,递归过滤子路由
|
||||
if (route.children && route.children.length >= 0) {
|
||||
route.children = route.children
|
||||
.map(childRoute => filterSingleRoute(childRoute, userPrivileges))
|
||||
.filter(childRoute => childRoute !== null && childRoute?.meta?.hidden!=true); // 过滤掉null值
|
||||
.filter(childRoute => childRoute !== null && childRoute?.meta?.hidden != true);
|
||||
}
|
||||
|
||||
return route;
|
||||
}
|
||||
|
||||
// 过滤所有路由
|
||||
return routes.map(route => filterSingleRoute(route, userPrivileges)).filter(route => route !== null);
|
||||
}
|
||||
|
||||
export default router; // 导出 Vue Router 实例
|
||||
export default router;
|
||||
|
@ -1,157 +0,0 @@
|
||||
// import GlobalLayout from '@/layouts/GlobalLayout'; // 引入全局布局组件
|
||||
// const RouteView = {
|
||||
// name: 'RouteView',
|
||||
// render: h => h('router-view'), // 渲染路由视图组件
|
||||
// };
|
||||
// const routes = [
|
||||
// {
|
||||
// path: '/', // 根路由
|
||||
// name: 'Home',
|
||||
// meta: { title: '主页' },
|
||||
// redirect: '/race/list', // 重定向至赛事列表页面
|
||||
// component: GlobalLayout, // 使用全局布局组件
|
||||
// children: [
|
||||
// {
|
||||
// path: '/console', // 赛事管理路由
|
||||
// name: 'Console',
|
||||
// redirect: '/console/list', // 默认重定向至赛事列表页面
|
||||
// component: RouteView, // 使用路由视图组件
|
||||
// meta: { title: '首 页', icon: 'appstore' }, // 路由元信息
|
||||
// children: [
|
||||
// {
|
||||
// path: '/console/list', // 赛事列表路由
|
||||
// name: 'ConsoleLog',
|
||||
// component: () => import('@/views/user/Console.vue'), // 异步加载赛事列表组件
|
||||
// // meta: { title: '大数据', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
// meta: { title: '大数据', auth: 0 }, // 路由元信息,指定需要的权限
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
|
||||
// {
|
||||
// path: '/race', // 赛事管理路由
|
||||
// name: 'Race',
|
||||
// redirect: '/race/list', // 默认重定向至赛事列表页面
|
||||
// component: RouteView, // 使用路由视图组件
|
||||
// meta: { title: '赛事管理', icon: 'appstore' }, // 路由元信息
|
||||
// children: [
|
||||
// {
|
||||
// path: '/race/list', // 赛事列表路由
|
||||
// name: 'RaceList',
|
||||
// component: () => import('@/views/race/Race'), // 异步加载赛事列表组件
|
||||
// meta: { title: '赛事列表', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
// },
|
||||
// {
|
||||
// path: '/race/record', // 参赛记录路由
|
||||
// name: 'Record',
|
||||
// component: () => import('@/views/race/Record'), // 异步加载参赛记录组件
|
||||
// meta: { title: '参赛记录', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
// },
|
||||
// {
|
||||
// path: '/race/down', // 参赛记录路由
|
||||
// name: 'Down',
|
||||
// component: () => import('@/views/race/Down'), // 异步加载参赛记录组件
|
||||
// meta: { title: '参赛资料', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// path: '/user', // 用户管理路由
|
||||
// redirect: '/user/student', // 默认重定向至学生列表页面
|
||||
// name: 'User',
|
||||
// component: RouteView, // 使用路由视图组件
|
||||
// meta: { title: '用户管理', icon: 'user', auth: [0, 1] }, // 路由元信息,指定需要的权限
|
||||
// children: [
|
||||
// {
|
||||
// path: '/user/student', // 学生列表路由
|
||||
// name: 'Student',
|
||||
// component: () => import('@/views/user/Student'), // 异步加载学生列表组件
|
||||
// meta: { title: '学生列表', auth: [0, 1] }, // 路由元信息
|
||||
// },
|
||||
// {
|
||||
// path: '/user/teacher', // 教师列表路由
|
||||
// name: 'Teacher',
|
||||
// component: () => import('@/views/user/Teacher'), // 异步加载教师列表组件
|
||||
// meta: { title: '教师列表', auth: [0] }, // 路由元信息
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
|
||||
// {
|
||||
// path: '/community', // 权限管理路由
|
||||
// redirect: '/community/list', // 默认重定向至角色列表页面
|
||||
// name: 'Role',
|
||||
// component: RouteView, // 使用路由视图组件
|
||||
// meta: { title: '交流社区', icon: 'key' }, // 路由元信息
|
||||
// children: [
|
||||
// {
|
||||
// path: '/community/Article', // 权限列表路由
|
||||
// name: 'Article',
|
||||
// meta: { title: '论坛首页', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
// component: () => import('@/views/communtiy/Article.vue'), // 异步加载权限列表组件
|
||||
// },
|
||||
// {
|
||||
// path: '/community/publish', // 权限列表路由
|
||||
// name: 'publish',
|
||||
// meta: { title: '在线发帖', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
// component: () => import('@/components/edit/tinymce.vue'), // 异步加载权限列表组件
|
||||
// },
|
||||
// {
|
||||
// path: '/community/editcontent', // 权限列表路由
|
||||
// name: 'editcontent',
|
||||
// meta: { title: '修改帖子', auth: [0, 1, 2] ,hidden:true}, // 路由元信息,指定需要的权限
|
||||
// component: () => import('@/components/edit/EditContent.vue'), // 异步加载权限列表组件
|
||||
// },
|
||||
// {
|
||||
// path: '/pages', // 登录页面路由
|
||||
// name: 'pages',
|
||||
// meta: { title: '内容', auth: [0, 1, 2],hidden:true }, // 路由元信息
|
||||
// component: () => import('@/views/communtiy/pages.vue'), // 异步加载登录页面组件
|
||||
// },
|
||||
// {
|
||||
// path: '/account/center', // 角色列表路由
|
||||
// name: 'AccountCenter',
|
||||
// meta: { title: '个人中心', auth: [0, 1, 2] }, // 路由元信息,指定需要的权限
|
||||
// component: () => import('@/views/account/center/index.vue'), // 异步加载角色列表组件
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// path: '/account', // 权限管理路由
|
||||
// name: 'Account',
|
||||
// component: RouteView, // 使用路由视图组件
|
||||
// meta: { title: '竞赛助手', icon: 'key' }, // 路由元信息
|
||||
// children: [
|
||||
// {
|
||||
// path: '/account/Ai', // 角色列表路由
|
||||
// name: 'AccountSettings',
|
||||
// meta: { title: '竞赛助手', auth: 0 }, // 路由元信息,指定需要的权限
|
||||
// component: () => import('@/views/user/Ai.vue'), // 异步加载角色列表组件
|
||||
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// {
|
||||
// path: '/login', // 登录页面路由
|
||||
// name: 'Login',
|
||||
// meta: { title: '登陆' }, // 路由元信息
|
||||
// component: () => import('@/views/Login'), // 异步加载登录页面组件
|
||||
// },
|
||||
// {
|
||||
// path: '/index', // 登录页面路由
|
||||
// name: 'Index',
|
||||
// meta: { title: '主页' }, // 路由元信息
|
||||
// component: () => import('@/views/Index'), // 异步加载登录页面组件
|
||||
// },
|
||||
// {
|
||||
// path: '/404', // 404 页面路由
|
||||
// component: () => import('@/components/common/404'), // 异步加载 404 组件
|
||||
// },
|
||||
// {
|
||||
// path: '*', // 匹配任何不存在的路由
|
||||
// redirect: '/404', // 重定向至 404 页面
|
||||
// },
|
||||
// ];
|
||||
// export default routes;
|
@ -5,7 +5,7 @@
|
||||
<a-col :span="6">
|
||||
<a-card class="data-card">
|
||||
<a-statistic
|
||||
title="注册用户总数"
|
||||
title="用户总数"
|
||||
:value="totaluser"
|
||||
:precision="0"
|
||||
style="text-align: center"
|
||||
@ -112,10 +112,10 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as echarts from 'echarts';
|
||||
import * as echarts from "echarts";
|
||||
|
||||
export default {
|
||||
name: 'Console',
|
||||
name: "Console",
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
@ -147,7 +147,7 @@ export default {
|
||||
awardChart: null,
|
||||
|
||||
// 是否使用模拟数据
|
||||
useMockData: true,
|
||||
useMockData: false,
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
@ -167,31 +167,53 @@ export default {
|
||||
async fetchAllData() {
|
||||
this.loading = true;
|
||||
try {
|
||||
if (this.useMockData) {
|
||||
// 使用模拟数据
|
||||
this.loadMockData();
|
||||
} else {
|
||||
// 使用真实API
|
||||
await this.fetchUserStats();
|
||||
await this.fetchCompetitionStats();
|
||||
await this.fetchAwardStats();
|
||||
await this.fetchRegistrationTrend();
|
||||
await this.fetchHotCompetitions();
|
||||
}
|
||||
// 优先获取基础统计数据
|
||||
await this.fetchStatistics();
|
||||
// 获取其他数据
|
||||
await Promise.all([
|
||||
this.fetchAwardStats(),
|
||||
this.fetchRegistrationTrend(),
|
||||
this.fetchHotCompetitions(),
|
||||
]);
|
||||
|
||||
// 初始化图表
|
||||
this.$nextTick(() => {
|
||||
this.initRegistrationTrendChart();
|
||||
this.initAwardChart();
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('获取数据失败', error);
|
||||
this.$message.error('获取数据失败');
|
||||
console.error("获取数据失败", error);
|
||||
this.$message.error("获取数据失败");
|
||||
} finally {
|
||||
this.loading = false;
|
||||
}
|
||||
},
|
||||
|
||||
// 获取统计数据
|
||||
async fetchStatistics() {
|
||||
try {
|
||||
// this.$api.getWinCountByLevel
|
||||
const response = await this.$api.getCountTotal();
|
||||
console.log("response", response);
|
||||
if (response.code === 200) {
|
||||
console.log("response.data", response.data);
|
||||
const stats = response.data;
|
||||
// 直接使用接口返回的数据
|
||||
this.totaluser = stats.totalUsers;
|
||||
this.totalteacher = stats.teacherCount;
|
||||
this.totalstudent = stats.studentCount;
|
||||
this.totalmatch = stats.competitionCount;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("获取统计数据失败:", error);
|
||||
this.$message.error("获取统计数据失败");
|
||||
// 发生错误时重置数据为0
|
||||
this.totaluser = 0;
|
||||
this.totalteacher = 0;
|
||||
this.totalstudent = 0;
|
||||
this.totalmatch = 0;
|
||||
}
|
||||
},
|
||||
|
||||
// 加载模拟数据
|
||||
loadMockData() {
|
||||
// 模拟用户统计数据
|
||||
@ -271,21 +293,21 @@ export default {
|
||||
// 获取用户统计数据
|
||||
async fetchUserStats() {
|
||||
// 获取用户总数
|
||||
await this.$api.getCount().then(res => {
|
||||
await this.$api.getCount().then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.totaluser = res.data;
|
||||
}
|
||||
});
|
||||
|
||||
// 获取教师总人数
|
||||
await this.$api.getTeacherCount().then(res => {
|
||||
await this.$api.getTeacherCount().then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.totalteacher = res.data;
|
||||
}
|
||||
});
|
||||
|
||||
// 获取学生总人数
|
||||
await this.$api.getStudentCount().then(res => {
|
||||
await this.$api.getStudentCount().then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.totalstudent = res.data;
|
||||
}
|
||||
@ -295,7 +317,7 @@ export default {
|
||||
// 获取比赛统计数据
|
||||
async fetchCompetitionStats() {
|
||||
// 获取所有比赛数量
|
||||
await this.$api.AllCompetition().then(res => {
|
||||
await this.$api.AllCompetition().then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.totalmatch = res.data.length;
|
||||
|
||||
@ -305,7 +327,7 @@ export default {
|
||||
});
|
||||
|
||||
// 获取所有资料
|
||||
await this.$api.Allinformation().then(res => {
|
||||
await this.$api.Allinformation().then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.totalinfo = res.data.length;
|
||||
}
|
||||
@ -316,11 +338,14 @@ export default {
|
||||
const sevenDaysAgo = new Date(currentDate);
|
||||
sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);
|
||||
|
||||
await this.$api.AllCompetition().then(res => {
|
||||
await this.$api.AllCompetition().then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.totaldays = res.data.filter(item => {
|
||||
this.totaldays = res.data.filter((item) => {
|
||||
const registrationEndTime = new Date(item.registrationEndTime);
|
||||
return registrationEndTime >= sevenDaysAgo && registrationEndTime <= currentDate;
|
||||
return (
|
||||
registrationEndTime >= sevenDaysAgo &&
|
||||
registrationEndTime <= currentDate
|
||||
);
|
||||
}).length;
|
||||
}
|
||||
});
|
||||
@ -329,21 +354,21 @@ export default {
|
||||
// 获取获奖统计数据
|
||||
async fetchAwardStats() {
|
||||
// 一等奖人数
|
||||
await this.$api.getWinCountByLevel({level: '一等奖'}).then(res => {
|
||||
await this.$api.getWinCountByLevel({ level: "一等奖" }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.firstlevel = res.data;
|
||||
}
|
||||
});
|
||||
|
||||
// 二等奖人数
|
||||
await this.$api.getWinCountByLevel({level: '二等奖'}).then(res => {
|
||||
await this.$api.getWinCountByLevel({ level: "二等奖" }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.secondlevel = res.data;
|
||||
}
|
||||
});
|
||||
|
||||
// 三等奖
|
||||
await this.$api.getWinCountByLevel({level: '三等奖'}).then(res => {
|
||||
await this.$api.getWinCountByLevel({ level: "三等奖" }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.thirdlevel = res.data;
|
||||
}
|
||||
@ -353,14 +378,14 @@ export default {
|
||||
// 获取报名趋势数据
|
||||
async fetchRegistrationTrend() {
|
||||
// 获取报名记录
|
||||
await this.$api.RegistrationAll().then(res => {
|
||||
await this.$api.RegistrationAll().then((res) => {
|
||||
if (res.code == 200) {
|
||||
// 处理报名趋势数据
|
||||
this.processRegistrationTrendData(res.data);
|
||||
|
||||
// 获取成功报名数量
|
||||
this.totalsuccess = res.data.filter(
|
||||
item => item.registrationStatus == "成功报名",
|
||||
(item) => item.registrationStatus == "成功报名"
|
||||
).length;
|
||||
|
||||
// 获取七天内成功报名的数量
|
||||
@ -368,9 +393,12 @@ export default {
|
||||
const sevenDaysAgo = new Date(currentDate);
|
||||
sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);
|
||||
|
||||
this.totalday = res.data.filter(item => {
|
||||
this.totalday = res.data.filter((item) => {
|
||||
const registrationTime = new Date(item.registrationTime);
|
||||
return registrationTime >= sevenDaysAgo && registrationTime <= currentDate;
|
||||
return (
|
||||
registrationTime >= sevenDaysAgo &&
|
||||
registrationTime <= currentDate
|
||||
);
|
||||
}).length;
|
||||
}
|
||||
});
|
||||
@ -390,7 +418,7 @@ export default {
|
||||
|
||||
// 计算每个比赛的报名人数
|
||||
const competitionCounts = {};
|
||||
registrations.forEach(reg => {
|
||||
registrations.forEach((reg) => {
|
||||
if (!competitionCounts[reg.competitionId]) {
|
||||
competitionCounts[reg.competitionId] = 0;
|
||||
}
|
||||
@ -398,7 +426,7 @@ export default {
|
||||
});
|
||||
|
||||
// 将比赛数据与报名人数合并
|
||||
const competitionsWithCount = competitions.map(comp => ({
|
||||
const competitionsWithCount = competitions.map((comp) => ({
|
||||
...comp,
|
||||
registrationCount: competitionCounts[comp.competitionId] || 0,
|
||||
}));
|
||||
@ -424,7 +452,7 @@ export default {
|
||||
dates.push(dateStr);
|
||||
|
||||
// 计算当天的报名数量
|
||||
const count = registrations.filter(reg => {
|
||||
const count = registrations.filter((reg) => {
|
||||
const regDate = new Date(reg.registrationTime);
|
||||
return this.formatDate(regDate) === dateStr;
|
||||
}).length;
|
||||
@ -450,39 +478,39 @@ export default {
|
||||
|
||||
const option = {
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
trigger: "axis",
|
||||
axisPointer: {
|
||||
type: 'shadow',
|
||||
type: "shadow",
|
||||
},
|
||||
},
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
left: "3%",
|
||||
right: "4%",
|
||||
bottom: "3%",
|
||||
containLabel: true,
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
type: "category",
|
||||
data: this.registrationTrendData.dates,
|
||||
axisLabel: {
|
||||
rotate: 45,
|
||||
},
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value',
|
||||
name: '报名人数',
|
||||
type: "value",
|
||||
name: "报名人数",
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: '报名人数',
|
||||
type: 'line',
|
||||
name: "报名人数",
|
||||
type: "line",
|
||||
data: this.registrationTrendData.counts,
|
||||
smooth: true,
|
||||
areaStyle: {
|
||||
opacity: 0.3,
|
||||
},
|
||||
itemStyle: {
|
||||
color: '#1890ff',
|
||||
color: "#1890ff",
|
||||
},
|
||||
},
|
||||
],
|
||||
@ -491,7 +519,7 @@ export default {
|
||||
this.registrationTrendChart.setOption(option);
|
||||
|
||||
// 响应窗口大小变化
|
||||
window.addEventListener('resize', () => {
|
||||
window.addEventListener("resize", () => {
|
||||
this.registrationTrendChart.resize();
|
||||
});
|
||||
},
|
||||
@ -503,43 +531,55 @@ export default {
|
||||
|
||||
const option = {
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter: '{a} <br/>{b}: {c} ({d}%)',
|
||||
trigger: "item",
|
||||
formatter: "{a} <br/>{b}: {c} ({d}%)",
|
||||
},
|
||||
legend: {
|
||||
orient: 'horizontal',
|
||||
bottom: 'bottom',
|
||||
data: ['一等奖', '二等奖', '三等奖'],
|
||||
orient: "horizontal",
|
||||
bottom: "bottom",
|
||||
data: ["一等奖", "二等奖", "三等奖"],
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: '获奖情况',
|
||||
type: 'pie',
|
||||
radius: ['40%', '70%'],
|
||||
name: "获奖情况",
|
||||
type: "pie",
|
||||
radius: ["40%", "70%"],
|
||||
avoidLabelOverlap: false,
|
||||
itemStyle: {
|
||||
borderRadius: 10,
|
||||
borderColor: '#fff',
|
||||
borderColor: "#fff",
|
||||
borderWidth: 2,
|
||||
},
|
||||
label: {
|
||||
show: false,
|
||||
position: 'center',
|
||||
position: "center",
|
||||
},
|
||||
emphasis: {
|
||||
label: {
|
||||
show: true,
|
||||
fontSize: '18',
|
||||
fontWeight: 'bold',
|
||||
fontSize: "18",
|
||||
fontWeight: "bold",
|
||||
},
|
||||
},
|
||||
labelLine: {
|
||||
show: false,
|
||||
},
|
||||
data: [
|
||||
{ value: this.firstlevel, name: '一等奖', itemStyle: { color: '#ff4d4f' } },
|
||||
{ value: this.secondlevel, name: '二等奖', itemStyle: { color: '#faad14' } },
|
||||
{ value: this.thirdlevel, name: '三等奖', itemStyle: { color: '#52c41a' } },
|
||||
{
|
||||
value: this.firstlevel,
|
||||
name: "一等奖",
|
||||
itemStyle: { color: "#ff4d4f" },
|
||||
},
|
||||
{
|
||||
value: this.secondlevel,
|
||||
name: "二等奖",
|
||||
itemStyle: { color: "#faad14" },
|
||||
},
|
||||
{
|
||||
value: this.thirdlevel,
|
||||
name: "三等奖",
|
||||
itemStyle: { color: "#52c41a" },
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
@ -548,7 +588,7 @@ export default {
|
||||
this.awardChart.setOption(option);
|
||||
|
||||
// 响应窗口大小变化
|
||||
window.addEventListener('resize', () => {
|
||||
window.addEventListener("resize", () => {
|
||||
this.awardChart.resize();
|
||||
});
|
||||
},
|
||||
@ -556,18 +596,18 @@ export default {
|
||||
// 格式化日期
|
||||
formatDate(date) {
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
const month = String(date.getMonth() + 1).padStart(2, "0");
|
||||
const day = String(date.getDate()).padStart(2, "0");
|
||||
return `${year}-${month}-${day}`;
|
||||
},
|
||||
|
||||
// 获取比赛状态文本
|
||||
getCompetitionStatus(status) {
|
||||
const statusMap = {
|
||||
0: '进行中',
|
||||
1: '已终止',
|
||||
0: "进行中",
|
||||
1: "已终止",
|
||||
};
|
||||
return statusMap[status] || '未知状态';
|
||||
return statusMap[status] || "未知状态";
|
||||
},
|
||||
},
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user