CodeMaster/node_modules/.cache/babel-loader/a94306fed8fc91c1f6d98fbb74733c81.json
2025-04-02 21:57:33 +08:00

1 line
25 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"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/components/common/UserImport.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/shuguang/Desktop/毕设/CodeMaster/CodeMaster/src/components/common/UserImport.vue","mtime":1742646402767},{"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:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCB7IHVuaXEgfSBmcm9tICdsb2Rhc2gtZXMnOwppbXBvcnQgeyByZWFkRXhjZWwsIG1ha2VFeGNlbCB9IGZyb20gJ0AvdXRpbHMvZXhjZWwnOwppbXBvcnQgeyBzZXhlcywgZ3JhZGVzLCByYW5rcywgdXNlclByaXZpbGVnZXMgfSBmcm9tICdAL3V0aWxzL2NvbnN0JzsKaW1wb3J0IERpc3BsYXlGYWlsZWRVc2VyIGZyb20gJ0AvY29tcG9uZW50cy9jb21tb24vRGlzcGxheUZhaWxlZFVzZXInOwoKLy8g5pig5bCE5oCn5Yir44CB5bm057qn44CB6IGM56ewCmNvbnN0IHNleGVzUmV2ZXJ0TWFwID0gbWFwUmV2ZXJ0KHNleGVzKTsKY29uc3QgZ3JhZGVzUmV2ZXJ0TWFwID0gbWFwUmV2ZXJ0KGdyYWRlcyk7CmNvbnN0IHJhbmtSZXZlcnRNYXAgPSBtYXBSZXZlcnQocmFua3MpOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ1VzZXJJbXBvcnQnLAogIHByb3BzOiB7CiAgICB0eXBlOiB7CiAgICAgIGRlZmF1bHQ6ICdzdHVkZW50JywKICAgICAgcmVxdWlyZTogdHJ1ZSwKICAgICAgdmFsaWRhdG9yOiB2YWx1ZSA9PiBbJ3N0dWRlbnQnLCAndGVhY2hlciddLmluY2x1ZGVzKHZhbHVlKQogICAgfQogIH0sCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHZpc2libGU6IGZhbHNlLAogICAgICAvLyDmjqfliLYgTW9kYWwg5pi+56S6L+makOiXjwogICAgICB1cGxvYWRpbmc6IGZhbHNlLAogICAgICAvLyDmjqfliLbkuIrkvKDnirbmgIEKICAgICAgcmVzdWx0OiBbXSAvLyDkuIrkvKDnu5PmnpzmlbDmja4KICAgIH07CiAgfSwKICBjb21wdXRlZDogewogICAgcHJpbWFyeUtleSgpIHsKICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gJ3N0dWRlbnQnID8gJ3NpZCcgOiAndGlkJzsgLy8g5Li76ZSuCiAgICB9LAogICAga2V5TWFwKCkgewogICAgICAvLyDmmKDlsITooajlpLTkuI7mlbDmja7lrZfmrrUKICAgICAgLy8g5a2m55Sf5ZKM5pWZ5biI55qE5pig5bCE5YWz57O7CiAgICAgIGNvbnN0IHN0dWRlbnRNYXAgPSBuZXcgTWFwKFtbJ+WtpuWPtycsICdzdGlkJ10sIFsn5aeT5ZCNJywgJ3VzZXJOYW1lJ10sIFsn5oCn5YirJywgJ2dlbmRlciddLCBbJ+i6q+S7vScsICd1c2VyUHJpdmlsZWdlcyddLCBbJ+WtpumZoicsICdjb2xsZWdlSWQnXSwgWyfnlJ/ml6UnLCAnYmlydGhkYXRlJ10sIFsn5omL5py65Y+3JywgJ3Bob25lJ10sIFsn6YKu566xJywgJ2VtYWlsJ11dKTsKICAgICAgY29uc3QgdGVhY2hlck1hcCA9IG5ldyBNYXAoW1sn5bel5Y+3JywgJ3N0aWQnXSwgWyflp5PlkI0nLCAndXNlck5hbWUnXSwgWyfmgKfliKsnLCAnZ2VuZGVyJ10sIFsn6Lqr5Lu9JywgJ3VzZXJQcml2aWxlZ2VzJ10sIFsn6IGM56ewJywgJ3RlYWNoZXJUaXRsZSddLCBbJ+WtpumZoicsICdjb2xsZWdlSWQnXSwgWyfnlJ/ml6UnLCAnYmlydGhkYXRlJ10sIFsn5omL5py65Y+3JywgJ3Bob25lJ10sIFsn6YKu566xJywgJ2VtYWlsJ10sIFsn5a+G56CBJywgJ3VzZXJQYXNzd29yZCddLCBbJ+eKtuaAgScsICd1c2VyU3RhdHVzJ11dKTsKICAgICAgLy8g5qC55o2uIHByaW1hcnlLZXkg6YCJ5oup5a+55bqU55qE5pig5bCE5YWz57O7CiAgICAgIHJldHVybiB0aGlzLnByaW1hcnlLZXkgPT09ICdzaWQnID8gc3R1ZGVudE1hcCA6IHRlYWNoZXJNYXA7CiAgICB9LAogICAgY29sdW1ucygpIHsKICAgICAgLy8g55Sf5oiQ6KGo5qC85YiX6YWN572uCiAgICAgIGNvbnN0IGNvbHMgPSBbXTsKICAgICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5rZXlNYXAua2V5cygpKSB7CiAgICAgICAgY29scy5wdXNoKHsKICAgICAgICAgIHRpdGxlOiBrZXksCiAgICAgICAgICBkYXRhSW5kZXg6IGtleQogICAgICAgIH0pOwogICAgICB9CiAgICAgIHJldHVybiBjb2xzOwogICAgfSwKICAgIHRyYW5zZm9ybWVkRGF0YSgpIHsKICAgICAgLy8g6L2s5o2i5LiK5Lyg5pWw5o2uCiAgICAgIGNvbnN0IGRhdGEgPSBbXTsKICAgICAgY29uc3Qgc3RyYXRlZ3kgPSB7CiAgICAgICAgY29sbGVnZUlkOiBsYWJlbCA9PiB7CiAgICAgICAgICAvLyDpgY3ljoYgZ3JhZGVzIOaVsOe7hO+8jOaJvuWIsOWMuemFjeeahCBsYWJlbO+8jOW5tui/lOWbnuWvueW6lOeahCB2YWx1Ze+8iElE77yJCiAgICAgICAgICBmb3IgKGNvbnN0IGdyYWRlIG9mIGdyYWRlcykgewogICAgICAgICAgICBpZiAoZ3JhZGUubGFiZWwgPT0gbGFiZWwpIHsKICAgICAgICAgICAgICByZXR1cm4gZ3JhZGUudmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIC8vIOWmguaenOayoeacieWMuemFjemhue+8jOWImei/lOWbniBudWxsIOaIluiAheWFtuS7lum7mOiupOWAvO+8jOWPluWGs+S6juS9oOeahOmcgOaxggogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfSwKICAgICAgICB1c2VyUHJpdmlsZWdlczogbGFiZWwgPT4gewogICAgICAgICAgLy8g6YGN5Y6GIGdyYWRlcyDmlbDnu4TvvIzmib7liLDljLnphY3nmoQgbGFiZWzvvIzlubbov5Tlm57lr7nlupTnmoQgdmFsdWXvvIhJRO+8iQogICAgICAgICAgZm9yIChjb25zdCB1c2VyUHJpdmlsZWdlIG9mIHVzZXJQcml2aWxlZ2VzKSB7CiAgICAgICAgICAgIGlmICh1c2VyUHJpdmlsZWdlLmxhYmVsID09IGxhYmVsKSB7CiAgICAgICAgICAgICAgcmV0dXJuIHVzZXJQcml2aWxlZ2UudmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIC8vIOWmguaenOayoeacieWMuemFjemhue+8jOWImei/lOWbniBudWxsIOaIluiAheWFtuS7lum7mOiupOWAvO+8jOWPluWGs+S6juS9oOeahOmcgOaxggogICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfSwKICAgICAgICAvLyDmmKDlsITnlJ/ml6UKICAgICAgICBiaXJ0aGRhdGU6IGxhYmVsID0+IHsKICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSgobGFiZWwgLSAyNTU2OSkgKiAyNCAqIDYwICogNjAgKiAxMDAwKTsKICAgICAgICB9IC8vIOino+aekOeUn+aXpeW5tuagvOW8j+WMluS4uuaMh+WumuagvOW8jwogICAgICB9OwogICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5yZXN1bHQpIHsKICAgICAgICBjb25zdCB0ZW1wID0ge307CiAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGl0ZW0pKSB7CiAgICAgICAgICBrZXkgPSB0aGlzLmtleU1hcC5nZXQoa2V5LnRyaW0oKSk7CiAgICAgICAgICBjb25zdCByZXZlcnQgPSBzdHJhdGVneVtrZXldOwogICAgICAgICAgdGVtcFtrZXldID0gdHlwZW9mIHJldmVydCA9PT0gJ2Z1bmN0aW9uJyA/IHJldmVydCh2YWx1ZSkgOiB2YWx1ZTsKICAgICAgICB9CiAgICAgICAgZGF0YS5wdXNoKHRlbXApOwogICAgICB9CiAgICAgIHJldHVybiBkYXRhOwogICAgfQogIH0sCiAgbWV0aG9kczogewogICAgZ2V0RmlsZShmaWxlKSB7CiAgICAgIC8vIOivu+WPluS4iuS8oOaWh+S7tgogICAgICB0aGlzLnVwbG9hZGluZyA9IHRydWU7CiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSk7CiAgICAgIHJlYWRlci5vbmxvYWQgPSBhc3luYyBlID0+IHsKICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWFkRXhjZWwoZS50YXJnZXQucmVzdWx0KTsKICAgICAgICBjb25zb2xlLmxvZyhyZXN1bHQpOwogICAgICAgIHRoaXMucmVzdWx0ID0gdW5pcShyZXN1bHQsICflt6Xlj7cnKTsKICAgICAgICB0aGlzLnVwbG9hZGluZyA9IGZhbHNlOwogICAgICAgIGNvbnN0IGRpZmYgPSByZXN1bHQubGVuZ3RoIC0gdGhpcy5yZXN1bHQubGVuZ3RoOwogICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2VzcyhkaWZmID4gMCA/IGDlt6Xlj7fkuI3og73ph43lpI3vvIzlt7Lljrvph40ke2RpZmZ95p2h5pWw5o2uYCA6ICfmlofku7bor7vlj5bmiJDlip8nKTsKICAgICAgfTsKICAgICAgcmVhZGVyLm9uZXJyb3IgPSBlID0+IHsKICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfmlofku7bor7vlj5blpLHotKUnKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGZhbHNlOyAvLyDpmLvmraLkuIrkvKAKICAgIH0sCiAgICByZW1vdmVGaWxlKCkgewogICAgICAvLyDnp7vpmaTkuIrkvKDmlofku7YKICAgICAgdGhpcy5yZXN1bHQuc3BsaWNlKDApOwogICAgfSwKICAgIG9uQ2FuY2VsKCkgewogICAgICAvLyDlj5bmtojkuIrkvKAKICAgICAgaWYgKCF0aGlzLnJlc3VsdC5sZW5ndGgpIHsKICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgY29uc3QgbW9kYWwgPSB0aGlzLiRtb2RhbC5jb25maXJtKHsKICAgICAgICB0aXRsZTogJ+itpuWRiicsCiAgICAgICAgY29udGVudDogJ+aVsOaNruacquS/neWtmO+8jOehruiupOWFs+mXre+8nycsCiAgICAgICAgb25PazogKCkgPT4gewogICAgICAgICAgbW9kYWwuZGVzdHJveSgpOwogICAgICAgICAgdGhpcy52aXNpYmxlID0gZmFsc2U7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICBvbk9rKCkgewogICAgICBjb25zdCBoID0gdGhpcy4kY3JlYXRlRWxlbWVudDsKICAgICAgLy8g56Gu6K6k5LiK5LygCiAgICAgIGlmICghdGhpcy5yZXN1bHQubGVuZ3RoKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuJG1lc3NhZ2Uud2Fybign5pqC5peg5pWw5o2u77yBJyk7CiAgICAgIH0KICAgICAgdGhpcy4kbW9kYWwuY29uZmlybSh7CiAgICAgICAgdGl0bGU6ICfmj5DnpLonLAogICAgICAgIGNvbnRlbnQ6ICfnoa7orqTlr7zlhaXlkJfvvJ8nLAogICAgICAgIGNlbnRlcmVkOiB0cnVlLAogICAgICAgIG9uT2s6ICgpID0+IHsKICAgICAgICAgIGxldCBkYXRhID0gewogICAgICAgICAgICB1c2VyRGF0YUxpc3Q6IHRoaXMudHJhbnNmb3JtZWREYXRhCiAgICAgICAgICB9OwogICAgICAgICAgdGhpcy4kYXBpLmltcG9ydFVzZXIodGhpcy50cmFuc2Zvcm1lZERhdGEpLnRoZW4oKCkgPT4gewogICAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoJ+WvvOWFpeaIkOWKnycpOwogICAgICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTsKICAgICAgICAgIH0pLmNhdGNoKGUgPT4gewogICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gZS5tc2cgfHwgJ+WvvOWFpeWksei0pSc7CiAgICAgICAgICAgIGlmIChlLmNvZGUgPT09IDEpIHsKICAgICAgICAgICAgICB0aGlzLiRjb25maXJtKHsKICAgICAgICAgICAgICAgIHRpdGxlOiBtZXNzYWdlLAogICAgICAgICAgICAgICAgY29udGVudDogKCkgPT4gaChEaXNwbGF5RmFpbGVkVXNlciwgewogICAgICAgICAgICAgICAgICAiYXR0cnMiOiB7CiAgICAgICAgICAgICAgICAgICAgInByaW1hcnlLZXkiOiB0aGlzLnByaW1hcnlLZXksCiAgICAgICAgICAgICAgICAgICAgInVzZXJzIjogdGhpcy5yZXN1bHQsCiAgICAgICAgICAgICAgICAgICAgImZhaWwiOiBlLmRhdGEKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSBlbHNlIHRoaXMuJG1lc3NhZ2UuZXJyb3IobWVzc2FnZSk7CiAgICAgICAgICB9KS5maW5hbGx5KCgpID0+IHsKICAgICAgICAgICAgdGhpcy4kZW1pdCgncmVmcmVzaCcpOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICB3cml0ZVRlbXBsYXRlRmlsZSgpIHsKICAgICAgLy8g5LiL6L295LiK5Lyg5qih5p2/5paH5Lu2CiAgICAgIG1ha2VFeGNlbCh7CiAgICAgICAgc3R1ZGVudDogewogICAgICAgICAgaGVhZGVyOiBbJ+WtpuWPtycsICflp5PlkI0nLCAn5oCn5YirJywgJ+i6q+S7vScsICflrabpmaInLCAn55Sf5pelJywgJ+aJi+acuuWPtycsICfpgq7nrrEnXSwKICAgICAgICAgIC8vIOWtpueUn+ihqOWktAogICAgICAgICAgbmFtZTogJ+WtpueUn+S4iuS8oOaooeadvy54bHN4JywKICAgICAgICAgIGRhdGE6IFt7CiAgICAgICAgICAgIOWtpuWPtzogJzIxMzAxMDEwMScsCiAgICAgICAgICAgIOWnk+WQjTogJ+W8oOS4iScsCiAgICAgICAgICAgIOaAp+WIqzogJ+eUtycsCiAgICAgICAgICAgIOi6q+S7vTogJ+WtpueUnycsCiAgICAgICAgICAgIOWtpumZojogJ+iuoeeul+acuuWtpumZoicsCiAgICAgICAgICAgIOeUn+aXpTogJzIwMDItMDQtMDQnLAogICAgICAgICAgICDmiYvmnLrlj7c6ICcxODg4ODg4ODg4OCcsCiAgICAgICAgICAgIOmCrueusTogJzEyNzA1NDA0MjNAcXEuY29tJwogICAgICAgICAgfSwgewogICAgICAgICAgICDlrablj7c6ICcyMTMwMTAxMDInLAogICAgICAgICAgICDlp5PlkI06ICflvKDkuIknLAogICAgICAgICAgICDmgKfliKs6ICfnlLcnLAogICAgICAgICAgICDouqvku706ICflrabnlJ8nLAogICAgICAgICAgICDlrabpmaI6ICforqHnrpfmnLrlrabpmaInLAogICAgICAgICAgICDnlJ/ml6U6ICcyMDAyLTA0LTA0JywKICAgICAgICAgICAg5omL5py65Y+3OiAnMTg4ODg4ODg4ODgnLAogICAgICAgICAgICDpgq7nrrE6ICcxMjcwNTQwNDIzQHFxLmNvbScKICAgICAgICAgIH1dCiAgICAgICAgfSwKICAgICAgICB0ZWFjaGVyOiB7CiAgICAgICAgICBoZWFkZXI6IFsn5bel5Y+3JywgJ+Wnk+WQjScsICfmgKfliKsnLCAn6Lqr5Lu9JywgJ+iBjOensCcsICflrabpmaInLCAn55Sf5pelJywgJ+aJi+acuuWPtycsICfpgq7nrrEnXSwKICAgICAgICAgIC8vIOaVmeW4iOihqOWktAogICAgICAgICAgbmFtZTogJ+aVmeW4iOS4iuS8oOaooeadvy54bHN4JywKICAgICAgICAgIGRhdGE6IFt7CiAgICAgICAgICAgIOW3peWPtzogJzIxMzAxMDE4OCcsCiAgICAgICAgICAgIOWnk+WQjTogJ+Wtmei1pOi1pCcsCiAgICAgICAgICAgIOaAp+WIqzogJ+eUtycsCiAgICAgICAgICAgIOi6q+S7vTogJ+aVmeW4iCcsCiAgICAgICAgICAgIOiBjOensDogJ+aVmeaOiCcsCiAgICAgICAgICAgIOWtpumZojogJ+iuoeeul+acuuWtpumZoicsCiAgICAgICAgICAgIOeUn+aXpTogJzIwMDItMDQtMDQnLAogICAgICAgICAgICDmiYvmnLrlj7c6ICcxODg4ODg4ODg4OCcsCiAgICAgICAgICAgIOmCrueusTogJzEyNzA1NDA0MjNAcXEuY29tJwogICAgICAgICAgfSwgewogICAgICAgICAgICDlt6Xlj7c6ICcyMTMwMTAxODknLAogICAgICAgICAgICDlp5PlkI06ICflvKDkuIknLAogICAgICAgICAgICDmgKfliKs6ICfnlLcnLAogICAgICAgICAgICDouqvku706ICfmlZnluIgnLAogICAgICAgICAgICDogYznp7A6ICforrLluIgnLAogICAgICAgICAgICDlrabpmaI6ICforqHnrpfmnLrlrabpmaInLAogICAgICAgICAgICDnlJ/ml6U6ICcyMDAyLTA0LTA0JywKICAgICAgICAgICAg5omL5py65Y+3OiAnMTg4ODg4ODg4ODgnLAogICAgICAgICAgICDpgq7nrrE6ICcxMjcwNTQwNDIzQHFxLmNvbScKICAgICAgICAgIH1dCiAgICAgICAgfQogICAgICB9W3RoaXMudHlwZV0pOwogICAgfSwKICAgIC8qKgogICAgICog5aSW6YOo6LCD55So5pa55rOVCiAgICAgKi8KICAgIHNob3coKSB7CiAgICAgIC8vIOaYvuekuiBNb2RhbAogICAgICB0aGlzLnZpc2libGUgPSB0cnVlOwogICAgfQogIH0KfTsKCi8qKgogKiBsYWJlbOaYoOWwhHZhbHVlCiAqIEBwYXJhbXtBcnJheX0gYXJyCiAqLwpmdW5jdGlvbiBtYXBSZXZlcnQoYXJyKSB7CiAgY29uc3QgcmVzdWx0ID0ge307CiAgZm9yIChjb25zdCB7CiAgICBsYWJlbCwKICAgIHZhbHVlCiAgfSBvZiBhcnIpIHsKICAgIHJlc3VsdFtsYWJlbF0gPSB2YWx1ZTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQ=="},{"version":3,"names":["uniq","readExcel","makeExcel","sexes","grades","ranks","userPrivileges","DisplayFailedUser","sexesRevertMap","mapRevert","gradesRevertMap","rankRevertMap","name","props","type","default","require","validator","value","includes","data","visible","uploading","result","computed","primaryKey","keyMap","studentMap","Map","teacherMap","columns","cols","key","keys","push","title","dataIndex","transformedData","strategy","collegeId","label","grade","userPrivilege","birthdate","Date","item","temp","Object","entries","get","trim","revert","methods","getFile","file","reader","FileReader","readAsBinaryString","onload","e","target","console","log","diff","length","$message","success","onerror","error","removeFile","splice","onCancel","modal","$modal","confirm","content","onOk","destroy","h","$createElement","warn","centered","userDataList","$api","importUser","then","catch","message","msg","code","$confirm","finally","$emit","writeTemplateFile","student","header","学号","姓名","性别","身份","学院","生日","手机号","邮箱","teacher","工号","职称","show","arr"],"sources":["src/components/common/UserImport.vue"],"sourcesContent":["<template>\n <!-- Modal 组件 -->\n <a-modal\n :visible=\"visible\"\n :mask-closable=\"false\"\n :body-style=\"{ padding: '10px'}\"\n :destroy-on-close=\"true\"\n :after-close=\"removeFile\"\n title=\"导入数据\"\n ok-text=\"确认导入\"\n cancel-text=\"取消\"\n centered\n @cancel=\"onCancel\"\n @ok=\"onOk\"\n >\n <!-- 下载上传模板按钮 -->\n <a-button type=\"link\" @click=\"writeTemplateFile\">\n 下载上传模板({{ type === \"student\" ? \"学生\" : \"教师\" }})\n </a-button>\n <!-- 上传文件组件 -->\n <a-upload\n accept=\".xlsx,.xls\"\n class=\"upload\"\n :before-upload=\"getFile\"\n :remove=\"removeFile\"\n >\n <a-button> <a-icon type=\"upload\" /> 点击上传表格 </a-button>\n </a-upload>\n\n <!-- 数据表格 -->\n <a-table\n size=\"small\"\n style=\"margin-top: 10px\"\n row-key=\"工号\"\n :columns=\"columns\"\n :data-source=\"result\"\n :loading=\"uploading\"\n :pagination=\"{\n showSizeChanger: true,\n showQuickJumper: true,\n showTotal: (total) => `共 ${result.length} 条记录`,\n }\"\n />\n </a-modal>\n</template>\n\n<script>\nimport { uniq } from 'lodash-es';\nimport { readExcel, makeExcel } from '@/utils/excel';\nimport { sexes, grades, ranks,userPrivileges } from '@/utils/const';\nimport DisplayFailedUser from '@/components/common/DisplayFailedUser';\n\n// 映射性别、年级、职称\nconst sexesRevertMap = mapRevert(sexes);\nconst gradesRevertMap = mapRevert(grades);\nconst rankRevertMap = mapRevert(ranks);\n\nexport default {\n name: 'UserImport',\n props: {\n type: {\n default: 'student',\n require: true,\n validator: value => ['student', 'teacher'].includes(value),\n },\n },\n data() {\n return {\n visible: false, // 控制 Modal 显示/隐藏\n uploading: false, // 控制上传状态\n result: [], // 上传结果数据\n };\n },\n computed: {\n primaryKey() {\n return this.type === 'student' ? 'sid' : 'tid'; // 主键\n },\n keyMap() {\n // 映射表头与数据字段\n // 学生和教师的映射关系\n const studentMap = new Map([\n ['学号', 'stid'],\n ['姓名', 'userName'],\n ['性别', 'gender'],\n ['身份', 'userPrivileges'],\n ['学院', 'collegeId'],\n ['生日', 'birthdate'],\n ['手机号', 'phone'],\n ['邮箱', 'email'],\n ]);\n\n const teacherMap = new Map([\n ['工号', 'stid'],\n ['姓名', 'userName'],\n ['性别', 'gender'],\n ['身份', 'userPrivileges'],\n ['职称', 'teacherTitle'],\n ['学院', 'collegeId'],\n ['生日', 'birthdate'],\n ['手机号', 'phone'],\n ['邮箱', 'email'],\n ['密码', 'userPassword'],\n ['状态', 'userStatus'],\n ]);\n\t\t// 根据 primaryKey 选择对应的映射关系\n return this.primaryKey === 'sid' ? studentMap : teacherMap;\n },\n columns() {\n // 生成表格列配置\n const cols = [];\n for (const key of this.keyMap.keys()) {\n cols.push({\n title: key,\n dataIndex: key,\n });\n }\n return cols;\n },\n\t\ttransformedData() {\n\t\t\n // 转换上传数据\n const data = [];\n const strategy = {\n\t\tcollegeId: label => {\n // 遍历 grades 数组,找到匹配的 label并返回对应的 valueID\n for (const grade of grades) {\n if (grade.label == label) {\n return grade.value;\n }\n }\n // 如果没有匹配项,则返回 null 或者其他默认值,取决于你的需求\n return null;\n},userPrivileges: label => {\n // 遍历 grades 数组,找到匹配的 label并返回对应的 valueID\n for (const userPrivilege of userPrivileges) {\n if (userPrivilege.label == label) {\n return userPrivilege.value;\n }\n }\n // 如果没有匹配项,则返回 null 或者其他默认值,取决于你的需求\n return null;\n},\n // 映射生日\n birthdate: label => {\n return new Date((label-25569) *24 * 60 *60 *1000);\n }, // 解析生日并格式化为指定格式\n };\n for (const item of this.result) {\n const temp = {};\n for (let [key, value] of Object.entries(item)) {\n key = this.keyMap.get(key.trim());\n const revert = strategy[key];\n temp[key] = typeof revert === 'function'\n ? revert(value)\n : value;\n }\n data.push(temp);\n }\n return data;\n},\n\n },\n methods: {\n getFile(file) {\n // 读取上传文件\n this.uploading = true;\n const reader = new FileReader();\n reader.readAsBinaryString(file);\n reader.onload = async e => {\n const result = await readExcel(e.target.result);\n console.log(result);\n this.result = uniq(result, '工号');\n\n this.uploading = false;\n const diff = result.length - this.result.length;\n this.$message.success(\n diff > 0\n ? `工号不能重复,已去重${diff}条数据`\n : '文件读取成功',\n );\n };\n reader.onerror = e => {\n this.$message.error('文件读取失败');\n };\n return false; // 阻止上传\n },\n removeFile() {\n // 移除上传文件\n this.result.splice(0);\n },\n onCancel() {\n // 取消上传\n if (!this.result.length) {\n this.visible = false;\n return;\n }\n const modal = this.$modal.confirm({\n title: '警告',\n content: '数据未保存,确认关闭?',\n onOk: () => {\n modal.destroy();\n this.visible = false;\n },\n });\n },\n onOk() {\n // 确认上传\n if (!this.result.length) {\n return this.$message.warn('暂无数据!');\n }\n this.$modal.confirm({\n title: '提示',\n content: '确认导入吗?',\n centered: true,\n onOk: () => \n\t\t\t\t{\n\t\t\t\t\tlet data={\n\t\t\t\t\tuserDataList:this.transformedData\n\t\t\t\t}\n\t\t\t\t\tthis.$api.importUser(this.transformedData)\n .then(() => {\n this.$message.success('导入成功');\n this.visible = false;\n }).catch(e => {\n const message = e.msg || '导入失败';\n if (e.code === 1) {\n this.$confirm({\n title: message,\n content: () => <DisplayFailedUser\n primaryKey={this.primaryKey}\n users={this.result}\n fail={e.data}\n />,\n });\n } else this.$message.error(message);\n }).finally(() => {\n this.$emit('refresh');\n })\n\t\t\t\t}\n });\n },\n writeTemplateFile() {\n // 下载上传模板文件\n makeExcel(({\n student: {\n header: ['学号', '姓名', '性别', '身份', '学院', '生日', '手机号', '邮箱'], // 学生表头\n name: '学生上传模板.xlsx',\n data: [\n { 学号: '213010101', 姓名: '张三', 性别: '男', 身份: '学生', 学院: '计算机学院',生日:'2002-04-04',手机号:'18888888888',邮箱:'1270540423@qq.com' },\n { 学号: '213010102', 姓名: '张三', 性别: '男', 身份: '学生', 学院: '计算机学院',生日:'2002-04-04',手机号:'18888888888',邮箱:'1270540423@qq.com' },\n ],\n },\n teacher: {\n header: ['工号', '姓名', '性别','身份', '职称', '学院', '生日', '手机号', '邮箱'], // 教师表头\n name: '教师上传模板.xlsx',\n data: [\n\t\t\t\t\t{ 工号: '213010188', 姓名: '孙赤赤', 性别: '男', 身份: '教师',职称:'教授', 学院: '计算机学院',生日:'2002-04-04',手机号:'18888888888',邮箱:'1270540423@qq.com' },\n { 工号: '213010189', 姓名: '张三', 性别: '男', 身份: '教师', 职称:'讲师', 学院: '计算机学院',生日:'2002-04-04',手机号:'18888888888',邮箱:'1270540423@qq.com' },\n ],\n },\n })[this.type]);\n },\n /**\n * 外部调用方法\n */\n show() {\n // 显示 Modal\n this.visible = true;\n },\n },\n};\n\n/**\n * label映射value\n * @param{Array} arr\n */\nfunction mapRevert(arr) {\n const result = {};\n for (const { label, value } of arr) {\n result[label] = value;\n }\n return result;\n}\n</script>\n"],"mappings":"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","ignoreList":[]}]}