From 4b0d0bbf8e0548ce29557a562813668d51248272 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=81=E7=AB=AD=E5=8A=9B?= Date: Wed, 20 Oct 2021 19:51:01 +0800 Subject: [PATCH 1/2] 20211020-1 --- package.json | 6 +- public/index.html | 2 +- src/App.vue | 60 +------------------- src/components/Panel.vue | 13 +++-- src/components/Settings.vue | 15 ++--- src/components/SideBar.vue | 11 ++-- src/components/fileList/FilePanel.vue | 12 ++-- src/components/forms/ImportPanel.vue | 12 ++-- src/components/forms/Ports.vue | 4 +- src/main.js | 12 ++-- src/router/index.js | 19 ++++++- src/views/Home.vue | 80 ++++++++++++++++++++++++++ src/views/Login.vue | 23 ++++++++ src/widgets/Clock.vue | 8 ++- vue.config.js | 4 +- yarn.lock | 82 ++++++++++++++++++++++++--- 16 files changed, 253 insertions(+), 110 deletions(-) create mode 100644 src/views/Home.vue create mode 100644 src/views/Login.vue diff --git a/package.json b/package.json index bb59794f..5b4eb326 100644 --- a/package.json +++ b/package.json @@ -9,16 +9,17 @@ }, "dependencies": { "@hscmap/vue-window": "^2.4.2", + "@mdi/font": "^6.3.95", "apexcharts": "^3.28.3", "axios": "^0.21.4", "buefy": "^0.9.0", "core-js": "^3.6.5", + "dateformat": "^5.0.2", "easy-affix": "^1.0.8", "file-saver": "^2.0.5", "lodash": "^4.17.21", "lodash.debounce": "^4.0.8", "lottie-vuejs": "^0.4.0", - "moment": "^2.29.1", "nth-check": "^2.0.1", "qs": "^6.10.1", "vee-validate": "^3.4.12", @@ -45,6 +46,7 @@ "node-sass": "^4.9.0", "sass-loader": "^7.0.1", "vue-cli-plugin-buefy": "~0.3.8", - "vue-template-compiler": "^2.6.11" + "vue-template-compiler": "^2.6.11", + "webpack-bundle-analyzer": "^4.5.0" } } diff --git a/public/index.html b/public/index.html index 43d77fa2..1039f7e6 100644 --- a/public/index.html +++ b/public/index.html @@ -14,7 +14,7 @@ - + <%= htmlWebpackPlugin.options.title %> diff --git a/src/App.vue b/src/App.vue index 8b717d72..f21e0204 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,57 +2,14 @@ * @Author: JerryK * @Date: 2021-09-18 21:32:13 * @LastEditors: JerryK - * @LastEditTime: 2021-10-11 17:57:40 + * @LastEditTime: 2021-10-20 16:38:51 * @Description: Main entry of application * @FilePath: /CasaOS-UI/src/App.vue --> + + \ No newline at end of file diff --git a/src/views/Login.vue b/src/views/Login.vue new file mode 100644 index 00000000..2a9f8958 --- /dev/null +++ b/src/views/Login.vue @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/src/widgets/Clock.vue b/src/widgets/Clock.vue index 941bd1e4..f82597e0 100644 --- a/src/widgets/Clock.vue +++ b/src/widgets/Clock.vue @@ -6,7 +6,8 @@ @@ -14,10 +18,10 @@ - <%= htmlWebpackPlugin.options.title %> + diff --git a/src/App.vue b/src/App.vue index f21e0204..0f72b413 100644 --- a/src/App.vue +++ b/src/App.vue @@ -2,7 +2,7 @@ * @Author: JerryK * @Date: 2021-09-18 21:32:13 * @LastEditors: JerryK - * @LastEditTime: 2021-10-20 16:38:51 + * @LastEditTime: 2021-10-21 13:30:20 * @Description: Main entry of application * @FilePath: /CasaOS-UI/src/App.vue --> @@ -48,29 +48,13 @@ export default { } }, created() { - // Check if not login then login and get token - if (!localStorage.getItem("user_token")) { - this.login() - } + }, mounted() { //this.$tours['myTour'].start() }, methods: { - login() { - /** - * @description: Login - * @return void - */ - // this.$api.user.login({ - // username: "admin", - // pwd: "admin" - // }).then((res) => { - // if (res.data.success == 200) { - // localStorage.setItem("user_token", res.data.data) - // } - // }) - } + }, } diff --git a/src/assets/ani/done.json b/src/assets/ani/done.json new file mode 100644 index 00000000..629f5320 --- /dev/null +++ b/src/assets/ani/done.json @@ -0,0 +1 @@ +{"v":"5.1.8","fr":24,"ip":0,"op":72,"w":62,"h":62,"nm":"FINALE","ddd":0,"assets":[{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 4","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[105,105,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-56.964,0.265],[-16.566,34.639],[57.229,-48.946]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0.11372549019607843,0.6352941176470588,0.8705882352941177,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":16,"ix":5},"lc":2,"lj":2,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.8],"y":[0]},"n":["0p2_1_0p8_0"],"t":20,"s":[0],"e":[100]},{"t":39.999996537879}],"ix":1},"e":{"a":0,"k":100,"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":71.9999937681822,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Layer 2 Outlines","tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[105.114,105.239,0],"ix":2},"a":{"a":0,"k":[50.559,40.579,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.124,-0.094],[0.925,-1.068],[0,0],[0,0],[1.702,-0.778],[0.237,-2.032],[-1.466,-1.237],[0,0],[-1.821,2.039],[0,0],[0.835,2.179]],"o":[[-1.332,0.047],[0,0],[0,0],[-1.45,-1.261],[-1.701,0.779],[-0.237,2.034],[0,0],[2.043,1.76],[0,0],[1.529,-1.645],[-0.835,-2.178]],"v":[[44.56,-40.235],[41.038,-38.496],[-17.23,26.438],[-41.84,5.255],[-46.938,4.474],[-50.072,9.02],[-48.083,14.308],[-19.911,38.569],[-13.148,38.079],[48.322,-30.423],[49.473,-36.774]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[50.558,40.579],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":72.3381841595917,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"Shape Layer 3","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[105,105,0],"ix":2},"a":{"a":0,"k":[24,32,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.133,0.133,0.18],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,-15.889]},"n":["0p133_1_0p167_0","0p133_1_0p167_0","0p18_1_0p167_-15p889"],"t":13,"s":[110,110,100],"e":[0,0,100]},{"t":25.9999977496214}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[200,200],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.11372549019607843,0.6352941176470588,0.8705882352941177,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.11372549019607843,0.6352941176470588,0.8705882352941177,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24,32],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":72.3381841595917,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"Shape Layer 2","tt":2,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":90,"ix":10},"p":{"a":0,"k":[105,105,0],"ix":2},"a":{"a":0,"k":[24,32,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[200,200],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.11372549019607843,0.6352941176470588,0.8705882352941177,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"fl","c":{"a":0,"k":[0.11372549019607843,0.6352941176470588,0.8705882352941177,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[24,32],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":72.3381841595917,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-180,"ix":10},"p":{"a":0,"k":[105,105,0],"ix":2},"a":{"a":0,"k":[24,32,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[200,200],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.11372549019607843,0.6352941176470588,0.8705882352941177,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":8,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[24,32],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":2,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.7],"y":[0]},"n":["0p833_0p833_0p7_0"],"t":0,"s":[0],"e":[100]},{"t":14.9999987017046}],"ix":2},"o":{"a":0,"k":180,"ix":3},"m":1,"ix":2,"nm":"Trim Paths 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":72.3381841595917,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":0,"nm":"Icons","refId":"comp_2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[30.999999999999993,30.999999999999993,0],"ix":2},"a":{"a":0,"k":[105,105,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.39,0.39,0.39],"y":[1,1,1]},"o":{"x":[0.61,0.61,0.61],"y":[0,0,0]},"n":["0p39_1_0p61_0","0p39_1_0p61_0","0p39_1_0p61_0"],"t":26,"s":[24.799999999999997,24.799999999999997,100],"e":[27.279999999999998,27.279999999999998,100]},{"i":{"x":[0.39,0.39,0.39],"y":[1,1,1]},"o":{"x":[0.61,0.61,0.61],"y":[0,0,0]},"n":["0p39_1_0p61_0","0p39_1_0p61_0","0p39_1_0p61_0"],"t":31,"s":[27.279999999999998,27.279999999999998,100],"e":[24.799999999999997,24.799999999999997,100]},{"t":35.9999968840911}],"ix":6}},"ao":0,"w":210,"h":210,"ip":0,"op":71.9999937681822,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/public/img/ani/rocket-launching.json b/src/assets/ani/rocket-launching.json similarity index 100% rename from public/img/ani/rocket-launching.json rename to src/assets/ani/rocket-launching.json diff --git a/src/assets/scss/app.scss b/src/assets/scss/app.scss index e3cadd7c..ef272fb6 100644 --- a/src/assets/scss/app.scss +++ b/src/assets/scss/app.scss @@ -13,6 +13,12 @@ $twitter-invert: findColorInvert($twitter); $github: #333; $github-invert: findColorInvert($github); +$primary: #2276f3; +$primary-light: findLightColor($primary); +$primary-dark: findDarkColor($primary); +$primary-invert: findColorInvert($primary); +$loading-icon-size: 2.5rem; + @import "~bulma/sass/utilities/derived-variables"; // 3. Add new color variables to the color map. @@ -72,7 +78,7 @@ html { min-width: 20rem; .dropdown-content { .dropdown-item { - padding: 1.25rem; + padding: 0.875rem 1.25rem; text-align: left; .item { height: 2rem; @@ -136,6 +142,7 @@ html { .contents { flex: 1; overflow: auto; + height: calc(100vh - 3rem); } .side-bar { @@ -266,6 +273,7 @@ html { visibility: hidden; opacity: 0; transition: all 0.2s; + outline: none; } p { font-weight: 500; @@ -377,6 +385,25 @@ html { } .modal-card-body { padding: 0 3rem; + .loading-overlay .loading-icon:after { + -webkit-animation: spinAround 500ms infinite linear; + animation: spinAround 500ms infinite linear; + border: 4px solid #000; + border-radius: 9999px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; + position: absolute; + top: calc(50% - 1.25rem); + left: calc(50% - 1.25rem); + width: 2.5rem; + height: 2.5rem; + border-width: 0.2 em; + } .button.is-static, .input, .textarea, @@ -547,16 +574,49 @@ html { } .button.is-grey { - background-color: #A6AFB9; + background-color: #a6afb9; border-color: transparent; color: whitesmoke; } -.add-button{ +.add-button { color: #0e9aff; margin: 0 0.25rem; } -.nobrk{ +.nobrk { word-break: normal; -} \ No newline at end of file +} + +.home-section .loading-background { + background-color: transparent !important; +} + +.app-list { + min-height: 14rem; + position: relative; +} + +.suggestion-list { + min-height: 7.5rem; + position: relative; +} +// Login Page + +#login-page { + height: calc(100% - 5.5rem); + .login-panel { + text-align: left; + max-width: 30rem; + background: rgba(255, 255, 255, 0.56); + backdrop-filter: blur(1rem); + border-radius: 8px; + padding: 3.5rem 2.5rem; + width: 30rem; + } +} + +.install-animation { + width: 200px; + height: 200px; +} diff --git a/src/components/Apps.vue b/src/components/Apps.vue index 3ec84f05..dbaea000 100644 --- a/src/components/Apps.vue +++ b/src/components/Apps.vue @@ -2,13 +2,13 @@ * @Author: JerryK * @Date: 2021-09-18 21:32:13 * @LastEditors: JerryK - * @LastEditTime: 2021-10-09 17:19:09 + * @LastEditTime: 2021-10-22 14:57:20 * @Description: App module * @FilePath: /CasaOS-UI/src/components/Apps.vue --> @@ -35,7 +39,8 @@ export default { data() { return { appList: [], - appConfig: {} + appConfig: {}, + isLoading: true } }, components: { @@ -52,7 +57,11 @@ export default { */ getList() { this.$api.app.myAppList().then(res => { - this.appList = res.data.data; + if (res.data.success == 200) { + this.appList = res.data.data; + this.isLoading = false; + } + }) }, diff --git a/src/components/Apps/AppCard.vue b/src/components/Apps/AppCard.vue index dd8a18e8..af56a900 100644 --- a/src/components/Apps/AppCard.vue +++ b/src/components/Apps/AppCard.vue @@ -2,7 +2,7 @@ * @Author: JerryK * @Date: 2021-09-18 21:32:13 * @LastEditors: JerryK - * @LastEditTime: 2021-10-13 15:43:43 + * @LastEditTime: 2021-10-22 14:22:47 * @Description: App Card item * @FilePath: /CasaOS-UI/src/components/Apps/AppCard.vue --> @@ -103,7 +103,6 @@ export default { restartApp() { this.isRestarting = true this.$api.app.startContainer(this.item.custom_id, { state: "restart" }).then((res) => { - console.log(res.data); if (res.data.success == 200) { this.updateState() } @@ -171,7 +170,6 @@ export default { state: item.state == "running" ? "stop" : "start" } this.$api.app.startContainer(item.custom_id, data).then((res) => { - console.log(res.data); this.isStarting = false if (res.data.success == 200) { item.state = res.data.data diff --git a/src/components/Panel.vue b/src/components/Panel.vue index f4ca470a..4469d674 100644 --- a/src/components/Panel.vue +++ b/src/components/Panel.vue @@ -2,7 +2,7 @@ * @Author: JerryK * @Date: 2021-09-18 21:32:13 * @LastEditors: JerryK - * @LastEditTime: 2021-10-20 19:45:43 + * @LastEditTime: 2021-10-22 15:06:04 * @Description: Install Panel of Docker * @FilePath: /CasaOS-UI/src/components/Panel.vue --> @@ -87,7 +87,9 @@
- +
+ +

@@ -116,12 +118,15 @@ import InputGroup from './forms/InputGroup.vue'; import EnvInputGroup from './forms/EnvInputGroup.vue'; import Ports from './forms/Ports.vue' import ImportPanel from './forms/ImportPanel.vue' -import LottieAnimation from "lottie-vuejs/src/LottieAnimation.vue"; +import LottieAnimation from "lottie-web-vue"; import VueSlider from 'vue-slider-component' import 'vue-slider-component/theme/default.css' import { ValidationObserver, ValidationProvider } from "vee-validate"; import "@/plugins/vee-validate"; import debounce from 'lodash/debounce' +import find from 'lodash/find'; +import uniq from 'lodash/uniq'; +import orderBy from 'lodash/orderBy'; import FileSaver from 'file-saver'; export default { @@ -183,15 +188,9 @@ export default { }, created() { - //If it is edit, Init data - if (this.initDatas != undefined) { - this.initData = this.initDatas - this.webui = this.initDatas.port_map + this.initDatas.index - this.panelTitle = this.initData.label + " Setting" - } else { - this.panelTitle = "Install a new App manually" - } + // Set Front-end base url + this.baseUrl = `${window.location.protocol}//${document.domain}:`; //Get Max memory info form device this.totalMemory = Math.floor(this.configData.memory.total / 1048576); @@ -199,7 +198,7 @@ export default { //Handling network types this.tempNetworks = this.configData.networks; - this.networkModes = this.unique(this.tempNetworks.map(item => { + this.networkModes = uniq(this.tempNetworks.map(item => { return item.driver })) this.networks = this.networkModes.map(item => { @@ -210,17 +209,21 @@ export default { }) return tempitem }) + this.networks = orderBy(this.networks, ['driver'], ['asc']); - let gg = this.tempNetworks.filter(item => { - if (item.driver == "bridge") { - return item - } - }) - console.log(gg); - this.initData.network_model = gg.length > 0 ? gg[0].name : "bridge"; + //If it is edit, Init data + if (this.initDatas != undefined) { + this.initData = this.initDatas + this.webui = this.initDatas.port_map + this.initDatas.index + this.panelTitle = this.initData.label + " Setting" + } else { + this.panelTitle = "Install a new App manually" + let gg = find(this.tempNetworks, (o) => { + return o.driver == "bridge" + }) + this.initData.network_model = gg.length > 0 ? gg[0].name : "bridge"; + } - // Set Front-end base url - this.baseUrl = `${window.location.protocol}//${document.domain}:`; }, computed: { @@ -258,23 +261,6 @@ export default { this.initData.network_model = model[0] }, - /** - * @description: Array deduplication - * @param {Array} arr - * @return {Array} - */ - unique(arr) { - for (var i = 0; i < arr.length; i++) { - for (var j = i + 1; j < arr.length; j++) { - if (arr[i] == arr[j]) { - arr.splice(j, 1); - j--; - } - } - } - return arr; - }, - /** * @description: Back to prev Step * @param {*} @@ -384,7 +370,6 @@ export default { updateApp() { this.processData(); this.isLoading = true; - console.log(this.initData); this.$api.app.updateContainerSetting(this.id, this.initData).then((res) => { if (res.data.success == 200) { this.isLoading = false; diff --git a/src/components/Suggestion.vue b/src/components/Suggestion.vue index bf264f1b..d7956c34 100644 --- a/src/components/Suggestion.vue +++ b/src/components/Suggestion.vue @@ -2,32 +2,37 @@ * @Author: JerryK * @Date: 2021-09-18 21:32:13 * @LastEditors: JerryK - * @LastEditTime: 2021-10-09 17:15:37 + * @LastEditTime: 2021-10-22 14:57:06 * @Description: * @FilePath: /CasaOS-UI/src/components/Suggestion.vue -->