|
|
@ -56,66 +56,81 @@ export default { |
|
|
|
|
|
|
|
getWarningSourceGroup().then((res) => { |
|
|
|
if (res.code == 200) { |
|
|
|
let data = res.data.warningSourceList; |
|
|
|
let total = res.data.total; |
|
|
|
let data = res.rows; |
|
|
|
let total = 0; |
|
|
|
|
|
|
|
if (data.length > 0) { |
|
|
|
let warningTypes = []; |
|
|
|
let number = []; |
|
|
|
data.forEach((it, index )=> { |
|
|
|
let chartData = [ |
|
|
|
{ |
|
|
|
average: 0, |
|
|
|
name: '视频AI ', |
|
|
|
percent: 0.3 |
|
|
|
}, |
|
|
|
{ |
|
|
|
average: 0, |
|
|
|
name: '雷达识别', |
|
|
|
percent: 0.2 |
|
|
|
}, { |
|
|
|
average: 0, |
|
|
|
name: '锥桶', |
|
|
|
percent: 0.1 |
|
|
|
}, { |
|
|
|
average: 0, |
|
|
|
name: '护栏碰撞', |
|
|
|
percent: 0.2 |
|
|
|
}, { |
|
|
|
average: 0, |
|
|
|
name: '扫码报警', |
|
|
|
percent: 0.1 |
|
|
|
}, { |
|
|
|
average: 0, |
|
|
|
name: '非机预警', |
|
|
|
percent: 0.1 |
|
|
|
}, |
|
|
|
] |
|
|
|
data.forEach(it => { |
|
|
|
if (it.warningSource == 1) { |
|
|
|
warningTypes.push('交通拥堵'); |
|
|
|
chartData[0].average++; |
|
|
|
} |
|
|
|
if (it.warningSource == 2) { |
|
|
|
warningTypes.push('行人'); |
|
|
|
chartData[1].average++; |
|
|
|
} |
|
|
|
if (it.warningSource == 3) { |
|
|
|
warningTypes.push('非机动车'); |
|
|
|
chartData[2].average++; |
|
|
|
} |
|
|
|
if (it.warningSource == 4) { |
|
|
|
warningTypes.push('停车'); |
|
|
|
chartData[3].average++; |
|
|
|
} |
|
|
|
if (it.warningSource == 5) { |
|
|
|
warningTypes.push('倒车/逆行'); |
|
|
|
chartData[4].average++; |
|
|
|
} |
|
|
|
if (it.warningSource == 6) { |
|
|
|
warningTypes.push('烟火'); |
|
|
|
} |
|
|
|
if (it.warningSource == 7) { |
|
|
|
warningTypes.push('撒落物'); |
|
|
|
} |
|
|
|
if (it.warningSource == 8) { |
|
|
|
warningTypes.push('异常天气'); |
|
|
|
chartData[5].average ++; |
|
|
|
} |
|
|
|
if (it.warningSource == 9) { |
|
|
|
warningTypes.push('护栏碰撞'); |
|
|
|
} |
|
|
|
|
|
|
|
number.push(it.number); |
|
|
|
drawRoundRect(context, 231, 37 + (index * 27), 138, 20, 12, gr); |
|
|
|
total ++; |
|
|
|
// drawRoundRect(context, 231, 37 + (index * 27), 138, 20, 12, gr); |
|
|
|
}) |
|
|
|
// console.log('data',chartData) |
|
|
|
let colorList = ['#006EDF', '#00FF00', '#FFC30D', '#FF8400', '#1DA7FF', '#2967EA']; |
|
|
|
let lengData = []; |
|
|
|
let mainData = []; |
|
|
|
let mainCount = 0; |
|
|
|
for (let j = 0; j < number.length; j++) { |
|
|
|
mainCount += number[j]; |
|
|
|
} |
|
|
|
for (let i = 0; i < warningTypes.length; i++) { |
|
|
|
let it = warningTypes[i]; |
|
|
|
|
|
|
|
for (let i = 0; i < chartData.length; i++) { |
|
|
|
let it = chartData[i]; |
|
|
|
lengData.push({ |
|
|
|
name: it, |
|
|
|
name: it.name, |
|
|
|
color: colorList[i], |
|
|
|
value: number[i], |
|
|
|
value: it.average, |
|
|
|
}); |
|
|
|
mainData.push({ |
|
|
|
name: it, |
|
|
|
name: it.name, |
|
|
|
color: colorList[i], |
|
|
|
value: number[i], |
|
|
|
percent: number[i] / mainCount |
|
|
|
value: it.average, |
|
|
|
percent: it.average / total |
|
|
|
}) |
|
|
|
} |
|
|
|
window.mainData = mainData; |
|
|
|
console.log('mainData',mainData) |
|
|
|
// console.log('mainData', mainData) |
|
|
|
chartsStatistics.title.text = `{tb|${total}}`; |
|
|
|
chartsStatistics.title.subtext = "{zb|总数}"; |
|
|
|
|
|
|
@ -123,11 +138,12 @@ export default { |
|
|
|
chartsStatistics.series[0].data = mainData; |
|
|
|
|
|
|
|
myChart.on('mouseover', (params) => { |
|
|
|
// console.log('params',params) |
|
|
|
if (params.componentType == 'graphic') { |
|
|
|
return |
|
|
|
} |
|
|
|
chartsStatistics.title.text = `{tb|${params.percent}%}`; |
|
|
|
chartsStatistics.title.subtext = `{zb|${params.data.name}}`; |
|
|
|
chartsStatistics.title.subtext = `{zb|${params.data.name}}`; |
|
|
|
// chartsStatistics.title.left = "22%"; |
|
|
|
myChart.setOption(chartsStatistics); |
|
|
|
}) |
|
|
@ -140,7 +156,9 @@ export default { |
|
|
|
myChart.setOption(chartsStatistics); |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
myChart.setOption(chartsStatistics); |
|
|
|
}) |
|
|
|
|
|
|
@ -157,10 +175,12 @@ export default { |
|
|
|
let gr = context.createLinearGradient(230, 0, 360, 0); |
|
|
|
gr.addColorStop(1, 'rgba(92,197,255,0)'); |
|
|
|
gr.addColorStop(0, 'rgba(92,197,255,0.3)'); |
|
|
|
// drawRoundRect(context, 241, 37, 134, 20, 12, gr); |
|
|
|
// drawRoundRect(context, 241, 64, 134, 20, 12, gr); |
|
|
|
// drawRoundRect(context, 241, 91, 134, 20, 12, gr); |
|
|
|
// drawRoundRect(context, 241, 118, 134, 20, 12, gr); |
|
|
|
drawRoundRect(context, 248, 15, 134, 21, 12, gr); |
|
|
|
drawRoundRect(context, 248, 42, 134, 21, 12, gr); |
|
|
|
drawRoundRect(context, 248, 69, 134, 21, 12, gr); |
|
|
|
drawRoundRect(context, 248, 96, 134, 21, 12, gr); |
|
|
|
drawRoundRect(context, 248, 123, 134, 21, 12, gr); |
|
|
|
drawRoundRect(context, 248, 150, 134, 21, 12, gr); |
|
|
|
|
|
|
|
context.lineWidth = 1; // 设置线段宽度 |
|
|
|
|
|
|
|