From 12fb4b8e4fb75347b25f3ba473b930408ed2ec05 Mon Sep 17 00:00:00 2001 From: zhuzhuanzhuan Date: 星期五, 22 九月 2023 17:49:18 +0800 Subject: [PATCH] 1、优化查询时若无选择日期的提示信息 2、增加部分加载时间较长的数据的加载动画 --- src/views/mdc/base/modules/openRateFractionAnalysis/openRateFractionAnalysisMain.vue | 266 +++++++++++++++++++++++++++++++--------------------- 1 files changed, 158 insertions(+), 108 deletions(-) diff --git a/src/views/mdc/base/modules/openRateFractionAnalysis/openRateFractionAnalysisMain.vue b/src/views/mdc/base/modules/openRateFractionAnalysis/openRateFractionAnalysisMain.vue index 0fe423b..42a5bb9 100644 --- a/src/views/mdc/base/modules/openRateFractionAnalysis/openRateFractionAnalysisMain.vue +++ b/src/views/mdc/base/modules/openRateFractionAnalysis/openRateFractionAnalysisMain.vue @@ -7,14 +7,15 @@ <a-row :gutter="24"> <a-col :md="6" :sm="6"> <a-form-item label="鏃堕棿"> - <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates"/> + <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" + v-model="dates"/> </a-form-item> </a-col> <a-col :md="7" :sm="7" :xs="7"> <a-form-item label="鏃堕棿娈�"> - <a-time-picker :default-value="moment('00:00', 'HH:mm')" format="HH:mm" @change="onChangeStart" /> + <a-time-picker :default-value="moment('00:00', 'HH:mm')" format="HH:mm" @change="onChangeStart"/> 鑷� - <a-time-picker :default-value="moment('08:00', 'HH:mm')" format="HH:mm" @change="onChangeEnd" /> + <a-time-picker :default-value="moment('08:00', 'HH:mm')" format="HH:mm" @change="onChangeEnd"/> </a-form-item> </a-col> <a-col :lg="2" :md="3" :sm="3" :xs="3"> @@ -26,30 +27,39 @@ <div id="DeviceList"> <div class="openRateTrendDg"> <div id="Efficiency" class="container" style="margin-top: 20px;"> - <div class="table2"> - <table class="dataContent table" border="1" cellspacing="0" cellpadding="0" style="white-space: nowrap;text-align: center;"> - <thead> - <tr class="thead fixed equipname"> - <th class="thgu dong1 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">璁惧缂栧彿</th> - <th class="thgu dong2 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">璁惧鍚嶇О</th> - <th class="thgu dong3 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">璁惧绫诲瀷</th> - <template v-for="(tableHead, index) in tableHeads"> - <th class="timeth">{{tableHead}}</th> - </template> - </tr> - </thead> - <tbody> - <tr class="mathData" v-for="(item, index) in dataList" @click="TableDraw(index,item)"> - <td class="tdgu kaitou">{{item.equipmentId}}</td> - <td class="tdgu1 kaitou">{{item.equipmentName}}</td> - <td class="tdgu2 kaitou">{{item.equipmentType}}</td> - <template v-for="(tableHead, index) in item.dataList"> - <td :style="{background:tableHead.color }">{{tableHead.utilizationRate | numFilter}}</td> - </template> - </tr> - </tbody> - </table> - </div> + <a-spin :spinning="loading"> + <div class="table2"> + <table class="dataContent table" border="1" cellspacing="0" cellpadding="0" + style="white-space: nowrap;text-align: center;"> + <thead> + <tr class="thead fixed equipname"> + <th class="thgu dong1 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;"> + 璁惧缂栧彿 + </th> + <th class="thgu dong2 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;"> + 璁惧鍚嶇О + </th> + <th class="thgu dong3 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;"> + 璁惧绫诲瀷 + </th> + <template v-for="(tableHead, index) in tableHeads"> + <th class="timeth">{{tableHead}}</th> + </template> + </tr> + </thead> + <tbody> + <tr class="mathData" v-for="(item, index) in dataList" @click="TableDraw(index,item)"> + <td class="tdgu kaitou">{{item.equipmentId}}</td> + <td class="tdgu1 kaitou">{{item.equipmentName}}</td> + <td class="tdgu2 kaitou">{{item.equipmentType}}</td> + <template v-for="(tableHead, index) in item.dataList"> + <td :style="{background:tableHead.color }">{{tableHead.utilizationRate | numFilter}}</td> + </template> + </tr> + </tbody> + </table> + </div> + </a-spin> </div> </div> <div id="openRateTrendChart" style="width: 100%;height: 60%"></div> @@ -67,6 +77,7 @@ import { JeecgListMixin } from '@/mixins/JeecgListMixin' + export default { // mixins: [JeecgListMixin], name: 'openRateFractionAnalysisMain', @@ -76,7 +87,7 @@ dataSource: [], /* table鍔犺浇鐘舵�� */ loading: false, - typeTree: "", + typeTree: '', typeParent: 1, typeEquipment: 1, TreeIDOne: 1, @@ -103,8 +114,8 @@ listByType: '/mdc/MdcUtilizationRate/getByType' }, tableHeads: [], - XData:[0], - YData:[0], + XData: [0], + YData: [0] } }, props: { nodeTree: '', Type: '', nodePeople: '' }, @@ -116,14 +127,14 @@ this.queryParam.startDate = moment(this.dates[0]).format('YYYYMMDD') this.queryParam.endDate = moment(this.dates[1]).format('YYYYMMDD') this.queryParam.startTime = '00:00' - this.queryParam.endTime = "08:00" - this.queryParam.typeTree = "1" + this.queryParam.endTime = '08:00' + this.queryParam.typeTree = '1' this.loadData1() }, watch: { Type(valmath) { - this.dataList = []; + this.dataList = [] this.queryParam.typeTree = valmath }, nodeTree(val) { //鐩戝惉currSelected 鍙樺寲锛屽皢鍙樺寲鍚庣殑鏁板�间紶閫掔粰 getCurrSelected 浜嬩欢 @@ -171,15 +182,15 @@ this.queryParam.endTime = timeString // console.log(time, timeString); }, - numBerTwo(value){ + numBerTwo(value) { if (value) { return parseFloat((value * 100).toFixed(2)) } else { return '0' } }, - TableDraw(key,val) { - this.XData=[0] + TableDraw(key, val) { + this.XData = [0] this.YData[0] var Xarr = [] var Yarr = [] @@ -187,8 +198,8 @@ Xarr.push(val.dataList[i].theDate) Yarr.push(this.numBerTwo(val.dataList[i].utilizationRate)) } - this.XData=Xarr - this.YData=Yarr + this.XData = Xarr + this.YData = Yarr // if(this.openRateTrendAnalysisChart !=null && this.openRateTrendAnalysisChart != '' && this.openRateTrendAnalysisChart != undefined){ // this.openRateTrendAnalysisChart.dispose() // } @@ -197,21 +208,29 @@ }, //Can not slect days before today and today disabledDate(current) { - return current && current > moment().subtract('days', 1); + return current && current > moment().subtract('days', 1) }, dateParamChange(v1, v2) { this.queryParam.startDate = v2[0] this.queryParam.endDate = v2[1] }, searchQuery() { - if (this.queryParam.typeTree == "1") { - this.queryParam.parentId = this.queryParamEquip.parentId - this.queryParam.equipmentId = this.queryParamEquip.equipmentId + if (this.queryParam.startTime && this.queryParam.endTime && this.dates && this.dates.length > 0) { + if (this.queryParam.typeTree == '1') { + this.queryParam.parentId = this.queryParamEquip.parentId + this.queryParam.equipmentId = this.queryParamEquip.equipmentId + } else { + this.queryParam.parentId = this.queryParamPeople.parentId + this.queryParam.equipmentId = '' + } + this.loadData1() } else { - this.queryParam.parentId = this.queryParamPeople.parentId - this.queryParam.equipmentId = "" + this.$notification.warning({ + message: '鎻愮ず', + description: '璇烽�夋嫨鏃堕棿鎴栨椂闂存' + }) } - this.loadData1() + // this.onClearSelected() }, // searchReset() { @@ -284,6 +303,7 @@ // } // } loadData1() { + this.loading=true this.tableHeads = [] this.dataList = [] getAction(this.url.efficiencyList, this.queryParam).then(res => { @@ -298,10 +318,12 @@ // this.initDeviceType(this.dataList) } + }).finally(()=>{ + this.loading=false }) }, - draw(){ - let openRateTrendAnalysisChart = this.$echarts.init(document.getElementById('openRateTrendChart'), 'macarons'); + draw() { + let openRateTrendAnalysisChart = this.$echarts.init(document.getElementById('openRateTrendChart'), 'macarons') let openRateTrendChartOptions = { title: { text: '鍒╃敤鐜囪蛋鍔垮垎鏋�', @@ -309,7 +331,7 @@ textStyle: { fontSize: 18, fontWeight: 'bolder', - color: "#151414" + color: '#151414' } }, tooltip: { @@ -355,8 +377,8 @@ } } ] - }; - openRateTrendAnalysisChart.setOption(openRateTrendChartOptions,true); + } + openRateTrendAnalysisChart.setOption(openRateTrendChartOptions, true) } } } @@ -401,9 +423,11 @@ padding: 10px; /*display: none;*/ } - .dataContent .mathData:hover td{ + + .dataContent .mathData:hover td { background-color: #e6f7ff; } + .dataContent .mathData .td { /*background-color: #ff9bd2;*/ display: inline-block; @@ -413,138 +437,164 @@ .dataContent .mathData .tdd { /*display: none;*/ } - .table2{ - width: 100%; - height: 100%; - overflow: auto; + + .table2 { + width: 100%; + height: 100%; + overflow: auto; } + /*tr th {*/ - /*height: 50px!important;*/ + /*height: 50px!important;*/ /*}*/ /*tr td{*/ - /*height: 50px!important;*/ + /*height: 50px!important;*/ /*}*/ .table2 thead tr th:first-child, - .table tbody tr .tdgu{ + .table tbody tr .tdgu { position: sticky; left: 0; z-index: 1; } - .table tbody tr .kaitou{ + + .table tbody tr .kaitou { z-index: 1; background-color: white; } - .table tbody tr .tdgu1{ + + .table tbody tr .tdgu1 { position: sticky; left: 150px; z-index: 2; } - .table tbody tr .tdgu2{ + + .table tbody tr .tdgu2 { position: sticky; left: 300px; z-index: 2; } - .table tbody tr .tdgu3{ + + .table tbody tr .tdgu3 { position: sticky; left: 450px; z-index: 2; } - .table tbody tr .tdgu4{ + + .table tbody tr .tdgu4 { position: sticky; left: 550px; z-index: 2; } - .table tbody tr .tdgu5{ + + .table tbody tr .tdgu5 { position: sticky; left: 700px; z-index: 2; } + .table2 thead tr .timeth, - .table2 thead tr .thgu { + .table2 thead tr .thgu { position: sticky; - top:0; + top: 0; z-index: 3; } - .table2 thead .gudingth th{ + + .table2 thead .gudingth th { position: sticky; top: 32px; - z-index: 6!important; + z-index: 6 !important; } - .table2 thead .equipname .name{ + + .table2 thead .equipname .name { z-index: 3; } - .table2 thead .equipname .dong1{ + + .table2 thead .equipname .dong1 { z-index: 4; left: 0; /*border: 1px solid #000;*/ } - .table2 thead .equipname .dong2{ + + .table2 thead .equipname .dong2 { z-index: 5; left: 150px; } - .table2 thead .equipname .dong3{ + + .table2 thead .equipname .dong3 { z-index: 5; left: 300px; } - .table2 thead .equipname .dong4{ + + .table2 thead .equipname .dong4 { z-index: 5; left: 450px; } - .table2 thead .equipname .dong5{ + + .table2 thead .equipname .dong5 { z-index: 5; left: 550px; } - .table2 thead .equipname .dong6{ + + .table2 thead .equipname .dong6 { z-index: 5; left: 700px; } - @media screen and (min-width: 1920px){ - #Efficiency{ - height: 337px!important; - overflow: scroll; + @media screen and (min-width: 1920px) { + #Efficiency { + height: 337px !important; + overflow: scroll; + } } + + @media screen and (min-width: 1680px) and (max-width: 1920px) { + #Efficiency { + height: 337px !important; + overflow: scroll; + } } - @media screen and (min-width: 1680px) and (max-width: 1920px){ - #Efficiency{ - height: 337px!important; - overflow: scroll; + + @media screen and (min-width: 1400px) and (max-width: 1680px) { + #Efficiency { + height: 190px !important; + overflow: scroll; + } } + + @media screen and (min-width: 1280px) and (max-width: 1400px) { + #Efficiency { + height: 90px !important; + overflow: scroll; + } } - @media screen and (min-width: 1400px) and (max-width: 1680px){ - #Efficiency{ - height: 190px!important; - overflow: scroll; + + @media screen and (max-width: 1280px) { + #Efficiency { + height: 90px !important; + overflow: scroll; + } } - } - @media screen and (min-width: 1280px) and (max-width: 1400px){ - #Efficiency{ - height: 90px!important; - overflow: scroll; - } - } - @media screen and (max-width: 1280px){ - #Efficiency{ - height: 90px!important; - overflow: scroll; - } - } - #Efficiency .table_guding1{ + + #Efficiency .table_guding1 { position: absolute; overflow: hidden; width: 500px; } - #Efficiency .table_guding2{ + + #Efficiency .table_guding2 { overflow-x: scroll; width: 500px; } - /deep/ .ant-card{ - height: 100%!important; + + /deep/ .ant-card { + height: 100% !important; } - /deep/ .ant-card .ant-card-body{ - height: 100%!important; + + /deep/ .ant-card .ant-card-body { + height: 100% !important; } - .efficiency_list #DeviceList{ - height: 90%!important; + + .efficiency_list #DeviceList { + height: 90% !important; } </style> \ No newline at end of file -- Gitblit v1.9.3