Browse Source

最新修改提交

wangqin
yyl 10 months ago
parent
commit
ed85115325
  1. 9
      ruoyi-ui/src/common/menuData.js
  2. 527
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/assets/charts.js
  3. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/index.vue
  4. 457
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts.js
  5. 157
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts2.js
  6. 144
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts3.js
  7. 51
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/index.vue
  8. 12
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/index.vue
  9. BIN
      ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/maintainQuery/assets/online_bj.jpg
  10. 157
      ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/maintainQuery/index.vue
  11. 5
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventSource/assets/charts.js

9
ruoyi-ui/src/common/menuData.js

@ -115,7 +115,14 @@ export default [
name: "statisticalAnalysis", name: "statisticalAnalysis",
path: "/maintain/statisticalAnalysis", path: "/maintain/statisticalAnalysis",
component: "maintenanceOperations/statisticalAnalysis/index.vue", component: "maintenanceOperations/statisticalAnalysis/index.vue",
}] },
{
title: "设备查询",
name: "maintainQuery",
path: "/maintain/maintainQuery",
component: "maintenanceOperations/maintainQuery/index.vue",
}
]
}, },
{ {
title: "公众服务", title: "公众服务",

527
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/assets/charts.js

@ -1,391 +1,176 @@
var res = [ import * as echarts from "echarts";
{ value: 50, name: '情报板发布' }, var options = {
{ value: 1, name: '' }, tooltip: {
{ value: 20, name: '微博发布' }, showContent: true,
{ value: 1, name: '' }, trigger: 'axis',
{ value: 30, name: '服务网站' }, backgroundColor: 'rgba(8,36,68,.7)',
{ value: 1, name: '' }, color: '#fff',
]; textStyle: {
// var res = this.evaluatedCountList; color: '#fff',
var data1 = [], data2 = [], data3 = [], legendData = [];
var curIndex = 0;
var index = 0;
let angle = 0; //角度,用来做简单的动画效果的
for (var i = 0; i < res.length; i++) {
data1.push({
value: res[i].value,
name: res[i].name,
})
data2.push({
value: res[i].value,
name: res[i].name,
itemStyle: {
opacity: 0.4,
}, },
}) },
legend: {
data3.push({ top: '5%',
value: res[i].value, right: '10',
name: res[i].name, icon: 'circle',
itemStyle: { itemWidth: 10,
opacity: 0.1, itemHeight: 10,
textStyle: {
color: '#fff',
fontSize: 12,
}, },
}) },
if ( res[i].name != "" ) grid: {
legendData.push(res[i].name); left: '30%',
} right: '20%',
top: '10%',
var options = { bottom: '10%',
color: ['#5CC5FF', 'transparent', '#54EFD5', 'transparent', '#FD9666', 'transparent', '#5C8CFE', 'transparent', '#51D5AD', 'transparent'], // width: 250,
title: [ },
xAxis: [
{ {
text:'999', splitLine: {
top: '25%', show: false,
textAlign: 'center', },
left: '50%', type: 'value',
textStyle: { show: false,
color: '#ffffff',
fontSize: 30,
fontFamily: 'SourceHanSansCN',
},
}, },
],
yAxis: [
{ {
text: '总数', splitLine: {
top: '38%', show: false,
textAlign: 'center',
left: '50%',
textStyle: {
color: 'rgba(242, 252, 253, 0.84)',
fontSize: 16,
fontFamily: 'SourceHanSansCN',
},
},
],
grid: {
top: '3%',
left: '6%',
right: '6%',
bottom: '3%',
containLabel: true
},
tooltip: {
trigger: 'item',
formatter: '{b} : {c}:{d}'
},
legend: {
orient: '',
left: '10%',
top: '68%',
itemWidth: 10,
itemHeight: 10,
icon:"circle",
textStyle: {
color: "#ffffff",
fontSize: 14,
lineHeight: 22,
rich: {
text: {
marginLeft:32,
fontSize: 14,
}, },
number: { axisLine: {
fontSize: 14, //y轴
color: "#37E7FF", show: false,
marginLeft:32,
fontWeight: 'bold'
}, },
unit: { type: 'category',
fontSize: 14, axisTick: {
} show: false,
}
},
data: legendData,
formatter(name) {
if ( name == "" ) return "";
const newData = res;
let tarValue = 0;
let total = 0;
for (let i = 0; i < newData.length; i++) {
total += newData[i].value;
if (newData[i].name === name) {
tarValue = newData[i].value;
}
}
var percert = total == 0 ? 0 : ((tarValue / total) * 100).toFixed(2);
const arr = name + ' ' + tarValue;
return `{text|${name}} {number|${percert}%}`;;
},
},
series: [
/** 饼图上刻度 */
{
type: 'gauge',
center: ['50%', '35%'],
radius: '40%', // 错位调整此处
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 }
},
/** 绘制外部圆弧-2-开始圆点 <left-top> */
{
type: 'custom',
coordinateSystem: 'none',
renderItem: (params, api) => {
let x0 = api.getWidth() / 2;
let y0 = api.getHeight() / 2 - 59;
let r = Math.min(api.getWidth(), api.getHeight()) / 2 * 0.50;
return {
type: 'circle',
shape: {
/** 角度175° 外弧2开始角度 */
cx: x0 + r * Math.cos((350 + -angle) * Math.PI / 180),
cy: y0 + r * Math.sin((350 + -angle) * Math.PI / 180),
r: 4
}, },
style: { inverse: true,
fill: '#5BC4FF', data: [
stroke: '#5BC4FF' '大学城收费站',
'大学城收费站',
'大学城收费站',
'大学城收费站',
'大学城收费站',
],
axisLabel: {
color: '#fff',
fontSize: 14,
margin:20,
}, },
silent: true
}
},
data: [0]
},
{
type: 'custom',
coordinateSystem: 'none',
renderItem: (params, api) => {
return {
type: 'arc',
shape: {
cx: api.getWidth() / 2,
cy: api.getHeight() / 2 - 59,
r: Math.min(api.getWidth(), api.getHeight()) / 2 * 0.50,
startAngle: (350 + -angle) * Math.PI / 180,
endAngle: (120 + -angle) * Math.PI / 180
},
style: {
fill: 'transparent',
stroke: '#5BC4FF66',
lineWidth: 2.6
},
silent: true
}
},
data: [0]
}, },
{ {
type: 'custom', type: 'category',
coordinateSystem: 'none', inverse: true,
renderItem: (params, api) => { axisTick: 'none',
let x0 = api.getWidth() / 2; axisLine: 'none',
let y0 = api.getHeight() / 2 - 59; show: true,
let r = Math.min(api.getWidth(), api.getHeight()) / 2 * 0.50; axisLabel: {
return { textStyle: {
type: 'circle', color: '#A7D6F4',
shape: { fontSize: '14',
/** 角度175° 外弧2开始角度 */
cx: x0 + r * Math.cos((150 + -angle) * Math.PI / 180),
cy: y0 + r * Math.sin((150 + -angle) * Math.PI / 180),
r: 4
},
style: {
fill: '#5BC4FF',
stroke: '#5BC4FF'
},
silent: true
}
},
data: [0]
},
{
type: 'custom',
coordinateSystem: 'none',
renderItem: (params, api) => {
return {
type: 'arc',
shape: {
cx: api.getWidth() / 2,
cy: api.getHeight() / 2 - 59,
r: Math.min(api.getWidth(), api.getHeight()) / 2 * 0.50,
startAngle: (150 + -angle) * Math.PI / 180,
endAngle: (-30 + -angle) * Math.PI / 180
},
style: {
fill: 'transparent',
stroke: '#5BC4FF66',
lineWidth: 2.6
}, },
silent: true
}
}, },
data: [0] // data: value,
}, data: [900, 380, 360, 340, 320],
{
type: 'custom',
coordinateSystem: 'none',
renderItem: (params, api) => {
let x0 = api.getWidth() / 2;
let y0 = api.getHeight() / 2 - 59;
let r = Math.min(api.getWidth(), api.getHeight()) / 2 * 0.56;
return {
type: 'circle',
shape: {
/** 角度175° 外弧2开始角度 */
cx: x0 + r * Math.cos((590 + -angle) * Math.PI / 180),
cy: y0 + r * Math.sin((590 + -angle) * Math.PI / 180),
r: 4
},
style: {
fill: '#5BC4FF',
stroke: '#5BC4FF'
},
silent: true
}
},
data: [0]
},
{
type: 'custom',
coordinateSystem: 'none',
renderItem: (params, api) => {
return {
type: 'arc',
shape: {
cx: api.getWidth() / 2,
cy: api.getHeight() / 2 - 59,
r: Math.min(api.getWidth(), api.getHeight()) / 2 * 0.56,
startAngle: (590 + -angle) * Math.PI / 180,
endAngle: (350 + -angle) * Math.PI / 180
},
style: {
fill: 'transparent',
stroke: '#5BC4FF66',
lineWidth: 2.6
},
silent: true
}
},
data: [0]
},
{
type: 'custom',
coordinateSystem: 'none',
renderItem: (params, api) => {
let x0 = api.getWidth() / 2;
let y0 = api.getHeight() / 2 - 59;
let r = Math.min(api.getWidth(), api.getHeight()) / 2 * 0.56;
return {
type: 'circle',
shape: {
/** 角度175° 外弧2开始角度 */
cx: x0 + r * Math.cos((90 + -angle) * Math.PI / 180),
cy: y0 + r * Math.sin((90 + -angle) * Math.PI / 180),
r: 4
},
style: {
fill: '#5BC4FF',
stroke: '#5BC4FF'
},
silent: true
}
},
data: [0]
},
{
type: 'custom',
coordinateSystem: 'none',
renderItem: (params, api) => {
return {
type: 'arc',
shape: {
cx: api.getWidth() / 2,
cy: api.getHeight() / 2 - 59,
r: Math.min(api.getWidth(), api.getHeight()) / 2 * 0.56,
startAngle: (90 + -angle) * Math.PI / 180,
endAngle: (160 + -angle) * Math.PI / 180
},
style: {
fill: 'transparent',
stroke: '#5BC4FF66',
lineWidth: 2.6
},
silent: true
}
},
data: [0]
}, },
],
series: [
{ {
type: 'pie', name: '收费站限行(次)',
radius: ['45%', '39%'], type: 'bar',
center: ['50%', '35%'], barGap: '120%',
z: 10, barWidth: 10, // 柱子宽度
label: { showBackground: true,
show: false, MaxSize: 0,
position: 'center', backgroundStyle: {
formatter: (params) => { color: '#0BA7DA32',
return params.name + "\r\n" + params.value
}, },
rich: { label: {
total: { show: false,
fontSize: 16, // color: '#A7D6F4',
color: '#04F5FE', // fontSize: 14,
}, // distance: 20, // 距离
efficiency: { // formatter: '{c} ', // 这里是数据展示的时候显示的数据
fontSize: 12, // align: "center",
color: '#00FD6D', // position: [290, 0]
}, }, // 柱子上方的数值
itemStyle: {
barBorderRadius: [0, 4, 4, 0], // 圆角(左上、右上、右下、左下)
color: new echarts.graphic.LinearGradient(
1,
0,
0,
0,
[
{
offset: 0,
color: '#48d0ca',
},
{
offset: 0.5,
color: '#61D8FF',
},
{
offset: 1,
color: '#61D8FF00',
},
],
false
), // 渐变
}, },
color: '#FFFFFF', data: [900, 380, 360, 340, 320],
fontSize: 12, },
lineHeight: 16, {
}, name: '收费站封闭(次)',
data: data1, type: 'bar',
labelLine: { barWidth: 10, // 柱子宽度
show: false, showBackground: true,
}, MaxSize: 0,
itemStyle: { backgroundStyle: {
normal: { color: '#0BA7DA32',
borderWidth: 6, },
shadowBlur: 10, label: {
borderRadius: 50, // 圆角 show: false,
} // color: '#A7D6F4',
} // fontSize: 14,
}, // distance: 20, // 距离
{ // formatter: '{c} ', // 这里是数据展示的时候显示的数据
type: 'pie', // align: "center",
radius: ['25%', '39%'], position: ['100%', 0]
center: ['50%', '35%'], }, // 柱子上方的数值
label: { itemStyle: {
show: false, barBorderRadius: [0, 4, 4, 0], // 圆角(左上、右上、右下、左下)
}, color: new echarts.graphic.LinearGradient(
data: data2, 1,
labelLine: { 0,
show: false, 0,
}, 0,
itemStyle: { [
normal: { {
borderWidth: 6, offset: 0,
shadowBlur: 10, color: '#FF6969',
borderRadius: 0, // 圆角 },
} {
} offset: 0.5,
color: '#FF696955',
},
{
offset: 1,
color: '#FFB90410',
},
],
false
), // 渐变
},
data: [900, 380, 360, 340, 320, 300, 280, 260, 400, 380, 360, 340, 320, 300, 280, 260],
}, },
], ],
};
};
export default options export default options;

2
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/index.vue

@ -58,7 +58,7 @@
} }
} }
.charts { .charts {
height:376px; height:326px;
width: 100%; width: 100%;
} }

457
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts.js

@ -1,180 +1,317 @@
import * as echarts from "echarts";
/* 数据 */ let xData = [
let nameList = ["00:00", "02:00", "04:00", "06:00", "08:00", "10:00", "12:00", "14:00", "16:00", "18:00", "20:00", "22:00"]; // 类别 "大学城-长清",
let valueList = [800, 520, 650, 950, 420, 600, 450, 720, 303, 503 , 203 ,703 , 903 ]; // 人数 "长清-孝里",
var yList = [ "1000","800","轻度拥堵","基本畅通","畅通"] "孝里-平阴北",
/* 数据整合 */ "平阴北-平阴",
let dataList = []; "平阴-平阴南",
nameList.map((item, index) => { "平阴南-东平",
if (index === 4) { "东平-梁山东",
dataList.push({ "梁山东-梁山",
name: item, "梁山-嘉祥西",
value: valueList[index], "梁山东-梁山",
itemStyle: { ];
color: { let data1 = [200, 530, 920, 400, 600, 700, 300, 800, 900, 120];
type: 'linear', let data2= [120, 340, 750, 600, 400, 700, 900, 200, 540, 320];
x: 0, let data3 = [200, 530, 920, 400, 600, 700, 300, 800, 900, 120];
y: 0, let options = {
x2: 0, tooltip: {
y2: 1, show:false,
colorStops: [{ trigger: "axis",
offset: 0, color: '#FFB904' // 0% 处的颜色 axisPointer: {
}, { // 坐标轴指示器,坐标轴触发有效
offset: 1, color: '#FF6969' // 100% 处的颜色 type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
}], },
global: false // 缺省为 false
},
borderRadius: 6
},
label: { show: false }
})
} else {
dataList.push({
name: item,
value: valueList[index],
itemStyle:{
borderRadius: 6
}
})
}
})
var options = {
legend: {
// orient: 'vertical',
icon: "circle",
itemHeight: 8,
itemWidth: 8,
top: "5%",
x: "right",
textStyle: { textStyle: {
color: "#fff", color: "#fff",
fontSize: 14,
}, },
backgroundColor: "rgba(3, 31, 71, .0)", //设置背景颜色
borderColor: "rgba(3, 31, 71, .0)",
formatter: "健康监测<br>{b1}:{c1}人",
}, },
grid: { grid: {
top: '20%',//上边距 left: "2%",
right: '0',//右边距 right: "4%",
left: '0',//左边距 top: "10%",
bottom: "10%",//下边距 bottom: "5%",
containLabel: true, containLabel: true,
}, },
xAxis: { xAxis: {
type: 'category', data: xData,
data: nameList, show: true,
axisTick: { axisTick: {
show: false //隐藏X轴刻度 show: false,
lineStyle: {
color: "#fff",
},
}, },
axisLine: { axisLine: {
lineStyle: { lineStyle: {
color: "rgba(49, 217, 255, 0.8)" color: "#1C82C5",
} },
},
axisLabel: {
show: true,
color: '#B6E6FF',
fontSize:8,
fontFamily: 'Source Han Sans CN-Regular',
},
},
yAxis: [{
type: 'value',
name: "",
max: 1000,
min:0,
splitNumber:5,
nameTextStyle: {
color: '#B6E6FF',
fontSize: 13,
fontFamily: 'Source Han Sans CN-Regular',
align: "left",
verticalAlign: "center",
}, },
axisLabel: { axisLabel: {
fontSize: 13, interval: 0,
color: '#B6E6FF', align: "center",
fontFamily: 'HarmonyOS Sans-Regular', rotate: "1",
// formatter:function(value,index){ margin: "20",
// return yList[index] textStyle: {
// } fontSize: 12,
color: "#50A2C1",
},
}, },
axisLine: { },
show: false, yAxis: [
}, {
axisTick: { min: 0,
show: false axisLine: {
lineStyle: {
color: "#1C82C5",
},
},
splitLine: {
show: true,
lineStyle: {
color: "rgba(28, 130, 197, .3)",
type: "solid",
},
},
axisLabel: {
color: "#DEEBFF",
textStyle: {
fontSize: 12,
},
},
axisTick: {
show: false,
},
}, },
splitLine: { ],
lineStyle: { legend: {
color: 'rgba(49, 217, 255, 0.5)', // orient: 'vertical',
} icon: "circle",
itemHeight: 6,
itemWidth: 6,
top: "5%",
right: "10%",
textStyle: {
color: "#fff",
}, },
}],
series: [ data:[
{
name:"交通特征",
itemStyle:{
color:'#51BFA4',
},
},
{
name:"饱和度",
itemStyle:{
color:'#08BAF4',
},
},
{
name:"拥挤度",
itemStyle:{
color:'#E2BA74',
},
}
],
},
series: [
{ {
name: '感知事件', name: "饱和度",
type: 'line', type: "bar",
symbol: 'circle', barWidth: "10px",
symbolSize: 0, selectedMode:false,
smooth: true, select:{
areaStyle: { itemStyle:{
width: 4,
opacity: 0.25, opacity: 1,
color: { color: function (params) {
type: 'linear', var a = params;
x: 0,
y: 0, return new echarts.graphic.LinearGradient(
x2: 0, 0,
y2: 1, 0,
colorStops: [ 0,
{ offset: 0.389, color: "#32BB8A99" }, 1,
{ offset: 1, color: "#32BB8A00" }, [
], {
global: false, offset: 0,
color: "#1AC5FD", // 0% 处的颜色
},
{
offset: 1,
color: "#003B4E", // 100% 处的颜色
},
],
false
);
}, },
}, },
// yAxisIndex: 1, // 与第二个 y 轴关联 },
itemStyle: { itemStyle: {
color: '#32BB8A', barBorderRadius: [10, 10, 10, 10], // 圆角(左上、右上、右下、左下)
}, // lenged文本
lineStyle: { opacity: 1,
width:2, color: function (params) {
}, var a = params.name;
console.log("==========a=============",a);
return new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#00A3FF", // 0% 处的颜色
},
{
offset: 1,
color: "#00A3FF00", // 100% 处的颜色
},
],
false
);
},
},
data: data2,
},
// 下半截柱状图linear-gradient(180deg, #61D8FF 0%, #003B4E 100%); linear-gradient(180deg, #06D7B1 0%, #003B4E 100%)
{
name: "交通特征",
type: "bar",
barWidth: "10px",
barGap: "120%",
selectedMode:false,
select:{
itemStyle:{
opacity: 1,
color: function (params) {
var a = params;
data: [1000, 800, 520, 600, 900, 700, 700,1000, 800, 520, 600, 900, 700, 700], // 折线图的数据 return new echarts.graphic.LinearGradient(
}, 0,
{ 0,
name: '交通事件', 0,
type: 'line', 1,
symbol: 'circle', [
symbolSize: 0, {
offset: 0,
color: "#00E4BB53", // 0% 处的颜色
},
{
offset: 1,
color: "#00E4BB53", // 100% 处的颜色
},
],
false
);
},
},
},
itemStyle: {
// lenged文本
barBorderRadius: [10, 10, 10, 10], // 圆角(左上、右上、右下、左下)
opacity: 1,
color: function (params) {
var a = params.name;
console.log("==========a=============",a);
return new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#01D2EE", // 0% 处的颜色
},
{
offset: 1,
color: "#01D2EE00", // 100% 处的颜色
},
],
false
);
},
},
data: data1,
},
// 进度条的小圆圈
{
name: "拥挤度",
type: "bar",
barWidth: "10px",
selectedMode:false,
select:{
itemStyle:{
opacity: 1,
color: function (params) {
var a = params;
// yAxisIndex: 1, // 与第二个 y 轴关联 return new echarts.graphic.LinearGradient(
itemStyle: { 0,
color: '#E2BA74', 0,
}, 0,
lineStyle: { 1,
width: 2, [
}, {
smooth: true, offset: 0,
areaStyle: { color: "#1AC5FD", // 0% 处的颜色
width: 4,
opacity: 0.25,
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{ offset: 0.389, color: "##E2BA7490" },
{ offset: 1, color: "##E2BA7400" },
],
global: false,
}, },
}, {
data: [600, 700, 900, 400, 500, 800, 600,600, 700, 900, 400, 500, 800, 600], // 折线图的数据 offset: 1,
}, color: "#003B4E", // 100% 处的颜色
] },
} ],
false
);
},
},
},
itemStyle: {
barBorderRadius: [10, 10, 10, 10], // 圆角(左上、右上、右下、左下)
// lenged文本
opacity:1,
color: function (params) {
var a = params.name;
console.log("==========a=============",a);
return new echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{
offset: 0,
color: "#32BB8A", // 0% 处的颜色
},
{
offset: 1,
color: "#32BB8A00", // 100% 处的颜色
},
],
false
);
},
},
data: data2,
},
{
name: '路段里程数',
stack: '我不叠加',//添加stack属性,相同的stack值的数据类型将会叠加不并列,值为自定义值
type: 'line',//换为line 实现折线与柱状图
data: data3,
color:"#E2BA74"
}
],
};
export default options; export default options;

157
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts2.js

@ -0,0 +1,157 @@
let zData = ["侧翻", "撞障碍物", "自燃", "追尾", "撞护栏", "货物洒落"];
let lc = [450, 500, 250, 340,450, 500];
let lc2 = [400, 550, 200, 140,400, 550];
let options = {
tooltip: {
show: true,
trigger: "axis",
backgroundColor: "rgba(17,95,182,0.5)", //设置背景颜色
textStyle: {
color: "#fff",
},
formatter: "{b}:{c}人",
},
grid: {
right: "4%",
top: "12%",
left: "2%",
bottom: "0%",
containLabel: true,
},
xAxis: {
type: "category",
boundaryGap: true,
data: zData,
axisLabel: {
interval: 0,
textStyle: {
color: "rgba(255, 255, 255, 0.80)",
fontSize: 16
},
},
axisTick: {
//坐标轴刻度相关设置。
show: false,
},
axisLine: {
//坐标轴轴线相关设置
lineStyle: {
color: "#fff",
},
},
splitLine: {
//坐标轴在 grid 区域中的分隔线。
show: false,
},
},
yAxis: [
{
type: "value",
splitNumber: 6,
axisLabel: {
show: true,
textStyle: {
color: "rgba(255, 255, 255, 0.90)",
fontSize: 16
},
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
splitLine: {
show: true,
lineStyle: {
color: "rgba(255, 255, 255, 0.40)",
},
},
},
],
series: [
{
name: "从业人员",
type: "pictorialBar",
stack: "数量",
label: {
normal: {
show: false,
position: "top",
textStyle: {
color: "#FFFFFF",
fontSize: 16,
},
},
},
itemStyle: {
normal: {
color: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: "#0085FF", // 0% 处的颜色
},
{
offset: 1,
color: "#0085FF00", // 100% 处的颜色
},
],
globalCoord: false, // 缺省为 false
}
},
},
symbol: "path://M48 0 L49 17 C52 72 68 125 96 173 H0 C25 125 41 73 46 19 L48 0Z",
data: lc,
},
{
name: "去年同期数量",
type: "pictorialBar",
stack: "else",
barGap: "10%",
boundaryGap:"100%",
label: {
normal: {
show: false,
position: "top",
textStyle: {
color: "#FFFFFF",
fontSize: 16,
},
},
},
itemStyle: {
normal: {
color: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: "#01D2EE", // 0% 处的颜色
},
{
offset: 1,
color: "rgba(0, 194, 255,0)", // 100% 处的颜色
},
],
globalCoord: false, // 缺省为 false
}
},
},
symbol: "path://M48 0 L49 17 C52 72 68 125 96 173 H0 C25 125 41 73 46 19 L48 0Z",
data: lc2,
},
],
};
export default options;

144
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts3.js

@ -0,0 +1,144 @@
const sxnja = [
400,400,400
];
const sxnja2 = [
700,700,700
];
const minNumber = 90;
const minArray = [];
sxnja.map((value) => {
minArray.push(parseFloat((value - minNumber).toFixed(2)))
})
console.log(minArray)
let xaxisData = [
'客车',
'货车',
'专项车',
];
var options = {
title: {
text: '单位/%',
top: '4%',
left: '3%',
textStyle: {
fontSize: '10px',
fontWeight: 300,
color: '#B5C5D4',
opacity: 0.8
}
},
tooltip: {
valueFormatter: function (value) {
return (value + minNumber).toFixed(2) + ' %';
}
},
legend: {
// orient: 'vertical',
icon: "circle",
itemHeight: 6,
itemWidth: 6,
top: "5%",
right: "0%",
textStyle: {
fontSize:10,
color: "#fff",
},
},
grid: {
left: '1%',
right: '0%',
top: '16%',
bottom: '0%',
containLabel: true
},
xAxis: {
type: 'category',
data: xaxisData,
axisLine: {
show: true,
lineStyle: {
width: 1,
color: '#545454'
}
},
axisTick: {
show: false
},
axisLabel: {
color: '#B5C5D4',
fontSize: '10px',
interval: 0
}
},
yAxis: [
{
// type: 'value',
// min: function (value) {
// return value.min*0.9;
// },
type: 'value',
min: 0,
max:900,
splitNumber: 9,
// max: yAxisMax,
axisLine: {
show: false,
lineStyle: {
width: 1,
color: '#545454'
}
},
splitLine: {
show: true,
lineStyle: {
color: '#B2C2D3',
opacity: 0.3,
type: 'dotted'
}
},
axisTick: {
show: false
},
axisLabel: {
color: '#B5C5D4',
fontSize: '12px',
formatter: (value) => {
return value + minNumber
}
}
}
],
series: [
{
name: '事件数量(起)',
data: minArray,
type: 'pictorialBar',
symbol: 'roundRect',
symbolRepeat: true,
symbolSize: [12, 5],
// symbolOffset: symbolOffset,
// barWidth:'40%',
itemStyle: {
color: '#20E7FF'
}
},
{
barGap: "10%",
name: '平均处置时长(分钟)',
data: sxnja2 ,
type: 'pictorialBar',
symbol: 'roundRect',
symbolRepeat: true,
symbolSize: [12, 5],
// symbolOffset: symbolOffset,
// barWidth:'40%',
itemStyle: {
color: '#20FFC9'
}
}
]
};
export default options;

51
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/index.vue

@ -1,7 +1,8 @@
<template> <template>
<div class='congestion'> <div class='congestion'>
<WgtTitle :title="'今日发布趋势分析'"></WgtTitle> <WgtTitle :title="'事件分析'"></WgtTitle>
<div class="board"> <div class="main-board" >
<div class="board board-m">
<div class="searchPanel_1" > <div class="searchPanel_1" >
<el-date-picker <el-date-picker
size="mini" size="mini"
@ -17,8 +18,16 @@
<el-button type="primary" size="mini" class="btnSearch" icon="el-icon-search">查询</el-button> <el-button type="primary" size="mini" class="btnSearch" icon="el-icon-search">查询</el-button>
<el-button class="btnReset" size="mini" icon="el-icon-refresh-left" >重置</el-button> <el-button class="btnReset" size="mini" icon="el-icon-refresh-left" >重置</el-button>
</div> </div>
<div class="charts" id="postTrendsMonth"></div> <div class="charts" id="chart1"></div>
</div> </div>
<div class="board board-l">
<div class="charts" id="chart2"></div>
</div>
<div class="board board-s">
<div class="charts" id="chart3"></div>
</div>
</div>
</div> </div>
</template> </template>
@ -26,6 +35,9 @@
import WgtTitle from "../../../../../perception/widgets/title"; import WgtTitle from "../../../../../perception/widgets/title";
import * as echarts from "echarts"; import * as echarts from "echarts";
import chartsStatistics from "./assets/charts"; import chartsStatistics from "./assets/charts";
import charts2 from "./assets/charts2";
import charts3 from "./assets/charts3";
export default { export default {
name: 'postTrendsMonth', name: 'postTrendsMonth',
components: { components: {
@ -46,8 +58,14 @@
mounted() { mounted() {
setTimeout(() => { setTimeout(() => {
this.$nextTick(() => { this.$nextTick(() => {
var myChart = echarts.init(document.getElementById('postTrendsMonth')); var myChart = echarts.init(document.getElementById('chart1'));
myChart.setOption(chartsStatistics); myChart.setOption(chartsStatistics);
var myChart1 = echarts.init(document.getElementById('chart2'));
myChart1.setOption(charts2);
var myChart2 = echarts.init(document.getElementById('chart3'));
myChart2.setOption(charts3);
}); });
}); });
}, },
@ -57,9 +75,32 @@
<style lang='scss' scoped> <style lang='scss' scoped>
.congestion { .congestion {
width: 100%; width: 100%;
.main-board {
display: inline-flex;
width:100%;
height:350px;
flex-direction: row;
}
.board-m {
width: calc(100% / 6 * 3) !important;
margin-right:15px;
}
.board-l {
width: calc(100% / 6 * 2) !important;
margin-right:15px;
}
.board-s {
width: calc(100% / 6 * 1) !important;
}
.board{ .board{
position: relative; position: relative;
height:300px; height:350px;
width: 100%; width: 100%;
padding: 0px 20px; padding: 0px 20px;
background: linear-gradient(180deg, rgba(6,66,88,0.2) 0%, #064258 100%); background: linear-gradient(180deg, rgba(6,66,88,0.2) 0%, #064258 100%);

12
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/index.vue

@ -1,8 +1,6 @@
<template> <template>
<div class='TrafficFlow'> <div class='TrafficFlow'>
<section class="foot"> <section class="foot">
<el-tabs class="footTabs" v-model="activeName" @tab-click="changeTabs">
<el-tab-pane label="公众服务统计分析" name="first">
<div class="header-shot" > <div class="header-shot" >
<TopComponent /> <TopComponent />
</div> </div>
@ -14,13 +12,7 @@
</div> </div>
<div class="content" > <div class="content" >
<PostTrendsMonth class="content-mi" /> <PostTrendsMonth class="content-mi" />
<NucleusThrough class="content-mi" />
</div> </div>
</el-tab-pane>
<el-tab-pane label="公众服务统计查询" name="second">
</el-tab-pane>
</el-tabs>
</section> </section>
</div> </div>
</template> </template>
@ -123,7 +115,7 @@
} }
.content-mi { .content-mi {
width: calc(50%); width: calc(100%);
margin-right:20px; margin-right:20px;
} }
@ -150,6 +142,8 @@
width: 98%; width: 98%;
margin: auto; margin: auto;
display: flex; display: flex;
flex-direction: column;
justify-content: space-between; justify-content: space-between;
flex: 1; flex: 1;
pointer-events: none; pointer-events: none;

BIN
ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/maintainQuery/assets/online_bj.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 KiB

157
ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/maintainQuery/index.vue

@ -0,0 +1,157 @@
<template>
<div class='TrafficFlow'>
</div>
</template>
<script>
export default {
name: 'maintainQuery',
components: {
},
data(){
return {
}
},
methods:{
changeTabs(){
}
}
}
</script>
<style lang='scss' scoped>
::v-deep .el-tabs__item{
display: inline-flex;
justify-content: center;
font-size: 16px;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #FFFFFF;
min-width:128px;
position: relative;
left:10px;
}
::v-deep .el-tabs__active-bar {
min-width:128px;
}
::v-deep .el-tabs__nav-wrap::after {
background-color: #133242;
opacity: 0.1;
}
.footTabs {
display: inline;
width:100%;
}
.TrafficFlow {
width: 100%;
height: 100%;
position: relative;
z-index: 6;
color: white;
padding-top: 15px;
background-image: url('./assets/online_bj.jpg');
background-size: 100% 100%;
.header-shot{
width: 98%;
margin: auto;
margin-top: 15px;
height:160px;
}
.content {
width: 100%;
margin: auto;
display: flex;
flex: 1;
pointer-events: none;
margin-top: 0px;
>div {
pointer-events: auto;
}
.content-l {
width: calc(32.2%);
margin-right:20px;
display: inline-flex;
flex-direction: column;
>div {
margin-bottom:15px;
}
}
.content-r {
width: calc(33%);
display: inline-flex;
}
.content-rm {
width: calc(33%);
margin-right:10px;
}
.content-mi {
width: calc(50%);
margin-right:20px;
}
.content-mi:last-child {
margin-right:10px;
}
.content-m {
display: inline-flex;
width: 66%;
margin-right:20px;
}
}
.foot{
width: 98%;
margin: auto;
display: flex;
justify-content: space-between;
flex: 1;
pointer-events: none;
margin-top: 8px;
>div {
pointer-events: auto;
}
.foot-w {
width:100%;
}
.foot-l {
width: 726px;
}
.foot-m {
width: 613px;
}
.foot-r {
width: 493px;
}
}
}
</style>

5
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventSource/assets/charts.js

@ -59,8 +59,11 @@ var options = {
tooltip: { tooltip: {
confine: true, confine: true,
textStyle: { textStyle: {
fontSize: 10 // 字体大小 fontSize: 10, // 字体大小
color:'#fff',
}, },
color:'#fff',
backgroundColor:"#064258",
}, },
title:{ //圆环中间内容 title:{ //圆环中间内容
text: '99% ', text: '99% ',

Loading…
Cancel
Save