From 510bbb4e5e0bf980e2478813112bd3e80772fb3a Mon Sep 17 00:00:00 2001
From: batman <978517621@qq.com>
Date: Thu, 09 Mar 2023 17:31:32 +0800
Subject: [PATCH] 新修改添加页面
---
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