This commit is contained in:
liushuai
2019-07-06 12:25:48 +08:00
parent 7653ac202f
commit 6fb4d045b7
13 changed files with 504 additions and 13 deletions

View File

@@ -0,0 +1,350 @@
<template>
<div class="app-container">
<el-card>
<span>工位号:</span>
<el-select v-model="MachineValue" filterable size="small" style="width:160px;margin-bottom:10px" placeholder="工位号">
<el-option
v-for="item in Machine"
:key="item.value"
:label="item.label"
:value="item.value">
<div style="float: left">{{ item.label }}</div>
<div style="float: right; color: #8492a6; font-size: 13px">{{ item.value2 }}</div>
</el-option>
</el-select>
<span>日期:</span>
<el-date-picker
v-model="Time"
value-format="yyyy-MM-dd"
size="small"
style="width: 160px"
type="date"
placeholder="选择日期"/>
<el-button type="success" size="small" icon="el-icon-search" style="margin-left: 15px" @click="pageSize=10; pageCurrent= 1;searchData()">查询</el-button>
</el-card>
<el-card>
<el-table
:data="tableDataA"
border
style="width: 100%;max-height: 450px;margin-top: 10px"
height="450px"
highlight-current-row
size="small">
<el-table-column
type="index"
label="序号"
align="center"
width="50"/>
<el-table-column label="工位号" align="center">
<template slot-scope="scope">
{{ scope.row.工位号 }}
</template>
</el-table-column>
<el-table-column label="状态" align="center">
<template slot-scope="scope">
{{ scope.row.状态 }}
</template>
</el-table-column>
<el-table-column label="电流" align="center">
<template slot-scope="scope">
{{ scope.row.电流 }}
</template>
</el-table-column>
<el-table-column label="开始时间" align="center">
<template slot-scope="scope">
{{ scope.row.开始时间 }}
</template>
</el-table-column>
<el-table-column label="结束时间" align="center">
<template slot-scope="scope">
{{ scope.row.结束时间 }}
</template>
</el-table-column>
<el-table-column label="持续时间" align="center">
<template slot-scope="scope">
{{ scope.row.持续时间 }}
</template>
</el-table-column>
<el-table-column label="日期" align="center">
<template slot-scope="scope">
{{ scope.row.日期.split(' ')[0] }}
</template>
</el-table-column>
</el-table>
<div class="block">
<el-pagination
:current-page="pageCurrent"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"/>
</div>
</el-card>
<el-card style="width: 49.8%; float: left;margin-right: 5px">
<div id="myChart1" style="width: 1000px; height: 570px; margin: auto"/>
</el-card>
<el-card style="width: 49.8%">
<div id="myChart2" style="width: 1000px; height: 570px; margin: auto"/>
</el-card>
<el-card>
<span>工位号:</span>
<el-select v-model="MachineValue1" filterable size="small" style="width:160px;margin-bottom:10px" placeholder="工位号">
<el-option
v-for="item in Machine"
:key="item.value"
:label="item.label"
:value="item.value">
<div style="float: left">{{ item.label }}</div>
<div style="float: right; color: #8492a6; font-size: 13px">{{ item.value2 }}</div>
</el-option>
</el-select>
<span style="margin-left: 10px">时间段:</span>
<el-date-picker
v-model="date1"
style="width:160px;margin:10px;"
size="small"
type="date"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期"/>
<span>~</span>
<el-date-picker
v-model="date2"
style="width:160px;margin:10px;"
size="small"
type="date"
value-format="yyyy-MM-dd"
format="yyyy-MM-dd"
placeholder="选择日期"/>
<el-button type="success" size="small" icon="el-icon-search" style="margin-left: 15px" @click="searchData1()">查询</el-button>
</el-card>
<el-card>
<div id="myChart" style="width: 1000px; height: 570px; margin: auto"/>
</el-card>
<el-card>
<div id="myChart3" style="width: 100%; height: 520px; margin: auto"/>
</el-card>
</div>
</template>
<script>import { getData, getData1, getData2, getMachine } from '@/api/ManufacturingCenter/EquipmentConditionAnalysis'
export default {
data() {
return {
tableDataA: [],
MachineValue: '',
MachineValue1: '',
Machine: [],
Time: '',
date1: '',
date2: '',
time1: '',
time2: '',
time3: '',
time11: '',
time22: '',
time33: '',
pageCurrent: 1,
pageSize: 10,
total: 0,
table: []
}
},
mounted() {
this.drawLine()
},
created() {
this.fetchData()
},
methods: {
fetchData() {
this.MachineValue = ''
this.Machine = []
getMachine().then(response => {
for (let i = 0; i < response.data.length; i++) {
this.Machine.push({
label: response.data[i].终端编号,
value: response.data[i].终端编号,
value2: response.data[i].姓名
})
}
})
},
searchData() {
getData(this.MachineValue, this.Time, this.pageCurrent, this.pageSize).then(response => {
this.tableDataA = response.data.rows
this.total = response.data.total
this.time1 = response.data.rows[0].运行持续时间
this.time2 = response.data.rows[0].等待持续时间
this.time3 = response.data.rows[0].停机持续时间
}).then(() => {
this.drawLine1()
})
getData1(this.Time).then(response => {
this.time11 = response.data[0].运行持续时间
this.time22 = response.data[0].等待持续时间
this.time33 = response.data[0].停机持续时间
}).then(() => {
this.drawLine2()
})
},
searchData1() {
getData2(this.MachineValue1, this.date1, this.date2).then(response => {
this.table = response.data
console.log(this.table)
}).then(() => {
this.drawLine()
})
},
// 绘制图形
drawLine() {
const myChart = this.$echarts.init(document.getElementById('myChart'))
const xData = []
const lineData = []
for (let i = 0; i < this.table.length; i++) {
xData.push(this.table[i].日期.split(' ')[0])
lineData.push(this.table[i].利用率.toFixed(2))
}
myChart.clear()
myChart.setOption({
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
crossStyle: {
color: '#999'
}
}
},
legend: {
data: ['利用率']
},
xAxis: [
{
type: 'category',
name: '日期',
data: xData,
axisPointer: {
type: 'shadow'
}
}
],
yAxis: [
{
type: 'value',
name: '利用率'
}
],
series: [
{
name: '利用率',
type: 'line',
label: {
normal: {
show: true,
position: 'top'
}
},
data: lineData
}
]
})
},
drawLine1() {
const myChart = this.$echarts.init(document.getElementById('myChart1'))
const xData = ['运行', '等待', '停机']
const lineData = [{ name: '运行', value: this.time1 }, { name: '等待', value: this.time2 }, { name: '停机', value: this.time3 }]
myChart.clear()
myChart.setOption({
title: {
text: '单台设备状态',
x: 350
},
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
legend: {
type: 'scroll',
orient: 'vertical',
left: 10,
top: 20,
bottom: 20,
data: xData
},
series: [
{
name: '状态',
type: 'pie',
radius: '55%',
center: ['40%', '50%'],
data: lineData,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
})
},
drawLine2() {
const myChart = this.$echarts.init(document.getElementById('myChart2'))
const xData = ['运行', '等待', '停机']
const lineData = [{ name: '运行', value: this.time11 }, { name: '等待', value: this.time22 }, { name: '停机', value: this.time33 }]
myChart.clear()
myChart.setOption({
title: {
text: '全员设备状态',
x: 350
},
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b} : {c} ({d}%)'
},
legend: {
type: 'scroll',
orient: 'vertical',
left: 10,
top: 20,
bottom: 20,
data: xData
},
series: [
{
name: '状态',
type: 'pie',
radius: '55%',
center: ['40%', '50%'],
data: lineData,
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
})
},
handleSizeChange(val) {
this.pageCurrent = 1
this.pageSize = val
this.searchData()
},
handleCurrentChange(val) {
this.pageCurrent = val
this.searchData()
}
}
}
</script>
<style scoped>
</style>