forked from liweijie/education
1 line
46 KiB
JSON
1 line
46 KiB
JSON
{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\student\\studentInfo\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\student\\studentInfo\\index.vue","mtime":1787640892012},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\babel.config.js","mtime":1787567871334},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMiKS5kZWZhdWx0OwpPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgIl9fZXNNb2R1bGUiLCB7CiAgdmFsdWU6IHRydWUKfSk7CmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDsKdmFyIF9vYmplY3RTcHJlYWQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RTcHJlYWQyLmpzIikpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnRyaW0uanMiKTsKdmFyIF9zdHVkZW50UmVjb3JkcyA9IHJlcXVpcmUoIkAvYXBpL3N0dWRlbnRSZWNvcmRzL3N0dWRlbnRSZWNvcmRzIik7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCnZhciBfZGVmYXVsdCA9IGV4cG9ydHMuZGVmYXVsdCA9IHsKICBuYW1lOiAnU3R1ZGVudEluZm9JbmRleCcsCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IOafpeivouadoeS7tiA9PT09PT09PT09PT09PT09PT09PQogICAgICAvLyDku4Xkv53nlZnlkI7nq68gWFlYWCDlrp7kvZPmlK/mjIHnmoTlrZfmrrXvvJovc3R1ZGVudC1yZWNvcmRzL2xpc3Qg5Lya5oyJ5a6e5L2T5a2X5q615Yqo5oCB5p6E5bu65p+l6K+i5p2h5Lu2CiAgICAgIHNlYXJjaEZvcm06IHsKICAgICAgICB4aDogJycsCiAgICAgICAgeG06ICcnLAogICAgICAgIHhiOiAnJywKICAgICAgICB6amhtOiAnJywKICAgICAgICB6em1tOiAnJywKICAgICAgICBtejogJycsCiAgICAgICAgamc6ICcnLAogICAgICAgIHh3OiAnJywKICAgICAgICB5YnpiOiAnJywKICAgICAgICBzZnpoOiAnJywKICAgICAgICB3aGNkOiAnJywKICAgICAgICBia2J5eXg6ICcnLAogICAgICAgIGJxOiAnJywKICAgICAgICBseGRoOiAnJywKICAgICAgICB0eGR6OiAnJwogICAgICB9LAogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDmlbDmja7ooajmoLwgPT09PT09PT09PT09PT09PT09PT0KICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIHRhYmxlRGF0YTogW10sCiAgICAgIHBhZ2luYXRpb246IHsKICAgICAgICBwYWdlTnVtOiAxLAogICAgICAgIHBhZ2VTaXplOiAyMCwKICAgICAgICB0b3RhbDogMAogICAgICB9LAogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDmlrDlop4v57yW6L6R5by556qXID09PT09PT09PT09PT09PT09PT09CiAgICAgIGRpYWxvZ1Zpc2libGU6IGZhbHNlLAogICAgICBkaWFsb2dUaXRsZTogJ+aWsOWinuWtpuWRmCcsCiAgICAgIHN1Ym1pdHRpbmc6IGZhbHNlLAogICAgICBmb3JtRGF0YTogdGhpcy5jcmVhdGVFbXB0eUZvcm0oKSwKICAgICAgZm9ybVJ1bGVzOiB7CiAgICAgICAgYmg6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXnvJblj7cnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgeGg6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXlrablj7cnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgeG06IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXlp5PlkI0nLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgeHlkcWJoOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5a2m5ZGY6Zif5pyf57yW5Y+3JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHpqaG06IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXor4Hku7blj7fnoIEnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgenptbTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeaUv+ayu+mdouiyjCcsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICB4YjogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeaAp+WIqycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIGNzcnE6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nlh7rnlJ/ml6XmnJ8nLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICBtejogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeawkeaXjycsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBqZzogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeexjei0rycsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICB3aGNkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5paH5YyW56iL5bqmJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHh5bGI6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXlrablkZjnsbvliKsnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgc3NqcTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeaJgOWxnuWGm+WMuicsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBnZnM6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nlm73pmLLnlJ8nLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICB0eHp0OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6YCA5a2m54q25oCBJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGxqenQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXnlZnnuqfnirbmgIEnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgZmJ6dDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeWIhuePreeKtuaAgScsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICB5eGNrY2o6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nlhYHorrjmn6XnnIvmiJDnu6knLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICBkcWJ6Ymg6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXlvZPliY3nj63mrKHnvJblj7cnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgeXpjOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5bey5rOo5YaMJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAganJ6amx4OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5Yab5Lq66K+B5Lu257G75Z6LJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IOaIkOe7qeW8ueeqlyA9PT09PT09PT09PT09PT09PT09PQogICAgICBncmFkZXNWaXNpYmxlOiBmYWxzZSwKICAgICAgZ3JhZGVzVGFiOiAnZ3JhZGVzJywKICAgICAgZ3JhZGVzRGF0YTogbnVsbCwKICAgICAgcHJvY2Vzc0dyYWRlc0RhdGE6IG51bGwsCiAgICAgIGdyYWRlc1N0dWRlbnQ6ICcnLAogICAgICBjdXJyZW50Qmg6ICcnLAogICAgICBncmFkZXNMb2FkaW5nOiBmYWxzZQogICAgfTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB0aGlzLmxvYWREYXRhKCk7CiAgfSwKICBtZXRob2RzOiB7CiAgICAvKiog5Yib5bu656m655m96KGo5Y2VICovY3JlYXRlRW1wdHlGb3JtOiBmdW5jdGlvbiBjcmVhdGVFbXB0eUZvcm0oKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgYmg6ICcnLAogICAgICAgIHhoOiAnJywKICAgICAgICB4bTogJycsCiAgICAgICAgeHlkcWJoOiAnJywKICAgICAgICB6amhtOiAnJywKICAgICAgICB6em1tOiAnJywKICAgICAgICB4YjogJycsCiAgICAgICAgY3NycTogJycsCiAgICAgICAgbXo6ICcnLAogICAgICAgIGpnOiAnJywKICAgICAgICB3aGNkOiAnJywKICAgICAgICB4eWxiOiAnJywKICAgICAgICBzc2pxOiAnJywKICAgICAgICBnZnM6ICcnLAogICAgICAgIHR4enQ6ICcnLAogICAgICAgIGxqenQ6ICcnLAogICAgICAgIGZienQ6ICcnLAogICAgICAgIHl4Y2tjajogJycsCiAgICAgICAgZHFiemJoOiAnJywKICAgICAgICB5emM6ICcnLAogICAgICAgIGpyempseDogJycsCiAgICAgICAgc2Z6aDogJycsCiAgICAgICAgbHhkaDogJycsCiAgICAgICAgdHhkejogJycsCiAgICAgICAgYno6ICcnLAogICAgICAgIGR0c2o6ICcnCiAgICAgIH07CiAgICB9LAogICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5YiX6KGo5Yqg6L29ID09PT09PT09PT09PT09PT09PT09CiAgICBsb2FkRGF0YTogZnVuY3Rpb24gbG9hZERhdGEoKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CiAgICAgIHZhciBwYXJhbXMgPSB7CiAgICAgICAgcGFnZU51bTogdGhpcy5wYWdpbmF0aW9uLnBhZ2VOdW0sCiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnaW5hdGlvbi5wYWdlU2l6ZQogICAgICB9OwogICAgICB0aGlzLmJ1aWxkUXVlcnlQYXJhbXMocGFyYW1zKTsKICAgICAgKDAsIF9zdHVkZW50UmVjb3Jkcy5saXN0U3R1ZGVudFJlY29yZCkocGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICB2YXIgZGF0YSA9IHJlcy5kYXRhIHx8IHt9OwogICAgICAgIF90aGlzLnRhYmxlRGF0YSA9IGRhdGEucmVjb3JkcyB8fCBbXTsKICAgICAgICBfdGhpcy5wYWdpbmF0aW9uLnRvdGFsID0gZGF0YS50b3RhbCB8fCAwOwogICAgICAgIF90aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzLnRhYmxlRGF0YSA9IFtdOwogICAgICAgIF90aGlzLnBhZ2luYXRpb24udG90YWwgPSAwOwogICAgICAgIF90aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSk7CiAgICB9LAogICAgLyoqIOe7hOijheafpeivouWPguaVsO+8muS7heS8oOWQjuerryBYWVhYIOWunuS9k+aUr+aMgeeahOWtl+espuS4suWtl+aute+8jOepuuWAvOW/veeVpSAqL2J1aWxkUXVlcnlQYXJhbXM6IGZ1bmN0aW9uIGJ1aWxkUXVlcnlQYXJhbXMocGFyYW1zKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICB2YXIgdGV4dEZpZWxkcyA9IFsneGgnLCAneG0nLCAnempobScsICd6em1tJywgJ216JywgJ2pnJywgJ3h3JywgJ3liemInLCAnc2Z6aCcsICd3aGNkJywgJ2JrYnl5eCcsICdicScsICdseGRoJywgJ3R4ZHonXTsKICAgICAgdGV4dEZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICB2YXIgdiA9IF90aGlzMi5zZWFyY2hGb3JtW2tleV07CiAgICAgICAgaWYgKHYgIT09ICcnICYmIHYgIT09IG51bGwgJiYgdiAhPT0gdW5kZWZpbmVkKSBwYXJhbXNba2V5XSA9IHYudHJpbSgpOwogICAgICB9KTsKICAgICAgaWYgKHRoaXMuc2VhcmNoRm9ybS54YikgcGFyYW1zLnhiID0gdGhpcy5zZWFyY2hGb3JtLnhiOwogICAgfSwKICAgIC8vID09PT09PT09PT09PT09PT09PT09IOafpeivoi/liIbpobUgPT09PT09PT09PT09PT09PT09PT0KICAgIGhhbmRsZVNlYXJjaDogZnVuY3Rpb24gaGFuZGxlU2VhcmNoKCkgewogICAgICB0aGlzLnBhZ2luYXRpb24ucGFnZU51bSA9IDE7CiAgICAgIHRoaXMubG9hZERhdGEoKTsKICAgIH0sCiAgICBoYW5kbGVQYWdlQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVQYWdlQ2hhbmdlKHBhZ2UpIHsKICAgICAgdGhpcy5wYWdpbmF0aW9uLnBhZ2VOdW0gPSBwYWdlOwogICAgICB0aGlzLmxvYWREYXRhKCk7CiAgICB9LAogICAgaGFuZGxlU2l6ZUNoYW5nZTogZnVuY3Rpb24gaGFuZGxlU2l6ZUNoYW5nZShzaXplKSB7CiAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdlU2l6ZSA9IHNpemU7CiAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdlTnVtID0gMTsKICAgICAgdGhpcy5sb2FkRGF0YSgpOwogICAgfSwKICAgIC8vID09PT09PT09PT09PT09PT09PT09IOaWsOWini/nvJbovpHlvLnnqpcgPT09PT09PT09PT09PT09PT09PT0KICAgIHJlc2V0Rm9ybTogZnVuY3Rpb24gcmVzZXRGb3JtKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLmZvcm1EYXRhLCB0aGlzLmNyZWF0ZUVtcHR5Rm9ybSgpKTsKICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIGlmIChfdGhpczMuJHJlZnMuZm9ybVJlZikgewogICAgICAgICAgX3RoaXMzLiRyZWZzLmZvcm1SZWYuY2xlYXJWYWxpZGF0ZSgpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgaGFuZGxlQWRkOiBmdW5jdGlvbiBoYW5kbGVBZGQoKSB7CiAgICAgIHRoaXMuZGlhbG9nVGl0bGUgPSAn5paw5aKe5a2m5ZGYJzsKICAgICAgdGhpcy5yZXNldEZvcm0oKTsKICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTsKICAgIH0sCiAgICBoYW5kbGVFZGl0OiBmdW5jdGlvbiBoYW5kbGVFZGl0KHJvdykgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgdGhpcy5kaWFsb2dUaXRsZSA9ICfnvJbovpHlrablkZgnOwogICAgICB0aGlzLnJlc2V0Rm9ybSgpOwogICAgICBpZiAoIXJvdy5iaCkgewogICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5mb3JtRGF0YSwgdGhpcy5jcmVhdGVFbXB0eUZvcm0oKSwgcm93KTsKICAgICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICAoMCwgX3N0dWRlbnRSZWNvcmRzLmdldFN0dWRlbnRSZWNvcmQpKHJvdy5iaCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgdmFyIGRhdGEgPSByZXMuZGF0YSB8fCB7fTsKICAgICAgICBPYmplY3QuYXNzaWduKF90aGlzNC5mb3JtRGF0YSwgX3RoaXM0LmNyZWF0ZUVtcHR5Rm9ybSgpLCBkYXRhKTsKICAgICAgICBfdGhpczQuZGlhbG9nVmlzaWJsZSA9IHRydWU7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgIH0sCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDmlrDlop4v57yW6L6R5o+Q5LqkID09PT09PT09PT09PT09PT09PT09CiAgICBoYW5kbGVTdWJtaXQ6IGZ1bmN0aW9uIGhhbmRsZVN1Ym1pdCgpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHRoaXMuJHJlZnMuZm9ybVJlZi52YWxpZGF0ZShmdW5jdGlvbiAodmFsaWQpIHsKICAgICAgICBpZiAoIXZhbGlkKSByZXR1cm47CiAgICAgICAgX3RoaXM1LnN1Ym1pdHRpbmcgPSB0cnVlOwogICAgICAgIHZhciBpc0FkZCA9IF90aGlzNS5kaWFsb2dUaXRsZSA9PT0gJ+aWsOWinuWtpuWRmCc7CiAgICAgICAgdmFyIHBheWxvYWQgPSAoMCwgX29iamVjdFNwcmVhZDIuZGVmYXVsdCkoe30sIF90aGlzNS5mb3JtRGF0YSk7CiAgICAgICAgdmFyIHJlcXVlc3QgPSBpc0FkZCA/ICgwLCBfc3R1ZGVudFJlY29yZHMuYWRkU3R1ZGVudFJlY29yZCkocGF5bG9hZCkgOiAoMCwgX3N0dWRlbnRSZWNvcmRzLnVwZGF0ZVN0dWRlbnRSZWNvcmQpKHBheWxvYWQpOwogICAgICAgIHJlcXVlc3QudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICBfdGhpczUuJG1lc3NhZ2Uuc3VjY2Vzcyhpc0FkZCA/ICfmlrDlop7miJDlip8nIDogJ+e8lui+keaIkOWKnycpOwogICAgICAgICAgX3RoaXM1LmRpYWxvZ1Zpc2libGUgPSBmYWxzZTsKICAgICAgICAgIF90aGlzNS5sb2FkRGF0YSgpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KS5maW5hbGx5KGZ1bmN0aW9uICgpIHsKICAgICAgICAgIF90aGlzNS5zdWJtaXR0aW5nID0gZmFsc2U7CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vID09PT09PT09PT09PT09PT09PT09IOWIoOmZpCA9PT09PT09PT09PT09PT09PT09PQogICAgaGFuZGxlRGVsZXRlOiBmdW5jdGlvbiBoYW5kbGVEZWxldGUocm93KSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICB0aGlzLiRjb25maXJtKCJcdTc4NkVcdTVCOUFcdTg5ODFcdTUyMjBcdTk2NjRcIiIuY29uY2F0KHJvdy54bSwgIlwiXHU1NDE3XHVGRjFGIiksICfliKDpmaTnoa7orqQnLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7lrponLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gKDAsIF9zdHVkZW50UmVjb3Jkcy5kZWxTdHVkZW50UmVjb3JkKShyb3cuYmgpOwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczYuJG1lc3NhZ2Uuc3VjY2Vzcygn5Yig6Zmk5oiQ5YqfJyk7CiAgICAgICAgX3RoaXM2LmxvYWREYXRhKCk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgIH0sCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDmiJDnu6nlvLnnqpcgPT09PT09PT09PT09PT09PT09PT0KICAgIC8vIFRPRE86IOWQjuerr+aOpeWPo+acquaPkOS+m++8jOaIkOe7qeaVsOaNruS4uuWJjeerr+aooeaLn++8m+aOpeWPo+Wwsee7quWQjuabv+aNouS4uiBnZXRTdHVkZW50R3JhZGVzIC8gZ2V0U3R1ZGVudFByb2Nlc3NHcmFkZXMKICAgIGhhbmRsZUdyYWRlczogZnVuY3Rpb24gaGFuZGxlR3JhZGVzKHJvdykgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgdGhpcy5ncmFkZXNTdHVkZW50ID0gcm93LnhtIHx8ICcnOwogICAgICB0aGlzLmN1cnJlbnRCaCA9IHJvdy5iaCB8fCAnJzsKICAgICAgdGhpcy5ncmFkZXNEYXRhID0gbnVsbDsKICAgICAgdGhpcy5wcm9jZXNzR3JhZGVzRGF0YSA9IG51bGw7CiAgICAgIHRoaXMuZ3JhZGVzVGFiID0gJ2dyYWRlcyc7CiAgICAgIHRoaXMuZ3JhZGVzVmlzaWJsZSA9IHRydWU7CiAgICAgIHRoaXMuZ3JhZGVzTG9hZGluZyA9IHRydWU7CiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNy5ncmFkZXNEYXRhID0gewogICAgICAgICAg5a2m5ZGYOiByb3cueG0sCiAgICAgICAgICDlrablj7c6IHJvdy54aCwKICAgICAgICAgIOivvueoizogJ+mAmuS/oeWOn+eQhicsCiAgICAgICAgICDmiJDnu6k6IDkyLAogICAgICAgICAg5a2m5YiGOiAzLjAKICAgICAgICB9OwogICAgICAgIF90aGlzNy5wcm9jZXNzR3JhZGVzRGF0YSA9IHsKICAgICAgICAgIOi/m+eoi+aIkOe7qTogW3sKICAgICAgICAgICAg5ZCN56ewOiAn5bmz5pe25oiQ57upJywKICAgICAgICAgICAg5b6X5YiGOiA5NQogICAgICAgICAgfSwgewogICAgICAgICAgICDlkI3np7A6ICfmnJ/mnKvmiJDnu6knLAogICAgICAgICAgICDlvpfliIY6IDg4CiAgICAgICAgICB9XQogICAgICAgIH07CiAgICAgICAgX3RoaXM3LmdyYWRlc0xvYWRpbmcgPSBmYWxzZTsKICAgICAgfSwgMzAwKTsKICAgIH0sCiAgICAvLyBUT0RPOiDlkI7nq6/mjqXlj6PmnKrmj5DkvpvvvIzlr7zlh7rkuLrliY3nq6/mqKHmi5/vvJvmjqXlj6PlsLHnu6rlkI7mm7/mjaLkuLogZXhwb3J0U3R1ZGVudEdyYWRlcwogICAgaGFuZGxlRXhwb3J0R3JhZGVzOiBmdW5jdGlvbiBoYW5kbGVFeHBvcnRHcmFkZXMoKSB7CiAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2VzcygiXHU1REYyXHU1QkZDXHU1MUZBXHU1QjY2XHU1NDU4Ii5jb25jYXQodGhpcy5ncmFkZXNTdHVkZW50LCAiXHU2MjEwXHU3RUU5XHVGRjA4XHU1MjREXHU3QUVGXHU2QTIxXHU2MkRGXHVGRjA5IikpOwogICAgfQogIH0KfTs="},{"version":3,"names":["_studentRecords","require","name","data","searchForm","xh","xm","xb","zjhm","zzmm","mz","jg","xw","ybzb","sfzh","whcd","bkbyyx","bq","lxdh","txdz","loading","tableData","pagination","pageNum","pageSize","total","dialogVisible","dialogTitle","submitting","formData","createEmptyForm","formRules","bh","required","message","trigger","xydqbh","csrq","xylb","ssjq","gfs","txzt","ljzt","fbzt","yxckcj","dqbzbh","yzc","jrzjlx","gradesVisible","gradesTab","gradesData","processGradesData","gradesStudent","currentBh","gradesLoading","mounted","loadData","methods","bz","dtsj","_this","params","buildQueryParams","listStudentRecord","then","res","records","catch","_this2","textFields","forEach","key","v","undefined","trim","handleSearch","handlePageChange","page","handleSizeChange","size","resetForm","_this3","Object","assign","$nextTick","$refs","formRef","clearValidate","handleAdd","handleEdit","row","_this4","getStudentRecord","handleSubmit","_this5","validate","valid","isAdd","payload","_objectSpread2","default","request","addStudentRecord","updateStudentRecord","$message","success","finally","handleDelete","_this6","$confirm","concat","confirmButtonText","cancelButtonText","type","delStudentRecord","handleGrades","_this7","setTimeout","学员","学号","课程","成绩","学分","进程成绩","名称","得分","handleExportGrades"],"sources":["src/views/student/studentInfo/index.vue"],"sourcesContent":["<template>\r\n <div class=\"app-container student-info-page\">\r\n <!-- ==================== 1. 查询条件区域 ==================== -->\r\n <el-card shadow=\"never\" class=\"search-card\">\r\n <el-form :model=\"searchForm\" label-width=\"110px\" class=\"search-form\">\r\n <el-row :gutter=\"24\">\r\n <!-- 左栏 -->\r\n <el-col :xs=\"24\" :md=\"12\">\r\n <el-form-item label=\"学号\">\r\n <el-input v-model=\"searchForm.xh\" placeholder=\"请输入学号\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"姓名\">\r\n <el-input v-model=\"searchForm.xm\" placeholder=\"请输入姓名\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"性别\">\r\n <el-select v-model=\"searchForm.xb\" placeholder=\"请选择性别\" clearable class=\"full-width\">\r\n <el-option label=\"男\" value=\"男\" />\r\n <el-option label=\"女\" value=\"女\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"证件号码\">\r\n <el-input v-model=\"searchForm.zjhm\" placeholder=\"请输入证件号码\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"政治面貌\">\r\n <el-input v-model=\"searchForm.zzmm\" placeholder=\"请输入政治面貌\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"民族\">\r\n <el-input v-model=\"searchForm.mz\" placeholder=\"请输入民族\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"籍贯\">\r\n <el-input v-model=\"searchForm.jg\" placeholder=\"请输入籍贯\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"学位\">\r\n <el-input v-model=\"searchForm.xw\" placeholder=\"请输入学位\" clearable />\r\n </el-form-item>\r\n </el-col>\r\n\r\n <!-- 右栏 -->\r\n <el-col :xs=\"24\" :md=\"12\">\r\n <el-form-item label=\"原部职别\">\r\n <el-input v-model=\"searchForm.ybzb\" placeholder=\"请输入原部职别\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"身份证号\">\r\n <el-input v-model=\"searchForm.sfzh\" placeholder=\"请输入身份证号\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"文化程度\">\r\n <el-input v-model=\"searchForm.whcd\" placeholder=\"请输入文化程度\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"本科毕业院校\">\r\n <el-input v-model=\"searchForm.bkbyyx\" placeholder=\"请输入本科毕业院校\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"标签\">\r\n <el-input v-model=\"searchForm.bq\" placeholder=\"请输入标签\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"联系电话\">\r\n <el-input v-model=\"searchForm.lxdh\" placeholder=\"请输入联系电话\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"通信地址\">\r\n <el-input v-model=\"searchForm.txdz\" placeholder=\"请输入通信地址\" clearable />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n\r\n <div class=\"search-actions\">\r\n <el-button type=\"primary\" icon=\"el-icon-search\" @click=\"handleSearch\">查询</el-button>\r\n </div>\r\n </el-form>\r\n </el-card>\r\n\r\n <!-- ==================== 2. 数据表格区域 ==================== -->\r\n <div class=\"list-title\">学员信息列表:</div>\r\n <div class=\"toolbar\"><el-button type=\"primary\" @click=\"handleAdd\">新增学员</el-button></div>\r\n\r\n <el-card shadow=\"never\" class=\"table-card\">\r\n <el-table v-loading=\"loading\" :data=\"tableData\" stripe border>\r\n <el-table-column type=\"index\" label=\"序号\" width=\"55\" align=\"center\" />\r\n <el-table-column prop=\"xh\" label=\"学号\" width=\"55\" show-overflow-tooltip />\r\n <el-table-column prop=\"xm\" label=\"姓名\" width=\"55\" />\r\n <el-table-column prop=\"xb\" label=\"性别\" width=\"55\" align=\"center\" />\r\n <el-table-column prop=\"nj\" label=\"年级\" width=\"55\" align=\"center\" />\r\n <el-table-column prop=\"zy\" label=\"专业\" width=\"55\" show-overflow-tooltip />\r\n <el-table-column prop=\"db\" label=\"队别\" width=\"55\" align=\"center\" />\r\n <el-table-column prop=\"bc\" label=\"班次\" width=\"55\" align=\"center\" />\r\n <el-table-column prop=\"pxlx\" label=\"培训类型\" width=\"85\" show-overflow-tooltip />\r\n <el-table-column prop=\"pxcc\" label=\"培训层次\" width=\"85\" align=\"center\" />\r\n <el-table-column prop=\"zzmm\" label=\"政治面貌\" width=\"85\" align=\"center\" />\r\n <el-table-column prop=\"mz\" label=\"民族\" width=\"55\" align=\"center\" />\r\n <el-table-column prop=\"jg\" label=\"籍贯\" width=\"55\" align=\"center\" />\r\n <el-table-column prop=\"xw\" label=\"学位\" width=\"55\" align=\"center\" />\r\n <el-table-column prop=\"zczt\" label=\"注册状态\" width=\"85\" align=\"center\" />\r\n <el-table-column prop=\"xjyd\" label=\"学籍异动状态\" width=\"110\" align=\"center\" />\r\n <el-table-column prop=\"ksqk\" label=\"考试情况\" width=\"85\" align=\"center\" />\r\n <el-table-column prop=\"bjgm\" label=\"不及格门数\" width=\"110\" align=\"center\" />\r\n <el-table-column prop=\"gljg\" label=\"管理机构\" width=\"85\" align=\"center\" />\r\n <el-table-column label=\"操作\" align=\"center\" fixed=\"right\">\r\n <template slot-scope=\"{ row }\">\r\n <el-button type=\"text\" class=\"text-primary\" @click=\"handleEdit(row)\">编辑</el-button>\r\n <el-button type=\"text\" class=\"text-success\" @click=\"handleGrades(row)\">成绩</el-button>\r\n <el-button type=\"text\" class=\"danger-text\" @click=\"handleDelete(row)\">删除</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div class=\"pagination\">\r\n <el-pagination\r\n :current-page=\"pagination.pageNum\"\r\n :page-size=\"pagination.pageSize\"\r\n :total=\"pagination.total\"\r\n :page-sizes=\"[10, 20, 50, 100]\"\r\n layout=\"total, sizes, prev, pager, next, jumper\"\r\n background\r\n @size-change=\"handleSizeChange\"\r\n @current-change=\"handlePageChange\"\r\n />\r\n </div>\r\n </el-card>\r\n\r\n <!-- 新增/编辑弹窗 -->\r\n <el-dialog\r\n :visible=\"dialogVisible\"\r\n :title=\"dialogTitle\"\r\n width=\"780px\"\r\n :close-on-click-modal=\"false\"\r\n @update:visible=\"val => dialogVisible = val\"\r\n >\r\n <el-form ref=\"formRef\" :model=\"formData\" :rules=\"formRules\" label-width=\"120px\">\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"12\"><el-form-item label=\"编号\" prop=\"bh\"><el-input v-model=\"formData.bh\" placeholder=\"请输入编号\" /></el-form-item></el-col>\r\n <el-col :span=\"12\"><el-form-item label=\"学号\" prop=\"xh\"><el-input v-model=\"formData.xh\" placeholder=\"请输入学号\" /></el-form-item></el-col>\r\n </el-row>\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"12\"><el-form-item label=\"姓名\" prop=\"xm\"><el-input v-model=\"formData.xm\" placeholder=\"请输入姓名\" /></el-form-item></el-col>\r\n <el-col :span=\"12\"><el-form-item label=\"性别\" prop=\"xb\"><el-select v-model=\"formData.xb\" placeholder=\"请选择\" class=\"full-width\"><el-option label=\"男\" value=\"1\" /><el-option label=\"女\" value=\"0\" /></el-select></el-form-item></el-col>\r\n </el-row>\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"12\"><el-form-item label=\"出生日期\" prop=\"csrq\"><el-date-picker v-model=\"formData.csrq\" type=\"date\" placeholder=\"请选择\" value-format=\"yyyy-MM-dd\" class=\"full-width\" /></el-form-item></el-col>\r\n <el-col :span=\"12\"><el-form-item label=\"民族\" prop=\"mz\"><el-input v-model=\"formData.mz\" placeholder=\"请输入民族\" /></el-form-item></el-col>\r\n </el-row>\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"12\"><el-form-item label=\"籍贯\" prop=\"jg\"><el-input v-model=\"formData.jg\" placeholder=\"请输入籍贯\" /></el-form-item></el-col>\r\n <el-col :span=\"12\"><el-form-item label=\"政治面貌\" prop=\"zzmm\"><el-input v-model=\"formData.zzmm\" placeholder=\"请输入政治面貌\" /></el-form-item></el-col>\r\n </el-row>\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"12\"><el-form-item label=\"文化程度\" prop=\"whcd\"><el-input v-model=\"formData.whcd\" placeholder=\"请输入文化程度\" /></el-form-item></el-col>\r\n <el-col :span=\"12\"><el-form-item label=\"学员类别\" prop=\"xylb\"><el-input v-model=\"formData.xylb\" placeholder=\"请输入学员类别\" /></el-form-item></el-col>\r\n </el-row>\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"12\"><el-form-item label=\"学员队期编号\" prop=\"xydqbh\"><el-input v-model=\"formData.xydqbh\" placeholder=\"请输入学员队期编号\" /></el-form-item></el-col>\r\n <el-col :span=\"12\"><el-form-item label=\"证件号码\" prop=\"zjhm\"><el-input v-model=\"formData.zjhm\" placeholder=\"请输入证件号码\" /></el-form-item></el-col>\r\n </el-row>\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"12\"><el-form-item label=\"所属军区\" prop=\"ssjq\"><el-input v-model=\"formData.ssjq\" placeholder=\"请输入所属军区\" /></el-form-item></el-col>\r\n <el-col :span=\"12\"><el-form-item label=\"当前班次编号\" prop=\"dqbzbh\"><el-input v-model=\"formData.dqbzbh\" placeholder=\"请输入当前班次编号\" /></el-form-item></el-col>\r\n </el-row>\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"12\"><el-form-item label=\"军人证件类型\" prop=\"jrzjlx\"><el-input v-model=\"formData.jrzjlx\" placeholder=\"请输入军人证件类型\" /></el-form-item></el-col>\r\n <el-col :span=\"12\"><el-form-item label=\"退学状态\" prop=\"txzt\"><el-input v-model=\"formData.txzt\" placeholder=\"请输入退学状态\" /></el-form-item></el-col>\r\n </el-row>\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"8\"><el-form-item label=\"国防生\" prop=\"gfs\"><el-select v-model=\"formData.gfs\" placeholder=\"请选择\" class=\"full-width\"><el-option label=\"是\" value=\"1\" /><el-option label=\"否\" value=\"0\" /></el-select></el-form-item></el-col>\r\n <el-col :span=\"8\"><el-form-item label=\"留级状态\" prop=\"ljzt\"><el-input v-model=\"formData.ljzt\" placeholder=\"请输入\" /></el-form-item></el-col>\r\n <el-col :span=\"8\"><el-form-item label=\"分班状态\" prop=\"fbzt\"><el-input v-model=\"formData.fbzt\" placeholder=\"请输入\" /></el-form-item></el-col>\r\n </el-row>\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"8\"><el-form-item label=\"允许查看成绩\" prop=\"yxckcj\"><el-select v-model=\"formData.yxckcj\" placeholder=\"请选择\" class=\"full-width\"><el-option label=\"是\" value=\"1\" /><el-option label=\"否\" value=\"0\" /></el-select></el-form-item></el-col>\r\n <el-col :span=\"8\"><el-form-item label=\"已注册\" prop=\"yzc\"><el-select v-model=\"formData.yzc\" placeholder=\"请选择\" class=\"full-width\"><el-option label=\"是\" value=\"1\" /><el-option label=\"否\" value=\"0\" /></el-select></el-form-item></el-col>\r\n <el-col :span=\"8\" />\r\n </el-row>\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"12\"><el-form-item label=\"联系电话\" prop=\"lxdh\"><el-input v-model=\"formData.lxdh\" placeholder=\"请输入联系电话\" /></el-form-item></el-col>\r\n <el-col :span=\"12\"><el-form-item label=\"通讯地址\" prop=\"txdz\"><el-input v-model=\"formData.txdz\" placeholder=\"请输入通讯地址\" /></el-form-item></el-col>\r\n </el-row>\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"24\"><el-form-item label=\"备注\" prop=\"bz\"><el-input v-model=\"formData.bz\" type=\"textarea\" :rows=\"2\" placeholder=\"请输入备注\" /></el-form-item></el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot=\"footer\">\r\n <el-button @click=\"dialogVisible = false\">取消</el-button>\r\n <el-button type=\"primary\" :loading=\"submitting\" @click=\"handleSubmit\">确定</el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <!-- 成绩弹窗 -->\r\n <el-dialog\r\n :visible=\"gradesVisible\"\r\n title=\"学员成绩\"\r\n width=\"600px\"\r\n :close-on-click-modal=\"false\"\r\n @update:visible=\"val => gradesVisible = val\"\r\n >\r\n <p><strong>学员:</strong>{{ gradesStudent }}</p>\r\n <el-tabs v-model=\"gradesTab\">\r\n <el-tab-pane label=\"成绩\" name=\"grades\">\r\n <div v-loading=\"gradesLoading\">\r\n <pre v-if=\"gradesData\">{{ gradesData }}</pre>\r\n </div>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"进程成绩\" name=\"process\">\r\n <div v-loading=\"gradesLoading\">\r\n <pre v-if=\"processGradesData\">{{ processGradesData }}</pre>\r\n </div>\r\n </el-tab-pane>\r\n </el-tabs>\r\n <div slot=\"footer\">\r\n <el-button type=\"primary\" @click=\"handleExportGrades\">导出成绩</el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n listStudentRecord,\r\n getStudentRecord,\r\n addStudentRecord,\r\n updateStudentRecord,\r\n delStudentRecord\r\n} from \"@/api/studentRecords/studentRecords\"\r\n\r\nexport default {\r\n name: 'StudentInfoIndex',\r\n data() {\r\n return {\r\n // ==================== 查询条件 ====================\r\n // 仅保留后端 XYXX 实体支持的字段:/student-records/list 会按实体字段动态构建查询条件\r\n searchForm: {\r\n xh: '', xm: '', xb: '', zjhm: '', zzmm: '', mz: '', jg: '', xw: '',\r\n ybzb: '', sfzh: '', whcd: '', bkbyyx: '', bq: '', lxdh: '', txdz: ''\r\n },\r\n\r\n // ==================== 数据表格 ====================\r\n loading: false,\r\n tableData: [],\r\n pagination: { pageNum: 1, pageSize: 20, total: 0 },\r\n\r\n // ==================== 新增/编辑弹窗 ====================\r\n dialogVisible: false,\r\n dialogTitle: '新增学员',\r\n submitting: false,\r\n formData: this.createEmptyForm(),\r\n formRules: {\r\n bh: [{ required: true, message: '请输入编号', trigger: 'blur' }],\r\n xh: [{ required: true, message: '请输入学号', trigger: 'blur' }],\r\n xm: [{ required: true, message: '请输入姓名', trigger: 'blur' }],\r\n xydqbh: [{ required: true, message: '请输入学员队期编号', trigger: 'blur' }],\r\n zjhm: [{ required: true, message: '请输入证件号码', trigger: 'blur' }],\r\n zzmm: [{ required: true, message: '请输入政治面貌', trigger: 'blur' }],\r\n xb: [{ required: true, message: '请选择性别', trigger: 'change' }],\r\n csrq: [{ required: true, message: '请选择出生日期', trigger: 'change' }],\r\n mz: [{ required: true, message: '请输入民族', trigger: 'blur' }],\r\n jg: [{ required: true, message: '请输入籍贯', trigger: 'blur' }],\r\n whcd: [{ required: true, message: '请输入文化程度', trigger: 'blur' }],\r\n xylb: [{ required: true, message: '请输入学员类别', trigger: 'blur' }],\r\n ssjq: [{ required: true, message: '请输入所属军区', trigger: 'blur' }],\r\n gfs: [{ required: true, message: '请选择国防生', trigger: 'change' }],\r\n txzt: [{ required: true, message: '请输入退学状态', trigger: 'blur' }],\r\n ljzt: [{ required: true, message: '请输入留级状态', trigger: 'blur' }],\r\n fbzt: [{ required: true, message: '请输入分班状态', trigger: 'blur' }],\r\n yxckcj: [{ required: true, message: '请选择允许查看成绩', trigger: 'change' }],\r\n dqbzbh: [{ required: true, message: '请输入当前班次编号', trigger: 'blur' }],\r\n yzc: [{ required: true, message: '请选择已注册', trigger: 'change' }],\r\n jrzjlx: [{ required: true, message: '请输入军人证件类型', trigger: 'blur' }]\r\n },\r\n\r\n // ==================== 成绩弹窗 ====================\r\n gradesVisible: false,\r\n gradesTab: 'grades',\r\n gradesData: null,\r\n processGradesData: null,\r\n gradesStudent: '',\r\n currentBh: '',\r\n gradesLoading: false\r\n }\r\n },\r\n mounted() {\r\n this.loadData()\r\n },\r\n methods: {\r\n /** 创建空白表单 */\r\n createEmptyForm() {\r\n return {\r\n bh: '', xh: '', xm: '', xydqbh: '', zjhm: '', zzmm: '', xb: '', csrq: '', mz: '', jg: '',\r\n whcd: '', xylb: '', ssjq: '', gfs: '', txzt: '', ljzt: '', fbzt: '', yxckcj: '', dqbzbh: '', yzc: '',\r\n jrzjlx: '', sfzh: '', lxdh: '', txdz: '', bz: '', dtsj: ''\r\n }\r\n },\r\n\r\n // ==================== 列表加载 ====================\r\n loadData() {\r\n this.loading = true\r\n const params = {\r\n pageNum: this.pagination.pageNum,\r\n pageSize: this.pagination.pageSize\r\n }\r\n this.buildQueryParams(params)\r\n listStudentRecord(params).then(res => {\r\n const data = res.data || {}\r\n this.tableData = data.records || []\r\n this.pagination.total = data.total || 0\r\n this.loading = false\r\n }).catch(() => {\r\n this.tableData = []\r\n this.pagination.total = 0\r\n this.loading = false\r\n })\r\n },\r\n\r\n /** 组装查询参数:仅传后端 XYXX 实体支持的字符串字段,空值忽略 */\r\n buildQueryParams(params) {\r\n const textFields = ['xh', 'xm', 'zjhm', 'zzmm', 'mz', 'jg', 'xw', 'ybzb', 'sfzh', 'whcd', 'bkbyyx', 'bq', 'lxdh', 'txdz']\r\n textFields.forEach(key => {\r\n const v = this.searchForm[key]\r\n if (v !== '' && v !== null && v !== undefined) params[key] = v.trim()\r\n })\r\n if (this.searchForm.xb) params.xb = this.searchForm.xb\r\n },\r\n\r\n // ==================== 查询/分页 ====================\r\n handleSearch() {\r\n this.pagination.pageNum = 1\r\n this.loadData()\r\n },\r\n handlePageChange(page) {\r\n this.pagination.pageNum = page\r\n this.loadData()\r\n },\r\n handleSizeChange(size) {\r\n this.pagination.pageSize = size\r\n this.pagination.pageNum = 1\r\n this.loadData()\r\n },\r\n\r\n // ==================== 新增/编辑弹窗 ====================\r\n resetForm() {\r\n Object.assign(this.formData, this.createEmptyForm())\r\n this.$nextTick(() => {\r\n if (this.$refs.formRef) {\r\n this.$refs.formRef.clearValidate()\r\n }\r\n })\r\n },\r\n\r\n handleAdd() {\r\n this.dialogTitle = '新增学员'\r\n this.resetForm()\r\n this.dialogVisible = true\r\n },\r\n\r\n handleEdit(row) {\r\n this.dialogTitle = '编辑学员'\r\n this.resetForm()\r\n if (!row.bh) {\r\n Object.assign(this.formData, this.createEmptyForm(), row)\r\n this.dialogVisible = true\r\n return\r\n }\r\n getStudentRecord(row.bh).then(res => {\r\n const data = res.data || {}\r\n Object.assign(this.formData, this.createEmptyForm(), data)\r\n this.dialogVisible = true\r\n }).catch(() => {})\r\n },\r\n\r\n // ==================== 新增/编辑提交 ====================\r\n handleSubmit() {\r\n this.$refs.formRef.validate(valid => {\r\n if (!valid) return\r\n this.submitting = true\r\n const isAdd = this.dialogTitle === '新增学员'\r\n const payload = { ...this.formData }\r\n const request = isAdd ? addStudentRecord(payload) : updateStudentRecord(payload)\r\n request.then(() => {\r\n this.$message.success(isAdd ? '新增成功' : '编辑成功')\r\n this.dialogVisible = false\r\n this.loadData()\r\n }).catch(() => {\r\n }).finally(() => {\r\n this.submitting = false\r\n })\r\n })\r\n },\r\n\r\n // ==================== 删除 ====================\r\n handleDelete(row) {\r\n this.$confirm(`确定要删除\"${row.xm}\"吗?`, '删除确认', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n return delStudentRecord(row.bh)\r\n }).then(() => {\r\n this.$message.success('删除成功')\r\n this.loadData()\r\n }).catch(() => {})\r\n },\r\n\r\n // ==================== 成绩弹窗 ====================\r\n // TODO: 后端接口未提供,成绩数据为前端模拟;接口就绪后替换为 getStudentGrades / getStudentProcessGrades\r\n handleGrades(row) {\r\n this.gradesStudent = row.xm || ''\r\n this.currentBh = row.bh || ''\r\n this.gradesData = null\r\n this.processGradesData = null\r\n this.gradesTab = 'grades'\r\n this.gradesVisible = true\r\n this.gradesLoading = true\r\n setTimeout(() => {\r\n this.gradesData = { 学员: row.xm, 学号: row.xh, 课程: '通信原理', 成绩: 92, 学分: 3.0 }\r\n this.processGradesData = { 进程成绩: [{ 名称: '平时成绩', 得分: 95 }, { 名称: '期末成绩', 得分: 88 }] }\r\n this.gradesLoading = false\r\n }, 300)\r\n },\r\n\r\n // TODO: 后端接口未提供,导出为前端模拟;接口就绪后替换为 exportStudentGrades\r\n handleExportGrades() {\r\n this.$message.success(`已导出学员${this.gradesStudent}成绩(前端模拟)`)\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.student-info-page {\r\n .search-card {\r\n .search-form {\r\n .range-control {\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n width: 100%;\r\n\r\n .el-input {\r\n flex: 1;\r\n }\r\n\r\n .range-sep {\r\n flex-shrink: 0;\r\n font-size: 12px;\r\n color: #606266;\r\n }\r\n }\r\n\r\n .search-tip {\r\n font-size: 12px;\r\n color: #f56c6c;\r\n margin-top: 8px;\r\n margin-bottom: 8px;\r\n }\r\n\r\n .search-actions {\r\n display: flex;\r\n justify-content: flex-end;\r\n padding-top: 12px;\r\n border-top: 1px solid #ebeef5;\r\n }\r\n }\r\n }\r\n\r\n .toolbar {\r\n margin-bottom: 16px;\r\n }\r\n\r\n .table-card {\r\n .el-table {\r\n width: 100%;\r\n }\r\n }\r\n\r\n .text-primary {\r\n color: #409eff;\r\n padding: 0;\r\n }\r\n\r\n .text-success {\r\n color: #67c23a;\r\n padding: 0;\r\n }\r\n\r\n .danger-text {\r\n color: #f56c6c;\r\n padding: 0;\r\n }\r\n\r\n .full-width {\r\n width: 100%;\r\n }\r\n\r\n}\r\n</style>\r\n"],"mappings":"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","ignoreList":[]}]} |