From 1392d8f3def2c21e7a6fc15cf3f68fc1056ec0b6 Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期二, 29 七月 2025 19:01:20 +0800 Subject: [PATCH] 三不原则 --- src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue | 1118 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 615 insertions(+), 503 deletions(-) diff --git a/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue b/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue index 136a05d..25eb0c4 100644 --- a/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue +++ b/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue @@ -1,554 +1,666 @@ <template> - <div style="width: 100%;"> - <div :bordered="false"> - <!-- 鏌ヨ鍖哄煙 --> - <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-form-item label="鏃堕棿"> - <a-range-picker - :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" - format="YYYY-MM" - :value="dates" - :mode="['month', 'month']" - @panelChange="dateParamChange" - /> - </a-form-item> - </a-col> - <!--<a-col :md="5" :sm="5" :xs="5">--> - <!--<a-form-item label="鐝埗">--> - <!--<a-select v-model="queryParam.shiftId" placeholder="璇烽�夋嫨鐝埗"--> - <!--@change="initShiftSubList" :allowClear="allowClear">--> - <!--<a-select-option v-for="(em,index) in shiftList" :key="index" :value="em.value">--> - <!--{{ em.label }}--> - <!--</a-select-option>--> - <!--</a-select>--> - <!--</a-form-item>--> - <!--</a-col>--> - <!--<a-col :md="5" :sm="5" :xs="5">--> - <!--<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">--> - <!--{{ em.label }}--> - <!--</a-select-option>--> - <!--</a-select>--> - <!--</a-form-item>--> - <!--</a-col>--> + <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="6" :sm="6" :xs="6"> + <a-form-item label="璁惧绫诲瀷"> + <a-select + :value="queryParams.equipmentType" + mode="multiple" + placeholder="璇烽�夋嫨璁惧绫诲瀷" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'equipmentType')" + > + <a-select-option v-for="(item,index) in equipmentTypeList" :value="item.value" :key="index"> + {{ item.label }} + </a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :md="6" :sm="6" :xs="6"> + <a-form-item label="椹卞姩绫诲瀷"> + <a-select + :value="queryParams.driveType" + mode="multiple" + placeholder="璇烽�夋嫨椹卞姩绫诲瀷" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'driveType')" + > + <a-select-option v-for="(item,index) in driveTypeList" :value="item.value" :key="index"> + {{ item.label }} + </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 + :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" + format="YYYY-MM" + :value="dates" + :mode="['month', 'month']" + @panelChange="dateParamChange" + @change="handleDateChange" + /> + </a-form-item> + </a-col> + <!-- <a-col :md="5" :sm="5" :xs="5">--> + <!-- <a-form-item label="璁惧绉嶇被">--> + <!-- <a-select--> + <!-- :value="queryParams.deviceCategory"--> + <!-- mode="multiple"--> + <!-- placeholder="璇烽�夋嫨璁惧绉嶇被"--> + <!-- allow-clear--> + <!-- :maxTagCount="1"--> + <!-- @change="selectChange($event,'deviceCategory')"--> + <!-- >--> + <!-- <a-select-option v-for="(item,index) in device_category_list" :value="item.value" :key="index">--> + <!-- {{item.label}}--> + <!-- </a-select-option>--> + <!-- </a-select>--> + <!-- </a-form-item>--> + <!-- </a-col>--> + <a-col :md="5" :sm="5" :xs="5"> + <a-form-item label="璁惧绾у埆"> + <a-select + :value="queryParams.deviceLevel" + mode="multiple" + placeholder="璇烽�夋嫨璁惧绾у埆" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'deviceLevel')" + > + <a-select-option v-for="(item,index) in device_level_list" :value="item.value" :key="index"> + {{ item.label }} + </a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :md="2" :sm="2"> + <a + @click="toggleSearchStatus=!toggleSearchStatus" + @selectstart="$event.preventDefault()" + style="display: inline-block;height: 32px;line-height: 32px" + > + {{ toggleSearchStatus ? '鏀惰捣' : '灞曞紑' }} + <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> + </a> + </a-col> + </a-row> - <a-col :md="8" :sm="8" :xs="8"> - <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-row> - </a-form> + <a-row :gutter="24" v-if="toggleSearchStatus"> - </div> - </div> + <!--<a-col :md="5" :sm="5" :xs="5">--> + <!--<a-form-item label="鏁版嵁鍒嗗竷">--> + <!--<a-select--> + <!--:value="queryParams.deviceLevel"--> + <!--mode="multiple"--> + <!--placeholder="璇烽�夋嫨鏁版嵁鍒嗗竷"--> + <!--allow-clear--> + <!--:maxTagCount="1"--> + <!--@change="selectChange($event,'deviceLevel')"--> + <!-->--> + <!--<a-select-option v-for="(item,index) in device_level_list" :value="item.value" :key="index">--> + <!--{{item.label}}--> + <!--</a-select-option>--> + <!--</a-select>--> + <!--</a-form-item>--> + <!--</a-col>--> + <a-col :md="6" :sm="6" :xs="6"> + <a-form-item label="閲嶈绋嬪害"> + <a-select + v-model="queryParam.deviceImportanceLevel" + placeholder="璇烽�夋嫨璁惧閲嶈绋嬪害" + allow-clear + > + <a-select-option v-for="(item,index) in device_importance_level_list" :value="item.value" + :key="index"> + {{ item.label }} + </a-select-option> + </a-select> + </a-form-item> + </a-col> - <div class="container" id="EfficiencyShift" style="margin-top: 20px;"> - <div class="table2"> - <a-table :columns="columns" :dataSource="dataSource.records" :pagination="false" bordered - :scroll="{ x: 3000, y: false }"> - </a-table> - </div> + <a-col :md="6" :sm="6" :xs="6"> + <a-form-item label="鐧惧垎姣旂瓫閫�"> + <a-select + :value="queryParams.percentageLevel" + mode="multiple" + placeholder="璇烽�夋嫨鐧惧垎姣旂瓫閫�" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'percentageLevel')" + > + <a-select-option v-for="(item,index) in percentage_level_list" :value="item.value" + :key="index"> + {{ item.label }} + </a-select-option> + </a-select> + </a-form-item> + </a-col> + </a-row> + + <a-row :gutter="24" style="margin-bottom: 20px"> + <a-col :md="4" :sm="4" :xs="4"> + <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-button type="primary" icon="printer" v-print="'#EfficiencyShift'" v-has="'efficiencyShift:print'"> + 鎵撳嵃 + </a-button> + </a-space> + </a-col> + </a-row> + </a-form> + </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 id="EfficiencyShift" style="flex:1;overflow: hidden;height: inherit"> + <a-table :columns="columns" rowKey="id" :dataSource="dataSource.records?dataSource.records:[]" + :loading="tableLoading" + :pagination="false" :scroll="{x:'max-content',y:scrollY}" bordered> + <!--<template slot="equipmentModel" slot-scope="text, record">--> + <!--<editable-cell :text="text" @change="onCellChange(record.id, 'equipmentModel', $event)"/>--> + <!--</template>--> + </a-table> </div> </div> </template> <script> - import moment from 'moment' - import { putAction, getAction } from '@/api/manage' - import $ from 'jquery' - import '@/components/table2excel/table2excel' - import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api' +import moment from 'moment' +import { getAction } from '@/api/manage' +import $ from 'jquery' +import '@/components/table2excel/table2excel' +import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api' +import api from '@api/mdc' - export default { - name: 'OEEAnalysisList', - components: {}, - data() { - return { - typeTree: '', - typeParent: 1, - typeEquipment: 1, - allowClear: true, - allowClearSu: true, - dates: [moment().subtract('month', 1), moment().subtract('month', 1)], - identifying: [], - queryParam: { - pageSize: 20, - pageNo: 1 - }, - queryParamEquip: {}, - queryParamPeople: {}, - url: { - list: '/mdc/mdcOverallEquipmentEfficiency/list', - initShiftList: '/mdc/mdcMdcShift/initShiftList', - initShiftSubList: '/mdc/mdcShiftSub/initShiftSubList' - }, - shiftList: [], - shiftSubList: [], - columns: [ - { - title: '搴忓彿', - dataIndex: '', - key: 'rowIndex', - width: 70, - align: 'center', - customRender: function(t, r, index) { - return parseInt(index) + 1 - } - // fixed: 'left' - }, - { - title: '璁惧缁熶竴缂栧彿', - align: 'center', - dataIndex: 'equipmentId', - width: 120 - // fixed: 'left' - }, - { - title: '璁惧鍚嶇О', - align: 'center', - width: 150, - dataIndex: 'equipmentName' - // fixed: 'left' - }, - { - title: '璁惧鍨嬪彿', - align: 'center', - width: 110, - dataIndex: 'equipmentModel' - }, - { - title: '鏃ユ湡', - align: 'center', - width: 100, - dataIndex: 'validDate' - }, - { - title: '鐝', - align: 'center', - width: 80, - dataIndex: 'shift' - }, - { - title: '姣忕彮灏忔椂', - dataIndex: 'shiftTimeCount', - align: 'center', - width: 110 - }, - { - title: '鍔犵彮鏃堕棿锛堝垎閽燂級', - dataIndex: 'overtime', - align: 'center', - width: 110 - }, - { - title: '瀹為檯鐝骇澶╂暟', - dataIndex: 'actualWorkDayCount', - align: 'center', - width: 120 - }, - { - title: '鏈堝害瀹為檯鐝骇鎬绘椂闂达紙鍒嗛挓锛�', - dataIndex: 'monthActualWorkDayTimeCount', - align: 'center', - width: 110 - }, - { - title: '闈炶鍒掑仠鏈烘崯澶憋紙鍒嗛挓锛夛紙涓�涓湀锛�', - children: [ - { - title: '鏁呴殰鍋滄満', - dataIndex: 'breakdownDownDuration', - align: 'center', - width: 100 - }, - { - title: '鎹㈠瀷璋冭瘯', - dataIndex: 'conversionDebugDuration', - align: 'center', - width: 100 - }, - { - title: '鐗╂枡鐭己', - dataIndex: 'materialShortageDuration', - align: 'center', - width: 100 - }, - { - title: '璁″垝绛変换鍔�', - dataIndex: 'plannedTaskDuration', - align: 'center', - width: 110 - }, - { - title: '妫�楠�', - dataIndex: 'inspectDuration', - align: 'center', - width: 100 - }, - { - title: '鍏朵粬', - dataIndex: 'otherDuration', - align: 'center', - width: 100 - } - ] - }, - { - title: '璁″垝鍋滄満鏃堕棿锛堝垎閽燂級锛堜竴涓湀锛�', - children: [ - { - title: '璁″垝淇濆吇', - dataIndex: 'plannedMaintenanceDuration', - align: 'center', - width: 100 - }, - { - title: '浼氳/鍩硅', - dataIndex: 'conferenceTrainingDuration', - align: 'center', - width: 110 - }, - { - title: '鍏朵粬浼戞伅绛�', - dataIndex: 'otherRestDuration', - align: 'center', - width: 110 - }] - }, - { - title: '璐熻嵎鏃堕棿锛堝皬鏃讹級', - dataIndex: 'loadTime', - align: 'center', - width: 110 - }, - { - title: '鏃堕棿寮�鍔ㄧ巼', - dataIndex: 'timeActuationRate', - align: 'center', - width: 110, - customRender: text => text != 0 ? text * 100 + '%' : 0 - }, - { - title: '鍔犲伐闆朵欢鏁帮紙浠讹級', - dataIndex: 'processQuantity', - align: 'center', - width: 120 - }, - { - title: '鏍囧噯鍔犲伐鏃堕棿锛堝垎閽燂級', - dataIndex: 'standardProcessDuration', - align: 'center', - width: 120 - }, - { - title: '鎬ц兘寮�鍔ㄧ巼', - dataIndex: 'performanceRate', - align: 'center', - width: 110, - customRender: text => text != 0 ? text * 100 + '%' : 0 - }, - { - title: '搴熷搧鏁�', - dataIndex: 'unqualifiedQuantity', - align: 'center', - width: 100 - }, - { - title: '鍚堟牸鐜�', - dataIndex: 'passRate', - align: 'center', - width: 100, - customRender: text => text != 0 ? text * 100 + '%' : 0 - }, - { - title: '璁惧缁煎悎鏁堢巼', - dataIndex: 'overallEquipmentEfficiency', - align: 'center', - width: 120, - customRender: text => text != 0 ? text * 100 + '%' : 0 +// import EditableCell from './EditableCell.vue' + +export default { + name: 'OEEAnalysisList', + components: {}, + data() { + return { + dates: [moment().subtract('month', 1), moment().subtract('month', 1)], + queryParam: { + pageSize: 10000, + pageNo: 1 + }, + queryParams: { + equipmentType: [], + driveType: [], + deviceLevel: [], + percentageLevel: [] + }, + queryParamEquip: {}, + queryParamPeople: {}, + url: { + list: '/mdc/mdcOverallEquipmentEfficiency/list', + queryEquipmentType: '/mdc/mdcEquipmentType/queryEquipmentType' + }, + columns: [ + { + title: '搴忓彿', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 } - ], - dataSource: [] + }, + { + title: '杞﹂棿', + align: 'center', + dataIndex: 'productionName', + width: 110 + }, + { + title: '璁惧缂栧彿', + align: 'center', + dataIndex: 'equipmentId', + width: 120 + }, + { + title: '璁惧鍚嶇О', + align: 'center', + width: 120, + dataIndex: 'equipmentName' + }, + { + title: '璁惧鍨嬪彿', + align: 'center', + width: 120, + dataIndex: 'equipmentModel', + scopedSlots: { customRender: 'equipmentModel' } + }, + { + title: '鏃ユ湡', + align: 'center', + width: 100, + dataIndex: 'validDate' + }, + { + title: '鐝', + align: 'center', + width: 100, + dataIndex: 'shift' + }, + { + title: '姣忕彮灏忔椂', + dataIndex: 'shiftTimeCount', + align: 'center', + width: 100 + }, + { + title: '鍔犵彮鏃堕棿锛堝垎閽燂級', + dataIndex: 'overtime', + align: 'center', + width: 100 + }, + { + title: '瀹為檯鐝骇澶╂暟', + dataIndex: 'actualWorkDayCount', + align: 'center', + width: 100 + }, + { + title: '鏈堝害瀹為檯鐝骇鎬绘椂闂达紙鍒嗛挓锛�', + dataIndex: 'monthActualWorkDayTimeCount', + align: 'center', + width: 100 + }, + { + title: '闈炶鍒掑仠鏈烘崯澶憋紙鍒嗛挓锛夛紙涓�涓湀锛�', + children: [ + { + title: '鏁呴殰鍋滄満', + dataIndex: 'breakdownDownDuration', + align: 'center', + width: 100 + }, + { + title: '鎹㈠瀷璋冭瘯', + dataIndex: 'conversionDebugDuration', + align: 'center', + width: 100 + }, + { + title: '鐗╂枡鐭己', + dataIndex: 'materialShortageDuration', + align: 'center', + width: 100 + }, + { + title: '璁″垝绛変换鍔�', + dataIndex: 'plannedTaskDuration', + align: 'center', + width: 100 + }, + { + title: '妫�楠�', + dataIndex: 'inspectDuration', + align: 'center', + width: 100 + }, + { + title: '鍏朵粬', + dataIndex: 'otherDuration', + align: 'center', + width: 100 + } + ] + }, + { + title: '璁″垝鍋滄満鏃堕棿锛堝垎閽燂級锛堜竴涓湀锛�', + children: [ + { + title: '璁″垝淇濆吇', + dataIndex: 'plannedMaintenanceDuration', + align: 'center', + width: 100 + }, + { + title: '浼氳/鍩硅', + dataIndex: 'conferenceTrainingDuration', + align: 'center', + width: 100 + }, + { + title: '鍏朵粬浼戞伅绛�', + dataIndex: 'otherRestDuration', + align: 'center', + width: 100 + }] + }, + { + title: '璐熻嵎鏃堕棿锛堝皬鏃讹級', + dataIndex: 'loadTime', + align: 'center', + width: 100 + }, + { + title: '鏃堕棿寮�鍔ㄧ巼', + dataIndex: 'timeActuationRate', + align: 'center', + width: 100, + customRender: text => text != 0 ? parseFloat((text * 100).toFixed(2)) + '%' : 0 + }, + // { + // title: '鍔犲伐闆朵欢鏁帮紙浠讹級', + // dataIndex: 'processQuantity', + // align: 'center', + // width: 120 + // }, + // { + // title: '鏍囧噯鍔犲伐鏃堕棿锛堝垎閽燂級', + // dataIndex: 'standardProcessDuration', + // align: 'center', + // width: 120 + // }, + { + title: '鎬ц兘寮�鍔ㄧ巼', + dataIndex: 'performanceRate', + align: 'center', + width: 100, + customRender: text => text != 0 ? parseFloat((text * 100).toFixed(2)) + '%' : 0 + }, + { + title: '搴熷搧鏁�', + dataIndex: 'unqualifiedQuantity', + align: 'center', + width: 100 + }, + { + title: '鍚堟牸鐜�', + dataIndex: 'passRate', + align: 'center', + width: 100, + customRender: text => text != 0 ? parseFloat((text * 100).toFixed(2)) + '%' : 0 + }, + { + title: '璁惧缁煎悎鏁堢巼', + dataIndex: 'overallEquipmentEfficiency', + align: 'center', + width: 100, + customRender: text => text != 0 ? parseFloat((text * 100).toFixed(2)) + '%' : 0 + } + ], + dataSource: [], + driveTypeList: [], + equipmentTypeList: [], + device_level_list: [], + device_importance_level_list: [], + percentage_level_list: [], + scrollY: 465, + tableLoading: false, + toggleSearchStatus: false + } + }, + props: { nodeTree: '', Type: '', nodePeople: '' }, + created() { + const { isEquipment, productionId } = this.$route.params + if (productionId) { + console.log('productionId', productionId) + console.log('isEquipment', isEquipment) + if (!isEquipment) this.queryParam.parentId = productionId + else this.queryParam.equipmentId = productionId + } + + this.queryParam.startTime = moment(this.dates[0]).format('YYYY-MM') + this.queryParam.endTime = moment(this.dates[1]).format('YYYY-MM') + this.queryParam.typeTree = '1' + this.loadData() + this.getDriveTypeByApi() + this.queryGroup() + this.initDictData('device_level') + this.initDictData('device_category') + this.initDictData('device_importance_level') + this.initDictData('percentage_level') + }, + mounted() { + window.addEventListener('resize', this.handleWindowResize) + // this.handleWindowResize() + }, + beforeDestroy() { + window.removeEventListener('resize', this.handleWindowResize) + }, + watch: { + Type(valmath) { + this.dataList = [] + this.queryParam.typeTree = valmath + }, + nodeTree(val) { //鐩戝惉currSelected 鍙樺寲锛屽皢鍙樺寲鍚庣殑鏁板�间紶閫掔粰 getCurrSelected 浜嬩欢 + console.log(val) + if (JSON.stringify(val) != '{}') { + if (val.equipmentId != null) { + this.queryParamEquip.parentId = '' + this.queryParamEquip.equipmentId = val.equipmentId + } else { + this.queryParamEquip.parentId = val.key + this.queryParamEquip.equipmentId = '' + } + this.searchQuery() } }, - props: { nodeTree: '', Type: '', nodePeople: '' }, - created() { - this.initShiftList() + nodePeople(val) { + if (JSON.stringify(val) != '{}') { + if (val.equipmentId != null) { + this.queryParamPeople.parentId = val.equipmentId + this.queryParamPeople.equipmentId = '' + } else { + this.queryParamPeople.parentId = val.key + this.queryParamPeople.equipmentId = '' + } + this.searchQuery() + } + } + }, + methods: { + initDictData(dictCode) { + // //浼樺厛浠庣紦瀛樹腑璇诲彇瀛楀吀閰嶇疆 + if (getDictItemsFromCache(dictCode)) { + this[dictCode + '_list'] = getDictItemsFromCache(dictCode) + return + } + //鏍规嵁瀛楀吀Code, 鍒濆鍖栧瓧鍏告暟缁� + ajaxGetDictItems(dictCode, null).then((res) => { + if (res.success) { + this[dictCode + '_list'] = res.result + return + } + }) + }, + selectChange(value, key) { + this.queryParams[key] = value + }, + dateParamChange(value) { + console.log('dateParamChangeValue', value) + this.dates = value this.queryParam.startTime = moment(this.dates[0]).format('YYYY-MM') this.queryParam.endTime = moment(this.dates[1]).format('YYYY-MM') - this.queryParam.typeTree = '1' + }, + + handleDateChange(value) { + console.log('handleDateChangeValue', value) + if (!value.length) { + delete this.queryParam.startTime + delete this.queryParam.endTime + this.dates = [] + } + }, + + exportExcel() { + $('#EfficiencyShift').table2excel({ + exclude: '.noExl', + name: 'Excel Document Name', + filename: '璁惧缁煎悎鏁堢巼鍒嗘瀽', + exclude_img: true, + fileext: '.xls', + exclude_links: true, + exclude_inputs: true + }) + }, + + searchQuery() { + 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 = '' + } + Object.keys(this.queryParams).forEach(item => { + if (Array.isArray(this.queryParams[item])) { + // 姝ゅ涓轰繚璇佹帴鍙e弬鏁颁笉澶氫綑锛屽彲鐪佺暐 + this.queryParam[item] = this.queryParams[item].join() + if (this.queryParams[item].length === 0) delete this.queryParam[item] + } + }) this.loadData() }, - watch: { - Type(valmath) { - this.dataList = [] - this.queryParam.typeTree = valmath - }, - nodeTree(val) { //鐩戝惉currSelected 鍙樺寲锛屽皢鍙樺寲鍚庣殑鏁板�间紶閫掔粰 getCurrSelected 浜嬩欢 - console.log(val) - if (JSON.stringify(val) != '{}') { - if (val.equipmentId != null) { - this.queryParamEquip.parentId = '' - this.queryParamEquip.equipmentId = val.equipmentId - } else { - this.queryParamEquip.parentId = val.key - this.queryParamEquip.equipmentId = '' - } - this.searchQuery() - } - }, - nodePeople(val) { - if (JSON.stringify(val) != '{}') { - if (val.equipmentId != null) { - this.queryParamPeople.parentId = val.equipmentId - this.queryParamPeople.equipmentId = '' - } else { - this.queryParamPeople.parentId = val.key - this.queryParamPeople.equipmentId = '' - } - this.searchQuery() - } + + searchReset() { + this.queryParam = { + pageSize: 10000, + pageNo: 1, + typeTree: 1 } - }, - filters: { - numFilter(value) { - if (value) { - return parseFloat((value * 100).toFixed(2)) - } else { - return '0' - } + this.queryParams = { + equipmentType: [], + driveType: [], + deviceLevel: [] } + this.dates = [] + this.loadData() }, - methods: { - dateParamChange(value) { - this.dates = value - this.queryParam.startTime = moment(this.dates[0]).format('YYYY-MM') - this.queryParam.endTime = moment(this.dates[1]).format('YYYY-MM') - }, - initShiftList() { - getAction(this.url.initShiftList).then((res) => { - if (res.success) { - this.shiftList = res.result - } - }) - }, + /** + * 璋冪敤鎺ュ彛鑾峰彇鎺у埗绯荤粺绫诲瀷 + */ + getDriveTypeByApi() { + api.getDriveTypeApi().then((res) => { + if (res.success) this.driveTypeList = res.result + }) + }, - initShiftSubList(val) { - //姣忔閲嶆柊閫夋嫨鐝埗鏃剁彮娆℃竻绌轰笖鏄剧ずplaceholder鍐呭 - this.queryParam.shiftSubId = undefined - getAction(this.url.initShiftSubList, { shiftId: val }).then((res) => { - if (res.success) { - this.shiftSubList = res.result - } - }) - }, - - initShiftSubListChange() { - getAction(this.url.initShiftSubList, { shiftId: this.queryParam.shiftId }).then((res) => { - if (res.success) { - this.shiftSubList = res.result - } - }) - }, - - exportExcel() { - $('#EfficiencyShift').table2excel({ - exclude: '.noExl', - name: 'Excel Document Name', - filename: '璁惧缁煎悎鏁堢巼鍒嗘瀽', - exclude_img: true, - fileext: '.xls', - exclude_links: true, - exclude_inputs: true - }) - }, - - 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() + queryGroup() { + getAction(this.url.queryEquipmentType).then(res => { + if (res.success) { + this.equipmentTypeList = res.result.map(item => { + return { + label: item.equipmentTypeName, + value: item.equipmentTypeName + } + }) } else { - // this.$message.warning("璇烽�夋嫨鏃堕棿") this.$notification.warning({ message: '娑堟伅', - description: '璇烽�夋嫨鏃堕棿' + description: res.message }) } - // this.onClearSelected() - }, + }) + }, - searchReset() { - this.queryParam = { - pageSize: 20, - pageNo: 1 - } - this.dates = [] - this.loadData() - }, - - loadData() { - getAction(this.url.list, this.queryParam).then(res => { - if (res.success) { + loadData() { + this.tableLoading = true + getAction(this.url.list, this.queryParam) + .then(res => { + if (res.success && res.result) { this.dataSource = res.result + this.tableLoading = false } }) - }, + .finally(() => { + this.tableLoading = false + this.handleWindowResize() + }) + }, - /** - * 鍒嗛〉鍣ㄩ〉鏁板彂鐢熸敼鍙樻椂瑙﹀彂 - * @param page 鏀瑰彉鍚庨〉鏁� - * @param pageSize 鏀瑰彉鍚庢瘡椤靛睍绀烘暟鎹潯鏁� - */ - handlePageNoChange(page, pageSize) { - this.queryParam.pageNo = page - this.loadData() - }, - - /** - * 鍒嗛〉鍣ㄦ瘡椤靛睍绀烘暟鎹潯鏁板彂鐢熸敼鍙樻椂瑙﹀彂 - * @param current 鏀瑰彉鍚庨〉鏁� - * @param size 鏀瑰彉鍚庢瘡椤靛睍绀烘暟鎹潯鏁� - */ - handlePageSizeChange(current, size) { - this.queryParam.pageSize = size - this.loadData() - } + /** + * 褰撴祻瑙堝櫒鍙绐楀彛灏哄鍙戠敓鏀瑰彉鏃惰Е鍙� + */ + handleWindowResize() { + const devicePixelRatio = window.devicePixelRatio // 娴忚鍣ㄧ缉鏀炬瘮 + console.log('devicePixelRatio', devicePixelRatio) + if (devicePixelRatio < 1) return // 缂╂斁姣斿皬浜�1鏃朵笉杩涜楂樺害閲嶆柊璁剧疆锛屽洜涓簊crollY鍙樺ぇ鍚庤〃鏍艰秴鍑洪儴鍒嗕細琚殣钘忓鑷存粴鍔ㄦ潯涓嶅彲瑙� + const clientHeight = document.body.clientHeight || document.documentElement.clientHeight// 娴忚鍣ㄥ彲瑙嗗尯鍩熼珮搴� + console.log('clientHeight', clientHeight) + const containerTopToClientTopHeight = document.getElementById('EfficiencyShift').getBoundingClientRect().top // 琛ㄦ牸瀹瑰櫒椤堕儴鍒版祻瑙堝櫒鍙鍖哄煙椤堕儴鐨勯棿璺� + console.log('containerTopToClientTopHeight', containerTopToClientTopHeight) + // const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0, -2) // 琛ㄦ牸琛ㄥご楂樺害 + const tableHeadHeight = document.querySelector('.ant-table-thead th').offsetHeight // 琛ㄦ牸琛ㄥご楂樺害 + console.log('tableHeadHeight', tableHeadHeight) + // this.scrollY = clientHeight - containerTopToClientTopHeight - tableHeadHeight + const tableSuitableScrollY = clientHeight - containerTopToClientTopHeight - tableHeadHeight // 琛ㄦ牸鍨傜洿婊氬姩鏉″悎閫傞珮搴︼紙琛ㄦ牸姘村钩婊氬姩鏉″垰濂藉湪鍙鍖哄煙鏈�涓嬫柟锛� + // const tableSuitableScrollY = 600 + console.log('tableSuitableScrollY', tableSuitableScrollY) + const tableContainerHeight = document.getElementById('EfficiencyShift').offsetHeight + console.log('tableContainerHeight', tableContainerHeight) + const tableMaxScrollY = tableContainerHeight - tableHeadHeight // 琛ㄦ牸鍨傜洿婊氬姩鏉℃渶澶ч珮搴︼紙鑻ヨ秴鍑哄垯姘村钩婊氬姩鏉¤閬尅锛� + console.log('tableMaxScrollY', tableMaxScrollY) + if (tableSuitableScrollY && tableSuitableScrollY < tableMaxScrollY) this.scrollY = tableSuitableScrollY + else this.scrollY = tableMaxScrollY + console.log('scrollY', this.scrollY) } } +} </script> -<style scoped> - .table2 { - width: 100%; - height: 100%; - overflow: auto; - } +<style scoped lang="less"> +.pagination { + display: flex; + justify-content: end; + margin: 20px 0; +} - .pagination { - display: flex; - justify-content: end; - margin: 20px 0; - } +.device_list { + overflow: hidden; + display: flex; + flex-direction: column; +} - @media screen and (min-width: 1920px) { - #EfficiencyShift { - height: 670px !important; - overflow: scroll; - } +@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 +/deep/ .ant-table-body { + &::-webkit-scrollbar { + height: 12px; } - - .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