<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: 3200, 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="['20','30','40','50']"
|
@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: 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: 200,
|
dataIndex: 'equipmentName'
|
// fixed: 'left'
|
},
|
{
|
title: '设备型号',
|
align: 'center',
|
width: 110,
|
dataIndex: 'equipmentModel'
|
},
|
{
|
title: '日期',
|
align: 'center',
|
width: 100,
|
dataIndex: 'validDate'
|
},
|
{
|
title: '班次',
|
align: 'center',
|
width: 300,
|
dataIndex: 'shift',
|
ellipsis: true,
|
},
|
{
|
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.queryParam = {
|
pageSize: 20,
|
pageNo: 1
|
}
|
this.dates = []
|
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>
|