From 3dd1c81c84d78a30fff6468ccb05f979f2d50966 Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期三, 22 十一月 2023 17:48:45 +0800 Subject: [PATCH] Merge branch 'master' of http://117.34.109.166:18448/r/vue_mdc_430 --- src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue | 562 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 562 insertions(+), 0 deletions(-) diff --git a/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue b/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue new file mode 100644 index 0000000..7331180 --- /dev/null +++ b/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue @@ -0,0 +1,562 @@ +<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> + + <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> + + </div> + </div> + + <div class="container" id="EfficiencyShift" style="margin-top: 20px;"> + <div class="table2"> + <a-table :columns="columns" :dataSource="dataSource.records" :pagination="false" bordered + :scroll="{ x: 1500, y: false }"> + + </a-table> + </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="['10','15','20','25']" + @change="handlePageNoChange" + @showSizeChange="handlePageSizeChange" + /> + </div> + </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' + + 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: 10, + 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 + } + ], + dataSource: [] + } + }, + props: { nodeTree: '', Type: '', nodePeople: '' }, + created() { + this.initShiftList() + 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() + }, + 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() + } + } + }, + filters: { + numFilter(value) { + if (value) { + return parseFloat((value * 100).toFixed(2)) + } else { + return '0' + } + } + }, + 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 + } + }) + }, + + 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() + } else { + // this.$message.warning("璇烽�夋嫨鏃堕棿") + this.$notification.warning({ + message: '娑堟伅', + description: '璇烽�夋嫨鏃堕棿' + }) + } + // this.onClearSelected() + }, + + searchReset() { + this.typeTree = this.queryParam.typeTree + this.typeParent = this.queryParam.parentId + this.typeEquipment = this.queryParam.equipmentId + this.queryParam = { + pageSize: 10, + pageNo: 1 + } + this.dates = [] + this.shiftSubList = [] + this.queryParam.typeTree = this.typeTree + this.queryParam.parentId = this.typeParent + this.queryParam.equipmentId = this.typeEquipment + this.loadData() + }, + + loadData() { + getAction(this.url.list, this.queryParam).then(res => { + if (res.success) { + this.dataSource = res.result + } + }) + }, + + /** + * 鍒嗛〉鍣ㄩ〉鏁板彂鐢熸敼鍙樻椂瑙﹀彂 + * @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() + } + } + } +</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; + } + } + + @media screen and (min-width: 1680px) and (max-width: 1920px) { + #EfficiencyShift { + height: 670px !important; + overflow: scroll; + } + } + + @media screen and (min-width: 1400px) and (max-width: 1680px) { + #EfficiencyShift { + height: 522px !important; + overflow: scroll; + } + } + + @media screen and (min-width: 1280px) and (max-width: 1400px) { + #EfficiencyShift { + height: 414px !important; + overflow: scroll; + } + } + + @media screen and (max-width: 1280px) { + #EfficiencyShift { + height: 414px !important; + overflow: scroll; + } + } + + .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