Browse Source

Merge branch 'develop' of http://39.106.31.193:9211/mengff/jihe-hs into develop

wangqin
王钦 1 year ago
parent
commit
6c5b2734e9
  1. 20
      ruoyi-ui/src/common/menuData.js
  2. 10
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/dispatch/data.js
  3. 83
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/StatsDialogVisible/index.vue
  4. 339
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/channelAnalytics/assets/charts copy.js
  5. 184
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/channelAnalytics/assets/charts.js
  6. 8
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/channelAnalytics/index.vue
  7. 235
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/eventTypeAnalysis/assets/charts.js
  8. 6
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/eventTypeAnalysis/index.vue
  9. 42
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsDay/assets/charts.js
  10. 33
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts.js
  11. 76
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts2.js
  12. 35
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts3.js
  13. 0
      ruoyi-ui/src/views/JiHeExpressway/pages/datav/maintainQuery/assets/online_bj.jpg
  14. 0
      ruoyi-ui/src/views/JiHeExpressway/pages/datav/maintainQuery/index.vue
  15. 91
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/dayTotal/assets/charts.js
  16. 1
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/index.vue
  17. 122
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/railwayDay/assets/charts.js
  18. 124
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/trafficIndicators/index.vue
  19. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue
  20. 118
      ruoyi-ui/src/views/JiHeExpressway/pages/service/sensitive/components/AddNEditDialog.vue
  21. 17
      ruoyi-ui/src/views/JiHeExpressway/pages/service/sensitive/data.js
  22. 205
      ruoyi-ui/src/views/JiHeExpressway/pages/service/sensitive/index.vue
  23. 8
      ruoyi-ui/src/views/JiHeExpressway/scss/el-reset.scss

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

@ -59,7 +59,7 @@ export default [
component: "control/event/dispatch/index.vue", component: "control/event/dispatch/index.vue",
}, },
{ {
title: "感知事件", title: "事件列表",
path: "/control/event/event", path: "/control/event/event",
name: "controlEventEvent", name: "controlEventEvent",
component: "control/event/event/index.vue", component: "control/event/event/index.vue",
@ -115,12 +115,6 @@ 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",
} }
] ]
}, },
@ -137,6 +131,12 @@ export default [
path: "/service/board", path: "/service/board",
component: "service/board/index.vue", component: "service/board/index.vue",
}, },
{
title: "情报板敏感词",
name: "sensitive",
path: "/service/sensitive",
component: "service/sensitive/index.vue",
},
{ {
title: "发布渠道管理", title: "发布渠道管理",
name: "PublishingChannelManagement", name: "PublishingChannelManagement",
@ -182,6 +182,12 @@ export default [
path: "/datav/gisAndBim", path: "/datav/gisAndBim",
component: "datav/gisAndBim/index.vue", component: "datav/gisAndBim/index.vue",
}, },
{
title: "数字路网",
name: "maintainQuery",
path: "/datav/maintainQuery",
component: "datav/maintainQuery/index.vue",
}
], ],
}, },
{ {

10
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/dispatch/data.js

@ -1,7 +1,8 @@
import * as PresetFormItems from "@screen/pages/control/event/event/FormEvent/PresetFormItems.js"; import * as PresetFormItems from "@screen/pages/control/event/event/FormEvent/PresetFormItems.js";
import { merge, cloneDeep } from "lodash"; import { merge, cloneDeep } from "lodash";
export const searchFormList = [{ export const searchFormList = [
{
label: "事件状态:", label: "事件状态:",
key: "eventState", key: "eventState",
type: "RadioGroup", type: "RadioGroup",
@ -52,8 +53,8 @@ export const searchFormList = [{
type: "datePicker", type: "datePicker",
options: { options: {
type: "daterange", type: "daterange",
format: 'yyyy-MM-dd HH:mm:ss', format: "yyyy-MM-dd HH:mm:ss",
valueFormat: 'yyyy-MM-dd HH:mm:ss' valueFormat: "yyyy-MM-dd HH:mm:ss",
}, },
}, },
{ {
@ -74,6 +75,5 @@ export const searchFormList = [{
}, },
label: "结束桩号:", label: "结束桩号:",
required: false, required: false,
} }),
)
]; ];

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

@ -51,6 +51,7 @@ import Dialog from "@screen/components/Dialog/index";
import InputSearch from '@screen/components/InputSearch/index.vue'; import InputSearch from '@screen/components/InputSearch/index.vue';
import Table from "@screen/components/Table.vue"; import Table from "@screen/components/Table.vue";
import { selectTollStation } from "@/api/event/governanceAnalysis" import { selectTollStation } from "@/api/event/governanceAnalysis"
import options from "../assets/charts";
export default { export default {
name: 'StatsDetail', name: 'StatsDetail',
components: { components: {
@ -67,17 +68,82 @@ export default {
}, },
data() { data() {
return { return {
num: 0,
tableData: [], tableData: [],
weatherNum: [], weatherNum: [],
startTime: "", startTime: "",
endTime: "", endTime: "",
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
},
},
searchFormList: [ searchFormList: [
{
label: "查询条件:",
key: "a",
required: true,
isAlone: true,
type: "RadioGroup",
options: {
type: 'circle',
options: [
{
key: "0",
label: "站点",
},
{
key: "1",
label: "原因",
}
],
}
},
{
label: "事件类型:",
key: "b",
required: true,
type: "RadioGroup",
options: {
type: 'circle',
options: [{
key: 1,
label: "收费站封闭",
},
{
key: 2,
label: "收费站限行",
}]
}
},
{
label: "选择站点:",
key: "c",
required: true,
type: "RadioGroup",
options: {
type: 'circle',
options: [{
key: 1,
label: "收费站封闭",
},
{
key: 2,
label: "收费站限行",
}]
}
},
{ {
label: "日期:", label: "日期:",
key: "date", key: "date",
required: true, required: true,
type: "datePicker", type: "datePicker",
options: { options: {
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
},
},
valueFormat: "yyyy-MM-dd", valueFormat: "yyyy-MM-dd",
type: "daterange" type: "daterange"
} }
@ -99,11 +165,15 @@ export default {
methods: { methods: {
handleSearch(data) { handleSearch(data) {
console.log("data", data)
this.getSelectTollStation(data) this.getSelectTollStation(data)
}, },
arraySpanMethod({ row, column, rowIndex, columnIndex }) { arraySpanMethod({ row, column, rowIndex, columnIndex }) {
// console.log("+++++++", row, column, rowIndex, columnIndex) console.log("+++++++", row, column, rowIndex, columnIndex)
if (!row.causeTypeName) { if (!row.causeTypeName) {
console.log("11111111111")
if (columnIndex === 0) { if (columnIndex === 0) {
return [1, 2]; return [1, 2];
} }
@ -112,6 +182,7 @@ export default {
} }
}; };
if (row.controlCauseName === '恶劣天气') { if (row.controlCauseName === '恶劣天气') {
console.log("222222222222")
if (columnIndex === 0) { if (columnIndex === 0) {
console.log(this.weatherNum.length) console.log(this.weatherNum.length)
if (rowIndex === 0) { if (rowIndex === 0) {
@ -141,9 +212,10 @@ export default {
// } // }
} }
// this.weatherNum = 0
} }
}, },
getSelectTollStation(data) { getSelectTollStation(data) {
console.log(45, data) console.log(45, data)
@ -164,6 +236,7 @@ export default {
let weatherData = [] let weatherData = []
let otherData = [] let otherData = []
selectTollStation(formData).then((res) => { selectTollStation(formData).then((res) => {
this.weatherNum = []
res.data.forEach(item => { res.data.forEach(item => {
if (item.causeTypeName) { if (item.causeTypeName) {
this.weatherNum.push(item.causeTypeName) this.weatherNum.push(item.causeTypeName)
@ -178,7 +251,11 @@ export default {
} }
}, },
mounted() { mounted() {
this.getSelectTollStation() let date = moment().format('YYYY-MM-DD')
let data = {
date: [date + " 00:00:00", date + " 23:59:59"]
}
this.getSelectTollStation(data)
} }
} }
</script> </script>

339
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/channelAnalytics/assets/charts copy.js

@ -0,0 +1,339 @@
var res = [
{ value: 20, name: "交通事故" },
{ value: 1, name: "" },
{ value: 20, name: "车辆故障" },
{ value: 1, name: "" },
{ value: 15, name: "路障清除" },
{ value: 1, name: "" },
{ value: 10, name: "交通管制" },
{ value: 1, name: "" },
{ value: 5, name: "道路拥堵" },
{ value: 1, name: "" },
{ value: 5, name: "异常天气" },
];
let angle = 0; //角度,用来做简单的动画效果的
//获取圆上面某点的坐标(x0,y0表示坐标,r半径,angle角度)
function getCirlPoint(x0, y0, r, angle) {
let x1 = x0 + r * Math.cos((angle * Math.PI) / 180);
let y1 = y0 + r * Math.sin((angle * Math.PI) / 180);
return {
x: x1,
y: y1,
};
}
let color = [
"#4278F8F9",
"transparent",
"#5372C4",
"transparent",
"#0046FFF9",
"transparent",
"#FB9434F9",
"transparent",
"#854101F9",
"transparent",
"#05E599F9",
"transparent",
"#219F73F9",
"transparent",
"#7CEDD5F9",
"transparent",
];
let colorend = [
"#4278F800",
"transparent",
"#5372C400",
"transparent",
"#0046FF00",
"transparent",
"#FB943400",
"transparent",
"#85410100",
"transparent",
"#05E59900",
"transparent",
"#219F7300",
"transparent",
"#7CEDD500",
"transparent",
];
// var res = this.evaluatedCountList;
var data1 = [],
data2 = [],
data3 = [],
legendData = [];
var curIndex = 0;
var index = 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,
// },
// });
// data3.push({
// value: res[i].value,
// name: res[i].name,
// itemStyle: {
// opacity: 0.1,
// },
// });
if (res[i].name != "") legendData.push(res[i].name);
}
var options = {
color: [
"#2867FF",
"transparent",
"#58C3FF",
"transparent",
"#FF6A3B",
"transparent",
"#FDA474",
"transparent",
"#FEE58F",
"transparent",
"#8DFEBF",
"transparent",
"#66F4DC",
"transparent",
"#33E27D",
"transparent",
"#5D8CFE",
"transparent",
],
title: [
{
text: "999",
top: "25%",
textAlign: "center",
left: "48%",
textStyle: {
color: "#ffffff",
fontSize: 30,
fontFamily: "SourceHanSansCN",
},
},
{
text: "总数",
top: "38%",
textAlign: "center",
left: "48%",
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: false,
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: {
fontSize: 14,
color: "#37E7FF",
marginLeft: 32,
fontWeight: "bold",
},
unit: {
fontSize: 14,
},
},
},
data: legendData,
// formatter(name) {
// 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: "46%", // 错位调整此处
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: "中心效果圆",
type: "gauge",
radius: "30%",
center: ["50%", "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,
},
],
},
{
type: "pie",
radius: ["50%", "40%"],
center: ["50%", "35%"],
z: 10,
label: {
show: false,
position: "center",
formatter: (params) => {
return params.name + "\r\n" + params.value;
},
rich: {
total: {
fontSize: 16,
color: "#04F5FE",
},
efficiency: {
fontSize: 12,
color: "#00FD6D",
},
},
color: "#FFFFFF",
fontSize: 12,
lineHeight: 16,
},
data: res,
labelLine: {
show: false,
},
itemStyle: {
normal: {
borderRadius: "5",
borderWidth: 0,
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: color[params.dataIndex], // 0% 处的颜色
},
{
offset: 1,
color: colorend[params.dataIndex], // 100% 处的颜色
},
],
globalCoord: false, // 缺省为 false
};
},
},
},
},
],
};
export default options;

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

@ -1,116 +1,36 @@
var res = [ let colors = [
{ value: 20, name: "交通事故" }, "#68F4DD",
{ value: 1, name: "" }, "#1785C0",
{ value: 20, name: "车辆故障" }, "#476DBC",
{ value: 1, name: "" }, "#B55233",
{ value: 15, name: "路障清除" }, "#B0862C",
{ value: 1, name: "" }, "#35AD6B",
{ value: 10, name: "交通管制" }, "#219F73",
{ value: 1, name: "" }, "#7CEDD5",
{ value: 5, name: "道路拥堵" },
{ value: 1, name: "" },
{ value: 5, name: "异常天气" },
];
let angle = 0; //角度,用来做简单的动画效果的
//获取圆上面某点的坐标(x0,y0表示坐标,r半径,angle角度)
function getCirlPoint(x0, y0, r, angle) {
let x1 = x0 + r * Math.cos((angle * Math.PI) / 180);
let y1 = y0 + r * Math.sin((angle * Math.PI) / 180);
return {
x: x1,
y: y1,
};
}
let color = [
"#4278F8F9",
"transparent",
"#5372C4",
"transparent",
"#0046FFF9",
"transparent",
"#FB9434F9",
"transparent",
"#854101F9",
"transparent",
"#05E599F9",
"transparent",
"#219F73F9",
"transparent",
"#7CEDD5F9",
"transparent",
]; ];
let colorend = [ let colorend = [
"#4278F800", "#4278F8",
"transparent", "#5372C4",
"#5372C400", "#0046FF",
"transparent", "#FB9434",
"#0046FF00", "#854101",
"transparent", "#05E599",
"#FB943400", "#219F73",
"transparent", "#7CEDD5",
"#85410100",
"transparent",
"#05E59900",
"transparent",
"#219F7300",
"transparent",
"#7CEDD500",
"transparent",
]; ];
var legendData = [];
// var res = this.evaluatedCountList;
var data1 = [],
data2 = [],
data3 = [],
legendData = [];
var curIndex = 0;
var index = 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,
// },
// });
// data3.push({
// value: res[i].value,
// name: res[i].name,
// itemStyle: {
// opacity: 0.1,
// },
// });
if (res[i].name != "") legendData.push(res[i].name);
}
var options = { var options = {
color: [ color: [
"#2867FF", "#2867FF",
"transparent",
"#58C3FF", "#58C3FF",
"transparent",
"#FF6A3B", "#FF6A3B",
"transparent",
"#FDA474", "#FDA474",
"transparent",
"#FEE58F", "#FEE58F",
"transparent",
"#8DFEBF", "#8DFEBF",
"transparent",
"#66F4DC", "#66F4DC",
"transparent",
"#33E27D", "#33E27D",
"transparent",
"#5D8CFE", "#5D8CFE",
"transparent",
], ],
title: [ title: [
{ {
@ -144,23 +64,24 @@ var options = {
containLabel: true, containLabel: true,
}, },
tooltip: { tooltip: {
show: false, show: true,
trigger: "item", trigger: "item",
formatter: "{b} : {c}:{d}", // formatter: "{b} : {c}",
}, },
legend: { legend: {
orient: "", width: "300px",
left: "10%", height: "120px",
top: "68%", orient: "vertical",
top: "60%",
itemWidth: 10, itemWidth: 10,
itemHeight: 10, itemHeight: 10,
icon: "circle",
textStyle: { textStyle: {
color: "#ffffff", color: "#ffffff",
fontSize: 14, fontSize: 14,
lineHeight: 22, lineHeight: 22,
rich: { rich: {
text: { text: {
width: 100,
marginLeft: 32, marginLeft: 32,
fontSize: 14, fontSize: 14,
}, },
@ -176,20 +97,13 @@ var options = {
}, },
}, },
data: legendData, data: legendData,
// formatter(name) { pageIconColor: "#fff",
// const newData = res; pageIconSize: 10,
// let tarValue = 0; pageTextStyle: {
// let total = 0; color: "#fff",
// for (let i = 0; i < newData.length; i++) { },
// total += newData[i].value; type: "scroll",
// if (newData[i].name === name) { pageButtonPosition: "end",
// tarValue = newData[i].value;
// }
// }
// var percert = total == 0 ? 0 : ((tarValue / total) * 100).toFixed(2);
// const arr = name + " " + tarValue;
// return `{text|${name}} {number|${percert}%}`;
// },
}, },
series: [ series: [
/** 饼图上刻度 */ /** 饼图上刻度 */
@ -213,7 +127,8 @@ var options = {
axisLabel: { show: false }, axisLabel: { show: false },
}, },
{ {
name: "中心效果圆", name: "总数",
tooltip: false,
type: "gauge", type: "gauge",
radius: "30%", radius: "30%",
center: ["50%", "35%"], center: ["50%", "35%"],
@ -271,6 +186,14 @@ var options = {
value: 100, value: 100,
}, },
], ],
tooltip: {
backgroundColor: "rgba(50,50,50,0)",
formatter: " ",
borderWidth: 0,
textStyle: {
textShadowColor: "rgba(50,50,50,0)",
},
},
}, },
{ {
type: "pie", type: "pie",
@ -279,25 +202,8 @@ var options = {
z: 10, z: 10,
label: { label: {
show: false, show: false,
position: "center",
formatter: (params) => {
return params.name + "\r\n" + params.value;
},
rich: {
total: {
fontSize: 16,
color: "#04F5FE",
},
efficiency: {
fontSize: 12,
color: "#00FD6D",
},
},
color: "#FFFFFF",
fontSize: 12,
lineHeight: 16,
}, },
data: res, data: [],
labelLine: { labelLine: {
show: false, show: false,
}, },
@ -320,11 +226,11 @@ var options = {
colorStops: [ colorStops: [
{ {
offset: 0, offset: 0,
color: color[params.dataIndex], // 0% 处的颜色 color: "transparent", // 0% 处的颜色
}, },
{ {
offset: 1, offset: 1,
color: colorend[params.dataIndex], // 100% 处的颜色 color: colors[params.dataIndex], // 100% 处的颜色
}, },
], ],
globalCoord: false, // 缺省为 false globalCoord: false, // 缺省为 false

8
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/channelAnalytics/index.vue

@ -43,9 +43,9 @@ export default {
} }
console.log("total", total) console.log("total", total)
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
if (i % 2 === 0) { // if (i % 2 === 0) {
data.splice(i + 1, 0, newObj) // data.splice(i + 1, 0, newObj)
} // }
if (data[i].name != "") { if (data[i].name != "") {
nameData.push(data[i].name) nameData.push(data[i].name)
} }
@ -63,6 +63,8 @@ export default {
}; };
chartsStatistics.legend.data = nameData; chartsStatistics.legend.data = nameData;
chartsStatistics.title[0].text = total; chartsStatistics.title[0].text = total;
// chartsStatistics.tooltip.show = false;
// chartsStatistics.series[1].data[0].value = total;
chartsStatistics.series[2].data = data; chartsStatistics.series[2].data = data;
}) })
} }

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

@ -1,146 +1,52 @@
var res = [ let colors = [
{ value: 20, name: "交通事故" }, "#4278F8",
{ value: 1, name: "" },
{ value: 20, name: "车辆故障" },
{ value: 1, name: "" },
{ value: 15, name: "路障清除" },
{ value: 1, name: "" },
{ value: 10, name: "交通管制" },
{ value: 1, name: "" },
{ value: 5, name: "道路拥堵" },
{ value: 1, name: "" },
{ value: 5, name: "异常天气" },
{ value: 1, name: "" },
{ value: 20, name: "交通事故2" },
{ value: 1, name: "" },
{ value: 20, name: "车辆故障2" },
{ value: 1, name: "" },
{ value: 15, name: "路障清除2" },
{ value: 1, name: "" },
{ value: 10, name: "交通管制2" },
{ value: 1, name: "" },
{ value: 5, name: "道路拥堵2" },
{ value: 1, name: "" },
{ value: 5, name: "异常天气2" },
{ value: 1, name: "" },
];
let angle = 0; //角度,用来做简单的动画效果的
//获取圆上面某点的坐标(x0,y0表示坐标,r半径,angle角度)
function getCirlPoint(x0, y0, r, angle) {
let x1 = x0 + r * Math.cos((angle * Math.PI) / 180);
let y1 = y0 + r * Math.sin((angle * Math.PI) / 180);
return {
x: x1,
y: y1,
};
}
let color = [
"#4278F8F9",
"transparent",
"#5372C4", "#5372C4",
"transparent", "#0046FF",
"#0046FFF9", "#FB9434",
"transparent", "#854101",
"#FB9434F9", "#05E599",
"transparent", "#219F73",
"#854101F9", "#7CEDD5",
"transparent", "#854101",
"#05E599F9", "#05E599",
"transparent", "#219F73",
"#219F73F9", "#7CEDD5",
"transparent",
"#7CEDD5F9",
"transparent",
"#854101F9",
"transparent",
"#05E599F9",
"transparent",
"#219F73F9",
"transparent",
"#7CEDD5F9",
"transparent",
]; ];
let colorend = [ let colorend = [
"#4278F800", "#4278F8",
"transparent", "#5372C4",
"#5372C400", "#0046FF",
"transparent", "#FB9434",
"#0046FF00", "#854101",
"transparent", "#05E599",
"#FB943400", "#219F73",
"transparent", "#7CEDD5",
"#85410100", "#854101",
"transparent", "#05E599",
"#05E59900", "#219F73",
"transparent", "#7CEDD5",
"#219F7300",
"transparent",
"#7CEDD500",
"transparent",
"#854101F9",
"transparent",
"#05E599F9",
"transparent",
"#219F73F9",
"transparent",
"#7CEDD5F9",
"transparent",
]; ];
// var res = this.evaluatedCountList; let legendData = [];
var data1 = [],
data2 = [],
data3 = [],
legendData = [];
var curIndex = 0;
var index = 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,
// },
// })
// data3.push({
// value: res[i].value,
// name: res[i].name,
// itemStyle: {
// opacity: 0.1,
// },
// })
if (res[i].name != "") legendData.push(res[i].name);
}
var options = { var options = {
color: [ // color: [
"#2867FF", // "#2867FF",
"transparent", // "#58C3FF",
"#58C3FF", // "#FF6A3B",
"transparent", // "#FDA474",
"#FF6A3B", // "#FEE58F",
"transparent", // "#8DFEBF",
"#FDA474", // "#66F4DC",
"transparent", // "#33E27D",
"#FEE58F", // "#5D8CFE",
"transparent", // "#FDA474",
"#8DFEBF", // "#FEE58F",
"transparent", // "#8DFEBF",
"#66F4DC", // "#66F4DC",
"transparent", // "#33E27D",
"#33E27D", // "#5D8CFE",
"transparent", // ],
"#5D8CFE",
"transparent",
],
title: [ title: [
{ {
text: "999", text: "999",
@ -173,28 +79,24 @@ var options = {
containLabel: true, containLabel: true,
}, },
tooltip: { tooltip: {
show: false, show: true,
trigger: "item", trigger: "item",
formatter: "{b} : {c}:{d}", // formatter: "{b} : {c}:{d}",
}, },
legend: { legend: {
type: "scroll", width: "300px",
show: true, height: "120px",
// width: 200, orient: "vertical",
orient: "", top: "60%",
left: "10%",
top: "68%",
// right: "30%",
itemWidth: 10, itemWidth: 10,
itemHeight: 10, itemHeight: 10,
icon: "circle",
textStyle: { textStyle: {
color: "#ffffff", color: "#ffffff",
fontSize: 14, fontSize: 14,
lineHeight: 22, lineHeight: 22,
overflow: "auto",
rich: { rich: {
text: { text: {
width: 100,
marginLeft: 32, marginLeft: 32,
fontSize: 14, fontSize: 14,
}, },
@ -210,7 +112,13 @@ var options = {
}, },
}, },
data: legendData, data: legendData,
formatter(params) {}, pageIconColor: "#fff",
pageIconSize: 10,
pageTextStyle: {
color: "#fff",
},
type: "scroll",
pageButtonPosition: "end",
}, },
series: [ series: [
/** 饼图上刻度 */ /** 饼图上刻度 */
@ -246,6 +154,14 @@ var options = {
width: 1, width: 1,
}, },
}, },
tooltip: {
backgroundColor: "rgba(50,50,50,0)",
formatter: " ",
borderWidth: 0,
textStyle: {
textShadowColor: "rgba(50,50,50,0)",
},
},
axisTick: { axisTick: {
show: false, show: false,
}, },
@ -300,25 +216,8 @@ var options = {
z: 10, z: 10,
label: { label: {
show: false, show: false,
position: "center",
formatter: (params) => {
return params.name + "\r\n" + params.value;
},
rich: {
total: {
fontSize: 16,
color: "#04F5FE",
},
efficiency: {
fontSize: 12,
color: "#00FD6D",
},
},
color: "#FFFFFF",
fontSize: 12,
lineHeight: 16,
}, },
data: res, data: [],
labelLine: { labelLine: {
show: false, show: false,
}, },
@ -341,11 +240,11 @@ var options = {
colorStops: [ colorStops: [
{ {
offset: 0, offset: 0,
color: color[params.dataIndex], // 0% 处的颜色 color: "transparent", // 0% 处的颜色
}, },
{ {
offset: 1, offset: 1,
color: colorend[params.dataIndex], // 100% 处的颜色 color: colors[params.dataIndex], // 100% 处的颜色
}, },
], ],
globalCoord: false, // 缺省为 false globalCoord: false, // 缺省为 false

6
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/eventTypeAnalysis/index.vue

@ -43,9 +43,9 @@ export default {
} }
console.log("total88", total) console.log("total88", total)
for (let i = 0; i < data.length; i++) { for (let i = 0; i < data.length; i++) {
if (i % 2 === 0) { // if (i % 2 === 0) {
data.splice(i + 1, 0, newObj) // data.splice(i + 1, 0, newObj)
} // }
if (data[i].name != "") { if (data[i].name != "") {
nameData.push(data[i].name) nameData.push(data[i].name)
} }

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

@ -1,7 +1,15 @@
/* 数据 */ /* 数据 */
var options = { var options = {
tooltip: {
show: true,
trigger: "axis",
textStyle: {
// color: "#fff",
fontSize: 10,
},
// formatter: "{b}:{c}人",
},
legend: { legend: {
// orient: 'vertical',
icon: "circle", icon: "circle",
itemHeight: 8, itemHeight: 8,
itemWidth: 8, itemWidth: 8,
@ -16,7 +24,7 @@ var options = {
grid: { grid: {
top: "15%", //上边距 top: "15%", //上边距
right: "0", //右边距 right: "0", //右边距
left: "0", //左边距 left: "1px", //左边距
bottom: "10%", //下边距 bottom: "10%", //下边距
containLabel: true, containLabel: true,
}, },
@ -28,7 +36,7 @@ var options = {
}, },
axisLine: { axisLine: {
lineStyle: { lineStyle: {
color: "rgba(49, 217, 255, 0.8)", color: "#2A6278",
}, },
}, },
axisLabel: { axisLabel: {
@ -41,17 +49,19 @@ var options = {
yAxis: [ yAxis: [
{ {
type: "value", type: "value",
name: "", name: "(件)",
max: 1200,
min: 0,
splitNumber: 5,
nameTextStyle: { nameTextStyle: {
color: "#BDC4C7", color: "#E5E7E8",
fontSize: 10, fomtSize: 10,
fontFamily: "Source Han Sans CN-Regular", },
align: "left", // splitNumber: 5,
verticalAlign: "center", // nameTextStyle: {
}, // color: "#BDC4C7",
// fontSize: 10,
// fontFamily: "Source Han Sans CN-Regular",
// align: "left",
// verticalAlign: "center",
// },
axisLabel: { axisLabel: {
fontSize: 10, fontSize: 10,
color: "#E5E7E8", color: "#E5E7E8",
@ -65,7 +75,7 @@ var options = {
}, },
splitLine: { splitLine: {
lineStyle: { lineStyle: {
color: "rgba(49, 217, 255, 0.5)", color: "#2A6278",
}, },
}, },
}, },
@ -101,7 +111,7 @@ var options = {
width: 2, width: 2,
}, },
data: [], // 折线图的数据 data: [5, 20, 40, 15, 20], // 折线图的数据
}, },
{ {
name: "交通事件", name: "交通事件",
@ -133,7 +143,7 @@ var options = {
global: false, global: false,
}, },
}, },
data: [], // 折线图的数据 data: [5, 20, 30, 15, 20], // 折线图的数据
}, },
], ],
}; };

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

@ -17,19 +17,19 @@ let data2 = [120, 340, 750, 600, 400, 700, 900, 200];
let data3 = [200, 530, 920, 400, 600, 700, 300, 800]; let data3 = [200, 530, 920, 400, 600, 700, 300, 800];
let options = { let options = {
tooltip: { tooltip: {
show: false, show: true,
trigger: "axis", trigger: "axis",
axisPointer: { axisPointer: {
// 坐标轴指示器,坐标轴触发有效 // 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow' type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
}, },
textStyle: { textStyle: {
color: "#fff", // color: "#fff",
fontSize: 12, fontSize: 10,
}, },
backgroundColor: "rgba(3, 31, 71, .0)", //设置背景颜色 // backgroundColor: "rgba(3, 31, 71, .0)", //设置背景颜色
borderColor: "rgba(3, 31, 71, .0)", // borderColor: "rgba(3, 31, 71, .0)",
formatter: "健康监测<br>{b1}:{c1}人", // formatter: "健康监测<br>{b}:{c}人",
}, },
grid: { grid: {
left: "0", left: "0",
@ -65,9 +65,9 @@ let options = {
}, },
yAxis: [ yAxis: [
{ {
max: 900, // max: 900,
min: 0, // min: 0,
interval: 100, // interval: 100,
axisLine: { axisLine: {
lineStyle: { lineStyle: {
color: "#1C82C5", color: "#1C82C5",
@ -91,16 +91,17 @@ let options = {
}, },
}, },
{ {
max: 90, // max: 90,
min: 0, // min: 60,
interval: 10, // interval: 10,
axisLine: { axisLine: {
lineStyle: { show: false,
color: "#1C82C5", // lineStyle: {
}, // color: "#1C82C5",
// },
}, },
splitLine: { splitLine: {
show: true, show: false,
lineStyle: { lineStyle: {
color: "#2A6278", color: "#2A6278",
type: "solid", type: "solid",

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

@ -3,13 +3,13 @@ let lc = [450, 500, 250, 340, 450, 500];
let lc2 = [400, 550, 200, 140, 400, 550]; let lc2 = [400, 550, 200, 140, 400, 550];
let options = { let options = {
tooltip: { tooltip: {
show: false, show: true,
trigger: "axis", trigger: "axis",
backgroundColor: "rgba(17,95,182,0.5)", //设置背景颜色 // backgroundColor: "rgba(17,95,182,0.5)", //设置背景颜色
textStyle: { textStyle: {
color: "#fff", // color: "#fff",
fontSize: 10,
}, },
fontSize: 12,
// formatter: "{b}:{c}人", // formatter: "{b}:{c}人",
}, },
grid: { grid: {
@ -22,7 +22,7 @@ let options = {
xAxis: { xAxis: {
type: "category", type: "category",
boundaryGap: true, boundaryGap: true,
data: [], data: zData,
axisLabel: { axisLabel: {
interval: 0, interval: 0,
textStyle: { textStyle: {
@ -48,16 +48,12 @@ let options = {
yAxis: [ yAxis: [
{ {
type: "value", type: "value",
// splitNumber: 6,
name: "(起) ", name: "(起) ",
nameTextStyle: { nameTextStyle: {
color: "#E5E7E8", color: "#E5E7E8",
left: 10, left: 10,
fomtSize: 10, fomtSize: 10,
}, },
min: 0,
max: 900,
interval: 100,
axisLabel: { axisLabel: {
show: true, show: true,
textStyle: { textStyle: {
@ -80,21 +76,17 @@ let options = {
}, },
{ {
type: "value", type: "value",
// splitNumber: 6,
name: " (分钟)", name: " (分钟)",
nameTextStyle: { nameTextStyle: {
color: "#E5E7E8", color: "#E5E7E8",
fomtSize: 10, fomtSize: 10,
}, },
min: 0,
max: 90,
interval: 10,
axisLabel: { axisLabel: {
show: true, show: true,
textStyle: { textStyle: {
color: "#fff", color: "#fff",
fontSize: 10, fontSize: 10,
formatter: "{value} °C", // formatter: "{value} °C",
}, },
}, },
// axisLine: { // axisLine: {
@ -104,7 +96,7 @@ let options = {
// show: false, // show: false,
// }, // },
splitLine: { splitLine: {
show: true, show: false,
lineStyle: { lineStyle: {
color: "#2A6278", color: "#2A6278",
}, },
@ -155,16 +147,16 @@ let options = {
name: "事件数量", name: "事件数量",
type: "pictorialBar", type: "pictorialBar",
stack: "数量", stack: "数量",
label: { // label: {
normal: { // normal: {
show: false, // show: false,
position: "top", // position: "top",
textStyle: { // textStyle: {
color: "#FFFFFF", // color: "#FFFFFF",
fontSize: 16, // fontSize: 16,
}, // },
}, // },
}, // },
itemStyle: { itemStyle: {
normal: { normal: {
color: { color: {
@ -189,7 +181,7 @@ let options = {
}, },
symbol: symbol:
"path://M48 0 L49 17 C52 72 68 125 96 173 H0 C25 125 41 73 46 19 L48 0Z", "path://M48 0 L49 17 C52 72 68 125 96 173 H0 C25 125 41 73 46 19 L48 0Z",
data: [], data: lc,
}, },
{ {
name: "去年同期数量", name: "去年同期数量",
@ -197,16 +189,16 @@ let options = {
stack: "else", stack: "else",
barGap: "10%", barGap: "10%",
boundaryGap: "100%", boundaryGap: "100%",
label: { // label: {
normal: { // normal: {
show: false, // show: false,
position: "top", // position: "top",
textStyle: { // textStyle: {
color: "#FFFFFF", // color: "#FFFFFF",
fontSize: 16, // fontSize: 16,
}, // },
}, // },
}, // },
itemStyle: { itemStyle: {
normal: { normal: {
color: { color: {
@ -231,18 +223,19 @@ let options = {
}, },
symbol: symbol:
"path://M48 0 L49 17 C52 72 68 125 96 173 H0 C25 125 41 73 46 19 L48 0Z", "path://M48 0 L49 17 C52 72 68 125 96 173 H0 C25 125 41 73 46 19 L48 0Z",
data: [], data: lc2,
}, },
{ {
name: "平均处置时长", name: "平均处置时长",
yAxisIndex: 1, yAxisIndex: 1,
data: [], data: lc2,
type: "line", type: "line",
symbol: "none", symbol: "none",
symbolSize: 20, symbolSize: 20,
smooth: true, smooth: true,
color: "#E2BA74",
lineStyle: { lineStyle: {
color: "#FB6D07", color: "#E2BA74",
width: 1, width: 1,
type: "dashed", type: "dashed",
// dashOffset:50 // dashOffset:50
@ -251,13 +244,14 @@ let options = {
{ {
name: "去年同期平均处置时长", name: "去年同期平均处置时长",
yAxisIndex: 1, yAxisIndex: 1,
data: [], data: lc,
type: "line", type: "line",
symbol: "none", symbol: "none",
symbolSize: 20, symbolSize: 20,
smooth: true, smooth: true,
color: "#FB6D07",
lineStyle: { lineStyle: {
color: "#E2BA74", color: "#FB6D07",
width: 1, width: 1,
type: "dashed", type: "dashed",
// dashOffset:50 // dashOffset:50

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

@ -1,5 +1,5 @@
// const sxnja = [400, 400, 400]; const sxnja = [400, 400, 400];
// const sxnja2 = [700, 700, 700]; const sxnja2 = [700, 700, 700];
// const minNumber = 90; // const minNumber = 90;
// const minArray = []; // const minArray = [];
@ -22,10 +22,15 @@ var options = {
}, },
}, },
tooltip: { tooltip: {
valueFormatter: function (value) { show: true,
return value; textStyle: {
// return (value + minNumber).toFixed(2) + " %"; // color: "#fff",
fontSize: 10,
}, },
// valueFormatter: function (value) {
// return value;
// // return (value + minNumber).toFixed(2) + " %";
// },
}, },
legend: { legend: {
// orient: 'vertical', // orient: 'vertical',
@ -68,11 +73,6 @@ var options = {
yAxis: [ yAxis: [
{ {
type: "value", type: "value",
min: 0,
max: 900,
interval: 100,
splitNumber: 9,
// max: yAxisMax,
axisLine: { axisLine: {
show: false, show: false,
lineStyle: { lineStyle: {
@ -101,21 +101,12 @@ var options = {
}, },
}, },
{ {
// type: 'value',
// min: function (value) {
// return value.min*0.9;
// },
type: "value", type: "value",
min: 0,
max: 90,
interval: 10,
splitNumber: 9,
// max: yAxisMax,
axisLine: { axisLine: {
show: false, show: false,
}, },
splitLine: { splitLine: {
show: true, show: false,
lineStyle: { lineStyle: {
color: "#2A6278", color: "#2A6278",
opacity: 0.3, opacity: 0.3,
@ -138,7 +129,7 @@ var options = {
series: [ series: [
{ {
name: "事件数量(起)", name: "事件数量(起)",
data: [], data: sxnja2,
type: "pictorialBar", type: "pictorialBar",
symbol: "roundRect", symbol: "roundRect",
symbolRepeat: true, symbolRepeat: true,
@ -153,7 +144,7 @@ var options = {
barGap: "10%", barGap: "10%",
name: "平均处置时长(分钟)", name: "平均处置时长(分钟)",
yAxisIndex: 1, yAxisIndex: 1,
data: [], data: sxnja,
type: "pictorialBar", type: "pictorialBar",
symbol: "roundRect", symbol: "roundRect",
symbolRepeat: true, symbolRepeat: true,

0
ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/maintainQuery/assets/online_bj.jpg → ruoyi-ui/src/views/JiHeExpressway/pages/datav/maintainQuery/assets/online_bj.jpg

Before

Width:  |  Height:  |  Size: 403 KiB

After

Width:  |  Height:  |  Size: 403 KiB

0
ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/maintainQuery/index.vue → ruoyi-ui/src/views/JiHeExpressway/pages/datav/maintainQuery/index.vue

91
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/dayTotal/assets/charts.js

@ -1,57 +1,56 @@
const sxnja = [ const sxnja = [
293.67, 493.44, 694.34, 894.5, 697.82, 895.09, 495.79, 497.49, 393.72, 293.52 293.67, 493.44, 694.34, 894.5, 697.82, 895.09, 495.79, 497.49, 393.72, 293.52,
]; ];
const minNumber = 0; const minNumber = 0;
const minArray = []; const minArray = [];
sxnja.map((value) => { sxnja.map((value) => {
minArray.push(parseFloat((value - minNumber).toFixed(2))) minArray.push(parseFloat((value - minNumber).toFixed(2)));
}) });
console.log(minArray) console.log(minArray);
let xaxisData = [ let xaxisData = [];
];
var options = { var options = {
title: { title: {
// text: '单位/%', // text: '单位/%',
top: '0%', top: "0%",
left: '0%', left: "0%",
textStyle: { textStyle: {
fontSize: '10px', fontSize: "10px",
fontWeight: 300, fontWeight: 300,
color: '#B5C5D4', color: "#B5C5D4",
opacity: 0.8 opacity: 0.8,
} },
}, },
tooltip: { tooltip: {
valueFormatter: function (value) { valueFormatter: function (value) {
return (value + minNumber).toFixed(2); return value + minNumber;
} },
}, },
grid: { grid: {
left: '1%', left: "1%",
right: '0%', right: "0%",
top: '16%', top: "16%",
bottom: '5%', bottom: "5%",
containLabel: true containLabel: true,
}, },
xAxis: { xAxis: {
type: 'category', type: "category",
data: xaxisData, data: xaxisData,
axisLine: { axisLine: {
show: true, show: true,
lineStyle: { lineStyle: {
width: 1, width: 1,
color: '#545454' color: "#545454",
} },
}, },
axisTick: { axisTick: {
show: false show: false,
}, },
axisLabel: { axisLabel: {
color: '#B5C5D4', color: "#B5C5D4",
fontSize: '10px', fontSize: "10px",
interval: 0 interval: 0,
} },
}, },
yAxis: [ yAxis: [
{ {
@ -59,50 +58,50 @@ const sxnja = [
// min: function (value) { // min: function (value) {
// return value.min*0.9; // return value.min*0.9;
// }, // },
type: 'value', type: "value",
// max: yAxisMax, // max: yAxisMax,
axisLine: { axisLine: {
show: false, show: false,
lineStyle: { lineStyle: {
width: 1, width: 1,
color: '#545454' color: "#545454",
} },
}, },
splitLine: { splitLine: {
show: true, show: true,
lineStyle: { lineStyle: {
color: '#B2C2D3', color: "#B2C2D3",
opacity: 0.3, opacity: 0.3,
type: 'dotted' type: "dotted",
} },
}, },
axisTick: { axisTick: {
show: false show: false,
}, },
axisLabel: { axisLabel: {
color: '#B5C5D4', color: "#B5C5D4",
fontSize: '12px', fontSize: "12px",
formatter: (value) => { formatter: (value) => {
return value + minNumber return value + minNumber;
} },
} },
} },
], ],
series: [ series: [
{ {
// name: '审限内结案率', // name: '审限内结案率',
data: minArray, data: minArray,
type: 'pictorialBar', type: "pictorialBar",
symbol: 'roundRect', symbol: "roundRect",
symbolRepeat: true, symbolRepeat: true,
symbolSize: [13, 4], symbolSize: [13, 4],
// symbolOffset: symbolOffset, // symbolOffset: symbolOffset,
// barWidth:'40%', // barWidth:'40%',
itemStyle: { itemStyle: {
color: '#20E7FF' color: "#20E7FF",
} },
} },
] ],
}; };
export default options; export default options;

1
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventQuery/index.vue

@ -171,6 +171,7 @@ export default {
methods: { methods: {
selectProgress(item, index) { selectProgress(item, index) {
this.selectId = index; this.selectId = index;
this.searchQuery()
}, },
onReset() { onReset() {
this.area = '1'; this.area = '1';

122
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/railwayDay/assets/charts.js

@ -1,6 +1,15 @@
/* 数据 */ /* 数据 */
let nameList = ["大学城", "长清", "孝里", "安城", "平阴北", "平阴南", "东平", "梁山东", "嘉祥西"]; // 类别 let nameList = [
"大学城",
"长清",
"孝里",
"安城",
"平阴北",
"平阴南",
"东平",
"梁山东",
"嘉祥西",
]; // 类别
let valueList = [800, 520, 650, 950, 420, 600, 450, 720, 303]; // 人数 let valueList = [800, 520, 650, 950, 420, 600, 450, 720, 303]; // 人数
// var yList = [ "1000","800","轻度拥堵","基本畅通","畅通"] // var yList = [ "1000","800","轻度拥堵","基本畅通","畅通"]
/* 数据整合 */ /* 数据整合 */
@ -13,79 +22,85 @@ nameList.map((item, index) => {
value: valueList[index], value: valueList[index],
itemStyle: { itemStyle: {
color: { color: {
type: 'linear', type: "linear",
x: 0, x: 0,
y: 0, y: 0,
x2: 0, x2: 0,
y2: 1, y2: 1,
colorStops: [{ colorStops: [
offset: 0, color: '#0469FF' // 0% 处的颜色 {
}, { offset: 0,
offset: 1, color: '#699CFF' // 100% 处的颜色 color: "#0469FF", // 0% 处的颜色
}], },
global: false // 缺省为 false {
offset: 1,
color: "#699CFF", // 100% 处的颜色
},
],
global: false, // 缺省为 false
}, },
borderRadius: 6 borderRadius: 6,
}, },
label: { show: false } label: { show: false },
}) });
} else { } else {
dataList.push({ dataList.push({
name: item, name: item,
value: valueList[index], value: valueList[index],
itemStyle: { itemStyle: {
borderRadius: 6 borderRadius: 6,
} },
}) });
} }
}) });
var options = { var options = {
grid: { grid: {
top: '5%',//上边距 top: "5%", //上边距
right: '0',//右边距 right: "0", //右边距
left: '0',//左边距 left: "0", //左边距
bottom: "0%", //下边距 bottom: "0%", //下边距
containLabel: true, containLabel: true,
}, },
tooltip: { tooltip: {
valueFormatter: function (value) { valueFormatter: function (value) {
return (value + minNumber).toFixed(2); return value + minNumber;
} },
}, },
xAxis: { xAxis: {
type: 'category', type: "category",
data: nameList, data: nameList,
axisTick: { axisTick: {
show: false //隐藏X轴刻度 show: false, //隐藏X轴刻度
}, },
axisLine: { axisLine: {
lineStyle: { lineStyle: {
color: "rgba(49, 217, 255, 0.8)" color: "rgba(49, 217, 255, 0.8)",
} },
}, },
axisLabel: { axisLabel: {
show: true, show: true,
color: '#B6E6FF', color: "#B6E6FF",
fontSize: 8, fontSize: 8,
fontFamily: 'Source Han Sans CN-Regular', fontFamily: "Source Han Sans CN-Regular",
}, },
}, },
yAxis: [{ yAxis: [
type: 'value', {
type: "value",
name: "", name: "",
nameTextStyle: { nameTextStyle: {
color: '#B6E6FF', color: "#B6E6FF",
fontSize: 13, fontSize: 13,
fontFamily: 'Source Han Sans CN-Regular', fontFamily: "Source Han Sans CN-Regular",
align: "left", align: "left",
verticalAlign: "center", verticalAlign: "center",
}, },
axisLabel: { axisLabel: {
fontSize: 13, fontSize: 13,
color: '#B6E6FF', color: "#B6E6FF",
fontFamily: 'HarmonyOS Sans-Regular', fontFamily: "HarmonyOS Sans-Regular",
// formatter:function(value,index){ // formatter:function(value,index){
// return yList[index] // return yList[index]
// } // }
@ -94,40 +109,47 @@ var options = {
show: false, show: false,
}, },
axisTick: { axisTick: {
show: false show: false,
}, },
splitLine: { splitLine: {
lineStyle: { lineStyle: {
color: 'rgba(49, 217, 255, 0.5)', color: "rgba(49, 217, 255, 0.5)",
} },
}, },
}], },
series: [{ ],
type: 'bar', series: [
{
type: "bar",
data: dataList, data: dataList,
z: 4, z: 4,
itemStyle: { itemStyle: {
color: { color: {
type: 'linear', type: "linear",
x: 0, x: 0,
y: 0, y: 0,
x2: 0, x2: 0,
y2: 1, y2: 1,
colorStops: [{ colorStops: [
offset: 0, color: '#0BA7DA' // 0% 处的颜色 {
}, { offset: 0,
offset: 1, color: '#61D8FF' // 100% 处的颜色 color: "#0BA7DA", // 0% 处的颜色
}], },
global: false // 缺省为 false {
offset: 1,
color: "#61D8FF", // 100% 处的颜色
}, },
borderRadius: [4, 4, 0, 0] ],
global: false, // 缺省为 false
},
borderRadius: [4, 4, 0, 0],
}, },
barWidth: 10, barWidth: 10,
label: { label: {
show: false, show: false,
}
}, },
] },
} ],
};
export default options; export default options;

124
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/components/IndicatorAnalysis/components/trafficIndicators/index.vue

@ -37,36 +37,46 @@
<div class="body"> <div class="body">
<div style="width:70%"> <div style="width:70%">
<div class="searchPanel_1"> <div class="searchPanel_1">
<!-- <el-from ref="form"> -->
<RadioGroup :options="[{ key: '1', label: '菏泽' }, { key: '3', label: '济南' }]" v-model="direction"
type="button" />
<el-select v-model="type" size="mini" class="selectRoad" placeholder="请选择">
<el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
<el-select v-model="quarter" size="medium" v-if="type == '3'" class="selectRoad-medium" placeholder="请选择">
<el-option v-for="item in quarterOptions" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
<!-- <el-quarter-picker size="mini" class="selectRoad" style="width:180px;" v-if="type == '3'" v-model="dateTime"
aria-placeholder="请选季度" /> -->
<el-date-picker size="mini" v-if="type != '3'" class="selectRoad" v-model="dateTime" style="width:140px;"
:type="type == 1 ? 'date' : type == 2 ? 'month' : type == 4 ? 'year' : ''" placeholder="请选择" />
<el-button type="primary" size="mini" class="btnSearch" @click="searchQuery"
icon="el-icon-search">查询</el-button>
<el-button class="btnReset" size="mini" icon="el-icon-refresh-left" @click="handleClear">重置</el-button>
<!-- </el-from> -->
</div>
<!-- <div class="searchPanel_1">
<el-select v-model="area" size="mini" class="selectRoad" placeholder="请选择"> <el-select v-model="area" size="mini" class="selectRoad" placeholder="请选择">
<el-option <el-option v-for="item in areaOptions" :key="item.value" :label="item.label" :value="item.value">
v-for="item in areaOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option> </el-option>
</el-select> </el-select>
<el-select v-model="year" size="mini" class="selectRoad" placeholder="请选择"> <el-select v-model="year" size="mini" class="selectRoad" placeholder="请选择">
<el-option <el-option v-for="item in yearOptions" :key="item.value" :label="item.label" :value="item.value">
v-for="item in yearOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option> </el-option>
</el-select> </el-select>
<el-date-picker <el-date-picker size="mini" v-if="year != 'quarter'" class="selectRoad" v-model="dateTime"
size="mini" style="width:140px;" :type="year" placeholder="请选择" />
v-if="year != 'quarter'" <el-quarter-picker size="mini" class="selectRoad" style="width:180px;" v-if="year == 'quarter'"
class="selectRoad" v-model="quarter" aria-placeholder="请选季度" />
v-model="dateTime"
style="width:140px;"
:type="year"
placeholder="请选择"
/>
<el-quarter-picker size="mini" class="selectRoad" style="width:180px;" v-if="year == 'quarter'" v-model="quarter" aria-placeholder="请选季度" />
<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 id="chart1" class="keep-ratio"></div> <div id="chart1" class="keep-ratio"></div>
</div> </div>
<div class="chartOrg"> <div class="chartOrg">
@ -87,7 +97,7 @@
</template> </template>
<script> <script>
import RadioGroup from '@screen/components/FormConfig/components/RadioGroup/index.vue';
import WgtTitle from '../../../../../widgets/title' import WgtTitle from '../../../../../widgets/title'
import ProgressBar from './progressBar.vue'; import ProgressBar from './progressBar.vue';
import * as echarts from "echarts"; import * as echarts from "echarts";
@ -115,37 +125,53 @@
export default { export default {
name: 'EventQuery', name: 'EventQuery',
components: { components: {
RadioGroup,
WgtTitle, WgtTitle,
ProgressBar, ProgressBar,
ElQuarterPicker ElQuarterPicker
}, },
data() { data() {
return { return {
yearOptions:[ direction: "1",
type: "1",
typeOptions: [
{
label: '年',
value: '4'
},
{
label: '月',
value: '2'
},
{
label: '日',
value: '1'
},
{
label: '季',
value: '3'
}
],
quarter: '1',
quarterOptions: [
{
label: "第一季度",
value: "1"
},
{ {
value: 'year', label: "第二季度",
label: '年' value: "2"
},{
value: 'month',
label: '月'
}, },
{ {
value: 'date', label: "第三季度",
label: '日' value: "3"
}, },
{ {
value: 'quarter', label: "第四季度",
label: '季' value: "4"
},], }
areaOptions: [{ ],
value: '济南', dateTime: "2024-01-01 00:00:00",
label: '济南'
}, {
value: '菏泽',
label: '菏泽'
}],
dateTime:"",
area: '济南',
dataList: [ dataList: [
{ {
title: "殷家林枢纽" title: "殷家林枢纽"
@ -283,7 +309,6 @@
</script> </script>
<style lang='scss' scoped> <style lang='scss' scoped>
.progressbar { .progressbar {
margin: 10px; margin: 10px;
@ -291,6 +316,7 @@
.congestion { .congestion {
width: 100%; width: 100%;
.body { .body {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
@ -384,8 +410,10 @@
white-space: nowrap; white-space: nowrap;
margin-right: 4px; margin-right: 4px;
} }
.inputZh { .inputZh {
width: 47px; width: 47px;
::v-deep { ::v-deep {
.el-input__inner { .el-input__inner {
background-color: #064258 !important; background-color: #064258 !important;
@ -393,13 +421,16 @@
} }
} }
} }
.inputJl { .inputJl {
margin-left: 5px; margin-left: 5px;
margin-right: 10px; margin-right: 10px;
} }
.selectRoad { .selectRoad {
width: 89px; width: 89px;
border: 1px solid #00B3CC; border: 1px solid #00B3CC;
::v-deep { ::v-deep {
.el-input__inner { .el-input__inner {
background-color: #064258 !important; background-color: #064258 !important;
@ -407,13 +438,16 @@
} }
} }
} }
.btnSearch { .btnSearch {
background: linear-gradient(180deg, #005C79 0%, #009BCC 100%); background: linear-gradient(180deg, #005C79 0%, #009BCC 100%);
margin-left: 10px; margin-left: 10px;
border-color: transparent; border-color: transparent;
} }
.btnReset { .btnReset {
background: linear-gradient(180deg, #005C79 0%, #009BCC 100%);; background: linear-gradient(180deg, #005C79 0%, #009BCC 100%);
;
border-color: transparent; border-color: transparent;
color: white; color: white;
} }
@ -421,10 +455,10 @@
} }
} }
.charts { .charts {
height: 100px; height: 100px;
width: 100%; width: 100%;
} }
</style> </style>

2
ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue

@ -621,7 +621,7 @@ export default {
____onDeleteBoardItem(index) { ____onDeleteBoardItem(index) {
if (index > -1) { if (index > -1) {
this.selectedBdMsg.splice(index, 1) this.selectedBdMsg.splice(index, 1)
this.$message.success('删除成功,发布后生效。') this.$message.success('删除成功。')
} }
}, },

118
ruoyi-ui/src/views/JiHeExpressway/pages/service/sensitive/components/AddNEditDialog.vue

@ -0,0 +1,118 @@
<template>
<Dialog v-model="modelVisible" :title="data ? '修改' : '新增'">
<div class='AddNEditDialog'>
<Form :value="formData" class="form" ref="FormConfigRef" :formList="formList" column="1" labelWidth="120px" />
</div>
<template #footer>
<Button style="background-color: rgba(0, 179, 204, .3);" @click.native="modelVisible = false, submitting = false">
取消
</Button>
<Button @click.native="handleSubmit" :loading="submitting">
确定
</Button>
</template>
</Dialog>
</template>
<script>
import Dialog from "@screen/components/Dialog/index.vue";
import Button from "@screen/components/Buttons/Button.vue"
import Form from '@screen/components/FormConfig';
import request from "@/utils/request";
import { Message } from "element-ui";
import { addEditFormList } from "./../data"
import { stakeMarkToArray, findPathIdByTreeId } from "@screen/utils/index.js"
export default {
name: 'AddNEditDialog',
components: {
Dialog,
Button,
Form
},
model: {
prop: 'visible',
event: "update:value"
},
props: {
visible: Boolean,
data: Object
},
data() {
return {
submitting: false,
formData: {},
formList: addEditFormList
}
},
computed: {
modelVisible: {
get() {
return this.visible
},
set(val) {
this.$emit('update:value', val)
}
}
},
watch: {
modelVisible: {
immediate: true,
handler(bool) {
if (!bool) return;
this.formData = !this.data ? {} : {
...this.data
}
}
}
},
methods: {
handleSubmit() {
this.$refs.FormConfigRef.validate()
.then((data) => {
this.submitting = true;
if (this.data) data.id = this.data.id;
request({
url: `/business/dcInfoBoardVocabulary`,
method: this.data ? 'PUT' : 'POST',
data
})
.then(result => {
if (result.code != 200) return Message.error(`提交失败!`);
Message.success(`提交成功!`);
this.$emit("afterSubmit");
this.modelVisible = false;
})
.catch((err) => {
console.log("%c [ err ]-110-「DeviceControlDialog.vue」", "font-size:15px; background:#547bf2; color:#98bfff;", err);
Message.error(`提交失败!`);
})
.finally(() => {
this.submitting = false;
})
})
}
},
}
</script>
<style lang='scss' scoped>
.AddNEditDialog {
width: 450px;
display: flex;
flex-direction: column;
gap: 15px;
.tips {
font-size: 12px;
}
}
</style>

17
ruoyi-ui/src/views/JiHeExpressway/pages/service/sensitive/data.js

@ -0,0 +1,17 @@
import { cloneDeep, merge } from "lodash";
import * as PresetFormItems from "@screen/pages/control/event/event/FormEvent/PresetFormItems.js";
export const searchFormList = [
{
label: "关键词:",
key: "word",
}
];
export const addEditFormList = [
{
label: "关键词:",
key: "word",
required: true,
}
];

205
ruoyi-ui/src/views/JiHeExpressway/pages/service/sensitive/index.vue

@ -0,0 +1,205 @@
<template>
<div class='sensitiveWord'>
<div class="filter">
<div>
<ButtonGradient @click.native="handleAddEdit(true)">
<template #prefix>
<img src="@screen/images/insert.svg" />
</template>
新增
</ButtonGradient>
<ButtonGradient @click.native="handleExport">
<template #prefix>
<img src="@screen/images/export.svg" />
</template>
导出
</ButtonGradient>
<ButtonGradient @click.native="getData">
<template #prefix>
<img src="@screen/images/refresh.svg" />
</template>
刷新
</ButtonGradient>
</div>
<InputSearch style="width: 402px;" :formList="searchFormList" :formConfigOptions="{ labelWidth: '90px' }"
@handleSearch="handleSearch" />
</div>
<div class="body">
<Empty v-if="!data.length && !isFirst" class="no-data" style="position: absolute">暂无数据</Empty>
<template v-else>
<div class="cardBox" v-for="(item, index) in data" :key="index">
<Card :buttonIcon="null" :keyMap="keyMap" :cardData="item" class="card"
buttonText="详情">
<template #form-word="{ data }">
<div class="keyword">
{{ data.word }}
</div>
</template>
<template #button>
<Button @click.native="() => handleAddEdit(true, item)">
修改
</Button>
<Button style="background-color: #FF5F5F;" @click.native="handleDelete(item)">
删除
</Button>
</template>
</Card>
</div>
</template>
</div>
<AddNEditDialog v-model="isShowDialog" :data="dialogData" @afterSubmit = "getData" />;
</div>
</template>
<script>
import Card from "@screen/components/Card1/index.vue"
import AddNEditDialog from "./components/AddNEditDialog.vue"
import InputSearch from '@screen/components/InputSearch/index.vue';
import ButtonGradient from '@screen/components/Buttons/ButtonGradient.vue';
import Button from '@screen/components/Buttons/Button.vue';
import { searchFormList } from "./data";
import request from "@/utils/request";
import { setLoading } from "@screen/utils/index.js"
import { delay, exportFile, confirm } from "@screen/utils/common";
import { Message } from "element-ui";
//
export default {
name: 'sensitiveWord',
components: {
Card,
ButtonGradient,
InputSearch,
AddNEditDialog,
Button
},
data() {
return {
searchFormList,
keyMap: [
{
key: "word",
label: "关键词"
},
{
key: "id",
label: "id"
},
{
key: "createTime",
label: "创建时间"
}
],
data: [],
dialogData: null,
isShowDialog: false,
isFirst: true
}
},
created() {
this.getData();
// this.getSearchOptions();
},
methods: {
getSearchData() {
let result = {
...this.searchData,
};
if(!result.word){
result = {};
}
return result
},
async handleDelete(data) {
await confirm({ message: "是否要删除该辖段信息?" });
request({
url: `/business/dcInfoBoardVocabulary/${data.id}`,
method: "DELETE",
data: {}
})
.then(result => {
if (result.code != 200) return Message.error("删除失败");
Message.success("删除成功")
this.getData();
})
.catch(() => {
Message.error("删除失败")
})
},
handleAddEdit(bool, data) {
this.isShowDialog = bool;
this.dialogData = data;
},
handleExport() {
exportFile({
url: "/business/dcInfoBoardVocabulary/export",
filename: "管辖路段",
data: this.getSearchData()
});
},
handleSearch(data) {
this.searchData = data;
this.getData();
},
async getData() {
const closeLoading = setLoading();
await delay(150);
request({
url: `/business/dcInfoBoardVocabulary/list`,
method: "get",
params: this.getSearchData()
}).then(result => {
if (result.code != 200) return;
this.data = result.rows;
// this.data = [
// ...result.rows,...result.rows, ...result.rows, ...result.rows, ...result.rows, ...result.rows, ...result.rows, ...result.rows, ...result.rows, ...result.rows, ...result.rows
// , ...result.rows, ...result.rows, ...result.rows, ...result.rows, ...result.rows, ...result.rows, ...result.rows, ...result.rows, ...result.rows, ...result.rows
// ];
Array.from(result.rows);
}).finally(() => {
this.isFirst = false;
closeLoading();
})
}
}
}
</script>
<style lang='scss' scoped>
.sensitiveWord {
padding: 20px;
display: flex; flex-direction: column;
.filter {
height: 60px;
display: flex;
justify-content: space-between;
align-items: center;
div {
display: flex;
gap: 6px;
}
}
.body {
height: 0; flex: 1; overflow-y: scroll;
display: flex; flex-wrap: wrap; align-content: flex-start;
.cardBox{
flex-basis: percentage(1/7); width: 0; padding-right: 10px; padding-bottom: 10px;
}
.keyword {
font-size: 14px;
font-weight: bold;
color: #00B3CC;
}
}
}
</style>

8
ruoyi-ui/src/views/JiHeExpressway/scss/el-reset.scss

@ -167,6 +167,14 @@ div.el-date-editor {
div.el-popover:has(> .el-date-picker), div.el-popover:has(> .el-date-picker),
div.el-picker-panel.el-date-picker.el-popper, div.el-picker-panel.el-date-picker.el-popper,
div.el-picker-panel.el-date-range-picker.el-popper { div.el-picker-panel.el-date-range-picker.el-popper {
.disabled{
div{
span{
color: #5E8998!important;
}background: #1B586D;
}
}
.next-month, .next-month,
.prev-month { .prev-month {
span { span {

Loading…
Cancel
Save