1 line
46 KiB
JSON
1 line
46 KiB
JSON
{"remainingRequest":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/babel-loader/lib/index.js!/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/node_modules/cache-loader/dist/cjs.js??ref--1-0!/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?vue&type=script&lang=js","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/views/user/Console.vue","mtime":1747403482892},{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/babel.config.js","mtime":1742646402652},{"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/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:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAqIGFzIGVjaGFydHMgZnJvbSAiZWNoYXJ0cyI7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiQ29uc29sZSIsCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICAvLyDnlKjmiLfnu5/orqHmlbDmja4KICAgICAgdG90YWx1c2VyOiAwLAogICAgICB0b3RhbHRlYWNoZXI6IDAsCiAgICAgIHRvdGFsc3R1ZGVudDogMCwKICAgICAgdG90YWxtYXRjaDogMCwKICAgICAgLy8g6I635aWW5pWw5o2uCiAgICAgIGZpcnN0bGV2ZWw6IDAsCiAgICAgIHNlY29uZGxldmVsOiAwLAogICAgICB0aGlyZGxldmVsOiAwLAogICAgICAvLyDmiqXlkI3otovlir/mlbDmja4KICAgICAgcmVnaXN0cmF0aW9uVHJlbmREYXRhOiBbXSwKICAgICAgLy8g54Ot6Zeo5q+U6LWb5YiX6KGoCiAgICAgIGhvdENvbXBldGl0aW9uczogW10sCiAgICAgIC8vIOWFtuS7lue7n+iuoeaVsOaNrgogICAgICB0b3RhbGluZm86IDAsCiAgICAgIHRvdGFsc3VjY2VzczogMCwKICAgICAgdG90YWxkYXk6IDAsCiAgICAgIHRvdGFsZGF5czogMCwKICAgICAgLy8g5Zu+6KGo5a6e5L6LCiAgICAgIHJlZ2lzdHJhdGlvblRyZW5kQ2hhcnQ6IG51bGwsCiAgICAgIGF3YXJkQ2hhcnQ6IG51bGwsCiAgICAgIC8vIOaYr+WQpuS9v+eUqOaooeaLn+aVsOaNrgogICAgICB1c2VNb2NrRGF0YTogZmFsc2UKICAgIH07CiAgfSwKICBtb3VudGVkKCkgewogICAgdGhpcy5mZXRjaEFsbERhdGEoKTsKICB9LAogIGJlZm9yZURlc3Ryb3koKSB7CiAgICAvLyDplIDmr4Hlm77ooajlrp7kvovvvIzpgb/lhY3lhoXlrZjms4TmvI8KICAgIGlmICh0aGlzLnJlZ2lzdHJhdGlvblRyZW5kQ2hhcnQpIHsKICAgICAgdGhpcy5yZWdpc3RyYXRpb25UcmVuZENoYXJ0LmRpc3Bvc2UoKTsKICAgIH0KICAgIGlmICh0aGlzLmF3YXJkQ2hhcnQpIHsKICAgICAgdGhpcy5hd2FyZENoYXJ0LmRpc3Bvc2UoKTsKICAgIH0KICB9LAogIG1ldGhvZHM6IHsKICAgIC8vIOiOt+WPluaJgOacieaVsOaNrgogICAgYXN5bmMgZmV0Y2hBbGxEYXRhKCkgewogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICB0cnkgewogICAgICAgIC8vIOS8mOWFiOiOt+WPluWfuuehgOe7n+iuoeaVsOaNrgogICAgICAgIGF3YWl0IHRoaXMuZmV0Y2hTdGF0aXN0aWNzKCk7CiAgICAgICAgLy8g6I635Y+W5YW25LuW5pWw5o2uCiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoW3RoaXMuZmV0Y2hBd2FyZFN0YXRzKCksIHRoaXMuZmV0Y2hSZWdpc3RyYXRpb25UcmVuZCgpLCB0aGlzLmZldGNoSG90Q29tcGV0aXRpb25zKCldKTsKICAgICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7CiAgICAgICAgICB0aGlzLmluaXRSZWdpc3RyYXRpb25UcmVuZENoYXJ0KCk7CiAgICAgICAgICB0aGlzLmluaXRBd2FyZENoYXJ0KCk7CiAgICAgICAgfSk7CiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgY29uc29sZS5lcnJvcigi6I635Y+W5pWw5o2u5aSx6LSlIiwgZXJyb3IpOwogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoIuiOt+WPluaVsOaNruWksei0pSIpOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICB9CiAgICB9LAogICAgLy8g6I635Y+W57uf6K6h5pWw5o2uCiAgICBhc3luYyBmZXRjaFN0YXRpc3RpY3MoKSB7CiAgICAgIHRyeSB7CiAgICAgICAgLy8gdGhpcy4kYXBpLmdldFdpbkNvdW50QnlMZXZlbAogICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy4kYXBpLmdldENvdW50VG90YWwoKTsKICAgICAgICBjb25zb2xlLmxvZygicmVzcG9uc2UiLCByZXNwb25zZSk7CiAgICAgICAgaWYgKHJlc3BvbnNlLmNvZGUgPT09IDIwMCkgewogICAgICAgICAgY29uc29sZS5sb2coInJlc3BvbnNlLmRhdGEiLCByZXNwb25zZS5kYXRhKTsKICAgICAgICAgIGNvbnN0IHN0YXRzID0gcmVzcG9uc2UuZGF0YTsKICAgICAgICAgIC8vIOebtOaOpeS9v+eUqOaOpeWPo+i/lOWbnueahOaVsOaNrgogICAgICAgICAgdGhpcy50b3RhbHVzZXIgPSBzdGF0cy50b3RhbFVzZXJzOwogICAgICAgICAgdGhpcy50b3RhbHRlYWNoZXIgPSBzdGF0cy50ZWFjaGVyQ291bnQ7CiAgICAgICAgICB0aGlzLnRvdGFsc3R1ZGVudCA9IHN0YXRzLnN0dWRlbnRDb3VudDsKICAgICAgICAgIHRoaXMudG90YWxtYXRjaCA9IHN0YXRzLmNvbXBldGl0aW9uQ291bnQ7CiAgICAgICAgfQogICAgICB9IGNhdGNoIChlcnJvcikgewogICAgICAgIGNvbnNvbGUuZXJyb3IoIuiOt+WPlue7n+iuoeaVsOaNruWksei0pToiLCBlcnJvcik7CiAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcigi6I635Y+W57uf6K6h5pWw5o2u5aSx6LSlIik7CiAgICAgICAgLy8g5Y+R55Sf6ZSZ6K+v5pe26YeN572u5pWw5o2u5Li6MAogICAgICAgIHRoaXMudG90YWx1c2VyID0gMDsKICAgICAgICB0aGlzLnRvdGFsdGVhY2hlciA9IDA7CiAgICAgICAgdGhpcy50b3RhbHN0dWRlbnQgPSAwOwogICAgICAgIHRoaXMudG90YWxtYXRjaCA9IDA7CiAgICAgIH0KICAgIH0sCiAgICAvLyDliqDovb3mqKHmi5/mlbDmja4KICAgIGxvYWRNb2NrRGF0YSgpIHsKICAgICAgLy8g5qih5ouf55So5oi357uf6K6h5pWw5o2uCiAgICAgIHRoaXMudG90YWx1c2VyID0gMTI1NjsKICAgICAgdGhpcy50b3RhbHRlYWNoZXIgPSAxMjg7CiAgICAgIHRoaXMudG90YWxzdHVkZW50ID0gMTEyODsKICAgICAgdGhpcy50b3RhbG1hdGNoID0gNDU7CgogICAgICAvLyDmqKHmi5/ojrflpZbmlbDmja4KICAgICAgdGhpcy5maXJzdGxldmVsID0gNTY7CiAgICAgIHRoaXMuc2Vjb25kbGV2ZWwgPSAxMTI7CiAgICAgIHRoaXMudGhpcmRsZXZlbCA9IDIzNTsKCiAgICAgIC8vIOaooeaLn+WFtuS7lue7n+iuoeaVsOaNrgogICAgICB0aGlzLnRvdGFsaW5mbyA9IDg5OwogICAgICB0aGlzLnRvdGFsc3VjY2VzcyA9IDg3NjsKICAgICAgdGhpcy50b3RhbGRheSA9IDMyOwogICAgICB0aGlzLnRvdGFsZGF5cyA9IDU7CgogICAgICAvLyDmqKHmi5/miqXlkI3otovlir/mlbDmja4KICAgICAgdGhpcy5nZW5lcmF0ZU1vY2tUcmVuZERhdGEoKTsKCiAgICAgIC8vIOaooeaLn+eDremXqOavlOi1m+aVsOaNrgogICAgICB0aGlzLmdlbmVyYXRlTW9ja0hvdENvbXBldGl0aW9ucygpOwogICAgfSwKICAgIC8vIOeUn+aIkOaooeaLn+i2i+WKv+aVsOaNrgogICAgZ2VuZXJhdGVNb2NrVHJlbmREYXRhKCkgewogICAgICBjb25zdCBkYXRlcyA9IFtdOwogICAgICBjb25zdCBjb3VudHMgPSBbXTsKICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpOwogICAgICBmb3IgKGxldCBpID0gMjk7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTsKICAgICAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgLSBpKTsKICAgICAgICBjb25zdCBkYXRlU3RyID0gdGhpcy5mb3JtYXREYXRlKGRhdGUpOwogICAgICAgIGRhdGVzLnB1c2goZGF0ZVN0cik7CgogICAgICAgIC8vIOeUn+aIkOmaj+acuuaKpeWQjeaVsOmHj++8jOWRiOeOsOazouWKqOS4iuWNh+i2i+WKvwogICAgICAgIGNvbnN0IGJhc2VDb3VudCA9IDUgKyBNYXRoLmZsb29yKCgzMCAtIGkpIC8gMyk7CiAgICAgICAgY29uc3QgcmFuZG9tRmFjdG9yID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTApIC0gMzsKICAgICAgICBjb25zdCBjb3VudCA9IE1hdGgubWF4KDAsIGJhc2VDb3VudCArIHJhbmRvbUZhY3Rvcik7CiAgICAgICAgY291bnRzLnB1c2goY291bnQpOwogICAgICB9CiAgICAgIHRoaXMucmVnaXN0cmF0aW9uVHJlbmREYXRhID0gewogICAgICAgIGRhdGVzLAogICAgICAgIGNvdW50cwogICAgICB9OwogICAgfSwKICAgIC8vIOeUn+aIkOaooeaLn+eDremXqOavlOi1m+aVsOaNrgogICAgZ2VuZXJhdGVNb2NrSG90Q29tcGV0aXRpb25zKCkgewogICAgICBjb25zdCBjb21wZXRpdGlvbk5hbWVzID0gWyLlhajlm73lpKflrabnlJ/mlbDlrablu7rmqKHnq57otZsiLCAi5LqS6IGU572RK+WIm+aWsOWIm+S4muWkp+i1myIsICJBQ03nqIvluo/orr7orqHlpKfotZsiLCAi5oyR5oiY5p2v5Yib5paw5Yib5Lia5aSn6LWbIiwgIuWFqOWbveWkp+WtpueUn+acuuWZqOS6uuWkp+i1myJdOwogICAgICB0aGlzLmhvdENvbXBldGl0aW9ucyA9IGNvbXBldGl0aW9uTmFtZXMubWFwKChuYW1lLCBpbmRleCkgPT4gewogICAgICAgIC8vIOeUn+aIkOmaj+acuuaKpeWQjeS6uuaVsO+8jOaOkuWQjei2iuWJjeaKpeWQjeS6uuaVsOi2iuWkmgogICAgICAgIGNvbnN0IGJhc2VDb3VudCA9IDIwMCAtIGluZGV4ICogMzA7CiAgICAgICAgY29uc3QgcmFuZG9tRmFjdG9yID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMjApOwogICAgICAgIHJldHVybiB7CiAgICAgICAgICBjb21wZXRpdGlvbklkOiBgY29tcC0ke2luZGV4ICsgMX1gLAogICAgICAgICAgY29tcGV0aXRpb25OYW1lOiBuYW1lLAogICAgICAgICAgcmVnaXN0cmF0aW9uQ291bnQ6IGJhc2VDb3VudCArIHJhbmRvbUZhY3RvciwKICAgICAgICAgIGNvbXBldGl0aW9uU3RhdHVzOiBNYXRoLnJhbmRvbSgpID4gMC4zID8gMCA6IDEKICAgICAgICB9OwogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bnlKjmiLfnu5/orqHmlbDmja4KICAgIGFzeW5jIGZldGNoVXNlclN0YXRzKCkgewogICAgICAvLyDojrflj5bnlKjmiLfmgLvmlbAKICAgICAgYXdhaXQgdGhpcy4kYXBpLmdldENvdW50KCkudGhlbihyZXMgPT4gewogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIHRoaXMudG90YWx1c2VyID0gcmVzLmRhdGE7CiAgICAgICAgfQogICAgICB9KTsKCiAgICAgIC8vIOiOt+WPluaVmeW4iOaAu+S6uuaVsAogICAgICBhd2FpdCB0aGlzLiRhcGkuZ2V0VGVhY2hlckNvdW50KCkudGhlbihyZXMgPT4gewogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIHRoaXMudG90YWx0ZWFjaGVyID0gcmVzLmRhdGE7CiAgICAgICAgfQogICAgICB9KTsKCiAgICAgIC8vIOiOt+WPluWtpueUn+aAu+S6uuaVsAogICAgICBhd2FpdCB0aGlzLiRhcGkuZ2V0U3R1ZGVudENvdW50KCkudGhlbihyZXMgPT4gewogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIHRoaXMudG90YWxzdHVkZW50ID0gcmVzLmRhdGE7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bmr5TotZvnu5/orqHmlbDmja4KICAgIGFzeW5jIGZldGNoQ29tcGV0aXRpb25TdGF0cygpIHsKICAgICAgLy8g6I635Y+W5omA5pyJ5q+U6LWb5pWw6YePCiAgICAgIGF3YWl0IHRoaXMuJGFwaS5BbGxDb21wZXRpdGlvbigpLnRoZW4ocmVzID0+IHsKICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICB0aGlzLnRvdGFsbWF0Y2ggPSByZXMuZGF0YS5sZW5ndGg7CgogICAgICAgICAgLy8g5aSE55CG54Ot6Zeo5q+U6LWb5pWw5o2uCiAgICAgICAgICB0aGlzLnByb2Nlc3NDb21wZXRpdGlvbkRhdGEocmVzLmRhdGEpOwogICAgICAgIH0KICAgICAgfSk7CgogICAgICAvLyDojrflj5bmiYDmnInotYTmlpkKICAgICAgYXdhaXQgdGhpcy4kYXBpLkFsbGluZm9ybWF0aW9uKCkudGhlbihyZXMgPT4gewogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIHRoaXMudG90YWxpbmZvID0gcmVzLmRhdGEubGVuZ3RoOwogICAgICAgIH0KICAgICAgfSk7CgogICAgICAvLyDojrflj5bkuIPlpKnlhoXmr5TotZvnmoTmlbDph48KICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpOwogICAgICBjb25zdCBzZXZlbkRheXNBZ28gPSBuZXcgRGF0ZShjdXJyZW50RGF0ZSk7CiAgICAgIHNldmVuRGF5c0Fnby5zZXREYXRlKHNldmVuRGF5c0Fnby5nZXREYXRlKCkgLSA3KTsKICAgICAgYXdhaXQgdGhpcy4kYXBpLkFsbENvbXBldGl0aW9uKCkudGhlbihyZXMgPT4gewogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIHRoaXMudG90YWxkYXlzID0gcmVzLmRhdGEuZmlsdGVyKGl0ZW0gPT4gewogICAgICAgICAgICBjb25zdCByZWdpc3RyYXRpb25FbmRUaW1lID0gbmV3IERhdGUoaXRlbS5yZWdpc3RyYXRpb25FbmRUaW1lKTsKICAgICAgICAgICAgcmV0dXJuIHJlZ2lzdHJhdGlvbkVuZFRpbWUgPj0gc2V2ZW5EYXlzQWdvICYmIHJlZ2lzdHJhdGlvbkVuZFRpbWUgPD0gY3VycmVudERhdGU7CiAgICAgICAgICB9KS5sZW5ndGg7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bojrflpZbnu5/orqHmlbDmja4KICAgIGFzeW5jIGZldGNoQXdhcmRTdGF0cygpIHsKICAgICAgLy8g5LiA562J5aWW5Lq65pWwCiAgICAgIGF3YWl0IHRoaXMuJGFwaS5nZXRXaW5Db3VudEJ5TGV2ZWwoewogICAgICAgIGxldmVsOiAi5LiA562J5aWWIgogICAgICB9KS50aGVuKHJlcyA9PiB7CiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgICAgdGhpcy5maXJzdGxldmVsID0gcmVzLmRhdGE7CiAgICAgICAgfQogICAgICB9KTsKCiAgICAgIC8vIOS6jOetieWlluS6uuaVsAogICAgICBhd2FpdCB0aGlzLiRhcGkuZ2V0V2luQ291bnRCeUxldmVsKHsKICAgICAgICBsZXZlbDogIuS6jOetieWlliIKICAgICAgfSkudGhlbihyZXMgPT4gewogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIHRoaXMuc2Vjb25kbGV2ZWwgPSByZXMuZGF0YTsKICAgICAgICB9CiAgICAgIH0pOwoKICAgICAgLy8g5LiJ562J5aWWCiAgICAgIGF3YWl0IHRoaXMuJGFwaS5nZXRXaW5Db3VudEJ5TGV2ZWwoewogICAgICAgIGxldmVsOiAi5LiJ562J5aWWIgogICAgICB9KS50aGVuKHJlcyA9PiB7CiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgICAgdGhpcy50aGlyZGxldmVsID0gcmVzLmRhdGE7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bmiqXlkI3otovlir/mlbDmja4KICAgIGFzeW5jIGZldGNoUmVnaXN0cmF0aW9uVHJlbmQoKSB7CiAgICAgIC8vIOiOt+WPluaKpeWQjeiusOW9lQogICAgICBhd2FpdCB0aGlzLiRhcGkuUmVnaXN0cmF0aW9uQWxsKCkudGhlbihyZXMgPT4gewogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIC8vIOWkhOeQhuaKpeWQjei2i+WKv+aVsOaNrgogICAgICAgICAgdGhpcy5wcm9jZXNzUmVnaXN0cmF0aW9uVHJlbmREYXRhKHJlcy5kYXRhKTsKCiAgICAgICAgICAvLyDojrflj5bmiJDlip/miqXlkI3mlbDph48KICAgICAgICAgIHRoaXMudG90YWxzdWNjZXNzID0gcmVzLmRhdGEuZmlsdGVyKGl0ZW0gPT4gaXRlbS5yZWdpc3RyYXRpb25TdGF0dXMgPT0gIuaIkOWKn+aKpeWQjSIpLmxlbmd0aDsKCiAgICAgICAgICAvLyDojrflj5bkuIPlpKnlhoXmiJDlip/miqXlkI3nmoTmlbDph48KICAgICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsKICAgICAgICAgIGNvbnN0IHNldmVuRGF5c0FnbyA9IG5ldyBEYXRlKGN1cnJlbnREYXRlKTsKICAgICAgICAgIHNldmVuRGF5c0Fnby5zZXREYXRlKHNldmVuRGF5c0Fnby5nZXREYXRlKCkgLSA3KTsKICAgICAgICAgIHRoaXMudG90YWxkYXkgPSByZXMuZGF0YS5maWx0ZXIoaXRlbSA9PiB7CiAgICAgICAgICAgIGNvbnN0IHJlZ2lzdHJhdGlvblRpbWUgPSBuZXcgRGF0ZShpdGVtLnJlZ2lzdHJhdGlvblRpbWUpOwogICAgICAgICAgICByZXR1cm4gcmVnaXN0cmF0aW9uVGltZSA+PSBzZXZlbkRheXNBZ28gJiYgcmVnaXN0cmF0aW9uVGltZSA8PSBjdXJyZW50RGF0ZTsKICAgICAgICAgIH0pLmxlbmd0aDsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOiOt+WPlueDremXqOavlOi1m+aVsOaNrgogICAgYXN5bmMgZmV0Y2hIb3RDb21wZXRpdGlvbnMoKSB7CiAgICAgIC8vIOiOt+WPluaKpeWQjeiusOW9leWSjOavlOi1m+aVsOaNrgogICAgICBjb25zdCBbcmVnaXN0cmF0aW9uUmVzLCBjb21wZXRpdGlvblJlc10gPSBhd2FpdCBQcm9taXNlLmFsbChbdGhpcy4kYXBpLlJlZ2lzdHJhdGlvbkFsbCgpLCB0aGlzLiRhcGkuQWxsQ29tcGV0aXRpb24oKV0pOwogICAgICBpZiAocmVnaXN0cmF0aW9uUmVzLmNvZGUgPT0gMjAwICYmIGNvbXBldGl0aW9uUmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgY29uc3QgcmVnaXN0cmF0aW9ucyA9IHJlZ2lzdHJhdGlvblJlcy5kYXRhOwogICAgICAgIGNvbnN0IGNvbXBldGl0aW9ucyA9IGNvbXBldGl0aW9uUmVzLmRhdGE7CgogICAgICAgIC8vIOiuoeeul+avj+S4quavlOi1m+eahOaKpeWQjeS6uuaVsAogICAgICAgIGNvbnN0IGNvbXBldGl0aW9uQ291bnRzID0ge307CiAgICAgICAgcmVnaXN0cmF0aW9ucy5mb3JFYWNoKHJlZyA9PiB7CiAgICAgICAgICBpZiAoIWNvbXBldGl0aW9uQ291bnRzW3JlZy5jb21wZXRpdGlvbklkXSkgewogICAgICAgICAgICBjb21wZXRpdGlvbkNvdW50c1tyZWcuY29tcGV0aXRpb25JZF0gPSAwOwogICAgICAgICAgfQogICAgICAgICAgY29tcGV0aXRpb25Db3VudHNbcmVnLmNvbXBldGl0aW9uSWRdKys7CiAgICAgICAgfSk7CgogICAgICAgIC8vIOWwhuavlOi1m+aVsOaNruS4juaKpeWQjeS6uuaVsOWQiOW5tgogICAgICAgIGNvbnN0IGNvbXBldGl0aW9uc1dpdGhDb3VudCA9IGNvbXBldGl0aW9ucy5tYXAoY29tcCA9PiAoewogICAgICAgICAgLi4uY29tcCwKICAgICAgICAgIHJlZ2lzdHJhdGlvbkNvdW50OiBjb21wZXRpdGlvbkNvdW50c1tjb21wLmNvbXBldGl0aW9uSWRdIHx8IDAKICAgICAgICB9KSk7CgogICAgICAgIC8vIOaMieaKpeWQjeS6uuaVsOaOkuW6j++8jOWPluWJjTXkuKoKICAgICAgICB0aGlzLmhvdENvbXBldGl0aW9ucyA9IGNvbXBldGl0aW9uc1dpdGhDb3VudC5zb3J0KChhLCBiKSA9PiBiLnJlZ2lzdHJhdGlvbkNvdW50IC0gYS5yZWdpc3RyYXRpb25Db3VudCkuc2xpY2UoMCwgNSk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDlpITnkIbmiqXlkI3otovlir/mlbDmja4KICAgIHByb2Nlc3NSZWdpc3RyYXRpb25UcmVuZERhdGEocmVnaXN0cmF0aW9ucykgewogICAgICAvLyDojrflj5bmnIDov5EzMOWkqeeahOaXpeacnwogICAgICBjb25zdCBkYXRlcyA9IFtdOwogICAgICBjb25zdCBjb3VudHMgPSBbXTsKICAgICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpOwogICAgICBmb3IgKGxldCBpID0gMjk7IGkgPj0gMDsgaS0tKSB7CiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTsKICAgICAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgLSBpKTsKICAgICAgICBjb25zdCBkYXRlU3RyID0gdGhpcy5mb3JtYXREYXRlKGRhdGUpOwogICAgICAgIGRhdGVzLnB1c2goZGF0ZVN0cik7CgogICAgICAgIC8vIOiuoeeul+W9k+WkqeeahOaKpeWQjeaVsOmHjwogICAgICAgIGNvbnN0IGNvdW50ID0gcmVnaXN0cmF0aW9ucy5maWx0ZXIocmVnID0+IHsKICAgICAgICAgIGNvbnN0IHJlZ0RhdGUgPSBuZXcgRGF0ZShyZWcucmVnaXN0cmF0aW9uVGltZSk7CiAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXREYXRlKHJlZ0RhdGUpID09PSBkYXRlU3RyOwogICAgICAgIH0pLmxlbmd0aDsKICAgICAgICBjb3VudHMucHVzaChjb3VudCk7CiAgICAgIH0KICAgICAgdGhpcy5yZWdpc3RyYXRpb25UcmVuZERhdGEgPSB7CiAgICAgICAgZGF0ZXMsCiAgICAgICAgY291bnRzCiAgICAgIH07CiAgICB9LAogICAgLy8g5aSE55CG5q+U6LWb5pWw5o2uCiAgICBwcm9jZXNzQ29tcGV0aXRpb25EYXRhKGNvbXBldGl0aW9ucykgewogICAgICAvLyDlnKjov5nph4zlj6/ku6Xmt7vliqDmm7TlpJrnmoTmlbDmja7lpITnkIbpgLvovpEKICAgIH0sCiAgICAvLyDliJ3lp4vljJbmiqXlkI3otovlir/lm77ooagKICAgIGluaXRSZWdpc3RyYXRpb25UcmVuZENoYXJ0KCkgewogICAgICBjb25zdCBjaGFydERvbSA9IHRoaXMuJHJlZnMucmVnaXN0cmF0aW9uVHJlbmQ7CiAgICAgIHRoaXMucmVnaXN0cmF0aW9uVHJlbmRDaGFydCA9IGVjaGFydHMuaW5pdChjaGFydERvbSk7CiAgICAgIGNvbnN0IG9wdGlvbiA9IHsKICAgICAgICB0b29sdGlwOiB7CiAgICAgICAgICB0cmlnZ2VyOiAiYXhpcyIsCiAgICAgICAgICBheGlzUG9pbnRlcjogewogICAgICAgICAgICB0eXBlOiAic2hhZG93IgogICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgZ3JpZDogewogICAgICAgICAgbGVmdDogIjMlIiwKICAgICAgICAgIHJpZ2h0OiAiNCUiLAogICAgICAgICAgYm90dG9tOiAiMyUiLAogICAgICAgICAgY29udGFpbkxhYmVsOiB0cnVlCiAgICAgICAgfSwKICAgICAgICB4QXhpczogewogICAgICAgICAgdHlwZTogImNhdGVnb3J5IiwKICAgICAgICAgIGRhdGE6IHRoaXMucmVnaXN0cmF0aW9uVHJlbmREYXRhLmRhdGVzLAogICAgICAgICAgYXhpc0xhYmVsOiB7CiAgICAgICAgICAgIHJvdGF0ZTogNDUKICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHlBeGlzOiB7CiAgICAgICAgICB0eXBlOiAidmFsdWUiLAogICAgICAgICAgbmFtZTogIuaKpeWQjeS6uuaVsCIKICAgICAgICB9LAogICAgICAgIHNlcmllczogW3sKICAgICAgICAgIG5hbWU6ICLmiqXlkI3kurrmlbAiLAogICAgICAgICAgdHlwZTogImxpbmUiLAogICAgICAgICAgZGF0YTogdGhpcy5yZWdpc3RyYXRpb25UcmVuZERhdGEuY291bnRzLAogICAgICAgICAgc21vb3RoOiB0cnVlLAogICAgICAgICAgYXJlYVN0eWxlOiB7CiAgICAgICAgICAgIG9wYWNpdHk6IDAuMwogICAgICAgICAgfSwKICAgICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgICBjb2xvcjogIiMxODkwZmYiCiAgICAgICAgICB9CiAgICAgICAgfV0KICAgICAgfTsKICAgICAgdGhpcy5yZWdpc3RyYXRpb25UcmVuZENoYXJ0LnNldE9wdGlvbihvcHRpb24pOwoKICAgICAgLy8g5ZON5bqU56qX5Y+j5aSn5bCP5Y+Y5YyWCiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCAoKSA9PiB7CiAgICAgICAgdGhpcy5yZWdpc3RyYXRpb25UcmVuZENoYXJ0LnJlc2l6ZSgpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDliJ3lp4vljJbojrflpZbmg4XlhrXlm77ooagKICAgIGluaXRBd2FyZENoYXJ0KCkgewogICAgICBjb25zdCBjaGFydERvbSA9IHRoaXMuJHJlZnMuYXdhcmRDaGFydDsKICAgICAgdGhpcy5hd2FyZENoYXJ0ID0gZWNoYXJ0cy5pbml0KGNoYXJ0RG9tKTsKICAgICAgY29uc3Qgb3B0aW9uID0gewogICAgICAgIHRvb2x0aXA6IHsKICAgICAgICAgIHRyaWdnZXI6ICJpdGVtIiwKICAgICAgICAgIGZvcm1hdHRlcjogInthfSA8YnIvPntifToge2N9ICh7ZH0lKSIKICAgICAgICB9LAogICAgICAgIGxlZ2VuZDogewogICAgICAgICAgb3JpZW50OiAiaG9yaXpvbnRhbCIsCiAgICAgICAgICBib3R0b206ICJib3R0b20iLAogICAgICAgICAgZGF0YTogWyLkuIDnrYnlpZYiLCAi5LqM562J5aWWIiwgIuS4ieetieWlliJdCiAgICAgICAgfSwKICAgICAgICBzZXJpZXM6IFt7CiAgICAgICAgICBuYW1lOiAi6I635aWW5oOF5Ya1IiwKICAgICAgICAgIHR5cGU6ICJwaWUiLAogICAgICAgICAgcmFkaXVzOiBbIjQwJSIsICI3MCUiXSwKICAgICAgICAgIGF2b2lkTGFiZWxPdmVybGFwOiBmYWxzZSwKICAgICAgICAgIGl0ZW1TdHlsZTogewogICAgICAgICAgICBib3JkZXJSYWRpdXM6IDEwLAogICAgICAgICAgICBib3JkZXJDb2xvcjogIiNmZmYiLAogICAgICAgICAgICBib3JkZXJXaWR0aDogMgogICAgICAgICAgfSwKICAgICAgICAgIGxhYmVsOiB7CiAgICAgICAgICAgIHNob3c6IGZhbHNlLAogICAgICAgICAgICBwb3NpdGlvbjogImNlbnRlciIKICAgICAgICAgIH0sCiAgICAgICAgICBlbXBoYXNpczogewogICAgICAgICAgICBsYWJlbDogewogICAgICAgICAgICAgIHNob3c6IHRydWUsCiAgICAgICAgICAgICAgZm9udFNpemU6ICIxOCIsCiAgICAgICAgICAgICAgZm9udFdlaWdodDogImJvbGQiCiAgICAgICAgICAgIH0KICAgICAgICAgIH0sCiAgICAgICAgICBsYWJlbExpbmU6IHsKICAgICAgICAgICAgc2hvdzogZmFsc2UKICAgICAgICAgIH0sCiAgICAgICAgICBkYXRhOiBbewogICAgICAgICAgICB2YWx1ZTogdGhpcy5maXJzdGxldmVsLAogICAgICAgICAgICBuYW1lOiAi5LiA562J5aWWIiwKICAgICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgICAgY29sb3I6ICIjZmY0ZDRmIgogICAgICAgICAgICB9CiAgICAgICAgICB9LCB7CiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNlY29uZGxldmVsLAogICAgICAgICAgICBuYW1lOiAi5LqM562J5aWWIiwKICAgICAgICAgICAgaXRlbVN0eWxlOiB7CiAgICAgICAgICAgICAgY29sb3I6ICIjZmFhZDE0IgogICAgICAgICAgICB9CiAgICAgICAgICB9LCB7CiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnRoaXJkbGV2ZWwsCiAgICAgICAgICAgIG5hbWU6ICLkuInnrYnlpZYiLAogICAgICAgICAgICBpdGVtU3R5bGU6IHsKICAgICAgICAgICAgICBjb2xvcjogIiM1MmM0MWEiCiAgICAgICAgICAgIH0KICAgICAgICAgIH1dCiAgICAgICAgfV0KICAgICAgfTsKICAgICAgdGhpcy5hd2FyZENoYXJ0LnNldE9wdGlvbihvcHRpb24pOwoKICAgICAgLy8g5ZON5bqU56qX5Y+j5aSn5bCP5Y+Y5YyWCiAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCAoKSA9PiB7CiAgICAgICAgdGhpcy5hd2FyZENoYXJ0LnJlc2l6ZSgpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDmoLzlvI/ljJbml6XmnJ8KICAgIGZvcm1hdERhdGUoZGF0ZSkgewogICAgICBjb25zdCB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpOwogICAgICBjb25zdCBtb250aCA9IFN0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAiMCIpOwogICAgICBjb25zdCBkYXkgPSBTdHJpbmcoZGF0ZS5nZXREYXRlKCkpLnBhZFN0YXJ0KDIsICIwIik7CiAgICAgIHJldHVybiBgJHt5ZWFyfS0ke21vbnRofS0ke2RheX1gOwogICAgfSwKICAgIC8vIOiOt+WPluavlOi1m+eKtuaAgeaWh+acrAogICAgZ2V0Q29tcGV0aXRpb25TdGF0dXMoc3RhdHVzKSB7CiAgICAgIGNvbnN0IHN0YXR1c01hcCA9IHsKICAgICAgICAwOiAi6L+b6KGM5LitIiwKICAgICAgICAxOiAi5bey57uI5q2iIgogICAgICB9OwogICAgICByZXR1cm4gc3RhdHVzTWFwW3N0YXR1c10gfHwgIuacquefpeeKtuaAgSI7CiAgICB9CiAgfQp9Ow=="},{"version":3,"names":["echarts","name","data","loading","totaluser","totalteacher","totalstudent","totalmatch","firstlevel","secondlevel","thirdlevel","registrationTrendData","hotCompetitions","totalinfo","totalsuccess","totalday","totaldays","registrationTrendChart","awardChart","useMockData","mounted","fetchAllData","beforeDestroy","dispose","methods","fetchStatistics","Promise","all","fetchAwardStats","fetchRegistrationTrend","fetchHotCompetitions","$nextTick","initRegistrationTrendChart","initAwardChart","error","console","$message","response","$api","getCountTotal","log","code","stats","totalUsers","teacherCount","studentCount","competitionCount","loadMockData","generateMockTrendData","generateMockHotCompetitions","dates","counts","today","Date","i","date","setDate","getDate","dateStr","formatDate","push","baseCount","Math","floor","randomFactor","random","count","max","competitionNames","map","index","competitionId","competitionName","registrationCount","competitionStatus","fetchUserStats","getCount","then","res","getTeacherCount","getStudentCount","fetchCompetitionStats","AllCompetition","length","processCompetitionData","Allinformation","currentDate","sevenDaysAgo","filter","item","registrationEndTime","getWinCountByLevel","level","RegistrationAll","processRegistrationTrendData","registrationStatus","registrationTime","registrationRes","competitionRes","registrations","competitions","competitionCounts","forEach","reg","competitionsWithCount","comp","sort","a","b","slice","regDate","chartDom","$refs","registrationTrend","init","option","tooltip","trigger","axisPointer","type","grid","left","right","bottom","containLabel","xAxis","axisLabel","rotate","yAxis","series","smooth","areaStyle","opacity","itemStyle","color","setOption","window","addEventListener","resize","formatter","legend","orient","radius","avoidLabelOverlap","borderRadius","borderColor","borderWidth","label","show","position","emphasis","fontSize","fontWeight","labelLine","value","year","getFullYear","month","String","getMonth","padStart","day","getCompetitionStatus","status","statusMap"],"sources":["src/views/user/Console.vue"],"sourcesContent":["<template>\n <div class=\"dashboard-container\">\n <!-- 数据卡片区域 -->\n <a-row :gutter=\"24\">\n <a-col :span=\"6\">\n <a-card class=\"data-card\">\n <a-statistic\n title=\"用户总数\"\n :value=\"totaluser\"\n :precision=\"0\"\n style=\"text-align: center\"\n >\n <template #prefix>\n <a-icon type=\"user\" />\n </template>\n </a-statistic>\n </a-card>\n </a-col>\n <a-col :span=\"6\">\n <a-card class=\"data-card\">\n <a-statistic\n title=\"教师人数\"\n :value=\"totalteacher\"\n :precision=\"0\"\n style=\"text-align: center\"\n >\n <template #prefix>\n <a-icon type=\"team\" />\n </template>\n </a-statistic>\n </a-card>\n </a-col>\n <a-col :span=\"6\">\n <a-card class=\"data-card\">\n <a-statistic\n title=\"学生人数\"\n :value=\"totalstudent\"\n :precision=\"0\"\n style=\"text-align: center\"\n >\n <template #prefix>\n <a-icon type=\"solution\" />\n </template>\n </a-statistic>\n </a-card>\n </a-col>\n <a-col :span=\"6\">\n <a-card class=\"data-card\">\n <a-statistic\n title=\"比赛总数\"\n :value=\"totalmatch\"\n :precision=\"0\"\n style=\"text-align: center\"\n >\n <template #prefix>\n <a-icon type=\"trophy\" />\n </template>\n </a-statistic>\n </a-card>\n </a-col>\n </a-row>\n\n <!-- 趋势图和热门比赛区域 -->\n <a-row :gutter=\"24\" style=\"margin-top: 24px\">\n <!-- 报名趋势图 -->\n <a-col :span=\"16\">\n <a-card title=\"学生报名比赛趋势\" :bordered=\"false\">\n <div ref=\"registrationTrend\" style=\"height: 400px\"></div>\n </a-card>\n </a-col>\n\n <!-- 热门比赛列表 -->\n <a-col :span=\"8\">\n <a-card title=\"热门比赛\" :bordered=\"false\">\n <a-list\n itemLayout=\"horizontal\"\n :dataSource=\"hotCompetitions\"\n :loading=\"loading\"\n >\n <a-list-item slot=\"renderItem\" slot-scope=\"item\">\n <a-list-item-meta>\n <template slot=\"title\">\n <a href=\"javascript:;\">{{ item.competitionName }}</a>\n </template>\n <template slot=\"description\">\n <span>报名人数: {{ item.registrationCount }}</span>\n <span style=\"margin-left: 16px\">\n 状态: {{ getCompetitionStatus(item.competitionStatus) }}\n </span>\n </template>\n <a-avatar\n slot=\"avatar\"\n style=\"background-color: #1890ff\"\n icon=\"trophy\"\n />\n </a-list-item-meta>\n </a-list-item>\n </a-list>\n </a-card>\n </a-col>\n </a-row>\n\n <!-- 获奖情况统计 -->\n <a-row :gutter=\"24\" style=\"margin-top: 24px\">\n <a-col :span=\"24\">\n <a-card title=\"获奖情况统计\" :bordered=\"false\">\n <div ref=\"awardChart\" style=\"height: 300px\"></div>\n </a-card>\n </a-col>\n </a-row>\n </div>\n</template>\n\n<script>\nimport * as echarts from \"echarts\";\n\nexport default {\n name: \"Console\",\n data() {\n return {\n loading: false,\n // 用户统计数据\n totaluser: 0,\n totalteacher: 0,\n totalstudent: 0,\n totalmatch: 0,\n\n // 获奖数据\n firstlevel: 0,\n secondlevel: 0,\n thirdlevel: 0,\n\n // 报名趋势数据\n registrationTrendData: [],\n\n // 热门比赛列表\n hotCompetitions: [],\n\n // 其他统计数据\n totalinfo: 0,\n totalsuccess: 0,\n totalday: 0,\n totaldays: 0,\n\n // 图表实例\n registrationTrendChart: null,\n awardChart: null,\n\n // 是否使用模拟数据\n useMockData: false,\n };\n },\n mounted() {\n this.fetchAllData();\n },\n beforeDestroy() {\n // 销毁图表实例,避免内存泄漏\n if (this.registrationTrendChart) {\n this.registrationTrendChart.dispose();\n }\n if (this.awardChart) {\n this.awardChart.dispose();\n }\n },\n methods: {\n // 获取所有数据\n async fetchAllData() {\n this.loading = true;\n try {\n // 优先获取基础统计数据\n await this.fetchStatistics();\n // 获取其他数据\n await Promise.all([\n this.fetchAwardStats(),\n this.fetchRegistrationTrend(),\n this.fetchHotCompetitions(),\n ]);\n\n this.$nextTick(() => {\n this.initRegistrationTrendChart();\n this.initAwardChart();\n });\n } catch (error) {\n console.error(\"获取数据失败\", error);\n this.$message.error(\"获取数据失败\");\n } finally {\n this.loading = false;\n }\n },\n\n // 获取统计数据\n async fetchStatistics() {\n try {\n // this.$api.getWinCountByLevel\n const response = await this.$api.getCountTotal();\n console.log(\"response\", response);\n if (response.code === 200) {\n console.log(\"response.data\", response.data);\n const stats = response.data;\n // 直接使用接口返回的数据\n this.totaluser = stats.totalUsers;\n this.totalteacher = stats.teacherCount;\n this.totalstudent = stats.studentCount;\n this.totalmatch = stats.competitionCount;\n }\n } catch (error) {\n console.error(\"获取统计数据失败:\", error);\n this.$message.error(\"获取统计数据失败\");\n // 发生错误时重置数据为0\n this.totaluser = 0;\n this.totalteacher = 0;\n this.totalstudent = 0;\n this.totalmatch = 0;\n }\n },\n\n // 加载模拟数据\n loadMockData() {\n // 模拟用户统计数据\n this.totaluser = 1256;\n this.totalteacher = 128;\n this.totalstudent = 1128;\n this.totalmatch = 45;\n\n // 模拟获奖数据\n this.firstlevel = 56;\n this.secondlevel = 112;\n this.thirdlevel = 235;\n\n // 模拟其他统计数据\n this.totalinfo = 89;\n this.totalsuccess = 876;\n this.totalday = 32;\n this.totaldays = 5;\n\n // 模拟报名趋势数据\n this.generateMockTrendData();\n\n // 模拟热门比赛数据\n this.generateMockHotCompetitions();\n },\n\n // 生成模拟趋势数据\n generateMockTrendData() {\n const dates = [];\n const counts = [];\n const today = new Date();\n\n for (let i = 29; i >= 0; i--) {\n const date = new Date(today);\n date.setDate(date.getDate() - i);\n const dateStr = this.formatDate(date);\n dates.push(dateStr);\n\n // 生成随机报名数量,呈现波动上升趋势\n const baseCount = 5 + Math.floor((30 - i) / 3);\n const randomFactor = Math.floor(Math.random() * 10) - 3;\n const count = Math.max(0, baseCount + randomFactor);\n\n counts.push(count);\n }\n\n this.registrationTrendData = {\n dates,\n counts,\n };\n },\n\n // 生成模拟热门比赛数据\n generateMockHotCompetitions() {\n const competitionNames = [\n \"全国大学生数学建模竞赛\",\n \"互联网+创新创业大赛\",\n \"ACM程序设计大赛\",\n \"挑战杯创新创业大赛\",\n \"全国大学生机器人大赛\",\n ];\n\n this.hotCompetitions = competitionNames.map((name, index) => {\n // 生成随机报名人数,排名越前报名人数越多\n const baseCount = 200 - index * 30;\n const randomFactor = Math.floor(Math.random() * 20);\n\n return {\n competitionId: `comp-${index + 1}`,\n competitionName: name,\n registrationCount: baseCount + randomFactor,\n competitionStatus: Math.random() > 0.3 ? 0 : 1,\n };\n });\n },\n\n // 获取用户统计数据\n async fetchUserStats() {\n // 获取用户总数\n await this.$api.getCount().then((res) => {\n if (res.code == 200) {\n this.totaluser = res.data;\n }\n });\n\n // 获取教师总人数\n await this.$api.getTeacherCount().then((res) => {\n if (res.code == 200) {\n this.totalteacher = res.data;\n }\n });\n\n // 获取学生总人数\n await this.$api.getStudentCount().then((res) => {\n if (res.code == 200) {\n this.totalstudent = res.data;\n }\n });\n },\n\n // 获取比赛统计数据\n async fetchCompetitionStats() {\n // 获取所有比赛数量\n await this.$api.AllCompetition().then((res) => {\n if (res.code == 200) {\n this.totalmatch = res.data.length;\n\n // 处理热门比赛数据\n this.processCompetitionData(res.data);\n }\n });\n\n // 获取所有资料\n await this.$api.Allinformation().then((res) => {\n if (res.code == 200) {\n this.totalinfo = res.data.length;\n }\n });\n\n // 获取七天内比赛的数量\n const currentDate = new Date();\n const sevenDaysAgo = new Date(currentDate);\n sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);\n\n await this.$api.AllCompetition().then((res) => {\n if (res.code == 200) {\n this.totaldays = res.data.filter((item) => {\n const registrationEndTime = new Date(item.registrationEndTime);\n return (\n registrationEndTime >= sevenDaysAgo &&\n registrationEndTime <= currentDate\n );\n }).length;\n }\n });\n },\n\n // 获取获奖统计数据\n async fetchAwardStats() {\n // 一等奖人数\n await this.$api.getWinCountByLevel({ level: \"一等奖\" }).then((res) => {\n if (res.code == 200) {\n this.firstlevel = res.data;\n }\n });\n\n // 二等奖人数\n await this.$api.getWinCountByLevel({ level: \"二等奖\" }).then((res) => {\n if (res.code == 200) {\n this.secondlevel = res.data;\n }\n });\n\n // 三等奖\n await this.$api.getWinCountByLevel({ level: \"三等奖\" }).then((res) => {\n if (res.code == 200) {\n this.thirdlevel = res.data;\n }\n });\n },\n\n // 获取报名趋势数据\n async fetchRegistrationTrend() {\n // 获取报名记录\n await this.$api.RegistrationAll().then((res) => {\n if (res.code == 200) {\n // 处理报名趋势数据\n this.processRegistrationTrendData(res.data);\n\n // 获取成功报名数量\n this.totalsuccess = res.data.filter(\n (item) => item.registrationStatus == \"成功报名\"\n ).length;\n\n // 获取七天内成功报名的数量\n const currentDate = new Date();\n const sevenDaysAgo = new Date(currentDate);\n sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);\n\n this.totalday = res.data.filter((item) => {\n const registrationTime = new Date(item.registrationTime);\n return (\n registrationTime >= sevenDaysAgo &&\n registrationTime <= currentDate\n );\n }).length;\n }\n });\n },\n\n // 获取热门比赛数据\n async fetchHotCompetitions() {\n // 获取报名记录和比赛数据\n const [registrationRes, competitionRes] = await Promise.all([\n this.$api.RegistrationAll(),\n this.$api.AllCompetition(),\n ]);\n\n if (registrationRes.code == 200 && competitionRes.code == 200) {\n const registrations = registrationRes.data;\n const competitions = competitionRes.data;\n\n // 计算每个比赛的报名人数\n const competitionCounts = {};\n registrations.forEach((reg) => {\n if (!competitionCounts[reg.competitionId]) {\n competitionCounts[reg.competitionId] = 0;\n }\n competitionCounts[reg.competitionId]++;\n });\n\n // 将比赛数据与报名人数合并\n const competitionsWithCount = competitions.map((comp) => ({\n ...comp,\n registrationCount: competitionCounts[comp.competitionId] || 0,\n }));\n\n // 按报名人数排序,取前5个\n this.hotCompetitions = competitionsWithCount\n .sort((a, b) => b.registrationCount - a.registrationCount)\n .slice(0, 5);\n }\n },\n\n // 处理报名趋势数据\n processRegistrationTrendData(registrations) {\n // 获取最近30天的日期\n const dates = [];\n const counts = [];\n const today = new Date();\n\n for (let i = 29; i >= 0; i--) {\n const date = new Date(today);\n date.setDate(date.getDate() - i);\n const dateStr = this.formatDate(date);\n dates.push(dateStr);\n\n // 计算当天的报名数量\n const count = registrations.filter((reg) => {\n const regDate = new Date(reg.registrationTime);\n return this.formatDate(regDate) === dateStr;\n }).length;\n\n counts.push(count);\n }\n\n this.registrationTrendData = {\n dates,\n counts,\n };\n },\n\n // 处理比赛数据\n processCompetitionData(competitions) {\n // 在这里可以添加更多的数据处理逻辑\n },\n\n // 初始化报名趋势图表\n initRegistrationTrendChart() {\n const chartDom = this.$refs.registrationTrend;\n this.registrationTrendChart = echarts.init(chartDom);\n\n const option = {\n tooltip: {\n trigger: \"axis\",\n axisPointer: {\n type: \"shadow\",\n },\n },\n grid: {\n left: \"3%\",\n right: \"4%\",\n bottom: \"3%\",\n containLabel: true,\n },\n xAxis: {\n type: \"category\",\n data: this.registrationTrendData.dates,\n axisLabel: {\n rotate: 45,\n },\n },\n yAxis: {\n type: \"value\",\n name: \"报名人数\",\n },\n series: [\n {\n name: \"报名人数\",\n type: \"line\",\n data: this.registrationTrendData.counts,\n smooth: true,\n areaStyle: {\n opacity: 0.3,\n },\n itemStyle: {\n color: \"#1890ff\",\n },\n },\n ],\n };\n\n this.registrationTrendChart.setOption(option);\n\n // 响应窗口大小变化\n window.addEventListener(\"resize\", () => {\n this.registrationTrendChart.resize();\n });\n },\n\n // 初始化获奖情况图表\n initAwardChart() {\n const chartDom = this.$refs.awardChart;\n this.awardChart = echarts.init(chartDom);\n\n const option = {\n tooltip: {\n trigger: \"item\",\n formatter: \"{a} <br/>{b}: {c} ({d}%)\",\n },\n legend: {\n orient: \"horizontal\",\n bottom: \"bottom\",\n data: [\"一等奖\", \"二等奖\", \"三等奖\"],\n },\n series: [\n {\n name: \"获奖情况\",\n type: \"pie\",\n radius: [\"40%\", \"70%\"],\n avoidLabelOverlap: false,\n itemStyle: {\n borderRadius: 10,\n borderColor: \"#fff\",\n borderWidth: 2,\n },\n label: {\n show: false,\n position: \"center\",\n },\n emphasis: {\n label: {\n show: true,\n fontSize: \"18\",\n fontWeight: \"bold\",\n },\n },\n labelLine: {\n show: false,\n },\n data: [\n {\n value: this.firstlevel,\n name: \"一等奖\",\n itemStyle: { color: \"#ff4d4f\" },\n },\n {\n value: this.secondlevel,\n name: \"二等奖\",\n itemStyle: { color: \"#faad14\" },\n },\n {\n value: this.thirdlevel,\n name: \"三等奖\",\n itemStyle: { color: \"#52c41a\" },\n },\n ],\n },\n ],\n };\n\n this.awardChart.setOption(option);\n\n // 响应窗口大小变化\n window.addEventListener(\"resize\", () => {\n this.awardChart.resize();\n });\n },\n\n // 格式化日期\n formatDate(date) {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n },\n\n // 获取比赛状态文本\n getCompetitionStatus(status) {\n const statusMap = {\n 0: \"进行中\",\n 1: \"已终止\",\n };\n return statusMap[status] || \"未知状态\";\n },\n },\n};\n</script>\n\n<style lang=\"less\" scoped>\n.dashboard-container {\n padding: 24px;\n background-color: #f0f2f5;\n min-height: 100%;\n}\n\n.data-card {\n margin-bottom: 24px;\n border-radius: 8px;\n overflow: hidden;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07);\n transition: all 0.3s;\n\n &:hover {\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n transform: translateY(-2px);\n }\n\n :deep(.ant-statistic-title) {\n font-size: 16px;\n color: rgba(0, 0, 0, 0.65);\n margin-bottom: 16px;\n }\n\n :deep(.ant-statistic-content) {\n font-size: 28px;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.85);\n }\n\n :deep(.ant-statistic-content-prefix) {\n margin-right: 8px;\n font-size: 24px;\n color: #1890ff;\n }\n}\n\n.ant-card {\n border-radius: 8px;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.07);\n\n :deep(.ant-card-head) {\n border-bottom: 1px solid #f0f0f0;\n padding: 0 24px;\n\n .ant-card-head-title {\n font-size: 16px;\n font-weight: 600;\n color: rgba(0, 0, 0, 0.85);\n }\n }\n}\n</style>\n"],"mappings":";AAkHA,YAAAA,OAAA;AAEA;EACAC,IAAA;EACAC,KAAA;IACA;MACAC,OAAA;MACA;MACAC,SAAA;MACAC,YAAA;MACAC,YAAA;MACAC,UAAA;MAEA;MACAC,UAAA;MACAC,WAAA;MACAC,UAAA;MAEA;MACAC,qBAAA;MAEA;MACAC,eAAA;MAEA;MACAC,SAAA;MACAC,YAAA;MACAC,QAAA;MACAC,SAAA;MAEA;MACAC,sBAAA;MACAC,UAAA;MAEA;MACAC,WAAA;IACA;EACA;EACAC,QAAA;IACA,KAAAC,YAAA;EACA;EACAC,cAAA;IACA;IACA,SAAAL,sBAAA;MACA,KAAAA,sBAAA,CAAAM,OAAA;IACA;IACA,SAAAL,UAAA;MACA,KAAAA,UAAA,CAAAK,OAAA;IACA;EACA;EACAC,OAAA;IACA;IACA,MAAAH,aAAA;MACA,KAAAlB,OAAA;MACA;QACA;QACA,WAAAsB,eAAA;QACA;QACA,MAAAC,OAAA,CAAAC,GAAA,EACA,KAAAC,eAAA,IACA,KAAAC,sBAAA,IACA,KAAAC,oBAAA,GACA;QAEA,KAAAC,SAAA;UACA,KAAAC,0BAAA;UACA,KAAAC,cAAA;QACA;MACA,SAAAC,KAAA;QACAC,OAAA,CAAAD,KAAA,WAAAA,KAAA;QACA,KAAAE,QAAA,CAAAF,KAAA;MACA;QACA,KAAA/B,OAAA;MACA;IACA;IAEA;IACA,MAAAsB,gBAAA;MACA;QACA;QACA,MAAAY,QAAA,cAAAC,IAAA,CAAAC,aAAA;QACAJ,OAAA,CAAAK,GAAA,aAAAH,QAAA;QACA,IAAAA,QAAA,CAAAI,IAAA;UACAN,OAAA,CAAAK,GAAA,kBAAAH,QAAA,CAAAnC,IAAA;UACA,MAAAwC,KAAA,GAAAL,QAAA,CAAAnC,IAAA;UACA;UACA,KAAAE,SAAA,GAAAsC,KAAA,CAAAC,UAAA;UACA,KAAAtC,YAAA,GAAAqC,KAAA,CAAAE,YAAA;UACA,KAAAtC,YAAA,GAAAoC,KAAA,CAAAG,YAAA;UACA,KAAAtC,UAAA,GAAAmC,KAAA,CAAAI,gBAAA;QACA;MACA,SAAAZ,KAAA;QACAC,OAAA,CAAAD,KAAA,cAAAA,KAAA;QACA,KAAAE,QAAA,CAAAF,KAAA;QACA;QACA,KAAA9B,SAAA;QACA,KAAAC,YAAA;QACA,KAAAC,YAAA;QACA,KAAAC,UAAA;MACA;IACA;IAEA;IACAwC,aAAA;MACA;MACA,KAAA3C,SAAA;MACA,KAAAC,YAAA;MACA,KAAAC,YAAA;MACA,KAAAC,UAAA;;MAEA;MACA,KAAAC,UAAA;MACA,KAAAC,WAAA;MACA,KAAAC,UAAA;;MAEA;MACA,KAAAG,SAAA;MACA,KAAAC,YAAA;MACA,KAAAC,QAAA;MACA,KAAAC,SAAA;;MAEA;MACA,KAAAgC,qBAAA;;MAEA;MACA,KAAAC,2BAAA;IACA;IAEA;IACAD,sBAAA;MACA,MAAAE,KAAA;MACA,MAAAC,MAAA;MACA,MAAAC,KAAA,OAAAC,IAAA;MAEA,SAAAC,CAAA,OAAAA,CAAA,OAAAA,CAAA;QACA,MAAAC,IAAA,OAAAF,IAAA,CAAAD,KAAA;QACAG,IAAA,CAAAC,OAAA,CAAAD,IAAA,CAAAE,OAAA,KAAAH,CAAA;QACA,MAAAI,OAAA,QAAAC,UAAA,CAAAJ,IAAA;QACAL,KAAA,CAAAU,IAAA,CAAAF,OAAA;;QAEA;QACA,MAAAG,SAAA,OAAAC,IAAA,CAAAC,KAAA,OAAAT,CAAA;QACA,MAAAU,YAAA,GAAAF,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAG,MAAA;QACA,MAAAC,KAAA,GAAAJ,IAAA,CAAAK,GAAA,IAAAN,SAAA,GAAAG,YAAA;QAEAb,MAAA,CAAAS,IAAA,CAAAM,KAAA;MACA;MAEA,KAAAvD,qBAAA;QACAuC,KAAA;QACAC;MACA;IACA;IAEA;IACAF,4BAAA;MACA,MAAAmB,gBAAA,IACA,eACA,cACA,aACA,aACA,aACA;MAEA,KAAAxD,eAAA,GAAAwD,gBAAA,CAAAC,GAAA,EAAApE,IAAA,EAAAqE,KAAA;QACA;QACA,MAAAT,SAAA,SAAAS,KAAA;QACA,MAAAN,YAAA,GAAAF,IAAA,CAAAC,KAAA,CAAAD,IAAA,CAAAG,MAAA;QAEA;UACAM,aAAA,UAAAD,KAAA;UACAE,eAAA,EAAAvE,IAAA;UACAwE,iBAAA,EAAAZ,SAAA,GAAAG,YAAA;UACAU,iBAAA,EAAAZ,IAAA,CAAAG,MAAA;QACA;MACA;IACA;IAEA;IACA,MAAAU,eAAA;MACA;MACA,WAAArC,IAAA,CAAAsC,QAAA,GAAAC,IAAA,CAAAC,GAAA;QACA,IAAAA,GAAA,CAAArC,IAAA;UACA,KAAArC,SAAA,GAAA0E,GAAA,CAAA5E,IAAA;QACA;MACA;;MAEA;MACA,WAAAoC,IAAA,CAAAyC,eAAA,GAAAF,IAAA,CAAAC,GAAA;QACA,IAAAA,GAAA,CAAArC,IAAA;UACA,KAAApC,YAAA,GAAAyE,GAAA,CAAA5E,IAAA;QACA;MACA;;MAEA;MACA,WAAAoC,IAAA,CAAA0C,eAAA,GAAAH,IAAA,CAAAC,GAAA;QACA,IAAAA,GAAA,CAAArC,IAAA;UACA,KAAAnC,YAAA,GAAAwE,GAAA,CAAA5E,IAAA;QACA;MACA;IACA;IAEA;IACA,MAAA+E,sBAAA;MACA;MACA,WAAA3C,IAAA,CAAA4C,cAAA,GAAAL,IAAA,CAAAC,GAAA;QACA,IAAAA,GAAA,CAAArC,IAAA;UACA,KAAAlC,UAAA,GAAAuE,GAAA,CAAA5E,IAAA,CAAAiF,MAAA;;UAEA;UACA,KAAAC,sBAAA,CAAAN,GAAA,CAAA5E,IAAA;QACA;MACA;;MAEA;MACA,WAAAoC,IAAA,CAAA+C,cAAA,GAAAR,IAAA,CAAAC,GAAA;QACA,IAAAA,GAAA,CAAArC,IAAA;UACA,KAAA5B,SAAA,GAAAiE,GAAA,CAAA5E,IAAA,CAAAiF,MAAA;QACA;MACA;;MAEA;MACA,MAAAG,WAAA,OAAAjC,IAAA;MACA,MAAAkC,YAAA,OAAAlC,IAAA,CAAAiC,WAAA;MACAC,YAAA,CAAA/B,OAAA,CAAA+B,YAAA,CAAA9B,OAAA;MAEA,WAAAnB,IAAA,CAAA4C,cAAA,GAAAL,IAAA,CAAAC,GAAA;QACA,IAAAA,GAAA,CAAArC,IAAA;UACA,KAAAzB,SAAA,GAAA8D,GAAA,CAAA5E,IAAA,CAAAsF,MAAA,CAAAC,IAAA;YACA,MAAAC,mBAAA,OAAArC,IAAA,CAAAoC,IAAA,CAAAC,mBAAA;YACA,OACAA,mBAAA,IAAAH,YAAA,IACAG,mBAAA,IAAAJ,WAAA;UAEA,GAAAH,MAAA;QACA;MACA;IACA;IAEA;IACA,MAAAvD,gBAAA;MACA;MACA,WAAAU,IAAA,CAAAqD,kBAAA;QAAAC,KAAA;MAAA,GAAAf,IAAA,CAAAC,GAAA;QACA,IAAAA,GAAA,CAAArC,IAAA;UACA,KAAAjC,UAAA,GAAAsE,GAAA,CAAA5E,IAAA;QACA;MACA;;MAEA;MACA,WAAAoC,IAAA,CAAAqD,kBAAA;QAAAC,KAAA;MAAA,GAAAf,IAAA,CAAAC,GAAA;QACA,IAAAA,GAAA,CAAArC,IAAA;UACA,KAAAhC,WAAA,GAAAqE,GAAA,CAAA5E,IAAA;QACA;MACA;;MAEA;MACA,WAAAoC,IAAA,CAAAqD,kBAAA;QAAAC,KAAA;MAAA,GAAAf,IAAA,CAAAC,GAAA;QACA,IAAAA,GAAA,CAAArC,IAAA;UACA,KAAA/B,UAAA,GAAAoE,GAAA,CAAA5E,IAAA;QACA;MACA;IACA;IAEA;IACA,MAAA2B,uBAAA;MACA;MACA,WAAAS,IAAA,CAAAuD,eAAA,GAAAhB,IAAA,CAAAC,GAAA;QACA,IAAAA,GAAA,CAAArC,IAAA;UACA;UACA,KAAAqD,4BAAA,CAAAhB,GAAA,CAAA5E,IAAA;;UAEA;UACA,KAAAY,YAAA,GAAAgE,GAAA,CAAA5E,IAAA,CAAAsF,MAAA,CACAC,IAAA,IAAAA,IAAA,CAAAM,kBAAA,UACA,EAAAZ,MAAA;;UAEA;UACA,MAAAG,WAAA,OAAAjC,IAAA;UACA,MAAAkC,YAAA,OAAAlC,IAAA,CAAAiC,WAAA;UACAC,YAAA,CAAA/B,OAAA,CAAA+B,YAAA,CAAA9B,OAAA;UAEA,KAAA1C,QAAA,GAAA+D,GAAA,CAAA5E,IAAA,CAAAsF,MAAA,CAAAC,IAAA;YACA,MAAAO,gBAAA,OAAA3C,IAAA,CAAAoC,IAAA,CAAAO,gBAAA;YACA,OACAA,gBAAA,IAAAT,YAAA,IACAS,gBAAA,IAAAV,WAAA;UAEA,GAAAH,MAAA;QACA;MACA;IACA;IAEA;IACA,MAAArD,qBAAA;MACA;MACA,OAAAmE,eAAA,EAAAC,cAAA,UAAAxE,OAAA,CAAAC,GAAA,EACA,KAAAW,IAAA,CAAAuD,eAAA,IACA,KAAAvD,IAAA,CAAA4C,cAAA,GACA;MAEA,IAAAe,eAAA,CAAAxD,IAAA,WAAAyD,cAAA,CAAAzD,IAAA;QACA,MAAA0D,aAAA,GAAAF,eAAA,CAAA/F,IAAA;QACA,MAAAkG,YAAA,GAAAF,cAAA,CAAAhG,IAAA;;QAEA;QACA,MAAAmG,iBAAA;QACAF,aAAA,CAAAG,OAAA,CAAAC,GAAA;UACA,KAAAF,iBAAA,CAAAE,GAAA,CAAAhC,aAAA;YACA8B,iBAAA,CAAAE,GAAA,CAAAhC,aAAA;UACA;UACA8B,iBAAA,CAAAE,GAAA,CAAAhC,aAAA;QACA;;QAEA;QACA,MAAAiC,qBAAA,GAAAJ,YAAA,CAAA/B,GAAA,CAAAoC,IAAA;UACA,GAAAA,IAAA;UACAhC,iBAAA,EAAA4B,iBAAA,CAAAI,IAAA,CAAAlC,aAAA;QACA;;QAEA;QACA,KAAA3D,eAAA,GAAA4F,qBAAA,CACAE,IAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAA,CAAA,CAAAnC,iBAAA,GAAAkC,CAAA,CAAAlC,iBAAA,EACAoC,KAAA;MACA;IACA;IAEA;IACAf,6BAAAK,aAAA;MACA;MACA,MAAAjD,KAAA;MACA,MAAAC,MAAA;MACA,MAAAC,KAAA,OAAAC,IAAA;MAEA,SAAAC,CAAA,OAAAA,CAAA,OAAAA,CAAA;QACA,MAAAC,IAAA,OAAAF,IAAA,CAAAD,KAAA;QACAG,IAAA,CAAAC,OAAA,CAAAD,IAAA,CAAAE,OAAA,KAAAH,CAAA;QACA,MAAAI,OAAA,QAAAC,UAAA,CAAAJ,IAAA;QACAL,KAAA,CAAAU,IAAA,CAAAF,OAAA;;QAEA;QACA,MAAAQ,KAAA,GAAAiC,aAAA,CAAAX,MAAA,CAAAe,GAAA;UACA,MAAAO,OAAA,OAAAzD,IAAA,CAAAkD,GAAA,CAAAP,gBAAA;UACA,YAAArC,UAAA,CAAAmD,OAAA,MAAApD,OAAA;QACA,GAAAyB,MAAA;QAEAhC,MAAA,CAAAS,IAAA,CAAAM,KAAA;MACA;MAEA,KAAAvD,qBAAA;QACAuC,KAAA;QACAC;MACA;IACA;IAEA;IACAiC,uBAAAgB,YAAA;MACA;IAAA,CACA;IAEA;IACApE,2BAAA;MACA,MAAA+E,QAAA,QAAAC,KAAA,CAAAC,iBAAA;MACA,KAAAhG,sBAAA,GAAAjB,OAAA,CAAAkH,IAAA,CAAAH,QAAA;MAEA,MAAAI,MAAA;QACAC,OAAA;UACAC,OAAA;UACAC,WAAA;YACAC,IAAA;UACA;QACA;QACAC,IAAA;UACAC,IAAA;UACAC,KAAA;UACAC,MAAA;UACAC,YAAA;QACA;QACAC,KAAA;UACAN,IAAA;UACArH,IAAA,OAAAS,qBAAA,CAAAuC,KAAA;UACA4E,SAAA;YACAC,MAAA;UACA;QACA;QACAC,KAAA;UACAT,IAAA;UACAtH,IAAA;QACA;QACAgI,MAAA,GACA;UACAhI,IAAA;UACAsH,IAAA;UACArH,IAAA,OAAAS,qBAAA,CAAAwC,MAAA;UACA+E,MAAA;UACAC,SAAA;YACAC,OAAA;UACA;UACAC,SAAA;YACAC,KAAA;UACA;QACA;MAEA;MAEA,KAAArH,sBAAA,CAAAsH,SAAA,CAAApB,MAAA;;MAEA;MACAqB,MAAA,CAAAC,gBAAA;QACA,KAAAxH,sBAAA,CAAAyH,MAAA;MACA;IACA;IAEA;IACAzG,eAAA;MACA,MAAA8E,QAAA,QAAAC,KAAA,CAAA9F,UAAA;MACA,KAAAA,UAAA,GAAAlB,OAAA,CAAAkH,IAAA,CAAAH,QAAA;MAEA,MAAAI,MAAA;QACAC,OAAA;UACAC,OAAA;UACAsB,SAAA;QACA;QACAC,MAAA;UACAC,MAAA;UACAlB,MAAA;UACAzH,IAAA;QACA;QACA+H,MAAA,GACA;UACAhI,IAAA;UACAsH,IAAA;UACAuB,MAAA;UACAC,iBAAA;UACAV,SAAA;YACAW,YAAA;YACAC,WAAA;YACAC,WAAA;UACA;UACAC,KAAA;YACAC,IAAA;YACAC,QAAA;UACA;UACAC,QAAA;YACAH,KAAA;cACAC,IAAA;cACAG,QAAA;cACAC,UAAA;YACA;UACA;UACAC,SAAA;YACAL,IAAA;UACA;UACAlJ,IAAA,GACA;YACAwJ,KAAA,OAAAlJ,UAAA;YACAP,IAAA;YACAoI,SAAA;cAAAC,KAAA;YAAA;UACA,GACA;YACAoB,KAAA,OAAAjJ,WAAA;YACAR,IAAA;YACAoI,SAAA;cAAAC,KAAA;YAAA;UACA,GACA;YACAoB,KAAA,OAAAhJ,UAAA;YACAT,IAAA;YACAoI,SAAA;cAAAC,KAAA;YAAA;UACA;QAEA;MAEA;MAEA,KAAApH,UAAA,CAAAqH,SAAA,CAAApB,MAAA;;MAEA;MACAqB,MAAA,CAAAC,gBAAA;QACA,KAAAvH,UAAA,CAAAwH,MAAA;MACA;IACA;IAEA;IACA/E,WAAAJ,IAAA;MACA,MAAAoG,IAAA,GAAApG,IAAA,CAAAqG,WAAA;MACA,MAAAC,KAAA,GAAAC,MAAA,CAAAvG,IAAA,CAAAwG,QAAA,QAAAC,QAAA;MACA,MAAAC,GAAA,GAAAH,MAAA,CAAAvG,IAAA,CAAAE,OAAA,IAAAuG,QAAA;MACA,UAAAL,IAAA,IAAAE,KAAA,IAAAI,GAAA;IACA;IAEA;IACAC,qBAAAC,MAAA;MACA,MAAAC,SAAA;QACA;QACA;MACA;MACA,OAAAA,SAAA,CAAAD,MAAA;IACA;EACA;AACA","ignoreList":[]}]} |