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/openRateTrendAnalysis/openRateTrendAnalysisMain.vue | 250 +++++++++++++++++++++++++++++-------------------- 1 files changed, 149 insertions(+), 101 deletions(-) diff --git a/src/views/mdc/base/modules/openRateTrendAnalysis/openRateTrendAnalysisMain.vue b/src/views/mdc/base/modules/openRateTrendAnalysis/openRateTrendAnalysisMain.vue index 56024fc..952a59b 100644 --- a/src/views/mdc/base/modules/openRateTrendAnalysis/openRateTrendAnalysisMain.vue +++ b/src/views/mdc/base/modules/openRateTrendAnalysis/openRateTrendAnalysisMain.vue @@ -2,30 +2,39 @@ <div class="efficiency_list" style="width: 100%;height: 100%;"> <a-card :bordered="false"> <!-- 鏌ヨ鍖哄煙 --> - <div class="table-page-search-wrapper"> - <a-form layout="inline" @keyup.enter.native="searchQuery"> - <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-form-item> - </a-col> - <a-col :lg="2" :md="3" :sm="3" :xs="3"> - <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> - </a-col> - </a-row> - </a-form> - </div> - <div id="DeviceList"> - <div class="openRateTrendDg"> - <div id="Efficiency" class="container" style="margin-top: 20px;"> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <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-form-item> + </a-col> + <a-col :lg="2" :md="3" :sm="3" :xs="3"> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + </a-col> + </a-row> + </a-form> + </div> + <div id="DeviceList"> + <div class="openRateTrendDg"> + <div id="Efficiency" class="container" style="margin-top: 20px;"> + <a-spin :spinning="loading"> <div class="table2"> - <table class="dataContent table" border="1" cellspacing="0" cellpadding="0" style="white-space: nowrap;text-align: center;"> + <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> + <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" :colspan="checkedList.length">{{tableHead}}</th> </template> @@ -33,9 +42,9 @@ </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> + <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> @@ -43,10 +52,11 @@ </tbody> </table> </div> - </div> + </a-spin> </div> - <div id="openRateTrendChart" style="width: 100%;height: 60%"></div> </div> + <div id="openRateTrendChart" style="width: 100%;height: 60%"></div> + </div> </a-card> </div> </template> @@ -60,6 +70,7 @@ import { JeecgListMixin } from '@/mixins/JeecgListMixin' + export default { // mixins: [JeecgListMixin], name: 'openRateTrendAnalysisMain', @@ -69,7 +80,7 @@ dataSource: [], /* table鍔犺浇鐘舵�� */ loading: false, - typeTree: "", + typeTree: '', typeParent: 1, typeEquipment: 1, TreeIDOne: 1, @@ -96,8 +107,8 @@ listByType: '/mdc/MdcUtilizationRate/getByType' }, tableHeads: [], - XData:[0], - YData:[0], + XData: [0], + YData: [0] } }, props: { nodeTree: '', Type: '', nodePeople: '' }, @@ -108,12 +119,12 @@ this.dates = [moment().subtract('days', 8), moment().subtract('days', 1)] this.queryParam.startDate = moment(this.dates[0]).format('YYYYMMDD') this.queryParam.endDate = moment(this.dates[1]).format('YYYYMMDD') - this.queryParam.typeTree = "1" + this.queryParam.typeTree = '1' this.loadData1() }, watch: { Type(valmath) { - this.dataList = []; + this.dataList = [] this.queryParam.typeTree = valmath }, nodeTree(val) { //鐩戝惉currSelected 鍙樺寲锛屽皢鍙樺寲鍚庣殑鏁板�间紶閫掔粰 getCurrSelected 浜嬩欢 @@ -152,33 +163,33 @@ } }, methods: { - numBerTwo(value){ + numBerTwo(value) { if (value) { return parseFloat((value * 100).toFixed(2)) } else { return '0' } }, - TableDraw(key,val) { - this.XData=[0] - this.YData[0] + TableDraw(key, val) { + this.XData = [0] + this.YData[0] var Xarr = [] var Yarr = [] - for (var i = 0; i < val.dataList.length; i++) { - Xarr.push(val.dataList[i].theDate) - Yarr.push(this.numBerTwo(val.dataList[i].utilizationRate)) - } - this.XData=Xarr - this.YData=Yarr - // if(this.openRateTrendAnalysisChart !=null && this.openRateTrendAnalysisChart != '' && this.openRateTrendAnalysisChart != undefined){ - // this.openRateTrendAnalysisChart.dispose() - // } + for (var i = 0; i < val.dataList.length; i++) { + Xarr.push(val.dataList[i].theDate) + Yarr.push(this.numBerTwo(val.dataList[i].utilizationRate)) + } + this.XData = Xarr + this.YData = Yarr + // if(this.openRateTrendAnalysisChart !=null && this.openRateTrendAnalysisChart != '' && this.openRateTrendAnalysisChart != undefined){ + // this.openRateTrendAnalysisChart.dispose() + // } - this.draw() + this.draw() }, disabledDate(current) { //Can not slect days before today and today - return current && current > moment().subtract('days', 1); + return current && current > moment().subtract('days', 1) }, initDeviceType(deviceList) { let dictCode = 'mdc_equipmentType' @@ -212,14 +223,21 @@ 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.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() { @@ -292,6 +310,7 @@ // } // } loadData1() { + this.loading = true this.tableHeads = [] this.dataList = [] getAction(this.url.efficiencyList, this.queryParam).then(res => { @@ -304,12 +323,13 @@ // this.checkSameData2(this.dataList) // this.combineCell(); // 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: '鍒╃敤鐜囪蛋鍔垮垎鏋�', @@ -317,7 +337,7 @@ textStyle: { fontSize: 18, fontWeight: 'bolder', - color: "#151414" + color: '#151414' } }, tooltip: { @@ -363,8 +383,8 @@ } } ] - }; - openRateTrendAnalysisChart.setOption(openRateTrendChartOptions,true); + } + openRateTrendAnalysisChart.setOption(openRateTrendChartOptions, true) } } } @@ -409,9 +429,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; @@ -421,11 +443,13 @@ .dataContent .mathData .tdd { /*display: none;*/ } - .table2{ + + .table2 { width: 100%; height: 100%; overflow: auto; } + /*tr th {*/ /*height: 50px!important;*/ /*}*/ @@ -433,126 +457,150 @@ /*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; + @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; + + @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; + + @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; + + @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; + + @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