From e62dd14590c140970b86801444c70b3e90892b4d Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期四, 09 三月 2023 17:44:58 +0800
Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqt

---
 src/views/facilityManagement/facilityIndex/index.vue |  627 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 358 insertions(+), 269 deletions(-)

diff --git a/src/views/facilityManagement/facilityIndex/index.vue b/src/views/facilityManagement/facilityIndex/index.vue
index 4f10dde..211a44a 100644
--- a/src/views/facilityManagement/facilityIndex/index.vue
+++ b/src/views/facilityManagement/facilityIndex/index.vue
@@ -1,36 +1,50 @@
 <template>
-    <div class="home-container">
+    <div class="home-container" :class="isFull==true?'container':''" id="bigScreen">
+      <div class="full">
+        <el-button v-if="isFull==false" type="text" style="height: 34px" @click="toFullscreen">
+          <el-icon style="vertical-align: middle">
+            <FullScreen />
+          </el-icon>
+          <span style="vertical-align: middle">全屏</span>
+        </el-button>
+        <el-button v-else type="text" style="height: 34px" @click="toFullscreen">
+          <el-icon style="vertical-align: middle">
+            <Close />
+          </el-icon>
+          <span style="vertical-align: middle">退出全屏</span>
+        </el-button>
+      </div>
         <div class="topChart">
-          <div class="chart-item">
+          <div class="chart-item" :class="zin==1?'upItem':''">
             <div class="chart-tit">
               <span class="tit">当前时间设备状态</span>
               <div class="filter-part filter-part2">
-                <el-cascader v-model="chartSearch1.searchDep" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
+                <el-cascader @focus="upgrade(1)" :teleported="false" v-model="chartSearch1.searchDep" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
               </div>
             </div>
             <div class="chart" :id="sbzt"></div>
           </div>
-          <div class="chart-item">
+          <div class="chart-item" :class="zin==2?'upItem':''">
             <div class="chart-tit">
               <span class="tit">设备异常趋势</span>
               <div class="filter-part filter-part2">
-                <el-cascader v-model="chartSearch2.searchDep" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
+                <el-cascader @focus="upgrade(2)" :teleported="false" v-model="chartSearch2.searchDep" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
               </div>
             </div>
             <div class="chart" :id="ycqs"></div>
           </div>
-          <div class="chart-item">
+          <div class="chart-item" :class="zin==3?'upItem':''">
             <div class="chart-tit">
               <span class="tit">关联作业排行</span>
               <div class="filter-part filter-part3">
-                <el-cascader v-model="chartSearch3.searchDep" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
-                <el-select v-model="chartSearch3.period" size="small">
+                <el-cascader @focus="upgrade(3)" :teleported="false" v-model="chartSearch3.searchDep" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
+                <el-select :teleported="false" v-model="chartSearch3.period" size="small">
                   <el-option label="近7天" value="week"/>
                   <el-option label="近30天" value="month"/>
                   <el-option label="近90天" value="season"/>
                   <el-option label="近1年" value="year"/>
                 </el-select>
-                <el-select v-model="chartSearch3.workType" size="small">
+                <el-select :teleported="false" v-model="chartSearch3.workType" size="small">
                   <el-option
                       v-for="item in workType1"
                       :key="item.id"
@@ -40,8 +54,8 @@
                 </el-select>
               </div>
             </div>
-            <div class="chart" style="margin-top: 10px">
-              <el-table ref="multipleTableRef" :data="rankData" style="width: 100%" :header-cell-style="{ background: '#fafafa' }">
+            <div class="chart">
+              <el-table ref="multipleTableRef" :data="rankData" style="width: 100%" stripe border :header-cell-style="{ background: '#fafafa' }">
                 <el-table-column property="num" label="设备位号" align="center"/>
                 <el-table-column property="name" label="设备名称" align="center"/>
                 <el-table-column property="dep" label="所属部门" align="center"/>
@@ -53,14 +67,14 @@
           </div>
         </div>
         <div class="topChart">
-          <div class="chart-item chart-item2">
+          <div class="chart-item chart-item2" :class="zin==4?'upItem':''">
             <div class="chart-tit">
               <span class="tit">关联作业趋势图</span>
               <div class="filter-part filter-part2">
-                <el-cascader v-model="chartSearch4.searchDep" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
+                <el-cascader @focus="upgrade(4)" :teleported="false" v-model="chartSearch4.searchDep" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
               </div>
             </div>
-            <div class="chart" style="margin-top: 10px">
+            <div class="chart">
               <el-table :data="wdsbData" style="width: 100%" stripe border :header-cell-style="{ background: '#fafafa' }">
                 <el-table-column prop="num" label="设备位号" align="center"/>
                 <el-table-column prop="name" label="设备名称" align="center"/>
@@ -73,16 +87,16 @@
                   </template>
                 </el-table-column>
               </el-table>
-              <div class="pageBtn">
+              <div class="pageBtn" style="margin-top: 10px">
                 <el-pagination v-model:currentPage="pageIndex1" v-model:page-size="pageSize1" :page-sizes="[3]" small="false" background layout="total, sizes, prev, pager, next, jumper" :total="totalSize1" @size-change="handleSizeChange1" @current-change="handleCurrentChange1" />
               </div>
             </div>
           </div>
-          <div class="chart-item chart-item2">
+          <div class="chart-item chart-item2" :class="zin==5?'upItem':''">
             <div class="chart-tit">
               <span class="tit">其他数据分析</span>
               <div class="filter-part filter-part2">
-                <el-cascader v-model="chartSearch4.searchDep" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
+                <el-cascader @focus="upgrade(5)" :teleported="false" v-model="chartSearch4.searchDep" :options="departmentList" :props="casProps" :show-all-levels="false" size="small"/>
               </div>
             </div>
             <div class="chart" style="margin-top: 10px;display: flex;align-items: center">
@@ -111,6 +125,7 @@
 import Cookies from 'js-cookie';
 import axios from 'axios';
 import * as echarts from "echarts";
+import screenfull from "screenfull";
 
 // 定义接口来定义对象的类型
 interface stateType {
@@ -138,6 +153,9 @@
     departmentList: Array<any>;
     rankData: Array<any>;
     wdsbData: Array<any>;
+    isFull:boolean;
+    themeColor:string;
+    zin:number
 }
 interface type {
     id: number;
@@ -169,6 +187,9 @@
         const aqby = ref("eChartAqby" + Date.now() + Math.random())
         const yhxh = ref("eChartYhxh" + Date.now() + Math.random())
         const state = reactive<stateType>({
+            isFull: false,
+            themeColor: '#333',
+            zin: 1,
             pageIndex1: 1,
             pageSize1: 3,
             totalSize1: 3,
@@ -298,7 +319,30 @@
         initAqby()
         initYhxh()
       });
-
+      const toFullscreen =()=>{
+        console.log(state.isFull,'quanp',state.themeColor)
+        const element = document.getElementById('bigScreen')
+        if (!screenfull.isEnabled) {
+          ElMessage.warning('暂不不支持全屏');
+          return false;
+        }
+        screenfull.toggle(element);
+        state.isFull = !state.isFull
+        if(state.isFull == true){
+          state.themeColor = '#11FEEE'
+        }else{
+          state.themeColor = '#333'
+        }
+        initSbzt()
+        initYcqs()
+        initAqxj()
+        initAqby()
+        initYhxh()
+      }
+      const upgrade =(level:number)=>{
+        state.zin = level
+        console.log(state.zin,'zin')
+      }
       type EChartsOption = echarts.EChartsOption
       const initSbzt =()=>{
         let dom = document.getElementById(sbzt.value);
@@ -309,7 +353,15 @@
             trigger: 'item'
           },
           legend: {
-            bottom: '10%'
+            bottom: '10%',
+            textStyle: {
+              // 设置默认的文字颜色
+              color: state.themeColor,
+              fontSize: 12
+            },
+            itemStyle: {
+              borderWidth: 0 // 设置图例边框宽度为0
+            }
           },
           series: [
             {
@@ -358,7 +410,10 @@
         option = {
           xAxis: {
             type: 'category',
-            data: ['四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月', '一月', '二月', '三月']
+            data: ['四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月', '一月', '二月', '三月'],
+            axisLabel: {
+              color: state.themeColor
+            }
           },
           yAxis: {
             type: 'value'
@@ -387,14 +442,25 @@
         option = {
           title: {
             text: '按期巡检率',
-            left: 'center'
+            left: 'center',
+            textStyle:{
+              color: state.themeColor
+            }
           },
           tooltip: {
             trigger: 'item'
           },
           legend: {
             bottom: '5%',
-            left: 'center'
+            left: 'center',
+            textStyle: {
+              // 设置默认的文字颜色
+              color: state.themeColor,
+              fontSize: 12
+            },
+            itemStyle: {
+              borderWidth: 0 // 设置图例边框宽度为0
+            }
           },
           series: [
             {
@@ -441,14 +507,25 @@
         option = {
           title: {
             text: '按期保养率',
-            left: 'center'
+            left: 'center',
+            textStyle:{
+              color: state.themeColor
+            }
           },
           tooltip: {
             trigger: 'item'
           },
           legend: {
             bottom: '5%',
-            left: 'center'
+            left: 'center',
+            textStyle: {
+              // 设置默认的文字颜色
+              color: state.themeColor,
+              fontSize: 12
+            },
+            itemStyle: {
+              borderWidth: 0 // 设置图例边框宽度为0
+            }
           },
           series: [
             {
@@ -495,14 +572,25 @@
         option = {
           title: {
             text: '隐患销号率',
-            left: 'center'
+            left: 'center',
+            textStyle:{
+              color: state.themeColor
+            }
           },
           tooltip: {
             trigger: 'item'
           },
           legend: {
             bottom: '5%',
-            left: 'center'
+            left: 'center',
+            textStyle: {
+              // 设置默认的文字颜色
+              color: state.themeColor,
+              fontSize: 12
+            },
+            itemStyle: {
+              borderWidth: 0 // 设置图例边框宽度为0
+            }
           },
           series: [
             {
@@ -674,6 +762,8 @@
             aqxj,
             aqby,
             yhxh,
+            toFullscreen,
+            upgrade,
             handleReview,
             submitReview,
             reLoadData,
@@ -696,6 +786,14 @@
     height: calc(100vh - 144px);
     box-sizing: border-box;
     overflow: hidden;
+    .full{
+      position:fixed;
+      height: 34px;
+      line-height: 34px;
+      top: 80px;
+      right: 20px;
+      z-index: 99999;
+    }
     .demo-tabs {
         width: 100%;
         height: 100%;
@@ -710,11 +808,11 @@
     }
     .topChart{
       width: 100%;
+      height: calc(50% - 10px);
       display: flex;
       justify-content: space-between;
       align-items: flex-start;
       margin-bottom: 20px;
-      height: 50%;
 
       .chart-item{
         width: calc((100% - 40px)/3);
@@ -730,6 +828,7 @@
 
         .chart-tit{
           width: 100%;
+          height: 15%;
           display: flex;
           align-items: flex-start;
           justify-content: space-between;
@@ -774,8 +873,59 @@
         }
         .chart{
           width: 100%;
-          height: 88%;
-
+          height: 85%;
+          .el-table{
+            height: 90% !important;
+            :deep(.el-table__inner-wrapper){
+              height: 100% !important;
+              .el-table__header-wrapper {
+                height: 20% !important;
+                .el-table__header{
+                  height: 100% !important;
+                  th{
+                    height: 100% !important;
+                    padding: 0 0 !important;
+                    .cell{
+                      white-space: nowrap;
+                      overflow: hidden;
+                      text-overflow: ellipsis;
+                    }
+                  }
+                }
+              }
+              .el-table__body-wrapper {
+                height: 80% !important;
+                .el-scrollbar__view{
+                  height: 100% !important;
+                  .el-table__body{
+                    height: 100% !important;
+                    tbody{
+                      height: 100% !important;
+                      .el-table__row{
+                        height: 20% !important;
+                        td{
+                          height: 20% !important;
+                          padding: 0 0 !important;
+                          .left-info{
+                            display: flex;
+                            align-items: center;
+                          }
+                          .cell{
+                            white-space: nowrap;
+                            overflow: hidden;
+                            text-overflow: ellipsis;
+                          }
+                          .el-button{
+                            padding: 0 !important;
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
           .c-item{
             width: calc((100% - 20px)/3);
             height: 100%;
@@ -824,255 +974,63 @@
         &:last-of-type{
           margin-right: 0;
         }
-      }
-    }
-    .homeCard {
-        width: 100%;
-        padding: 20px;
-        box-sizing: border-box;
-        background: #fff;
-        border-radius: 4px;
-
-        .main-card {
-            width: 100%;
-            height: 100%;
-            .cardTop {
-                display: flex;
-                align-items: center;
-                justify-content: space-between;
-                margin-bottom: 20px;
-                .mainCardBtn {
-                    margin: 0;
+        .chart{
+          .el-table{
+            height: 90% !important;
+            :deep(.el-table__inner-wrapper){
+              height: 100% !important;
+              .el-table__header-wrapper {
+                height: 20% !important;
+                .el-table__header{
+                  height: 100% !important;
+                  th{
+                    height: 100% !important;
+                    padding: 0 0 !important;
+                    .cell{
+                      white-space: nowrap;
+                      overflow: hidden;
+                      text-overflow: ellipsis;
+                    }
+                  }
                 }
-
-              .top-info {
-                display: flex;
-                font-size: 16px;
-                font-weight: bolder;
-                align-items: center;
-                padding: 6px 10px;
-                background: #ffeb87;
-                border-radius: 4px;
-                border: 1px solid #ffae00;
-                margin-right: 20px;
-
-                & > div {
-                  vertical-align: middle;
-                  white-space: nowrap;
-                  span {
-                    font-size: 22px;
-                    color: #f3001e;
-                    margin: 0 2px;
-                    cursor: pointer;
-
-                    &:hover{
-                      text-decoration: underline;
+              }
+              .el-table__body-wrapper {
+                height: 80% !important;
+                .el-scrollbar__view{
+                  height: 100% !important;
+                  .el-table__body{
+                    height: 100% !important;
+                    tbody{
+                      height: 100% !important;
+                      .el-table__row{
+                        height: 20% !important;
+                        td{
+                          height: 20% !important;
+                          padding: 0 0 !important;
+                          .left-info{
+                            display: flex;
+                            align-items: center;
+                          }
+                          .cell{
+                            white-space: nowrap;
+                            overflow: hidden;
+                            text-overflow: ellipsis;
+                          }
+                          .el-button{
+                            padding: 0 !important;
+                          }
+                        }
+                      }
                     }
                   }
                 }
               }
             }
+          }
         }
+      }
     }
-    .stepItem {
-        display: flex;
-        align-items: flex-start;
-        margin-top: 30px;
-        margin-left: 30px;
-        padding-bottom: 30px;
-        padding-left: 40px;
-        border-left: 1px solid #a0cfff;
-        position: relative;
-        &:first-of-type {
-            margin-top: 30px;
-        }
-        &:first-of-type {
-            margin-bottom: 0;
-            border-left: none;
-        }
-        .stepNum {
-            position: absolute;
-            width: 40px;
-            height: 40px;
-            border-radius: 20px;
-            box-sizing: border-box;
-            font-size: 18px;
-            color: #333;
-            border: 1px solid #a0cfff;
-            line-height: 38px;
-            text-align: center;
-            left: -20px;
-            top: -30px;
-            background: #d9ecff;
-        }
-        .stepCard {
-            width: 100%;
-            margin-top: -30px;
 
-            .box-card {
-                width: 100%;
-
-                .card-header {
-                    display: flex;
-                    justify-content: space-between;
-                    align-items: center;
-
-                    span {
-                        font-weight: bold;
-                        margin-left: 10px;
-                    }
-                }
-
-                .text {
-                    width: 100%;
-                    font-size: 14px;
-                    margin-bottom: 10px;
-                    padding-left: 10px;
-
-                    span {
-                        font-weight: bolder;
-                        color: #409eff;
-                    }
-
-                    &:last-of-type {
-                        margin-bottom: 0;
-                    }
-                }
-                .approveUnit {
-                    width: 100%;
-                    font-size: 14px;
-                    margin-bottom: 20px;
-                    padding: 10px 15px;
-                    border: 1px solid #fff;
-                    background: #ecf8ff;
-                    border-radius: 6px;
-                    .item-tit {
-                        width: 100%;
-                        display: flex;
-                        color: #409eff;
-                        align-items: flex-start;
-                        justify-content: space-between;
-                        padding-bottom: 10px;
-                        border-bottom: 1px solid #a0cfff;
-
-                        & > span {
-                            flex: 1;
-                            &:last-of-type{
-                                text-align: center;
-                            }
-                        }
-                        & > div {
-                            flex: 1;
-                            text-align: center;
-                        }
-                    }
-                    .item-cont {
-                        width: 100%;
-                        display: flex;
-                        align-items: center;
-                        justify-content: space-between;
-                        padding: 10px 0;
-                        border-bottom: 1px solid #c6e2ff;
-
-                        & > span {
-                            flex: 1;
-                            &:last-of-type{
-                                text-align: center;
-                            }
-                        }
-                        & > div {
-                            flex: 1;
-                            text-align: center;
-
-                            & > div {
-                                text-align: left;
-                                width: 100%;
-                                display: flex;
-                                justify-content: center;
-                                align-items: center;
-                                span {
-                                    width: 45%;
-                                    &:first-of-type {
-                                        width: 30%;
-                                    }
-                                }
-                            }
-                        }
-                        &:last-of-type {
-                            border-bottom: 0;
-                        }
-                    }
-                }
-                .approveItem {
-                    width: 100%;
-                    font-size: 14px;
-                    margin-bottom: 20px;
-                    padding: 10px 15px;
-                    background: #ecf8ff;
-                    border: 1px solid #fff;
-                    border-radius: 6px;
-                    .item-tit {
-                        width: 100%;
-                        display: flex;
-                        color: #409eff;
-                        align-items: flex-start;
-                        justify-content: space-between;
-                        padding-bottom: 10px;
-                        border-bottom: 1px solid #a0cfff;
-
-                        & > span {
-                            flex: 1;
-                        }
-                        & > div {
-                            flex: 2;
-                            text-align: center;
-                        }
-                    }
-                    .item-cont {
-                        width: 100%;
-                        display: flex;
-                        align-items: center;
-                        justify-content: space-between;
-                        padding: 10px 0;
-                        border-bottom: 1px solid #c6e2ff;
-
-                        & > span {
-                            flex: 1;
-                        }
-                        & > div {
-                            flex: 2;
-                            text-align: center;
-
-                            & > div {
-                                text-align: left;
-                                width: 100%;
-                                display: flex;
-                                justify-content: center;
-                                align-items: flex-start;
-                                margin-bottom: 10px;
-                                span {
-                                    width: 50%;
-                                    &:first-of-type {
-                                        width: 25%;
-                                    }
-                                }
-                            }
-                        }
-                        &:last-of-type {
-                            border-bottom: 0;
-                        }
-                    }
-                }
-            }
-        }
-        &:hover .card-header {
-            color: #0098f5;
-        }
-        &:hover .stepNum {
-            border: 2px solid #0098f5;
-            color: #0098f5;
-        }
-    }
     .el-row {
         display: flex;
         align-items: center;
@@ -1099,6 +1057,137 @@
         }
     }
 }
+.container{
+  padding: 20px;
+  background: url('../../../assets/spwbg.png') no-repeat center;
+
+  .full{
+    position:fixed;
+    background: #fff;
+    border-radius: 17px;
+    box-shadow: 3px 3px 12px rgba(0,0,0,.2);
+    height: 34px;
+    line-height: 34px;
+    top: 0;
+    right: 20px;
+    z-index: 99999;
+  }
+  .topChart{
+    .chart-item{
+      border-radius: 4px;
+      background: rgba(8, 109, 209, 0.2);
+      border: 1px solid rgba(54, 252, 252, .6);
+      backdrop-filter: blur(5px);
+
+      .el-radio.is-bordered.is-checked{
+        border-color: #11FEEE !important;
+        :deep(.el-radio__inner){
+          border-color: #11FEEE !important;
+          background: #11FEEE !important;
+        }
+        :deep(.el-radio__label){
+          color: #11FEEE !important
+        }
+      }
+      .chart-tit{
+        .tit{
+          color: #11FEEE;
+        }
+
+        ::v-deep(.el-popper){
+          background-color: rgba(10,31,92,1);
+          border: 1px solid rgba(17,254,238,.4);
+          color: #11FEEE;
+          .el-cascader-node{
+            .in-active-path{
+              background: #0049af;
+            }
+            &:hover{
+              background: #0049af;
+            }
+          }
+          .el-cascader-node__label{
+            color: #11FEEE;
+          }
+          .el-icon{
+            color: #11FEEE;
+          }
+          .el-select-dropdown__item{
+            color: #11FEEE;
+          }
+          .el-select-dropdown__item.hover{
+            background: #0049af;
+          }
+        }
+        ::v-deep(.el-popper__arrow){
+          &::before{
+            background-color: rgba(10,31,92,.6) !important;
+            border: 1px solid rgba(17,254,238,.4);
+          }
+        }
+        ::v-deep(.el-input__wrapper){
+          box-shadow: none;
+          border: 1px solid rgba(17,254,238,.2);
+          background: rgba(10,31,92,.6) !important;
+          height: 1.5rem;
+          color: #11FEEE;
+
+          input{
+            font-size: 0.8rem;
+            color: #11FEEE;
+          }
+          .el-icon{
+            color: #11FEEE;
+          }
+        }
+      }
+      .chart{
+        .el-table {
+          color: #11FEEE !important;
+          background-color: rgba(0,0,0,0) !important;
+          :deep(thead){
+            color: #11FEEE !important;
+            background-color: #092846 !important
+          }
+          :deep(tr){
+            background-color: rgba(0,0,0,0) !important;
+            .el-table__cell{
+              background-color: rgba(0,0,0,0) !important;
+            }
+          }
+        }
+        .el-button--text{
+          color: #11FEEE;
+        }
+      }
+    }
+    .upItem{
+      position: relative;
+      z-index: 9999;
+    }
+    .chart-item2{
+      .chart{
+        .el-table {
+          color: #11FEEE !important;
+          background-color: rgba(0,0,0,0) !important;
+          :deep(thead){
+            color: #11FEEE !important;
+            background-color: #092846 !important
+          }
+          :deep(tr){
+            background-color: rgba(0,0,0,0) !important;
+            .el-table__cell{
+              background-color: rgba(0,0,0,0) !important;
+            }
+          }
+        }
+        .el-button--text{
+          color: #11FEEE;
+        }
+      }
+    }
+  }
+}
 .el-card {
     border: 0;
 }

--
Gitblit v1.9.2