From 3c4c3b60f42e0ee32d6a95e0b94e4f80a20c7866 Mon Sep 17 00:00:00 2001 From: zhuzhuanzhuan Date: 星期四, 20 七月 2023 16:29:28 +0800 Subject: [PATCH] 统计图表界面的绘制和接口调取,渲染,调整 --- src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue | 159 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 143 insertions(+), 16 deletions(-) diff --git a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue index 6352ce8..dfccf0e 100644 --- a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue +++ b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue @@ -29,7 +29,7 @@ </a-row> </a-form> </div> - <div style="width: 400px;position: absolute;top: 20px; right: 0px;"> + <div style="width: 530px;position: absolute;top: 20px; right: 1.5%;"> <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;"> <tr> <td v-for="(item, index) in identifying">{{item.title}}</td> @@ -50,9 +50,12 @@ <table class="dataContent table" border="1" cellspacing="0" cellpadding="0" style="white-space: nowrap"> <thead> <tr class="thead fixed equipname"> - <th class="thgu dong1 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">璁惧缂栧彿</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: 150px; max-width: 150px;width: 150px;"></th> + <th class="thgu dong4 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">璁惧缂栧彿</th> + <th class="thgu dong5 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">璁惧鍚嶇О</th> + <th class="thgu dong6 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">璁惧绫诲瀷</th> <!--<th rowspan="2">缁勫埆</th>--> <template v-for="(tableHead, index) in tableHeads"> <th class="timeth" :colspan="checkedList.length">{{tableHead}}</th> @@ -71,10 +74,12 @@ </thead> <tbody> <tr class="mathData" v-for="(item, index) in dataList"> - <td class="tdgu kaitou">{{item.equipmentId}}</td> - <td class="tdgu1 kaitou">{{item.equipmentName}}</td> - <td class="tdgu2 kaitou">{{item.equipmentType}}</td> - <!--<td>{{item.tierType}}</td>--> + <td class="tdgu kaitou" :rowspan="item.level1span" :class="{hidden: item.level1dis}" v-show="!item.level1dis">{{item.level1}}</td> + <td class="tdgu1 kaitou" :rowspan="item.level2span" :class="{hidden: item.level2dis}" v-show="!item.level2dis">{{item.level2}}</td> + <td class="tdgu2 kaitou" :rowspan="item.level3span" :class="{hidden: item.level3dis}" v-show="!item.level3dis">{{item.level3}}</td> + <td class="tdgu3 kaitou">{{item.equipmentId}}</td> + <td class="tdgu4 kaitou">{{item.equipmentName}}</td> + <td class="tdgu5 kaitou">{{item.equipmentType}}</td> <template v-for="(tableHead, index) in item.dataList"> <td :style="{background:tableHead.color }">{{tableHead.utilizationRate | numFilter}}</td> <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('kjl') > -1"> @@ -137,9 +142,10 @@ dataList: [], url: { list: '/mdc/efficiencyReport/efficiencyList', - listByType: '/mdc/MdcUtilizationRate/listByType' + listByType: '/mdc/MdcUtilizationRate/getByType' }, - tableHeads: [] + tableHeads: [], + } }, props: { nodeTree: '',Type:'',nodePeople:'' }, @@ -191,6 +197,93 @@ } }, methods: { + checkSameData(dataList){ + let cache = {}; //瀛樺偍鐨勬槸閿槸kclx 鐨勫�硷紝鍊兼槸kclx 鍦╥ndeces涓暟缁勭殑涓嬫爣 + let indices = []; //鏁扮粍涓瘡涓�涓�兼槸涓�涓暟缁勶紝鏁扮粍涓殑姣忎竴涓厓绱犳槸鍘熸暟缁勪腑鐩稿悓kclx鐨勪笅鏍� + dataList.map((item,index)=>{ + let level1 = item.level1; + let _index = cache[level1]; + if(_index!==undefined){ + indices[_index].push(index) + }else{ + cache[level1] = indices.length + indices.push([index]) + } + }) + let result = []; + indices.map((item)=>{ + item.map((index)=>{ + result.push(dataList[index]) + }) + }) + this.dataList = result + }, + checkSameData1(dataList){ + let cache = {}; //瀛樺偍鐨勬槸閿槸kclx 鐨勫�硷紝鍊兼槸kclx 鍦╥ndeces涓暟缁勭殑涓嬫爣 + let indices = []; //鏁扮粍涓瘡涓�涓�兼槸涓�涓暟缁勶紝鏁扮粍涓殑姣忎竴涓厓绱犳槸鍘熸暟缁勪腑鐩稿悓kclx鐨勪笅鏍� + dataList.map((item,index)=>{ + let level2 = item.level2; + let _index = cache[level2]; + if(_index!==undefined){ + indices[_index].push(index) + }else{ + cache[level2] = indices.length + indices.push([index]) + } + }) + let result = []; + indices.map((item)=>{ + item.map((index)=>{ + result.push(dataList[index]) + }) + }) + this.dataList = result + }, + checkSameData2(dataList){ + let cache = {}; //瀛樺偍鐨勬槸閿槸kclx 鐨勫�硷紝鍊兼槸kclx 鍦╥ndeces涓暟缁勭殑涓嬫爣 + let indices = []; //鏁扮粍涓瘡涓�涓�兼槸涓�涓暟缁勶紝鏁扮粍涓殑姣忎竴涓厓绱犳槸鍘熸暟缁勪腑鐩稿悓kclx鐨勪笅鏍� + dataList.map((item,index)=>{ + let level3 = item.level3; + let _index = cache[level3]; + if(_index!==undefined){ + indices[_index].push(index) + }else{ + cache[level3] = indices.length + indices.push([index]) + } + }) + let result = []; + indices.map((item)=>{ + item.map((index)=>{ + result.push(dataList[index]) + }) + }) + this.dataList = result + }, + // 鍚堝苟 + combineCell() { + console.log(this.dataList) + let list =this.dataList; + for (let field in list[0]) { + var k = 0; + while (k < list.length) { + list[k][field + 'span'] = 1; + list[k][field + 'dis'] = false; + for (var i = k + 1; i <= list.length - 1; i++) { + if (list[k][field] == list[i][field] && list[k][field] != '') { + list[k][field + 'span']++; + list[k][field + 'dis'] = false; + list[i][field + 'span'] = 1; + list[i][field + 'dis'] = true; + } else { + break; + } + } + k = i; + } + } + return list; + }, disabledDate(current){ //Can not slect days before today and today return current && current > moment().subtract('days', 1); @@ -282,7 +375,12 @@ if (res.success) { this.tableHeads = res.result.dates this.dataList = res.result.mdcEfficiencyList + this.checkSameData(this.dataList) + this.checkSameData1(this.dataList) + this.checkSameData2(this.dataList) + this.combineCell(); this.initDeviceType(this.dataList) + } }) } @@ -307,12 +405,27 @@ } .table tbody tr .tdgu1{ position: sticky; - left: 100px; + left: 150px; z-index: 2; } .table tbody tr .tdgu2{ position: sticky; - left: 250px; + left: 300px; + z-index: 2; +} +.table tbody tr .tdgu3{ + position: sticky; + left: 450px; + z-index: 2; +} +.table tbody tr .tdgu4{ + position: sticky; + left: 550px; + z-index: 2; +} +.table tbody tr .tdgu5{ + position: sticky; + left: 700px; z-index: 2; } .table2 thead tr .timeth, @@ -336,11 +449,23 @@ } .table2 thead .equipname .dong2{ z-index: 5; - left: 100px; + left: 150px; } .table2 thead .equipname .dong3{ z-index: 5; - left: 250px; + left: 300px; +} +.table2 thead .equipname .dong4{ + z-index: 5; + left: 450px; +} +.table2 thead .equipname .dong5{ + z-index: 5; + left: 550px; +} +.table2 thead .equipname .dong6{ + z-index: 5; + left: 700px; } @media screen and (min-width: 1920px){ @@ -391,7 +516,7 @@ .dataContent { white-space: nowrap; /*margin: 0;*/ - border: none; + /*border: none;*/ border-collapse: separate; border-spacing: 0; /*table-layout: fixed;*/ @@ -437,7 +562,9 @@ .dataContent .mathData .tdd { /*display: none;*/ } - +td { + vertical-align: middle; +} .pink { background-color: #ff9bd2; } -- Gitblit v1.9.3