a466c9e30496f72f01044d9707cb9241.json 46 KB

1
  1. {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\system\\onlineUpgrade\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\system\\onlineUpgrade\\index.vue","mtime":1761185180222},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQppbXBvcnQgew0KICB1cGdyYWRlTGlzdEFwaSwNCiAgdXBncmFkZVByb2dyZXNzQXBpLA0KICB1cGdyYWRlQWdyZWVtZW50QXBpLA0KICB1cGdyYWRlU3RhdHVzQXBpLA0KICB1cGdyYWRlTG9nTGlzdEFwaSwNCiAgdXBncmFkZWFibGVMaXN0QXBpLA0KICBkb3dubG9hZEFwaSwNCn0gZnJvbSAnQC9hcGkvc3lzdGVtJzsNCmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7DQppbXBvcnQgeyBBY2NvdW50TG9nb3V0IH0gZnJvbSAnQC9hcGkvYWNjb3VudCc7DQppbXBvcnQgeyBnZXRDb29raWVzLHJlbW92ZUNvb2tpZXN9IGZyb20gJ0AvbGlicy91dGlsJzsNCg0KaW1wb3J0IFNldHRpbmcgZnJvbSAnQC9zZXR0aW5nJzsNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogJ3N5c3RlbVVwZ3JhZGVjbGllbnQnLA0KICBkYXRhKCkgew0KICAgIHJldHVybiB7DQogICAgICBQYW5lbDogJzEnLA0KICAgICAgY3VycmVudFRhYjogJzEnLA0KICAgICAgZGVjbGFyYXRpb246IGZhbHNlLA0KICAgICAgdXBkYXRlTW9kYWw6IGZhbHNlLA0KICAgICAgbW9kYWxfbG9hZGluZzogZmFsc2UsDQogICAgICBwZXJjZW50OiAwLA0KICAgICAgcGFyYW1zOiBbXSwNCiAgICAgIGFycjogW10sDQogICAgICBkeW5hbWljOiBmYWxzZSwNCiAgICAgIHN0YXR1czogZmFsc2UsDQogICAgICB2ZXJzaW9uOiAnJywNCiAgICAgIGZvcmNlVmVyc2lvbjogJycsDQogICAgICBoZWFkZXJMaXN0OiBbDQogICAgICAgIHsNCiAgICAgICAgICBsYWJlbDogJ+ezu+e7n+WNh+e6pycsDQogICAgICAgICAgdmFsdWU6IDEsDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBsYWJlbDogJ+WNh+e6p+iusOW9lScsDQogICAgICAgICAgdmFsdWU6IDIsDQogICAgICAgIH0sDQogICAgICBdLA0KICAgICAgdXBncmFkZUxpc3Q6IFtdLA0KICAgICAgdXBncmFkZUxvZ0xpc3Q6IFtdLA0KICAgICAgdXBncmFkZWFibGVMaXN0OiBbXSwNCiAgICAgIHVwZ3JhZGVQcm9ncmVzczogew0KICAgICAgICBzcGVlZDogMCwNCiAgICAgIH0sDQogICAgICB1cGdyYWRlQWdyZWVtZW50OiBbXSwNCiAgICAgIHVwZ3JhZGVTdGF0dXM6IHt9LA0KICAgICAgZG93bmxvYWRTdGF0dXM6IG51bGwsDQogICAgICBwYWdlOiAxLA0KICAgICAgbGltaXQ6IDE1LA0KICAgICAgLy8g5a6a5pe25ZmoDQogICAgICB0aW1lcjogbnVsbCwNCiAgICAgIHBhcmFtc19rZXk6IHVuZGVmaW5lZCwNCiAgICAgIG5ld0tleTogbnVsbCwNCiAgICAgIHNlcnZpb25TdGF0dXM6IGZhbHNlLA0KICAgICAgY291bnQ6MA0KICAgIH07DQogIH0sDQogIGNyZWF0ZWQoKSB7DQogICAgLy8gdGhpcy5nZXRVcGdyYWRlTGlzdCgpOw0KICAgIC8vIHRoaXMuZ2V0VXBncmFkZUxvZ0xpc3QoKTsNCiAgICAvLyB0aGlzLmdldHVwZ3JhZGVhYmxlTGlzdCgpOw0KICAgIC8vIGlmICh0aGlzLiRyb3V0ZS5wYXJhbXMuaXRlbXMpIHsNCiAgICAvLyAgIHRoaXMuZ2V0VXBncmFkZUFncmVlbWVudCgpOw0KICAgIC8vIH0NCiAgfSwNCiAgYXN5bmMgbW91bnRlZCgpIHsNCg0KICAgIHRoaXMuZ2V0VXBncmFkZVN0YXR1cygpOw0KICAgIGF3YWl0IHRoaXMuZ2V0VXBncmFkZUxpc3QoKTsNCiAgICBhd2FpdCB0aGlzLmdldHVwZ3JhZGVhYmxlTGlzdCgpOw0KICAgIGlmICh0aGlzLiRzdG9yZS5zdGF0ZS51cGdyYWRlLnRvZ2dsZVN0YXR1cykgew0KICAgICAgdGhpcy5zZXJ2aW9uU3RhdHVzID0gdHJ1ZTsNCiAgICAgIHRoaXMuZ2V0VXBncmFkZUFncmVlbWVudCgpOw0KICAgIH0NCiAgICAvLyB0aGlzLmNvbXBhcmUoKTsNCiAgfSwNCiAgd2F0Y2g6IHsNCiAgICAndXBncmFkZVByb2dyZXNzLnNwZWVkJzogew0KICAgICAgaGFuZGxlcihuZXdWYWwsIG9sZFZhbCkgew0KICAgICAgICBpZiAobmV3VmFsID09PSAnMTAwLjAnKSB7DQogICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTsNCiAgICAgICAgfQ0KICAgICAgfSwNCiAgICB9LA0KICAgIC8vICd0aGlzLmRvd25sb2FkU3RhdHVzJzogew0KICAgIC8vICAgaGFuZGxlcihuZXdWYWwsIG9sZFZhbCkgew0KICAgIC8vICAgICBpZiAobmV3VmFsID0gJzIwMCcpIHsNCiAgICAvLyAgICAgICB0aGlzLnVwZGF0ZU1vZGFsID0gZmFsc2U7DQogICAgLy8gICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTsNCiAgICAvLyAgICAgfQ0KICAgIC8vICAgfQ0KICAgIC8vIH0NCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGhhbmRsZVJlYWNoQm90dG9tKCl7DQogICAgICBpZih0aGlzLmNvdW50ID09PSB0aGlzLnVwZ3JhZGVMb2dMaXN0Lmxlbmd0aCkgew0KICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+aaguaXoOabtOWkmuWNh+e6p+iusOW9lScpDQogICAgICB9IGVsc2Ugew0KICAgICAgICB0aGlzLmdldFVwZ3JhZGVMb2dMaXN0KCk7DQogICAgICB9DQogICAgfSwNCiAgICBoYW5kbGVDbGljaygpIHsNCiAgICAgIHRoaXMucGFnZSA9IDENCiAgICAgIGlmKHRoaXMuY3VycmVudFRhYiA9PSAxKXsNCiAgICAgICAgdGhpcy5nZXR1cGdyYWRlYWJsZUxpc3QoKTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHRoaXMudXBncmFkZUxvZ0xpc3QgPSBbXQ0KICAgICAgICB0aGlzLmdldFVwZ3JhZGVMb2dMaXN0KCk7DQogICAgICB9DQogICAgfSwNCiAgICAvLyDljYfnuqfliJfooagNCiAgICBhc3luYyBnZXRVcGdyYWRlTGlzdCgpIHsNCiAgICAgIGxldCBkYXRhID0gew0KICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsDQogICAgICAgIGxpbWl0OiB0aGlzLmxpbWl0LA0KICAgICAgfTsNCiAgICAgIGxldCByZXMgPSBhd2FpdCB1cGdyYWRlTGlzdEFwaShkYXRhKTsNCiAgICAgIHRoaXMudXBncmFkZUxpc3QgPSByZXMuZGF0YS5saXN0Ow0KICAgICAgdGhpcy51cGdyYWRlTGlzdCA9IHJlcy5kYXRhLmxpc3Q7DQogICAgfSwNCiAgICAvLyDljYfnuqforrDlvZUNCiAgICBnZXRVcGdyYWRlTG9nTGlzdCgpIHsNCiAgICAgIGxldCBkYXRhID0gew0KICAgICAgICBwYWdlOiB0aGlzLnBhZ2UsDQogICAgICAgIGxpbWl0OiB0aGlzLmxpbWl0LA0KICAgICAgfTsNCiAgICAgIHVwZ3JhZGVMb2dMaXN0QXBpKGRhdGEpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLnVwZ3JhZGVMb2dMaXN0ID0gWy4uLnRoaXMudXBncmFkZUxvZ0xpc3QsLi4ucmVzLmRhdGEubGlzdF0NCiAgICAgICAgICB0aGlzLmNvdW50ID0gcmVzLmRhdGEuY291bnQNCiAgICAgICAgICBpZih0aGlzLnVwZ3JhZGVMb2dMaXN0Lmxlbmd0aCA8IHRoaXMuY291bnQpew0KICAgICAgICAgICAgdGhpcy5wYWdlKysNCiAgICAgICAgICB9DQogICAgICAgICAgaWYodGhpcy5jb3VudCA9PT0gdGhpcy51cGdyYWRlTG9nTGlzdC5sZW5ndGgpIHsNCiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCfmmoLml6Dmm7TlpJrljYfnuqforrDlvZUnKQ0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgdGhpcy5nZXRVcGdyYWRlTG9nTGlzdCgpOw0KICAgICAgfQ0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQoNCiAgICAvLyDlj6/ljYfnuqfliJfooagNCiAgICBhc3luYyBnZXR1cGdyYWRlYWJsZUxpc3QoKSB7DQogICAgICBsZXQgcmVzID0gYXdhaXQgdXBncmFkZWFibGVMaXN0QXBpKCk7DQogICAgICB0aGlzLnVwZ3JhZGVhYmxlTGlzdCA9IHJlcy5kYXRhOw0KICAgICAgbGV0IGZpcnN0VmVyID0gcmVzLmRhdGFbMF0NCiAgICAgIGlmKHRoaXMuJHN0b3JlLnN0YXRlLnVwZ3JhZGUudG9nZ2xlU3RhdHVzIHx8IHRoaXMudXBncmFkZVN0YXR1cy5mb3JjZV9yZW1pbmRlcil7DQogICAgICAgIGNvbnN0IGRhdGEgPSByZXMuZGF0YS5maW5kKGl0ZW0gPT4gaXRlbS5mb3JjZV9yZW1pbmRlciA9PT0gMSkNCiAgICAgICAgdGhpcy5uZXdLZXkgPSBkYXRhLnBhY2thZ2Vfa2V5Ow0KICAgICAgICB0aGlzLmZvcmNlVmVyc2lvbiA9IGRhdGEuZmlyc3RfdmVyc2lvbiArICcuJyArIGRhdGEuc2Vjb25kX3ZlcnNpb24gKyAnLicgKyBkYXRhLnRoaXJkX3ZlcnNpb24gKyAnLicgKyBkYXRhLmZvdXJ0aF92ZXJzaW9uDQogICAgICB9ZWxzZXsNCiAgICAgICAgdGhpcy5wYXJhbXNfa2V5ID0gdGhpcy51cGdyYWRlYWJsZUxpc3RbMF0ucGFja2FnZV9rZXkNCiAgICAgICAgdGhpcy5mb3JjZVZlcnNpb24gPSBmaXJzdFZlci5maXJzdF92ZXJzaW9uICsgJy4nICsgZmlyc3RWZXIuc2Vjb25kX3ZlcnNpb24gKyAnLicgKyBmaXJzdFZlci50aGlyZF92ZXJzaW9uICsgJy4nICsgZmlyc3RWZXIuZm91cnRoX3ZlcnNpb24NCiAgICAgIH0NCg0KDQogICAgICAvLyBhcnIuZm9yRWFjaCgoaXRlbSkgPT4gew0KICAgICAgLy8gICB0aGlzLiRzZXQoDQogICAgICAvLyAgICAgaXRlbSwNCiAgICAgIC8vICAgICAnc2VydmlvbicsDQogICAgICAvLyAgICAgaXRlbS5maXJzdF92ZXJzaW9uICsgJy4nICsgaXRlbS5zZWNvbmRfdmVyc2lvbiArICcuJyArIGl0ZW0udGhpcmRfdmVyc2lvbiArICcuJyArIGl0ZW0uZm91cnRoX3ZlcnNpb24sDQogICAgICAvLyAgICk7DQogICAgICAvLyB9KTsNCg0KICAgICAgLy8gbGV0IGRhdGEgPSBbXTsNCiAgICAgIC8vIGFyci5tYXAoKGVsZSkgPT4gew0KICAgICAgLy8gICBkYXRhLnB1c2goZWxlLnNlcnZpb24pOw0KICAgICAgLy8gfSk7DQogICAgICAvLyAvLyDniYjmnKzlj7fmjpLluo8NCiAgICAgIC8vIGZ1bmN0aW9uIHNvcnRWZXJzaW9uKGxpc3QpIHsNCiAgICAgIC8vICAgcmV0dXJuIGxpc3Quc29ydCgodmVyc2lvbjEsIHZlcnNpb24yKSA9PiB7DQogICAgICAvLyAgICAgY29uc3QgYXJyMSA9IHZlcnNpb24xLnNwbGl0KCcuJykubWFwKChlKSA9PiBlICogMSk7DQogICAgICAvLyAgICAgY29uc3QgYXJyMiA9IHZlcnNpb24yLnNwbGl0KCcuJykubWFwKChlKSA9PiBlICogMSk7DQogICAgICAvLyAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5tYXgoYXJyMS5sZW5ndGgsIGFycjIubGVuZ3RoKTsNCiAgICAgIC8vICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7DQogICAgICAvLyAgICAgICBpZiAoKGFycjFbaV0gfHwgMCkgPiAoYXJyMltpXSB8fCAwKSkgcmV0dXJuIDE7DQogICAgICAvLyAgICAgICBpZiAoKGFycjFbaV0gfHwgMCkgPCAoYXJyMltpXSB8fCAwKSkgcmV0dXJuIC0xOw0KICAgICAgLy8gICAgIH0NCiAgICAgIC8vICAgICByZXR1cm4gMDsNCiAgICAgIC8vICAgfSk7DQogICAgICAvLyB9DQogICAgICAvLyB0aGlzLmZvcmNlVmVyc2lvbiA9IGRhdGFbMF07DQogICAgICAvLyB0aGlzLnBhcmFtcy5tYXAoKGl0ZW0pID0+IHsNCiAgICAgIC8vICAgaWYgKGl0ZW0uc2VydmlvbiA9PSBkYXRhW2RhdGEubGVuZ3RoIC0gMV0pIHsNCiAgICAgIC8vICAgICB0aGlzLm5ld0tleSA9IGl0ZW0ucGFja2FnZV9rZXk7DQogICAgICAvLyAgIH0NCiAgICAgIC8vIH0pOw0KICAgIH0sDQogICAgLy8g5LiL6L295Y2H57qn5YyFDQogICAgZ2V0ZG93bmxvYWQoKSB7DQogICAgICBpZiAodGhpcy4kc3RvcmUuc3RhdGUudXBncmFkZS50b2dnbGVTdGF0dXMgfHwgdGhpcy51cGdyYWRlU3RhdHVzLmZvcmNlX3JlbWluZGVyKSB7DQogICAgICAgIHRoaXMucGFyYW1zX2tleSA9IHRoaXMubmV3S2V5Ow0KICAgICAgfQ0KICAgICAgZG93bmxvYWRBcGkodGhpcy5wYXJhbXNfa2V5KQ0KICAgICAgICAudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgLy8gdGhpcy5kb3dubG9hZFN0YXR1cyA9IHJlcy5zdGF0dXM7DQogICAgICAgICAgaWYgKHJlcy5zdGF0dXMgPT0gMjAwKSB7DQogICAgICAgICAgICBpZiAodGhpcy51cGdyYWRlUHJvZ3Jlc3Muc3BlZWQgIT09ICcxMDAuMCcpIHsNCiAgICAgICAgICAgICAgdGhpcy50aW1lciA9IHNldEludGVydmFsKCgpID0+IHsNCiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRVcGdyYWRlUHJvZ3Jlc3MoKTsNCiAgICAgICAgICAgICAgICB9LCAwKTsNCiAgICAgICAgICAgICAgfSwgNTAwMCk7DQogICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpOw0KICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGFsID0gZmFsc2U7DQogICAgICAgICAgICB9DQogICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kYWwgPSBmYWxzZTsNCiAgICAgICAgICB9DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7DQogICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKCfkuIvovb3nu4jmraInKTsNCiAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGFsID0gZmFsc2U7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgZG93bmxvYWRGaWxlKHVybCl7DQogICAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTsNCiAgICB9LA0KDQogICAgLy8g5Y2H57qn6L+b5bqmDQogICAgZ2V0VXBncmFkZVByb2dyZXNzKCkgew0KICAgICAgdXBncmFkZVByb2dyZXNzQXBpKCkNCiAgICAgICAgLnRoZW4oKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMudXBncmFkZVByb2dyZXNzID0gcmVzLmRhdGE7DQogICAgICAgICAgdGhpcy5kb3dubG9hZFN0YXR1cyA9IHJlcy5zdGF0dXM7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgocmVzKSA9PiB7DQogICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlcy5tc2cpOw0KICAgICAgICB9KTsNCiAgICB9LA0KICAgIC8vIOWNh+e6p+WNj+iurg0KICAgIGdldFVwZ3JhZGVBZ3JlZW1lbnQoKSB7DQogICAgICB1cGdyYWRlQWdyZWVtZW50QXBpKCkNCiAgICAgICAgLnRoZW4oKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMudXBncmFkZUFncmVlbWVudCA9IHJlcy5kYXRhOw0KICAgICAgICAgIHRoaXMuZGVjbGFyYXRpb24gPSB0cnVlOw0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g5Y2H57qn54q25oCBDQogICAgZ2V0VXBncmFkZVN0YXR1cygpIHsNCiAgICAgIHVwZ3JhZGVTdGF0dXNBcGkoKQ0KICAgICAgICAudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgdGhpcy51cGdyYWRlU3RhdHVzID0gcmVzLmRhdGE7DQogICAgICAgICAgaWYocmVzLmRhdGEuZm9yY2VfcmVtaW5kZXIpew0KICAgICAgICAgICAgdGhpcy5kZWNsYXJhdGlvbiA9IHRydWUNCiAgICAgICAgICAgIHRoaXMuZ2V0VXBncmFkZUFncmVlbWVudCgpDQogICAgICAgICAgfQ0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgLy8g56uL5Y2z5pu05pawDQogICAgdXBkYXRlKGl0ZW0pIHsNCiAgICAgIHRoaXMuZGVjbGFyYXRpb24gPSB0cnVlOw0KICAgICAgaWYgKGl0ZW0gJiYgdGhpcy4kc3RvcmUuc3RhdGUudXBncmFkZS50b2dnbGVTdGF0dXMgPT0gZmFsc2UpIHsNCiAgICAgICAgdGhpcy5wYXJhbXNfa2V5ID0gaXRlbS5wYXJhbXNfa2V5Ow0KICAgICAgfQ0KICAgICAgLy8gdGhpcy52ZXJzaW9uID0gaXRlbS5maXJzdF92ZXJzaW9uICsgIi4iICsgaXRlbS5zZWNvbmRfdmVyc2lvbiArICIuIiArIGl0ZW0udGhpcmRfdmVyc2lvbiArICIuIiArIGl0ZW0uZm91cnRoX3ZlcnNpb247DQogICAgICB0aGlzLmdldFVwZ3JhZGVBZ3JlZW1lbnQoKTsNCiAgICB9LA0KICAgIC8vIOavlOi+g+ebuOWQjOeJiOacrOWPtw0KICAgIGNvbXBhcmUoKSB7DQogICAgICB0aGlzLnVwZ3JhZGVMaXN0Lm1hcCgoZWxlLCBpKSA9PiB7DQogICAgICAgIHRoaXMuJHNldCgNCiAgICAgICAgICB0aGlzLnVwZ3JhZGVMaXN0W2ldLA0KICAgICAgICAgICdtbicsDQogICAgICAgICAgZWxlLmZpcnN0X3ZlcnNpb24gKyBlbGUuc2Vjb25kX3ZlcnNpb24gKyBlbGUudGhpcmRfdmVyc2lvbiArIGVsZS5mb3VydGhfdmVyc2lvbiwNCiAgICAgICAgKTsNCg0KICAgICAgICB0aGlzLnVwZ3JhZGVhYmxlTGlzdC5tYXAoKGl0ZW0sIGkpID0+IHsNCiAgICAgICAgICB0aGlzLiRzZXQoDQogICAgICAgICAgICB0aGlzLnVwZ3JhZGVhYmxlTGlzdFtpXSwNCiAgICAgICAgICAgICdtbicsDQogICAgICAgICAgICBpdGVtLmZpcnN0X3ZlcnNpb24gKyBpdGVtLnNlY29uZF92ZXJzaW9uICsgaXRlbS50aGlyZF92ZXJzaW9uICsgaXRlbS5mb3VydGhfdmVyc2lvbiwNCiAgICAgICAgICApOw0KICAgICAgICB9KTsNCiAgICAgICAgaWYgKHRoaXMudXBncmFkZUxpc3RbaV0ubW4gPT0gdGhpcy51cGdyYWRlYWJsZUxpc3RbaV0ubW4pIHsNCiAgICAgICAgICB0aGlzLiRzZXQodGhpcy51cGdyYWRlTGlzdFtpXSwgJ2luZGV4bicsIHRydWUpOw0KICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnVwZ3JhZGVMaXN0W2ldLCAncGFyYW1zX2tleScsIHRoaXMudXBncmFkZWFibGVMaXN0W2ldLnBhY2thZ2Vfa2V5KTsNCiAgICAgICAgICB0aGlzLiRzZXQodGhpcy51cGdyYWRlYWJsZUxpc3RbaV0sICdpbmRleG4nLCB0cnVlKTsNCiAgICAgICAgfQ0KICAgICAgfSk7DQogICAgfSwNCiAgICAvLyDlkIzmhI8NCiAgICBhZ3JlZSgpIHsNCiAgICAgIHRoaXMuZGVjbGFyYXRpb24gPSBmYWxzZTsNCiAgICAgIHRoaXMudXBkYXRlTW9kYWwgPSB0cnVlOw0KICAgICAgdGhpcy5nZXRkb3dubG9hZCgpOw0KICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KCJ1cGdyYWRlL1RPR0dMRV9TVEFUVVMiLGZhbHNlKQ0KICAgIH0sDQogICAgcmVqZWN0KCl7DQogICAgICB0aGlzLmRlY2xhcmF0aW9uID0gZmFsc2UNCiAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdCgidXBncmFkZS9UT0dHTEVfU1RBVFVTIixmYWxzZSkNCiAgICB9LA0KICAgIGJhY2soKSB7DQogICAgICB0aGlzLnVwZGF0ZU1vZGFsID0gZmFsc2U7DQogICAgICAvLyB0aGlzLmdldFVwZ3JhZGVMaXN0KCk7DQogICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpOw0KICAgICAgQWNjb3VudExvZ291dCgpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoJ+aCqOW3suaIkOWKn+mAgOWHuicpOw0KICAgICAgICAgIHRoaXMuJHJvdXRlci5yZXBsYWNlKHRoaXMuJHJvdXRlUHJvU3RyICsgJy9sb2dpbicpOw0KICAgICAgICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpOw0KICAgICAgICAgIHJlbW92ZUNvb2tpZXMoJ3Rva2VuJyk7DQogICAgICAgICAgcmVtb3ZlQ29va2llcygnZXhwaXJlc190aW1lJyk7DQogICAgICAgICAgcmVtb3ZlQ29va2llcygndXVpZCcpOw0KICAgICAgICAgIC8vIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKQ0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKHJlcykgPT4ge30pOw0KICAgIH0sDQogICAgYmFja1N1cmUoKSB7DQogICAgICB0aGlzLnVwZGF0ZU1vZGFsID0gZmFsc2U7DQogICAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpOw0KICAgIH0sDQogICAgY2FuY2VsKCkgew0KICAgICAgdGhpcy51cGRhdGVNb2RhbCA9IGZhbHNlOw0KICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTsNCiAgICB9LA0KICAgIC8vIOWvvOWHuuWkh+S7veaWh+S7tg0KICAgIGV4cG9ydHMoaXRlbSkgew0KICAgICAgbGV0IG5hbWUgPQ0KICAgICAgICBpdGVtLnRpdGxlICsNCiAgICAgICAgJ3YnICsNCiAgICAgICAgaXRlbS5maXJzdF92ZXJzaW9uICsNCiAgICAgICAgJy4nICsNCiAgICAgICAgaXRlbS5zZWNvbmRfdmVyc2lvbiArDQogICAgICAgICcuJyArDQogICAgICAgIGl0ZW0udGhpcmRfdmVyc2lvbiArDQogICAgICAgICcuJyArDQogICAgICAgIGl0ZW0uZm91cnRoX3ZlcnNpb24gKw0KICAgICAgICAnLicgKw0KICAgICAgICBpdGVtLnVwZ3JhZGVfdGltZTsNCiAgICAgIGxldCBocmVmID0gU2V0dGluZy5hcGlCYXNlVVJMICsgYC9zeXN0ZW0vdXBncmFkZV9leHBvcnQvJHtpdGVtLmlkfS9maWxlYDsNCiAgICAgIGF4aW9zKHsNCiAgICAgICAgbWV0aG9kOiAnZ2V0JywNCiAgICAgICAgdXJsOiBocmVmLA0KICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJywNCiAgICAgICAgaGVhZGVyczogew0KICAgICAgICAgICdBdXRob3JpLXphdGlvbic6ICdCZWFyZXIgJyArIGdldENvb2tpZXMoJ3Rva2VuJyksDQogICAgICAgIH0sDQogICAgICB9KS50aGVuKChyZXMpID0+IHsNCiAgICAgICAgdmFyIGJsb2IgPSBuZXcgQmxvYihbcmVzLmRhdGFdLCB7DQogICAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTtjaGFyc2V0PVVURi04JywNCiAgICAgICAgfSk7DQogICAgICAgIHZhciBkb3dubG9hZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7DQogICAgICAgIC8vIOS4i+i9veeahOaWh+S7tuWQjQ0KICAgICAgICBkb3dubG9hZEVsZW1lbnQuZG93bmxvYWQgPSBgJHtuYW1lfS56aXBgOw0KICAgICAgICAvLyDliJvlu7rkuIvovb3nmoTpk77mjqUNCiAgICAgICAgZG93bmxvYWRFbGVtZW50LmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsNCiAgICAgICAgLy8g54K55Ye75LiL6L29DQogICAgICAgIGRvd25sb2FkRWxlbWVudC5jbGljaygpOw0KICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvd25sb2FkRWxlbWVudCk7DQogICAgICAgIC8vIOS4i+i9veWujOaIkOenu+mZpOWFg+e0oA0KICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvd25sb2FkRWxlbWVudCk7DQogICAgICAgIC8vIOmHiuaUvuaOiWJsb2Llr7nosaENCiAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwoZG93bmxvYWRFbGVtZW50LmhyZWYpOw0KICAgICAgfSk7DQogICAgfSwNCiAgICBoYW5kbGVEb3dubG9hZChpdGVtKSB7DQogICAgICBsZXQgbmFtZSA9DQogICAgICAgIGl0ZW0udGl0bGUgKw0KICAgICAgICAndicgKw0KICAgICAgICBpdGVtLmZpcnN0X3ZlcnNpb24gKw0KICAgICAgICAnLicgKw0KICAgICAgICBpdGVtLnNlY29uZF92ZXJzaW9uICsNCiAgICAgICAgJy4nICsNCiAgICAgICAgaXRlbS50aGlyZF92ZXJzaW9uICsNCiAgICAgICAgJy4nICsNCiAgICAgICAgaXRlbS5mb3VydGhfdmVyc2lvbiArDQogICAgICAgICcuJyArDQogICAgICAgIGl0ZW0udXBncmFkZV90aW1lOw0KICAgICAgbGV0IGhyZWYgPSBTZXR0aW5nLmFwaUJhc2VVUkwgKyBgL3N5c3RlbS91cGdyYWRlX2V4cG9ydC8ke2l0ZW0uaWR9L2RhdGFgOw0KICAgICAgYXhpb3Moew0KICAgICAgICBtZXRob2Q6ICdnZXQnLA0KICAgICAgICB1cmw6IGhyZWYsDQogICAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLA0KICAgICAgICBoZWFkZXJzOiB7DQogICAgICAgICAgJ0F1dGhvcmktemF0aW9uJzogJ0JlYXJlciAnICsgZ2V0Q29va2llcygndG9rZW4nKSwNCiAgICAgICAgfSwNCiAgICAgIH0pLnRoZW4oKHJlcykgPT4gew0KICAgICAgICB2YXIgYmxvYiA9IG5ldyBCbG9iKFtyZXMuZGF0YV0sIHsNCiAgICAgICAgICB0eXBlOiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2NoYXJzZXQ9VVRGLTgnLA0KICAgICAgICB9KTsNCiAgICAgICAgdmFyIGRvd25sb2FkRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsNCiAgICAgICAgLy8g5LiL6L2955qE5paH5Lu25ZCNDQogICAgICAgIGRvd25sb2FkRWxlbWVudC5kb3dubG9hZCA9IGAke25hbWV9Lmd6YDsNCiAgICAgICAgLy8g5Yib5bu65LiL6L2955qE6ZO+5o6lDQogICAgICAgIGRvd25sb2FkRWxlbWVudC5ocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7DQogICAgICAgIC8vIOeCueWHu+S4i+i9vQ0KICAgICAgICBkb3dubG9hZEVsZW1lbnQuY2xpY2soKTsNCiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb3dubG9hZEVsZW1lbnQpOw0KICAgICAgICAvLyDkuIvovb3lrozmiJDnp7vpmaTlhYPntKANCiAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZEVsZW1lbnQpOw0KICAgICAgICAvLyDph4rmlL7mjolibG9i5a+56LGhDQogICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKGRvd25sb2FkRWxlbWVudC5ocmVmKTsNCiAgICAgIH0pOw0KICAgIH0sDQogICAgcXVlYXJ5RXZlYXIoaWQsIGluZGV4KSB7DQogICAgICB0aGlzLmR5bmFtaWMgPSBpbmRleDsNCiAgICB9LA0KICB9LA0KICBkZXN0cm95ZWQoKSB7DQogICAgLy/plIDmr4ENCiAgICBjbGVhckludGVydmFsKHRoaXMudGltZXIpOw0KICB9LA0KfTsNCg=="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AAkIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/pages/system/onlineUpgrade","sourcesContent":["<template>\r\n<div class=\"upgrade\">\r\n <el-card :bordered=\"false\" shadow=\"never\" 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 <el-button v-if=\"currentTab == 1 && upgradeStatus.status == 1\" type=\"primary\" class=\"primary btn update\" v-db-click @click=\"update()\">立即更新</el-button>\r\n </div>\r\n </el-card>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt\">\r\n <el-tabs v-model=\"currentTab\" @tab-click=\"handleClick\">\r\n <el-tab-pane :label=\"item.label\" :name=\"item.value.toString()\" v-for=\"item in headerList\" :key=\"item.id\" ></el-tab-pane>\r\n </el-tabs>\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 <el-timeline class=\"list\">\r\n <el-timeline-item>\r\n <!-- <Icon :type=\"index==0 ? 'md-radio-button-on' : 'md-radio-button-off'\" slot=\"dot\"/> -->\r\n <el-collapse>\r\n <el-collapse-item >\r\n <template slot=\"title\">\r\n {{item.title}} v{{item.first_version}}.{{item.second_version}}.{{item.third_version}}.{{item.fourth_version}}<i class=\"el-icon-arrow-down\" />\r\n </template>\r\n <p 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 </el-collapse-item>\r\n </el-collapse>\r\n </el-timeline-item>\r\n <el-button v-if=\"item.client_package_link\" type=\"success\" class=\"primary btn\" v-db-click @click=\"downloadFile(item.client_package_link)\">移动端源码</el-button>\r\n <el-button v-if=\"item.pc_package_link\" type=\"primary\" class=\"primary btn1\" v-db-click @click=\"downloadFile(item.pc_package_link)\">PC端源码</el-button>\r\n </el-timeline>\r\n </div>\r\n </div>\r\n <div v-if=\"currentTab == 2\" 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 <el-timeline class=\"list\">\r\n <el-timeline-item>\r\n <Icon :type=\"index==0 ? 'md-radio-button-on' : 'md-radio-button-off'\" slot=\"dot\"/>\r\n <el-collapse>\r\n <el-collapse-item>\r\n <template slot=\"title\">\r\n {{item.title}} v{{item.first_version}}.{{item.second_version}}.{{item.third_version}}.{{item.fourth_version}}<i type=\"el-icon-arrow-down\" />\r\n </template>\r\n <p 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 </el-collapse-item>\r\n </el-collapse>\r\n </el-timeline-item>\r\n </el-timeline>\r\n </div>\r\n </div>\r\n </div>\r\n </el-card>\r\n <!-- 免责声明 -->\r\n <el-dialog :visible.sync=\"declaration\"\r\n width=\"470px\"\r\n custom-clas=\"vertical-center-modal\"\r\n :show-close=\"true\"\r\n :close-on-click-modal=\"false\"\r\n >\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 <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button v-db-click @click=\"reject\">拒 绝</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"agree\">同 意</el-button>\r\n </span>\r\n </el-dialog>\r\n <!-- 升级 -->\r\n <el-dialog v-model=\"updateModal\" width=\"470px\" custom-clas=\"vertical-center-modal\" :show-close=\"true\"\r\n :close-on-click-modal=\"false\">\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'\"><el-button class=\"back\" type=\"primary\" shape=\"circle\" v-db-click @click=\"updateModal = false\">确认</el-button></div> -->\r\n </div>\r\n <div v-if=\"upgradeProgress.speed == '100.0'\" class=\"describe\">\r\n <el-progress type=\"circle\" :percentage=\"100\" status=\"success\"></el-progress>\r\n <div class=\"success\">升级成功</div>\r\n </div>\r\n <div v-if=\"upgradeProgress.speed == '100.0'\" slot=\"footer\" class=\"footer2\">\r\n <el-button class=\"confirm\" type=\"primary\" shape=\"circle\" v-db-click @click=\"back()\">确认</el-button>\r\n <!-- <div><el-button class=\"back\" shape=\"circle\" v-db-click @click=\"backSure()\">返回</el-button></div> -->\r\n </div>\r\n <span v-if=\"upgradeProgress.speed == '100.0'\" slot=\"footer\" class=\"dialog-footer\">\r\n <el-button v-db-click @click=\"cancel\">取 消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"back\">确 认</el-button>\r\n </span>\r\n </el-dialog>\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() {\r\n this.page = 1\r\n if(this.currentTab == 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 },\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 if(this.count === this.upgradeLogList.length) {\r\n this.$message.warning('暂无更多升级记录')\r\n } else {\r\n this.getUpgradeLogList();\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 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 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 if (this.$store.state.upgrade.toggleStatus || this.upgradeStatus.force_reminder) {\r\n this.params_key = this.newKey;\r\n }\r\n downloadApi(this.params_key)\r\n .then((res) => {\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(this.$routeProStr + '/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(this.timer);\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" 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\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: var(--prev-color-primary);\r\n margin-left: 10px;\r\n}\r\n\r\n.upgrade .header .num {\r\n color: var(--prev-color-primary);\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: 5px;\r\n right: 60px;\r\n z-index: 99;\r\n height: max-content;\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: var(--prev-color-primary);\r\n font-size: 18px;\r\n}\r\n::v-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: var(--prev-color-primary);\r\n}\r\n\r\n.on:first-child .ivu-collapse-header {\r\n color: var(--prev-color-primary) !important;\r\n}\r\n\r\n.upgrade .contentTime .off:first-child .ivu-timeline-item-head-custom {\r\n color: var(--prev-color-primary);\r\n font-size: 18px;\r\n}\r\n\r\n.off:first-child .ivu-collapse-header {\r\n color: var(--prev-color-primary) !important;\r\n}\r\n\r\n.off:first-child .time {\r\n color: var(--prev-color-primary) !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::v-deep .vertical-center-modal .ivu-modal-header{\r\n padding: 0 !important;\r\n border: none;\r\n}\r\n::v-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"]}]}