From 6b61d0b8ce75811a61c142b5c93e47105bd4f0f4 Mon Sep 17 00:00:00 2001 From: fuguobin Date: Fri, 3 Nov 2023 08:50:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/router/index.ts | 5 + src/styles/index.scss | 32 +- src/types/auto-imports.d.ts | 4 - src/views/dataScreen/components/header.vue | 423 ++++++++++ src/views/dataScreen/components/menu.vue | 291 +++++++ .../devicemanage/components/main.vue | 434 ++++++++++ .../devicemanage/components/menu.vue | 68 ++ src/views/dataScreen/devicemanage/index.scss | 739 ++++++++++++++++++ src/views/dataScreen/devicemanage/index.vue | 57 ++ .../screen/components/infoPanel.vue | 149 ++++ .../dataScreen/screen/components/main.vue | 519 ++++++++++++ .../dataScreen/screen/components/menu.vue | 68 ++ .../dataScreen/screen/components/showTree.vue | 299 +++++++ src/views/dataScreen/screen/index.scss | 691 ++++++++++++++++ src/views/dataScreen/screen/index.vue | 194 +++++ src/views/details/index.scss | 2 +- src/views/monitoring/components/header.vue | 66 +- src/views/monitoring/components/menu.vue | 33 +- .../devicemanage/components/header.vue | 423 ++++++++++ .../devicemanage/components/menu.vue | 259 +++++- src/views/monitoring/devicemanage/index.vue | 4 +- .../monitoring/screen/components/main.vue | 110 +-- src/views/monitoring/screen/index.scss | 120 +-- 23 files changed, 4806 insertions(+), 184 deletions(-) create mode 100644 src/views/dataScreen/components/header.vue create mode 100644 src/views/dataScreen/components/menu.vue create mode 100644 src/views/dataScreen/devicemanage/components/main.vue create mode 100644 src/views/dataScreen/devicemanage/components/menu.vue create mode 100644 src/views/dataScreen/devicemanage/index.scss create mode 100644 src/views/dataScreen/devicemanage/index.vue create mode 100644 src/views/dataScreen/screen/components/infoPanel.vue create mode 100644 src/views/dataScreen/screen/components/main.vue create mode 100644 src/views/dataScreen/screen/components/menu.vue create mode 100644 src/views/dataScreen/screen/components/showTree.vue create mode 100644 src/views/dataScreen/screen/index.scss create mode 100644 src/views/dataScreen/screen/index.vue create mode 100644 src/views/monitoring/devicemanage/components/header.vue diff --git a/src/router/index.ts b/src/router/index.ts index 45e7760..c30f970 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -29,6 +29,11 @@ export const constantRoutes: RouteRecordRaw[] = [ component: () => import('@/views/login/index.vue'), meta: { hidden: true } }, + { + path: '/dataScreen', + component: () => import('@/views/dataScreen/screen/index.vue'), + meta: { hidden: true } + }, { path: '/screen', component: () => import('@/views/monitoring/screen/index.vue'), diff --git a/src/styles/index.scss b/src/styles/index.scss index 5828a57..4f73d5f 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -19,14 +19,14 @@ .n-drawer-container { .waringDrawer { - color: #fff; - background: #0f2856; - backdrop-filter: blur(10px); + // color: #fff; + // background: #0f2856; + // backdrop-filter: blur(10px); overflow: hidden; .n-drawer-header { - color: #fff; - border-bottom: 1px solid #1a3960; + // color: #fff; + // border-bottom: 1px solid #1a3960; .n-drawer-header__main { flex: 1; @@ -39,7 +39,7 @@ .button { font-size: 14px; - color: #b1e3ff; + // color: #b1e3ff; padding-right: 20px; } } @@ -52,11 +52,11 @@ .waringList { padding: 10px; - background: #08173e; + // background: #08173e; .item { padding-bottom: 10px; - border-bottom: 1px solid #1a3960; + // border-bottom: 1px solid #1a3960; margin-bottom: 10px; .name { @@ -71,7 +71,7 @@ span.time { font-size: 14px; - color: #b1e3ff; + // color: #b1e3ff; } } @@ -80,14 +80,14 @@ justify-content: space-between; align-items: center; - span { - color: #b1e3ff; - } + // span { + // color: #b1e3ff; + // } - .n-button { - background-color: #022a5a !important; - border: 1px solid #114073; - } + // .n-button { + // background-color: #022a5a !important; + // border: 1px solid #114073; + // } } } diff --git a/src/types/auto-imports.d.ts b/src/types/auto-imports.d.ts index 5742656..e5c7bdb 100644 --- a/src/types/auto-imports.d.ts +++ b/src/types/auto-imports.d.ts @@ -5,8 +5,6 @@ declare global { const ElForm: typeof import('element-plus/es')['ElForm'] const ElMessage: typeof import('element-plus/es')['ElMessage'] const ElMessageBox: typeof import('element-plus/es')['ElMessageBox'] - const ElNotification: typeof import('element-plus/es')['ElNotification'] - const NEllipsis: typeof import('naive-ui')['NEllipsis'] const asyncComputed: typeof import('@vueuse/core')['asyncComputed'] const autoResetRef: typeof import('@vueuse/core')['autoResetRef'] const computed: typeof import('vue')['computed'] @@ -276,8 +274,6 @@ declare module 'vue' { readonly ElForm: UnwrapRef readonly ElMessage: UnwrapRef readonly ElMessageBox: UnwrapRef - readonly ElNotification: UnwrapRef - readonly NEllipsis: UnwrapRef readonly asyncComputed: UnwrapRef readonly autoResetRef: UnwrapRef readonly computed: UnwrapRef diff --git a/src/views/dataScreen/components/header.vue b/src/views/dataScreen/components/header.vue new file mode 100644 index 0000000..be47d60 --- /dev/null +++ b/src/views/dataScreen/components/header.vue @@ -0,0 +1,423 @@ + + + + diff --git a/src/views/dataScreen/components/menu.vue b/src/views/dataScreen/components/menu.vue new file mode 100644 index 0000000..57f651c --- /dev/null +++ b/src/views/dataScreen/components/menu.vue @@ -0,0 +1,291 @@ + + + + diff --git a/src/views/dataScreen/devicemanage/components/main.vue b/src/views/dataScreen/devicemanage/components/main.vue new file mode 100644 index 0000000..c4545b9 --- /dev/null +++ b/src/views/dataScreen/devicemanage/components/main.vue @@ -0,0 +1,434 @@ + + diff --git a/src/views/dataScreen/devicemanage/components/menu.vue b/src/views/dataScreen/devicemanage/components/menu.vue new file mode 100644 index 0000000..a3ec3bd --- /dev/null +++ b/src/views/dataScreen/devicemanage/components/menu.vue @@ -0,0 +1,68 @@ + + + + diff --git a/src/views/dataScreen/devicemanage/index.scss b/src/views/dataScreen/devicemanage/index.scss new file mode 100644 index 0000000..0584cae --- /dev/null +++ b/src/views/dataScreen/devicemanage/index.scss @@ -0,0 +1,739 @@ +.devicemanage { + position: relative; + width: 100%; + height: 100vh; + background: url(@/assets/images/screen.png); + // background-color: var(--tableBg); + background-size: 100% 100%; + // background-color: rgba(0, 0, 0, 0.3); + // background-blend-mode: multiply; + padding: 0 25px; + overflow: hidden; + + .layout { + display: flex; + + .sidebar { + width: 12%; + height: calc(100vh - 95px - 30px); //屏幕高度-头部header高度-底部高度 + flex-shrink: 0; + border: 1px solid #0d55b0; + padding: 10px 0; + // box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 12); + margin-right: 1vw; + position: relative; + overflow: hidden; + transition: width 0.28s; + background-color: rgba(2, 8, 46, 0.8); + + // .menu { + // text-align: center; + + // :deep(.n-submenu) { + // --n-item-color-hover: auto; + + // .n-menu-item { + // .n-menu-item-content { + // padding: 0 !important; + + // .n-ellipsis { + // font-family: 'AlibabaPuHuiTiBold'; + // padding: 0 15px; + // } + // } + + // .n-menu-item-content-header { + // font-size: 2.4rem; + // color: #B1E3FF; + // } + // } + + // .n-submenu-children { + // .n-menu-item-content-header { + // font-size: 1.8rem; + // } + + // .n-menu-item-content--selected { + // .n-menu-item-content-header { + // color: #fff; + + // .n-ellipsis { + // position: relative; + + // span { + // padding: 0 10px; + // } + + // span::before { + // content: ''; + // position: absolute; + // left: 0; + // top: 0.7rem; + // width: 1.8rem; + // height: 1.8rem; + // background: url(../../../assets/images/taps.png) no-repeat; + // background-size: cover; + // } + // } + // } + // } + + // .n-menu-item-content--selected::before { + // background: -webkit-linear-gradient(left, #1fc7ff29 0%, #1177e700 100%); + // left: 0; + // right: 0; + // } + + // .n-menu-item-content--selected::after { + // content: ''; + // position: absolute; + // bottom: 0; + // width: 100%; + // height: 2px; + // background: -webkit-linear-gradient(left, #1fc7ff29 0%, #1177e700 100%); + // } + // } + + // .n-base-icon { + // color: #84e0f7; + // right: 10px; + // } + // } + // } + } + + .sidebar::after { + content: ''; + position: absolute; + bottom: 0; + width: 100%; + height: 18rem; + background: url(@/assets/images/menu_bg.png) no-repeat; + background-size: 100% 100%; + } + + .main { + width: 87%; + border: 2px solid #1e60a6; + box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 124); + background-color: rgba(2, 8, 46, 0.8); + + :deep(.devicePrt) { + .deviceImg { + position: relative; + + .deviceImg { + width: 100%; + } + + .card { + position: absolute; + display: inline-block; + color: #87e8de; + font-size: 1.4rem; + padding: 10px 20px; + border-radius: 10px; + background: rgba(255, 255, 255, 0.1); + backdrop-filter: blur(10px); + border: 1px solid rgba(255, 255, 255, 0.1); + box-shadow: 0 0 80px rgba(0, 0, 0, 0.25); + z-index: 99; + overflow: hidden; + + .dataInfo { + padding: 5px 0; + + span { + display: block; + } + } + + .dataFlex { + display: flex; + + .flexItem { + margin-right: 15px; + } + + .flexItem:last-child { + margin-right: 0; + } + } + } + // .switch { + // position: absolute; + // z-index: 99; + // cursor: pointer; + // overflow: hidden; + // } + + // .dataInfo { + // position: absolute; + // display: inline-block; + // color: #87e8de; + // padding: 10px; + // font-size: 16px; + // // border: 2px solid #39c33c; + // z-index: 99; + + // span { + // display: block; + // } + // } + } + + .deviceImgA { + .card_a { + top: 40%; + left: 5%; + } + + .card_b { + top: 5%; + left: 5%; + } + + .card_c { + top: 30%; + right: 3%; + } + + .card_f { + top: 30%; + right: 20%; + } + // .switch_a { + // width: 35px; + // height: 60px; + // background: red; + // top: 23%; + // left: 16.5%; + // } + // .switch_b { + // width: 40px; + // height: 65px; + // background: red; + // top: 59%; + // left: 15.5%; + // } + } + + .deviceImgB { + .card_a { + top: 42%; + left: 5%; + } + + .card_b { + top: 8%; + left: 5%; + } + + .card_c { + top: 16%; + right: 3%; + } + + .card_d { + top: 52%; + right: 3%; + } + + .card_f { + top: 30%; + right: 21%; + } + } + + .deviceImgC { + .card_a { + top: 6%; + left: 6%; + } + + .card_b { + top: 62%; + left: 5%; + } + + .card_c { + top: 2%; + right: 2%; + } + + .card_d { + top: 35%; + right: 2%; + } + + .card_e { + top: 67%; + right: 2%; + } + + .card_f { + top: 30%; + right: 21%; + } + } + + // .deviceImgA { + // .dataInfo0 { + // top: 7%; + // left: 6%; + // } + + // .dataInfo1 { + // top: 35%; + // left: 9%; + // } + + // .dataInfo2 { + // top: 0%; + // left: 18%; + // } + + // .dataInfo3 { + // top: 0%; + // left: 25%; + // } + + // .dataInfo4 { + // top: 15%; + // left: 17.5%; + // } + + // .dataInfo5 { + // top: 26%; + // left: 17.5%; + // } + + // .dataInfo6 { + // top: 0%; + // right: 20%; + // } + + // .dataInfo7 { + // top: 10%; + // right: 20%; + // } + // } + // .deviceImgB { + // .dataInfo0 { + // top: 23%; + // left: 10.5%; + // } + + // .dataInfo1 { + // top: 55%; + // left: 12%; + // } + + // .dataInfo2 { + // top: 0%; + // left: 23%; + // } + + // .dataInfo3 { + // top: 0%; + // left: 30%; + // } + + // .dataInfo4 { + // top: 10%; + // left: 23%; + // } + + // .dataInfo5 { + // top: 20%; + // left: 23%; + // } + + // .dataInfo6 { + // top: 0%; + // right: 36%; + // } + + // .dataInfo7 { + // top: 10%; + // right: 36%; + // } + // .dataInfo8 { + // top: 26%; + // right: 31%; + // } + + // .dataInfo9 { + // top: 36%; + // right: 31%; + // } + // } + // .deviceImgC { + // .dataInfo0 { + // bottom: 38%; + // left: 8.5%; + // } + + // .dataInfo1 { + // bottom: 1%; + // left: 11%; + // } + + // .dataInfo2 { + // top: 0%; + // left: 23%; + // } + + // .dataInfo3 { + // top: 0%; + // left: 30%; + // } + + // .dataInfo4 { + // top: 10%; + // left: 23%; + // } + + // .dataInfo5 { + // top: 20%; + // left: 23%; + // } + + // .dataInfo6 { + // top: 0%; + // right: 36%; + // } + + // .dataInfo7 { + // top: 0%; + // right: 29%; + // } + // .dataInfo8 { + // top: 22%; + // right: 36%; + // } + + // .dataInfo9 { + // top: 22%; + // right: 29%; + // } + // .dataInfo10 { + // top: 47%; + // right: 36%; + // } + + // .dataInfo11 { + // top: 47%; + // right: 29%; + // } + // } + + .devicInfo { + color: #b1e3ff; + padding: 0 3rem; + font-family: 'AlibabaPuHuiTiRegular'; + + .title { + display: flex; + align-items: center; + font-size: 20px; + background: url(@/assets/images/info_bg.png) no-repeat center; + background-size: 100% 100%; + + i { + display: block; + width: 6px; + height: 50px; + background: linear-gradient(270deg, #679fff 0%, rgba(17, 119, 231, 0.698) 100%); + border-radius: 0px 0px 0px 0px; + margin-right: 18px; + } + } + + .infoPanel { + display: flex; + justify-content: space-between; + margin-top: 15px; + + .item { + width: 49%; + height: calc(100vh - 150px - 53rem); + padding: 15px 0; + background: -webkit-linear-gradient(top, #052266 0%, #011341 100%); + overflow: auto; + + .collapse { + .colItem { + .n-collapse-item__header-main { + font-size: 18px; + color: #1fb1ff; + padding: 0 22px; + + .n-collapse-item-arrow { + margin-right: 10px; + + img { + width: 18px; + height: 16px; + } + } + } + + .n-collapse-item__content-wrapper { + .n-collapse-item__content-inner { + padding-top: 10px; + + .content { + display: flex; + flex-wrap: wrap; + padding: 0 15px; + font-size: 16px; + color: #c15757; + line-height: 30px; + + span { + display: flex; + align-items: center; + flex: 0 0 calc(100% / 2); + i { + font-style: normal; + display: flex; + align-items: center; + .n-input-number { + display: flex; + align-items: center; + } + } + .switch { + font-size: 13px; + } + } + + span:nth-child(even) { + color: #41a5d7; + } + } + + // .content.pump { + // span { + // flex: auto; + // } + // } + } + } + } + + .colItem.n-collapse-item--active { + .n-collapse-item-arrow { + transform: none; + } + } + + .colItem:not(:first-child) { + border-top: none; + } + + .colItem:not(:first-child)::before { + display: block; + content: ''; + width: 100%; + height: 1px; + background: linear-gradient( + 90deg, + rgba(31, 225, 255, 0) 0%, + rgba(189, 220, 255, 0.94) 50%, + rgba(31, 225, 255, 0) 97% + ); + } + } + } + } + + // .l_green { + // color: #39c33c; + // } + + // .l_blue { + // color: #41a5d7; + // } + + // .orange { + // color: #c15757; + // } + + // .title { + // font-size: 16px; + // } + + // .valves { + // display: flex; + // align-items: center; + // flex-shrink: 0; + // width: 40%; + + // .title { + // writing-mode: vertical-rl; + // // transform: rotate(180deg); + // } + + // .info { + // .select { + // font-weight: 800; + + // .n-button { + // margin-right: 5px; + // background: linear-gradient(#3370cb, #162f68, #162f68); + // } + // } + + // .table { + // border: 1px solid #39c33c; + // border-radius: 3px; + // margin: 10px 0 10px 20px; + + // .item { + // display: flex; + // align-items: center; + // padding: 10px 20px; + // line-height: 26px; + // border-bottom: 1px solid #39c33c; + + // .lable { + // font-size: 16px; + // flex-shrink: 0; + // } + + // .parameters { + // display: flex; + // flex-wrap: wrap; + + // .name { + // color: #c15757; + // margin-left: 15px; + // } + + // .name:nth-child(even) { + // color: #41a5d7; + // } + + // .n-radio__label { + // color: #41a5d7; + // } + // } + // } + + // .item:last-child { + // border-bottom: none; + // } + // } + + // .switch { + // display: flex; + + // span { + // display: flex; + // align-items: center; + // margin-right: 5px; + // } + // } + // } + // } + + // .pump { + // width: 55%; + // padding: 5px 10px; + // border: 1px solid #39c33c; + + // .item { + // line-height: 28px; + + // .info { + // display: flex; + // flex-wrap: wrap; + + // .name { + // color: #c15757; + // margin-left: 15px; + // } + + // .name:nth-child(even) { + // color: #41a5d7; + // } + // } + // } + // } + } + + .tips { + font-size: 1.6rem; + font-family: 'AlibabaPuHuiTiRegular'; + text-align: center; + color: #b1e3ff; + margin-top: 40vh; + } + } + } + + /*滚动条整体部分*/ + .tableGrid ::-webkit-scrollbar { + width: 8px; + height: 8px; + } + + /*滚动条的轨道*/ + .tableGrid ::-webkit-scrollbar-track { + background-color: transparent; + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + } + + /*滚动条里面的小方块,能向上向下移动*/ + .tableGrid ::-webkit-scrollbar-thumb { + background-color: rgb(147, 147, 153, 0.5); + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + } + + .tableGrid ::-webkit-scrollbar-thumb:hover { + background-color: #a8a8a8; + } + + .tableGrid :-webkit-scrollbar-thumb:active { + background-color: #787878; + } + + /*边角,即两个滚动条的交汇处*/ + .tableGrid ::-webkit-scrollbar-corner { + background-color: transparent; + } + } +} + +.dark { + .devicemanage { + background-color: rgba(29, 30, 31, 0.8); + background-blend-mode: multiply; + + .layout { + .sidebar { + background-color: rgba(29, 30, 31, 0.8); + } + + .main { + background-color: rgba(29, 30, 31, 0.8); + + .devicePrt { + :deep(.devicInfo) { + .infoPanel { + .item { + background: -webkit-linear-gradient(top, rgba(29, 30, 31, 0.8) 0%, rgba(28, 32, 37, 0.8) 100%); + } + } + } + } + } + } + } +} diff --git a/src/views/dataScreen/devicemanage/index.vue b/src/views/dataScreen/devicemanage/index.vue new file mode 100644 index 0000000..6e87320 --- /dev/null +++ b/src/views/dataScreen/devicemanage/index.vue @@ -0,0 +1,57 @@ + + + diff --git a/src/views/dataScreen/screen/components/infoPanel.vue b/src/views/dataScreen/screen/components/infoPanel.vue new file mode 100644 index 0000000..6a19090 --- /dev/null +++ b/src/views/dataScreen/screen/components/infoPanel.vue @@ -0,0 +1,149 @@ + + diff --git a/src/views/dataScreen/screen/components/main.vue b/src/views/dataScreen/screen/components/main.vue new file mode 100644 index 0000000..36fc422 --- /dev/null +++ b/src/views/dataScreen/screen/components/main.vue @@ -0,0 +1,519 @@ + + + diff --git a/src/views/dataScreen/screen/components/menu.vue b/src/views/dataScreen/screen/components/menu.vue new file mode 100644 index 0000000..e19fc83 --- /dev/null +++ b/src/views/dataScreen/screen/components/menu.vue @@ -0,0 +1,68 @@ + + + + diff --git a/src/views/dataScreen/screen/components/showTree.vue b/src/views/dataScreen/screen/components/showTree.vue new file mode 100644 index 0000000..aa5bb54 --- /dev/null +++ b/src/views/dataScreen/screen/components/showTree.vue @@ -0,0 +1,299 @@ + + + + diff --git a/src/views/dataScreen/screen/index.scss b/src/views/dataScreen/screen/index.scss new file mode 100644 index 0000000..eda40b8 --- /dev/null +++ b/src/views/dataScreen/screen/index.scss @@ -0,0 +1,691 @@ +@import url('@/assets/fonts/font.css'); + +.screen { + position: relative; + width: 100%; + height: 100vh; + background: url(@/assets/images/screen.png) no-repeat; + // background-color: var(--tableBg); + background-size: 100% 100%; + // background-color: rgba(29,30,31,0.8); + // background-blend-mode: multiply; + padding: 0 25px; + overflow: hidden; + + .menuShow { + width: 26px; + height: 26px; + position: absolute; + top: 118px; + left: 0; + color: #b1e3ff; + text-align: center; + border: 1px solid #0d55b0; + background-color: #02072e; + border-right: none; + cursor: pointer; + + .iconfont { + display: inline-block; + } + + .left { + transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transition: transform 0.5s; + } + + .right { + transform: rotate(180deg); + -webkit-transform: rotate(180deg); + transition: transform 0.5s; + } + } + + .panelBtn { + position: absolute; + bottom: 0; + left: 0; + right: 0; + width: 70%; + text-align: center; + color: #a2ceff; + background: url(@/assets/images/panelBtn_bg.png) no-repeat center; + background-size: 100% 100%; + transition: width 0.28s; + margin: 0 auto; + cursor: pointer; + + .iconfont { + display: inline-block; + font-size: 18px; + } + + .up { + transform: rotate(0deg); + -webkit-transform: rotate(0deg); + transition: transform 0.5s; + } + + .down { + transform: rotate(180deg); + -webkit-transform: rotate(180deg); + transition: transform 0.5s; + } + } + + .panelBtn.left { + left: 14%; + } + + // .header { + // display: flex; + // justify-content: space-between; + // align-items: center; + // // height: 5.7rem; + + // .title { + // width: 1500px; + // background: url(@/assets/images/title-bg.png); + // background-size: 100%; + // text-align: center; + // padding-bottom: 38px; + // margin: 0 auto; + + // h3 { + // font-size: 3.8rem; + // font-family: 'YouSheBiaoTiHei'; + // font-weight: 400; + // letter-spacing: 4px; + // background: linear-gradient(180deg, #FEFDFF 0%, #95DAFF 97%); + // background-clip: text; + // -webkit-background-clip: text; + // -webkit-text-fill-color: transparent; + // margin: 0; + // } + // } + // } + + // .weather { + // display: flex; + // align-items: center; + // position: absolute; + // top: 2.5rem; + // left: 7rem; + // color: #B2D4FF; + // font-size: 1.6rem; + // line-height: 2.2rem; + // font-family: 'AlibabaPuHuiTiRegular'; + + // .line { + // width: 2px; + // height: 2rem; + // background: linear-gradient(to top, #000E38, #1EA8DD, #000E38); + // margin: 0 1rem; + // } + + // .forecast { + // display: flex; + // align-items: center; + + // img { + // width: 25px; + // margin-left: 10px; + // } + // } + // } + + // .seeting { + // position: absolute; + // top: 2.5rem; + // right: 7rem; + + // .tooltips { + // width: 36px; + // height: 36px; + // background: linear-gradient(180deg, #003269 1%, rgba(3, 79, 163, 0.2314) 56%, #003269 100%); + // border-radius: 0px 0px 0px 0px; + // opacity: 1; + + // :deep(span) { + // color: #5beff9; + // } + + // margin-left: 10px; + // } + // } + + .layout { + display: flex; + // margin-top: 20px; + + .sidebar { + width: 12%; + height: calc(100vh - 95px - 30px); //屏幕高度-头部header高度-底部高度 + flex-shrink: 0; + border: 1px solid #0d55b0; + padding: 10px 0; + // box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 12); + margin-right: 1vw; + position: relative; + overflow: auto; + transition: width 0.28s; + background-color: rgba(2, 8, 46, 0.8); + + // .menu { + // text-align: center; + + // :deep(.n-submenu) { + // --n-item-color-hover: auto; + + // .n-menu-item { + // .n-menu-item-content { + // padding: 0 !important; + + // .n-ellipsis { + // font-family: 'AlibabaPuHuiTiBold'; + // padding: 0 15px; + // } + // } + + // .n-menu-item-content-header { + // font-size: 2.4rem; + // color: #B1E3FF; + // } + // } + + // .n-submenu-children { + // .n-menu-item-content-header { + // font-size: 1.8rem; + // } + + // .n-menu-item-content--selected { + // .n-menu-item-content-header { + // color: #fff; + + // .n-ellipsis { + // position: relative; + + // span { + // padding: 0 10px; + // } + + // span::before { + // content: ''; + // position: absolute; + // left: 0; + // top: 0.7rem; + // width: 1.8rem; + // height: 1.8rem; + // background: url(../../../assets/images/taps.png) no-repeat; + // background-size: cover; + // } + // } + // } + // } + + // .n-menu-item-content--selected::before { + // background: -webkit-linear-gradient(left, #1fc7ff29 0%, #1177e700 100%); + // left: 0; + // right: 0; + // } + + // .n-menu-item-content--selected::after { + // content: ''; + // position: absolute; + // bottom: 0; + // width: 100%; + // height: 2px; + // background: -webkit-linear-gradient(left, #1fc7ff29 0%, #1177e700 100%); + // } + // } + + // .n-base-icon { + // color: #84e0f7; + // right: 10px; + // } + // } + // } + } + + .sidebar.sidebarHide { + width: 0; + border: none; + margin-right: 0; + transition: width 0.28s; + } + + .sidebar::after { + content: ''; + position: absolute; + bottom: 0; + width: 100%; + height: 18rem; + background: url(@/assets/images/menu_bg.png) no-repeat; + background-size: 100% 100%; + } + + .main { + position: relative; + width: 87%; + background-color: rgba(2, 8, 46, 0.8); + + .headerInfo { + border: 1px solid #0d55b0; + // box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 124); + margin-bottom: 10px; + + .header { + display: flex; + align-items: center; + flex-wrap: wrap; + + .headerItem { + width: 11.1%; + color: #fff; + text-align: center; + + .name { + font-size: 12px; + line-height: 36px; + padding: 0 3rem; + color: #ffffffb3; + background-color: #123f7580; + border-top: 1px solid #265a89; + border-bottom: 1px solid #265a89; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + } + + .value { + font-size: 18px; + color: #5beff9; + line-height: 36px; + } + } + } + } + + .mainTable { + // height: calc(100vh - 8rem - 202px); + // height: calc(100% - 162px); + background-color: rgba(0, 0, 0, 0.1); + transition: height 0.28s; + overflow: hidden; + + .tableGrid { + --vxe-table-header-background-color: none; + --vxe-table-body-background-color: none; + --vxe-table-footer-background-color: none; + --vxe-table-border-color: rgba(12, 80, 166, 0.2); + // --vxe-table-border-color: none; + --vxe-font-color: #5beff9; + --vxe-table-header-font-color: #ffffffb3; + border: 1px solid #0d55b0; + // box-shadow: inset 0px 0px 10px 0px rgb(36, 90, 124); + + :deep(.vxe-table) { + // height: calc(100vh - 5.7rem - 60px) !important; + .vxe-table--body-wrapper { + // height: calc(100vh - 5.7rem - 182px) !important; + } + + .headerRowClass { + .headerCellClass { + color: #eee; + border: 1px solid rgba(12, 80, 166, 1) !important; + border-left: none !important; + + .vxe-resizable.is--line:before { + content: none; + } + } + + // .headerCellClass:nth-child(1){ + // border-left: none !important; + // } + + .headerCellClass.col--fixed { + // background-color: #020e38; + // box-shadow: inset 0px 0px 10px 0px #245a7c; + } + } + + .tableRowClass { + .tableCellClass { + // border-bottom: 1px solid #265a89 !important; + .vxe-cell { + font-family: 'AlibabaPuHuiTiRegular'; + color: #b1e3ff; + + .title { + display: flex; + align-items: center; + text-align: left; + + .svg-icon { + flex-shrink: 0; + } + } + } + + .vxe-cell--html { + display: flex; + justify-content: center; + align-items: center; + + .warning { + font-size: 15px; + font-weight: bold; + color: red; + } + + .cellEdit { + cursor: pointer; + } + + .iconfont { + font-size: 18px; + } + + .iconfont.icon-rise { + color: green; + } + + .iconfont.icon-decline { + color: red; + } + + .iconfont.icon-edit-icon { + font-size: 16px; + margin-left: 5px; + cursor: pointer; + } + } + } + } + + .tableRowClass.row--stripe { + background-color: rgba(0, 95, 199, 0.15); + } + + .tips { + display: inline-block; + width: 10px; + height: 10px; + margin: 0 auto; + border-radius: 10px; + margin-right: 5px; + } + + .tips.green { + background-color: green; + } + + .tips.red { + background-color: red; + } + + .name { + margin-left: 5px; + cursor: pointer; + } + + .cellName { + display: flex; + justify-content: center; + align-items: center; + color: #fef961; + } + + .cellInput { + input { + color: #222; + text-align: center; + } + } + + .vxe-table--fixed-left-wrapper.scrolling--middle { + background: -webkit-linear-gradient(top, #02072b 0%, #02082b 100%); + box-shadow: inset 0px 0px 10px rgb(36, 90, 124) !important; + } + } + } + .tablePage { + --vxe-pager-background-color: none; + padding: 0 2rem; + color: #b1e3ff; + :deep(.vxe-select) { + .vxe-input--inner { + color: #b1e3ff; + border: 1px solid #b1e3ff; + background-color: transparent; + } + .vxe-select--panel { + color: #b1e3ff; + .vxe-select-option--wrapper { + border: 1px solid #b1e3ff; + background: -webkit-linear-gradient(top, #02072b 0%, #02082b 100%); + .vxe-select-option:not(.is--disabled).is--hover { + background: none; + } + } + } + } + :deep(.vxe-pager--jump) { + .vxe-pager--goto { + color: #b1e3ff; + border: 1px solid #b1e3ff; + background-color: transparent; + } + } + } + + // /*滚动条整体部分*/ + // .tableGrid ::-webkit-scrollbar { + // width: 8px; + // height: 8px; + // } + // /*滚动条的轨道*/ + // .tableGrid ::-webkit-scrollbar-track { + // background-color: transparent; + // -webkit-border-radius: 8px; + // -moz-border-radius: 8px; + // border-radius: 8px; + // } + // /*滚动条里面的小方块,能向上向下移动*/ + // .tableGrid ::-webkit-scrollbar-thumb { + // background-color: rgb(147, 147, 153, 0.5); + // -webkit-border-radius: 8px; + // -moz-border-radius: 8px; + // border-radius: 8px; + // } + // .tableGrid ::-webkit-scrollbar-thumb:hover { + // background-color: #a8a8a8; + // } + // .tableGrid ::-webkit-scrollbar-thumb:active { + // background-color: #787878; + // } + // /*边角,即两个滚动条的交汇处*/ + // .tableGrid ::-webkit-scrollbar-corner { + // background-color: transparent; + // } + } + + .infoPanel { + height: 280px; + margin-top: 20px; + transition: transform 0.5s; + + :deep(.swiper) { + --swiper-theme-color: #ff6600; + /* 设置Swiper风格 */ + --swiper-navigation-color: #00ff33; + /* 单独设置按钮颜色 */ + --swiper-navigation-size: 30px; + + /* 设置按钮大小 */ + .item { + height: 280px; + + .content { + display: flex; + align-items: center; + height: -webkit-fill-available; + border: 2px solid #0d54ae; + border-radius: 5px; + color: #fff; + padding: 15px; + background-color: rgba(2, 8, 46, 0.5); + + .icon { + width: 35%; + + img { + width: 100%; + } + } + + .numValue { + flex: 1; + text-align: center; + color: #99e5ff; + + span { + font-size: 5rem; + } + + i { + font-size: 3rem; + font-style: normal; + } + + p { + font-size: 2rem; + margin: 0; + color: #1782ff; + } + } + + .numValueMore { + flex: 1; + margin-left: 1.5rem; + span { + font-size: 1.4rem; + line-height: 30px; + color: #99e5ff; + margin-right: 3px; + } + span:nth-child(1) { + font-size: 1.6rem; + color: #1782ff; + } + span:nth-child(2) { + font-size: 1.8rem; + margin-right: 5px; + } + } + } + } + } + } + } + + /*滚动条整体部分*/ + .tableGrid ::-webkit-scrollbar { + width: 8px; + height: 8px; + } + + /*滚动条的轨道*/ + .tableGrid ::-webkit-scrollbar-track { + background-color: transparent; + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + } + + /*滚动条里面的小方块,能向上向下移动*/ + .tableGrid ::-webkit-scrollbar-thumb { + background-color: rgb(147, 147, 153, 0.5); + -webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + } + + .tableGrid ::-webkit-scrollbar-thumb:hover { + background-color: #a8a8a8; + } + + .tableGrid :-webkit-scrollbar-thumb:active { + background-color: #787878; + } + + /*边角,即两个滚动条的交汇处*/ + .tableGrid ::-webkit-scrollbar-corner { + background-color: transparent; + } + } +} + +// .cardClass { +.showTree { + .weight { + display: flex; + align-items: center; + margin-left: auto; + + span { + margin-right: 2px; + } + } +} + +.treeBtn { + margin-top: 20px; + text-align: right; + + .n-button { + margin-left: 10px; + } +} + +// } + +.dark { + .screen { + background-color: rgba(29, 30, 31, 0.8); + background-blend-mode: multiply; + + .layout { + .sidebar { + background-color: rgba(29, 30, 31, 0.8); + } + + .main { + background-color: rgba(29, 30, 31, 0.8); + .mainTable { + .tableGrid { + :deep(.vxe-table) { + .vxe-table--fixed-left-wrapper.scrolling--middle { + background: -webkit-linear-gradient(top, rgba(21, 21, 25, 1) 0%, rgba(21, 21, 25, 1) 100%); + box-shadow: inset 0px 0px 10px rgb(36, 90, 124) !important; + } + } + } + } + } + + .infoPanel { + :deep(.swiper) { + .item { + .content { + background-color: rgba(29, 30, 31, 0.8); + } + } + } + } + } + } +} diff --git a/src/views/dataScreen/screen/index.vue b/src/views/dataScreen/screen/index.vue new file mode 100644 index 0000000..979c1c3 --- /dev/null +++ b/src/views/dataScreen/screen/index.vue @@ -0,0 +1,194 @@ + + + diff --git a/src/views/details/index.scss b/src/views/details/index.scss index 8489125..55edbc6 100644 --- a/src/views/details/index.scss +++ b/src/views/details/index.scss @@ -32,7 +32,7 @@ .comparisonInfo { .stackedLine { width: 100%; - height: 74vh; + height: 68vh; font-size: 1.4rem; text-align: center; color: #606266; diff --git a/src/views/monitoring/components/header.vue b/src/views/monitoring/components/header.vue index be47d60..5b8b93c 100644 --- a/src/views/monitoring/components/header.vue +++ b/src/views/monitoring/components/header.vue @@ -3,18 +3,21 @@

{{ titleData }}

-
{{ currentTime }} {{ lunarDay.ncWeek }}
-
-
- {{ weatherData.city }}:{{ weatherData.weather }} {{ weatherData.temperature }}℃ - - +
{{ timePeriod }} {{ userStore.nickname }}
+
+
{{ currentTime }} {{ lunarDay.ncWeek }}
+
+
+ {{ weatherData.city }}:{{ weatherData.weather }} {{ weatherData.temperature }}℃ + + +