|
|
@@ -0,0 +1,269 @@
|
|
|
+<template>
|
|
|
+ <div class="company-home">
|
|
|
+ <customHeader>{{ mainTitle }}</customHeader>
|
|
|
+ <div class="company-content">
|
|
|
+ <div class="content-item item-1">
|
|
|
+ <infoBox class="infoBox1">
|
|
|
+ <template #title> 系统数据量 </template>
|
|
|
+ <template #container>
|
|
|
+ <div class="content-wrapper wrapper-1 grid">
|
|
|
+ <div class="data-item">
|
|
|
+ <div class="item-icon icon1"></div>
|
|
|
+ <div>
|
|
|
+ <div class="label">接入系统数量</div>
|
|
|
+ <div class="value">262 </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="data-item">
|
|
|
+ <div class="item-icon icon2"></div>
|
|
|
+ <div>
|
|
|
+ <div class="label">接入点位数量</div>
|
|
|
+ <div class="value status-normal">14521</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="data-item">
|
|
|
+ <div class="item-icon icon3"></div>
|
|
|
+ <div>
|
|
|
+ <div class="label">数据存储量</div>
|
|
|
+ <div class="value status-normal">14521</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="data-item">
|
|
|
+ <div class="item-icon icon4"></div>
|
|
|
+ <div>
|
|
|
+ <div class="label">消息总数量(条)</div>
|
|
|
+ <div class="value status-normal">14521</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="data-item">
|
|
|
+ <div class="item-icon icon5"></div>
|
|
|
+ <div>
|
|
|
+ <div class="label">共享接口数量</div>
|
|
|
+ <div class="value status-normal">14521</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </infoBox>
|
|
|
+ </div>
|
|
|
+ <div class="content-item item-2 grid">
|
|
|
+ <infoBox class="infoBox2">
|
|
|
+ <template #title> 每日采集数据量 </template>
|
|
|
+ <template #container>
|
|
|
+ <div class="content-wrapper">
|
|
|
+ <CustomChart :chart-config="dailyNumOption" :chart-data="dailyNumData" height="250px" />
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </infoBox>
|
|
|
+ <infoBox class="infoBox3">
|
|
|
+ <template #title> 系统数据量排名 </template>
|
|
|
+ <template #container>
|
|
|
+ <div class="content-wrapper">
|
|
|
+ <a-table size="small" :dataSource="sysData" :columns="sysDataColumn" :pagination="false" />
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </infoBox>
|
|
|
+ </div>
|
|
|
+ <div class="content-item item-3">
|
|
|
+ <infoBox class="infoBox4">
|
|
|
+ <template #title> 系统接入情况 </template>
|
|
|
+ <template #container>
|
|
|
+ <div class="content-wrapper">
|
|
|
+ <a-table size="small" :dataSource="accessStatusData" :columns="accessStatusColumn" :pagination="false">
|
|
|
+ <template #action="{ record }">
|
|
|
+ <div class="option-cont">
|
|
|
+ <div class="view-icon"></div>
|
|
|
+ <a class="table-action-link" @click="viewData(record)">查看数据</a>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </a-table>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </infoBox>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script lang="ts" setup>
|
|
|
+ import { ref } from 'vue';
|
|
|
+ import customHeader from '/@/components/vent/customHeader.vue';
|
|
|
+ import infoBox from './components/infoBox.vue';
|
|
|
+ import { sysDataColumn, sysData, accessStatusColumn, accessStatusData, dailyNumOption, dailyNumData } from './infoCenter.data';
|
|
|
+ import CustomChart from '@/views/vent/home/configurable/components/detail/CustomChart.vue';
|
|
|
+ let mainTitle = ref('智能通风数据中心');
|
|
|
+
|
|
|
+ function viewData(record) {
|
|
|
+ console.log(record);
|
|
|
+ }
|
|
|
+</script>
|
|
|
+<style lang="less" scoped>
|
|
|
+ @font-face {
|
|
|
+ font-family: 'douyuFont';
|
|
|
+ src: url('@/assets/font/douyuFont.otf');
|
|
|
+ }
|
|
|
+
|
|
|
+ .company-home {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ :deep(.vent-home-header) {
|
|
|
+ height: 50px;
|
|
|
+ background: url('@/assets/images/vent/home/modal-top.png') no-repeat center;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ }
|
|
|
+
|
|
|
+ .company-content {
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ width: 100%;
|
|
|
+ height: calc(100% - 50px);
|
|
|
+ padding: 10px 20px;
|
|
|
+ --image-border1: url('/@/assets/images/dataCenter/infoCenter/info-border1.png');
|
|
|
+ --image-border2: url('/@/assets/images/dataCenter/infoCenter/info-border2.png');
|
|
|
+ --image-border3: url('/@/assets/images/dataCenter/infoCenter/info-border3.png');
|
|
|
+ --image-border4: url('/@/assets/images/dataCenter/infoCenter/info-border4.png');
|
|
|
+ --image-split-line: url('/@/assets/images/dataCenter/infoCenter/split-line.png');
|
|
|
+ --image-rank: url('/@/assets/images/dataCenter/infoCenter/rank-bg.png');
|
|
|
+ .content-item {
|
|
|
+ width: 100%;
|
|
|
+ overflow: hidden;
|
|
|
+ padding-bottom: 20px;
|
|
|
+ }
|
|
|
+ .item-1 {
|
|
|
+ height: 20%;
|
|
|
+ }
|
|
|
+ .item-2 {
|
|
|
+ height: 40%;
|
|
|
+ grid-template-columns: 6fr 4fr;
|
|
|
+ gap: 20px;
|
|
|
+ :deep(table) {
|
|
|
+ border-collapse: separate !important;
|
|
|
+ border-spacing: 0 10px !important;
|
|
|
+ .zxm-table-thead {
|
|
|
+ height: 35px;
|
|
|
+ background-color: unset !important;
|
|
|
+ .zxm-table-cell {
|
|
|
+ color: #66ffff !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .zxm-table-tbody {
|
|
|
+ background-color: unset !important;
|
|
|
+ }
|
|
|
+ .zxm-table-cell {
|
|
|
+ border: none !important;
|
|
|
+ background: none !important;
|
|
|
+ padding: 0px;
|
|
|
+ }
|
|
|
+ tr {
|
|
|
+ background: var(--image-rank) no-repeat !important;
|
|
|
+ background-size: 100% 100% !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .item-3 {
|
|
|
+ height: 40%;
|
|
|
+ :deep(table) {
|
|
|
+ border-collapse: collapse !important;
|
|
|
+ // border-spacing: 0 10px !important;
|
|
|
+ .zxm-table-thead {
|
|
|
+ height: 35px;
|
|
|
+ background-color: #0b2542 !important;
|
|
|
+ border: 1px solid #1f7eb5;
|
|
|
+ .zxm-table-cell {
|
|
|
+ border: none !important;
|
|
|
+ color: #37e0eb !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .zxm-table-tbody {
|
|
|
+ .zxm-table-row:nth-child(odd) {
|
|
|
+ background-color: #0e3455;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* 偶数行背景色 */
|
|
|
+ .zxm-table-row:nth-child(even) {
|
|
|
+ background-color: #114268 !important;
|
|
|
+ }
|
|
|
+ .zxm-table-cell {
|
|
|
+ border: none !important;
|
|
|
+ background: none !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .infoBox1 {
|
|
|
+ background-color: var(--image-border1) no-repeat;
|
|
|
+ }
|
|
|
+ .infoBox2 {
|
|
|
+ background-color: var(--image-border2) no-repeat;
|
|
|
+ }
|
|
|
+ .infoBox3 {
|
|
|
+ background-color: var(--image-border3) no-repeat;
|
|
|
+ }
|
|
|
+ .infoBox4 {
|
|
|
+ background-color: var(--image-border4) no-repeat;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .wrapper-1 {
|
|
|
+ grid-template-columns: repeat(5, 1fr);
|
|
|
+ .data-item {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ position: relative;
|
|
|
+ &::after {
|
|
|
+ position: absolute;
|
|
|
+ right: 1px;
|
|
|
+ top: 5px;
|
|
|
+ display: block;
|
|
|
+ width: 2px;
|
|
|
+ height: 100%;
|
|
|
+ background: var(--image-split-line);
|
|
|
+ content: '';
|
|
|
+ }
|
|
|
+ &:last-child::after {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ .value {
|
|
|
+ font-family: 'douyuFont';
|
|
|
+ color: #66ffff;
|
|
|
+ margin-top: 20px;
|
|
|
+ }
|
|
|
+ .item-icon {
|
|
|
+ width: 80px;
|
|
|
+ height: 80px;
|
|
|
+ background-size: 100% 100%;
|
|
|
+ margin-right: 15px;
|
|
|
+ }
|
|
|
+ .icon1 {
|
|
|
+ background-image: url('/@/assets/images/dataCenter/infoCenter/icon1.png');
|
|
|
+ }
|
|
|
+ .icon2 {
|
|
|
+ background-image: url('/@/assets/images/dataCenter/infoCenter/icon2.png');
|
|
|
+ }
|
|
|
+ .icon3 {
|
|
|
+ background-image: url('/@/assets/images/dataCenter/infoCenter/icon3.png');
|
|
|
+ }
|
|
|
+ .icon4 {
|
|
|
+ background-image: url('/@/assets/images/dataCenter/infoCenter/icon4.png');
|
|
|
+ }
|
|
|
+ .icon5 {
|
|
|
+ background-image: url('/@/assets/images/dataCenter/infoCenter/icon5.png');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .option-cont {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ .view-icon {
|
|
|
+ width: 20px;
|
|
|
+ height: 20px;
|
|
|
+ background-image: url('/@/assets/images/dataCenter/infoCenter/view-icon.png');
|
|
|
+ background-repeat: no-repeat;
|
|
|
+ background-size: contain;
|
|
|
+ background-position: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|