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

1 line
89 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"remainingRequest":"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\\teachOffice\\teacher\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\teachOffice\\teacher\\index.vue","mtime":1787653241904},{"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:InVzZSBzdHJpY3QiOwoKdmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKCJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMiKS5kZWZhdWx0OwpPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgIl9fZXNNb2R1bGUiLCB7CiAgdmFsdWU6IHRydWUKfSk7CmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDsKdmFyIF9vYmplY3RTcHJlYWQyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKCJDOi9Vc2Vycy9BZG1pbi9EZXNrdG9wL2VkdWNhdGlvbi9mcm9udGVuZC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RTcHJlYWQyLmpzIikpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5jb25zdHJ1Y3Rvci5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnRyaW0uanMiKTsKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzbmV4dC5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyIpOwpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXNuZXh0Lml0ZXJhdG9yLmZvci1lYWNoLmpzIik7CnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIik7CnZhciBfdGVhY2hlciA9IHJlcXVpcmUoIkAvYXBpL3RlYWNoT2ZmaWNlL3RlYWNoZXIiKTsKdmFyIF9kYXRhID0gcmVxdWlyZSgiQC9hcGkvc3lzdGVtL2RpY3QvZGF0YSIpOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwp2YXIgX2RlZmF1bHQgPSBleHBvcnRzLmRlZmF1bHQgPSB7CiAgbmFtZTogJ1RlYWNoZXInLAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICAvLyDmn6Xor6LmnaHku7bvvIjku4XlkI7nq68gSllCTWFwcGVyLnhtbCDmlK/mjIHnmoTlrZfmrrXvvJpqeXhtIOaooeeziiAvIGp5c2RoIOetieWAvCAvIHpjIOaooeeziiAvIGp5bGIg562J5YC877yJCiAgICAgIHNlYXJjaEZvcm06IHsKICAgICAgICBqeXhtOiAnJywKICAgICAgICBqeXNkaDogJycsCiAgICAgICAgemM6ICcnLAogICAgICAgIGp5bGI6ICcnCiAgICAgIH0sCiAgICAgIC8vIOWIl+ihqAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgdGFibGVEYXRhOiBbXSwKICAgICAgc2VsZWN0ZWRSb3dzOiBbXSwKICAgICAgcGFnaW5hdGlvbjogewogICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgcGFnZVNpemU6IDIwLAogICAgICAgIHRvdGFsOiAwCiAgICAgIH0sCiAgICAgIC8vIOaWsOW7ugogICAgICBhZGREaWFsb2dWaXNpYmxlOiBmYWxzZSwKICAgICAgYWRkU2F2aW5nOiBmYWxzZSwKICAgICAgYWRkRm9ybTogdGhpcy5jcmVhdGVFbXB0eUFkZEZvcm0oKSwKICAgICAgYWRkUnVsZXM6IHsKICAgICAgICAndGVhY2hlci5qeXhtJzogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeaVmeWRmOWnk+WQjScsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICAndGVhY2hlci54aCc6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXluo/lj7cnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgJ3RlYWNoZXIuenlqc3p3ZGonOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5LiT5Lia5oqA5pyv6IGM5Yqh562J57qnJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgICd0ZWFjaGVyLnhzbHgnOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup6Jma5a6e57G75Z6LJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgJ3RlYWNoZXIuanlsYic6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nmlZnlkZjnsbvliKsnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICAndGVhY2hlci56emxiJzogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeWcqOiBjOexu+WIqycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgICd0ZWFjaGVyLmV3eXhrYnMnOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6aKd5aSW5YWB6K645byA54+t5pWwJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgJ3RlYWNoZXIuZHNsYic6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nlr7zluIjnsbvliKsnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICAndGVhY2hlci54eSc6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXlrabnvJgnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgJ3RlYWNoZXIuc2Z6aCc6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXouqvku73or4Hlj7cnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgJ3RlYWNoZXIueGInOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5oCn5YirJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgJ3RlYWNoZXIud3hqeSc6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nlpJborq3mlZnlkZgnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICAndGVhY2hlci53eHl5JzogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeWkluiureivkeWRmCcsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgICd0ZWFjaGVyLnp6bGp5JzogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeaUv+ayu+exu+aVmeWRmCcsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIC8vIOe8lui+kQogICAgICBlZGl0RGlhbG9nVmlzaWJsZTogZmFsc2UsCiAgICAgIGVkaXRMb2FkaW5nOiBmYWxzZSwKICAgICAgZWRpdFNhdmluZzogZmFsc2UsCiAgICAgIGVkaXRGb3JtOiB7fSwKICAgICAgZWRpdFJ1bGVzOiB7CiAgICAgICAganl4bTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeaVmeWRmOWnk+WQjScsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBqeXNkaDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeaVmeeglOWupOS7o+WPtycsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICB4YjogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeaAp+WIqycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHNmemg6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXouqvku73or4Hlj7cnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgenlqc3p3ZGo6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXkuJPkuJrmioDmnK/ogYzliqHnrYnnuqcnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgeHNseDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeiZmuWunuexu+WeiycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIGp5bGI6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXmlZnlkZjnsbvliKsnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgenpsYjogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpeWcqOiBjOexu+WIqycsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBkc2xiOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5a+85biI57G75YirJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHh5OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5a2m57yYJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGV3eXhrYnM6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXpop3lpJblhYHorrjlvIDnj63mlbAnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICB3eGp5OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5aSW6K6t5pWZ5ZGYJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgd3h5eTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeWkluiureivkeWRmCcsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHp6bGp5OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5pS/5rK757G75pWZ5ZGYJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgLy8g5pWZ5ZGY5bGe5oCnCiAgICAgIGF0dHJpYnV0ZVZpc2libGU6IGZhbHNlLAogICAgICBhdHRyaWJ1dGVNb2RlOiAndmlldycsCiAgICAgIGF0dHJpYnV0ZURhdGE6IHt9LAogICAgICBhdHRyaWJ1dGVGb3JtOiB7fSwKICAgICAgYXR0cmlidXRlTG9hZGluZzogZmFsc2UsCiAgICAgIGF0dHJpYnV0ZVNhdmluZzogZmFsc2UsCiAgICAgIGF0dHJpYnV0ZUp5Ymg6ICcnLAogICAgICAvLyDlrZflhbjpgInpobkKICAgICAgenlqc3p3ZGpPcHRpb25zOiBbXSwKICAgICAganlsYk9wdGlvbnM6IFtdLAogICAgICB6emxiT3B0aW9uczogW10sCiAgICAgIGRzbGJPcHRpb25zOiBbXQogICAgfTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB0aGlzLmZldGNoTGlzdCgpOwogICAgdGhpcy5sb2FkRGljdHMoKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIC8qKiDnu5/kuIDmoLzlvI/ljJblkI7nq68gTG9jYWxEYXRlVGltZe+8iOWOu+mZpCBU44CB5oiq5pat5Yiw56eS77yJICovZm10RGF0ZVRpbWU6IGZ1bmN0aW9uIGZtdERhdGVUaW1lKHZhbCkgewogICAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gJycpIHJldHVybiAnJzsKICAgICAgcmV0dXJuIFN0cmluZyh2YWwpLnJlcGxhY2UoJ1QnLCAnICcpLnNsaWNlKDAsIDE5KTsKICAgIH0sCiAgICAvKiog56m65YC85pi+56S65Li6ICctJyAqL2ZtdFZhbDogZnVuY3Rpb24gZm10VmFsKHZhbCkgewogICAgICByZXR1cm4gdmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gJycgPyAnLScgOiB2YWw7CiAgICB9LAogICAgLyoqIOaAp+WIq++8mjEt55S3IDAt5aWz77yI5LiO5ZCO56uvIFRlYWNoZXJMaXN0Vk8g5rOo6YeK5Y+K5a2m5ZGY6aG157qm5a6a5LiA6Ie077yJICovZm10R2VuZGVyOiBmdW5jdGlvbiBmbXRHZW5kZXIodmFsKSB7CiAgICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQgfHwgdmFsID09PSAnJykgcmV0dXJuICctJzsKICAgICAgcmV0dXJuIE51bWJlcih2YWwpID09PSAxID8gJ+eUtycgOiBOdW1iZXIodmFsKSA9PT0gMCA/ICflpbMnIDogU3RyaW5nKHZhbCk7CiAgICB9LAogICAgLyoqIOiZmuWunuexu+Wei++8mjEt5a6e5pWZIDAt6Z2e5a6e5pWZ77yI6aG555uu57qm5a6aIDEt5a6eIDAt6Jma77yJICovZm10WHNseDogZnVuY3Rpb24gZm10WHNseCh2YWwpIHsKICAgICAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCB8fCB2YWwgPT09ICcnKSByZXR1cm4gJy0nOwogICAgICByZXR1cm4gTnVtYmVyKHZhbCkgPT09IDEgPyAn5a6e5pWZJyA6IE51bWJlcih2YWwpID09PSAwID8gJ+mdnuWunuaVmScgOiBTdHJpbmcodmFsKTsKICAgIH0sCiAgICAvKiogMC8xIOagh+W/l+S9jeagvOW8j+WMliAqL2ZtdEZsYWc6IGZ1bmN0aW9uIGZtdEZsYWcodmFsLCB5ZXNMYWJlbCwgbm9MYWJlbCkgewogICAgICBpZiAodmFsID09PSBudWxsIHx8IHZhbCA9PT0gdW5kZWZpbmVkIHx8IHZhbCA9PT0gJycpIHJldHVybiAnLSc7CiAgICAgIHJldHVybiBOdW1iZXIodmFsKSA9PT0gMSA/IHllc0xhYmVsIDogTnVtYmVyKHZhbCkgPT09IDAgPyBub0xhYmVsIDogU3RyaW5nKHZhbCk7CiAgICB9LAogICAgLyoqIOenu+mZpOepuuWAvCAqL2xvYWREaWN0czogZnVuY3Rpb24gbG9hZERpY3RzKCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgICAoMCwgX2RhdGEuZ2V0RGljdHMpKCd0ZWFjaGVyX3p5anN6d2RqJykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMuenlqc3p3ZGpPcHRpb25zID0gcmVzLmRhdGEgfHwgW107CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgICAgKDAsIF9kYXRhLmdldERpY3RzKSgndGVhY2hlcl9qeWxiJykudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMuanlsYk9wdGlvbnMgPSByZXMuZGF0YSB8fCBbXTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgICAoMCwgX2RhdGEuZ2V0RGljdHMpKCd0ZWFjaGVyX3p6bGInKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpcy56emxiT3B0aW9ucyA9IHJlcy5kYXRhIHx8IFtdOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICAgICgwLCBfZGF0YS5nZXREaWN0cykoJ3RlYWNoZXJfZHNsYicpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzLmRzbGJPcHRpb25zID0gcmVzLmRhdGEgfHwgW107CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgIH0sCiAgICBjbGVhblBheWxvYWQ6IGZ1bmN0aW9uIGNsZWFuUGF5bG9hZChvYmopIHsKICAgICAgdmFyIHBheWxvYWQgPSB7fTsKICAgICAgT2JqZWN0LmtleXMob2JqKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICB2YXIgdmFsdWUgPSBvYmpba2V5XTsKICAgICAgICBpZiAodmFsdWUgIT09ICcnICYmIHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHsKICAgICAgICAgIHBheWxvYWRba2V5XSA9IHZhbHVlOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHJldHVybiBwYXlsb2FkOwogICAgfSwKICAgIC8qKiDliJvlu7rnqbrnmb3mlrDlop7ooajljZUgKi9jcmVhdGVFbXB0eUFkZEZvcm06IGZ1bmN0aW9uIGNyZWF0ZUVtcHR5QWRkRm9ybSgpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICB0ZWFjaGVyOiB7CiAgICAgICAgICBqeWJoOiAnJywKICAgICAgICAgIGp5eG06ICcnLAogICAgICAgICAganlzZGg6ICcnLAogICAgICAgICAgeGg6ICcnLAogICAgICAgICAgenlqc3p3ZGo6ICcnLAogICAgICAgICAgenlqc3p3ZGpzajogJycsCiAgICAgICAgICB4c2x4OiAxLAogICAgICAgICAganlsYjogJycsCiAgICAgICAgICB6emxiOiAnJywKICAgICAgICAgIGRzbGI6ICcnLAogICAgICAgICAgeHk6ICcnLAogICAgICAgICAgc2Z6aDogJycsCiAgICAgICAgICB4YjogMSwKICAgICAgICAgIHd4ank6IDAsCiAgICAgICAgICB3eHl5OiAwLAogICAgICAgICAgenpsank6IDAsCiAgICAgICAgICBld3l4a2JzOiAwLAogICAgICAgICAgemM6ICcnLAogICAgICAgICAgc2poOiAnJywKICAgICAgICAgIGtoOiAnJywKICAgICAgICAgIHB5OiAnJywKICAgICAgICAgIHpjc2o6ICcnLAogICAgICAgICAgYno6ICcnCiAgICAgICAgfSwKICAgICAgICBhdHRyaWJ1dGVzOiB7CiAgICAgICAgICB4bDogJycsCiAgICAgICAgICB4dzogJycsCiAgICAgICAgICBqbDogMCwKICAgICAgICAgIGpsanNycTogJycsCiAgICAgICAgICB6cjogMCwKICAgICAgICAgIHp3OiAnJywKICAgICAgICAgIHp3c2o6ICcnLAogICAgICAgICAganN6dzogJycsCiAgICAgICAgICBqc3p3c2o6ICcnLAogICAgICAgICAganNkajogJycsCiAgICAgICAgICBqc2Rqc2o6ICcnLAogICAgICAgICAganh3ejogJycsCiAgICAgICAgICBqeHd6c2o6ICcnLAogICAgICAgICAgY3NzajogJycsCiAgICAgICAgICByd2d6c2o6ICcnLAogICAgICAgICAgcmR6amw6ICcnLAogICAgICAgICAgZmJsdzogJycKICAgICAgICB9CiAgICAgIH07CiAgICB9LAogICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5YiX6KGoID09PT09PT09PT09PT09PT09PT09CiAgICBidWlsZFF1ZXJ5OiBmdW5jdGlvbiBidWlsZFF1ZXJ5KCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgdmFyIHBhcmFtcyA9IHt9OwogICAgICBbJ2p5eG0nLCAnanlzZGgnLCAnemMnLCAnanlsYiddLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgIHZhciB2YWx1ZSA9IF90aGlzMi5zZWFyY2hGb3JtW2tleV07CiAgICAgICAgaWYgKHZhbHVlICE9PSAnJyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICBwYXJhbXNba2V5XSA9IFN0cmluZyh2YWx1ZSkudHJpbSgpOwogICAgICAgIH0KICAgICAgfSk7CiAgICAgIHJldHVybiBwYXJhbXM7CiAgICB9LAogICAgZmV0Y2hMaXN0OiBmdW5jdGlvbiBmZXRjaExpc3QoKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICB2YXIgcGFyYW1zID0gKDAsIF9vYmplY3RTcHJlYWQyLmRlZmF1bHQpKHsKICAgICAgICBwYWdlTnVtOiB0aGlzLnBhZ2luYXRpb24ucGFnZU51bSwKICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0aW9uLnBhZ2VTaXplCiAgICAgIH0sIHRoaXMuYnVpbGRRdWVyeSgpKTsKICAgICAgKDAsIF90ZWFjaGVyLmxpc3RUZWFjaGVyKShwYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgdmFyIGRhdGEgPSByZXNwb25zZS5kYXRhIHx8IHt9OwogICAgICAgIF90aGlzMy50YWJsZURhdGEgPSBkYXRhLnJlY29yZHMgfHwgW107CiAgICAgICAgX3RoaXMzLnBhZ2luYXRpb24udG90YWwgPSBkYXRhLnRvdGFsIHx8IDA7CiAgICAgICAgX3RoaXMzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMy50YWJsZURhdGEgPSBbXTsKICAgICAgICBfdGhpczMucGFnaW5hdGlvbi50b3RhbCA9IDA7CiAgICAgICAgX3RoaXMzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgfSk7CiAgICB9LAogICAgaGFuZGxlU2VhcmNoOiBmdW5jdGlvbiBoYW5kbGVTZWFyY2goKSB7CiAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdlTnVtID0gMTsKICAgICAgdGhpcy5mZXRjaExpc3QoKTsKICAgIH0sCiAgICBoYW5kbGVSZXNldDogZnVuY3Rpb24gaGFuZGxlUmVzZXQoKSB7CiAgICAgIHRoaXMuc2VhcmNoRm9ybSA9IHsKICAgICAgICBqeXhtOiAnJywKICAgICAgICBqeXNkaDogJycsCiAgICAgICAgemM6ICcnLAogICAgICAgIGp5bGI6ICcnCiAgICAgIH07CiAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdlTnVtID0gMTsKICAgICAgdGhpcy5mZXRjaExpc3QoKTsKICAgIH0sCiAgICBoYW5kbGVTaXplQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVTaXplQ2hhbmdlKHNpemUpIHsKICAgICAgdGhpcy5wYWdpbmF0aW9uLnBhZ2VTaXplID0gc2l6ZTsKICAgICAgdGhpcy5wYWdpbmF0aW9uLnBhZ2VOdW0gPSAxOwogICAgICB0aGlzLmZldGNoTGlzdCgpOwogICAgfSwKICAgIGhhbmRsZUN1cnJlbnRDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZUN1cnJlbnRDaGFuZ2UocGFnZSkgewogICAgICB0aGlzLnBhZ2luYXRpb24ucGFnZU51bSA9IHBhZ2U7CiAgICAgIHRoaXMuZmV0Y2hMaXN0KCk7CiAgICB9LAogICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVTZWxlY3Rpb25DaGFuZ2Uocm93cykgewogICAgICB0aGlzLnNlbGVjdGVkUm93cyA9IHJvd3M7CiAgICB9LAogICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5peg5ZCO56uv5o6l5Y+j55qE5pON5L2cID09PT09PT09PT09PT09PT09PT09CiAgICBoYW5kbGVEZWxldGVTZWxlY3RlZDogZnVuY3Rpb24gaGFuZGxlRGVsZXRlU2VsZWN0ZWQoKSB7CiAgICAgIHRoaXMuJG1lc3NhZ2UuaW5mbygn5ZCO56uv5pqC5pyq5o+Q5L6b6K+l5o6l5Y+jJyk7CiAgICB9LAogICAgaGFuZGxlSW1wb3J0OiBmdW5jdGlvbiBoYW5kbGVJbXBvcnQoKSB7CiAgICAgIHRoaXMuJG1lc3NhZ2UuaW5mbygn5ZCO56uv5pqC5pyq5o+Q5L6b6K+l5o6l5Y+jJyk7CiAgICB9LAogICAgaGFuZGxlRG93bmxvYWRUZW1wbGF0ZTogZnVuY3Rpb24gaGFuZGxlRG93bmxvYWRUZW1wbGF0ZSgpIHsKICAgICAgdGhpcy4kbWVzc2FnZS5pbmZvKCflkI7nq6/mmoLmnKrmj5Dkvpvor6XmjqXlj6MnKTsKICAgIH0sCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDmlrDlop4gPT09PT09PT09PT09PT09PT09PT0KICAgIGhhbmRsZU5ldzogZnVuY3Rpb24gaGFuZGxlTmV3KCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgdGhpcy5hZGRGb3JtID0gdGhpcy5jcmVhdGVFbXB0eUFkZEZvcm0oKTsKICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzNC4kcmVmcy5hZGRGb3JtUmVmICYmIF90aGlzNC4kcmVmcy5hZGRGb3JtUmVmLmNsZWFyVmFsaWRhdGUoKTsKICAgICAgfSk7CiAgICAgIHRoaXMuYWRkRGlhbG9nVmlzaWJsZSA9IHRydWU7CiAgICB9LAogICAgaGFuZGxlQWRkQ29uZmlybTogZnVuY3Rpb24gaGFuZGxlQWRkQ29uZmlybSgpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHRoaXMuJHJlZnMuYWRkRm9ybVJlZi52YWxpZGF0ZShmdW5jdGlvbiAodmFsaWQpIHsKICAgICAgICBpZiAoIXZhbGlkKSByZXR1cm47CiAgICAgICAgdmFyIGR0byA9IHsKICAgICAgICAgIHRlYWNoZXI6IF90aGlzNS5idWlsZFRlYWNoZXJQYXlsb2FkKF90aGlzNS5hZGRGb3JtLnRlYWNoZXIpLAogICAgICAgICAgYXR0cmlidXRlczogX3RoaXM1LmJ1aWxkQXR0cmlidXRlUGF5bG9hZChfdGhpczUuYWRkRm9ybS5hdHRyaWJ1dGVzKQogICAgICAgIH07CiAgICAgICAgX3RoaXM1LmFkZFNhdmluZyA9IHRydWU7CiAgICAgICAgKDAsIF90ZWFjaGVyLmFkZFRlYWNoZXIpKGR0bykudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICBfdGhpczUuJG1lc3NhZ2Uuc3VjY2Vzcygn5paw5aKe5oiQ5YqfJyk7CiAgICAgICAgICBfdGhpczUuYWRkRGlhbG9nVmlzaWJsZSA9IGZhbHNlOwogICAgICAgICAgX3RoaXM1LmZldGNoTGlzdCgpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KS5maW5hbGx5KGZ1bmN0aW9uICgpIHsKICAgICAgICAgIF90aGlzNS5hZGRTYXZpbmcgPSBmYWxzZTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAogICAgLyoqIOe7hOijhSBKWUIg6K+35rGC5L2T77yIbHp6dCDkuI3kvKDvvIzlkI7nq6/oh6rliqjnva4gMO+8iSAqL2J1aWxkVGVhY2hlclBheWxvYWQ6IGZ1bmN0aW9uIGJ1aWxkVGVhY2hlclBheWxvYWQodCkgewogICAgICB2YXIgcGF5bG9hZCA9IHRoaXMuY2xlYW5QYXlsb2FkKHsKICAgICAgICBqeWJoOiB0Lmp5YmgsCiAgICAgICAganl4bTogdC5qeXhtLAogICAgICAgIGp5c2RoOiB0Lmp5c2RoLAogICAgICAgIGJ6OiB0LmJ6LAogICAgICAgIHpjOiB0LnpjLAogICAgICAgIHhoOiB0LnhoLAogICAgICAgIHp5anN6d2RqOiB0Lnp5anN6d2RqLAogICAgICAgIHhzbHg6IHQueHNseCwKICAgICAgICBqeWxiOiB0Lmp5bGIsCiAgICAgICAga2g6IHQua2gsCiAgICAgICAgcHk6IHQucHksCiAgICAgICAgenpsYjogdC56emxiLAogICAgICAgIGV3eXhrYnM6IHQuZXd5eGticywKICAgICAgICBkc2xiOiB0LmRzbGIsCiAgICAgICAgeHk6IHQueHksCiAgICAgICAgc2Z6aDogdC5zZnpoLAogICAgICAgIHhiOiB0LnhiLAogICAgICAgIHd4ank6IHQud3hqeSwKICAgICAgICB3eHl5OiB0Lnd4eXksCiAgICAgICAgenpsank6IHQuenpsanksCiAgICAgICAgc2poOiB0LnNqaAogICAgICB9KQogICAgICAvLyDmlbTmlbAv5qCH5b+X5a2X5q616L2sIE51bWJlcgo7CiAgICAgIFsneGInLCAneHNseCcsICdld3l4a2JzJywgJ3d4anknLCAnd3h5eScsICd6emxqeSddLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgIGlmIChwYXlsb2FkW2tleV0gIT09IHVuZGVmaW5lZCkgcGF5bG9hZFtrZXldID0gTnVtYmVyKHBheWxvYWRba2V5XSk7CiAgICAgIH0pCiAgICAgIC8vIOaXtumXtOWtl+auteW3sueUsSBkYXRlLXBpY2tlciDovpPlh7ogSVNPIOagvOW8jwo7CiAgICAgIFsnenlqc3p3ZGpzaicsICd6Y3NqJ10uZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7CiAgICAgICAgaWYgKHRba2V5XSkgcGF5bG9hZFtrZXldID0gdFtrZXldOwogICAgICB9KTsKICAgICAgcmV0dXJuIHBheWxvYWQ7CiAgICB9LAogICAgLyoqIOe7hOijhSBKWVNYIOivt+axguS9k++8iOS7hemdnuepuuWtl+aute+8iSAqL2J1aWxkQXR0cmlidXRlUGF5bG9hZDogZnVuY3Rpb24gYnVpbGRBdHRyaWJ1dGVQYXlsb2FkKGEpIHsKICAgICAgdmFyIHBheWxvYWQgPSB0aGlzLmNsZWFuUGF5bG9hZCh7CiAgICAgICAgeGw6IGEueGwsCiAgICAgICAgeHc6IGEueHcsCiAgICAgICAgamw6IGEuamwsCiAgICAgICAgamxqc3JxOiBhLmpsanNycSwKICAgICAgICB6cjogYS56ciwKICAgICAgICB6dzogYS56dywKICAgICAgICB6d3NqOiBhLnp3c2osCiAgICAgICAganN6dzogYS5qc3p3LAogICAgICAgIGpzendzajogYS5qc3p3c2osCiAgICAgICAganNkajogYS5qc2RqLAogICAgICAgIGpzZGpzajogYS5qc2Rqc2osCiAgICAgICAganh3ejogYS5qeHd6LAogICAgICAgIGp4d3pzajogYS5qeHd6c2osCiAgICAgICAgY3NzajogYS5jc3NqLAogICAgICAgIHJ3Z3pzajogYS5yd2d6c2osCiAgICAgICAgcmR6amw6IGEucmR6amwsCiAgICAgICAgZmJsdzogYS5mYmx3CiAgICAgIH0pOwogICAgICBpZiAocGF5bG9hZC56ciAhPT0gdW5kZWZpbmVkKSBwYXlsb2FkLnpyID0gTnVtYmVyKHBheWxvYWQuenIpOwogICAgICBpZiAocGF5bG9hZC5qbCAhPT0gdW5kZWZpbmVkKSBwYXlsb2FkLmpsID0gTnVtYmVyKHBheWxvYWQuamwpOwogICAgICByZXR1cm4gcGF5bG9hZDsKICAgIH0sCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDnvJbovpEgPT09PT09PT09PT09PT09PT09PT0KICAgIGhhbmRsZUVkaXQ6IGZ1bmN0aW9uIGhhbmRsZUVkaXQocm93KSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICB0aGlzLmVkaXREaWFsb2dWaXNpYmxlID0gdHJ1ZTsKICAgICAgdGhpcy5lZGl0TG9hZGluZyA9IHRydWU7CiAgICAgICgwLCBfdGVhY2hlci5nZXRUZWFjaGVyKShyb3cuanliaCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICB2YXIgZGF0YSA9IHJlc3BvbnNlLmRhdGEgfHwge307CiAgICAgICAgdmFyIGZvcm0gPSBfdGhpczYuY3JlYXRlRW1wdHlBZGRGb3JtKCkudGVhY2hlcjsKICAgICAgICBPYmplY3Qua2V5cyhmb3JtKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHsKICAgICAgICAgIGlmIChkYXRhW2tleV0gIT09IHVuZGVmaW5lZCAmJiBkYXRhW2tleV0gIT09IG51bGwpIGZvcm1ba2V5XSA9IGRhdGFba2V5XTsKICAgICAgICB9KTsKICAgICAgICBfdGhpczYuZWRpdEZvcm0gPSBmb3JtOwogICAgICAgIF90aGlzNi5lZGl0TG9hZGluZyA9IGZhbHNlOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXM2LmVkaXREaWFsb2dWaXNpYmxlID0gZmFsc2U7CiAgICAgICAgX3RoaXM2LmVkaXRMb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZUVkaXRDb25maXJtOiBmdW5jdGlvbiBoYW5kbGVFZGl0Q29uZmlybSgpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHRoaXMuJHJlZnMuZWRpdEZvcm1SZWYudmFsaWRhdGUoZnVuY3Rpb24gKHZhbGlkKSB7CiAgICAgICAgaWYgKCF2YWxpZCkgcmV0dXJuOwogICAgICAgIGlmICghX3RoaXM3LmVkaXRGb3JtLmp5YmgpIHsKICAgICAgICAgIF90aGlzNy4kbWVzc2FnZS53YXJuaW5nKCfnvLrlsJHmlZnlkZjnvJblj7fvvIzml6Dms5Xkv53lrZgnKTsKICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgdmFyIHBheWxvYWQgPSBfdGhpczcuYnVpbGRUZWFjaGVyUGF5bG9hZChfdGhpczcuZWRpdEZvcm0pOwogICAgICAgIHBheWxvYWQuanliaCA9IF90aGlzNy5lZGl0Rm9ybS5qeWJoOwogICAgICAgIF90aGlzNy5lZGl0U2F2aW5nID0gdHJ1ZTsKICAgICAgICAoMCwgX3RlYWNoZXIudXBkYXRlVGVhY2hlcikocGF5bG9hZCkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICBfdGhpczcuJG1lc3NhZ2Uuc3VjY2Vzcygn5L+d5a2Y5oiQ5YqfJyk7CiAgICAgICAgICBfdGhpczcuZWRpdERpYWxvZ1Zpc2libGUgPSBmYWxzZTsKICAgICAgICAgIF90aGlzNy5mZXRjaExpc3QoKTsKICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSkuZmluYWxseShmdW5jdGlvbiAoKSB7CiAgICAgICAgICBfdGhpczcuZWRpdFNhdmluZyA9IGZhbHNlOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDnprvogYzvvIjpgLvovpHliKDpmaTvvIkgPT09PT09PT09PT09PT09PT09PT0KICAgIGhhbmRsZURpc2FibGU6IGZ1bmN0aW9uIGhhbmRsZURpc2FibGUocm93KSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICBpZiAoIXJvdy5qeWJoKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCflvZPliY3ooYznvLrlsJHmlZnlkZjnvJblj7cnKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KICAgICAgdGhpcy4kY29uZmlybSgiXHU3ODZFXHU1QjlBXHU4OTgxXHU1MjlFXHU3NDA2XHU2NTU5XHU1NDU4XHUzMDBDIi5jb25jYXQocm93Lmp5eG0gfHwgcm93Lmp5YmgsICJcdTMwMERcdTc5QkJcdTgwNENcdTU0MTdcdUZGMUYiKSwgJ+ezu+e7n+aPkOekuicsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICgwLCBfdGVhY2hlci5kaXNhYmxlVGVhY2hlcikocm93Lmp5YmgpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgX3RoaXM4LiRtZXNzYWdlLnN1Y2Nlc3MoJ+W3suWKnueQhuemu+iBjCcpOwogICAgICAgICAgX3RoaXM4LmZldGNoTGlzdCgpOwogICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHt9KTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgfSwKICAgIC8vID09PT09PT09PT09PT09PT09PT09IOaVmeWRmOWxnuaApyA9PT09PT09PT09PT09PT09PT09PQogICAgaGFuZGxlVmlld0F0dHJpYnV0ZTogZnVuY3Rpb24gaGFuZGxlVmlld0F0dHJpYnV0ZShyb3cpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CiAgICAgIHRoaXMuYXR0cmlidXRlTW9kZSA9ICd2aWV3JzsKICAgICAgdGhpcy5hdHRyaWJ1dGVKeWJoID0gcm93Lmp5Ymg7CiAgICAgIHRoaXMuYXR0cmlidXRlRGF0YSA9IHt9OwogICAgICB0aGlzLmF0dHJpYnV0ZVZpc2libGUgPSB0cnVlOwogICAgICB0aGlzLmF0dHJpYnV0ZUxvYWRpbmcgPSB0cnVlOwogICAgICAoMCwgX3RlYWNoZXIuZ2V0VGVhY2hlckF0dHJpYnV0ZSkocm93Lmp5YmgpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXM5LmF0dHJpYnV0ZURhdGEgPSByZXNwb25zZS5kYXRhIHx8IHt9OwogICAgICAgIF90aGlzOS5hdHRyaWJ1dGVMb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczkuYXR0cmlidXRlVmlzaWJsZSA9IGZhbHNlOwogICAgICAgIF90aGlzOS5hdHRyaWJ1dGVMb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZVN0YXJ0RWRpdEF0dHJpYnV0ZTogZnVuY3Rpb24gaGFuZGxlU3RhcnRFZGl0QXR0cmlidXRlKCkgewogICAgICB2YXIgX3RoaXMwID0gdGhpczsKICAgICAgdGhpcy5hdHRyaWJ1dGVGb3JtID0gdGhpcy5jcmVhdGVFbXB0eUFkZEZvcm0oKS5hdHRyaWJ1dGVzOwogICAgICBPYmplY3Qua2V5cyh0aGlzLmF0dHJpYnV0ZUZvcm0pLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICAgIGlmIChfdGhpczAuYXR0cmlidXRlRGF0YVtrZXldICE9PSB1bmRlZmluZWQgJiYgX3RoaXMwLmF0dHJpYnV0ZURhdGFba2V5XSAhPT0gbnVsbCkgewogICAgICAgICAgX3RoaXMwLmF0dHJpYnV0ZUZvcm1ba2V5XSA9IF90aGlzMC5hdHRyaWJ1dGVEYXRhW2tleV07CiAgICAgICAgfQogICAgICB9KTsKICAgICAgdGhpcy5hdHRyaWJ1dGVGb3JtLmp5YmggPSB0aGlzLmF0dHJpYnV0ZUp5Ymg7CiAgICAgIHRoaXMuYXR0cmlidXRlTW9kZSA9ICdlZGl0JzsKICAgIH0sCiAgICBoYW5kbGVDYW5jZWxFZGl0QXR0cmlidXRlOiBmdW5jdGlvbiBoYW5kbGVDYW5jZWxFZGl0QXR0cmlidXRlKCkgewogICAgICB0aGlzLmF0dHJpYnV0ZU1vZGUgPSAndmlldyc7CiAgICB9LAogICAgaGFuZGxlU2F2ZUF0dHJpYnV0ZTogZnVuY3Rpb24gaGFuZGxlU2F2ZUF0dHJpYnV0ZSgpIHsKICAgICAgdmFyIF90aGlzMSA9IHRoaXM7CiAgICAgIHZhciBwYXlsb2FkID0gdGhpcy5idWlsZEF0dHJpYnV0ZVBheWxvYWQodGhpcy5hdHRyaWJ1dGVGb3JtKTsKICAgICAgcGF5bG9hZC5qeWJoID0gdGhpcy5hdHRyaWJ1dGVKeWJoOwogICAgICB0aGlzLmF0dHJpYnV0ZVNhdmluZyA9IHRydWU7CiAgICAgICgwLCBfdGVhY2hlci51cGRhdGVUZWFjaGVyQXR0cmlidXRlKShwYXlsb2FkKS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICBfdGhpczEuJG1lc3NhZ2Uuc3VjY2Vzcygn5L+d5a2Y5oiQ5YqfJyk7CiAgICAgICAgX3RoaXMxLmF0dHJpYnV0ZU1vZGUgPSAndmlldyc7CiAgICAgICAgX3RoaXMxLmhhbmRsZVZpZXdBdHRyaWJ1dGUoewogICAgICAgICAganliaDogX3RoaXMxLmF0dHJpYnV0ZUp5YmgKICAgICAgICB9KTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pLmZpbmFsbHkoZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzMS5hdHRyaWJ1dGVTYXZpbmcgPSBmYWxzZTsKICAgICAgfSk7CiAgICB9CiAgfQp9Ow=="},{"version":3,"names":["_teacher","require","_data","name","data","searchForm","jyxm","jysdh","zc","jylb","loading","tableData","selectedRows","pagination","pageNum","pageSize","total","addDialogVisible","addSaving","addForm","createEmptyAddForm","addRules","required","message","trigger","editDialogVisible","editLoading","editSaving","editForm","editRules","xb","sfzh","zyjszwdj","xslx","zzlb","dslb","xy","ewyxkbs","wxjy","wxyy","zzljy","attributeVisible","attributeMode","attributeData","attributeForm","attributeLoading","attributeSaving","attributeJybh","zyjszwdjOptions","jylbOptions","zzlbOptions","dslbOptions","mounted","fetchList","loadDicts","methods","fmtDateTime","val","undefined","String","replace","slice","fmtVal","fmtGender","Number","fmtXslx","fmtFlag","yesLabel","noLabel","_this","getDicts","then","res","catch","cleanPayload","obj","payload","Object","keys","forEach","key","value","teacher","jybh","xh","zyjszwdjsj","sjh","kh","py","zcsj","bz","attributes","xl","xw","jl","jljsrq","zr","zw","zwsj","jszw","jszwsj","jsdj","jsdjsj","jxwz","jxwzsj","cssj","rwgzsj","rdzjl","fblw","buildQuery","_this2","params","trim","_this3","_objectSpread2","default","listTeacher","response","records","handleSearch","handleReset","handleSizeChange","size","handleCurrentChange","page","handleSelectionChange","rows","handleDeleteSelected","$message","info","handleImport","handleDownloadTemplate","handleNew","_this4","$nextTick","$refs","addFormRef","clearValidate","handleAddConfirm","_this5","validate","valid","dto","buildTeacherPayload","buildAttributePayload","addTeacher","success","finally","t","a","handleEdit","row","_this6","getTeacher","form","handleEditConfirm","_this7","editFormRef","warning","updateTeacher","handleDisable","_this8","$confirm","concat","confirmButtonText","cancelButtonText","type","disableTeacher","handleViewAttribute","_this9","getTeacherAttribute","handleStartEditAttribute","_this0","handleCancelEditAttribute","handleSaveAttribute","_this1","updateTeacherAttribute"],"sources":["src/views/teachOffice/teacher/index.vue"],"sourcesContent":["<template>\r\n <div class=\"app-container teacher-page\">\r\n <!-- 查询条件 -->\r\n <el-card shadow=\"never\" class=\"search-card\">\r\n <el-form :model=\"searchForm\" label-width=\"90px\" class=\"search-form\" @submit.native.prevent>\r\n <el-row :gutter=\"0\">\r\n <el-col :span=\"6\">\r\n <el-form-item label=\"教员姓名\">\r\n <el-input v-model=\"searchForm.jyxm\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"6\">\r\n <el-form-item label=\"教研室代号\">\r\n <el-input v-model=\"searchForm.jysdh\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"6\">\r\n <el-form-item label=\"职称\">\r\n <el-input v-model=\"searchForm.zc\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"6\">\r\n <el-form-item label=\"教员类别\">\r\n <el-input v-model=\"searchForm.jylb\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div class=\"search-actions\">\r\n <el-button type=\"primary\" icon=\"el-icon-search\" @click=\"handleSearch\">查询</el-button>\r\n <el-button icon=\"el-icon-refresh\" @click=\"handleReset\">重置</el-button>\r\n </div>\r\n </el-card>\r\n\r\n <!-- 教员列表 -->\r\n <div class=\"list-title\">教员列表:</div>\r\n <div class=\"list-toolbar\">\r\n <div class=\"left-group\">\r\n <el-button type=\"primary\" icon=\"el-icon-plus\" @click=\"handleNew\">新建</el-button>\r\n <el-button type=\"danger\" plain icon=\"el-icon-delete\" @click=\"handleDeleteSelected\">删除所选</el-button>\r\n <el-button icon=\"el-icon-upload\" @click=\"handleImport\">导入教员信息</el-button>\r\n </div>\r\n <div class=\"right-group\">\r\n <el-button icon=\"el-icon-download\" @click=\"handleDownloadTemplate\">【教员数据文件模板】下载</el-button>\r\n </div>\r\n </div>\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=\"jybh\" label=\"教员工号\" width=\"110\" align=\"center\" />\r\n <el-table-column prop=\"jyxm\" label=\"教员姓名\" width=\"90\" align=\"center\" />\r\n <el-table-column label=\"性别\" width=\"60\" align=\"center\">\r\n <template slot-scope=\"{ row }\">{{ fmtGender(row.xb) }}</template>\r\n </el-table-column>\r\n <el-table-column prop=\"jysmc\" label=\"教研室名称\" width=\"200\" show-overflow-tooltip align=\"center\"/>\r\n <el-table-column prop=\"zc\" label=\"职称\" width=\"120\" align=\"center\" />\r\n <el-table-column prop=\"xl\" label=\"学历\" width=\"120\" align=\"center\" />\r\n <el-table-column prop=\"xw\" label=\"学位\" width=\"120\" align=\"center\" />\r\n <el-table-column label=\"出生时间\" width=\"110\" align=\"center\">\r\n <template slot-scope=\"{ row }\">{{ fmtDateTime(row.cssj) || '-' }}</template>\r\n </el-table-column>\r\n <el-table-column label=\"入伍工作时间\" width=\"120\" align=\"center\">\r\n <template slot-scope=\"{ row }\">{{ fmtDateTime(row.rwgzsj) || '-' }}</template>\r\n </el-table-column>\r\n <el-table-column prop=\"sjh\" label=\"联系方式\" width=\"110\" align=\"center\" />\r\n <el-table-column label=\"虚实类型\" width=\"80\" align=\"center\">\r\n <template slot-scope=\"{ row }\">{{ fmtXslx(row.xslx) }}</template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" align=\"center\" fixed=\"right\">\r\n <template slot-scope=\"{ row }\">\r\n <el-button type=\"text\" size=\"small\" icon=\"el-icon-view\" @click=\"handleViewAttribute(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=\"danger-text\" @click=\"handleDisable(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 <div class=\"pagination-wrap\">\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=\"handleCurrentChange\"\r\n />\r\n </div>\r\n </el-card>\r\n\r\n <!-- 新建教员对话框 -->\r\n <el-dialog\r\n :visible=\"addDialogVisible\"\r\n title=\"新建教员\"\r\n width=\"820px\"\r\n :close-on-click-modal=\"false\"\r\n @update:visible=\"val => addDialogVisible = val\"\r\n >\r\n <el-form ref=\"addFormRef\" :model=\"addForm\" :rules=\"addRules\" label-width=\"160px\" class=\"add-form\">\r\n <el-divider content-position=\"left\">教员基本信息</el-divider>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教员姓名\" prop=\"teacher.jyxm\"><el-input v-model=\"addForm.teacher.jyxm\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"性别\" prop=\"teacher.xb\">\r\n <el-select v-model=\"addForm.teacher.xb\" style=\"width:100%\">\r\n <el-option :value=\"1\" label=\"男\" /><el-option :value=\"0\" label=\"女\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"序号\" prop=\"teacher.xh\"><el-input v-model=\"addForm.teacher.xh\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"身份证号\" prop=\"teacher.sfzh\"><el-input v-model=\"addForm.teacher.sfzh\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"专业技术职务等级\" prop=\"teacher.zyjszwdj\">\n <el-select v-model=\"addForm.teacher.zyjszwdj\" placeholder=\"请选择\" clearable style=\"width:100%\">\n <el-option v-for=\"item in zyjszwdjOptions\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"item.dictValue\" />\n </el-select>\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"虚实类型\" prop=\"teacher.xslx\">\r\n <el-radio-group v-model=\"addForm.teacher.xslx\">\r\n <el-radio :label=\"1\">是</el-radio>\r\n <el-radio :label=\"0\">否</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教员类别\" prop=\"teacher.jylb\">\n <el-select v-model=\"addForm.teacher.jylb\" placeholder=\"请选择\" clearable style=\"width:100%\">\n <el-option v-for=\"item in jylbOptions\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"item.dictValue\" />\n </el-select>\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"在职类别\" prop=\"teacher.zzlb\">\n <el-select v-model=\"addForm.teacher.zzlb\" placeholder=\"请选择\" clearable style=\"width:100%\">\n <el-option v-for=\"item in zzlbOptions\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"item.dictValue\" />\n </el-select>\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"导师类别\" prop=\"teacher.dslb\">\n <el-select v-model=\"addForm.teacher.dslb\" placeholder=\"请选择\" clearable style=\"width:100%\">\n <el-option v-for=\"item in dslbOptions\" :key=\"item.dictValue\" :label=\"item.dictLabel\" :value=\"item.dictValue\" />\n </el-select>\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"学缘\" prop=\"teacher.xy\"><el-input v-model=\"addForm.teacher.xy\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"额外允许开班数\" prop=\"teacher.ewyxkbs\">\r\n <el-input-number v-model=\"addForm.teacher.ewyxkbs\" :min=\"0\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"外训教员\" prop=\"teacher.wxjy\">\r\n <el-radio-group v-model=\"addForm.teacher.wxjy\">\r\n <el-radio :label=\"1\">是</el-radio>\r\n <el-radio :label=\"0\">否</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"外训译员\" prop=\"teacher.wxyy\">\r\n <el-radio-group v-model=\"addForm.teacher.wxyy\">\r\n <el-radio :label=\"1\">是</el-radio>\r\n <el-radio :label=\"0\">否</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"政治类教员\" prop=\"teacher.zzljy\">\r\n <el-radio-group v-model=\"addForm.teacher.zzljy\">\r\n <el-radio :label=\"1\">是</el-radio>\r\n <el-radio :label=\"0\">否</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"职称\"><el-input v-model=\"addForm.teacher.zc\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"手机号\"><el-input v-model=\"addForm.teacher.sjh\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"卡号\"><el-input v-model=\"addForm.teacher.kh\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"拼音\"><el-input v-model=\"addForm.teacher.py\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"专业技术职务等级时间\">\r\n <el-date-picker v-model=\"addForm.teacher.zyjszwdjsj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\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=\"addForm.teacher.zcsj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"备注\"><el-input v-model=\"addForm.teacher.bz\" type=\"textarea\" :rows=\"2\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-divider content-position=\"left\">教员属性</el-divider>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"学历\"><el-input v-model=\"addForm.attributes.xl\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"学位\"><el-input v-model=\"addForm.attributes.xw\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教龄\"><el-input-number v-model=\"addForm.attributes.jl\" :min=\"0\" style=\"width:100%\" /></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=\"addForm.attributes.jljsrq\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"主任\">\r\n <el-radio-group v-model=\"addForm.attributes.zr\">\r\n <el-radio :label=\"1\">是</el-radio>\r\n <el-radio :label=\"0\">否</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"职务\"><el-input v-model=\"addForm.attributes.zw\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"职务时间\">\r\n <el-date-picker v-model=\"addForm.attributes.zwsj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"技术职务\"><el-input v-model=\"addForm.attributes.jszw\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"技术职务时间\">\r\n <el-date-picker v-model=\"addForm.attributes.jszwsj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"技术等级\"><el-input v-model=\"addForm.attributes.jsdj\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"技术等级时间\">\r\n <el-date-picker v-model=\"addForm.attributes.jsdjsj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"军衔文职\"><el-input v-model=\"addForm.attributes.jxwz\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"军衔文职时间\">\r\n <el-date-picker v-model=\"addForm.attributes.jxwzsj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\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=\"addForm.attributes.cssj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"入伍工作时间\">\r\n <el-date-picker v-model=\"addForm.attributes.rwgzsj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"任代职经历\"><el-input v-model=\"addForm.attributes.rdzjl\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"发表论文\"><el-input v-model=\"addForm.attributes.fblw\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot=\"footer\">\r\n <el-button @click=\"addDialogVisible = false\">取消</el-button>\r\n <el-button type=\"primary\" :loading=\"addSaving\" @click=\"handleAddConfirm\">确定</el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <!-- 编辑教员基本信息对话框 -->\r\n <el-dialog\r\n :visible=\"editDialogVisible\"\r\n title=\"编辑教员信息\"\r\n width=\"780px\"\r\n :close-on-click-modal=\"false\"\r\n @update:visible=\"val => editDialogVisible = val\"\r\n >\r\n <div v-loading=\"editLoading\">\r\n <el-form ref=\"editFormRef\" :model=\"editForm\" :rules=\"editRules\" label-width=\"140px\" class=\"add-form\">\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教员编号\"><el-input v-model=\"editForm.jybh\" disabled /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教员姓名\" prop=\"jyxm\"><el-input v-model=\"editForm.jyxm\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教研室代号\" prop=\"jysdh\"><el-input v-model=\"editForm.jysdh\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"序号\"><el-input v-model=\"editForm.xh\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"性别\" prop=\"xb\">\r\n <el-select v-model=\"editForm.xb\" style=\"width:100%\">\r\n <el-option :value=\"1\" label=\"男\" /><el-option :value=\"0\" label=\"女\" />\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=\"身份证号\" prop=\"sfzh\"><el-input v-model=\"editForm.sfzh\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"专业技术职务等级\" prop=\"zyjszwdj\"><el-input v-model=\"editForm.zyjszwdj\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"虚实类型\" prop=\"xslx\">\r\n <el-radio-group v-model=\"editForm.xslx\">\r\n <el-radio :label=\"1\">实教</el-radio>\r\n <el-radio :label=\"0\">非实教</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教员类别\" prop=\"jylb\"><el-input v-model=\"editForm.jylb\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"在职类别\" prop=\"zzlb\"><el-input v-model=\"editForm.zzlb\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"导师类别\" prop=\"dslb\"><el-input v-model=\"editForm.dslb\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"学缘\" prop=\"xy\"><el-input v-model=\"editForm.xy\" placeholder=\"请输入\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"额外允许开班数\" prop=\"ewyxkbs\">\r\n <el-input-number v-model=\"editForm.ewyxkbs\" :min=\"0\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"外训教员\" prop=\"wxjy\">\r\n <el-radio-group v-model=\"editForm.wxjy\">\r\n <el-radio :label=\"1\">是</el-radio>\r\n <el-radio :label=\"0\">否</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"外训译员\" prop=\"wxyy\">\r\n <el-radio-group v-model=\"editForm.wxyy\">\r\n <el-radio :label=\"1\">是</el-radio>\r\n <el-radio :label=\"0\">否</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"政治类教员\" prop=\"zzljy\">\r\n <el-radio-group v-model=\"editForm.zzljy\">\r\n <el-radio :label=\"1\">是</el-radio>\r\n <el-radio :label=\"0\">否</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"职称\"><el-input v-model=\"editForm.zc\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"手机号\"><el-input v-model=\"editForm.sjh\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"卡号\"><el-input v-model=\"editForm.kh\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"拼音\"><el-input v-model=\"editForm.py\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"备注\"><el-input v-model=\"editForm.bz\" type=\"textarea\" :rows=\"2\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n </div>\r\n <div slot=\"footer\">\r\n <el-button @click=\"editDialogVisible = false\">取消</el-button>\r\n <el-button type=\"primary\" :loading=\"editSaving\" @click=\"handleEditConfirm\">保存</el-button>\r\n </div>\r\n </el-dialog>\r\n\r\n <!-- 教员属性详情/编辑对话框 -->\r\n <el-dialog\r\n :visible=\"attributeVisible\"\r\n :title=\"attributeMode === 'view' ? '教员属性' : '编辑教员属性'\"\r\n width=\"720px\"\r\n :close-on-click-modal=\"false\"\r\n @update:visible=\"val => attributeVisible = val\"\r\n >\r\n <div v-loading=\"attributeLoading || attributeSaving\">\r\n <template v-if=\"attributeMode === 'view'\">\r\n <el-descriptions :column=\"2\" border size=\"medium\">\r\n <el-descriptions-item label=\"教员编号\">{{ attributeData.jybh || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"主任\">{{ fmtFlag(attributeData.zr, '是', '否') }}</el-descriptions-item>\r\n <el-descriptions-item label=\"职务\">{{ attributeData.zw || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"职务时间\">{{ fmtDateTime(attributeData.zwsj) || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"技术职务\">{{ attributeData.jszw || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"技术职务时间\">{{ fmtDateTime(attributeData.jszwsj) || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"技术等级\">{{ attributeData.jsdj || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"技术等级时间\">{{ fmtDateTime(attributeData.jsdjsj) || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"军衔文职\">{{ attributeData.jxwz || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"军衔文职时间\">{{ fmtDateTime(attributeData.jxwzsj) || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"出生时间\">{{ fmtDateTime(attributeData.cssj) || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"学历\">{{ attributeData.xl || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"学位\">{{ attributeData.xw || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"入伍工作时间\">{{ fmtDateTime(attributeData.rwgzsj) || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"任代职经历\">{{ attributeData.rdzjl || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"发表论文\">{{ attributeData.fblw || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"教龄\">{{ fmtVal(attributeData.jl) }}</el-descriptions-item>\r\n <el-descriptions-item label=\"教龄计算日期\">{{ fmtDateTime(attributeData.jljsrq) || '-' }}</el-descriptions-item>\r\n </el-descriptions>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button @click=\"attributeVisible = false\">关闭</el-button>\r\n <el-button type=\"primary\" @click=\"handleStartEditAttribute\">编辑</el-button>\r\n </div>\r\n </template>\r\n <template v-else>\r\n <el-form ref=\"attributeFormRef\" :model=\"attributeForm\" label-width=\"140px\" class=\"add-form\">\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教员编号\"><el-input v-model=\"attributeForm.jybh\" disabled /></el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"主任\">\r\n <el-radio-group v-model=\"attributeForm.zr\">\r\n <el-radio :label=\"1\">是</el-radio>\r\n <el-radio :label=\"0\">否</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"职务\"><el-input v-model=\"attributeForm.zw\" placeholder=\"选填\" /></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=\"attributeForm.zwsj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"技术职务\"><el-input v-model=\"attributeForm.jszw\" placeholder=\"选填\" /></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=\"attributeForm.jszwsj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"技术等级\"><el-input v-model=\"attributeForm.jsdj\" placeholder=\"选填\" /></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=\"attributeForm.jsdjsj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"军衔文职\"><el-input v-model=\"attributeForm.jxwz\" placeholder=\"选填\" /></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=\"attributeForm.jxwzsj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"出生时间\">\r\n <el-date-picker v-model=\"attributeForm.cssj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"学历\"><el-input v-model=\"attributeForm.xl\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"学位\"><el-input v-model=\"attributeForm.xw\" placeholder=\"选填\" /></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=\"attributeForm.rwgzsj\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教龄\"><el-input-number v-model=\"attributeForm.jl\" :min=\"0\" style=\"width:100%\" /></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=\"attributeForm.jljsrq\" type=\"datetime\" value-format=\"yyyy-MM-ddTHH:mm:ss\" placeholder=\"选填\" style=\"width:100%\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"任代职经历\"><el-input v-model=\"attributeForm.rdzjl\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n <el-row :gutter=\"16\">\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"发表论文\"><el-input v-model=\"attributeForm.fblw\" placeholder=\"选填\" /></el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button @click=\"handleCancelEditAttribute\">取消</el-button>\r\n <el-button type=\"primary\" :loading=\"attributeSaving\" @click=\"handleSaveAttribute\">保存</el-button>\r\n </div>\r\n </template>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n listTeacher,\r\n getTeacher,\r\n addTeacher,\r\n updateTeacher,\r\n disableTeacher,\r\n getTeacherAttribute,\r\n updateTeacherAttribute\r\n} from '@/api/teachOffice/teacher'\r\nimport { getDicts } from '@/api/system/dict/data'\r\n\r\nexport default {\r\n name: 'Teacher',\r\n data() {\r\n return {\r\n // 查询条件(仅后端 JYBMapper.xml 支持的字段:jyxm 模糊 / jysdh 等值 / zc 模糊 / jylb 等值)\r\n searchForm: { jyxm: '', jysdh: '', zc: '', jylb: '' },\r\n\r\n // 列表\r\n loading: false,\r\n tableData: [],\r\n selectedRows: [],\r\n pagination: { pageNum: 1, pageSize: 20, total: 0 },\r\n\r\n // 新建\r\n addDialogVisible: false,\r\n addSaving: false,\r\n addForm: this.createEmptyAddForm(),\r\n addRules: {\r\n 'teacher.jyxm': [{ required: true, message: '请输入教员姓名', trigger: 'blur' }],\r\n \r\n 'teacher.xh': [{ required: true, message: '请输入序号', trigger: 'blur' }],\r\n 'teacher.zyjszwdj': [{ required: true, message: '请输入专业技术职务等级', trigger: 'blur' }],\r\n 'teacher.xslx': [{ required: true, message: '请选择虚实类型', trigger: 'change' }],\r\n 'teacher.jylb': [{ required: true, message: '请选择教员类别', trigger: 'change' }],\r\n 'teacher.zzlb': [{ required: true, message: '请选择在职类别', trigger: 'change' }],\r\n 'teacher.ewyxkbs': [{ required: true, message: '请输入额外允许开班数', trigger: 'change' }],\r\n 'teacher.dslb': [{ required: true, message: '请选择导师类别', trigger: 'change' }],\r\n 'teacher.xy': [{ required: true, message: '请输入学缘', trigger: 'blur' }],\r\n 'teacher.sfzh': [{ required: true, message: '请输入身份证号', trigger: 'blur' }],\r\n 'teacher.xb': [{ required: true, message: '请选择性别', trigger: 'change' }],\r\n 'teacher.wxjy': [{ required: true, message: '请选择外训教员', trigger: 'change' }],\r\n 'teacher.wxyy': [{ required: true, message: '请选择外训译员', trigger: 'change' }],\r\n 'teacher.zzljy': [{ required: true, message: '请选择政治类教员', trigger: 'change' }]\r\n },\r\n\r\n // 编辑\r\n editDialogVisible: false,\r\n editLoading: false,\r\n editSaving: false,\r\n editForm: {},\r\n editRules: {\r\n jyxm: [{ required: true, message: '请输入教员姓名', trigger: 'blur' }],\r\n jysdh: [{ required: true, message: '请输入教研室代号', trigger: 'blur' }],\r\n xb: [{ required: true, message: '请选择性别', trigger: 'change' }],\r\n sfzh: [{ required: true, message: '请输入身份证号', trigger: 'blur' }],\r\n zyjszwdj: [{ required: true, message: '请输入专业技术职务等级', trigger: 'blur' }],\r\n xslx: [{ required: true, message: '请选择虚实类型', trigger: 'change' }],\r\n jylb: [{ required: true, message: '请输入教员类别', trigger: 'blur' }],\r\n zzlb: [{ required: true, message: '请输入在职类别', trigger: 'blur' }],\r\n dslb: [{ required: true, message: '请输入导师类别', trigger: 'blur' }],\r\n xy: [{ required: true, message: '请输入学缘', trigger: 'blur' }],\r\n ewyxkbs: [{ required: true, message: '请输入额外允许开班数', trigger: 'change' }],\r\n wxjy: [{ required: true, message: '请选择外训教员', trigger: 'change' }],\r\n wxyy: [{ required: true, message: '请选择外训译员', trigger: 'change' }],\r\n zzljy: [{ required: true, message: '请选择政治类教员', trigger: 'change' }]\r\n },\r\n\r\n // 教员属性\r\n attributeVisible: false,\r\n attributeMode: 'view',\r\n attributeData: {},\r\n attributeForm: {},\r\n attributeLoading: false,\r\n attributeSaving: false,\r\n attributeJybh: '',\r\n // 字典选项\r\n zyjszwdjOptions: [],\r\n jylbOptions: [],\r\n zzlbOptions: [],\r\n dslbOptions: []\r\n }\r\n },\r\n mounted() {\r\n this.fetchList()\r\n this.loadDicts()\r\n },\r\n methods: {\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\r\n /** 空值显示为 '-' */\r\n fmtVal(val) {\r\n return (val === null || val === undefined || val === '') ? '-' : val\r\n },\r\n\r\n /** 性别:1-男 0-女(与后端 TeacherListVO 注释及学员页约定一致) */\r\n fmtGender(val) {\r\n if (val === null || val === undefined || val === '') return '-'\r\n return Number(val) === 1 ? '男' : Number(val) === 0 ? '女' : String(val)\r\n },\r\n\r\n /** 虚实类型:1-实教 0-非实教(项目约定 1-实 0-虚) */\r\n fmtXslx(val) {\r\n if (val === null || val === undefined || val === '') return '-'\r\n return Number(val) === 1 ? '实教' : Number(val) === 0 ? '非实教' : String(val)\r\n },\r\n\r\n /** 0/1 标志位格式化 */\r\n fmtFlag(val, yesLabel, noLabel) {\r\n if (val === null || val === undefined || val === '') return '-'\r\n return Number(val) === 1 ? yesLabel : Number(val) === 0 ? noLabel : String(val)\r\n },\r\n\r\n /** 移除空值 */\r\n \r\n\r\n loadDicts() {\r\n getDicts('teacher_zyjszwdj').then(res => { this.zyjszwdjOptions = res.data || [] }).catch(() => {})\r\n getDicts('teacher_jylb').then(res => { this.jylbOptions = res.data || [] }).catch(() => {})\r\n getDicts('teacher_zzlb').then(res => { this.zzlbOptions = res.data || [] }).catch(() => {})\r\n getDicts('teacher_dslb').then(res => { this.dslbOptions = res.data || [] }).catch(() => {})\r\n },\r\n\r\n cleanPayload(obj) {\r\n const payload = {}\r\n Object.keys(obj).forEach(key => {\r\n const value = obj[key]\r\n if (value !== '' && value !== null && value !== undefined) {\r\n payload[key] = value\r\n }\r\n })\r\n return payload\r\n },\r\n\r\n /** 创建空白新增表单 */\r\n createEmptyAddForm() {\r\n return {\r\n teacher: {\r\n jybh: '', jyxm: '', jysdh: '', xh: '', zyjszwdj: '', zyjszwdjsj: '',\r\n xslx: 1, jylb: '', zzlb: '', dslb: '', xy: '', sfzh: '', xb: 1,\r\n wxjy: 0, wxyy: 0, zzljy: 0, ewyxkbs: 0, zc: '', sjh: '', kh: '', py: '',\r\n zcsj: '', bz: ''\r\n },\r\n attributes: {\r\n xl: '', xw: '', jl: 0, jljsrq: '', zr: 0, zw: '', zwsj: '', jszw: '',\r\n jszwsj: '', jsdj: '', jsdjsj: '', jxwz: '', jxwzsj: '', cssj: '',\r\n rwgzsj: '', rdzjl: '', fblw: ''\r\n }\r\n }\r\n },\r\n\r\n // ==================== 列表 ====================\r\n buildQuery() {\r\n const params = {}\r\n ;['jyxm', 'jysdh', 'zc', 'jylb'].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 return params\r\n },\r\n\r\n fetchList() {\r\n this.loading = true\r\n const params = {\r\n pageNum: this.pagination.pageNum,\r\n pageSize: this.pagination.pageSize,\r\n ...this.buildQuery()\r\n }\r\n listTeacher(params).then(response => {\r\n const data = response.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 handleSearch() {\r\n this.pagination.pageNum = 1\r\n this.fetchList()\r\n },\r\n\r\n handleReset() {\r\n this.searchForm = { jyxm: '', jysdh: '', zc: '', jylb: '' }\r\n this.pagination.pageNum = 1\r\n this.fetchList()\r\n },\r\n\r\n handleSizeChange(size) {\r\n this.pagination.pageSize = size\r\n this.pagination.pageNum = 1\r\n this.fetchList()\r\n },\r\n\r\n handleCurrentChange(page) {\r\n this.pagination.pageNum = page\r\n this.fetchList()\r\n },\r\n\r\n handleSelectionChange(rows) {\r\n this.selectedRows = rows\r\n },\r\n\r\n // ==================== 无后端接口的操作 ====================\r\n handleDeleteSelected() {\r\n this.$message.info('后端暂未提供该接口')\r\n },\r\n\r\n handleImport() {\r\n this.$message.info('后端暂未提供该接口')\r\n },\r\n\r\n handleDownloadTemplate() {\r\n this.$message.info('后端暂未提供该接口')\r\n },\r\n\r\n // ==================== 新增 ====================\r\n handleNew() {\r\n this.addForm = this.createEmptyAddForm()\r\n this.$nextTick(() => {\r\n this.$refs.addFormRef && this.$refs.addFormRef.clearValidate()\r\n })\r\n this.addDialogVisible = true\r\n },\r\n\r\n handleAddConfirm() {\r\n this.$refs.addFormRef.validate(valid => {\r\n if (!valid) return\r\n const dto = {\r\n teacher: this.buildTeacherPayload(this.addForm.teacher),\r\n attributes: this.buildAttributePayload(this.addForm.attributes)\r\n }\r\n this.addSaving = true\r\n addTeacher(dto).then(() => {\r\n this.$message.success('新增成功')\r\n this.addDialogVisible = false\r\n this.fetchList()\r\n }).catch(() => {\r\n }).finally(() => {\r\n this.addSaving = false\r\n })\r\n })\r\n },\r\n\r\n /** 组装 JYB 请求体(lzzt 不传,后端自动置 0) */\r\n buildTeacherPayload(t) {\r\n const payload = this.cleanPayload({\r\n jybh: t.jybh,\r\n jyxm: t.jyxm,\r\n jysdh: t.jysdh,\r\n bz: t.bz,\r\n zc: t.zc,\r\n xh: t.xh,\r\n zyjszwdj: t.zyjszwdj,\r\n xslx: t.xslx,\r\n jylb: t.jylb,\r\n kh: t.kh,\r\n py: t.py,\r\n zzlb: t.zzlb,\r\n ewyxkbs: t.ewyxkbs,\r\n dslb: t.dslb,\r\n xy: t.xy,\r\n sfzh: t.sfzh,\r\n xb: t.xb,\r\n wxjy: t.wxjy,\r\n wxyy: t.wxyy,\r\n zzljy: t.zzljy,\r\n sjh: t.sjh\r\n })\r\n // 整数/标志字段转 Number\r\n ;['xb', 'xslx', 'ewyxkbs', 'wxjy', 'wxyy', 'zzljy'].forEach(key => {\r\n if (payload[key] !== undefined) payload[key] = Number(payload[key])\r\n })\r\n // 时间字段已由 date-picker 输出 ISO 格式\r\n ;['zyjszwdjsj', 'zcsj'].forEach(key => {\r\n if (t[key]) payload[key] = t[key]\r\n })\r\n return payload\r\n },\r\n\r\n /** 组装 JYSX 请求体(仅非空字段) */\r\n buildAttributePayload(a) {\r\n const payload = this.cleanPayload({\r\n xl: a.xl,\r\n xw: a.xw,\r\n jl: a.jl,\r\n jljsrq: a.jljsrq,\r\n zr: a.zr,\r\n zw: a.zw,\r\n zwsj: a.zwsj,\r\n jszw: a.jszw,\r\n jszwsj: a.jszwsj,\r\n jsdj: a.jsdj,\r\n jsdjsj: a.jsdjsj,\r\n jxwz: a.jxwz,\r\n jxwzsj: a.jxwzsj,\r\n cssj: a.cssj,\r\n rwgzsj: a.rwgzsj,\r\n rdzjl: a.rdzjl,\r\n fblw: a.fblw\r\n })\r\n if (payload.zr !== undefined) payload.zr = Number(payload.zr)\r\n if (payload.jl !== undefined) payload.jl = Number(payload.jl)\r\n return payload\r\n },\r\n\r\n // ==================== 编辑 ====================\r\n handleEdit(row) {\r\n this.editDialogVisible = true\r\n this.editLoading = true\r\n getTeacher(row.jybh).then(response => {\r\n const data = response.data || {}\r\n const form = this.createEmptyAddForm().teacher\r\n Object.keys(form).forEach(key => {\r\n if (data[key] !== undefined && data[key] !== null) form[key] = data[key]\r\n })\r\n this.editForm = form\r\n this.editLoading = false\r\n }).catch(() => {\r\n this.editDialogVisible = false\r\n this.editLoading = false\r\n })\r\n },\r\n\r\n handleEditConfirm() {\r\n this.$refs.editFormRef.validate(valid => {\r\n if (!valid) return\r\n if (!this.editForm.jybh) {\r\n this.$message.warning('缺少教员编号,无法保存')\r\n return\r\n }\r\n const payload = this.buildTeacherPayload(this.editForm)\r\n payload.jybh = this.editForm.jybh\r\n this.editSaving = true\r\n updateTeacher(payload).then(() => {\r\n this.$message.success('保存成功')\r\n this.editDialogVisible = false\r\n this.fetchList()\r\n }).catch(() => {\r\n }).finally(() => {\r\n this.editSaving = false\r\n })\r\n })\r\n },\r\n\r\n // ==================== 离职(逻辑删除) ====================\r\n handleDisable(row) {\r\n if (!row.jybh) {\r\n this.$message.warning('当前行缺少教员编号')\r\n return\r\n }\r\n this.$confirm(`确定要办理教员「${row.jyxm || row.jybh}」离职吗?`, '系统提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n disableTeacher(row.jybh).then(() => {\r\n this.$message.success('已办理离职')\r\n this.fetchList()\r\n }).catch(() => {})\r\n }).catch(() => {})\r\n },\r\n\r\n // ==================== 教员属性 ====================\r\n handleViewAttribute(row) {\r\n this.attributeMode = 'view'\r\n this.attributeJybh = row.jybh\r\n this.attributeData = {}\r\n this.attributeVisible = true\r\n this.attributeLoading = true\r\n getTeacherAttribute(row.jybh).then(response => {\r\n this.attributeData = response.data || {}\r\n this.attributeLoading = false\r\n }).catch(() => {\r\n this.attributeVisible = false\r\n this.attributeLoading = false\r\n })\r\n },\r\n\r\n handleStartEditAttribute() {\r\n this.attributeForm = this.createEmptyAddForm().attributes\r\n Object.keys(this.attributeForm).forEach(key => {\r\n if (this.attributeData[key] !== undefined && this.attributeData[key] !== null) {\r\n this.attributeForm[key] = this.attributeData[key]\r\n }\r\n })\r\n this.attributeForm.jybh = this.attributeJybh\r\n this.attributeMode = 'edit'\r\n },\r\n\r\n handleCancelEditAttribute() {\r\n this.attributeMode = 'view'\r\n },\r\n\r\n handleSaveAttribute() {\r\n const payload = this.buildAttributePayload(this.attributeForm)\r\n payload.jybh = this.attributeJybh\r\n this.attributeSaving = true\r\n updateTeacherAttribute(payload).then(() => {\r\n this.$message.success('保存成功')\r\n this.attributeMode = 'view'\r\n this.handleViewAttribute({ jybh: this.attributeJybh })\r\n }).catch(() => {\r\n }).finally(() => {\r\n this.attributeSaving = false\r\n })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.teacher-page {\r\n .search-card {\r\n margin-bottom: 16px;\r\n\r\n .search-form {\r\n .el-form-item {\r\n margin-bottom: 0;\r\n padding: 10px 12px;\r\n }\r\n }\r\n\r\n .search-actions {\r\n display: flex;\r\n justify-content: flex-end;\r\n padding: 12px;\r\n border-top: 1px solid #ebeef5;\r\n }\r\n }\r\n\r\n .list-title {\r\n font-size: 16px;\r\n font-weight: 600;\r\n color: #303133;\r\n margin-bottom: 12px;\r\n }\r\n\r\n .list-toolbar {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 12px;\r\n flex-wrap: wrap;\r\n margin-bottom: 16px;\r\n\r\n .left-group,\r\n .right-group {\r\n display: flex;\r\n align-items: center;\r\n gap: 12px;\r\n flex-wrap: wrap;\r\n }\r\n }\r\n\r\n .table-card {\r\n margin-bottom: 16px;\r\n\r\n ::v-deep(.el-table) {\r\n width: 100%;\r\n }\r\n\r\n .pagination-wrap {\r\n display: flex;\r\n justify-content: flex-end;\r\n margin-top: 16px;\r\n }\r\n }\r\n\r\n .danger-text {\r\n color: #f56c6c;\r\n }\r\n}\r\n</style>\r\n\r\n\r\n"],"mappings":"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","ignoreList":[]}]}