From 51b9e548b0e533e8a415ce141808f2bb747b381e Mon Sep 17 00:00:00 2001 From: zhuzhuanzhuan Date: 星期一, 18 三月 2024 16:08:49 +0800 Subject: [PATCH] 1、mdc菜单下除特殊要求外,页面表格最少条数由10条调整为30条,每页最多条数区间由[10,20,30]调整为[30,50,100] 2、OEE基础管理和数据报表模块增加打印按钮,实现打印表格数据功能 3、设备管理、数据报表模块增加按照设备级别和设备类型查询表格数据 4、设备车间管理页面增加车间编码字段 5、修改组件名称以试图解决刷新后进入请求json页面问题 --- src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue | 242 ++++++++++++++++++++---------------------------- 1 files changed, 100 insertions(+), 142 deletions(-) diff --git a/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue b/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue index a4b39d9..10b3f60 100644 --- a/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue +++ b/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue @@ -1,19 +1,32 @@ <template> - <div style="width: 100%;"> - <div :bordered="false"> + <div class="device_list"> <!-- 鏌ヨ鍖哄煙 --> <div class="seach-content"> <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col :md="5" :sm="5" :xs="5"> + <a-col :md="4" :sm="4" :xs="4"> <a-form-item label="椹卞姩绫诲瀷"> <a-auto-complete v-model="queryParam.driveType" :data-source="driveTypeList" placeholder="璇烽�夋嫨椹卞姩绫诲瀷" :filter-option="filterOption" + allowClear /> + </a-form-item> + </a-col> + + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="璁惧绾у埆"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绾у埆" dictCode="device_level" v-model="queryParam.deviceLevel" + allow-clear/> + </a-form-item> + </a-col> + <a-col :md="4" :sm="4" :xs="4"> + <a-form-item label="璁惧绉嶇被"> + <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绉嶇被" dictCode="device_category" v-model="queryParam.deviceCategory" + allow-clear/> </a-form-item> </a-col> @@ -33,6 +46,7 @@ <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-button type="primary" icon="printer" v-print="'#EfficiencyShift'" v-has="'deviceProcess:print'">鎵撳嵃</a-button> </a-space> </a-col> </a-row> @@ -41,27 +55,24 @@ </div> </div> - <div class="container" id="EfficiencyShift" style="margin-top: 20px;"> - <div class="table2"> - <a-table :columns="columns" :dataSource="dataSource.records" :pagination="false" bordered> - <span slot="duration" slot-scope="text">{{getFormattedTime(text)}}</span> - </a-table> - </div> + <div class="container" id="EfficiencyShift" style="flex:1;overflow: hidden"> + <a-table :columns="columns" rowKey="equipmentId" :dataSource="dataSource" :scroll="{x:'max-content',y:scrollY}" :pagination="false" bordered> + <span slot="duration" slot-scope="text">{{getFormattedTime(text)}}</span> + </a-table> </div> - <div class="pagination"> - <a-pagination - :total=dataSource.total - :show-total="(total, range) => `${range[0]}-${range[1]} 鍏� ${total} 鏉" - :page-size="+queryParam.pageSize" - :default-current="1" - :current=+queryParam.pageNo - show-size-changer - :pageSizeOptions="['20','30','40','50']" - @change="handlePageNoChange" - @showSizeChange="handlePageSizeChange" - /> - </div> - </div> + <!--<div class="pagination">--> + <!--<a-pagination--> + <!--:total=dataSource.total--> + <!--:show-total="(total, range) => `${range[0]}-${range[1]} 鍏� ${total} 鏉"--> + <!--:page-size="+queryParam.pageSize"--> + <!--:default-current="1"--> + <!--:current=+queryParam.pageNo--> + <!--show-size-changer--> + <!--:pageSizeOptions="['20','30','40','50']"--> + <!--@change="handlePageNoChange"--> + <!--@showSizeChange="handlePageSizeChange"--> + <!--/>--> + <!--</div>--> </div> </template> @@ -83,7 +94,7 @@ typeEquipment: 1, allowClear: true, allowClearSu: true, - dates: [moment(), moment()], + dates: [moment().subtract('days', 1), moment().subtract('days', 1)], identifying: [], queryParam: { pageSize: 20, @@ -99,7 +110,7 @@ title: '搴忓彿', dataIndex: '', key: 'rowIndex', - width: 70, + width: 60, align: 'center', customRender: function(t, r, index) { return parseInt(index) + 1 @@ -110,18 +121,18 @@ title: '璁惧缁熶竴缂栧彿', align: 'center', dataIndex: 'equipmentId', - width: 120 + width: 200 }, { title: '璁惧鍚嶇О', align: 'center', - width: 150, + width: 200, dataIndex: 'equipmentName' }, { title: '椹卞姩绫诲瀷', align: 'center', - width: 110, + width: 100, dataIndex: 'driveType' }, { @@ -133,7 +144,7 @@ { title: '鍔犲伐浠舵暟', align: 'center', - width: 80, + width: 100, dataIndex: 'processCount' }, { @@ -141,17 +152,18 @@ dataIndex: 'duration', align: 'center', scopedSlots: { customRender: 'duration' }, - width: 110 + width: 150 }, - { - title: '鏃ユ湡', - dataIndex: 'theDate', - align: 'center', - width: 110 - } + // { + // title: '鏃ユ湡', + // dataIndex: 'theDate', + // align: 'center', + // width: 110 + // } ], dataSource: [], - driveTypeList: [] + driveTypeList: [], + scrollY:465 } }, props: { nodeTree: '', Type: '', nodePeople: '' }, @@ -161,6 +173,13 @@ this.queryParam.typeTree = '1' this.loadData() this.getDriveTypeByApi() + }, + mounted(){ + window.addEventListener('resize',this.handleWindowResize) + this.handleWindowResize() + }, + beforeDestroy(){ + window.removeEventListener('resize',this.handleWindowResize) }, watch: { Type(valmath) { @@ -205,9 +224,13 @@ methods: { dateParamChange(value) { this.dates = value - console.log('value', value) - this.queryParam.startTime = moment(this.dates[0]).format('YYYYMMDD') - this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') + if(!value.length) { + delete this.queryParam.startTime + delete this.queryParam.endTime + }else{ + this.queryParam.startTime = moment(this.dates[0]).format('YYYYMMDD') + this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') + } }, exportExcel() { @@ -223,24 +246,15 @@ }, searchQuery() { - if (this.dates != '') { - 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.queryParam.pageNo = 1 - this.loadData() + if (this.queryParam.typeTree == '1') { + this.queryParam.parentId = this.queryParamEquip.parentId + this.queryParam.equipmentId = this.queryParamEquip.equipmentId } else { - // this.$message.warning("璇烽�夋嫨鏃堕棿") - this.$notification.warning({ - message: '娑堟伅', - description: '璇烽�夋嫨鏃堕棿' - }) + this.queryParam.parentId = this.queryParamPeople.parentId + this.queryParam.equipmentId = '' } - // this.onClearSelected() + this.queryParam.pageNo = 1 + this.loadData() }, searchReset() { @@ -328,112 +342,56 @@ return ( option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0 ) + }, + + /** + * 褰撴祻瑙堝櫒鍙绐楀彛灏哄鍙戠敓鏀瑰彉鏃惰Е鍙� + */ + handleWindowResize(){ + const boxHeight = +window.getComputedStyle(document.getElementById('EfficiencyShift')).height.slice(0,-2) + const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0,-2) + this.scrollY = boxHeight - tableHeadHeight } } } </script> <style scoped> - .table2 { - width: 100%; - height: 100%; - overflow: auto; - } - .pagination { display: flex; justify-content: end; margin: 20px 0; } - @media screen and (min-width: 1920px) { - #EfficiencyShift { - height: 670px !important; - overflow: scroll; + .device_list{ + overflow: hidden; + display: flex; + flex-direction: column; + } + + @media screen and (min-width: 1920px){ + .device_list{ + height: 811px!important; } } - - @media screen and (min-width: 1680px) and (max-width: 1920px) { - #EfficiencyShift { - height: 670px !important; - overflow: scroll; + @media screen and (min-width: 1680px) and (max-width: 1920px){ + .device_list{ + height: 811px!important; } } - - @media screen and (min-width: 1400px) and (max-width: 1680px) { - #EfficiencyShift { - height: 522px !important; - overflow: scroll; + @media screen and (min-width: 1400px) and (max-width: 1680px){ + .device_list{ + height: 663px!important; } } - - @media screen and (min-width: 1280px) and (max-width: 1400px) { - #EfficiencyShift { - height: 414px !important; - overflow: scroll; + @media screen and (min-width: 1280px) and (max-width: 1400px){ + .device_list{ + height: 564px!important; } } - - @media screen and (max-width: 1280px) { - #EfficiencyShift { - height: 414px !important; - overflow: scroll; + @media screen and (max-width: 1280px){ + .device_list{ + height: 564px!important; } - } - - .identifyingclass { - width: 55px; - height: 15px; - display: inline-block - } - - .dataContent { - white-space: nowrap; - /*margin: 0;*/ - /*border: none;*/ - border-collapse: separate; - border-spacing: 0; - /*table-layout: fixed;*/ - border: 1px solid #ccc; - /*border: 1px solid #ccc;*/ - width: 100%; - /*height: 100%;*/ - /*overflow: hidden;*/ - /*overflow-y: auto;*/ - text-align: center; - } - - .dataContent .fixed th { - width: 50px; - } - - .dataContent .thead th { - background-color: #fafafa; - text-align: center; - height: 30px; - padding: 5px; - } - - .dataContent .notfixed th { - width: auto; - } - - /*.dataContent tr td {*/ - /*height: 35px*/ - /*}*/ - - .dataContent .mathData td { - padding: 10px; - /*display: none;*/ - } - - .dataContent .mathData .td { - /*background-color: #ff9bd2;*/ - display: inline-block; - padding: 10px; - } - - .dataContent .mathData .tdd { - /*display: none;*/ } </style> \ No newline at end of file -- Gitblit v1.9.3