刘朋
8 months ago
31 changed files with 1377 additions and 406 deletions
Before Width: | Height: | Size: 2.9 MiB After Width: | Height: | Size: 9.5 MiB |
@ -1,46 +1,270 @@ |
|||
<template> |
|||
<div class="Eventfiltering"> |
|||
<div class="Eventfiltering-left" id="trafficIncidentsCharts"></div> |
|||
<div class="Eventfiltering-right"></div> |
|||
<InputSearch |
|||
class="search-box" |
|||
:formList="searchFormList" |
|||
@handleSearch="handleSearch" |
|||
/> |
|||
<div class="Eventfiltering-content"> |
|||
<div class="Eventfiltering-left" ref="trafficIncidents"></div> |
|||
<div class="Eventfiltering-right" ref="trafficIncidentsPie"></div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
// import trafficIncidentsCharts from "./trafficIncidentsCharts.js"; |
|||
// import * as echarts from "echarts"; |
|||
|
|||
// export default { |
|||
// name: "Eventfiltering", |
|||
// components: { trafficIncidentsCharts }, |
|||
// data() { |
|||
// return {}; |
|||
// }, |
|||
// mounted() { |
|||
// var trafficIncidentsCharts = echarts.init( |
|||
// document.getElementById("trafficIncidentsCharts") |
|||
// ); |
|||
// trafficIncidentsCharts.setOption(trafficIncidentsCharts); |
|||
// }, |
|||
// methods: {}, |
|||
// }; |
|||
import InputSearch from "@screen/components/InputSearch/index.vue"; |
|||
import trafficIncidentsCharts1 from "./trafficIncidentsCharts.js"; |
|||
import trafficIncidentsChartsPie1 from "./trafficIncidentsChartsPie.js"; |
|||
import { nonAutomaticWarningFacility } from "@/api/manualWarning/index.js"; |
|||
import * as echarts from "echarts"; |
|||
import moment from "moment"; |
|||
const drawRoundRect = (ctx, x, y, width, height, radius, gr) => { |
|||
// ctx, 矩形距离x坐标位置, 矩形距离y坐标的位置, 矩形的宽, 矩形的长,圆角角度 |
|||
ctx.beginPath(); |
|||
ctx.fillStyle = gr; |
|||
ctx.arc(x + radius, y + radius, radius, Math.PI, (Math.PI * 3) / 2); |
|||
ctx.lineTo(width - radius + x, y); |
|||
ctx.arc( |
|||
width - radius + x, |
|||
radius + y, |
|||
radius, |
|||
(Math.PI * 3) / 2, |
|||
Math.PI * 2 |
|||
); |
|||
ctx.lineTo(width + x, height + y - radius); |
|||
ctx.arc( |
|||
width - radius + x, |
|||
height - radius + y, |
|||
radius, |
|||
0, |
|||
(Math.PI * 1) / 2 |
|||
); |
|||
ctx.lineTo(radius + x, height + y); |
|||
ctx.arc(radius + x, height - radius + y, radius, (Math.PI * 1) / 2, Math.PI); |
|||
ctx.closePath(); |
|||
//ctx.stroke(); |
|||
ctx.fill(); |
|||
}; |
|||
|
|||
export default { |
|||
name: "Sitefiltering", |
|||
components: { |
|||
InputSearch, |
|||
}, |
|||
props: { |
|||
name: { |
|||
type: String, |
|||
}, |
|||
}, |
|||
data() { |
|||
return { |
|||
// loading: false, |
|||
trafficIncidents: null, |
|||
trafficIncidentsPie: null, |
|||
formData: { |
|||
type: "day", |
|||
warningTime: "", |
|||
}, |
|||
searchFormList: [ |
|||
{ |
|||
label: "事件类型:", |
|||
key: "type", |
|||
type: "select", |
|||
default: "day", |
|||
options: { |
|||
clearable: true, |
|||
options: [ |
|||
{ |
|||
key: "day", |
|||
label: "天", |
|||
}, |
|||
{ |
|||
key: "month", |
|||
label: "月", |
|||
}, |
|||
{ |
|||
key: "year", |
|||
label: "年", |
|||
}, |
|||
], |
|||
}, |
|||
}, |
|||
{ |
|||
label: "日期:", |
|||
key: "warningTime", |
|||
required: true, |
|||
type: "datePicker", |
|||
options: { |
|||
valueFormat: "yyyy-MM-dd", |
|||
}, |
|||
visible: (data) => { |
|||
if (data.type == "day") { |
|||
return true; |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: "日期:", |
|||
key: "warningTime", |
|||
required: true, |
|||
type: "datePicker", |
|||
options: { |
|||
type: "month", |
|||
valueFormat: "yyyy-MM-dd", |
|||
}, |
|||
visible: (data) => { |
|||
if (data.type == "month") { |
|||
return true; |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: "日期:", |
|||
key: "warningTime", |
|||
required: true, |
|||
type: "datePicker", |
|||
options: { |
|||
type: "year", |
|||
valueFormat: "yyyy-MM-dd", |
|||
}, |
|||
visible: (data) => { |
|||
if (data.type == "year") { |
|||
return true; |
|||
} |
|||
}, |
|||
}, |
|||
], |
|||
}; |
|||
}, |
|||
|
|||
watch: { |
|||
name: { |
|||
handler(newValue, oldValue) { |
|||
console.log("newValue", newValue); |
|||
if (newValue == "second") { |
|||
this.getWarningCharts(); |
|||
} |
|||
}, |
|||
deep: true, |
|||
}, |
|||
}, |
|||
|
|||
mounted() {}, |
|||
methods: { |
|||
getWarningCharts() { |
|||
setTimeout(() => { |
|||
this.$nextTick(async () => { |
|||
(this.formData.warningTime = |
|||
moment(new Date()).format("YYYY-MM-DD") + " 00:00:01"), |
|||
(this.trafficIncidents = echarts.init(this.$refs.trafficIncidents)); |
|||
this.trafficIncidents.setOption(trafficIncidentsCharts1); |
|||
this.trafficIncidentsPie = echarts.init( |
|||
this.$refs.trafficIncidentsPie |
|||
); |
|||
this.trafficIncidentsPie.setOption(trafficIncidentsChartsPie1); |
|||
|
|||
const domMap = this.$refs.trafficIncidentsPie; |
|||
let parentDiv = domMap.firstElementChild; |
|||
// // 创建canvas; |
|||
let canvas = document.createElement("canvas"); |
|||
canvas.width = parentDiv.offsetWidth; |
|||
canvas.height = parentDiv.offsetHeight; |
|||
parentDiv.appendChild(canvas); |
|||
const context = canvas.getContext("2d"); |
|||
|
|||
// // 填充渐变颜色 |
|||
let gr = context.createLinearGradient(280, 0, 580, 0); |
|||
gr.addColorStop(1, "rgba(92,197,255,0)"); |
|||
gr.addColorStop(0, "rgba(92,197,255,0.5)"); |
|||
context.lineWidth = 1; // 设置线段宽度 |
|||
drawRoundRect(context, 430, 134, 280, 24, 12, gr); |
|||
drawRoundRect(context, 430, 168, 280, 24, 10, gr); |
|||
drawRoundRect(context, 430, 202, 280, 24, 10, gr); |
|||
drawRoundRect(context, 430, 236, 280, 24, 10, gr); |
|||
drawRoundRect(context, 430, 270, 280, 24, 10, gr); |
|||
drawRoundRect(context, 430, 304, 280, 24, 10, gr); |
|||
drawRoundRect(context, 430, 338, 280, 24, 10, gr); |
|||
drawRoundRect(context, 430, 372, 280, 24, 10, gr); |
|||
drawRoundRect(context, 430, 406, 280, 24, 10, gr); |
|||
drawRoundRect(context, 430, 440, 280, 24, 10, gr); |
|||
// drawRoundRect(context, 430, 474, 280, 24, 10, gr); |
|||
await this.getNonAutomaticWarningFacility(this.formData); |
|||
}); |
|||
}); |
|||
}, |
|||
getNonAutomaticWarningFacility(data) { |
|||
return nonAutomaticWarningFacility(data).then((res) => { |
|||
let newData = res.data; |
|||
let seriesData = []; |
|||
let xData = []; |
|||
let pieData = []; |
|||
let total = null; |
|||
newData.forEach((item) => { |
|||
seriesData.push(item.number); |
|||
xData.push(item.facilityName); |
|||
pieData.push({ |
|||
value: item.number, |
|||
name: item.facilityName, |
|||
}); |
|||
total += item.number; |
|||
}); |
|||
trafficIncidentsCharts1.series[0].data = seriesData; |
|||
trafficIncidentsCharts1.xAxis.data = xData; |
|||
|
|||
trafficIncidentsChartsPie1.legend.formatter = function (name) { |
|||
let tarValue = 0; |
|||
for (let i = 0; i < newData.length; i++) { |
|||
if (newData[i].facilityName === name) { |
|||
tarValue = newData[i].number; |
|||
} |
|||
} |
|||
var percert = total == 0 ? 0 : ((tarValue / total) * 100).toFixed(2); |
|||
return `{text|${name}} {number|${tarValue} 起 } {number|${percert}%}`; |
|||
}; |
|||
|
|||
trafficIncidentsChartsPie1.title[0].text = total; |
|||
trafficIncidentsChartsPie1.series[2].data = pieData; |
|||
trafficIncidentsChartsPie1.legend.data = xData; |
|||
this.trafficIncidents.setOption(trafficIncidentsCharts1); |
|||
this.trafficIncidentsPie.setOption(trafficIncidentsChartsPie1); |
|||
}); |
|||
}, |
|||
handleSearch(value) { |
|||
value.warningTime = value.warningTime + " 00:00:01"; |
|||
this.formData = { ...value }; |
|||
this.getNonAutomaticWarningFacility(this.formData); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.Eventfiltering { |
|||
width: 99%; |
|||
height: 100%; |
|||
height: 94%; |
|||
margin: auto; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
} |
|||
.Eventfiltering-left { |
|||
width: 60%; |
|||
height: 100%; |
|||
background-color: #fff; |
|||
} |
|||
.Eventfiltering-right { |
|||
width: 40%; |
|||
height: 100%; |
|||
background-color: #fff; |
|||
|
|||
.search-box { |
|||
width: 402px !important; |
|||
float: right; |
|||
} |
|||
|
|||
.Eventfiltering-content { |
|||
width: 100%; |
|||
height: 96%; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
|
|||
.Eventfiltering-left { |
|||
width: 63%; |
|||
height: 100%; |
|||
} |
|||
|
|||
.Eventfiltering-right { |
|||
width: 34%; |
|||
height: 100%; |
|||
} |
|||
} |
|||
} |
|||
</style> |
|||
|
@ -0,0 +1,95 @@ |
|||
var options = { |
|||
title: { |
|||
// text: '单位/%',
|
|||
top: "0%", |
|||
left: "0%", |
|||
textStyle: { |
|||
fontSize: "10px", |
|||
fontWeight: 300, |
|||
color: "#B5C5D4", |
|||
opacity: 0.8, |
|||
}, |
|||
}, |
|||
tooltip: { |
|||
valueFormatter: function (value) { |
|||
return value + " 起"; |
|||
}, |
|||
}, |
|||
grid: { |
|||
left: "50px", |
|||
right: "0%", |
|||
top: "50px", |
|||
bottom: "5%", |
|||
containLabel: true, |
|||
}, |
|||
xAxis: { |
|||
type: "category", |
|||
data: [], |
|||
axisLine: { |
|||
lineStyle: { |
|||
color: "rgba(49, 217, 255, 0.8)", |
|||
}, |
|||
}, |
|||
axisTick: { |
|||
show: false, |
|||
}, |
|||
axisLabel: { |
|||
color: "#fff", |
|||
fontSize: "18px", |
|||
}, |
|||
}, |
|||
yAxis: [ |
|||
{ |
|||
// type: 'value',
|
|||
// min: function (value) {
|
|||
// return value.min*0.9;
|
|||
// },
|
|||
name: "交通事件(起)", |
|||
nameTextStyle: { |
|||
color: "#fff", |
|||
fontSize: 18, |
|||
align: "center", |
|||
}, |
|||
type: "value", |
|||
axisLine: { |
|||
show: false, |
|||
lineStyle: { |
|||
width: 1, |
|||
color: "#545454", |
|||
}, |
|||
}, |
|||
splitLine: { |
|||
lineStyle: { |
|||
color: "rgba(49, 217, 255, 0.5)", |
|||
}, |
|||
}, |
|||
axisTick: { |
|||
show: false, |
|||
}, |
|||
axisLabel: { |
|||
color: "#fff", |
|||
fontSize: "18px", |
|||
formatter: (value) => { |
|||
return value; |
|||
}, |
|||
}, |
|||
}, |
|||
], |
|||
series: [ |
|||
{ |
|||
// name: '审限内结案率',
|
|||
data: [5, 10, 20, 30], |
|||
type: "pictorialBar", |
|||
symbol: "roundRect", |
|||
symbolRepeat: true, |
|||
symbolSize: [13, 4], |
|||
// symbolOffset: symbolOffset,
|
|||
// barWidth:'40%',
|
|||
itemStyle: { |
|||
color: "#20E7FF", |
|||
}, |
|||
}, |
|||
], |
|||
}; |
|||
|
|||
export default options; |
@ -0,0 +1,232 @@ |
|||
let colors = [ |
|||
"#4278F8", |
|||
"#5372C4", |
|||
"#0046FF", |
|||
"#FB9434", |
|||
"#854101", |
|||
"#05E599", |
|||
"#219F73", |
|||
"#7CEDD5", |
|||
"#854101", |
|||
"#05E599", |
|||
"#219F73", |
|||
"#7CEDD5", |
|||
]; |
|||
var legendData = []; |
|||
|
|||
var options = { |
|||
title: [ |
|||
{ |
|||
text: "999", |
|||
top: "36%", |
|||
textAlign: "center", |
|||
left: "29%", |
|||
textStyle: { |
|||
color: "#ffffff", |
|||
fontSize: 30, |
|||
fontFamily: "SourceHanSansCN", |
|||
}, |
|||
}, |
|||
{ |
|||
text: "总数", |
|||
top: "32%", |
|||
textAlign: "center", |
|||
left: "29%", |
|||
textStyle: { |
|||
color: "rgba(242, 252, 253, 0.84)", |
|||
fontSize: 16, |
|||
fontFamily: "SourceHanSansCN", |
|||
}, |
|||
}, |
|||
], |
|||
grid: { |
|||
top: "38%", |
|||
left: "6%", |
|||
right: "6%", |
|||
bottom: "3%", |
|||
containLabel: true, |
|||
}, |
|||
tooltip: { |
|||
show: true, |
|||
valueFormatter: function (value) { |
|||
return value + " 起"; |
|||
}, |
|||
}, |
|||
legend: { |
|||
show: true, |
|||
width: "300px", |
|||
height: "520px", |
|||
orient: "vertical", |
|||
icon: "circle", |
|||
top: "15%", |
|||
left: "70%", |
|||
itemWidth: 10, |
|||
itemHeight: 10, |
|||
textStyle: { |
|||
color: "#ffffff", |
|||
fontSize: 14, |
|||
lineHeight: 24, |
|||
rich: { |
|||
text: { |
|||
width: 100, |
|||
marginLeft: 32, |
|||
fontSize: 14, |
|||
}, |
|||
number: { |
|||
fontSize: 14, |
|||
color: "#37E7FF", |
|||
marginLeft: 32, |
|||
fontWeight: "bold", |
|||
}, |
|||
unit: { |
|||
fontSize: 14, |
|||
}, |
|||
}, |
|||
}, |
|||
data: legendData, |
|||
// pageIconColor: "#fff",
|
|||
// pageIconSize: 10,
|
|||
// pageTextStyle: {
|
|||
// color: "#fff",
|
|||
// },
|
|||
// type: "scroll",
|
|||
// pageButtonPosition: "end",
|
|||
}, |
|||
series: [ |
|||
/** 饼图上刻度 */ |
|||
{ |
|||
type: "gauge", |
|||
center: ["30%", "35%"], |
|||
radius: "43%", // 错位调整此处
|
|||
startAngle: 0, |
|||
endAngle: 360, |
|||
splitNumber: 52, |
|||
axisLine: { show: false }, |
|||
splitLine: { |
|||
// length: 39,
|
|||
length: "2", |
|||
lineStyle: { |
|||
width: 5, |
|||
color: "#5CC5FF", |
|||
}, |
|||
}, |
|||
axisTick: { show: false }, |
|||
axisLabel: { show: false }, |
|||
}, |
|||
{ |
|||
name: "总数", |
|||
tooltip: false, |
|||
type: "gauge", |
|||
radius: "30%", |
|||
center: ["30%", "35%"], |
|||
startAngle: 0, |
|||
endAngle: 360, |
|||
axisLine: { |
|||
lineStyle: { |
|||
color: [[1, "#0AFFE950"]], |
|||
width: 1, |
|||
}, |
|||
}, |
|||
axisTick: { |
|||
show: false, |
|||
}, |
|||
splitLine: { |
|||
show: false, |
|||
}, |
|||
axisLabel: { |
|||
show: false, |
|||
}, |
|||
detail: { |
|||
show: false, |
|||
}, |
|||
pointer: { |
|||
show: false, |
|||
}, |
|||
progress: { |
|||
show: true, |
|||
width: 80, |
|||
itemStyle: { |
|||
color: { |
|||
type: "radial", |
|||
x: 0.5, |
|||
y: 0.5, |
|||
r: 0.5, |
|||
colorStops: [ |
|||
{ |
|||
offset: 0, |
|||
color: "rgb(0, 224, 205, 0)", |
|||
}, |
|||
{ |
|||
offset: 0.7, |
|||
color: "rgba(0, 224, 205, 0)", |
|||
}, |
|||
{ |
|||
offset: 1, |
|||
color: "rgba(10, 255, 233, 0.5)", |
|||
}, |
|||
], |
|||
}, |
|||
}, |
|||
}, |
|||
data: [ |
|||
{ |
|||
value: 100, |
|||
}, |
|||
], |
|||
tooltip: { |
|||
backgroundColor: "rgba(50,50,50,0)", |
|||
formatter: " ", |
|||
borderWidth: 0, |
|||
textStyle: { |
|||
textShadowColor: "rgba(50,50,50,0)", |
|||
}, |
|||
}, |
|||
}, |
|||
{ |
|||
type: "pie", |
|||
radius: ["40%", "50%"], |
|||
center: ["30%", "35%"], |
|||
z: 10, |
|||
label: { |
|||
show: false, |
|||
}, |
|||
data: [], |
|||
labelLine: { |
|||
show: false, |
|||
}, |
|||
itemStyle: { |
|||
normal: { |
|||
borderRadius: "5", |
|||
borderWidth: 2, |
|||
borderType: "solid", |
|||
borderCap: "round", |
|||
borderJoin: "round", |
|||
borderColor: "#064258", |
|||
borderMiterLimit: "20", |
|||
color: function (params) { |
|||
return { |
|||
type: "linear", |
|||
x: 0, |
|||
y: 0, |
|||
x2: 1, |
|||
y2: 1, |
|||
colorStops: [ |
|||
{ |
|||
offset: 0, |
|||
color: colors[params.dataIndex], // 0% 处的颜色
|
|||
}, |
|||
{ |
|||
offset: 1, |
|||
color: colors[params.dataIndex], // 100% 处的颜色
|
|||
}, |
|||
], |
|||
globalCoord: false, // 缺省为 false
|
|||
}; |
|||
}, |
|||
}, |
|||
}, |
|||
}, |
|||
], |
|||
}; |
|||
|
|||
export default options; |
@ -1,46 +1,203 @@ |
|||
<template> |
|||
<div class="Eventfiltering"> |
|||
<div class="Eventfiltering-left" id="trafficIncidentsCharts"></div> |
|||
<div class="Eventfiltering-right"></div> |
|||
<InputSearch |
|||
class="search-box" |
|||
:formList="searchFormList" |
|||
@handleSearch="handleSearch" |
|||
/> |
|||
<div class="Eventfiltering-content"> |
|||
<div class="Eventfiltering-left" ref="trafficIncidents"></div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
// import trafficIncidentsCharts from "./trafficIncidentsCharts.js"; |
|||
// import * as echarts from "echarts"; |
|||
|
|||
// export default { |
|||
// name: "Eventfiltering", |
|||
// components: { trafficIncidentsCharts }, |
|||
// data() { |
|||
// return {}; |
|||
// }, |
|||
// mounted() { |
|||
// var trafficIncidentsCharts = echarts.init( |
|||
// document.getElementById("trafficIncidentsCharts") |
|||
// ); |
|||
// trafficIncidentsCharts.setOption(trafficIncidentsCharts); |
|||
// }, |
|||
// methods: {}, |
|||
// }; |
|||
import InputSearch from "@screen/components/InputSearch/index.vue"; |
|||
import trafficIncidentsCharts2 from "./trafficIncidentsCharts.js"; |
|||
import { nonAutomaticWarningTimeType } from "@/api/manualWarning/index.js"; |
|||
import * as echarts from "echarts"; |
|||
import moment from "moment"; |
|||
|
|||
export default { |
|||
name: "Sitefiltering", |
|||
components: { |
|||
InputSearch, |
|||
}, |
|||
props: { |
|||
name: { |
|||
type: String, |
|||
}, |
|||
}, |
|||
data() { |
|||
return { |
|||
trafficIncidents: null, |
|||
formData: { |
|||
type: "day", |
|||
warningTime: "", |
|||
}, |
|||
searchFormList: [ |
|||
{ |
|||
label: "事件类型:", |
|||
key: "type", |
|||
type: "select", |
|||
default: "day", |
|||
options: { |
|||
clearable: true, |
|||
options: [ |
|||
{ |
|||
key: "day", |
|||
label: "天", |
|||
}, |
|||
{ |
|||
key: "month", |
|||
label: "月", |
|||
}, |
|||
{ |
|||
key: "year", |
|||
label: "年", |
|||
}, |
|||
], |
|||
}, |
|||
}, |
|||
{ |
|||
label: "日期:", |
|||
key: "warningTime", |
|||
required: true, |
|||
type: "datePicker", |
|||
options: { |
|||
valueFormat: "yyyy-MM-dd", |
|||
}, |
|||
visible: (data) => { |
|||
if (data.type == "day") { |
|||
return true; |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: "日期:", |
|||
key: "warningTime", |
|||
required: true, |
|||
type: "datePicker", |
|||
options: { |
|||
type: "month", |
|||
valueFormat: "yyyy-MM-dd", |
|||
}, |
|||
visible: (data) => { |
|||
if (data.type == "month") { |
|||
return true; |
|||
} |
|||
}, |
|||
}, |
|||
{ |
|||
label: "日期:", |
|||
key: "warningTime", |
|||
required: true, |
|||
type: "datePicker", |
|||
options: { |
|||
type: "year", |
|||
valueFormat: "yyyy-MM-dd", |
|||
}, |
|||
visible: (data) => { |
|||
if (data.type == "year") { |
|||
return true; |
|||
} |
|||
}, |
|||
}, |
|||
], |
|||
}; |
|||
}, |
|||
watch: { |
|||
name: { |
|||
handler(newValue, oldValue) { |
|||
console.log("newValue", newValue); |
|||
if (newValue == "third") { |
|||
this.getWarningCharts(); |
|||
} |
|||
}, |
|||
deep: true, |
|||
}, |
|||
}, |
|||
mounted() {}, |
|||
methods: { |
|||
getWarningCharts() { |
|||
setTimeout(() => { |
|||
this.$nextTick(async () => { |
|||
(this.formData.warningTime = |
|||
moment(new Date()).format("YYYY-MM-DD") + " 00:00:01"), |
|||
(this.trafficIncidents = echarts.init(this.$refs.trafficIncidents)); |
|||
this.trafficIncidents.setOption(trafficIncidentsCharts2); |
|||
await this.getNonAutomaticWarningTimeType(this.formData); |
|||
}); |
|||
}); |
|||
}, |
|||
getNonAutomaticWarningTimeType(data) { |
|||
console.log("data", data); |
|||
return nonAutomaticWarningTimeType(data).then((res) => { |
|||
let newData = res.data; |
|||
let seriesData = []; |
|||
let xData = []; |
|||
let pieData = []; |
|||
let total = null; |
|||
|
|||
newData.forEach((item) => { |
|||
seriesData.push(item.number); |
|||
total += item.number; |
|||
|
|||
if (data.type === "day") { |
|||
xData.push(item.time); |
|||
pieData.push({ |
|||
value: item.number, |
|||
name: item.time, |
|||
}); |
|||
} else if (data.type === "month") { |
|||
xData.push(item.day); |
|||
pieData.push({ |
|||
value: item.number, |
|||
name: item.day, |
|||
}); |
|||
} else { |
|||
xData.push(item.month); |
|||
pieData.push({ |
|||
value: item.number, |
|||
name: item.month, |
|||
}); |
|||
} |
|||
}); |
|||
trafficIncidentsCharts2.series[0].data = pieData; |
|||
trafficIncidentsCharts2.xAxis.data = xData; |
|||
this.trafficIncidents.setOption(trafficIncidentsCharts2); |
|||
}); |
|||
}, |
|||
handleSearch(value) { |
|||
value.warningTime = value.warningTime + " 00:00:01"; |
|||
this.formData = { ...value }; |
|||
this.getNonAutomaticWarningTimeType(this.formData); |
|||
}, |
|||
}, |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
.Eventfiltering { |
|||
width: 99%; |
|||
height: 100%; |
|||
height: 94%; |
|||
margin: auto; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
} |
|||
.Eventfiltering-left { |
|||
width: 60%; |
|||
height: 100%; |
|||
background-color: #fff; |
|||
} |
|||
.Eventfiltering-right { |
|||
width: 40%; |
|||
height: 100%; |
|||
background-color: #fff; |
|||
|
|||
.search-box { |
|||
width: 402px !important; |
|||
float: right; |
|||
} |
|||
|
|||
.Eventfiltering-content { |
|||
width: 100%; |
|||
height: 96%; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
|
|||
.Eventfiltering-left { |
|||
width: 100%; |
|||
height: 100%; |
|||
} |
|||
} |
|||
} |
|||
</style> |
|||
|
@ -0,0 +1,95 @@ |
|||
var options = { |
|||
title: { |
|||
// text: '单位/%',
|
|||
top: "0%", |
|||
left: "0%", |
|||
textStyle: { |
|||
fontSize: "10px", |
|||
fontWeight: 300, |
|||
color: "#B5C5D4", |
|||
opacity: 0.8, |
|||
}, |
|||
}, |
|||
tooltip: { |
|||
valueFormatter: function (value) { |
|||
return value + " 起"; |
|||
}, |
|||
}, |
|||
grid: { |
|||
left: "50px", |
|||
right: "0%", |
|||
top: "50px", |
|||
bottom: "5%", |
|||
containLabel: true, |
|||
}, |
|||
xAxis: { |
|||
type: "category", |
|||
data: [], |
|||
axisLine: { |
|||
lineStyle: { |
|||
color: "rgba(49, 217, 255, 0.8)", |
|||
}, |
|||
}, |
|||
axisTick: { |
|||
show: false, |
|||
}, |
|||
axisLabel: { |
|||
color: "#fff", |
|||
fontSize: "18px", |
|||
}, |
|||
}, |
|||
yAxis: [ |
|||
{ |
|||
// type: 'value',
|
|||
// min: function (value) {
|
|||
// return value.min*0.9;
|
|||
// },
|
|||
name: "交通事件(起)", |
|||
nameTextStyle: { |
|||
color: "#fff", |
|||
fontSize: 18, |
|||
align: "center", |
|||
}, |
|||
type: "value", |
|||
axisLine: { |
|||
show: false, |
|||
lineStyle: { |
|||
width: 1, |
|||
color: "#545454", |
|||
}, |
|||
}, |
|||
splitLine: { |
|||
lineStyle: { |
|||
color: "rgba(49, 217, 255, 0.5)", |
|||
}, |
|||
}, |
|||
axisTick: { |
|||
show: false, |
|||
}, |
|||
axisLabel: { |
|||
color: "#fff", |
|||
fontSize: "18px", |
|||
formatter: (value) => { |
|||
return value; |
|||
}, |
|||
}, |
|||
}, |
|||
], |
|||
series: [ |
|||
{ |
|||
// name: '审限内结案率',
|
|||
data: [5, 10, 20, 30], |
|||
type: "pictorialBar", |
|||
symbol: "roundRect", |
|||
symbolRepeat: true, |
|||
symbolSize: [13, 4], |
|||
// symbolOffset: symbolOffset,
|
|||
// barWidth:'40%',
|
|||
itemStyle: { |
|||
color: "#20E7FF", |
|||
}, |
|||
}, |
|||
], |
|||
}; |
|||
|
|||
export default options; |
Loading…
Reference in new issue