This commit is contained in:
2023-05-22 14:21:16 +08:00
parent 61d55ac797
commit 997c8c86eb
40 changed files with 247 additions and 186 deletions

View File

@@ -18,22 +18,60 @@ import resize from '@/utils/chartMixins/resize'
export default {
name: 'DefectScatterPlotChart',
mixins: [resize],
props: {
defectMsg: {
type: Object,
default: () => {
return {}
}
}
},
data() {
return {
chartDom: '',
chart: '',
chartHeight: tableHeight(446)
chartHeight: tableHeight(446),
list: [
{ label: 'S', value: 's' },
{ label: 'M', value: 'm' },
{ label: 'L', value: 'l' },
{ label: 'XL', value: 'xl' },
{ label: '气泡', value: 'bl' },
{ label: '变形', value: 'distortion' },
{ label: '纤维', value: 'fiber' },
{ label: '划伤', value: 'scratch' },
{ label: '结节', value: 'knot' },
{ label: '结石', value: 'stone' },
{ label: '铂金', value: 'pt' },
{ label: '拖尾', value: 'tail' },
{ label: 'ADG', value: 'adg' },
{ label: '点状缺陷', value: 'tin' },
{ label: '锡缺陷(顶部)', value: 'top' },
{ label: '锡缺陷(底部)', value: 'bottom' },
{ label: '无法识别', value: 'iisrest' }
]
}
},
mounted() {
window.addEventListener('resize', () => {
this.chartHeight = tableHeight(446)
})
setTimeout(() => {
},
watch: {
defectMsg: function () {
this.getChart()
}, 20)
}
},
methods: {
transLabel(v) {
let label = ''
for (let l = 0; l < this.list.length; l++) {
if (v === this.list[l].value) {
label = this.list[l].label
}
}
return label
},
getChart() {
if (
this.chart !== null &&
@@ -44,105 +82,28 @@ export default {
}
this.chartDom = document.getElementById('defectScatterPlotChart')
this.chart = echarts.init(this.chartDom)
const dataS = [
[1, 55],
[2, 25],
[3, 56],
[4, 33],
[5, 42],
[6, 82],
[7, 74],
[8, 78],
[9, 267],
[10, 185],
[11, 39],
[12, 41],
[13, 64],
[14, 108],
[15, 108],
[16, 33],
[17, 94],
[18, 186],
[19, 57],
[20, 22],
[21, 39],
[22, 94],
[23, 99],
[24, 31],
[25, 42],
[26, 154],
[27, 234],
[28, 160],
[29, 134],
[30, 52],
[31, 46]
]
const dataM = [
[1, 26],
[2, 85],
[3, 78],
[4, 21],
[5, 41],
[6, 56],
[7, 64],
[8, 55],
[9, 76],
[10, 91],
[11, 84],
[12, 64],
[13, 70],
[14, 77],
[15, 109],
[16, 73],
[17, 54],
[18, 51],
[19, 91],
[20, 73],
[21, 73],
[22, 84],
[23, 93],
[24, 99],
[25, 146],
[26, 113],
[27, 81],
[28, 56],
[29, 82],
[30, 106],
[31, 118]
]
const dataL = [
[1, 91],
[2, 65],
[3, 83],
[4, 109],
[5, 106],
[6, 109],
[7, 106],
[8, 89],
[9, 53],
[10, 80],
[11, 117],
[12, 99],
[13, 95],
[14, 116],
[15, 108],
[16, 134],
[17, 79],
[18, 71],
[19, 97],
[20, 84],
[21, 87],
[22, 104],
[23, 87],
[24, 168],
[25, 65],
[26, 39],
[27, 39],
[28, 93],
[29, 188],
[30, 174],
[31, 187]
]
console.log(this.defectMsg)
let legendList = []
let seriesList = []
for (let i in this.defectMsg) {
console.log(i)
console.log(this.transLabel(i))
legendList.push(this.transLabel(i))
let arr1 = []
let obj = {}
for (let j of this.defectMsg[i]) {
let arr2 = []
arr2.push(parseInt(j.xpos))
arr2.push(parseInt(j.ypos))
arr1.push(arr2)
}
obj.name = this.transLabel(i)
obj.type = 'scatter'
obj.data = arr1
obj.symbolSize = 5
seriesList.push(obj)
}
console.log(seriesList)
var option = {
color: [
'#5d7ab7',
@@ -166,7 +127,7 @@ export default {
legend: {
top: 10,
left: 0,
data: ['S', 'M', 'L'],
data: legendList,
textStyle: {
fontSize: 9
},
@@ -185,7 +146,6 @@ export default {
nameTextStyle: {
fontSize: 16
},
max: 31,
splitLine: {
show: true,
lineStyle: {
@@ -207,26 +167,27 @@ export default {
}
}
},
series: [
{
name: 'S',
type: 'scatter',
data: dataS,
symbolSize: 5
},
{
name: 'M',
type: 'scatter',
data: dataM,
symbolSize: 5
},
{
name: 'L',
type: 'scatter',
data: dataL,
symbolSize: 5
}
]
series: seriesList
// series: [
// {
// name: 'S',
// type: 'scatter',
// data: dataS,
// symbolSize: 5
// },
// {
// name: 'M',
// type: 'scatter',
// data: dataM,
// symbolSize: 5
// },
// {
// name: 'L',
// type: 'scatter',
// data: dataL,
// symbolSize: 5
// }
// ]
}
option && this.chart.setOption(option)
}