Files
education/frontend/node_modules/.cache/babel-loader/c81fb05ebb87345f9ae743b550a53b87.json
T

1 line
42 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\\statusChange\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\student\\statusChange\\index.vue","mtime":1787567871642},{"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},{"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:InVzZSBzdHJpY3QiOwoKT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICJfX2VzTW9kdWxlIiwgewogIHZhbHVlOiB0cnVlCn0pOwpleHBvcnRzLmRlZmF1bHQgPSB2b2lkIDA7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNsaWNlLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucGFkLXN0YXJ0LmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnRyaW0uanMiKTsKdmFyIF9hcHBsaWNhdGlvbiA9IHJlcXVpcmUoIkAvYXBpL3N0dWRlbnRSZWNvcmRzL2FwcGxpY2F0aW9uIik7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCnZhciBfZGVmYXVsdCA9IGV4cG9ydHMuZGVmYXVsdCA9IHsKICBuYW1lOiAnU3RhdHVzQ2hhbmdlSW5kZXgnLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDnlLPor7fnsbvlnovpgInpobnvvIjlrabnsY3lvILliqjvvIkgPT09PT09PT09PT09PT09PT09PT0KICAgICAgYXBwbHlUeXBlT3B0aW9uczogWyfkvJHlraYnLCAn5aSN5a2mJywgJ+mAgOWtpicsICfovazlraYnLCAn55WZ57qnJywgJ+i9rOS4k+S4middLAogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDnirbmgIHmmKDlsITvvJowLeW+heWuoeaguCAxLeW3suWuoeaguCAyLemps+WbnuetiSA9PT09PT09PT09PT09PT09PT09PQogICAgICBzdGF0dXNNYXA6IHsKICAgICAgICAwOiB7CiAgICAgICAgICBsYWJlbDogJ+W+heWuoeaguCcsCiAgICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgICB9LAogICAgICAgIDE6IHsKICAgICAgICAgIGxhYmVsOiAn5bey5a6h5qC4JywKICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJwogICAgICAgIH0sCiAgICAgICAgMjogewogICAgICAgICAgbGFiZWw6ICfpqbPlm54nLAogICAgICAgICAgdHlwZTogJ2RhbmdlcicKICAgICAgICB9CiAgICAgIH0sCiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IOafpeivouadoeS7tiA9PT09PT09PT09PT09PT09PT09PQogICAgICBzZWFyY2hGb3JtOiB7CiAgICAgICAgYmg6ICcnLAogICAgICAgIHh5Ymg6ICcnLAogICAgICAgIHNxbHg6ICcnLAogICAgICAgIHp0OiB1bmRlZmluZWQKICAgICAgfSwKICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5YiX6KGo5pWw5o2uID09PT09PT09PT09PT09PT09PT09CiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICB0YWJsZURhdGE6IFtdLAogICAgICB0b3RhbDogMCwKICAgICAgcGFnZU51bTogMSwKICAgICAgcGFnZVNpemU6IDIwLAogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDmlrDlop4v57yW6L6RID09PT09PT09PT09PT09PT09PT09CiAgICAgIGZvcm1EaWFsb2dWaXNpYmxlOiBmYWxzZSwKICAgICAgZGlhbG9nVGl0bGU6ICfmlrDlop7lrabnsY3lvILliqjnlLPor7cnLAogICAgICBpc0FkZDogdHJ1ZSwKICAgICAgZm9ybVNhdmluZzogZmFsc2UsCiAgICAgIGZvcm06IHRoaXMuY3JlYXRlRW1wdHlGb3JtKCksCiAgICAgIGZvcm1SdWxlczogewogICAgICAgIGJoOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl57yW5Y+3JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHh5Ymg6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXlrablkZjnvJblj7cnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgc3FseDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeeUs+ivt+exu+WeiycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHN5OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5LqL55SxJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHp0OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup54q25oCBJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0g6K+m5oOFID09PT09PT09PT09PT09PT09PT09CiAgICAgIGRldGFpbERpYWxvZ1Zpc2libGU6IGZhbHNlLAogICAgICBkZXRhaWxMb2FkaW5nOiBmYWxzZSwKICAgICAgZGV0YWlsRm9ybToge30KICAgIH07CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdGhpcy5mZXRjaExpc3QoKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGNyZWF0ZUVtcHR5Rm9ybTogZnVuY3Rpb24gY3JlYXRlRW1wdHlGb3JtKCkgewogICAgICByZXR1cm4gewogICAgICAgIGJoOiAnJywKICAgICAgICB4eWJoOiAnJywKICAgICAgICBzcWx4OiAnJywKICAgICAgICBzeTogJycsCiAgICAgICAgYno6ICcnLAogICAgICAgIHp0OiAwCiAgICAgIH07CiAgICB9LAogICAgLy8gPT09PT09PT09PT09PT09PT09PT0g54q25oCB5bGV56S6ID09PT09PT09PT09PT09PT09PT09CiAgICAvLyDnu5/kuIDmoLzlvI/ljJblkI7nq68gTG9jYWxEYXRlVGltZe+8iOWOu+mZpCBU44CB5oiq5pat5Yiw56eS77yJCiAgICBmbXREYXRlVGltZTogZnVuY3Rpb24gZm10RGF0ZVRpbWUodmFsKSB7CiAgICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQgfHwgdmFsID09PSAnJykgcmV0dXJuICcnOwogICAgICByZXR1cm4gU3RyaW5nKHZhbCkucmVwbGFjZSgnVCcsICcgJykuc2xpY2UoMCwgMTkpOwogICAgfSwKICAgIHN0YXR1c0xhYmVsOiBmdW5jdGlvbiBzdGF0dXNMYWJlbCh6dCkgewogICAgICB2YXIgaXRlbSA9IHRoaXMuc3RhdHVzTWFwW3p0XTsKICAgICAgcmV0dXJuIGl0ZW0gPyBpdGVtLmxhYmVsIDogenQgIT09IG51bGwgJiYgenQgIT09IHVuZGVmaW5lZCA/IFN0cmluZyh6dCkgOiAnLSc7CiAgICB9LAogICAgc3RhdHVzVGFnVHlwZTogZnVuY3Rpb24gc3RhdHVzVGFnVHlwZSh6dCkgewogICAgICB2YXIgaXRlbSA9IHRoaXMuc3RhdHVzTWFwW3p0XTsKICAgICAgcmV0dXJuIGl0ZW0gPyBpdGVtLnR5cGUgOiAnaW5mbyc7CiAgICB9LAogICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5p+l6K+i5YiX6KGoID09PT09PT09PT09PT09PT09PT09CiAgICBmZXRjaExpc3Q6IGZ1bmN0aW9uIGZldGNoTGlzdCgpIHsKICAgICAgdmFyIF90aGlzID0gdGhpczsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgdmFyIHBhcmFtcyA9IHsKICAgICAgICBwYWdlTnVtOiB0aGlzLnBhZ2VOdW0sCiAgICAgICAgcGFnZVNpemU6IHRoaXMucGFnZVNpemUKICAgICAgfQogICAgICAvLyDnrYnlgLznrZvpgInvvIznlZnnqbrkuI3kvKAKOwogICAgICBbJ2JoJywgJ3h5YmgnLCAnc3FseCddLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgIHZhciB2YWx1ZSA9IF90aGlzLnNlYXJjaEZvcm1ba2V5XTsKICAgICAgICBpZiAodmFsdWUgIT09ICcnICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgIHBhcmFtc1trZXldID0gU3RyaW5nKHZhbHVlKS50cmltKCk7CiAgICAgICAgfQogICAgICB9KTsKICAgICAgaWYgKHRoaXMuc2VhcmNoRm9ybS56dCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuc2VhcmNoRm9ybS56dCAhPT0gJycgJiYgdGhpcy5zZWFyY2hGb3JtLnp0ICE9PSBudWxsKSB7CiAgICAgICAgcGFyYW1zLnp0ID0gdGhpcy5zZWFyY2hGb3JtLnp0OwogICAgICB9CiAgICAgICgwLCBfYXBwbGljYXRpb24ubGlzdEFwcGxpY2F0aW9uKShwYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgdmFyIGRhdGEgPSByZXNwb25zZS5kYXRhIHx8IHt9OwogICAgICAgIF90aGlzLnRhYmxlRGF0YSA9IGRhdGEucmVjb3JkcyB8fCBbXTsKICAgICAgICBfdGhpcy50b3RhbCA9IGRhdGEudG90YWwgfHwgMDsKICAgICAgICBfdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpcy50YWJsZURhdGEgPSBbXTsKICAgICAgICBfdGhpcy50b3RhbCA9IDA7CiAgICAgICAgX3RoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICB9KTsKICAgIH0sCiAgICBoYW5kbGVTZWFyY2g6IGZ1bmN0aW9uIGhhbmRsZVNlYXJjaCgpIHsKICAgICAgdGhpcy5wYWdlTnVtID0gMTsKICAgICAgdGhpcy5mZXRjaExpc3QoKTsKICAgIH0sCiAgICBoYW5kbGVSZXNldDogZnVuY3Rpb24gaGFuZGxlUmVzZXQoKSB7CiAgICAgIHRoaXMuJHJlZnMuc2VhcmNoRm9ybVJlZi5yZXNldEZpZWxkcygpOwogICAgICB0aGlzLnBhZ2VOdW0gPSAxOwogICAgICB0aGlzLmZldGNoTGlzdCgpOwogICAgfSwKICAgIGhhbmRsZVBhZ2VDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVBhZ2VDaGFuZ2UoY3VycmVudCkgewogICAgICB0aGlzLnBhZ2VOdW0gPSBjdXJyZW50OwogICAgICB0aGlzLmZldGNoTGlzdCgpOwogICAgfSwKICAgIGhhbmRsZVNpemVDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVNpemVDaGFuZ2Uoc2l6ZSkgewogICAgICB0aGlzLnBhZ2VTaXplID0gc2l6ZTsKICAgICAgdGhpcy5wYWdlTnVtID0gMTsKICAgICAgdGhpcy5mZXRjaExpc3QoKTsKICAgIH0sCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDmlrDlop4v57yW6L6RID09PT09PT09PT09PT09PT09PT09CiAgICBoYW5kbGVBZGQ6IGZ1bmN0aW9uIGhhbmRsZUFkZCgpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICAgIHRoaXMuaXNBZGQgPSB0cnVlOwogICAgICB0aGlzLmRpYWxvZ1RpdGxlID0gJ+aWsOWinuWtpuexjeW8guWKqOeUs+ivtyc7CiAgICAgIHRoaXMuZm9ybSA9IHRoaXMuY3JlYXRlRW1wdHlGb3JtKCk7CiAgICAgIHRoaXMuZm9ybURpYWxvZ1Zpc2libGUgPSB0cnVlOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMyLiRyZWZzLmZvcm1SZWYgJiYgX3RoaXMyLiRyZWZzLmZvcm1SZWYuY2xlYXJWYWxpZGF0ZSgpOwogICAgICB9KTsKICAgIH0sCiAgICBoYW5kbGVFZGl0OiBmdW5jdGlvbiBoYW5kbGVFZGl0KHJvdykgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgdGhpcy5pc0FkZCA9IGZhbHNlOwogICAgICB0aGlzLmRpYWxvZ1RpdGxlID0gJ+e8lui+keWtpuexjeW8guWKqOeUs+ivtyc7CiAgICAgIHRoaXMuZm9ybSA9IHRoaXMuY3JlYXRlRW1wdHlGb3JtKCk7CiAgICAgIHRoaXMuZm9ybURpYWxvZ1Zpc2libGUgPSB0cnVlOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMzLiRyZWZzLmZvcm1SZWYgJiYgX3RoaXMzLiRyZWZzLmZvcm1SZWYuY2xlYXJWYWxpZGF0ZSgpOwogICAgICB9KTsKICAgICAgKDAsIF9hcHBsaWNhdGlvbi5nZXRBcHBsaWNhdGlvbikocm93LmJoKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIHZhciBkYXRhID0gcmVzcG9uc2UuZGF0YSB8fCB7fTsKICAgICAgICBfdGhpczMuZm9ybSA9IHsKICAgICAgICAgIGJoOiBkYXRhLmJoIHx8ICcnLAogICAgICAgICAgeHliaDogZGF0YS54eWJoIHx8ICcnLAogICAgICAgICAgc3FseDogZGF0YS5zcWx4IHx8ICcnLAogICAgICAgICAgc3k6IGRhdGEuc3kgfHwgJycsCiAgICAgICAgICBiejogZGF0YS5ieiB8fCAnJywKICAgICAgICAgIHp0OiBkYXRhLnp0ICE9PSBudWxsICYmIGRhdGEuenQgIT09IHVuZGVmaW5lZCA/IE51bWJlcihkYXRhLnp0KSA6IDAKICAgICAgICB9OwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAogICAgYnVpbGRQYXlsb2FkOiBmdW5jdGlvbiBidWlsZFBheWxvYWQoKSB7CiAgICAgIHZhciBmID0gdGhpcy5mb3JtOwogICAgICB2YXIgcGF5bG9hZCA9IHsKICAgICAgICBiaDogZi5iaCwKICAgICAgICB4eWJoOiBmLnh5YmgsCiAgICAgICAgc3FseDogZi5zcWx4LAogICAgICAgIHN5OiBmLnN5LAogICAgICAgIHp0OiBOdW1iZXIoZi56dCkKICAgICAgfTsKICAgICAgLy8g5aSH5rOo55WZ56m65YiZ56e76ZmkCiAgICAgIGlmIChmLmJ6ICE9PSAnJyAmJiBmLmJ6ICE9PSBudWxsICYmIGYuYnogIT09IHVuZGVmaW5lZCkgewogICAgICAgIHBheWxvYWQuYnogPSBmLmJ6OwogICAgICB9CiAgICAgIHJldHVybiBwYXlsb2FkOwogICAgfSwKICAgIGhhbmRsZUZvcm1TdWJtaXQ6IGZ1bmN0aW9uIGhhbmRsZUZvcm1TdWJtaXQoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICB0aGlzLiRyZWZzLmZvcm1SZWYudmFsaWRhdGUoZnVuY3Rpb24gKHZhbGlkKSB7CiAgICAgICAgaWYgKCF2YWxpZCkgcmV0dXJuOwogICAgICAgIF90aGlzNC5mb3JtU2F2aW5nID0gdHJ1ZTsKICAgICAgICB2YXIgcGF5bG9hZCA9IF90aGlzNC5idWlsZFBheWxvYWQoKTsKICAgICAgICB2YXIgcmVxdWVzdCA9IF90aGlzNC5pc0FkZCA/ICgwLCBfYXBwbGljYXRpb24uYWRkQXBwbGljYXRpb24pKHBheWxvYWQpIDogKDAsIF9hcHBsaWNhdGlvbi51cGRhdGVBcHBsaWNhdGlvbikocGF5bG9hZCk7CiAgICAgICAgcmVxdWVzdC50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIF90aGlzNC4kbWVzc2FnZS5zdWNjZXNzKF90aGlzNC5pc0FkZCA/ICfmlrDlop7miJDlip8nIDogJ+S/ruaUueaIkOWKnycpOwogICAgICAgICAgX3RoaXM0LmZvcm1EaWFsb2dWaXNpYmxlID0gZmFsc2U7CiAgICAgICAgICBfdGhpczQuZmV0Y2hMaXN0KCk7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pLmZpbmFsbHkoZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXM0LmZvcm1TYXZpbmcgPSBmYWxzZTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAogICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5o+Q5LqkID09PT09PT09PT09PT09PT09PT09CiAgICAvLyDml6Dni6znq4vmj5DkuqTmjqXlj6PvvIzpgJrov4fnvJbovpHmjqXlj6PlhpnlhaXmj5DkuqTml7bpl7QgdGpzau+8iHp0IOS/neaMgeWOn+WAvOS4jeWPmO+8iQogICAgZm9ybWF0Tm93OiBmdW5jdGlvbiBmb3JtYXROb3coKSB7CiAgICAgIHZhciBkID0gbmV3IERhdGUoKTsKICAgICAgdmFyIHBhZCA9IGZ1bmN0aW9uIHBhZChuKSB7CiAgICAgICAgcmV0dXJuIFN0cmluZyhuKS5wYWRTdGFydCgyLCAnMCcpOwogICAgICB9OwogICAgICByZXR1cm4gIiIuY29uY2F0KGQuZ2V0RnVsbFllYXIoKSwgIi0iKS5jb25jYXQocGFkKGQuZ2V0TW9udGgoKSArIDEpLCAiLSIpLmNvbmNhdChwYWQoZC5nZXREYXRlKCkpLCAiICIpLmNvbmNhdChwYWQoZC5nZXRIb3VycygpKSwgIjoiKS5jb25jYXQocGFkKGQuZ2V0TWludXRlcygpKSwgIjoiKS5jb25jYXQocGFkKGQuZ2V0U2Vjb25kcygpKSk7CiAgICB9LAogICAgaGFuZGxlU3VibWl0OiBmdW5jdGlvbiBoYW5kbGVTdWJtaXQocm93KSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB0aGlzLiRjb25maXJtKCJcdTc4NkVcdTVCOUFcdTg5ODFcdTYzRDBcdTRFQTRcdTdGMTZcdTUzRjdcdTRFM0FcdTMwMEMiLmNvbmNhdChyb3cuYmgsICJcdTMwMERcdTc2ODRcdTVCNjZcdTdDNERcdTVGMDJcdTUyQThcdTc1MzNcdThCRjdcdTU0MTdcdUZGMUYiKSwgJ+ezu+e7n+aPkOekuicsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBwYXlsb2FkID0gewogICAgICAgICAgYmg6IHJvdy5iaCwKICAgICAgICAgIHh5Ymg6IHJvdy54eWJoLAogICAgICAgICAgc3FseDogcm93LnNxbHgsCiAgICAgICAgICBzeTogcm93LnN5LAogICAgICAgICAgenQ6IHJvdy56dCAhPT0gbnVsbCAmJiByb3cuenQgIT09IHVuZGVmaW5lZCA/IE51bWJlcihyb3cuenQpIDogMCwKICAgICAgICAgIHRqc2o6IF90aGlzNS5mb3JtYXROb3coKQogICAgICAgIH07CiAgICAgICAgaWYgKHJvdy5ieikgewogICAgICAgICAgcGF5bG9hZC5ieiA9IHJvdy5iejsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICgwLCBfYXBwbGljYXRpb24udXBkYXRlQXBwbGljYXRpb24pKHBheWxvYWQpOwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczUuJG1lc3NhZ2Uuc3VjY2Vzcygn5o+Q5Lqk5oiQ5YqfJyk7CiAgICAgICAgX3RoaXM1LmZldGNoTGlzdCgpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAogICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5Yig6ZmkID09PT09PT09PT09PT09PT09PT09CiAgICBoYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShyb3cpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHRoaXMuJGNvbmZpcm0oIlx1Nzg2RVx1NUI5QVx1ODk4MVx1NTIyMFx1OTY2NFx1N0YxNlx1NTNGN1x1NEUzQVx1MzAwQyIuY29uY2F0KHJvdy5iaCwgIlx1MzAwRFx1NzY4NFx1NUI2Nlx1N0M0RFx1NUYwMlx1NTJBOFx1NzUzM1x1OEJGN1x1NTQxN1x1RkYxRiIpLCAn57O757uf5o+Q56S6JywgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuICgwLCBfYXBwbGljYXRpb24uZGVsQXBwbGljYXRpb24pKHJvdy5iaCk7CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNi4kbWVzc2FnZS5zdWNjZXNzKCfliKDpmaTmiJDlip8nKTsKICAgICAgICBfdGhpczYuZmV0Y2hMaXN0KCk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgIH0sCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDor6bmg4UgPT09PT09PT09PT09PT09PT09PT0KICAgIGhhbmRsZURldGFpbDogZnVuY3Rpb24gaGFuZGxlRGV0YWlsKHJvdykgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgdGhpcy5kZXRhaWxEaWFsb2dWaXNpYmxlID0gdHJ1ZTsKICAgICAgdGhpcy5kZXRhaWxMb2FkaW5nID0gdHJ1ZTsKICAgICAgdGhpcy5kZXRhaWxGb3JtID0ge307CiAgICAgICgwLCBfYXBwbGljYXRpb24uZ2V0QXBwbGljYXRpb24pKHJvdy5iaCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczcuZGV0YWlsRm9ybSA9IHJlc3BvbnNlLmRhdGEgfHwge307CiAgICAgICAgX3RoaXM3LmRldGFpbExvYWRpbmcgPSBmYWxzZTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNy5kZXRhaWxMb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pOwogICAgfQogIH0KfTs="},{"version":3,"names":["_application","require","name","data","applyTypeOptions","statusMap","label","type","searchForm","bh","xybh","sqlx","zt","undefined","loading","tableData","total","pageNum","pageSize","formDialogVisible","dialogTitle","isAdd","formSaving","form","createEmptyForm","formRules","required","message","trigger","sy","detailDialogVisible","detailLoading","detailForm","mounted","fetchList","methods","bz","fmtDateTime","val","String","replace","slice","statusLabel","item","statusTagType","_this","params","forEach","key","value","trim","listApplication","then","response","records","catch","handleSearch","handleReset","$refs","searchFormRef","resetFields","handlePageChange","current","handleSizeChange","size","handleAdd","_this2","$nextTick","formRef","clearValidate","handleEdit","row","_this3","getApplication","Number","buildPayload","f","payload","handleFormSubmit","_this4","validate","valid","request","addApplication","updateApplication","$message","success","finally","formatNow","d","Date","pad","n","padStart","concat","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","handleSubmit","_this5","$confirm","confirmButtonText","cancelButtonText","tjsj","handleDelete","_this6","delApplication","handleDetail","_this7"],"sources":["src/views/student/statusChange/index.vue"],"sourcesContent":["<template>\r\n <div class=\"app-container status-change-page\">\r\n <!-- ==================== 1. 查询条件 ==================== -->\r\n <el-card shadow=\"never\" class=\"search-card\">\r\n <el-form ref=\"searchFormRef\" :model=\"searchForm\" label-width=\"90px\" class=\"search-form\">\r\n <el-row :gutter=\"24\">\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\">\r\n <el-form-item label=\"编号\">\r\n <el-input v-model=\"searchForm.bh\" placeholder=\"请输入编号\" clearable @keyup.enter.native=\"handleSearch\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\">\r\n <el-form-item label=\"学员编号\">\r\n <el-input v-model=\"searchForm.xybh\" placeholder=\"请输入学员编号\" clearable @keyup.enter.native=\"handleSearch\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\">\r\n <el-form-item label=\"申请类型\">\r\n <el-select v-model=\"searchForm.sqlx\" placeholder=\"请选择申请类型\" clearable class=\"w-full\">\r\n <el-option v-for=\"item in applyTypeOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"12\" :xl=\"12\">\r\n <el-form-item label=\"状态\">\r\n <el-select v-model=\"searchForm.zt\" placeholder=\"请选择状态\" clearable class=\"w-full\">\r\n <el-option v-for=\"(item, key) in statusMap\" :key=\"key\" :label=\"item.label\" :value=\"Number(key)\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row>\r\n <el-col :span=\"24\" class=\"search-actions\">\r\n <div class=\"search-buttons\">\r\n <el-button type=\"primary\" @click=\"handleSearch\">查询</el-button>\r\n <el-button @click=\"handleReset\">重置</el-button>\r\n </div>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n </el-card>\r\n\r\n <!-- ==================== 2. 列表 ==================== -->\r\n <el-card shadow=\"never\" class=\"table-card\">\r\n <div class=\"table-header\">\r\n <span class=\"table-title\">学籍异动申请列表:</span>\r\n <el-button type=\"primary\" icon=\"el-icon-plus\" @click=\"handleAdd\">新增学籍异动申请</el-button>\r\n </div>\r\n <el-table v-loading=\"loading\" :data=\"tableData\" stripe border highlight-current-row>\r\n <el-table-column type=\"index\" label=\"序号\" width=\"60\" align=\"center\" />\r\n <el-table-column prop=\"bh\" label=\"编号\" min-width=\"140\" show-overflow-tooltip />\r\n <el-table-column prop=\"xybh\" label=\"学员编号\" min-width=\"120\" show-overflow-tooltip />\r\n <el-table-column prop=\"sqlx\" label=\"申请类型\" width=\"100\" align=\"center\" />\r\n <el-table-column prop=\"sy\" label=\"事由\" min-width=\"140\" show-overflow-tooltip />\r\n <el-table-column prop=\"bz\" label=\"备注\" min-width=\"140\" show-overflow-tooltip />\r\n <el-table-column label=\"状态\" width=\"90\" align=\"center\">\r\n <template slot-scope=\"{ row }\">\r\n <el-tag :type=\"statusTagType(row.zt)\" size=\"mini\" effect=\"light\">{{ statusLabel(row.zt) }}</el-tag>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"提交时间\" width=\"160\" align=\"center\">\r\n <template slot-scope=\"{ row }\">{{ row.tjsj ? fmtDateTime(row.tjsj) : '-' }}</template>\r\n </el-table-column>\r\n <el-table-column label=\"创建时间\" width=\"160\" align=\"center\">\r\n <template slot-scope=\"{ row }\">{{ row.cjsj ? fmtDateTime(row.cjsj) : '-' }}</template>\r\n </el-table-column>\r\n <el-table-column label=\"修改时间\" width=\"160\" align=\"center\">\r\n <template slot-scope=\"{ row }\">{{ row.xgsj ? fmtDateTime(row.xgsj) : '-' }}</template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" width=\"230\" align=\"center\" fixed=\"right\">\r\n <template slot-scope=\"{ row }\">\r\n <el-button v-if=\"!row.tjsj\" type=\"text\" size=\"small\" icon=\"el-icon-upload2\" @click=\"handleSubmit(row)\">提交</el-button>\r\n <el-button v-else type=\"text\" size=\"small\" icon=\"el-icon-check\" disabled>已提交</el-button>\r\n <el-button type=\"text\" size=\"small\" icon=\"el-icon-view\" @click=\"handleDetail(row)\">详情</el-button>\r\n <el-button type=\"text\" size=\"small\" icon=\"el-icon-edit\" @click=\"handleEdit(row)\">编辑</el-button>\r\n <el-button type=\"text\" size=\"small\" class=\"text-danger\" @click=\"handleDelete(row)\">删除</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <el-empty v-if=\"!loading && tableData.length === 0\" description=\"暂无学籍异动申请数据\" :image-size=\"60\" />\r\n\r\n <el-pagination\r\n :current-page=\"pageNum\"\r\n :page-size=\"pageSize\"\r\n :total=\"total\"\r\n :page-sizes=\"[10, 20, 50, 100]\"\r\n layout=\"total, sizes, prev, pager, next, jumper\"\r\n class=\"pagination-wrapper\"\r\n @current-change=\"handlePageChange\"\r\n @size-change=\"handleSizeChange\"\r\n />\r\n </el-card>\r\n\r\n <!-- ==================== 3. 新增/编辑对话框 ==================== -->\r\n <el-dialog\r\n :visible=\"formDialogVisible\"\r\n :title=\"dialogTitle\"\r\n width=\"600px\"\r\n :close-on-click-modal=\"false\"\r\n @update:visible=\"val => formDialogVisible = val\"\r\n >\r\n <el-form ref=\"formRef\" :model=\"form\" :rules=\"formRules\" label-width=\"110px\" class=\"add-form\">\r\n <el-form-item label=\"编号\" prop=\"bh\">\r\n <el-input v-model=\"form.bh\" placeholder=\"请输入编号\" :disabled=\"!isAdd\" />\r\n </el-form-item>\r\n <el-form-item label=\"学员编号\" prop=\"xybh\">\r\n <el-input v-model=\"form.xybh\" placeholder=\"请输入学员编号\" />\r\n </el-form-item>\r\n <el-form-item label=\"申请类型\" prop=\"sqlx\">\r\n <el-select v-model=\"form.sqlx\" placeholder=\"请选择申请类型\" class=\"w-full\">\r\n <el-option v-for=\"item in applyTypeOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"事由\" prop=\"sy\">\r\n <el-input v-model=\"form.sy\" type=\"textarea\" :rows=\"3\" placeholder=\"请输入事由\" />\r\n </el-form-item>\r\n <el-form-item label=\"备注\">\r\n <el-input v-model=\"form.bz\" type=\"textarea\" :rows=\"3\" placeholder=\"请输入备注\" />\r\n </el-form-item>\r\n <el-form-item label=\"状态\" prop=\"zt\">\r\n <el-select v-model=\"form.zt\" placeholder=\"请选择状态\" class=\"w-full\">\r\n <el-option v-for=\"(item, key) in statusMap\" :key=\"key\" :label=\"item.label\" :value=\"Number(key)\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-form>\r\n <div slot=\"footer\">\r\n <el-button @click=\"formDialogVisible = false\">取消</el-button>\r\n <el-button type=\"primary\" :loading=\"formSaving\" @click=\"handleFormSubmit\">确定</el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <!-- ==================== 4. 详情对话框 ==================== -->\r\n <el-dialog title=\"学籍异动申请详情\" :visible=\"detailDialogVisible\" width=\"760px\" :close-on-click-modal=\"false\"\r\n @update:visible=\"val => detailDialogVisible = val\">\r\n <div v-loading=\"detailLoading\" class=\"detail-body\">\r\n <el-descriptions :column=\"2\" border>\r\n <el-descriptions-item label=\"编号\">{{ detailForm.bh || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"学员编号\">{{ detailForm.xybh || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"申请类型\">{{ detailForm.sqlx || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"状态\">\r\n <el-tag :type=\"statusTagType(detailForm.zt)\" size=\"mini\">{{ statusLabel(detailForm.zt) }}</el-tag>\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"事由\" :span=\"2\">{{ detailForm.sy || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"备注\" :span=\"2\">{{ detailForm.bz || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"创建时间\">{{ detailForm.cjsj || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"修改时间\">{{ detailForm.xgsj || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"提交时间\">{{ detailForm.tjsj || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"学员队审核意见\">{{ detailForm.xydshyj || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"学员队干部编号\">{{ detailForm.xydgbbh || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"学员队干部审核时间\">{{ detailForm.xydshsj || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"管理员账户编号\">{{ detailForm.glyzhbh || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"管理员审核意见\">{{ detailForm.glyshyj || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"管理员审核时间\">{{ detailForm.glyshsj || '-' }}</el-descriptions-item>\r\n </el-descriptions>\r\n </div>\r\n <div slot=\"footer\">\r\n <el-button @click=\"detailDialogVisible = false\">关闭</el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n listApplication,\r\n getApplication,\r\n addApplication,\r\n updateApplication,\r\n delApplication\r\n} from '@/api/studentRecords/application'\r\n\r\nexport default {\r\n name: 'StatusChangeIndex',\r\n data() {\r\n return {\r\n // ==================== 申请类型选项(学籍异动) ====================\r\n applyTypeOptions: ['休学', '复学', '退学', '转学', '留级', '转专业'],\r\n\r\n // ==================== 状态映射:0-待审核 1-已审核 2-驳回等 ====================\r\n statusMap: {\r\n 0: { label: '待审核', type: 'warning' },\r\n 1: { label: '已审核', type: 'success' },\r\n 2: { label: '驳回', type: 'danger' }\r\n },\r\n\r\n // ==================== 查询条件 ====================\r\n searchForm: {\r\n bh: '',\r\n xybh: '',\r\n sqlx: '',\r\n zt: undefined\r\n },\r\n\r\n // ==================== 列表数据 ====================\r\n loading: false,\r\n tableData: [],\r\n total: 0,\r\n pageNum: 1,\r\n pageSize: 20,\r\n\r\n // ==================== 新增/编辑 ====================\r\n formDialogVisible: false,\r\n dialogTitle: '新增学籍异动申请',\r\n isAdd: true,\r\n formSaving: false,\r\n form: this.createEmptyForm(),\r\n formRules: {\r\n bh: [{ required: true, message: '请输入编号', trigger: 'blur' }],\r\n xybh: [{ required: true, message: '请输入学员编号', trigger: 'blur' }],\r\n sqlx: [{ required: true, message: '请选择申请类型', trigger: 'change' }],\r\n sy: [{ required: true, message: '请输入事由', trigger: 'blur' }],\r\n zt: [{ required: true, message: '请选择状态', trigger: 'change' }]\r\n },\r\n\r\n // ==================== 详情 ====================\r\n detailDialogVisible: false,\r\n detailLoading: false,\r\n detailForm: {}\r\n }\r\n },\r\n mounted() {\r\n this.fetchList()\r\n },\r\n methods: {\r\n createEmptyForm() {\r\n return {\r\n bh: '',\r\n xybh: '',\r\n sqlx: '',\r\n sy: '',\r\n bz: '',\r\n zt: 0\r\n }\r\n },\r\n\r\n // ==================== 状态展示 ====================\r\n // 统一格式化后端 LocalDateTime(去除 T、截断到秒)\r\n fmtDateTime(val) {\r\n if (val === null || val === undefined || val === '') return ''\r\n return String(val).replace('T', ' ').slice(0, 19)\r\n },\r\n statusLabel(zt) {\r\n const item = this.statusMap[zt]\r\n return item ? item.label : (zt !== null && zt !== undefined ? String(zt) : '-')\r\n },\r\n statusTagType(zt) {\r\n const item = this.statusMap[zt]\r\n return item ? item.type : 'info'\r\n },\r\n\r\n // ==================== 查询列表 ====================\r\n fetchList() {\r\n this.loading = true\r\n const params = {\r\n pageNum: this.pageNum,\r\n pageSize: this.pageSize\r\n }\r\n // 等值筛选,留空不传\r\n ;['bh', 'xybh', 'sqlx'].forEach(key => {\r\n const value = this.searchForm[key]\r\n if (value !== '' && value !== null && value !== undefined) {\r\n params[key] = String(value).trim()\r\n }\r\n })\r\n if (this.searchForm.zt !== undefined && this.searchForm.zt !== '' && this.searchForm.zt !== null) {\r\n params.zt = this.searchForm.zt\r\n }\r\n listApplication(params).then(response => {\r\n const data = response.data || {}\r\n this.tableData = data.records || []\r\n this.total = data.total || 0\r\n this.loading = false\r\n }).catch(() => {\r\n this.tableData = []\r\n this.total = 0\r\n this.loading = false\r\n })\r\n },\r\n\r\n handleSearch() {\r\n this.pageNum = 1\r\n this.fetchList()\r\n },\r\n\r\n handleReset() {\r\n this.$refs.searchFormRef.resetFields()\r\n this.pageNum = 1\r\n this.fetchList()\r\n },\r\n\r\n handlePageChange(current) {\r\n this.pageNum = current\r\n this.fetchList()\r\n },\r\n\r\n handleSizeChange(size) {\r\n this.pageSize = size\r\n this.pageNum = 1\r\n this.fetchList()\r\n },\r\n\r\n // ==================== 新增/编辑 ====================\r\n handleAdd() {\r\n this.isAdd = true\r\n this.dialogTitle = '新增学籍异动申请'\r\n this.form = this.createEmptyForm()\r\n this.formDialogVisible = true\r\n this.$nextTick(() => {\r\n this.$refs.formRef && this.$refs.formRef.clearValidate()\r\n })\r\n },\r\n\r\n handleEdit(row) {\r\n this.isAdd = false\r\n this.dialogTitle = '编辑学籍异动申请'\r\n this.form = this.createEmptyForm()\r\n this.formDialogVisible = true\r\n this.$nextTick(() => {\r\n this.$refs.formRef && this.$refs.formRef.clearValidate()\r\n })\r\n getApplication(row.bh).then(response => {\r\n const data = response.data || {}\r\n this.form = {\r\n bh: data.bh || '',\r\n xybh: data.xybh || '',\r\n sqlx: data.sqlx || '',\r\n sy: data.sy || '',\r\n bz: data.bz || '',\r\n zt: data.zt !== null && data.zt !== undefined ? Number(data.zt) : 0\r\n }\r\n }).catch(() => {})\r\n },\r\n\r\n buildPayload() {\r\n const f = this.form\r\n const payload = {\r\n bh: f.bh,\r\n xybh: f.xybh,\r\n sqlx: f.sqlx,\r\n sy: f.sy,\r\n zt: Number(f.zt)\r\n }\r\n // 备注留空则移除\r\n if (f.bz !== '' && f.bz !== null && f.bz !== undefined) {\r\n payload.bz = f.bz\r\n }\r\n return payload\r\n },\r\n\r\n handleFormSubmit() {\r\n this.$refs.formRef.validate(valid => {\r\n if (!valid) return\r\n this.formSaving = true\r\n const payload = this.buildPayload()\r\n const request = this.isAdd ? addApplication(payload) : updateApplication(payload)\r\n request.then(() => {\r\n this.$message.success(this.isAdd ? '新增成功' : '修改成功')\r\n this.formDialogVisible = false\r\n this.fetchList()\r\n }).catch(() => {\r\n }).finally(() => {\r\n this.formSaving = false\r\n })\r\n })\r\n },\r\n\r\n // ==================== 提交 ====================\r\n // 无独立提交接口,通过编辑接口写入提交时间 tjsj(zt 保持原值不变)\r\n formatNow() {\r\n const d = new Date()\r\n const pad = n => String(n).padStart(2, '0')\r\n return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`\r\n },\r\n\r\n handleSubmit(row) {\r\n this.$confirm(`确定要提交编号为「${row.bh}」的学籍异动申请吗?`, '系统提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n const payload = {\r\n bh: row.bh,\r\n xybh: row.xybh,\r\n sqlx: row.sqlx,\r\n sy: row.sy,\r\n zt: row.zt !== null && row.zt !== undefined ? Number(row.zt) : 0,\r\n tjsj: this.formatNow()\r\n }\r\n if (row.bz) {\r\n payload.bz = row.bz\r\n }\r\n return updateApplication(payload)\r\n }).then(() => {\r\n this.$message.success('提交成功')\r\n this.fetchList()\r\n }).catch(() => {})\r\n },\r\n\r\n // ==================== 删除 ====================\r\n handleDelete(row) {\r\n this.$confirm(`确定要删除编号为「${row.bh}」的学籍异动申请吗?`, '系统提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n return delApplication(row.bh)\r\n }).then(() => {\r\n this.$message.success('删除成功')\r\n this.fetchList()\r\n }).catch(() => {})\r\n },\r\n\r\n // ==================== 详情 ====================\r\n handleDetail(row) {\r\n this.detailDialogVisible = true\r\n this.detailLoading = true\r\n this.detailForm = {}\r\n getApplication(row.bh).then(response => {\r\n this.detailForm = response.data || {}\r\n this.detailLoading = false\r\n }).catch(() => {\r\n this.detailLoading = false\r\n })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.app-container {\r\n padding: 20px;\r\n}\r\n\r\n.status-change-page {\r\n .search-card {\r\n margin-bottom: 16px;\r\n }\r\n\r\n .search-form {\r\n .w-full {\r\n width: 100%;\r\n }\r\n\r\n .search-actions {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding-top: 8px;\r\n\r\n .search-tip {\r\n font-size: 12px;\r\n color: #909399;\r\n }\r\n\r\n .search-buttons {\r\n display: flex;\r\n gap: 12px;\r\n }\r\n }\r\n }\r\n\r\n .table-card {\r\n .table-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-bottom: 16px;\r\n\r\n .table-title {\r\n font-size: 16px;\r\n font-weight: 600;\r\n color: #303133;\r\n }\r\n }\r\n\r\n .pagination-wrapper {\r\n display: flex;\r\n justify-content: flex-end;\r\n margin-top: 16px;\r\n }\r\n }\r\n\r\n .add-form {\r\n max-height: 60vh;\r\n overflow-y: auto;\r\n padding-right: 4px;\r\n }\r\n\r\n .text-danger {\r\n color: #f56c6c;\r\n padding: 0;\r\n }\r\n}\r\n</style>\r\n"],"mappings":"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","ignoreList":[]}]}