This commit is contained in:
liushuai
2019-07-08 12:43:11 +08:00
parent 4559eabbaa
commit 013de5e5f1
4 changed files with 176 additions and 11 deletions

View File

@@ -129,7 +129,7 @@
</div>
</template>
<script>import { getData, getData1, getData2, getMachine } from '@/api/ManufacturingCenter/EquipmentConditionAnalysis'
<script>import { getData, getData1, getData2, getData3, getMachine } from '@/api/ManufacturingCenter/EquipmentConditionAnalysis'
export default {
data() {
return {
@@ -137,6 +137,7 @@ export default {
MachineValue: '',
MachineValue1: '',
Machine: [],
yAxisValue: [],
Time: '',
date1: '',
date2: '',
@@ -193,10 +194,16 @@ export default {
searchData1() {
getData2(this.MachineValue1, this.date1, this.date2).then(response => {
this.table = response.data
console.log(this.table)
console.log(this.table, 222)
}).then(() => {
this.drawLine()
})
getData3(this.MachineValue1, this.date1, this.date2).then(response => {
this.table1 = response.data
console.log(this.table1)
}).then(() => {
this.drawLine3()
})
},
// 绘制图形
drawLine() {
@@ -204,6 +211,7 @@ export default {
const xData = []
const lineData = []
for (let i = 0; i < this.table.length; i++) {
console.log(this.table[i].日期, 1111)
xData.push(this.table[i].日期.split(' ')[0])
lineData.push(this.table[i].利用率.toFixed(2))
}
@@ -332,6 +340,136 @@ export default {
]
})
},
drawLine3() {
const _this = this
_this.data = []
_this.index = 0
_this.yAxisValue = []
for (let i = 0; i < _this.table1.length; i++) { // 取开始结束时间HH-mm取状态日期yyyy-MM-dd持续时间
_this.fixDate = _this.table1[0].日期.substr(0, 10)
_this.table1[i].开始时间 = _this.fixDate + ' ' + _this.table1[i].开始时间.substr(11, 5)
_this.table1[i].结束时间 = _this.fixDate + ' ' + _this.table1[i].结束时间.substr(11, 5)
_this.table1[i].日期 = _this.table1[i].日期.substr(0, 10)
}
if (_this.table1.length === 1) {
_this.data.push({
itemStyle: { normal: { color: _this.table1[0].颜色 }}, // 条形颜色
name: _this.table1[0].状态,
value: [0, _this.table1[0].开始时间, _this.table1[0].结束时间]
})
} else {
for (let i = 0; i < _this.table1.length; i++) {
if (i < _this.table1.length) {
if (i === 0) {
_this.index = 0
_this.yAxisValue.push(_this.table1[i].日期)
} else if (_this.table1[i].日期 !== _this.table1[i - 1].日期) {
_this.index++ // y轴索引
_this.yAxisValue.push(_this.table1[i].日期)
}
}
_this.data.push({
itemStyle: { normal: { color: _this.table1[i].颜色 }}, // 条形颜色
name: _this.table1[i].状态,
value: [parseInt(_this.index), _this.table1[i].开始时间, _this.table1[i].结束时间]
})
}
}
const myChart = _this.$echarts.init(document.getElementById('myChart3'))
myChart.clear()
myChart.setOption({
title: {
left: 'center',
text: '设备状态分布图'
},
color: _this.colors,
tooltip: { // 提示框
formatter(params) {
return params.value[1].substr(11, 5) + '~' + params.value[2].substr(11, 5)
} // 数据的值
},
legend: { // 图例
left: 'left'
// selectedMode: false, // 图例可点击
},
dataZoom: [{
type: 'inside',
start: 0,
end: 50
}, { // X轴可调
xAxisIndex: 0,
start: 0,
end: 50,
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
handleSize: '80%',
handleStyle: {
color: '#fff',
shadowBlur: 3,
shadowColor: 'rgba(0, 0, 0, 0.6)',
shadowOffsetX: 2,
shadowOffsetY: 2
}
}],
grid: { // 绘图网格
left: '3%',
right: '3%',
top: '10%',
bottom: '10%',
containLabel: true
},
xAxis: {
type: 'time',
interval: 1000 * 60 * 60 * 2,
axisLabel: {
formatter(value) {
var date = new Date(value)
return getzf(date.getHours()) + ':' + getzf(date.getMinutes())
function getzf(num) {
if (parseInt(num) < 10) {
num = '0' + num
}
return num
}
}
}
},
yAxis: {
data: _this.yAxisValue
},
series: [
// 用空bar来显示几个图例
{
type: 'custom', renderItem(params, api) { // 开发者自定义的图形元素渲染逻辑,是通过书写 renderItem 函数实现的
var categoryIndex = api.value(0) // 这里使用 api.value(0) 取出当前 dataItem 中第一个维度的数值。
var start = api.coord([api.value(1), categoryIndex]) // 这里使用 api.coord(...) 将数值在当前坐标系中转换成为屏幕上的点的像素值。
var end = api.coord([api.value(2), categoryIndex])
var height = 24 // 柱体宽度
return {
type: 'rect', // 表示这个图形元素是矩形。还可以是 'circle', 'sector', 'polygon' 等等。
shape: _this.$echarts.graphic.clipRectByRect({ // 矩形的位置和大小。
x: start[0],
y: start[1] - height / 1,
width: end[0] - start[0],
height: height * 2
}, { // 当前坐标系的包围盒。
x: params.coordSys.x,
y: params.coordSys.y,
width: params.coordSys.width,
height: params.coordSys.height
}),
style: api.style()
}
},
encode: {
x: [1, 2], // data 中『维度1』和『维度2』对应到 X 轴
y: 0 // data 中『维度0』对应到 Y 轴
},
data: _this.data
}
]
})
},
handleSizeChange(val) {
this.pageCurrent = 1
this.pageSize = val