ea5c21fb2ce268e937ddde17088fb700.json 55 KB

1
  1. {"remainingRequest":"E:\\item\\newItem\\admin\\node_modules\\babel-loader\\lib\\index.js!E:\\item\\newItem\\admin\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\item\\newItem\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\item\\newItem\\admin\\node_modules\\iview-loader\\index.js??ref--0-2!E:\\item\\newItem\\admin\\src\\pages\\system\\onlineUpgrade\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\newItem\\admin\\src\\pages\\system\\onlineUpgrade\\index.vue","mtime":1677828270250},{"path":"E:\\item\\newItem\\admin\\babel.config.js","mtime":1677828270071},{"path":"E:\\item\\newItem\\admin\\.babelrc","mtime":1677828270070},{"path":"E:\\item\\newItem\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\newItem\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\item\\newItem\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\newItem\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000},{"path":"E:\\item\\newItem\\admin\\node_modules\\iview-loader\\index.js","mtime":1570440814000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJFOi9pdGVtL25ld0l0ZW0vYWRtaW4vbm9kZV9tb2R1bGVzL0B2dWUvYmFiZWwtcHJlc2V0LWFwcC9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXkuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRTovaXRlbS9uZXdJdGVtL2FkbWluL25vZGVfbW9kdWxlcy9AdnVlL2JhYmVsLXByZXNldC1hcHAvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL2FzeW5jVG9HZW5lcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnJlcGxhY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLnVybC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi51cmwtc2VhcmNoLXBhcmFtcy5qcyI7CmltcG9ydCAicmVnZW5lcmF0b3ItcnVudGltZS9ydW50aW1lLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IHsgdXBncmFkZUxpc3RBcGksIHVwZ3JhZGVQcm9ncmVzc0FwaSwgdXBncmFkZUFncmVlbWVudEFwaSwgdXBncmFkZVN0YXR1c0FwaSwgdXBncmFkZUxvZ0xpc3RBcGksIHVwZ3JhZGVhYmxlTGlzdEFwaSwgZG93bmxvYWRBcGkgfSBmcm9tICdAL2FwaS9zeXN0ZW0nOwppbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnOwppbXBvcnQgeyBBY2NvdW50TG9nb3V0IH0gZnJvbSAnQC9hcGkvYWNjb3VudCc7CmltcG9ydCB7IGdldENvb2tpZXMsIHJlbW92ZUNvb2tpZXMgfSBmcm9tICdAL2xpYnMvdXRpbCc7CmltcG9ydCBTZXR0aW5nIGZyb20gJ0Avc2V0dGluZyc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnc3lzdGVtVXBncmFkZWNsaWVudCcsCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIFBhbmVsOiAnMScsCiAgICAgIGN1cnJlbnRUYWI6ICcxJywKICAgICAgZGVjbGFyYXRpb246IGZhbHNlLAogICAgICB1cGRhdGVNb2RhbDogZmFsc2UsCiAgICAgIG1vZGFsX2xvYWRpbmc6IGZhbHNlLAogICAgICBwZXJjZW50OiAwLAogICAgICBwYXJhbXM6IFtdLAogICAgICBhcnI6IFtdLAogICAgICBkeW5hbWljOiBmYWxzZSwKICAgICAgc3RhdHVzOiBmYWxzZSwKICAgICAgdmVyc2lvbjogJycsCiAgICAgIGZvcmNlVmVyc2lvbjogJycsCiAgICAgIGhlYWRlckxpc3Q6IFt7CiAgICAgICAgbGFiZWw6ICfns7vnu5/ljYfnuqcnLAogICAgICAgIHZhbHVlOiAxCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+WNh+e6p+iusOW9lScsCiAgICAgICAgdmFsdWU6IDIKICAgICAgfV0sCiAgICAgIHVwZ3JhZGVMaXN0OiBbXSwKICAgICAgdXBncmFkZUxvZ0xpc3Q6IFtdLAogICAgICB1cGdyYWRlYWJsZUxpc3Q6IFtdLAogICAgICB1cGdyYWRlUHJvZ3Jlc3M6IHsKICAgICAgICBzcGVlZDogMAogICAgICB9LAogICAgICB1cGdyYWRlQWdyZWVtZW50OiBbXSwKICAgICAgdXBncmFkZVN0YXR1czoge30sCiAgICAgIGRvd25sb2FkU3RhdHVzOiBudWxsLAogICAgICBwYWdlOiAxLAogICAgICBsaW1pdDogMTUsCiAgICAgIC8vIOWumuaXtuWZqAogICAgICB0aW1lcjogbnVsbCwKICAgICAgcGFyYW1zX2tleTogdW5kZWZpbmVkLAogICAgICBuZXdLZXk6IG51bGwsCiAgICAgIHNlcnZpb25TdGF0dXM6IGZhbHNlLAogICAgICBjb3VudDogMAogICAgfTsKICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7Ly8gdGhpcy5nZXRVcGdyYWRlTGlzdCgpOwogICAgLy8gdGhpcy5nZXRVcGdyYWRlTG9nTGlzdCgpOwogICAgLy8gdGhpcy5nZXR1cGdyYWRlYWJsZUxpc3QoKTsKICAgIC8vIGlmICh0aGlzLiRyb3V0ZS5wYXJhbXMuaXRlbXMpIHsKICAgIC8vICAgdGhpcy5nZXRVcGdyYWRlQWdyZWVtZW50KCk7CiAgICAvLyB9CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKCiAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoIC8qI19fUFVSRV9fKi9yZWdlbmVyYXRvclJ1bnRpbWUubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkgewogICAgICByZXR1cm4gcmVnZW5lcmF0b3JSdW50aW1lLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX3RoaXMuZ2V0VXBncmFkZVN0YXR1cygpOwoKICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXMuZ2V0VXBncmFkZUxpc3QoKTsKCiAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gNTsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXMuZ2V0dXBncmFkZWFibGVMaXN0KCk7CgogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgICAgaWYgKF90aGlzLiRzdG9yZS5zdGF0ZS51cGdyYWRlLnRvZ2dsZVN0YXR1cykgewogICAgICAgICAgICAgICAgX3RoaXMuc2VydmlvblN0YXR1cyA9IHRydWU7CgogICAgICAgICAgICAgICAgX3RoaXMuZ2V0VXBncmFkZUFncmVlbWVudCgpOwogICAgICAgICAgICAgIH0gLy8gdGhpcy5jb21wYXJlKCk7CgoKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9LCBfY2FsbGVlKTsKICAgIH0pKSgpOwogIH0sCiAgd2F0Y2g6IHsKICAgICd1cGdyYWRlUHJvZ3Jlc3Muc3BlZWQnOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIobmV3VmFsLCBvbGRWYWwpIHsKICAgICAgICBpZiAobmV3VmFsID09PSAnMTAwLjAnKSB7CiAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpOwogICAgICAgIH0KICAgICAgfQogICAgfSAvLyAndGhpcy5kb3dubG9hZFN0YXR1cyc6IHsKICAgIC8vICAgaGFuZGxlcihuZXdWYWwsIG9sZFZhbCkgewogICAgLy8gICAgIGlmIChuZXdWYWwgPSAnMjAwJykgewogICAgLy8gICAgICAgdGhpcy51cGRhdGVNb2RhbCA9IGZhbHNlOwogICAgLy8gICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTsKICAgIC8vICAgICB9CiAgICAvLyAgIH0KICAgIC8vIH0KCiAgfSwKICBtZXRob2RzOiB7CiAgICBoYW5kbGVSZWFjaEJvdHRvbTogZnVuY3Rpb24gaGFuZGxlUmVhY2hCb3R0b20oKSB7CiAgICAgIGlmICh0aGlzLmNvdW50ID09PSB0aGlzLnVwZ3JhZGVMb2dMaXN0Lmxlbmd0aCkgewogICAgICAgIHRoaXMuJE1lc3NhZ2Uud2FybmluZygn5pqC5peg5pu05aSa5Y2H57qn6K6w5b2VJyk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5nZXRVcGdyYWRlTG9nTGlzdCgpOwogICAgICB9CiAgICB9LAogICAgaGFuZGxlQ2xpY2s6IGZ1bmN0aW9uIGhhbmRsZUNsaWNrKHRhYiwgZXZlbnQpIHsKICAgICAgY29uc29sZS5sb2codGFiLCBldmVudCk7CiAgICAgIHRoaXMucGFnZSA9IDE7CgogICAgICBpZiAodGFiID09IDEpIHsKICAgICAgICB0aGlzLmdldHVwZ3JhZGVhYmxlTGlzdCgpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMudXBncmFkZUxvZ0xpc3QgPSBbXTsKICAgICAgICB0aGlzLmdldFVwZ3JhZGVMb2dMaXN0KCk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDljYfnuqfliJfooagKICAgIGdldFVwZ3JhZGVMaXN0OiBmdW5jdGlvbiBnZXRVcGdyYWRlTGlzdCgpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoIC8qI19fUFVSRV9fKi9yZWdlbmVyYXRvclJ1bnRpbWUubWFyayhmdW5jdGlvbiBfY2FsbGVlMigpIHsKICAgICAgICB2YXIgZGF0YSwgcmVzOwogICAgICAgIHJldHVybiByZWdlbmVyYXRvclJ1bnRpbWUud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgewogICAgICAgICAgICBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgICAgICBwYWdlOiBfdGhpczIucGFnZSwKICAgICAgICAgICAgICAgICAgbGltaXQ6IF90aGlzMi5saW1pdAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMzsKICAgICAgICAgICAgICAgIHJldHVybiB1cGdyYWRlTGlzdEFwaShkYXRhKTsKCiAgICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgICAgcmVzID0gX2NvbnRleHQyLnNlbnQ7CiAgICAgICAgICAgICAgICBfdGhpczIudXBncmFkZUxpc3QgPSByZXMuZGF0YS5saXN0OwogICAgICAgICAgICAgICAgX3RoaXMyLnVwZ3JhZGVMaXN0ID0gcmVzLmRhdGEubGlzdDsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCfljYfnuqfliJfooagnLCBfdGhpczIudXBncmFkZUxpc3QpOwoKICAgICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDljYfnuqforrDlvZUKICAgIGdldFVwZ3JhZGVMb2dMaXN0OiBmdW5jdGlvbiBnZXRVcGdyYWRlTG9nTGlzdCgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CgogICAgICB2YXIgZGF0YSA9IHsKICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsCiAgICAgICAgbGltaXQ6IHRoaXMubGltaXQKICAgICAgfTsKICAgICAgdXBncmFkZUxvZ0xpc3RBcGkoZGF0YSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMzLnVwZ3JhZGVMb2dMaXN0ID0gW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShfdGhpczMudXBncmFkZUxvZ0xpc3QpLCBfdG9Db25zdW1hYmxlQXJyYXkocmVzLmRhdGEubGlzdCkpOwogICAgICAgIF90aGlzMy5jb3VudCA9IHJlcy5kYXRhLmNvdW50OwoKICAgICAgICBpZiAoX3RoaXMzLnVwZ3JhZGVMb2dMaXN0Lmxlbmd0aCA8IF90aGlzMy5jb3VudCkgewogICAgICAgICAgX3RoaXMzLnBhZ2UrKzsKICAgICAgICB9CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczMuJE1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWPr+WNh+e6p+WIl+ihqAogICAgZ2V0dXBncmFkZWFibGVMaXN0OiBmdW5jdGlvbiBnZXR1cGdyYWRlYWJsZUxpc3QoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwoKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKCAvKiNfX1BVUkVfXyovcmVnZW5lcmF0b3JSdW50aW1lLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTMoKSB7CiAgICAgICAgdmFyIHJlcywgZmlyc3RWZXIsIGRhdGE7CiAgICAgICAgcmV0dXJuIHJlZ2VuZXJhdG9yUnVudGltZS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzJChfY29udGV4dDMpIHsKICAgICAgICAgIHdoaWxlICgxKSB7CiAgICAgICAgICAgIHN3aXRjaCAoX2NvbnRleHQzLnByZXYgPSBfY29udGV4dDMubmV4dCkgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMjsKICAgICAgICAgICAgICAgIHJldHVybiB1cGdyYWRlYWJsZUxpc3RBcGkoKTsKCiAgICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgcmVzID0gX2NvbnRleHQzLnNlbnQ7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnMTExMTExJyk7CiAgICAgICAgICAgICAgICBfdGhpczQudXBncmFkZWFibGVMaXN0ID0gcmVzLmRhdGE7CiAgICAgICAgICAgICAgICBmaXJzdFZlciA9IHJlcy5kYXRhWzBdOwoKICAgICAgICAgICAgICAgIGlmIChfdGhpczQuJHN0b3JlLnN0YXRlLnVwZ3JhZGUudG9nZ2xlU3RhdHVzIHx8IF90aGlzNC51cGdyYWRlU3RhdHVzLmZvcmNlX3JlbWluZGVyKSB7CiAgICAgICAgICAgICAgICAgIGRhdGEgPSByZXMuZGF0YS5maW5kKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uZm9yY2VfcmVtaW5kZXIgPT09IDE7CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICBfdGhpczQubmV3S2V5ID0gZGF0YS5wYWNrYWdlX2tleTsKICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2RhdGEnLCBkYXRhKTsKICAgICAgICAgICAgICAgICAgX3RoaXM0LmZvcmNlVmVyc2lvbiA9IGRhdGEuZmlyc3RfdmVyc2lvbiArICcuJyArIGRhdGEuc2Vjb25kX3ZlcnNpb24gKyAnLicgKyBkYXRhLnRoaXJkX3ZlcnNpb24gKyAnLicgKyBkYXRhLmZvdXJ0aF92ZXJzaW9uOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgX3RoaXM0LnBhcmFtc19rZXkgPSBfdGhpczQudXBncmFkZWFibGVMaXN0WzBdLnBhY2thZ2Vfa2V5OwogICAgICAgICAgICAgICAgICBfdGhpczQuZm9yY2VWZXJzaW9uID0gZmlyc3RWZXIuZmlyc3RfdmVyc2lvbiArICcuJyArIGZpcnN0VmVyLnNlY29uZF92ZXJzaW9uICsgJy4nICsgZmlyc3RWZXIudGhpcmRfdmVyc2lvbiArICcuJyArIGZpcnN0VmVyLmZvdXJ0aF92ZXJzaW9uOwogICAgICAgICAgICAgICAgfSAvLyBhcnIuZm9yRWFjaCgoaXRlbSkgPT4gewogICAgICAgICAgICAgICAgLy8gICB0aGlzLiRzZXQoCiAgICAgICAgICAgICAgICAvLyAgICAgaXRlbSwKICAgICAgICAgICAgICAgIC8vICAgICAnc2VydmlvbicsCiAgICAgICAgICAgICAgICAvLyAgICAgaXRlbS5maXJzdF92ZXJzaW9uICsgJy4nICsgaXRlbS5zZWNvbmRfdmVyc2lvbiArICcuJyArIGl0ZW0udGhpcmRfdmVyc2lvbiArICcuJyArIGl0ZW0uZm91cnRoX3ZlcnNpb24sCiAgICAgICAgICAgICAgICAvLyAgICk7CiAgICAgICAgICAgICAgICAvLyB9KTsKICAgICAgICAgICAgICAgIC8vIGxldCBkYXRhID0gW107CiAgICAgICAgICAgICAgICAvLyBhcnIubWFwKChlbGUpID0+IHsKICAgICAgICAgICAgICAgIC8vICAgZGF0YS5wdXNoKGVsZS5zZXJ2aW9uKTsKICAgICAgICAgICAgICAgIC8vIH0pOwogICAgICAgICAgICAgICAgLy8gLy8g54mI5pys5Y+35o6S5bqPCiAgICAgICAgICAgICAgICAvLyBmdW5jdGlvbiBzb3J0VmVyc2lvbihsaXN0KSB7CiAgICAgICAgICAgICAgICAvLyAgIHJldHVybiBsaXN0LnNvcnQoKHZlcnNpb24xLCB2ZXJzaW9uMikgPT4gewogICAgICAgICAgICAgICAgLy8gICAgIGNvbnN0IGFycjEgPSB2ZXJzaW9uMS5zcGxpdCgnLicpLm1hcCgoZSkgPT4gZSAqIDEpOwogICAgICAgICAgICAgICAgLy8gICAgIGNvbnN0IGFycjIgPSB2ZXJzaW9uMi5zcGxpdCgnLicpLm1hcCgoZSkgPT4gZSAqIDEpOwogICAgICAgICAgICAgICAgLy8gICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWF4KGFycjEubGVuZ3RoLCBhcnIyLmxlbmd0aCk7CiAgICAgICAgICAgICAgICAvLyAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgLy8gICAgICAgaWYgKChhcnIxW2ldIHx8IDApID4gKGFycjJbaV0gfHwgMCkpIHJldHVybiAxOwogICAgICAgICAgICAgICAgLy8gICAgICAgaWYgKChhcnIxW2ldIHx8IDApIDwgKGFycjJbaV0gfHwgMCkpIHJldHVybiAtMTsKICAgICAgICAgICAgICAgIC8vICAgICB9CiAgICAgICAgICAgICAgICAvLyAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICAgICAvLyAgIH0pOwogICAgICAgICAgICAgICAgLy8gfQogICAgICAgICAgICAgICAgLy8gdGhpcy5mb3JjZVZlcnNpb24gPSBkYXRhWzBdOwogICAgICAgICAgICAgICAgLy8gdGhpcy5wYXJhbXMubWFwKChpdGVtKSA9PiB7CiAgICAgICAgICAgICAgICAvLyAgIGlmIChpdGVtLnNlcnZpb24gPT0gZGF0YVtkYXRhLmxlbmd0aCAtIDFdKSB7CiAgICAgICAgICAgICAgICAvLyAgICAgdGhpcy5uZXdLZXkgPSBpdGVtLnBhY2thZ2Vfa2V5OwogICAgICAgICAgICAgICAgLy8gICB9CiAgICAgICAgICAgICAgICAvLyB9KTsKCgogICAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMyk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOS4i+i9veWNh+e6p+WMhQogICAgZ2V0ZG93bmxvYWQ6IGZ1bmN0aW9uIGdldGRvd25sb2FkKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKCiAgICAgIGNvbnNvbGUubG9nKHRoaXMubmV3S2V5KTsKICAgICAgY29uc29sZS5sb2codGhpcy4kc3RvcmUuc3RhdGUudXBncmFkZS50b2dnbGVTdGF0dXMpOwoKICAgICAgaWYgKHRoaXMuJHN0b3JlLnN0YXRlLnVwZ3JhZGUudG9nZ2xlU3RhdHVzIHx8IHRoaXMudXBncmFkZVN0YXR1cy5mb3JjZV9yZW1pbmRlcikgewogICAgICAgIHRoaXMucGFyYW1zX2tleSA9IHRoaXMubmV3S2V5OwogICAgICB9CgogICAgICBjb25zb2xlLmxvZygn5LiL6L29a2V5JywgdGhpcy5wYXJhbXNfa2V5KTsKICAgICAgZG93bmxvYWRBcGkodGhpcy5wYXJhbXNfa2V5KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBjb25zb2xlLmxvZygn5LiL6L295Y2H57qn5YyF6LCD55So5oiQ5YqfJywgcmVzLnN0YXR1cyk7IC8vIHRoaXMuZG93bmxvYWRTdGF0dXMgPSByZXMuc3RhdHVzOwoKICAgICAgICBpZiAocmVzLnN0YXR1cyA9PSAyMDApIHsKICAgICAgICAgIGlmIChfdGhpczUudXBncmFkZVByb2dyZXNzLnNwZWVkICE9PSAnMTAwLjAnKSB7CiAgICAgICAgICAgIF90aGlzNS50aW1lciA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAgIF90aGlzNS5nZXRVcGdyYWRlUHJvZ3Jlc3MoKTsKICAgICAgICAgICAgICB9LCAwKTsKICAgICAgICAgICAgfSwgNTAwMCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjbGVhckludGVydmFsKF90aGlzNS50aW1lcik7CiAgICAgICAgICAgIF90aGlzNS51cGRhdGVNb2RhbCA9IGZhbHNlOwogICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBfdGhpczUudXBkYXRlTW9kYWwgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICBjbGVhckludGVydmFsKF90aGlzNS50aW1lcik7CgogICAgICAgIF90aGlzNS4kTWVzc2FnZS5lcnJvcign5LiL6L2957uI5q2iJyk7CgogICAgICAgIF90aGlzNS51cGRhdGVNb2RhbCA9IGZhbHNlOwogICAgICB9KTsKICAgIH0sCiAgICBkb3dubG9hZEZpbGU6IGZ1bmN0aW9uIGRvd25sb2FkRmlsZSh1cmwpIHsKICAgICAgd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJyk7CiAgICB9LAogICAgLy8g5Y2H57qn6L+b5bqmCiAgICBnZXRVcGdyYWRlUHJvZ3Jlc3M6IGZ1bmN0aW9uIGdldFVwZ3JhZGVQcm9ncmVzcygpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CgogICAgICB1cGdyYWRlUHJvZ3Jlc3NBcGkoKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczYudXBncmFkZVByb2dyZXNzID0gcmVzLmRhdGE7CiAgICAgICAgX3RoaXM2LmRvd25sb2FkU3RhdHVzID0gcmVzLnN0YXR1czsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIGNsZWFySW50ZXJ2YWwoX3RoaXM2LnRpbWVyKTsKCiAgICAgICAgX3RoaXM2LiRNZXNzYWdlLmVycm9yKHJlcy5tc2cpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDljYfnuqfljY/orq4KICAgIGdldFVwZ3JhZGVBZ3JlZW1lbnQ6IGZ1bmN0aW9uIGdldFVwZ3JhZGVBZ3JlZW1lbnQoKSB7CiAgICAgIHZhciBfdGhpczcgPSB0aGlzOwoKICAgICAgdXBncmFkZUFncmVlbWVudEFwaSgpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzNy51cGdyYWRlQWdyZWVtZW50ID0gcmVzLmRhdGE7CiAgICAgICAgX3RoaXM3LmRlY2xhcmF0aW9uID0gdHJ1ZTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKHJlcykgewogICAgICAgIF90aGlzNy4kTWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5Y2H57qn54q25oCBCiAgICBnZXRVcGdyYWRlU3RhdHVzOiBmdW5jdGlvbiBnZXRVcGdyYWRlU3RhdHVzKCkgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKCiAgICAgIHVwZ3JhZGVTdGF0dXNBcGkoKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczgudXBncmFkZVN0YXR1cyA9IHJlcy5kYXRhOwoKICAgICAgICBpZiAocmVzLmRhdGEuZm9yY2VfcmVtaW5kZXIpIHsKICAgICAgICAgIF90aGlzOC5kZWNsYXJhdGlvbiA9IHRydWU7CgogICAgICAgICAgX3RoaXM4LmdldFVwZ3JhZGVBZ3JlZW1lbnQoKTsKICAgICAgICB9CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBfdGhpczguJE1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOeri+WNs+abtOaWsAogICAgdXBkYXRlOiBmdW5jdGlvbiB1cGRhdGUoaXRlbSkgewogICAgICB0aGlzLmRlY2xhcmF0aW9uID0gdHJ1ZTsKCiAgICAgIGlmIChpdGVtICYmIHRoaXMuJHN0b3JlLnN0YXRlLnVwZ3JhZGUudG9nZ2xlU3RhdHVzID09IGZhbHNlKSB7CiAgICAgICAgdGhpcy5wYXJhbXNfa2V5ID0gaXRlbS5wYXJhbXNfa2V5OwogICAgICB9IC8vIHRoaXMudmVyc2lvbiA9IGl0ZW0uZmlyc3RfdmVyc2lvbiArICIuIiArIGl0ZW0uc2Vjb25kX3ZlcnNpb24gKyAiLiIgKyBpdGVtLnRoaXJkX3ZlcnNpb24gKyAiLiIgKyBpdGVtLmZvdXJ0aF92ZXJzaW9uOwoKCiAgICAgIHRoaXMuZ2V0VXBncmFkZUFncmVlbWVudCgpOwogICAgfSwKICAgIC8vIOavlOi+g+ebuOWQjOeJiOacrOWPtwogICAgY29tcGFyZTogZnVuY3Rpb24gY29tcGFyZSgpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CgogICAgICB0aGlzLnVwZ3JhZGVMaXN0Lm1hcChmdW5jdGlvbiAoZWxlLCBpKSB7CiAgICAgICAgX3RoaXM5LiRzZXQoX3RoaXM5LnVwZ3JhZGVMaXN0W2ldLCAnbW4nLCBlbGUuZmlyc3RfdmVyc2lvbiArIGVsZS5zZWNvbmRfdmVyc2lvbiArIGVsZS50aGlyZF92ZXJzaW9uICsgZWxlLmZvdXJ0aF92ZXJzaW9uKTsKCiAgICAgICAgX3RoaXM5LnVwZ3JhZGVhYmxlTGlzdC5tYXAoZnVuY3Rpb24gKGl0ZW0sIGkpIHsKICAgICAgICAgIF90aGlzOS4kc2V0KF90aGlzOS51cGdyYWRlYWJsZUxpc3RbaV0sICdtbicsIGl0ZW0uZmlyc3RfdmVyc2lvbiArIGl0ZW0uc2Vjb25kX3ZlcnNpb24gKyBpdGVtLnRoaXJkX3ZlcnNpb24gKyBpdGVtLmZvdXJ0aF92ZXJzaW9uKTsKICAgICAgICB9KTsKCiAgICAgICAgaWYgKF90aGlzOS51cGdyYWRlTGlzdFtpXS5tbiA9PSBfdGhpczkudXBncmFkZWFibGVMaXN0W2ldLm1uKSB7CiAgICAgICAgICBfdGhpczkuJHNldChfdGhpczkudXBncmFkZUxpc3RbaV0sICdpbmRleG4nLCB0cnVlKTsKCiAgICAgICAgICBfdGhpczkuJHNldChfdGhpczkudXBncmFkZUxpc3RbaV0sICdwYXJhbXNfa2V5JywgX3RoaXM5LnVwZ3JhZGVhYmxlTGlzdFtpXS5wYWNrYWdlX2tleSk7CgogICAgICAgICAgX3RoaXM5LiRzZXQoX3RoaXM5LnVwZ3JhZGVhYmxlTGlzdFtpXSwgJ2luZGV4bicsIHRydWUpOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLy8g5ZCM5oSPCiAgICBhZ3JlZTogZnVuY3Rpb24gYWdyZWUoKSB7CiAgICAgIHRoaXMuZGVjbGFyYXRpb24gPSBmYWxzZTsKICAgICAgdGhpcy51cGRhdGVNb2RhbCA9IHRydWU7CiAgICAgIHRoaXMuZ2V0ZG93bmxvYWQoKTsKICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KCJ1cGdyYWRlL1RPR0dMRV9TVEFUVVMiLCBmYWxzZSk7CiAgICB9LAogICAgcmVqZWN0OiBmdW5jdGlvbiByZWplY3QoKSB7CiAgICAgIHRoaXMuZGVjbGFyYXRpb24gPSBmYWxzZTsKICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KCJ1cGdyYWRlL1RPR0dMRV9TVEFUVVMiLCBmYWxzZSk7CiAgICB9LAogICAgYmFjazogZnVuY3Rpb24gYmFjaygpIHsKICAgICAgdmFyIF90aGlzMTAgPSB0aGlzOwoKICAgICAgdGhpcy51cGRhdGVNb2RhbCA9IGZhbHNlOyAvLyB0aGlzLmdldFVwZ3JhZGVMaXN0KCk7CgogICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpOwogICAgICBBY2NvdW50TG9nb3V0KCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgX3RoaXMxMC4kTWVzc2FnZS5zdWNjZXNzKCfmgqjlt7LmiJDlip/pgIDlh7onKTsKCiAgICAgICAgX3RoaXMxMC4kcm91dGVyLnJlcGxhY2UoJy9hZG1pbi9sb2dpbicpOwoKICAgICAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTsKICAgICAgICByZW1vdmVDb29raWVzKCd0b2tlbicpOwogICAgICAgIHJlbW92ZUNvb2tpZXMoJ2V4cGlyZXNfdGltZScpOwogICAgICAgIHJlbW92ZUNvb2tpZXMoJ3V1aWQnKTsgLy8gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpCiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChyZXMpIHt9KTsKICAgIH0sCiAgICBiYWNrU3VyZTogZnVuY3Rpb24gYmFja1N1cmUoKSB7CiAgICAgIHRoaXMudXBkYXRlTW9kYWwgPSBmYWxzZTsKICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTsKICAgIH0sCiAgICBjYW5jZWw6IGZ1bmN0aW9uIGNhbmNlbCgpIHsKICAgICAgdGhpcy51cGRhdGVNb2RhbCA9IGZhbHNlOwogICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpOwogICAgfSwKICAgIC8vIOWvvOWHuuWkh+S7veaWh+S7tgogICAgZXhwb3J0czogZnVuY3Rpb24gZXhwb3J0cyhpdGVtKSB7CiAgICAgIHZhciBuYW1lID0gaXRlbS50aXRsZSArICd2JyArIGl0ZW0uZmlyc3RfdmVyc2lvbiArICcuJyArIGl0ZW0uc2Vjb25kX3ZlcnNpb24gKyAnLicgKyBpdGVtLnRoaXJkX3ZlcnNpb24gKyAnLicgKyBpdGVtLmZvdXJ0aF92ZXJzaW9uICsgJy4nICsgaXRlbS51cGdyYWRlX3RpbWU7CiAgICAgIHZhciBocmVmID0gU2V0dGluZy5hcGlCYXNlVVJMICsgIi9zeXN0ZW0vdXBncmFkZV9leHBvcnQvIi5jb25jYXQoaXRlbS5pZCwgIi9maWxlIik7CiAgICAgIGF4aW9zKHsKICAgICAgICBtZXRob2Q6ICdnZXQnLAogICAgICAgIHVybDogaHJlZiwKICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJywKICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICAnQXV0aG9yaS16YXRpb24nOiAnQmVhcmVyICcgKyBnZXRDb29raWVzKCd0b2tlbicpCiAgICAgICAgfQogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtyZXMuZGF0YV0sIHsKICAgICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07Y2hhcnNldD1VVEYtOCcKICAgICAgICB9KTsKICAgICAgICB2YXIgZG93bmxvYWRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOyAvLyDkuIvovb3nmoTmlofku7blkI0KCiAgICAgICAgZG93bmxvYWRFbGVtZW50LmRvd25sb2FkID0gIiIuY29uY2F0KG5hbWUsICIuemlwIik7IC8vIOWIm+W7uuS4i+i9veeahOmTvuaOpQoKICAgICAgICBkb3dubG9hZEVsZW1lbnQuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOyAvLyDngrnlh7vkuIvovb0KCiAgICAgICAgZG93bmxvYWRFbGVtZW50LmNsaWNrKCk7CiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb3dubG9hZEVsZW1lbnQpOyAvLyDkuIvovb3lrozmiJDnp7vpmaTlhYPntKAKCiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZEVsZW1lbnQpOyAvLyDph4rmlL7mjolibG9i5a+56LGhCgogICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKGRvd25sb2FkRWxlbWVudC5ocmVmKTsKICAgICAgfSk7CiAgICB9LAogICAgaGFuZGxlRG93bmxvYWQ6IGZ1bmN0aW9uIGhhbmRsZURvd25sb2FkKGl0ZW0pIHsKICAgICAgdmFyIG5hbWUgPSBpdGVtLnRpdGxlICsgJ3YnICsgaXRlbS5maXJzdF92ZXJzaW9uICsgJy4nICsgaXRlbS5zZWNvbmRfdmVyc2lvbiArICcuJyArIGl0ZW0udGhpcmRfdmVyc2lvbiArICcuJyArIGl0ZW0uZm91cnRoX3ZlcnNpb24gKyAnLicgKyBpdGVtLnVwZ3JhZGVfdGltZTsKICAgICAgdmFyIGhyZWYgPSBTZXR0aW5nLmFwaUJhc2VVUkwgKyAiL3N5c3RlbS91cGdyYWRlX2V4cG9ydC8iLmNvbmNhdChpdGVtLmlkLCAiL2RhdGEiKTsKICAgICAgYXhpb3MoewogICAgICAgIG1ldGhvZDogJ2dldCcsCiAgICAgICAgdXJsOiBocmVmLAogICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLAogICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgICdBdXRob3JpLXphdGlvbic6ICdCZWFyZXIgJyArIGdldENvb2tpZXMoJ3Rva2VuJykKICAgICAgICB9CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIHZhciBibG9iID0gbmV3IEJsb2IoW3Jlcy5kYXRhXSwgewogICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtjaGFyc2V0PVVURi04JwogICAgICAgIH0pOwogICAgICAgIHZhciBkb3dubG9hZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7IC8vIOS4i+i9veeahOaWh+S7tuWQjQoKICAgICAgICBkb3dubG9hZEVsZW1lbnQuZG93bmxvYWQgPSAiIi5jb25jYXQobmFtZSwgIi5neiIpOyAvLyDliJvlu7rkuIvovb3nmoTpk77mjqUKCiAgICAgICAgZG93bmxvYWRFbGVtZW50LmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsgLy8g54K55Ye75LiL6L29CgogICAgICAgIGRvd25sb2FkRWxlbWVudC5jbGljaygpOwogICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG93bmxvYWRFbGVtZW50KTsgLy8g5LiL6L295a6M5oiQ56e76Zmk5YWD57SgCgogICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG93bmxvYWRFbGVtZW50KTsgLy8g6YeK5pS+5o6JYmxvYuWvueixoQoKICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTChkb3dubG9hZEVsZW1lbnQuaHJlZik7CiAgICAgIH0pOwogICAgfSwKICAgIHF1ZWFyeUV2ZWFyOiBmdW5jdGlvbiBxdWVhcnlFdmVhcihpZCwgaW5kZXgpIHsKICAgICAgdGhpcy5keW5hbWljID0gaW5kZXg7CiAgICB9CiAgfSwKICBkZXN0cm95ZWQ6IGZ1bmN0aW9uIGRlc3Ryb3llZCgpIHsKICAgIC8v6ZSA5q+BCiAgICBjbGVhckludGVydmFsKHRpaHMudGltZXIpOwogIH0KfTs="},{"version":3,"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiIA,SACAA,cADA,EAEAC,kBAFA,EAGAC,mBAHA,EAIAC,gBAJA,EAKAC,iBALA,EAMAC,kBANA,EAOAC,WAPA,QAQA,cARA;AASA;AACA;AACA;AAEA;AACA;EACAC,2BADA;EAEAC,IAFA,kBAEA;IACA;MACAC,UADA;MAEAC,eAFA;MAGAC,kBAHA;MAIAC,kBAJA;MAKAC,oBALA;MAMAC,UANA;MAOAC,UAPA;MAQAC,OARA;MASAC,cATA;MAUAC,aAVA;MAWAC,WAXA;MAYAC,gBAZA;MAaAC,aACA;QACAC,aADA;QAEAC;MAFA,CADA,EAKA;QACAD,aADA;QAEAC;MAFA,CALA,CAbA;MAuBAC,eAvBA;MAwBAC,kBAxBA;MAyBAC,mBAzBA;MA0BAC;QACAC;MADA,CA1BA;MA6BAC,oBA7BA;MA8BAC,iBA9BA;MA+BAC,oBA/BA;MAgCAC,OAhCA;MAiCAC,SAjCA;MAkCA;MACAC,WAnCA;MAoCAC,qBApCA;MAqCAC,YArCA;MAsCAC,oBAtCA;MAuCAC;IAvCA;EAyCA,CA5CA;EA6CAC,OA7CA,qBA6CA,CACA;IACA;IACA;IACA;IACA;IACA;EACA,CApDA;EAqDAC,OArDA,qBAqDA;IAAA;;IAAA;MAAA;QAAA;UAAA;YAAA;cAEA;;cAFA;cAAA,OAGA,sBAHA;;YAAA;cAAA;cAAA,OAIA,0BAJA;;YAAA;cAKA;gBACA;;gBACA;cACA,CARA,CASA;;;YATA;YAAA;cAAA;UAAA;QAAA;MAAA;IAAA;EAUA,CA/DA;EAgEAC;IACA;MACAC,OADA,mBACAC,MADA,EACAC,MADA,EACA;QACA;UACAC;QACA;MACA;IALA,CADA,CAQA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAfA,CAhEA;EAiFAC;IACAC,iBADA,+BACA;MACA;QACA;MACA,CAFA,MAEA;QACA;MACA;IACA,CAPA;IAQAC,WARA,uBAQAC,GARA,EAQAC,KARA,EAQA;MACAC;MACA;;MACA;QACA;MACA,CAFA,MAEA;QACA;QACA;MACA;IACA,CAjBA;IAkBA;IACAC,cAnBA,4BAmBA;MAAA;;MAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBACA5C,IADA,GACA;kBACAwB,iBADA;kBAEAC;gBAFA,CADA;gBAAA;gBAAA,OAKAjC,oBALA;;cAAA;gBAKAqD,GALA;gBAMA;gBACA;gBACAF;;cARA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA;IASA,CA5BA;IA6BA;IACAG,iBA9BA,+BA8BA;MAAA;;MACA;QACAtB,eADA;QAEAC;MAFA;MAIA7B,wBACAmD,IADA,CACA;QACA;QACA;;QACA;UACA;QACA;MACA,CAPA,EAQAC,KARA,CAQA;QACA;MACA,CAVA;IAWA,CA9CA;IAgDA;IACAC,kBAjDA,gCAiDA;MAAA;;MAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACApD,oBADA;;cAAA;gBACAgD,GADA;gBAEAF;gBACA;gBACAO,QAJA,GAIAL,WAJA;;gBAKA;kBACA7C,IADA,GACA6C;oBAAA;kBAAA,EADA;kBAEA;kBACAF;kBAEA;gBACA,CANA,MAMA;kBACA;kBACA;gBACA,CAdA,CAiBA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBAEA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;gBACA;;;cA/CA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA;IAgDA,CAjGA;IAkGA;IACAQ,WAnGA,yBAmGA;MAAA;;MACAR;MACAA;;MACA;QACA;MACA;;MACAA;MACA7C,6BACAiD,IADA,CACA;QACAJ,qCADA,CAEA;;QACA;UACA;YACA;cACAS;gBACA;cACA,CAFA,EAEA,CAFA;YAGA,CAJA,EAIA,IAJA;UAKA,CANA,MAMA;YACAf;YACA;UACA;QACA,CAXA,MAWA;UACA;QACA;MACA,CAlBA,EAmBAW,KAnBA,CAmBA;QACAX;;QACA;;QACA;MACA,CAvBA;IAwBA,CAlIA;IAmIAgB,YAnIA,wBAmIAC,GAnIA,EAmIA;MACAC;IACA,CArIA;IAuIA;IACAC,kBAxIA,gCAwIA;MAAA;;MACA/D,qBACAsD,IADA,CACA;QACA;QACA;MACA,CAJA,EAKAC,KALA,CAKA;QACAX;;QACA;MACA,CARA;IASA,CAlJA;IAmJA;IACAoB,mBApJA,iCAoJA;MAAA;;MACA/D,sBACAqD,IADA,CACA;QACA;QACA;MACA,CAJA,EAKAC,KALA,CAKA;QACA;MACA,CAPA;IAQA,CA7JA;IA8JA;IACAU,gBA/JA,8BA+JA;MAAA;;MACA/D,mBACAoD,IADA,CACA;QACA;;QACA;UACA;;UACA;QACA;MACA,CAPA,EAQAC,KARA,CAQA;QACA;MACA,CAVA;IAWA,CA3KA;IA4KA;IACAW,MA7KA,kBA6KAC,IA7KA,EA6KA;MACA;;MACA;QACA;MACA,CAJA,CAKA;;;MACA;IACA,CApLA;IAqLA;IACAC,OAtLA,qBAsLA;MAAA;;MACA;QACA,YACA,qBADA,EAEA,IAFA,EAGAC,+EAHA;;QAMA;UACA,YACA,yBADA,EAEA,IAFA,EAGAF,mFAHA;QAKA,CANA;;QAOA;UACA;;UACA;;UACA;QACA;MACA,CAnBA;IAoBA,CA3MA;IA4MA;IACAG,KA7MA,mBA6MA;MACA;MACA;MACA;MACA;IACA,CAlNA;IAmNAC,MAnNA,oBAmNA;MACA;MACA;IACA,CAtNA;IAuNAC,IAvNA,kBAuNA;MAAA;;MACA,yBADA,CAEA;;MACA5B;MACA6B,gBACAnB,IADA,CACA;QACA;;QACA;;QACAoB;QACAC;QACAA;QACAA,sBANA,CAOA;MACA,CATA,EAUApB,KAVA,CAUA,iBAVA;IAWA,CAtOA;IAuOAqB,QAvOA,sBAuOA;MACA;MACAhC;IACA,CA1OA;IA2OAiC,MA3OA,oBA2OA;MACA;MACAjC;IACA,CA9OA;IA+OA;IACAkC,OAhPA,mBAgPAX,IAhPA,EAgPA;MACA,WACAA,aACA,GADA,GAEAA,kBAFA,GAGA,GAHA,GAIAA,mBAJA,GAKA,GALA,GAMAA,kBANA,GAOA,GAPA,GAQAA,mBARA,GASA,GATA,GAUAA,iBAXA;MAYA;MACAY;QACAC,aADA;QAEAnB,SAFA;QAGAoB,oBAHA;QAIAC;UACA;QADA;MAJA,GAOA5B,IAPA,CAOA;QACA;UACA6B;QADA;QAGA,kDAJA,CAKA;;QACAC,mDANA,CAOA;;QACAA,wDARA,CASA;;QACAA;QACAC,2CAXA,CAYA;;QACAA,2CAbA,CAcA;;QACAvB;MACA,CAvBA;IAwBA,CAtRA;IAuRAwB,cAvRA,0BAuRAnB,IAvRA,EAuRA;MACA,WACAA,aACA,GADA,GAEAA,kBAFA,GAGA,GAHA,GAIAA,mBAJA,GAKA,GALA,GAMAA,kBANA,GAOA,GAPA,GAQAA,mBARA,GASA,GATA,GAUAA,iBAXA;MAYA;MACAY;QACAC,aADA;QAEAnB,SAFA;QAGAoB,oBAHA;QAIAC;UACA;QADA;MAJA,GAOA5B,IAPA,CAOA;QACA;UACA6B;QADA;QAGA,kDAJA,CAKA;;QACAC,kDANA,CAOA;;QACAA,wDARA,CASA;;QACAA;QACAC,2CAXA,CAYA;;QACAA,2CAbA,CAcA;;QACAvB;MACA,CAvBA;IAwBA,CA7TA;IA8TAyB,WA9TA,uBA8TAC,EA9TA,EA8TAC,KA9TA,EA8TA;MACA;IACA;EAhUA,CAjFA;EAmZAC,SAnZA,uBAmZA;IACA;IACA9C;EACA;AAtZA","names":["upgradeListApi","upgradeProgressApi","upgradeAgreementApi","upgradeStatusApi","upgradeLogListApi","upgradeableListApi","downloadApi","name","data","Panel","currentTab","declaration","updateModal","modal_loading","percent","params","arr","dynamic","status","version","forceVersion","headerList","label","value","upgradeList","upgradeLogList","upgradeableList","upgradeProgress","speed","upgradeAgreement","upgradeStatus","downloadStatus","page","limit","timer","params_key","newKey","servionStatus","count","created","mounted","watch","handler","newVal","oldVal","clearInterval","methods","handleReachBottom","handleClick","tab","event","console","getUpgradeList","res","getUpgradeLogList","then","catch","getupgradeableList","firstVer","getdownload","setTimeout","downloadFile","url","window","getUpgradeProgress","getUpgradeAgreement","getUpgradeStatus","update","item","compare","ele","agree","reject","back","AccountLogout","localStorage","removeCookies","backSure","cancel","exports","axios","method","responseType","headers","type","downloadElement","document","handleDownload","quearyEvear","id","index","destroyed"],"sourceRoot":"src/pages/system/onlineUpgrade","sources":["index.vue"],"sourcesContent":["<template>\r\n<div class=\"upgrade\">\r\n <Card :bordered=\"false\" dis-hover class=\"ivu-mt\">\r\n <div class=\"header\">\r\n <div>当前版本<span class=\"v\"></span><span class=\"num\">{{$store.state.userInfo.version}}</span></div>\r\n <div class=\"info title\">\r\n 更新说明:\r\n <span v-if=\"upgradeStatus.status != 1\">已升级至最新版本,无需更新</span>\r\n <ul v-if=\"upgradeStatus.status == 1\">\r\n <li>{{upgradeStatus.title}}</li>\r\n </ul>\r\n </div>\r\n <Button v-if=\"currentTab == 1 && upgradeStatus.status == 1\" type=\"primary\" class=\"primary btn update\" @click=\"update()\">立即更新</Button>\r\n </div>\r\n </Card>\r\n <Card :bordered=\"false\" dis-hover class=\"ivu-mt\">\r\n <div>\r\n <Tabs v-model=\"currentTab\" @on-click=\"handleClick\">\r\n <TabPane :label=\"item.label\" :name=\"item.value.toString()\" v-for=\"item in headerList\" :key=\"item.id\"/>\r\n </Tabs>\r\n </div>\r\n <div class=\"contentTime\" v-if=\"currentTab == 1\">\r\n <div class=\"acea-row row-top on\" @mouseenter=\"quearyEvear(item.id,index)\" v-for=\"(item, index) in upgradeList\" :key=\"index\" :class=\"{active:index==dynamic}\">\r\n <div class=\"time\">{{item.release_time}}</div>\r\n <Timeline class=\"list\">\r\n <TimelineItem>\r\n <!-- <Icon :type=\"index==0 ? 'md-radio-button-on' : 'md-radio-button-off'\" slot=\"dot\"/> -->\r\n <Collapse simple>\r\n <Panel hide-arrow>\r\n {{item.title}} v{{item.first_version}}.{{item.second_version}}.{{item.third_version}}.{{item.fourth_version}}<Icon type=\"ios-arrow-down\" />\r\n <p slot=\"content\" class=\"info\">\r\n <ul style=\"white-space: pre-wrap;\">\r\n <li v-html=\"item.content\"></li>\r\n </ul>\r\n </p>\r\n </Panel>\r\n </Collapse>\r\n </TimelineItem>\r\n <Button v-if=\"item.client_package_link\" type=\"success\" class=\"primary btn\" @click=\"downloadFile(item.client_package_link)\">移动端源码</Button>\r\n <Button v-if=\"item.pc_package_link\" type=\"primary\" class=\"primary btn1\" @click=\"downloadFile(item.pc_package_link)\">PC端源码</Button>\r\n </Timeline>\r\n </div>\r\n </div>\r\n <Scroll v-if=\"currentTab == 2\" :on-reach-bottom=\"handleReachBottom\" height=\"550\">\r\n <div class=\"contentTime\" >\r\n <div class=\"acea-row row-top off\" @mouseenter=\"quearyEvear(item.id,index)\" v-for=\"(item,index) in upgradeLogList\" :key=\"index\" :class=\"{active:index==dynamic}\">\r\n <div class=\"time\">\r\n <div v-if=\"index == 0\">最近更新</div>\r\n <div>{{item.upgrade_time}}</div> \r\n </div>\r\n <Timeline class=\"list\">\r\n <TimelineItem>\r\n <Icon :type=\"index==0 ? 'md-radio-button-on' : 'md-radio-button-off'\" slot=\"dot\"/>\r\n <Collapse simple>\r\n <Panel hide-arrow>\r\n {{item.title}} v{{item.first_version}}.{{item.second_version}}.{{item.third_version}}.{{item.fourth_version}}<Icon type=\"ios-arrow-down\" />\r\n <p slot=\"content\" class=\"info\">\r\n <ul style=\"white-space: pre-wrap;\">\r\n <li v-html=\"item.content\"></li>\r\n </ul>\r\n </p>\r\n </Panel>\r\n </Collapse>\r\n </TimelineItem>\r\n <!-- <Button v-if=\"item.data_status == 1\" type=\"primary\" class=\"primary btn\" @click=\"handleDownload(item)\">数据库备份</Button>\r\n <Button v-if=\"item.file_status == 1\" type=\"primary\" class=\"primary btn1\" @click=\"exports(item)\">导出文件</Button> -->\r\n </Timeline>\r\n </div>\r\n </div>\r\n </Scroll>\r\n \r\n </Card>\r\n <!-- 免责声明 -->\r\n <Modal :loading=\"modal_loading\" v-model=\"declaration\" width=\"340\" height=\"96\" :closable=\"false\" class-name=\"vertical-center-modal\" :mask-closable=\"false\">\r\n <p slot=\"header\" class=\"header-modal\">\r\n <span>{{upgradeAgreement.title}}</span>\r\n </p>\r\n <div class=\"describe\">\r\n <p v-html=\"upgradeAgreement.content\"></p>\r\n </div>\r\n <div slot=\"footer\" class=\"footer\">\r\n <Button class=\"cancel\" shape=\"circle\" @click=\"reject\">拒绝</Button>\r\n <Button shape=\"circle\" type=\"primary\" @click=\"agree()\">同意</Button>\r\n </div>\r\n </Modal>\r\n <!-- 升级 -->\r\n <Modal v-model=\"updateModal\" width=\"340\" height=\"96\" :closable=\"false\" class-name=\"vertical-center-modal\" :mask-closable=\"false\" @on-cancel=\"cancel\">\r\n <p slot=\"header\" class=\"header-modal2\">\r\n <span >升级至v{{forceVersion}}</span>\r\n </p>\r\n <div class=\"describe\" v-if=\"upgradeProgress.speed != '100.0' || this.downloadStatus !='200'\">\r\n <i-circle\r\n :size=\"140\"\r\n :trail-width=\"4\"\r\n :stroke-width=\"5\"\r\n :percent=\"Number(upgradeProgress.speed)\"\r\n stroke-linecap=\"square\"\r\n stroke-color=\"#43a3fb\">\r\n <div class=\"demo-i-circle-custom\">\r\n <p>{{upgradeProgress.tip || '升级中'}}</p>\r\n </div>\r\n </i-circle>\r\n <div class=\"proportion\">{{!upgradeProgress.speed?'':upgradeProgress.speed+'%'}}</div>\r\n <div class=\"wait\">正在更新,请耐心等候~</div>\r\n </div>\r\n <div slot=\"footer\">\r\n <!-- <div v-if=\"upgradeProgress.speed == '100.0'\"><Button class=\"back\" type=\"primary\" shape=\"circle\" @click=\"updateModal = false\">确认</Button></div> -->\r\n </div>\r\n <div v-if=\"upgradeProgress.speed == '100.0'\" class=\"describe\">\r\n <i-circle :percent=\"100\" stroke-color=\"#5cb85c\">\r\n <Icon type=\"ios-checkmark\" size=\"90\" style=\"color:#5cb85c\"></Icon>\r\n </i-circle>\r\n <div class=\"success\">升级成功</div>\r\n </div>\r\n <!-- <div v-if=\"upgradeProgress.speed == '100.0'\" class=\"describe\">\r\n <i-circle :percent=\"100\" stroke-color=\"#5cb85c\">\r\n <Icon type=\"md-close\" size=\"90\" style=\"color:#5cb85c\">\r\n </i-circle>\r\n <div class=\"success\">升级失败</div>\r\n </div> -->\r\n <div v-if=\"upgradeProgress.speed == '100.0'\" slot=\"footer\" class=\"footer2\">\r\n <Button class=\"confirm\" type=\"primary\" shape=\"circle\" @click=\"back()\">确认</Button>\r\n <!-- <div><Button class=\"back\" shape=\"circle\" @click=\"backSure()\">返回</Button></div> -->\r\n </div>\r\n </Modal>\r\n</div>\r\n</template>\r\n\r\n<script>\r\nimport {\r\n upgradeListApi,\r\n upgradeProgressApi,\r\n upgradeAgreementApi,\r\n upgradeStatusApi,\r\n upgradeLogListApi,\r\n upgradeableListApi,\r\n downloadApi,\r\n} from '@/api/system';\r\nimport axios from 'axios';\r\nimport { AccountLogout } from '@/api/account';\r\nimport { getCookies,removeCookies} from '@/libs/util';\r\n\r\nimport Setting from '@/setting';\r\nexport default {\r\n name: 'systemUpgradeclient',\r\n data() {\r\n return {\r\n Panel: '1',\r\n currentTab: '1',\r\n declaration: false,\r\n updateModal: false,\r\n modal_loading: false,\r\n percent: 0,\r\n params: [],\r\n arr: [],\r\n dynamic: false,\r\n status: false,\r\n version: '',\r\n forceVersion: '',\r\n headerList: [\r\n {\r\n label: '系统升级',\r\n value: 1,\r\n },\r\n {\r\n label: '升级记录',\r\n value: 2,\r\n },\r\n ],\r\n upgradeList: [],\r\n upgradeLogList: [],\r\n upgradeableList: [],\r\n upgradeProgress: {\r\n speed: 0,\r\n },\r\n upgradeAgreement: [],\r\n upgradeStatus: {},\r\n downloadStatus: null,\r\n page: 1,\r\n limit: 15,\r\n // 定时器\r\n timer: null,\r\n params_key: undefined,\r\n newKey: null,\r\n servionStatus: false,\r\n count:0\r\n };\r\n },\r\n created() {\r\n // this.getUpgradeList();\r\n // this.getUpgradeLogList();\r\n // this.getupgradeableList();\r\n // if (this.$route.params.items) {\r\n // this.getUpgradeAgreement();\r\n // }\r\n },\r\n async mounted() {\r\n\r\n this.getUpgradeStatus();\r\n await this.getUpgradeList();\r\n await this.getupgradeableList();\r\n if (this.$store.state.upgrade.toggleStatus) {\r\n this.servionStatus = true;\r\n this.getUpgradeAgreement();\r\n }\r\n // this.compare();\r\n },\r\n watch: {\r\n 'upgradeProgress.speed': {\r\n handler(newVal, oldVal) {\r\n if (newVal === '100.0') {\r\n clearInterval(this.timer);\r\n }\r\n },\r\n },\r\n // 'this.downloadStatus': {\r\n // handler(newVal, oldVal) {\r\n // if (newVal = '200') {\r\n // this.updateModal = false;\r\n // clearInterval(this.timer);\r\n // }\r\n // }\r\n // }\r\n },\r\n methods: {\r\n handleReachBottom(){\r\n if(this.count === this.upgradeLogList.length) {\r\n this.$Message.warning('暂无更多升级记录')\r\n } else {\r\n this.getUpgradeLogList();\r\n }\r\n },\r\n handleClick(tab, event) {\r\n console.log(tab, event)\r\n this.page = 1\r\n if(tab == 1){\r\n this.getupgradeableList();\r\n } else {\r\n this.upgradeLogList = []\r\n this.getUpgradeLogList();\r\n }\r\n },\r\n // 升级列表\r\n async getUpgradeList() {\r\n let data = {\r\n page: this.page,\r\n limit: this.limit,\r\n };\r\n let res = await upgradeListApi(data);\r\n this.upgradeList = res.data.list;\r\n this.upgradeList = res.data.list;\r\n console.log('升级列表', this.upgradeList);\r\n },\r\n // 升级记录\r\n getUpgradeLogList() {\r\n let data = {\r\n page: this.page,\r\n limit: this.limit,\r\n };\r\n upgradeLogListApi(data)\r\n .then((res) => {\r\n this.upgradeLogList = [...this.upgradeLogList,...res.data.list]\r\n this.count = res.data.count\r\n if(this.upgradeLogList.length < this.count){\r\n this.page++\r\n }\r\n })\r\n .catch((res) => {\r\n this.$Message.error(res.msg);\r\n });\r\n },\r\n \r\n // 可升级列表\r\n async getupgradeableList() {\r\n let res = await upgradeableListApi();\r\n console.log('111111')\r\n this.upgradeableList = res.data;\r\n let firstVer = res.data[0]\r\n if(this.$store.state.upgrade.toggleStatus || this.upgradeStatus.force_reminder){\r\n const data = res.data.find(item => item.force_reminder === 1)\r\n this.newKey = data.package_key;\r\n console.log('data',data)\r\n\r\n this.forceVersion = data.first_version + '.' + data.second_version + '.' + data.third_version + '.' + data.fourth_version\r\n }else{\r\n this.params_key = this.upgradeableList[0].package_key\r\n this.forceVersion = firstVer.first_version + '.' + firstVer.second_version + '.' + firstVer.third_version + '.' + firstVer.fourth_version\r\n }\r\n \r\n \r\n // arr.forEach((item) => {\r\n // this.$set(\r\n // item,\r\n // 'servion',\r\n // item.first_version + '.' + item.second_version + '.' + item.third_version + '.' + item.fourth_version,\r\n // );\r\n // });\r\n\r\n // let data = [];\r\n // arr.map((ele) => {\r\n // data.push(ele.servion);\r\n // });\r\n // // 版本号排序\r\n // function sortVersion(list) {\r\n // return list.sort((version1, version2) => {\r\n // const arr1 = version1.split('.').map((e) => e * 1);\r\n // const arr2 = version2.split('.').map((e) => e * 1);\r\n // const length = Math.max(arr1.length, arr2.length);\r\n // for (let i = 0; i < length; i++) {\r\n // if ((arr1[i] || 0) > (arr2[i] || 0)) return 1;\r\n // if ((arr1[i] || 0) < (arr2[i] || 0)) return -1;\r\n // }\r\n // return 0;\r\n // });\r\n // }\r\n // this.forceVersion = data[0];\r\n // this.params.map((item) => {\r\n // if (item.servion == data[data.length - 1]) {\r\n // this.newKey = item.package_key;\r\n // }\r\n // });\r\n },\r\n // 下载升级包\r\n getdownload() {\r\n console.log(this.newKey);\r\n console.log(this.$store.state.upgrade.toggleStatus);\r\n if (this.$store.state.upgrade.toggleStatus || this.upgradeStatus.force_reminder) {\r\n this.params_key = this.newKey;\r\n }\r\n console.log('下载key', this.params_key);\r\n downloadApi(this.params_key)\r\n .then((res) => {\r\n console.log('下载升级包调用成功', res.status);\r\n // this.downloadStatus = res.status;\r\n if (res.status == 200) {\r\n if (this.upgradeProgress.speed !== '100.0') {\r\n this.timer = setInterval(() => {\r\n setTimeout(() => {\r\n this.getUpgradeProgress();\r\n }, 0);\r\n }, 5000);\r\n } else {\r\n clearInterval(this.timer);\r\n this.updateModal = false;\r\n }\r\n } else {\r\n this.updateModal = false;\r\n }\r\n })\r\n .catch((err) => {\r\n clearInterval(this.timer);\r\n this.$Message.error('下载终止');\r\n this.updateModal = false;\r\n });\r\n },\r\n downloadFile(url){\r\n window.open(url, '_blank');\r\n },\r\n\r\n // 升级进度\r\n getUpgradeProgress() {\r\n upgradeProgressApi()\r\n .then((res) => {\r\n this.upgradeProgress = res.data;\r\n this.downloadStatus = res.status;\r\n })\r\n .catch((res) => {\r\n clearInterval(this.timer);\r\n this.$Message.error(res.msg);\r\n });\r\n },\r\n // 升级协议\r\n getUpgradeAgreement() {\r\n upgradeAgreementApi()\r\n .then((res) => {\r\n this.upgradeAgreement = res.data;\r\n this.declaration = true;\r\n })\r\n .catch((res) => {\r\n this.$Message.error(res.msg);\r\n });\r\n },\r\n // 升级状态\r\n getUpgradeStatus() {\r\n upgradeStatusApi()\r\n .then((res) => {\r\n this.upgradeStatus = res.data;\r\n if(res.data.force_reminder){\r\n this.declaration = true\r\n this.getUpgradeAgreement()\r\n }\r\n })\r\n .catch((res) => {\r\n this.$Message.error(res.msg);\r\n });\r\n },\r\n // 立即更新\r\n update(item) {\r\n this.declaration = true;\r\n if (item && this.$store.state.upgrade.toggleStatus == false) {\r\n this.params_key = item.params_key;\r\n }\r\n // this.version = item.first_version + \".\" + item.second_version + \".\" + item.third_version + \".\" + item.fourth_version;\r\n this.getUpgradeAgreement();\r\n },\r\n // 比较相同版本号\r\n compare() {\r\n this.upgradeList.map((ele, i) => {\r\n this.$set(\r\n this.upgradeList[i],\r\n 'mn',\r\n ele.first_version + ele.second_version + ele.third_version + ele.fourth_version,\r\n );\r\n\r\n this.upgradeableList.map((item, i) => {\r\n this.$set(\r\n this.upgradeableList[i],\r\n 'mn',\r\n item.first_version + item.second_version + item.third_version + item.fourth_version,\r\n );\r\n });\r\n if (this.upgradeList[i].mn == this.upgradeableList[i].mn) {\r\n this.$set(this.upgradeList[i], 'indexn', true);\r\n this.$set(this.upgradeList[i], 'params_key', this.upgradeableList[i].package_key);\r\n this.$set(this.upgradeableList[i], 'indexn', true);\r\n }\r\n });\r\n },\r\n // 同意\r\n agree() {\r\n this.declaration = false;\r\n this.updateModal = true;\r\n this.getdownload();\r\n this.$store.commit(\"upgrade/TOGGLE_STATUS\",false)\r\n },\r\n reject(){\r\n this.declaration = false\r\n this.$store.commit(\"upgrade/TOGGLE_STATUS\",false)\r\n },\r\n back() {\r\n this.updateModal = false;\r\n // this.getUpgradeList();\r\n clearInterval(this.timer);\r\n AccountLogout()\r\n .then((res) => {\r\n this.$Message.success('您已成功退出');\r\n this.$router.replace('/admin/login');\r\n localStorage.clear();\r\n removeCookies('token');\r\n removeCookies('expires_time');\r\n removeCookies('uuid');\r\n // window.location.reload()\r\n })\r\n .catch((res) => {});\r\n },\r\n backSure() {\r\n this.updateModal = false;\r\n clearInterval(this.timer);\r\n },\r\n cancel() {\r\n this.updateModal = false;\r\n clearInterval(this.timer);\r\n },\r\n // 导出备份文件\r\n exports(item) {\r\n let name =\r\n item.title +\r\n 'v' +\r\n item.first_version +\r\n '.' +\r\n item.second_version +\r\n '.' +\r\n item.third_version +\r\n '.' +\r\n item.fourth_version +\r\n '.' +\r\n item.upgrade_time;\r\n let href = Setting.apiBaseURL + `/system/upgrade_export/${item.id}/file`;\r\n axios({\r\n method: 'get',\r\n url: href,\r\n responseType: 'blob',\r\n headers: {\r\n 'Authori-zation': 'Bearer ' + getCookies('token'),\r\n },\r\n }).then((res) => {\r\n var blob = new Blob([res.data], {\r\n type: 'application/octet-stream;charset=UTF-8',\r\n });\r\n var downloadElement = document.createElement('a');\r\n // 下载的文件名\r\n downloadElement.download = `${name}.zip`;\r\n // 创建下载的链接\r\n downloadElement.href = window.URL.createObjectURL(blob);\r\n // 点击下载\r\n downloadElement.click();\r\n document.body.appendChild(downloadElement);\r\n // 下载完成移除元素\r\n document.body.removeChild(downloadElement);\r\n // 释放掉blob对象\r\n window.URL.revokeObjectURL(downloadElement.href);\r\n });\r\n },\r\n handleDownload(item) {\r\n let name =\r\n item.title +\r\n 'v' +\r\n item.first_version +\r\n '.' +\r\n item.second_version +\r\n '.' +\r\n item.third_version +\r\n '.' +\r\n item.fourth_version +\r\n '.' +\r\n item.upgrade_time;\r\n let href = Setting.apiBaseURL + `/system/upgrade_export/${item.id}/data`;\r\n axios({\r\n method: 'get',\r\n url: href,\r\n responseType: 'blob',\r\n headers: {\r\n 'Authori-zation': 'Bearer ' + getCookies('token'),\r\n },\r\n }).then((res) => {\r\n var blob = new Blob([res.data], {\r\n type: 'application/octet-stream;charset=UTF-8',\r\n });\r\n var downloadElement = document.createElement('a');\r\n // 下载的文件名\r\n downloadElement.download = `${name}.gz`;\r\n // 创建下载的链接\r\n downloadElement.href = window.URL.createObjectURL(blob);\r\n // 点击下载\r\n downloadElement.click();\r\n document.body.appendChild(downloadElement);\r\n // 下载完成移除元素\r\n document.body.removeChild(downloadElement);\r\n // 释放掉blob对象\r\n window.URL.revokeObjectURL(downloadElement.href);\r\n });\r\n },\r\n quearyEvear(id, index) {\r\n this.dynamic = index;\r\n },\r\n },\r\n destroyed() {\r\n //销毁\r\n clearInterval(tihs.timer);\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"stylus\" scoped>\r\n.active {\r\n padding: 6px 0;\r\n // background-color: #eee !important;\r\n}\r\n\r\n.active .ivu-collapse-simple {\r\n // background-color: #eee !important;\r\n}\r\n\r\n.active .ivu-collapse-content {\r\n // background-color: #eee !important;\r\n}\r\n\r\n.active .ivu-timeline-item-head-custom {\r\n // background-color: #fff !important;\r\n // z-index 9999\r\n}\r\n\r\n.active .btn {\r\n top: 50px;\r\n}\r\n\r\n.primary {\r\n position: absolute;\r\n right: 0;\r\n bottom: 0;\r\n}\r\n\r\n.upgrade .header {\r\n font-size: 12px;\r\n color: #000;\r\n // border-bottom:1px dotted rgba(221,221,221,1);\r\n // padding-bottom: 25px;\r\n}\r\n\r\n.upgrade .header .v {\r\n color: #1890FF;\r\n margin-left: 10px;\r\n}\r\n\r\n.upgrade .header .num {\r\n color: #1890FF;\r\n font-size: 24px;\r\n}\r\n\r\n.upgrade .header .info {\r\n color: #999999;\r\n}\r\n\r\n.upgrade .header .title {\r\n color: #999999;\r\n display: flex;\r\n}\r\n\r\n.upgrade .header .info ul {\r\n color: #999999;\r\n display: flex;\r\n margin-left: 14px;\r\n}\r\n\r\n.upgrade .header .info ul li::marker {\r\n color: red;\r\n}\r\n\r\n.upgrade .header .info ul li+li {\r\n margin-left: 40px;\r\n}\r\n\r\n.upgrade .contentTime .acea-row {\r\n padding: 5px;\r\n}\r\n\r\n.upgrade .contentTime .list {\r\n position: relative;\r\n width: 85%;\r\n}\r\n\r\n.upgrade .contentTime .info {\r\n font-size: 12px !important;\r\n color: #999 !important;\r\n margin-top: 13px;\r\n}\r\n\r\n.upgrade .contentTime .info li {\r\n list-style-type: disc;\r\n margin-left: 16px;\r\n line-height: 26px;\r\n list-style: none;\r\n}\r\n\r\n.upgrade .contentTime .collapse {\r\n width: 100%;\r\n}\r\n\r\n.upgrade .contentTime .ivu-collapse {\r\n border: 0 !important;\r\n}\r\n\r\n.upgrade .contentTime .ivu-collapse > .ivu-collapse-item > .ivu-collapse-header {\r\n height: unset !important;\r\n line-height: 20px !important;\r\n border: 0 !important;\r\n font-size: 16px !important;\r\n color: #333333;\r\n font-weight: 600;\r\n // background: #eee;\r\n}\r\n\r\n.upgrade .contentTime .ivu-collapse > .ivu-collapse-item > .ivu-collapse-header > i {\r\n color: #BBBBBB !important;\r\n margin-left: 9px;\r\n}\r\n\r\n.upgrade .contentTime .ivu-collapse > .ivu-collapse-item.ivu-collapse-item-active > .ivu-collapse-header > i {\r\n transform: rotate(180deg);\r\n}\r\n\r\n.upgrade .contentTime {\r\n margin-top: 30px;\r\n position: relative;\r\n}\r\n\r\n.upgrade .contentTime .btn {\r\n position: absolute;\r\n top: 0;\r\n right: 60px;\r\n z-index: 99;\r\n}\r\n\r\n.upgrade .contentTime .btn1 {\r\n position: absolute;\r\n top: 0;\r\n right: -29px;\r\n z-index: 99;\r\n margin-left: 14px;\r\n}\r\n\r\n.upgrade .contentTime .time {\r\n font-size: 14px;\r\n line-height: 14px;\r\n color: #999;\r\n text-align: right;\r\n padding-right: 28px;\r\n min-width: 150px;\r\n}\r\n\r\n.upgrade .contentTime .ivu-timeline-item:after {\r\n content: ' ';\r\n position: absolute;\r\n top: 13px;\r\n left: 6.5px;\r\n width: 1px;\r\n height: calc(100% - 13px);\r\n background-color: #e8eaec;\r\n}\r\n\r\n.upgrade .contentTime:nth-child(2n) .ivu-timeline-item-head-custom {\r\n z-index: 2;\r\n font-size: 16px;\r\n color: #DDDCDD;\r\n // background: #eee;\r\n margin-left: 12px;\r\n margin-top: 10px;\r\n}\r\n\r\n.ivu-timeline-item-head-custom {\r\n left: -24px;\r\n}\r\n.upgrade .contentTimed .on{\r\n display:flex;\r\n flex-wrap: nowrap;\r\n}\r\n.upgrade .contentTime .on:first-child .ivu-timeline-item-head-custom {\r\n color: #1890FF;\r\n font-size: 18px;\r\n}\r\n/deep/ .ivu-collapse > .ivu-collapse-item > .ivu-collapse-header{\r\n line-height: 20px;\r\n\r\n}\r\n.upgrade .contentTimed .on .ivu-collapse > .ivu-collapse-item > .ivu-collapse-header {\r\n color: #1890FF;\r\n}\r\n\r\n.on:first-child .ivu-collapse-header {\r\n color: #1890FF !important;\r\n}\r\n\r\n.upgrade .contentTime .off:first-child .ivu-timeline-item-head-custom {\r\n color: #1890FF;\r\n font-size: 18px;\r\n}\r\n\r\n.off:first-child .ivu-collapse-header {\r\n color: #1890FF !important;\r\n}\r\n\r\n.off:first-child .time {\r\n color: #1890FF !important;\r\n}\r\n\r\n.header-modal {\r\n background: url('../../../assets/images/bg.png') no-repeat;\r\n background-size: 100% 100%;\r\n text-align: center;\r\n border-radius: 6px 6px 0 0;\r\n}\r\n\r\n.ivu-modal{\r\n border-radius: 12px;\r\n overflow: hidden;\r\n}\r\n\r\n.header-modal2 {\r\n background: url('../../../assets/images/bg2.png') no-repeat;\r\n background-size: 100% 100%;\r\n text-align: center;\r\n border-radius: 6px 6px 0 0;\r\n}\r\n\r\n.ivu-modal-header {\r\n padding: 0;\r\n border-radius: 10px;\r\n border: none;\r\n}\r\n\r\n.ivu-modal-header .header-modal2 {\r\n height: 74px;\r\n line-height: 74px;\r\n font-size: 20px;\r\n font-weight: 500;\r\n}\r\n\r\n.ivu-modal-header p, .ivu-modal-header-inner {\r\n height: 96px;\r\n color: #fff;\r\n line-height: 96px;\r\n font-size: 24px;\r\n}\r\n\r\n.describe {\r\n text-align: center;\r\n padding-top: 30px;\r\n\r\n .success {\r\n font-size: 20px;\r\n color: #333333;\r\n margin-top: 10px;\r\n }\r\n}\r\n\r\n.ivu-modal-footer {\r\n border: none;\r\n display: flex;\r\n justify-content: center;\r\n}\r\n\r\n.footer .ivu-btn {\r\n width: 128px;\r\n height: 40px;\r\n border: none;\r\n}\r\n\r\n.cancel {\r\n background: #EEEEEE;\r\n}\r\n\r\n.vertical-center-modal {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n .ivu-modal {\r\n top: 0;\r\n }\r\n}\r\n/deep/ .vertical-center-modal .ivu-modal-header{\r\n padding: 0 !important;\r\n border: none;\r\n}\r\n/deep/ .ivu-modal-content{\r\n border-radius: 14px 14px 0 0;\r\n overflow hidden\r\n}\r\n.footer {\r\n display: flex;\r\n justify-content: space-around;\r\n}\r\n\r\n.demo-i-circle-custom {\r\n & h1 {\r\n color: #CCCCCC;\r\n font-size: 12px;\r\n font-weight: normal;\r\n line-height: 17px;\r\n }\r\n\r\n & p {\r\n color: #2A7EFB;\r\n font-size: 14px;\r\n line-height: 20px;\r\n margin: 6px 0;\r\n }\r\n\r\n & span {\r\n display: block;\r\n color: #CCCCCC;\r\n font-size: 12px;\r\n line-height: 17px;\r\n }\r\n\r\n & span i {\r\n font-style: normal;\r\n color: #3f414d;\r\n }\r\n}\r\n\r\n.proportion {\r\n font-size: 20px;\r\n font-weight: 600;\r\n color: #2A7EFB;\r\n margin: 12px 0 6px;\r\n}\r\n\r\n.wait {\r\n font-size: 12px;\r\n font-weight: 400;\r\n color: #999999;\r\n}\r\n\r\n.footer2 {\r\n display: flex;\r\n flex-wrap: wrap;\r\n justify-content center\r\n align-items: center\r\n flex-direction: column;\r\n\r\n .confirm, .back {\r\n width: 210px;\r\n height: 40px;\r\n }\r\n\r\n .back {\r\n border: none;\r\n }\r\n}\r\n\r\n.describe {\r\n padding-top: 0;\r\n}\r\n\r\n.describe h2 {\r\n font-size: 22px;\r\n font-weight: 400;\r\n color: #333333;\r\n margin-bottom: 12px;\r\n}\r\n\r\n.acea-row.row-top {\r\n position: relative;\r\n overflow: hidden;\r\n}\r\n\r\n.update {\r\n margin: 27px 16px;\r\n}\r\n</style>\r\n"]}]}