From 9bcbe1df055227db41b5edaa0de8c66e386894e1 Mon Sep 17 00:00:00 2001
From: zhengkunwang223 <31820853+zhengkunwang223@users.noreply.github.com>
Date: Wed, 17 Aug 2022 17:46:49 +0800
Subject: [PATCH] =?UTF-8?q?style:=20=E6=A0=B7=E5=BC=8F=E8=B0=83=E6=95=B4?=
=?UTF-8?q?=20=E5=B7=A6=E4=BE=A7=E8=8F=9C=E5=8D=95=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 1 +
frontend/src/assets/iconfont/iconfont.css | 58 +++++++++++++++---
frontend/src/assets/iconfont/iconfont.js | 2 +-
frontend/src/assets/iconfont/iconfont.svg | 26 +++++++-
frontend/src/assets/iconfont/iconfont.ttf | Bin 4456 -> 7900 bytes
frontend/src/assets/iconfont/iconfont.woff | Bin 2704 -> 4672 bytes
frontend/src/assets/iconfont/iconfont.woff2 | Bin 2120 -> 3760 bytes
.../header/components/CollapseIcon.vue | 8 ++-
.../components/app-layout/header/index.vue | 4 --
frontend/src/components/app-layout/index.vue | 6 +-
.../app-layout/menu/components/sub-item.vue | 19 +++---
.../src/components/app-layout/menu/index.scss | 5 ++
.../src/components/app-layout/menu/index.vue | 6 +-
frontend/src/components/svg-icon/svg-icon.vue | 14 ++---
frontend/src/lang/modules/zh.ts | 15 +++++
frontend/src/routers/{modules => }/demo.ts | 0
.../src/routers/modules/ file-management.ts | 25 --------
frontend/src/routers/modules/app-store.ts | 25 ++++++++
frontend/src/routers/modules/config.ts | 25 ++++++++
frontend/src/routers/modules/container.ts | 24 ++++++++
frontend/src/routers/modules/database.ts | 24 ++++++++
frontend/src/routers/modules/host.ts | 43 +++++++++++++
frontend/src/routers/modules/operation-log.ts | 4 +-
frontend/src/routers/modules/plan.ts | 24 ++++++++
frontend/src/routers/modules/terminal.ts | 28 ---------
frontend/src/routers/modules/toolbox.ts | 24 ++++++++
frontend/src/routers/modules/website.ts | 43 +++++++++++++
frontend/src/routers/router.ts | 2 +-
frontend/src/views/app-store/index.vue | 7 +++
frontend/src/views/container/index.vue | 7 +++
frontend/src/views/database/index.vue | 7 +++
.../file-management/change-role/index.vue | 0
.../file-management/code-editor/index.vue | 0
.../file-management/compress/index.vue | 0
.../file-management/create/index.vue | 0
.../file-management/decompress/index.vue | 0
.../file-management/download/index.vue | 0
.../{ => host}/file-management/index.vue | 0
.../{ => host}/file-management/move/index.vue | 0
.../file-management/rename/index.vue | 0
.../file-management/upload/index.vue | 0
.../{ => host}/file-management/wget/index.vue | 0
frontend/src/views/host/security/index.vue | 7 +++
.../{ => host}/terminal/command/index.vue | 0
.../views/{ => host}/terminal/host/index.vue | 0
.../src/views/{ => host}/terminal/index.vue | 0
.../{ => host}/terminal/terminal/index.vue | 0
frontend/src/views/plan/index.vue | 7 +++
frontend/src/views/system-config/index.vue | 7 +++
frontend/src/views/toolbox/index.vue | 7 +++
frontend/src/views/website/config/index.vue | 7 +++
frontend/src/views/website/firewall/index.vue | 7 +++
frontend/src/views/website/project/index.vue | 7 +++
53 files changed, 430 insertions(+), 95 deletions(-)
rename frontend/src/routers/{modules => }/demo.ts (100%)
delete mode 100644 frontend/src/routers/modules/ file-management.ts
create mode 100644 frontend/src/routers/modules/app-store.ts
create mode 100644 frontend/src/routers/modules/config.ts
create mode 100644 frontend/src/routers/modules/container.ts
create mode 100644 frontend/src/routers/modules/database.ts
create mode 100644 frontend/src/routers/modules/host.ts
create mode 100644 frontend/src/routers/modules/plan.ts
delete mode 100644 frontend/src/routers/modules/terminal.ts
create mode 100644 frontend/src/routers/modules/toolbox.ts
create mode 100644 frontend/src/routers/modules/website.ts
create mode 100644 frontend/src/views/app-store/index.vue
create mode 100644 frontend/src/views/container/index.vue
create mode 100644 frontend/src/views/database/index.vue
rename frontend/src/views/{ => host}/file-management/change-role/index.vue (100%)
rename frontend/src/views/{ => host}/file-management/code-editor/index.vue (100%)
rename frontend/src/views/{ => host}/file-management/compress/index.vue (100%)
rename frontend/src/views/{ => host}/file-management/create/index.vue (100%)
rename frontend/src/views/{ => host}/file-management/decompress/index.vue (100%)
rename frontend/src/views/{ => host}/file-management/download/index.vue (100%)
rename frontend/src/views/{ => host}/file-management/index.vue (100%)
rename frontend/src/views/{ => host}/file-management/move/index.vue (100%)
rename frontend/src/views/{ => host}/file-management/rename/index.vue (100%)
rename frontend/src/views/{ => host}/file-management/upload/index.vue (100%)
rename frontend/src/views/{ => host}/file-management/wget/index.vue (100%)
create mode 100644 frontend/src/views/host/security/index.vue
rename frontend/src/views/{ => host}/terminal/command/index.vue (100%)
rename frontend/src/views/{ => host}/terminal/host/index.vue (100%)
rename frontend/src/views/{ => host}/terminal/index.vue (100%)
rename frontend/src/views/{ => host}/terminal/terminal/index.vue (100%)
create mode 100644 frontend/src/views/plan/index.vue
create mode 100644 frontend/src/views/system-config/index.vue
create mode 100644 frontend/src/views/toolbox/index.vue
create mode 100644 frontend/src/views/website/config/index.vue
create mode 100644 frontend/src/views/website/firewall/index.vue
create mode 100644 frontend/src/views/website/project/index.vue
diff --git a/.gitignore b/.gitignore
index 0ca2a0068..5d54f21bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,3 +14,4 @@
# Dependency directories (remove the comment below to include it)
# vendor/
+/pkg/
diff --git a/frontend/src/assets/iconfont/iconfont.css b/frontend/src/assets/iconfont/iconfont.css
index b50cd2544..588b0005e 100644
--- a/frontend/src/assets/iconfont/iconfont.css
+++ b/frontend/src/assets/iconfont/iconfont.css
@@ -1,9 +1,9 @@
@font-face {
font-family: "panel"; /* Project id 3575356 */
- src: url('iconfont.woff2?t=1661325242934') format('woff2'),
- url('iconfont.woff?t=1661325242934') format('woff'),
- url('iconfont.ttf?t=1661325242934') format('truetype'),
- url('iconfont.svg?t=1661325242934#panel') format('svg');
+ src: url('iconfont.woff2?t=1662608296116') format('woff2'),
+ url('iconfont.woff?t=1662608296116') format('woff'),
+ url('iconfont.ttf?t=1662608296116') format('truetype'),
+ url('iconfont.svg?t=1662608296116#panel') format('svg');
}
.panel {
@@ -14,12 +14,56 @@
-moz-osx-font-smoothing: grayscale;
}
-.p-arrow-right:before {
- content: "\e665";
+.p-plan:before {
+ content: "\e746";
+}
+
+.p-database:before {
+ content: "\e754";
+}
+
+.p-rejected-order:before {
+ content: "\e75e";
+}
+
+.p-toolbox:before {
+ content: "\e769";
+}
+
+.p-website:before {
+ content: "\e781";
+}
+
+.p-config:before {
+ content: "\e78e";
+}
+
+.p-appstore1:before {
+ content: "\e792";
+}
+
+.p-log:before {
+ content: "\e793";
+}
+
+.p-host:before {
+ content: "\e7b1";
}
.p-home:before {
- content: "\e615";
+ content: "\e7c6";
+}
+
+.p-appstore:before {
+ content: "\eb65";
+}
+
+.p-docker:before {
+ content: "\e659";
+}
+
+.p-arrow-right:before {
+ content: "\e665";
}
.p-terminal:before {
diff --git a/frontend/src/assets/iconfont/iconfont.js b/frontend/src/assets/iconfont/iconfont.js
index 8afe935e3..df58f78b1 100644
--- a/frontend/src/assets/iconfont/iconfont.js
+++ b/frontend/src/assets/iconfont/iconfont.js
@@ -1 +1 @@
-!function(c){var l,t,a,h,e,i='',o=(o=document.getElementsByTagName("script"))[o.length-1].getAttribute("data-injectcss"),v=function(c,l){l.parentNode.insertBefore(c,l)};if(o&&!c.__iconfont__svg__cssinject__){c.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}function n(){e||(e=!0,a())}function d(){try{h.documentElement.doScroll("left")}catch(c){return void setTimeout(d,50)}n()}l=function(){var c,l=document.createElement("div");l.innerHTML=i,i=null,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?v(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(t=function(){document.removeEventListener("DOMContentLoaded",t,!1),l()},document.addEventListener("DOMContentLoaded",t,!1)):document.attachEvent&&(a=l,h=c.document,e=!1,d(),h.onreadystatechange=function(){"complete"==h.readyState&&(h.onreadystatechange=null,n())})}(window);
\ No newline at end of file
+window._iconfont_svg_string_3575356='',function(h){var c=(c=document.getElementsByTagName("script"))[c.length-1],l=c.getAttribute("data-injectcss"),c=c.getAttribute("data-disable-injectsvg");if(!c){var a,t,v,e,m,o=function(c,l){l.parentNode.insertBefore(c,l)};if(l&&!h.__iconfont__svg__cssinject__){h.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}a=function(){var c,l=document.createElement("div");l.innerHTML=h._iconfont_svg_string_3575356,(l=l.getElementsByTagName("svg")[0])&&(l.setAttribute("aria-hidden","true"),l.style.position="absolute",l.style.width=0,l.style.height=0,l.style.overflow="hidden",l=l,(c=document.body).firstChild?o(l,c.firstChild):c.appendChild(l))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(a,0):(t=function(){document.removeEventListener("DOMContentLoaded",t,!1),a()},document.addEventListener("DOMContentLoaded",t,!1)):document.attachEvent&&(v=a,e=h.document,m=!1,i(),e.onreadystatechange=function(){"complete"==e.readyState&&(e.onreadystatechange=null,z())})}function z(){m||(m=!0,v())}function i(){try{e.documentElement.doScroll("left")}catch(c){return void setTimeout(i,50)}z()}}(window);
\ No newline at end of file
diff --git a/frontend/src/assets/iconfont/iconfont.svg b/frontend/src/assets/iconfont/iconfont.svg
index 371cba9e9..fa03437ab 100644
--- a/frontend/src/assets/iconfont/iconfont.svg
+++ b/frontend/src/assets/iconfont/iconfont.svg
@@ -14,9 +14,31 @@
/>
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/assets/iconfont/iconfont.ttf b/frontend/src/assets/iconfont/iconfont.ttf
index b5ae833fbc3f7740bf6b510ba37a53298bf1aaf8..4e850743e42c5fca7104f6ab4a2f19adb1ce82df 100644
GIT binary patch
delta 4236
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
diff --git a/frontend/src/assets/iconfont/iconfont.woff2 b/frontend/src/assets/iconfont/iconfont.woff2
index 6725578beebdb93315e6b20cda8104da74d4cafa..3bb3f29a70a1d49479fa26fcdf92ee9d07af5a3d 100644
GIT binary patch
literal 3760
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
ai7w(Tu2%7U=gbljDM+7Sd)hP_0RRAQ;1cox
delta 2116
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
diff --git a/frontend/src/components/app-layout/header/components/CollapseIcon.vue b/frontend/src/components/app-layout/header/components/CollapseIcon.vue
index b50bbe1fd..4e6ae2c35 100644
--- a/frontend/src/components/app-layout/header/components/CollapseIcon.vue
+++ b/frontend/src/components/app-layout/header/components/CollapseIcon.vue
@@ -1,5 +1,5 @@
-
+
@@ -12,5 +12,9 @@ const isCollapse = computed((): boolean => menuStore.isCollapse);
diff --git a/frontend/src/components/app-layout/header/index.vue b/frontend/src/components/app-layout/header/index.vue
index 54497e974..8d851fffc 100644
--- a/frontend/src/components/app-layout/header/index.vue
+++ b/frontend/src/components/app-layout/header/index.vue
@@ -6,14 +6,10 @@
diff --git a/frontend/src/components/app-layout/index.vue b/frontend/src/components/app-layout/index.vue
index 7ca024442..f0efeb73b 100644
--- a/frontend/src/components/app-layout/index.vue
+++ b/frontend/src/components/app-layout/index.vue
@@ -3,9 +3,9 @@
-
+
@@ -13,7 +13,7 @@
diff --git a/frontend/src/components/app-layout/menu/components/sub-item.vue b/frontend/src/components/app-layout/menu/components/sub-item.vue
index cdaf1930a..5aff37763 100644
--- a/frontend/src/components/app-layout/menu/components/sub-item.vue
+++ b/frontend/src/components/app-layout/menu/components/sub-item.vue
@@ -3,29 +3,23 @@
-
+
- {{ subItem.meta?.title }}
+ {{ $t(subItem.meta?.title as string) }}
-
+
-
+
{{ $t(subItem.meta?.title as string) }}
-
-
-
-
- {{ subItem.meta?.title }}
-
-
-
+
+ {{ $t(subItem.meta?.title as string) }}
@@ -33,6 +27,7 @@
diff --git a/frontend/src/components/app-layout/menu/index.scss b/frontend/src/components/app-layout/menu/index.scss
index fa8cc5ee6..cca63c1c2 100644
--- a/frontend/src/components/app-layout/menu/index.scss
+++ b/frontend/src/components/app-layout/menu/index.scss
@@ -31,6 +31,11 @@
border-right: none;
}
}
+ .menu-footer {
+ height: 30px;
+ background-color: #c0c0c0;
+ text-align: center;
+ }
}
.el-menu,
.el-menu--popup {
diff --git a/frontend/src/components/app-layout/menu/index.vue b/frontend/src/components/app-layout/menu/index.vue
index 424ba0014..9ccaf63bd 100644
--- a/frontend/src/components/app-layout/menu/index.vue
+++ b/frontend/src/components/app-layout/menu/index.vue
@@ -1,7 +1,7 @@
@@ -33,6 +36,7 @@ import { loadingSvg } from '@/utils/svg';
import Logo from './components/logo.vue';
import SubItem from './components/sub-item.vue';
import { menuList } from '@/routers/router';
+import CollapseIcon from '../header/components/collapseicon.vue';
const route = useRoute();
const menuStore = MenuStore();
diff --git a/frontend/src/components/svg-icon/svg-icon.vue b/frontend/src/components/svg-icon/svg-icon.vue
index 48e08c6f2..0a3b4ce79 100644
--- a/frontend/src/components/svg-icon/svg-icon.vue
+++ b/frontend/src/components/svg-icon/svg-icon.vue
@@ -1,6 +1,6 @@