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

1 line
41 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\\teachingLog\\organLog\\components\\reportedView.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\teachingLog\\organLog\\components\\reportedView.vue","mtime":1787640892028},{"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:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMiKS5kZWZhdWx0OwpPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgIl9fZXNNb2R1bGUiLCB7CiAgdmFsdWU6IHRydWUKfSk7CmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDsKdmFyIF9vYmplY3RTcHJlYWQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RTcHJlYWQyLmpzIikpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNsaWNlLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy50cmltLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5maWx0ZXIuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5mb3ItZWFjaC5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLm1hcC5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaC5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5pdGVyYXRvci5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC50by1qc29uLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy93ZWIudXJsLXNlYXJjaC1wYXJhbXMuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5kZWxldGUuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5oYXMuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5zaXplLmpzIik7CnZhciBfaW5kZXggPSByZXF1aXJlKCJAL3V0aWxzL2luZGV4Iik7CnZhciBfbG9nID0gcmVxdWlyZSgiQC9hcGkvbG9nIik7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCnZhciBfZGVmYXVsdCA9IGV4cG9ydHMuZGVmYXVsdCA9IHsKICBuYW1lOiAnUmVwb3J0ZWRWaWV3JywKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5p+l6K+i6KGo5Y2VID09PT09PT09PT09PT09PT09PT09CiAgICAgIHNlYXJjaEZvcm06IHsKICAgICAgICBzdGFydERhdGU6ICcnLAogICAgICAgIGVuZERhdGU6ICcnLAogICAgICAgIGNvdXJzZU5hbWU6ICcnLAogICAgICAgIHRlYWNoTWV0aG9kOiAnJywKICAgICAgICBjaGFuZ2U6ICcnLAogICAgICAgIHRhc2tDYXRlZ29yeTogJycsCiAgICAgICAgZGVwdDogJycsCiAgICAgICAgdGVhY2hlcjogJycsCiAgICAgICAgY2xhc3NOYW1lOiAnJwogICAgICB9LAogICAgICB0ZWFjaE1ldGhvZE9wdGlvbnM6IFsn55CG6K666K6y5o6IJywgJ+Wunui3teaVmeWtpicsICfnoJTorqjmlZnlraYnLCAn5qGI5L6L5pWZ5a2mJywgJ+WunuaTjea8lOe7gyddLAogICAgICBjaGFuZ2VPcHRpb25zOiBbJ+S4juaVmeWtpuiuoeWIkuS4gOiHtCcsICflt7LmlLnliqjmlZnlraborqHliJInLCAn5omL5Yqo5ouf5Yi2JywgJ+aVmeWRmOWPmOWKqCcsICfml7bpl7Tlj5jliqgnLCAn6K++56iL5Y+Y5YqoJywgJ+aOiOivvuaWueW8j+WPmOWKqCcsICfku7vliqHnsbvliKvlj5jliqgnLCAn5pyf54+t5Y+Y5YqoJywgJ+WcsOeCueWPmOWKqCcsICfor77popjlj5jliqgnXSwKICAgICAgdGFza0NhdGVnb3J5T3B0aW9uczogWyflhajlhpvpmaLmoKHorq3nu4Pop4TliJLlhoXku7vliqEnLCAn5YW25LuW5Lu75Yqh77yI5ZCr56CU56m255Sf5a+85biI5oyH5a+877yJJ10sCiAgICAgIGRlcHRPcHRpb25zOiBbJ+aVmeWKoeWkhCcsICfmjIfmjKXns7snLCAn5pS/5rK75bel5L2c5pWZ56CU5a6kJywgJ+WGm+S6i+WfuuehgOaVmeeglOWupCcsICfoo4XlpIfkv53pmpzmlZnnoJTlrqQnXSwKICAgICAgdGVhY2hlck9wdGlvbnM6IFsn5pWZ5Yqh5aSEJywgJ+W8oOS4iScsICfmnY7lm5snLCAn546L5LqUJywgJ+i1teWFrScsICflrZnkuIMnXSwKICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5pWw5o2u6KGo5qC8ID09PT09PT09PT09PT09PT09PT09CiAgICAgIGxvYWRpbmc6IGZhbHNlLAogICAgICB0YWJsZURhdGE6IFtdLAogICAgICBzZWxlY3RlZFJvd3M6IFtdLAogICAgICBwYWdlTnVtOiAxLAogICAgICBwYWdlU2l6ZTogMjAsCiAgICAgIHRvdGFsOiAwLAogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDpgIDlm57mhI/op4EgPT09PT09PT09PT09PT09PT09PT0KICAgICAgcmVtYXJrOiAnJywKICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0g6K+m5oOFID09PT09PT09PT09PT09PT09PT09CiAgICAgIGRldGFpbFZpc2libGU6IGZhbHNlLAogICAgICBkZXRhaWxMb2FkaW5nOiBmYWxzZSwKICAgICAgZGV0YWlsRGF0YToge30KICAgIH07CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdGhpcy5mZXRjaExpc3QoKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZTogZnVuY3Rpb24gaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHJvd3MpIHsKICAgICAgdGhpcy5zZWxlY3RlZFJvd3MgPSByb3dzOwogICAgfSwKICAgIC8qKiDmoLnmja7lt7LloavlhpnnmoTmn6Xor6LlgLzmnoTlu7rlrp7pmYXmn6Xor6Llj4LmlbAgKi9idWlsZFNlYXJjaFBhcmFtczogZnVuY3Rpb24gYnVpbGRTZWFyY2hQYXJhbXMoKSB7CiAgICAgIHZhciBmb3JtID0gdGhpcy5zZWFyY2hGb3JtOwogICAgICB2YXIgcGFyYW1zID0gewogICAgICAgIHBhZ2VOdW06IHRoaXMucGFnZU51bSwKICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZQogICAgICB9OwogICAgICBpZiAoZm9ybS5zdGFydERhdGUpIHBhcmFtcy5rc3JxID0gZm9ybS5zdGFydERhdGU7CiAgICAgIGlmIChmb3JtLmVuZERhdGUpIHBhcmFtcy5qc3JxID0gZm9ybS5lbmREYXRlOwogICAgICBpZiAoZm9ybS5jb3Vyc2VOYW1lKSBwYXJhbXMua2NtYyA9IGZvcm0uY291cnNlTmFtZTsKICAgICAgaWYgKGZvcm0udGVhY2hNZXRob2QpIHBhcmFtcy5qeGZmID0gZm9ybS50ZWFjaE1ldGhvZDsKICAgICAgaWYgKGZvcm0uY2hhbmdlKSBwYXJhbXMuZ2RxayA9IGZvcm0uY2hhbmdlOwogICAgICBpZiAoZm9ybS50YXNrQ2F0ZWdvcnkpIHBhcmFtcy5yd2xiID0gZm9ybS50YXNrQ2F0ZWdvcnk7CiAgICAgIGlmIChmb3JtLmRlcHQpIHBhcmFtcy5qeXMgPSBmb3JtLmRlcHQ7CiAgICAgIGlmIChmb3JtLnRlYWNoZXIpIHBhcmFtcy5za2p5ID0gZm9ybS50ZWFjaGVyOwogICAgICBpZiAoZm9ybS5jbGFzc05hbWUpIHBhcmFtcy5weHFiID0gZm9ybS5jbGFzc05hbWU7CiAgICAgIHJldHVybiBwYXJhbXM7CiAgICB9LAogICAgZXh0cmFjdExpc3REYXRhOiBmdW5jdGlvbiBleHRyYWN0TGlzdERhdGEocmVzKSB7CiAgICAgIHZhciBfcmVmLCBfcmVmMiwgX2RhdGEkdG90YWw7CiAgICAgIHZhciBkYXRhID0gcmVzLmRhdGEgfHwgcmVzOwogICAgICB2YXIgbGlzdCA9IGRhdGEucmVjb3JkcyB8fCBkYXRhLmxpc3QgfHwgZGF0YS5yb3dzIHx8IFtdOwogICAgICB2YXIgdG90YWxDb3VudCA9IChfcmVmID0gKF9yZWYyID0gKF9kYXRhJHRvdGFsID0gZGF0YS50b3RhbCkgIT09IG51bGwgJiYgX2RhdGEkdG90YWwgIT09IHZvaWQgMCA/IF9kYXRhJHRvdGFsIDogZGF0YS50b3RhbENvdW50KSAhPT0gbnVsbCAmJiBfcmVmMiAhPT0gdm9pZCAwID8gX3JlZjIgOiBkYXRhLnRvdGFsUm93cykgIT09IG51bGwgJiYgX3JlZiAhPT0gdm9pZCAwID8gX3JlZiA6IDA7CiAgICAgIHJldHVybiB7CiAgICAgICAgbGlzdDogbGlzdCwKICAgICAgICB0b3RhbDogdG90YWxDb3VudAogICAgICB9OwogICAgfSwKICAgIGZldGNoTGlzdDogZnVuY3Rpb24gZmV0Y2hMaXN0KCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICByZXR1cm4gKDAsIF9sb2cuZ2V0UmVwb3J0ZWRUZWFjaGluZ0xvZ0xpc3QpKHRoaXMuYnVpbGRTZWFyY2hQYXJhbXMoKSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5jb2RlID09PSAyMDAgfHwgcmVzLmNvZGUgPT09IDApIHsKICAgICAgICAgIHZhciBfdGhpcyRleHRyYWN0TGlzdERhdGEgPSBfdGhpcy5leHRyYWN0TGlzdERhdGEocmVzKSwKICAgICAgICAgICAgbGlzdCA9IF90aGlzJGV4dHJhY3RMaXN0RGF0YS5saXN0LAogICAgICAgICAgICB0b3RhbCA9IF90aGlzJGV4dHJhY3RMaXN0RGF0YS50b3RhbDsKICAgICAgICAgIF90aGlzLnRhYmxlRGF0YSA9IGxpc3Q7CiAgICAgICAgICBfdGhpcy50b3RhbCA9IHRvdGFsOwogICAgICAgIH0KICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pLmZpbmFsbHkoZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSk7CiAgICB9LAogICAgaGFuZGxlU2VhcmNoOiBmdW5jdGlvbiBoYW5kbGVTZWFyY2goKSB7CiAgICAgIHRoaXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMuZmV0Y2hMaXN0KCk7CiAgICB9LAogICAgaGFuZGxlUmVzZXQ6IGZ1bmN0aW9uIGhhbmRsZVJlc2V0KCkgewogICAgICB0aGlzLnNlYXJjaEZvcm0gPSB7CiAgICAgICAgc3RhcnREYXRlOiAnJywKICAgICAgICBlbmREYXRlOiAnJywKICAgICAgICBjb3Vyc2VOYW1lOiAnJywKICAgICAgICB0ZWFjaE1ldGhvZDogJycsCiAgICAgICAgY2hhbmdlOiAnJywKICAgICAgICB0YXNrQ2F0ZWdvcnk6ICcnLAogICAgICAgIGRlcHQ6ICcnLAogICAgICAgIHRlYWNoZXI6ICcnLAogICAgICAgIGNsYXNzTmFtZTogJycKICAgICAgfTsKICAgICAgdGhpcy5yZW1hcmsgPSAnJzsKICAgICAgdGhpcy5oYW5kbGVTZWFyY2goKTsKICAgIH0sCiAgICBoYW5kbGVQYWdlQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVQYWdlQ2hhbmdlKHBhZ2UpIHsKICAgICAgdGhpcy5wYWdlTnVtID0gcGFnZTsKICAgICAgdGhpcy5mZXRjaExpc3QoKTsKICAgIH0sCiAgICBoYW5kbGVTaXplQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVTaXplQ2hhbmdlKHNpemUpIHsKICAgICAgdGhpcy5wYWdlU2l6ZSA9IHNpemU7CiAgICAgIHRoaXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMuZmV0Y2hMaXN0KCk7CiAgICB9LAogICAgZ2V0U2VsZWN0ZWRCaHM6IGZ1bmN0aW9uIGdldFNlbGVjdGVkQmhzKCkgewogICAgICB2YXIgaWRzID0gdGhpcy5zZWxlY3RlZFJvd3MubWFwKGZ1bmN0aW9uIChyb3cpIHsKICAgICAgICByZXR1cm4gcm93LmJoOwogICAgICB9KS5maWx0ZXIoQm9vbGVhbik7CiAgICAgIGlmIChpZHMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfor7flhYjpgInmi6norrDlvZUnKTsKICAgICAgICByZXR1cm4gW107CiAgICAgIH0KICAgICAgcmV0dXJuIGlkczsKICAgIH0sCiAgICBoYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZSgpIHsKICAgICAgLy8g5ZCO56uv5pqC5pyq5o+Q5L6b5Yig6Zmk5o6l5Y+j77yM5LuF5L2c5o+Q56S6CiAgICAgIHRoaXMuJG1lc3NhZ2UuaW5mbygn5ZCO56uv5pqC5pyq5o+Q5L6b6K+l5o6l5Y+jJyk7CiAgICB9LAogICAgaGFuZGxlQXVkaXQ6IGZ1bmN0aW9uIGhhbmRsZUF1ZGl0KCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgdmFyIGlkcyA9IHRoaXMuZ2V0U2VsZWN0ZWRCaHMoKTsKICAgICAgaWYgKGlkcy5sZW5ndGggPT09IDApIHJldHVybjsKICAgICAgdGhpcy4kY29uZmlybSgiXHU3ODZFXHU1QjlBXHU4OTgxXHU1QkExXHU2ODM4XHU5MDFBXHU4RkM3XHU5MDA5XHU0RTJEXHU3Njg0ICIuY29uY2F0KGlkcy5sZW5ndGgsICIgXHU2NzYxXHU4QkIwXHU1RjU1XHU1NDE3XHVGRjFGIiksICflrqHmoLjnoa7orqQnLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7lrponLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAvLyDlrqHmoLjpgJrov4fmlZnlrabml6Xlv5fvvIzpgJDmnaHlrqHmoLgKICAgICAgICB2YXIgc2V0dGxlZCA9IFByb21pc2UucmVzb2x2ZSgpOwogICAgICAgIGlkcy5mb3JFYWNoKGZ1bmN0aW9uIChiaCkgewogICAgICAgICAgc2V0dGxlZCA9IHNldHRsZWQudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgIHJldHVybiAoMCwgX2xvZy5hcHByb3ZlVGVhY2hpbmdMb2cpKGJoLCAnJyk7CiAgICAgICAgICB9KTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gc2V0dGxlZDsKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMyLiRtZXNzYWdlLnN1Y2Nlc3MoIlx1NURGMlx1NUJBMVx1NjgzOFx1OTAxQVx1OEZDNyAiLmNvbmNhdChpZHMubGVuZ3RoLCAiIFx1Njc2MVx1OEJCMFx1NUY1NSIpKTsKICAgICAgICBfdGhpczIuZmV0Y2hMaXN0KCk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgIH0sCiAgICBoYW5kbGVXaXRoZHJhdzogZnVuY3Rpb24gaGFuZGxlV2l0aGRyYXcoKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICB2YXIgaWRzID0gdGhpcy5nZXRTZWxlY3RlZEJocygpOwogICAgICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwogICAgICBpZiAoIXRoaXMucmVtYXJrLnRyaW0oKSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+35aGr5YaZ6YCA5Zue5Y6f5ZugL+aEj+ingScpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgICB2YXIgb3BpbmlvbiA9IHRoaXMucmVtYXJrLnRyaW0oKTsKICAgICAgdmFyIHNldHRsZWQgPSBQcm9taXNlLnJlc29sdmUoKTsKICAgICAgaWRzLmZvckVhY2goZnVuY3Rpb24gKGJoKSB7CiAgICAgICAgc2V0dGxlZCA9IHNldHRsZWQudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICByZXR1cm4gKDAsIF9sb2cucmVqZWN0VGVhY2hpbmdMb2cpKGJoLCBvcGluaW9uKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICAgIHRoaXMuJGNvbmZpcm0oIlx1Nzg2RVx1NUI5QVx1ODk4MVx1NjRBNFx1NTZERVx1OTFDRFx1NTg2Qlx1OTAwOVx1NEUyRFx1NzY4NCAiLmNvbmNhdChpZHMubGVuZ3RoLCAiIFx1Njc2MVx1OEJCMFx1NUY1NVx1NTQxN1x1RkYxRiIpLCAn5pKk5Zue56Gu6K6kJywgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIHNldHRsZWQ7CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMy4kbWVzc2FnZS5zdWNjZXNzKCJcdTVERjJcdTY0QTRcdTU2REUgIi5jb25jYXQoaWRzLmxlbmd0aCwgIiBcdTY3NjFcdThCQjBcdTVGNTUiKSk7CiAgICAgICAgX3RoaXMzLmZldGNoTGlzdCgpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAogICAgaGFuZGxlUmVjaGVjazogZnVuY3Rpb24gaGFuZGxlUmVjaGVjaygpIHsKICAgICAgLy8g5ZCO56uv5pqC5pyq5o+Q5L6b6YeN5paw5qOA5p+l5o6l5Y+j77yM5LuF5L2c5o+Q56S6CiAgICAgIHRoaXMuJG1lc3NhZ2UuaW5mbygn5ZCO56uv5pqC5pyq5o+Q5L6b6K+l5o6l5Y+jJyk7CiAgICB9LAogICAgZG93bmxvYWRCbG9iOiBmdW5jdGlvbiBkb3dubG9hZEJsb2IoYmxvYiwgZmlsZU5hbWUpIHsKICAgICAgdmFyIHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwogICAgICB2YXIgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKICAgICAgbGluay5ocmVmID0gdXJsOwogICAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWU7CiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobGluayk7CiAgICAgIGxpbmsuY2xpY2soKTsKICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTsKICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTsKICAgIH0sCiAgICBoYW5kbGVFeHBvcnQ6IGZ1bmN0aW9uIGhhbmRsZUV4cG9ydCgpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHZhciBwYXJhbXMgPSB0aGlzLmJ1aWxkU2VhcmNoUGFyYW1zKCk7CiAgICAgIGRlbGV0ZSBwYXJhbXMucGFnZU51bTsKICAgICAgZGVsZXRlIHBhcmFtcy5wYWdlU2l6ZTsKICAgICAgKDAsIF9sb2cuZXhwb3J0VGVhY2hpbmdMb2cpKHBhcmFtcykudGhlbihmdW5jdGlvbiAoYmxvYikgewogICAgICAgIF90aGlzNC5kb3dubG9hZEJsb2IoYmxvYiwgIlx1NURGMlx1NEUwQVx1NjJBNVx1NjU1OVx1NUI2Nlx1NjVFNVx1NUZEN18iLmNvbmNhdChuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgMTApLCAiLnhscyIpKTsKICAgICAgICBfdGhpczQuJG1lc3NhZ2Uuc3VjY2Vzcygn5a+85Ye65oiQ5YqfJyk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgIH0sCiAgICBoYW5kbGVEZXRhaWw6IGZ1bmN0aW9uIGhhbmRsZURldGFpbChyb3cpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHRoaXMuZGV0YWlsRGF0YSA9ICgwLCBfb2JqZWN0U3ByZWFkMi5kZWZhdWx0KSh7fSwgcm93KTsKICAgICAgdGhpcy5kZXRhaWxWaXNpYmxlID0gdHJ1ZTsKICAgICAgdmFyIGJoID0gcm93LmJoOwogICAgICBpZiAoIWJoKSByZXR1cm47CiAgICAgIHRoaXMuZGV0YWlsTG9hZGluZyA9IHRydWU7CiAgICAgICgwLCBfbG9nLmdldFRlYWNoaW5nTG9nQnlCaCkoU3RyaW5nKGJoKSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKChyZXMuY29kZSA9PT0gMjAwIHx8IHJlcy5jb2RlID09PSAwKSAmJiByZXMuZGF0YSkgewogICAgICAgICAgX3RoaXM1LmRldGFpbERhdGEgPSByZXMuZGF0YTsKICAgICAgICB9CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KS5maW5hbGx5KGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczUuZGV0YWlsTG9hZGluZyA9IGZhbHNlOwogICAgICB9KTsKICAgIH0KICB9Cn07"},{"version":3,"names":["_index","require","_log","name","data","searchForm","startDate","endDate","courseName","teachMethod","change","taskCategory","dept","teacher","className","teachMethodOptions","changeOptions","taskCategoryOptions","deptOptions","teacherOptions","loading","tableData","selectedRows","pageNum","pageSize","total","remark","detailVisible","detailLoading","detailData","created","fetchList","methods","handleSelectionChange","rows","buildSearchParams","form","params","ksrq","jsrq","kcmc","jxff","gdqk","rwlb","jys","skjy","pxqb","extractListData","res","_ref","_ref2","_data$total","list","records","totalCount","totalRows","_this","getReportedTeachingLogList","then","code","_this$extractListData","catch","finally","handleSearch","handleReset","handlePageChange","page","handleSizeChange","size","getSelectedBhs","ids","map","row","bh","filter","Boolean","length","$message","warning","handleDelete","info","handleAudit","_this2","$confirm","concat","confirmButtonText","cancelButtonText","type","settled","Promise","resolve","forEach","approveTeachingLog","success","handleWithdraw","_this3","trim","opinion","rejectTeachingLog","handleRecheck","downloadBlob","blob","fileName","url","window","URL","createObjectURL","link","document","createElement","href","download","body","appendChild","click","removeChild","revokeObjectURL","handleExport","_this4","exportTeachingLog","Date","toISOString","slice","handleDetail","_this5","_objectSpread2","default","getTeachingLogByBh","String"],"sources":["src/views/teachingLog/organLog/components/reportedView.vue"],"sourcesContent":["<template>\r\n <div class=\"page-container\">\r\n <!-- 查询条件 -->\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=\"0\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"开始日期\">\r\n <el-date-picker v-model=\"searchForm.startDate\" type=\"date\" value-format=\"yyyy-MM-dd\" placeholder=\"选择开始日期\"\r\n class=\"w-full\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"结束日期\">\r\n <el-date-picker v-model=\"searchForm.endDate\" type=\"date\" value-format=\"yyyy-MM-dd\" placeholder=\"选择结束日期\"\r\n class=\"w-full\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-row :gutter=\"0\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"课程名称\">\r\n <el-input v-model=\"searchForm.courseName\" placeholder=\"请输入课程名称\" clearable />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教学方法\">\r\n <el-select v-model=\"searchForm.teachMethod\" placeholder=\"请选择教学方法\" clearable class=\"w-full\">\r\n <el-option v-for=\"item in teachMethodOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-row :gutter=\"0\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"改动情况\">\r\n <el-select v-model=\"searchForm.change\" placeholder=\"请选择改动情况\" clearable class=\"w-full\">\r\n <el-option v-for=\"item in changeOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"任务类别\">\r\n <el-select v-model=\"searchForm.taskCategory\" placeholder=\"请选择任务类别\" clearable class=\"w-full\">\r\n <el-option v-for=\"item in taskCategoryOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-row :gutter=\"0\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教研室\">\r\n <el-select v-model=\"searchForm.dept\" placeholder=\"请选择教研室\" clearable class=\"w-full\">\r\n <el-option v-for=\"item in deptOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"授课教员\">\r\n <el-select v-model=\"searchForm.teacher\" placeholder=\"请选择授课教员\" clearable class=\"w-full\">\r\n <el-option v-for=\"item in teacherOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-row :gutter=\"0\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"培训班\">\r\n <el-input v-model=\"searchForm.className\" placeholder=\"请输入培训班\" clearable />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n\r\n <div class=\"search-actions\">\r\n <div class=\"left-group\">\r\n <el-button type=\"danger\" plain @click=\"handleDelete\">删除所选</el-button>\r\n <el-button type=\"primary\" @click=\"handleAudit\">审核通过所选</el-button>\r\n <el-input v-model=\"remark\" placeholder=\"退回原因/意见\" clearable class=\"action-input\" />\r\n <el-button type=\"warning\" plain @click=\"handleWithdraw\">撤回重填所选</el-button>\r\n <el-button @click=\"handleRecheck\">重新检查所选变更情况</el-button>\r\n <el-button icon=\"el-icon-download\" @click=\"handleExport\">导出到 Word</el-button>\r\n </div>\r\n <div class=\"right-group\">\r\n <el-button @click=\"handleReset\">重置</el-button>\r\n <el-button type=\"primary\" @click=\"handleSearch\">查询</el-button>\r\n </div>\r\n </div>\r\n </el-card>\r\n\r\n <!-- 数据表格 -->\r\n <el-card shadow=\"never\" class=\"table-card\">\r\n <el-table v-loading=\"loading\" :data=\"tableData\" stripe border highlight-current-row\r\n @selection-change=\"handleSelectionChange\">\r\n <el-table-column type=\"selection\" width=\"50\" align=\"center\" />\r\n <el-table-column type=\"index\" label=\"序号\" width=\"60\" align=\"center\" />\r\n <el-table-column prop=\"rwlb\" label=\"任务类别\" width=\"120\" align=\"center\" show-overflow-tooltip />\r\n <el-table-column prop=\"jyxm\" label=\"主讲教员\" width=\"100\" align=\"center\" />\r\n <el-table-column prop=\"rq\" label=\"日期\" width=\"150\" align=\"center\">\r\n <template slot-scope=\"scope\">{{ scope.row.rq ? formatDate(scope.row.rq) : '-' }}</template>\r\n </el-table-column>\r\n <el-table-column label=\"节次\" width=\"80\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n {{ scope.row.qsjc && scope.row.jsjc ? `${scope.row.qsjc}-${scope.row.jsjc}节` : (scope.row.qsjc || '-') }}\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"kcmc\" label=\"课程名称\" min-width=\"150\" show-overflow-tooltip />\r\n <el-table-column prop=\"pxqbxx\" label=\"培训期班信息\" min-width=\"140\" show-overflow-tooltip />\r\n <el-table-column label=\"人数\" width=\"70\" align=\"center\">\r\n <template slot-scope=\"scope\">{{ scope.row.sdrs || scope.row.ydrs || '-' }}</template>\r\n </el-table-column>\r\n <el-table-column label=\"分组指导教员\" width=\"120\" align=\"center\">\r\n <template slot-scope=\"scope\">{{ scope.row.fzyzdjy || '-' }}</template>\r\n </el-table-column>\r\n <el-table-column prop=\"jsfs\" label=\"教学方法\" width=\"100\" align=\"center\" />\r\n <el-table-column prop=\"zt\" label=\"日志状态\" width=\"100\" align=\"center\" />\r\n <el-table-column prop=\"gdqk\" label=\"变动汇总\" min-width=\"120\" show-overflow-tooltip />\r\n <el-table-column prop=\"jxrzcjfs\" label=\"创建方式\" width=\"100\" align=\"center\" />\r\n <el-table-column label=\"操作\" width=\"80\" align=\"center\" fixed=\"right\" class-name=\"table-action-column\">\r\n <template slot-scope=\"scope\">\r\n <el-button type=\"text\" @click=\"handleDetail(scope.row)\">详细</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n <!-- 分页 -->\r\n <div class=\"pagination-wrapper\">\r\n <el-pagination :current-page=\"pageNum\" :page-size=\"pageSize\" :total=\"total\" :page-sizes=\"[10, 20, 50, 100]\"\r\n layout=\"total, sizes, prev, pager, next, jumper\" background @current-change=\"handlePageChange\"\r\n @size-change=\"handleSizeChange\" />\r\n </div>\r\n </el-card>\r\n\r\n <!-- 日志详情对话框 -->\r\n <el-dialog :visible.sync=\"detailVisible\" title=\"教学日志详情\" width=\"700px\" destroy-on-close>\r\n <div v-loading=\"detailLoading\">\r\n <el-descriptions v-if=\"!detailLoading\" :column=\"2\" border>\r\n <el-descriptions-item label=\"编号\">{{ detailData.bh || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"统一编号\">{{ detailData.tybh || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"教员编号\">{{ detailData.jybh || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"教员姓名\">{{ detailData.jyxm || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"课程名称\">{{ detailData.kcmc || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"任务类别\">{{ detailData.rwlb || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"日期\">{{ detailData.rq || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"节次\">\r\n {{ detailData.qsjc && detailData.jsjc ? `${detailData.qsjc}-${detailData.jsjc}节` : '-' }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"教学方法\">{{ detailData.jsfs || detailData.jxff || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"创建方式\">{{ detailData.jxrzcjfs || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"应到人数\">{{ detailData.ydrs || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"实到人数\">{{ detailData.sdrs || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"培训期班信息\" :span=\"2\">{{ detailData.pxqbxx || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"授课地点\" :span=\"2\">{{ detailData.skdd || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"状态\">{{ detailData.zt || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"教研室\">{{ detailData.jysmc || detailData.jys || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"变动汇总\" :span=\"2\">{{ detailData.gdqk || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"变动详细情况\" :span=\"2\">{{ detailData.gdxxqk || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"退回意见\" :span=\"2\">{{ detailData.thyj || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"创建时间\">{{ detailData.cjsj || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"修改时间\">{{ detailData.xgsj || '-' }}</el-descriptions-item>\r\n </el-descriptions>\r\n </div>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button @click=\"detailVisible = false\">关 闭</el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { formatDate } from '@/utils/index'\r\nimport {\r\n getReportedTeachingLogList,\r\n approveTeachingLog,\r\n rejectTeachingLog,\r\n exportTeachingLog,\r\n getTeachingLogByBh\r\n} from '@/api/log'\r\n\r\nexport default {\r\n name: 'ReportedView',\r\n data() {\r\n return {\r\n // ==================== 查询表单 ====================\r\n searchForm: {\r\n startDate: '',\r\n endDate: '',\r\n courseName: '',\r\n teachMethod: '',\r\n change: '',\r\n taskCategory: '',\r\n dept: '',\r\n teacher: '',\r\n className: ''\r\n },\r\n\r\n teachMethodOptions: ['理论讲授', '实践教学', '研讨教学', '案例教学', '实操演练'],\r\n changeOptions: [\r\n '与教学计划一致',\r\n '已改动教学计划',\r\n '手动拟制',\r\n '教员变动',\r\n '时间变动',\r\n '课程变动',\r\n '授课方式变动',\r\n '任务类别变动',\r\n '期班变动',\r\n '地点变动',\r\n '课题变动'\r\n ],\r\n taskCategoryOptions: ['全军院校训练规划内任务', '其他任务(含研究生导师指导)'],\r\n deptOptions: ['教务处', '指挥系', '政治工作教研室', '军事基础教研室', '装备保障教研室'],\r\n teacherOptions: ['教务处', '张三', '李四', '王五', '赵六', '孙七'],\r\n\r\n // ==================== 数据表格 ====================\r\n loading: false,\r\n tableData: [],\r\n selectedRows: [],\r\n pageNum: 1,\r\n pageSize: 20,\r\n total: 0,\r\n\r\n // ==================== 退回意见 ====================\r\n remark: '',\r\n\r\n // ==================== 详情 ====================\r\n detailVisible: false,\r\n detailLoading: false,\r\n detailData: {}\r\n }\r\n },\r\n created() {\r\n this.fetchList()\r\n },\r\n methods: {\r\n handleSelectionChange(rows) {\r\n this.selectedRows = rows\r\n },\r\n\r\n /** 根据已填写的查询值构建实际查询参数 */\r\n buildSearchParams() {\r\n const form = this.searchForm\r\n const params = { pageNum: this.pageNum, pageSize: this.pageSize }\r\n if (form.startDate) params.ksrq = form.startDate\r\n if (form.endDate) params.jsrq = form.endDate\r\n if (form.courseName) params.kcmc = form.courseName\r\n if (form.teachMethod) params.jxff = form.teachMethod\r\n if (form.change) params.gdqk = form.change\r\n if (form.taskCategory) params.rwlb = form.taskCategory\r\n if (form.dept) params.jys = form.dept\r\n if (form.teacher) params.skjy = form.teacher\r\n if (form.className) params.pxqb = form.className\r\n return params\r\n },\r\n\r\n extractListData(res) {\r\n const data = res.data || res\r\n const list = data.records || data.list || data.rows || []\r\n const totalCount = data.total ?? data.totalCount ?? data.totalRows ?? 0\r\n return { list, total: totalCount }\r\n },\r\n\r\n fetchList() {\r\n this.loading = true\r\n return getReportedTeachingLogList(this.buildSearchParams())\r\n .then((res) => {\r\n if (res.code === 200 || res.code === 0) {\r\n const { list, total } = this.extractListData(res)\r\n this.tableData = list\r\n this.total = total\r\n }\r\n })\r\n .catch(() => {})\r\n .finally(() => {\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.searchForm = {\r\n startDate: '',\r\n endDate: '',\r\n courseName: '',\r\n teachMethod: '',\r\n change: '',\r\n taskCategory: '',\r\n dept: '',\r\n teacher: '',\r\n className: ''\r\n }\r\n this.remark = ''\r\n this.handleSearch()\r\n },\r\n\r\n handlePageChange(page) {\r\n this.pageNum = page\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 getSelectedBhs() {\r\n const ids = this.selectedRows.map((row) => row.bh).filter(Boolean)\r\n if (ids.length === 0) {\r\n this.$message.warning('请先选择记录')\r\n return []\r\n }\r\n return ids\r\n },\r\n\r\n handleDelete() {\r\n // 后端暂未提供删除接口,仅作提示\r\n this.$message.info('后端暂未提供该接口')\r\n },\r\n\r\n handleAudit() {\r\n const ids = this.getSelectedBhs()\r\n if (ids.length === 0) return\r\n this.$confirm(`确定要审核通过选中的 ${ids.length} 条记录吗?`, '审核确认', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n })\r\n .then(() => {\r\n // 审核通过教学日志,逐条审核\r\n let settled = Promise.resolve()\r\n ids.forEach((bh) => {\r\n settled = settled.then(() => approveTeachingLog(bh, ''))\r\n })\r\n return settled\r\n })\r\n .then(() => {\r\n this.$message.success(`已审核通过 ${ids.length} 条记录`)\r\n this.fetchList()\r\n })\r\n .catch(() => {})\r\n },\r\n\r\n handleWithdraw() {\r\n const ids = this.getSelectedBhs()\r\n if (ids.length === 0) return\r\n if (!this.remark.trim()) {\r\n this.$message.warning('请填写退回原因/意见')\r\n return\r\n }\r\n const opinion = this.remark.trim()\r\n let settled = Promise.resolve()\r\n ids.forEach((bh) => {\r\n settled = settled.then(() => rejectTeachingLog(bh, opinion))\r\n })\r\n this.$confirm(`确定要撤回重填选中的 ${ids.length} 条记录吗?`, '撤回确认', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n })\r\n .then(() => settled)\r\n .then(() => {\r\n this.$message.success(`已撤回 ${ids.length} 条记录`)\r\n this.fetchList()\r\n })\r\n .catch(() => {})\r\n },\r\n\r\n handleRecheck() {\r\n // 后端暂未提供重新检查接口,仅作提示\r\n this.$message.info('后端暂未提供该接口')\r\n },\r\n\r\n downloadBlob(blob, fileName) {\r\n const url = window.URL.createObjectURL(blob)\r\n const link = document.createElement('a')\r\n link.href = url\r\n link.download = fileName\r\n document.body.appendChild(link)\r\n link.click()\r\n document.body.removeChild(link)\r\n window.URL.revokeObjectURL(url)\r\n },\r\n\r\n handleExport() {\r\n const params = this.buildSearchParams()\r\n delete params.pageNum\r\n delete params.pageSize\r\n exportTeachingLog(params)\r\n .then((blob) => {\r\n this.downloadBlob(blob, `已上报教学日志_${new Date().toISOString().slice(0, 10)}.xls`)\r\n this.$message.success('导出成功')\r\n })\r\n .catch(() => {})\r\n },\r\n\r\n handleDetail(row) {\r\n this.detailData = { ...row }\r\n this.detailVisible = true\r\n const bh = row.bh\r\n if (!bh) return\r\n this.detailLoading = true\r\n getTeachingLogByBh(String(bh))\r\n .then((res) => {\r\n if ((res.code === 200 || res.code === 0) && res.data) {\r\n this.detailData = res.data\r\n }\r\n })\r\n .catch(() => {})\r\n .finally(() => {\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.page-container {\r\n padding: 4px 8px;\r\n}\r\n\r\n.search-card {\r\n margin-bottom: 16px;\r\n\r\n .search-form {\r\n .w-full {\r\n width: 100%;\r\n }\r\n\r\n ::v-deep .el-row {\r\n border-bottom: 1px solid #ebeef5;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n }\r\n\r\n ::v-deep .el-col {\r\n border-right: 1px solid #ebeef5;\r\n\r\n &:last-child {\r\n border-right: none;\r\n }\r\n }\r\n\r\n ::v-deep .el-form-item__label {\r\n white-space: normal;\r\n line-height: 1.4;\r\n text-align: left;\r\n justify-content: flex-start;\r\n }\r\n\r\n .el-form-item {\r\n margin-bottom: 0;\r\n padding: 10px 12px;\r\n }\r\n }\r\n\r\n .search-tip {\r\n padding: 6px 12px 0;\r\n font-size: 12px;\r\n color: #f56c6c;\r\n }\r\n\r\n .search-actions {\r\n display: flex;\r\n justify-content: space-between;\r\n align-items: center;\r\n padding: 12px;\r\n border-top: 1px solid #ebeef5;\r\n\r\n .left-group {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n flex-wrap: wrap;\r\n\r\n .action-input {\r\n width: 240px;\r\n }\r\n }\r\n\r\n .right-group {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n }\r\n }\r\n}\r\n\r\n.table-card {\r\n .el-table {\r\n width: 100%;\r\n }\r\n\r\n .pagination-wrapper {\r\n display: flex;\r\n justify-content: flex-end;\r\n padding: 16px 0 0;\r\n }\r\n}\r\n</style>\r\n"],"mappings":"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","ignoreList":[]}]}