(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[12],{ /***/ "./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/views/ContainerManager.vue?vue&type=script&lang=js": /*!******************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/views/ContainerManager.vue?vue&type=script&lang=js ***! \******************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: default */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _main__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../main */ \"./src/main.js\");\n/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! element-ui */ \"./node_modules/element-ui/lib/element-ui.common.js\");\n/* harmony import */ var element_ui__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(element_ui__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nlet ws;\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n name: \"ContainerManager\",\n data() {\n return {\n form: {\n sourceType: 'Git',\n containerName: ''\n },\n gitForm: {\n repo: '',\n branch: '',\n username: '',\n password: ''\n },\n sourceInfo: '',\n id: '',\n appId: window.localStorage.getItem(\"Power_appId\"),\n dialogVisible: false,\n arrangeTitle: '',\n arrangeVisible: false,\n containerList: [],\n logs: [],\n requestUrl: \"\",\n fileList: [],\n headersObj: {\n PowerJwt: undefined,\n AppId: undefined\n }\n };\n },\n methods: {\n onSubmit() {\n const that = this;\n // 接口参数\n let data = {\n appId: this.appId,\n containerName: this.form.containerName,\n status: \"ENABLE\",\n id: this.id,\n sourceType: this.form.sourceType\n };\n if (this.form.sourceType == 'Git') {\n data.sourceInfo = JSON.stringify(this.gitForm);\n } else {\n data.sourceInfo = this.sourceInfo;\n data.sourceType = 'FatJar';\n }\n this.axios.post(\"container/save\", data).then(res => {\n console.log('container save result:' + JSON.stringify(res));\n element_ui__WEBPACK_IMPORTED_MODULE_2__[\"Message\"].success(\"SUCCESS\");\n // 恢复默认表单\n that.dialogVisible = false;\n that.form.containerName = '';\n that.gitForm = {};\n that.sourceInfo = '';\n that.id = '';\n that.listContainers();\n });\n },\n // 文件上传成功后 修改来源信息\n onSuccess(response) {\n this.sourceInfo = response.data;\n },\n deleteItem(item, index) {\n let appId = window.localStorage.getItem(\"Power_appId\");\n this.axios.get(\"/container/delete?containerId=\" + item.id + '&appId=' + appId).then(res => {\n console.log(res);\n this.containerList.splice(index, 1);\n this.$message.info(this.$t('message.success'));\n });\n },\n editItem(item) {\n if (item.sourceType == 'Git') {\n this.form.sourceType = 'Git';\n this.gitForm = JSON.parse(item.sourceInfo);\n } else {\n this.form.sourceType = 'FatJar';\n }\n this.form.containerName = item.containerName;\n this.id = item.id;\n this.dialogVisible = true;\n },\n arrangeItem(item) {\n let wsBase = this.requestUrl.replace(\"http\", \"ws\") + \"/container/deploy/\";\n let wsUrl = wsBase + item.id;\n ws = new WebSocket(wsUrl);\n ws.onopen = () => {\n this.arrangeTitle = this.$t('message.deploy');\n this.arrangeVisible = true;\n console.log(\"Connection open ...\");\n ws.send(\"Hello WebSockets!\");\n };\n ws.onmessage = evt => {\n this.logs.push(evt.data);\n };\n ws.onclose = () => {\n console.log(\"Connection closed.\");\n };\n },\n // 关闭部署页面时 关闭ws避免dialog内的信息有上台机器信息\n closeArrange() {\n ws.close();\n this.logs = [];\n },\n closeEdit() {\n this.sourceInfo = '';\n this.fileList = [];\n },\n listOfItem(item) {\n let appId = window.localStorage.getItem(\"Power_appId\");\n this.axios.get(\"/container/listDeployedWorker?containerId=\" + item.id + '&appId=' + appId).then(res => {\n if (res.data.data) {\n this.logs = res.data.data.split('\\n');\n this.arrangeTitle = this.$t('message.deployedWorkerList');\n this.arrangeVisible = true;\n }\n // this.containerList.splice(index,1);\n // this.$message(`容器${item.containerName}已删除`);\n });\n },\n // 兼容 java build in 模式下 baseURL 为 / 的情况(将当前url作为请求路径)\n calculateRequestUrl() {\n if (_main__WEBPACK_IMPORTED_MODULE_1__[\"default\"] === undefined || !_main__WEBPACK_IMPORTED_MODULE_1__[\"default\"].includes(\"http\")) {\n let url = window.location.href;\n let urlSplit = url.split('//'); // str1[0]--协议头\n let ip = urlSplit[1].split('/')[0];\n this.requestUrl = urlSplit[0] + '//' + ip;\n console.log(\"calculateRequestUrl: \" + this.requestUrl);\n } else {\n this.requestUrl = _main__WEBPACK_IMPORTED_MODULE_1__[\"default\"];\n }\n },\n listContainers() {\n let appId = window.localStorage.getItem(\"Power_appId\");\n this.axios.get(\"/container/list?appId=\" + appId).then(res => {\n console.log(res);\n if (res.data.success) {\n this.containerList = res.data.data;\n }\n });\n }\n },\n mounted() {\n this.calculateRequestUrl();\n this.listContainers();\n this.headersObj.AppId = window.localStorage.getItem(\"Power_appId\");\n this.headersObj.PowerJwt = window.localStorage.getItem(\"PowerJwt\");\n }\n});\n\n//# sourceURL=webpack:///./src/components/views/ContainerManager.vue?./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), /***/ "./node_modules/cache-loader/dist/cjs.js?{\"cacheDirectory\":\"node_modules/.cache/vue-loader\",\"cacheIdentifier\":\"77823dab-vue-loader-template\"}!./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/views/ContainerManager.vue?vue&type=template&id=2290191d&scoped=true": /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"77823dab-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/views/ContainerManager.vue?vue&type=template&id=2290191d&scoped=true ***! \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! exports provided: render, staticRenderFns */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", [_c(\"el-card\", {\n staticClass: \"box-card\"\n }, [_c(\"div\", {\n staticClass: \"clearfix\",\n attrs: {\n slot: \"header\"\n },\n slot: \"header\"\n }, [_c(\"span\"), _c(\"el-button\", {\n staticStyle: {\n float: \"right\"\n },\n attrs: {\n type: \"primary\"\n },\n on: {\n click: function ($event) {\n _vm.dialogVisible = true;\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.newContainer\")))])], 1), _c(\"div\", {\n staticClass: \"wrapper\"\n }, _vm._l(_vm.containerList, function (item, key) {\n return _c(\"div\", {\n key: key,\n staticClass: \"item\"\n }, [_c(\"div\", {\n staticClass: \"containerText\"\n }, [_c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.containerId\")))]), _c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(item.id))])]), _c(\"div\", {\n staticClass: \"containerText\"\n }, [_c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(\" \" + _vm._s(_vm.$t(\"message.containerName\")) + \" \")]), _c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(item.containerName))])]), _c(\"div\", {\n staticClass: \"containerText\"\n }, [_c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.containerType\")) + \" \")]), _c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(item.sourceType))])]), _c(\"div\", {\n staticClass: \"containerText\"\n }, [_c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.containerVersion\")) + \" \")]), _c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(item.version))])]), _c(\"div\", {\n staticClass: \"containerText\"\n }, [_c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.deployTime\")) + \" \")]), _c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(item.lastDeployTime))])]), _c(\"div\", {\n staticClass: \"containerText\"\n }, [_c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.status\")) + \" \")]), _c(\"span\", {\n staticClass: \"value\"\n }, [_vm._v(_vm._s(item.status))])]), _c(\"div\", {\n staticStyle: {\n width: \"240px\",\n margin: \"0 auto\"\n }\n }, [_c(\"div\", {\n staticClass: \"btnWrap\"\n }, [_c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: function ($event) {\n return _vm.arrangeItem(item);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.deploy\")))])], 1), _c(\"div\", {\n staticClass: \"btnWrap\"\n }, [_c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: function ($event) {\n return _vm.editItem(item);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.edit\")))])], 1), _c(\"div\", {\n staticClass: \"btnWrap\"\n }, [_c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: function ($event) {\n return _vm.deleteItem(item, key);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.delete\")))])], 1), _c(\"div\", {\n staticClass: \"btnWrap\"\n }, [_c(\"el-button\", {\n attrs: {\n type: \"primary\"\n },\n on: {\n click: function ($event) {\n return _vm.listOfItem(item);\n }\n }\n }, [_vm._v(_vm._s(_vm.$t(\"message.deployedWorkerList\")))])], 1)])]);\n }), 0)]), _c(\"el-dialog\", {\n attrs: {\n title: _vm.$t(\"message.newContainer\"),\n visible: _vm.dialogVisible,\n width: \"50%\"\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.dialogVisible = $event;\n },\n close: _vm.closeEdit\n }\n }, [_c(\"el-form\", {\n ref: \"form\",\n staticClass: \"genTable\",\n attrs: {\n model: _vm.form,\n \"label-width\": \"150px\",\n \"label-position\": \"left\"\n }\n }, [_c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.containerName\")\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.form.containerName,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"containerName\", $$v);\n },\n expression: \"form.containerName\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.containerType\")\n }\n }, [_c(\"el-radio-group\", {\n model: {\n value: _vm.form.sourceType,\n callback: function ($$v) {\n _vm.$set(_vm.form, \"sourceType\", $$v);\n },\n expression: \"form.sourceType\"\n }\n }, [_c(\"el-radio\", {\n attrs: {\n label: \"Git\"\n }\n }), _c(\"el-radio\", {\n attrs: {\n label: \"FatJar\"\n }\n })], 1)], 1), _vm.form.sourceType == \"Git\" ? _c(\"el-form\", {\n ref: \"gitform\",\n staticClass: \"gitTable\",\n attrs: {\n model: _vm.gitForm,\n \"label-width\": \"150px\",\n \"label-position\": \"left\"\n }\n }, [_c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.containerGitURL\")\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.gitForm.repo,\n callback: function ($$v) {\n _vm.$set(_vm.gitForm, \"repo\", $$v);\n },\n expression: \"gitForm.repo\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.branchName\")\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.gitForm.branch,\n callback: function ($$v) {\n _vm.$set(_vm.gitForm, \"branch\", $$v);\n },\n expression: \"gitForm.branch\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.username\")\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.gitForm.username,\n callback: function ($$v) {\n _vm.$set(_vm.gitForm, \"username\", $$v);\n },\n expression: \"gitForm.username\"\n }\n })], 1), _c(\"el-form-item\", {\n attrs: {\n label: _vm.$t(\"message.password\")\n }\n }, [_c(\"el-input\", {\n model: {\n value: _vm.gitForm.password,\n callback: function ($$v) {\n _vm.$set(_vm.gitForm, \"password\", $$v);\n },\n expression: \"gitForm.password\"\n }\n })], 1)], 1) : _vm._e(), _vm.form.sourceType == \"FatJar\" ? _c(\"el-form-item\", [_c(\"el-upload\", {\n staticClass: \"upload-demo\",\n attrs: {\n drag: \"\",\n \"file-list\": _vm.fileList,\n \"on-success\": _vm.onSuccess,\n action: `${_vm.requestUrl}/container/jarUpload`,\n headers: _vm.headersObj,\n multiple: \"\"\n }\n }, [_c(\"i\", {\n staticClass: \"el-icon-upload\"\n }), _c(\"div\", {\n staticClass: \"el-upload__text\"\n }, [_vm._v(\"Drag the file here, or \"), _c(\"em\", [_vm._v(\"click on Upload\")])]), _c(\"div\", {\n staticClass: \"el-upload__tip\",\n attrs: {\n slot: \"tip\"\n },\n slot: \"tip\"\n }, [_vm._v(_vm._s(_vm.$t(\"message.uploadTips\")))])])], 1) : _vm._e(), _c(\"el-form-item\", [_c(\"el-button\", {\n attrs: {\n type: \"primary\",\n disabled: _vm.form.sourceType == \"FatJar\" && !this.sourceInfo\n },\n on: {\n click: _vm.onSubmit\n }\n }, [_vm._v(\"Save\")])], 1)], 1)], 1), _c(\"el-dialog\", {\n attrs: {\n title: _vm.arrangeTitle,\n visible: _vm.arrangeVisible\n },\n on: {\n \"update:visible\": function ($event) {\n _vm.arrangeVisible = $event;\n },\n close: _vm.closeArrange\n }\n }, _vm._l(_vm.logs, function (log) {\n return _c(\"h4\", {\n key: log\n }, [_vm._v(_vm._s(log))]);\n }), 0)], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\n\n\n//# sourceURL=webpack:///./src/components/views/ContainerManager.vue?./node_modules/cache-loader/dist/cjs.js?%7B%22cacheDirectory%22:%22node_modules/.cache/vue-loader%22,%22cacheIdentifier%22:%2277823dab-vue-loader-template%22%7D!./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), /***/ "./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/views/ContainerManager.vue?vue&type=style&index=0&id=2290191d&scoped=true&lang=css": /*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/views/ContainerManager.vue?vue&type=style&index=0&id=2290191d&scoped=true&lang=css ***! \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { eval("// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ \"./node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.i, \"\\n.genTable[data-v-2290191d]{\\n padding:20px;\\n min-width: 500px;\\n width: 500px;\\n}\\n.clearfix[data-v-2290191d]:before,\\n .clearfix[data-v-2290191d]:after {\\n display: table;\\n content: \\\"\\\";\\n}\\n.clearfix[data-v-2290191d]:after {\\n clear: both\\n}\\n.wrapper[data-v-2290191d]{\\n display: flex;\\n flex-wrap: wrap;\\n}\\n.item[data-v-2290191d]{\\n flex:0 0 340px;\\n margin-right:20px;\\n margin-bottom:20px;\\n background-color: #f0f0f0;\\n}\\n.item button[data-v-2290191d]{\\n width:100px;\\n margin:0 auto;\\n}\\n.btnWrap[data-v-2290191d]{\\n width:50%;\\n float: left;\\n margin-bottom: 20px;\\n display: flex;\\n justify-content: center;\\n}\\n.containerText[data-v-2290191d]{\\n margin: 20px;\\n font-size: 16px;\\n box-sizing: border-box;\\n}\\n.value[data-v-2290191d]{\\n display: inline-block;\\n max-width: 200px;\\n overflow:hidden;\\n margin-left: 20px;\\n}\\n.el-dialog[data-v-2290191d]{\\n height: 100vh;\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n\n\n//# sourceURL=webpack:///./src/components/views/ContainerManager.vue?./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), /***/ "./node_modules/vue-style-loader/index.js?!./node_modules/css-loader/dist/cjs.js?!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src/index.js?!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/components/views/ContainerManager.vue?vue&type=style&index=0&id=2290191d&scoped=true&lang=css": /*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/vue-style-loader??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--6-oneOf-1-2!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/views/ContainerManager.vue?vue&type=style&index=0&id=2290191d&scoped=true&lang=css ***! \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { eval("// style-loader: Adds some css to the DOM by adding a