From 41d50b20c975faeaa9e5277bdcff13b5acecb575 Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期三, 13 十二月 2023 16:57:37 +0800 Subject: [PATCH] Merge branch 'master' of http://117.34.109.166:18448/r/vue_mdc_430 into develop --- src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue | 292 +++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 176 insertions(+), 116 deletions(-) diff --git a/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue b/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue index b3e08fb..82ff5b5 100644 --- a/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue +++ b/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue @@ -6,12 +6,21 @@ <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col :md="9" :sm="9" :xs="9"> + <a-col :md="4" :sm="4" > + <a-form-item label="璁惧绫诲瀷"> + <a-select placeholder="璇烽�夋嫨璁惧绫诲瀷" :triggerChange="true" v-model="queryParam.equipmentType" :allowClear="true"> + <a-select-option v-for='item in selectList' :key='item.id' :value='item.equipmentTypeName'> + {{item.equipmentTypeName}} + </a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :md="5" :sm="5" :xs="5"> <a-form-item label="鏃堕棿"> <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates"/> </a-form-item> </a-col> - <a-col :md="6" :sm="6" :xs="6"> + <a-col :md="4" :sm="4" :xs="4"> <a-form-item label="鐝埗"> <a-select v-model="queryParam.shiftId" placeholder="璇烽�夋嫨鐝埗" @change="initShiftSubList" :allowClear = "allowClear"> @@ -21,7 +30,7 @@ </a-select> </a-form-item> </a-col> - <a-col :md="6" :sm="6" :xs="6"> + <a-col :md="4" :sm="4" :xs="4"> <a-form-item label="鐝"> <a-select v-model="queryParam.shiftSubId" placeholder="璇烽�夋嫨鐝" @change="initShiftSubListChange" :allowClear = "allowClearSu"> <a-select-option v-for="(em,index) in shiftSubList" :key="index" :value="em.value"> @@ -30,119 +39,132 @@ </a-select> </a-form-item> </a-col> - </a-row> <a-row :gutter="24"> - <a-col :md="15" :sm="15" :xs="15"> + <a-col :md="9" :sm="9" :xs="9"> <a-checkbox-group :value="checkedList" :default-value="['lyl']" :options="efficiencyOptions" @change="efficiencyOptionsOnChange"/> </a-col> - <a-col :md="3" :sm="3" :xs="3"> - <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-col :md="5" :sm="5"> + <a-space> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-button type="primary" @click="searchReset" icon="reload">閲嶇疆</a-button> + <a-button type="primary" @click="exportExcel" icon="download">瀵煎嚭</a-button> + </a-space> </a-col> - <a-col :md="3" :sm="3" :xs="3"> - <a-button type="primary" @click="searchReset" icon="reload">閲嶇疆</a-button> - </a-col> - <a-col :md="3" :sm="3" :xs="3"> - <a-button type="primary" @click="exportExcel" icon="download">瀵煎嚭</a-button> + <a-col :md="10" :sm="10"> + <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;"> + <tr> + <td v-for="(item, index) in identifying">{{item.title}}</td> + </tr> + <tr> + <td style="text-align:center;" v-for="(item, index) in identifying"> + <div class="identifyingclass" :style="{background: item.color}"></div> + </td> + </tr> + </table> </a-col> </a-row> </a-form> - </div> - <div style="width: 530px;top: 0; right: 0px;"> - <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;"> - <tr> - <td v-for="(item, index) in identifying">{{item.title}}</td> - </tr> - <tr> - <td style="text-align:center;" v-for="(item, index) in identifying"> - <div class="identifyingclass" :style="{background: item.color}"></div> - </td> - </tr> - </table> - </div> - </div> - <div class="container" id="EfficiencyShift" style="margin-top: 20px;"> - <div class="table2"> - <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: 50px; max-width: 50px;width: 50px;"></th> - <th class="thgu dong2 name" rowspan="2" style="min-width: 50px; max-width: 50px;width: 50px;"></th> - <th class="thgu dong3 name" rowspan="2" style="min-width: 50px; max-width: 50px;width: 50px;"></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 class="thgu dong7 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> - <!--average--> - <!--<th class="thgu dong4 name" rowspan="2" style="min-width: 100px; max-width: 150px;width: 150px;">骞冲潎鍊�(鐝鍒╃敤鐜�)</th>--> - - </tr> - <tr class="thead notfixed gudingth"> - <template v-for="(tableHead, index) in tableHeads"> - <th>鐝鍒╃敤鐜�(%)</th> - <!--<th v-if="checkedList.indexOf('gzl') > -1">鏁呴殰鐜�(%)</th>--> - <!--<th v-if="checkedList.indexOf('processingLong') > -1">杩愯鏃堕棿(s)</th>--> - <!--<th v-if="checkedList.indexOf('totalLong') > -1">鏈夋晥鏃堕棿(s)</th>--> - <!--<th v-if="checkedList.indexOf('faultLong') > -1">鏁呴殰鏃堕棿(s)</th>--> - <!--<!–<th v-if="checkedList.indexOf('gjsj') > -1">鍏虫満鏃堕棿(s)</th>–>--> - <th v-if="checkedList.indexOf('kjsj') > -1">寮�鏈烘椂闂�(s)</th> - <th v-if="checkedList.indexOf('jgsj') > -1">鍔犲伐鏃堕棿(s)</th> - <th v-if="checkedList.indexOf('djsj') > -1">寰呮満鏃堕棿(s)</th> - <th v-if="checkedList.indexOf('gjsj') > -1">鍏虫満鏃堕棿(s)</th> - </template> - </tr> -<!-- <tr>--> -<!-- <th rowspan="2">骞冲潎鍊�</th>--> -<!-- </tr>--> - </thead> - <tbody> - <tr class="mathData" v-for="(item, index) in dataList"> - <td class="tdgu kaitou wenzi" :rowspan="item.level1span" :class="{hidden: item.level1dis,noExl:item.level1dis}" v-show="!item.level1dis">{{item.level1}}</td> - <td class="tdgu1 kaitou wenzi" :rowspan="item.level2span" :class="{hidden: item.level2dis,noExl:item.level2dis}" v-show="!item.level2dis">{{item.level2}}</td> - <td class="tdgu2 kaitou wenzi" :rowspan="item.level3span" :class="{hidden: item.level3dis,noExl: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> - <td class="tdgu6 kaitou">{{item.shiftSubName}}</td> - - <!--<td>{{item.tierType}}</td>--> - <template v-for="(tableHead, index) in item.dataList"> - <!--<td :style="{background:tableHead.color }" v-if='tableHead.utilizationRate !== 0'>{{tableHead.utilizationRate | numFilter}}</td>--> - <!--<td :style="{background:tableHead.color }" v-if='tableHead.lyl == 0 && tableHead.status == 1'>缁翠慨</td>--> - <!--<td :style="{background:tableHead.color }" v-if='tableHead.lyl == 0 && tableHead.status == 2'>浼戠彮</td>--> - <!--<td :style="{background:tableHead.color }" v-if='tableHead.lyl == 0 && tableHead.status == 10'>{{tableHead.lyl | numFilter}}</td>--> - <!--<td :style="{background:tableHead.color }" v-if='tableHead.lyl == 0 && tableHead.status == 11'>鏈绠�</td>--> - <!--<td :style="{background:tableHead.color }" v-if='tableHead.lyl == 0 && tableHead.status == 12'>鏃犵彮娆�</td>--> - <td :style="{background:tableHead.color }">{{tableHead.utilizationRate | numFilter}}</td> - <!--<td :style="{background:tableHead.color }" v-if="checkedList.indexOf('gzl') > -1">--> - <!--{{tableHead.gzl | numFilter}}--> - <!--</td>--> - <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('kjsj') > -1"> - {{tableHead.openLong}} - </td> - <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('jgsj') > -1"> - {{tableHead.processLong}} - </td> - <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('djsj') > -1"> - {{tableHead.waitLong}} - </td> - <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('gjsj') > -1"> - {{tableHead.closeLong}} - </td> - <!--<td :style="{background:item[tableHead].color }" v-if="checkedList.indexOf('gjsj') > -1">--> - <!--{{item[tableHead].gjsj}}--> - <!--</td>--> - </template> - <!--<td :style="{background:item.average.color }" >{{item.average.lyl | numFilter}}</td>--> - </tr> - </tbody> - </table> </div> + <!--<div style="width: 530px;position:absolute;top: 10px; right: 0;">--> + <!--<table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;">--> + <!--<tr>--> + <!--<td v-for="(item, index) in identifying">{{item.title}}</td>--> + <!--</tr>--> + <!--<tr>--> + <!--<td style="text-align:center;" v-for="(item, index) in identifying">--> + <!--<div class="identifyingclass" :style="{background: item.color}"></div>--> + <!--</td>--> + <!--</tr>--> + <!--</table>--> + <!--</div>--> </div> + <a-spin :spinning="spinning"> + <div class="container" id="EfficiencyShift" style="margin-top: 20px;"> + <div class="table2"> + <table class="dataContent table" border="1" cellspacing="0" cellpadding="0" style="white-space: nowrap" v-if="dataList.length>0"> + <thead> + <tr class="thead fixed equipname"> + <th class="thgu dong1 name" rowspan="2" style="min-width: 50px; max-width: 50px;width: 50px;">鍏徃</th> + <th class="thgu dong2 name" rowspan="2" style="min-width: 50px; max-width: 50px;width: 50px;">杞﹂棿</th> + <th class="thgu dong3 name" rowspan="2" style="min-width: 50px; max-width: 50px;width: 50px;">宸ユ</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: 162px; max-width: 162px;width: 162px;">璁惧鍚嶇О</th> + <th class="thgu dong6 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">璁惧绫诲瀷</th> + <th class="thgu dong7 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> + <!--average--> + <!--<th class="thgu dong4 name" rowspan="2" style="min-width: 100px; max-width: 150px;width: 150px;">骞冲潎鍊�(鐝鍒╃敤鐜�)</th>--> + + </tr> + <tr class="thead notfixed gudingth"> + <template v-for="(tableHead, index) in tableHeads"> + <th>鐝鍒╃敤鐜�(%)</th> + <!--<th v-if="checkedList.indexOf('gzl') > -1">鏁呴殰鐜�(%)</th>--> + <!--<th v-if="checkedList.indexOf('processingLong') > -1">杩愯鏃堕棿(s)</th>--> + <!--<th v-if="checkedList.indexOf('totalLong') > -1">鏈夋晥鏃堕棿(s)</th>--> + <!--<th v-if="checkedList.indexOf('faultLong') > -1">鏁呴殰鏃堕棿(s)</th>--> + <!--<!–<th v-if="checkedList.indexOf('gjsj') > -1">鍏虫満鏃堕棿(s)</th>–>--> + <th v-if="checkedList.indexOf('kjsj') > -1">寮�鏈烘椂闂�(灏忔椂)</th> + <th v-if="checkedList.indexOf('jgsj') > -1">鍔犲伐鏃堕棿(灏忔椂)</th> + <th v-if="checkedList.indexOf('djsj') > -1">寰呮満鏃堕棿(灏忔椂)</th> + <th v-if="checkedList.indexOf('gjsj') > -1">鍏虫満鏃堕棿(灏忔椂)</th> + </template> + </tr> + </thead> + <tbody> + <tr class="mathData" v-for="(item, index) in dataList"> + <template v-if="item.level1!=='鍚堣'&&item.level1!=='骞冲潎鍊�'"> + <td class="tdgu kaitou wenzi" :rowspan="item.level1span" :class="{hidden: item.level1dis,noExl:item.level1dis}" v-show="!item.level1dis">{{item.level1}}</td> + <td class="tdgu1 kaitou wenzi" :rowspan="item.level2span" :class="{hidden: item.level2dis,noExl:item.level2dis}" v-show="!item.level2dis">{{item.level2}}</td> + <td class="tdgu2 kaitou wenzi" :rowspan="item.level3span" :class="{hidden: item.level3dis,noExl:item.level3dis}" v-show="!item.level3dis">{{item.level3}}</td> + <td class="tdgu3 kaitou">{{item.equipmentId}}</td> + <td class="tdgu4 kaitou" style="min-width: 162px; max-width: 162px;width: 162px;">{{item.equipmentName}}</td> + <td class="tdgu5 kaitou">{{item.equipmentType}}</td> + <td class="tdgu6 kaitou">{{item.shiftSubName}}</td> + </template> + + <template v-else> + <td colspan="7" class="tdgu kaitou">{{item.level1}}</td> + </template> + <!--<td>{{item.tierType}}</td>--> + <template v-for="(tableHead, index) in item.dataList"> + <!--<td :style="{background:tableHead.color }" v-if='tableHead.utilizationRate !== 0'>{{tableHead.utilizationRate | numFilter}}</td>--> + <!--<td :style="{background:tableHead.color }" v-if='tableHead.lyl == 0 && tableHead.status == 1'>缁翠慨</td>--> + <!--<td :style="{background:tableHead.color }" v-if='tableHead.lyl == 0 && tableHead.status == 2'>浼戠彮</td>--> + <!--<td :style="{background:tableHead.color }" v-if='tableHead.lyl == 0 && tableHead.status == 10'>{{tableHead.lyl | numFilter}}</td>--> + <!--<td :style="{background:tableHead.color }" v-if='tableHead.lyl == 0 && tableHead.status == 11'>鏈绠�</td>--> + <!--<td :style="{background:tableHead.color }" v-if='tableHead.lyl == 0 && tableHead.status == 12'>鏃犵彮娆�</td>--> + <td :style="{background:tableHead.color }">{{tableHead.utilizationRate | numFilter}}</td> + <!--<td :style="{background:tableHead.color }" v-if="checkedList.indexOf('gzl') > -1">--> + <!--{{tableHead.gzl | numFilter}}--> + <!--</td>--> + <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('kjsj') > -1"> + {{tableHead.openLong | getFormattedTime}} + </td> + <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('jgsj') > -1"> + {{tableHead.processLong | getFormattedTime}} + </td> + <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('djsj') > -1"> + {{tableHead.waitLong | getFormattedTime}} + </td> + <td :style="{background:tableHead.color }" v-if="checkedList.indexOf('gjsj') > -1"> + {{tableHead.closeLong | getFormattedTime}} + </td> + <!--<td :style="{background:item[tableHead].color }" v-if="checkedList.indexOf('gjsj') > -1">--> + <!--{{item[tableHead].gjsj}}--> + <!--</td>--> + </template> + <!--<td :style="{background:item.average.color }" >{{item.average.lyl | numFilter}}</td>--> + </tr> + </tbody> + </table> + </div> + </div> + </a-spin> </div> </div> </template> @@ -164,6 +186,7 @@ allowClear:true, allowClearSu:true, dates: [], + selectList:[], identifying: [], queryParam: {}, queryParamEquip:{}, @@ -186,11 +209,13 @@ list: '/mdc/efficiencyReport/efficiencyShiftList', listByType: '/mdc/MdcUtilizationRate/getByType', initShiftList: '/mdc/mdcMdcShift/initShiftList', - initShiftSubList: '/mdc/mdcShiftSub/initShiftSubList' + initShiftSubList: '/mdc/mdcShiftSub/initShiftSubList', + queryEquipmentType: '/mdc/mdcEquipmentType/queryEquipmentType' }, tableHeads: [], shiftList: [], - shiftSubList: [] + shiftSubList: [], + spinning:false } }, props: { nodeTree: '', Type:'',nodePeople: '' }, @@ -202,6 +227,7 @@ this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') this.queryParam.typeTree = "1" this.loadData(); + this.queryGroup() }, watch: { Type(valmath){ @@ -241,7 +267,20 @@ } else { return '0' } - } + }, + + /** + * 鏍煎紡鍖栨椂闂� + * @param seconds 绉掓暟 + * @returns '' 鏍煎紡鍖栧悗鏃堕棿瀛楃涓� + */ + getFormattedTime(seconds) { + if (seconds) { + return parseFloat((seconds / 3600).toFixed(2)) + '灏忔椂' + } else { + return '0' + } + }, }, methods: { checkSameData(dataList){ @@ -453,6 +492,7 @@ // this.onClearSelected() }, loadData() { + this.spinning=true this.tableHeads = [] this.dataList = [] getAction(this.url.list, this.queryParam).then(res => { @@ -465,6 +505,26 @@ this.combineCell(); // this.initDeviceType(this.dataList) } + }).finally(()=>{ + this.spinning=false + }) + }, + queryGroup() { + getAction(this.url.queryEquipmentType).then(res => { + if (res.success) { + this.selectList = res.result + // this.selectList = res.result.map((item, index, arr) => { + // return { label: item.id, value: item.equipmentTypeName + '' } + // }) + } else { + // this.$message.warning(res.message) + this.$notification.warning({ + message: '娑堟伅', + description: res.message + }) + } + }).finally(() => { + this.loading = false }) } } @@ -515,12 +575,12 @@ } .table tbody tr .tdgu5{ position: sticky; - left: 400px; + left: 412px; z-index: 2; } .table tbody tr .tdgu6{ position: sticky; - left: 500px; + left: 512px; z-index: 2; } @@ -561,11 +621,11 @@ } .table2 thead .equipname .dong6{ z-index: 5; - left: 400px; + left: 412px; } .table2 thead .equipname .dong7{ z-index: 6; - left: 500px; + left: 512px; } @media screen and (min-width: 1920px){ @@ -654,9 +714,9 @@ .dataContent .mathData .tdd { /*display: none;*/ } - .seach-content{ - display: flex; - justify-content: space-between; - } + /*.seach-content{*/ + /*display: flex;*/ + /*justify-content: space-between;*/ + /*}*/ </style> \ No newline at end of file -- Gitblit v1.9.3