-
-
+
+
-
+
-
-
+
+
-
-
+
+
@@ -105,6 +63,13 @@ import Button from "@screen/components/Buttons/Button.vue";
import request from "@/utils/request";
import { Message } from "element-ui";
var moment = require("moment");
+import {
+ getProcessNode,
+ getProcessList,
+ postProcess,
+ postCompleteEvent,
+ postNoSkipClear,
+} from "@/api/commandDispatch";
export default {
name: "EventDetail",
@@ -176,12 +141,7 @@ export default {
}
let directionFlg = true;
-
- request({
- url: `/system/process/list`,
- method: "get",
- params: { eventId: this.formData.id },
- }).then((rows) => {
+ getProcessList(this.formData.id).then((rows) => {
console.log('rows', rows)
// if (result.code != 200) return Message.error(result?.msg);
// const rows = result.rows;
@@ -189,7 +149,7 @@ export default {
this.timeLine2List = [];
this.formData?.processConfigList.forEach((it) => {
- const process = rows.find((row) => it.nodeNode == row.processId);
+ const process = rows.find((row) => it.nodeNode == row.processId && row.processType === 1);
if (process) {
this.timeLine1List.push({
@@ -197,15 +157,6 @@ export default {
label: it.processNode,
isActive: true,
});
- this.timeLine2List.push({
- time: moment(process.operationTime || new Date()).format(
- "yyyy-MM-DD HH:mm:ss"
- ),
- name: process.operator,
- desc: process.context,
- posts: "",
- direction: directionFlg ? "left" : "right",
- });
directionFlg = !directionFlg;
} else {
this.timeLine1List.push({
@@ -215,6 +166,20 @@ export default {
});
}
});
+
+ rows.forEach(item =>{
+ this.timeLine2List.push({
+ time: moment(item.operationTime || new Date()).format(
+ "yyyy-MM-DD HH:mm:ss"
+ ),
+ name: item.operatorName,
+ desc: item.context,
+ source: item.source,
+ posts: "",
+ direction: item.source == 1 ? "right" : "left",
+ });
+ })
+
});
},
getProcessNode() {
@@ -321,13 +286,25 @@ export default {
if (result.code != 200) return Message.error(result?.msg);
else Message.success("成功!");
+ this.modelVisible = false;
+ this.$emit("queryData", true);
+ });
+ } else if (this.activeName == '0') {
+ request({
+ url: `/dc/system/event/dcEventState/${this.formData.id}/1`,
+ method: "put",
+ data: reData,
+ }).then((result) => {
+ if (result.code != 200) return Message.error(result?.msg);
+ else Message.success("成功!");
+
this.modelVisible = false;
this.$emit("queryData", true);
});
} else {
let eventId = this.formData.id;
this.modelVisible = false;
-
+
setTimeout(() => {
this.$router.push(`/control/event/commandDispatch?eventId=${eventId}`);
// this.$router.push(`/control/event/commandDispatch`);
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue
index 0a21499e..1a452783 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/board/index.vue
@@ -813,7 +813,6 @@ export default {
await getDeviceRealtimeProperty(deviceId, "3A", { async: false })
.then((res) => {
if ("3A" in res.data) {
- console.log("回读消息------------------------");
console.log(res.data);
var contents = res.data["3A"].content;
for (let i = 0; i < contents.length; i++) {
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/channelAnalytics/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/channelAnalytics/assets/charts.js
index 08d8e06b..29e64940 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/channelAnalytics/assets/charts.js
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/channelAnalytics/assets/charts.js
@@ -41,7 +41,7 @@ var options = {
color: ["#68F4DD", "#FFDD69", "#3CC3F0", "#5C8CFE", "#51D5AD"],
title: [
{
- text: "999",
+ text: "0",
// top: "27%",
top: "33%",
textAlign: "center",
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/channelAnalytics/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/channelAnalytics/index.vue
index eaaeddb6..05fe9162 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/channelAnalytics/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/channelAnalytics/index.vue
@@ -26,6 +26,7 @@
import WgtTitle from "@screen/pages/perception/widgets/title";
import * as echarts from "echarts";
import chartsStatistics from "./assets/charts";
+import request from "@/utils/request";
export default {
name: "RailWayDay",
components: {
@@ -33,43 +34,80 @@ export default {
},
data() {
return {
+ enum_channels: [
+ '手机短信',
+ '微信公众号',
+ '微博',
+ '情报板',
+ '服务网站',
+ '微信小程序',
+ '语音广播'
+ ],
dataList: [],
};
},
created() {},
- methods: {},
+ methods: {
+ bindStatisticsPublishManage(){
+ request({
+ url: `/business/manage/statisticsPublishManage`,
+ method: "post",
+ data: {},
+ })
+ .then((result) => {
+ if (result.code != 200) return;
+
+ let total = 0;
+ result.data.forEach((e,i) => {
+ total += e.number;
+ })
+ let legendData = [];
+ let data1=[],data2=[];
+ chartsStatistics.title[0].text = total.toString();
+ let _dataList = [];
+ result.data.forEach((e,i) => {
+ const _name = this.enum_channels[i];
+
+
+ if(e.number > 0){
+ _dataList.push({
+ name: _name,
+ value: e.number,
+ percert: total?(e.number/total*100).toFixed(2):0.00
+ })
+ legendData.push(_name)
+ data1.push({
+ value: e.number,
+ name: _name,
+ })
+ data2.push({
+ value: e.number,
+ name: _name,
+ itemStyle: {
+ opacity: 0.4,
+ },
+ })
+ }
+ });
+ chartsStatistics.data = legendData;
+ chartsStatistics.series[9].data = data1;
+ chartsStatistics.series[10].data = data2;
+ var myChart = echarts.init(document.getElementById("channelAnalytics"));
+ myChart.setOption(chartsStatistics);
+ const list = _dataList.reduce((acc, curr, index) => {
+ if (index % 2 === 0) acc.push([]);
+ acc[Math.floor(index / 2)].push(curr);
+ return acc;
+ }, []);
+ this.dataList = list;
+ this.dataList = list;
+ })
+ },
+ },
+
mounted() {
- setTimeout(() => {
- this.$nextTick(() => {
- var myChart = echarts.init(document.getElementById("channelAnalytics"));
- myChart.setOption(chartsStatistics);
- let data = chartsStatistics.series[9].data;
- let total = null;
- for (let i = 0; i < data.length; i++) {
- if (data[i].name != "") {
- total += data[i].value;
- }
- }
-
- for (let i = 0; i < data.length; i++) {
- if (data[i].name != "") {
- this.dataList.push({
- name: data[i].name,
- value: data[i].value,
- percert:
- total == 0 ? 0 : ((data[i].value / total) * 100).toFixed(2),
- });
- }
- }
- const list = this.dataList.reduce((acc, curr, index) => {
- if (index % 2 === 0) acc.push([]);
- acc[Math.floor(index / 2)].push(curr);
- return acc;
- }, []);
- this.dataList = list;
- });
- });
+ this.bindStatisticsPublishManage();
},
};
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/eventTypeAnalysis/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/eventTypeAnalysis/assets/charts.js
index a399fadf..c9c3f9a9 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/eventTypeAnalysis/assets/charts.js
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/eventTypeAnalysis/assets/charts.js
@@ -24,7 +24,6 @@ function getCirlPoint(x0, y0, r, angle) {
// var res = this.evaluatedCountList;
var data1 = [],
data2 = [],
- data3 = [],
legendData = [];
var curIndex = 0;
var index = 0;
@@ -41,14 +40,6 @@ for (var i = 0; i < res.length; i++) {
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);
}
// let decoDelta = 48;
@@ -62,8 +53,10 @@ var options = {
"#FEE58F",
"#8DFEBF",
"#66F4DC",
+ "#58C3FF",
"#33E27D",
"#5D8CFE",
+ "#FDA474",
],
title: [
{
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/eventTypeAnalysis/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/eventTypeAnalysis/index.vue
index cc809ed3..d340bf97 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/eventTypeAnalysis/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/eventTypeAnalysis/index.vue
@@ -26,50 +26,89 @@
import WgtTitle from "@screen/pages/perception/widgets/title";
import * as echarts from "echarts";
import chartsStatistics from "./assets/charts";
+import request from "@/utils/request";
export default {
name: "RailWayDay",
components: {
WgtTitle,
},
data() {
- return { dataList: [] };
+ return {
+ enum_channels: [
+ '交通事故',
+ '车辆故障',
+ '交通管制',
+ '交通拥堵',
+ '非法上路',
+ '路障清除',
+ '施工建设',
+ '服务区异常',
+ '设施设备隐患',
+ '异常天气',
+ '其他事件'
+ ],
+ dataList: []
+ };
},
created() {},
- methods: {},
+ methods: {
+ bindEventTypePublishManage() {
+ request({
+ url: `/business/manage/eventTypePublishManage`,
+ method: "post",
+ data: {},
+ })
+ .then((result) => {
+ if (result.code != 200) return;
+ let total = 0;
+ result.data.forEach((e,i) => {
+ total += e.number;
+ })
+ let legendData = [];
+ let data1=[],data2=[];
+ chartsStatistics.title[0].text = total.toString();
+ let _dataList = [];
+ result.data.forEach((e,i) => {
+ const _name = this.enum_channels[i];
+
+ if(e.number > 0){
+ _dataList.push({
+ name: _name,
+ value: e.number,
+ percert: total?(e.number/total*100).toFixed(2):0.00
+ })
+ legendData.push(_name)
+ data1.push({
+ value: e.number,
+ name: _name,
+ })
+ data2.push({
+ value: e.number,
+ name: _name,
+ itemStyle: {
+ opacity: 0.4,
+ },
+ })
+ }
+ });
+ chartsStatistics.data = legendData;
+ chartsStatistics.series[9].data = data1;
+ chartsStatistics.series[10].data = data2;
+ var myChart = echarts.init(document.getElementById("eventTypeAnalysis"));
+ myChart.setOption(chartsStatistics);
+ const list = _dataList.reduce((acc, curr, index) => {
+ if (index % 2 === 0) acc.push([]);
+ acc[Math.floor(index / 2)].push(curr);
+ return acc;
+ }, []);
+ this.dataList = list;
+ this.dataList = list;
+ })
+ },
+ },
mounted() {
- setTimeout(() => {
- this.$nextTick(() => {
- var myChart = echarts.init(
- document.getElementById("eventTypeAnalysis")
- );
- myChart.setOption(chartsStatistics);
- let data = chartsStatistics.series[9].data;
- let total = null;
- for (let i = 0; i < data.length; i++) {
- if (data[i].name != "") {
- total += data[i].value;
- }
- }
-
- for (let i = 0; i < data.length; i++) {
- if (data[i].name != "") {
- this.dataList.push({
- name: data[i].name,
- value: data[i].value,
- percert:
- total == 0 ? 0 : ((data[i].value / total) * 100).toFixed(2),
- });
- }
- }
- const list = this.dataList.reduce((acc, curr, index) => {
- if (index % 2 === 0) acc.push([]);
- acc[Math.floor(index / 2)].push(curr);
- return acc;
- }, []);
- this.dataList = list;
- });
- });
+ this.bindEventTypePublishManage();
},
};
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThrough/assets/charts3.js b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThrough/assets/charts3.js
index 9676e228..cd2e240c 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThrough/assets/charts3.js
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThrough/assets/charts3.js
@@ -1,51 +1,80 @@
import * as echarts from "echarts";
+const event_type = [
+ '交通事故',
+ '车辆故障',
+ '交通管制',
+ '交通拥堵',
+ '非法上路',
+ '路障清除',
+ '施工建设',
+ '服务区异常',
+ '设施设备隐患',
+ '异常天气',
+ '其他事件'
+]
+const event_channel = [
+ '手机短信',
+ '微信公众号',
+ '微博',
+ '情报板',
+ '服务网站',
+ '微信小程序',
+ '语音广播'
+]
-let xData = [
- "1月",
- "2月",
- "3月",
- "4月",
- "5月",
- "6月",
- "7月",
- "8月",
- "9月",
- "10月",
- "11月",
- "12月",
-];
-let data1 = [200, 530, 920, 400, 600, 700, 300, 800, 900, 120, 570, 800];
-let data2 = [120, 340, 750, 600, 400, 700, 900, 200, 540, 320, 370, 500];
-let data3 = [200, 530, 920, 400, 600, 700, 300, 800, 900, 120, 570, 800];
-let options = {
+const series = event_channel.map((name, sid) => {
+ return {
+ name,
+ type: 'bar',
+ stack: 'total',
+ barWidth: '60%',
+ label: {
+ show: true,
+ formatter: (params) => {
+ if(params.value === 0){
+ return ''
+ } else {
+ return Math.round(params.value * 1000) / 10 + '%'
+ }
+
+ }
+ },
+ data: []
+ };
+});
+var options = {
+ legend: {
+ icon: "circle",
+ itemHeight: 8,
+ itemWidth: 8,
+ top: "5%",
+ right: "10%",
+ textStyle: {
+ color: "#fff",
+ },
+ },
tooltip: {
show: true,
trigger: "axis",
valueFormatter: function (value) {
- return value + " 起";
+ return Math.round(value * 1000) / 10 + "%";
},
},
- grid: {
+ grid:{
left: "0",
right: "0",
top: "80px",
- bottom: "25px",
+ bottom: "0px",
containLabel: true,
},
+ yAxis: {
+ type: 'value'
+ },
+
+
xAxis: {
- data: xData,
- show: true,
- axisTick: {
- show: false,
- lineStyle: {
- color: "#fff",
- },
- },
- axisLine: {
- lineStyle: {
- color: "#2CC9EC",
- },
- },
+ type: 'category',
+ data: event_type,
axisLabel: {
interval: 0,
align: "center",
@@ -55,251 +84,30 @@ let options = {
fontSize: 10,
color: "#fff",
},
+ formatter:function(value)
+ {
+ var ret = "";//拼接加\n返回的类目项
+ var maxLength = 2;//每项显示文字个数
+ var valLength = value.length;//X轴类目项的文字个数
+ var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
+ if (rowN > 1)//如果类目项的文字大于3,
+ {
+ for (var i = 0; i < rowN; i++) {
+ var temp = "";//每次截取的字符串
+ var start = i * maxLength;//开始截取的位置
+ var end = start + maxLength;//结束截取的位置
+ //这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
+ temp = value.substring(start, end) + "\n";
+ ret += temp; //凭借最终的字符串
+ }
+ return ret;
+ }
+ else {
+ return value;
+ }
+ }
},
},
- yAxis: [
- {
- name: "(起)",
- nameTextStyle: {
- color: "#fff",
- fontSize: 10,
- align: "right",
- verticalAlign: "center",
- },
- axisLine: {
- lineStyle: {
- color: "#1D7B93",
- },
- },
- splitLine: {
- show: true,
- lineStyle: {
- color: "rgba(28, 130, 197, .3)",
- type: "solid",
- },
- },
- axisLabel: {
- color: "#fff",
- textStyle: {
- fontSize: 10,
- },
- },
- axisTick: {
- show: false,
- },
- },
- ],
- legend: {
- // orient: 'vertical',
- icon: "circle",
- itemHeight: 8,
- itemWidth: 8,
- top: "5%",
- right: "10%",
- textStyle: {
- color: "#fff",
- },
-
- data: [
- {
- name: "审核通过",
- itemStyle: {
- color: "#08BAF4",
- },
- },
- {
- name: "待审核",
- itemStyle: {
- color: "#51BFA4",
- },
- },
- {
- name: "审核不通过",
- itemStyle: {
- color: "#E2BA74",
- },
- },
- ],
- },
- series: [
- {
- name: "审核通过",
- type: "bar",
- barWidth: "10px",
- selectedMode: false,
- select: {
- itemStyle: {
- opacity: 1,
- color: function (params) {
- var a = params;
-
- return new echarts.graphic.LinearGradient(
- 0,
- 0,
- 0,
- 1,
- [
- {
- offset: 0,
- color: "#1AC5FD", // 0% 处的颜色
- },
- {
- offset: 1,
- color: "#08BAF4", // 100% 处的颜色
- },
- ],
- false
- );
- },
- },
- },
- itemStyle: {
- // lenged文本
- opacity: 0.9,
- color: function (params) {
- var a = params.name;
- // console.log("==========a=============",a);
- return new echarts.graphic.LinearGradient(
- 0,
- 0,
- 0,
- 1,
- [
- {
- offset: 0,
- color: "#1AC5FD", // 0% 处的颜色
- },
- {
- offset: 1,
- color: "#003B4E", // 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;
-
- return new echarts.graphic.LinearGradient(
- 0,
- 0,
- 0,
- 1,
- [
- {
- offset: 0,
- color: "#00E4BB53", // 0% 处的颜色
- },
- {
- offset: 1,
- color: "#51BFA4", // 100% 处的颜色
- },
- ],
- false
- );
- },
- },
- },
- itemStyle: {
- // lenged文本
- opacity: 0.9,
- color: function (params) {
- var a = params.name;
- // console.log("==========a=============",a);
- return new echarts.graphic.LinearGradient(
- 0,
- 0,
- 0,
- 1,
- [
- {
- offset: 0,
- color: "#00E4BB", // 0% 处的颜色
- },
- {
- offset: 1,
- color: "#00E4BB00", // 100% 处的颜色
- },
- ],
- false
- );
- },
- },
- data: data1,
- },
-
- {
- name: "审核不通过",
- type: "bar",
- barWidth: "10px",
- selectedMode: false,
- select: {
- itemStyle: {
- opacity: 1,
- color: function (params) {
- var a = params;
-
- return new echarts.graphic.LinearGradient(
- 0,
- 0,
- 0,
- 1,
- [
- {
- offset: 0,
- color: "#1AC5FD", // 0% 处的颜色
- },
- {
- offset: 1,
- color: "#E2BA74", // 100% 处的颜色
- },
- ],
- false
- );
- },
- },
- },
- itemStyle: {
- // lenged文本
- opacity: 0.9,
- color: function (params) {
- var a = params.name;
- // console.log("==========a=============",a);
- return new echarts.graphic.LinearGradient(
- 0,
- 0,
- 0,
- 1,
- [
- {
- offset: 0,
- color: "#FCBE39", // 0% 处的颜色
- },
- {
- offset: 1,
- color: "#FCBE3900", // 100% 处的颜色
- },
- ],
- false
- );
- },
- },
- data: data2,
- },
- ],
+ series
};
-
-export default options;
+export default options;
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThrough/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThrough/index.vue
index a2f5215d..8fa4f6ef 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThrough/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThrough/index.vue
@@ -1,6 +1,6 @@
-
+
{
- this.$nextTick(() => {
- var myChart = echarts.init(document.getElementById("nucleusThrough"));
+ methods: {
+ init(){
+ this.dateTime = new Date();
+ this.bindEventTypePublishManageMonth();
+ },
+ bindEventTypePublishManageMonth(){
+ request({
+ url: `/business/manage/eventTypePublishManageMonth`,
+ method: "post",
+ data: {publishTime:moment(this.dateTime).format('YYYY-MM-DD HH:mm:ss')},
+ })
+ .then((result) => {
+ if (result.code != 200) return;
+ const total = [0,0,0,0,0,0,0];
+ result.data.forEach(e => {
+ total[e.publishChannels-1] = total[e.publishChannels-1] + e.number
+ });
+ const data = [[],[],[],[],[],[],[]]
+ result.data.forEach(e => {
+ data[e.publishChannels-1].push(total[e.publishChannels-1] ? e.number/total[e.publishChannels-1]:0)
+ });
+ chartsStatistics.series.forEach((e,i) => {
+ e.data = data[i]
+ });
+ var myChart = echarts.init(document.getElementById("nucleusThrough"));
myChart.setOption(chartsStatistics);
- });
- });
+ // let sdata = [[],[],[],[],[],[],[]]
+ // for(let i of result.data){
+ // sdata[i.publishChannels-1].push(i.number)
+ // }
+ // chartsStatistics.series.forEach((e,i) => {
+ // e.data = sdata[i]
+ // });
+ // var myChart = echarts.init(document.getElementById("postTrendsMonth"));
+ // myChart.setOption(chartsStatistics);
+ })
+ },
+ },
+ mounted() {
+
+ this.init();
+ // setTimeout(() => {
+ // this.$nextTick(() => {
+ // var myChart = echarts.init(document.getElementById("nucleusThrough"));
+ // myChart.setOption(chartsStatistics);
+ // });
+ // });
},
};
@@ -147,7 +187,7 @@ export default {
}
.charts {
- height: 300px;
+ height: 100%;
width: 100%;
}
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThroughLine/assets/charts3.js b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThroughLine/assets/charts3.js
new file mode 100644
index 00000000..9676e228
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThroughLine/assets/charts3.js
@@ -0,0 +1,305 @@
+import * as echarts from "echarts";
+
+let xData = [
+ "1月",
+ "2月",
+ "3月",
+ "4月",
+ "5月",
+ "6月",
+ "7月",
+ "8月",
+ "9月",
+ "10月",
+ "11月",
+ "12月",
+];
+let data1 = [200, 530, 920, 400, 600, 700, 300, 800, 900, 120, 570, 800];
+let data2 = [120, 340, 750, 600, 400, 700, 900, 200, 540, 320, 370, 500];
+let data3 = [200, 530, 920, 400, 600, 700, 300, 800, 900, 120, 570, 800];
+let options = {
+ tooltip: {
+ show: true,
+ trigger: "axis",
+ valueFormatter: function (value) {
+ return value + " 起";
+ },
+ },
+ grid: {
+ left: "0",
+ right: "0",
+ top: "80px",
+ bottom: "25px",
+ containLabel: true,
+ },
+ xAxis: {
+ data: xData,
+ show: true,
+ axisTick: {
+ show: false,
+ lineStyle: {
+ color: "#fff",
+ },
+ },
+ axisLine: {
+ lineStyle: {
+ color: "#2CC9EC",
+ },
+ },
+ axisLabel: {
+ interval: 0,
+ align: "center",
+ rotate: "1",
+ margin: "20",
+ textStyle: {
+ fontSize: 10,
+ color: "#fff",
+ },
+ },
+ },
+ yAxis: [
+ {
+ name: "(起)",
+ nameTextStyle: {
+ color: "#fff",
+ fontSize: 10,
+ align: "right",
+ verticalAlign: "center",
+ },
+ axisLine: {
+ lineStyle: {
+ color: "#1D7B93",
+ },
+ },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ color: "rgba(28, 130, 197, .3)",
+ type: "solid",
+ },
+ },
+ axisLabel: {
+ color: "#fff",
+ textStyle: {
+ fontSize: 10,
+ },
+ },
+ axisTick: {
+ show: false,
+ },
+ },
+ ],
+ legend: {
+ // orient: 'vertical',
+ icon: "circle",
+ itemHeight: 8,
+ itemWidth: 8,
+ top: "5%",
+ right: "10%",
+ textStyle: {
+ color: "#fff",
+ },
+
+ data: [
+ {
+ name: "审核通过",
+ itemStyle: {
+ color: "#08BAF4",
+ },
+ },
+ {
+ name: "待审核",
+ itemStyle: {
+ color: "#51BFA4",
+ },
+ },
+ {
+ name: "审核不通过",
+ itemStyle: {
+ color: "#E2BA74",
+ },
+ },
+ ],
+ },
+ series: [
+ {
+ name: "审核通过",
+ type: "bar",
+ barWidth: "10px",
+ selectedMode: false,
+ select: {
+ itemStyle: {
+ opacity: 1,
+ color: function (params) {
+ var a = params;
+
+ return new echarts.graphic.LinearGradient(
+ 0,
+ 0,
+ 0,
+ 1,
+ [
+ {
+ offset: 0,
+ color: "#1AC5FD", // 0% 处的颜色
+ },
+ {
+ offset: 1,
+ color: "#08BAF4", // 100% 处的颜色
+ },
+ ],
+ false
+ );
+ },
+ },
+ },
+ itemStyle: {
+ // lenged文本
+ opacity: 0.9,
+ color: function (params) {
+ var a = params.name;
+ // console.log("==========a=============",a);
+ return new echarts.graphic.LinearGradient(
+ 0,
+ 0,
+ 0,
+ 1,
+ [
+ {
+ offset: 0,
+ color: "#1AC5FD", // 0% 处的颜色
+ },
+ {
+ offset: 1,
+ color: "#003B4E", // 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;
+
+ return new echarts.graphic.LinearGradient(
+ 0,
+ 0,
+ 0,
+ 1,
+ [
+ {
+ offset: 0,
+ color: "#00E4BB53", // 0% 处的颜色
+ },
+ {
+ offset: 1,
+ color: "#51BFA4", // 100% 处的颜色
+ },
+ ],
+ false
+ );
+ },
+ },
+ },
+ itemStyle: {
+ // lenged文本
+ opacity: 0.9,
+ color: function (params) {
+ var a = params.name;
+ // console.log("==========a=============",a);
+ return new echarts.graphic.LinearGradient(
+ 0,
+ 0,
+ 0,
+ 1,
+ [
+ {
+ offset: 0,
+ color: "#00E4BB", // 0% 处的颜色
+ },
+ {
+ offset: 1,
+ color: "#00E4BB00", // 100% 处的颜色
+ },
+ ],
+ false
+ );
+ },
+ },
+ data: data1,
+ },
+
+ {
+ name: "审核不通过",
+ type: "bar",
+ barWidth: "10px",
+ selectedMode: false,
+ select: {
+ itemStyle: {
+ opacity: 1,
+ color: function (params) {
+ var a = params;
+
+ return new echarts.graphic.LinearGradient(
+ 0,
+ 0,
+ 0,
+ 1,
+ [
+ {
+ offset: 0,
+ color: "#1AC5FD", // 0% 处的颜色
+ },
+ {
+ offset: 1,
+ color: "#E2BA74", // 100% 处的颜色
+ },
+ ],
+ false
+ );
+ },
+ },
+ },
+ itemStyle: {
+ // lenged文本
+ opacity: 0.9,
+ color: function (params) {
+ var a = params.name;
+ // console.log("==========a=============",a);
+ return new echarts.graphic.LinearGradient(
+ 0,
+ 0,
+ 0,
+ 1,
+ [
+ {
+ offset: 0,
+ color: "#FCBE39", // 0% 处的颜色
+ },
+ {
+ offset: 1,
+ color: "#FCBE3900", // 100% 处的颜色
+ },
+ ],
+ false
+ );
+ },
+ },
+ data: data2,
+ },
+ ],
+};
+
+export default options;
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThroughLine/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThroughLine/index.vue
new file mode 100644
index 00000000..a2f5215d
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/nucleusThroughLine/index.vue
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsDay/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsDay/assets/charts.js
index e33b1f3d..0f33f352 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsDay/assets/charts.js
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsDay/assets/charts.js
@@ -1,17 +1,29 @@
/* 数据 */
let nameList = [
"00:00",
+ "01:00",
"02:00",
+ "03:00",
"04:00",
+ "05:00",
"06:00",
+ "07:00",
"08:00",
+ "09:00",
"10:00",
+ "11:00",
"12:00",
+ "13:00",
"14:00",
+ "15:00",
"16:00",
+ "17:00",
"18:00",
+ "19:00",
"20:00",
+ "21:00",
"22:00",
+ "23:00",
]; // 类别
let valueList = [
800, 520, 650, 950, 420, 600, 450, 720, 303, 503, 203, 703, 903,
@@ -133,7 +145,7 @@ var options = {
],
series: [
{
- name: "情报板发布",
+ name: "手机短信",
type: "line",
symbol: "circle",
symbolSize: 0,
@@ -148,26 +160,23 @@ var options = {
x2: 0,
y2: 1,
colorStops: [
- { offset: 0.389, color: "#32BB8A90" },
- { offset: 1, color: "#32BB8A00" },
+ { offset: 0.389, color: "#51BFA490" },
+ { offset: 1, color: "#51BFA400" },
],
global: false,
},
},
// yAxisIndex: 1, // 与第二个 y 轴关联
itemStyle: {
- color: "#32BB8A",
+ color: "#51BFA4",
},
lineStyle: {
width: 2,
},
-
- data: [
- 1000, 800, 520, 600, 900, 700, 700, 1000, 800, 520, 600, 900, 700, 700,
- ], // 折线图的数据
+ data: [],
},
{
- name: "服务网站",
+ name: "微信公众号",
type: "line",
symbol: "circle",
symbolSize: 0,
@@ -196,12 +205,10 @@ var options = {
global: false,
},
},
- data: [
- 600, 700, 900, 400, 500, 800, 600, 600, 700, 900, 400, 500, 800, 600,
- ], // 折线图的数据
+ data: [],
},
{
- name: "微信发布",
+ name: "微博",
type: "line",
symbol: "circle",
symbolSize: 0,
@@ -229,20 +236,76 @@ var options = {
lineStyle: {
width: 2,
},
- data: [
- 850, 810, 712, 580, 480, 480, 780, 850, 810, 712, 580, 480, 480, 780,
- ], // 折线图的数据
+ data: [],
},
{
- name: "微博发布",
+ name: "情报板",
type: "line",
symbol: "circle",
symbolSize: 0,
// yAxisIndex: 1, // 与第二个 y 轴关联
itemStyle: {
- color: "#51BFA4",
+ color: "#FB6D07",
+ },
+ smooth: true,
+ areaStyle: {
+ width: 4,
+ opacity: 0.25,
+ color: {
+ type: "linear",
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [
+ { offset: 0.389, color: "#FB6D0799" },
+ { offset: 1, color: "#FB6D0700" },
+ ],
+ global: false,
+ },
+ },
+ lineStyle: {
+ width: 2,
+ },
+ data: [],
+ },
+ {
+ name: "服务网站",
+ type: "line",
+ symbol: "circle",
+ symbolSize: 0,
+ // yAxisIndex: 1, // 与第二个 y 轴关联
+ itemStyle: {
+ color: "#07DEFB",
},
smooth: true,
+ areaStyle: {
+ width: 4,
+ opacity: 0.25,
+ color: {
+ type: "linear",
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [
+ { offset: 0.389, color: "#07DEFB90" },
+ { offset: 1, color: "#07DEFB00" },
+ ],
+ global: false,
+ },
+ },
+ lineStyle: {
+ width: 2,
+ },
+ data: [],
+ },
+ {
+ name: "微信小程序",
+ type: "line",
+ symbol: "circle",
+ symbolSize: 0,
+ smooth: true,
areaStyle: {
width: 4,
opacity: 0.25,
@@ -259,22 +322,28 @@ var options = {
global: false,
},
},
+ // yAxisIndex: 1, // 与第二个 y 轴关联
+ itemStyle: {
+ color: "#51BFA4",
+ },
lineStyle: {
width: 2,
},
- data: [
- 850, 810, 712, 580, 480, 480, 780, 850, 810, 712, 580, 480, 480, 780,
- ], // 折线图的数据
+ data: [],
},
{
- name: "短信发布",
+ name: "语音广播",
type: "line",
symbol: "circle",
symbolSize: 0,
+
// yAxisIndex: 1, // 与第二个 y 轴关联
itemStyle: {
color: "#08BAF4",
},
+ lineStyle: {
+ width: 2,
+ },
smooth: true,
areaStyle: {
width: 4,
@@ -292,12 +361,7 @@ var options = {
global: false,
},
},
- lineStyle: {
- width: 2,
- },
- data: [
- 850, 410, 712, 680, 50, 280, 480, 850, 810, 712, 580, 480, 480, 780,
- ], // 折线图的数据
+ data: [],
},
],
};
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsDay/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsDay/index.vue
index 788cd6ed..2f4af1bc 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsDay/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsDay/index.vue
@@ -11,6 +11,7 @@
import WgtTitle from "@screen/pages/perception/widgets/title";
import * as echarts from "echarts";
import chartsStatistics from "./assets/charts";
+import request from "@/utils/request";
export default {
name: 'RailWayDay',
components: {
@@ -26,15 +27,35 @@ export default {
},
methods: {
-
+ bindTrendsPublishManage(){
+ request({
+ url: `/business/manage/trendsPublishManage`,
+ method: "post",
+ data: {},
+ })
+ .then((result) => {
+ if (result.code != 200) return;
+ // console.log(result,'-----------------')
+ let sdata = [[],[],[],[],[],[],[]]
+ for(let i of result.data){
+ sdata[i.publishChannels-1].push(i.number)
+ }
+ chartsStatistics.series.forEach((e,i) => {
+ e.data = sdata[i]
+ });
+ var myChart = echarts.init(document.getElementById("postTrendsDay"));
+ myChart.setOption(chartsStatistics);
+ })
+ },
},
mounted() {
- setTimeout(() => {
- this.$nextTick(() => {
- var myChart = echarts.init(document.getElementById('postTrendsDay'));
- myChart.setOption(chartsStatistics);
- });
- });
+ this.bindTrendsPublishManage();
+ // setTimeout(() => {
+ // this.$nextTick(() => {
+ // var myChart = echarts.init(document.getElementById('postTrendsDay'));
+ // myChart.setOption(chartsStatistics);
+ // });
+ // });
},
}
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsMonth/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsMonth/assets/charts.js
index 1b52e691..090f6794 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsMonth/assets/charts.js
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsMonth/assets/charts.js
@@ -1,22 +1,33 @@
/* 数据 */
let nameList = [
"00:00",
+ "01:00",
"02:00",
+ "03:00",
"04:00",
+ "05:00",
"06:00",
+ "07:00",
"08:00",
+ "09:00",
"10:00",
+ "11:00",
"12:00",
+ "13:00",
"14:00",
+ "15:00",
"16:00",
+ "17:00",
"18:00",
+ "19:00",
"20:00",
+ "21:00",
"22:00",
+ "23:00",
]; // 类别
let valueList = [
800, 520, 650, 950, 420, 600, 450, 720, 303, 503, 203, 703, 903, 903,
]; // 人数
-var yList = ["1000", "800", "轻度拥堵", "基本畅通", "畅通"];
/* 数据整合 */
let dataList = [];
nameList.map((item, index) => {
@@ -81,7 +92,7 @@ var options = {
top: "80px", //上边距
right: "0", //右边距
left: "0", //左边距
- bottom: "10px", //下边距
+ bottom: "20px", //下边距
containLabel: true,
},
xAxis: {
@@ -134,7 +145,7 @@ var options = {
],
series: [
{
- name: "情报板发布",
+ name: "手机短信",
type: "line",
symbol: "circle",
symbolSize: 0,
@@ -162,11 +173,10 @@ var options = {
lineStyle: {
width: 2,
},
-
- data: [1000, 800, 520, 600, 900, 700, 700, 1000, 800, 520, 600, 900], // 折线图的数据
+ data: [],
},
{
- name: "服务网站",
+ name: "微信公众号",
type: "line",
symbol: "circle",
symbolSize: 0,
@@ -195,10 +205,10 @@ var options = {
global: false,
},
},
- data: [600, 700, 900, 400, 500, 800, 600, 600, 700, 900, 400, 500], // 折线图的数据
+ data: [],
},
{
- name: "微信发布",
+ name: "微博",
type: "line",
symbol: "circle",
symbolSize: 0,
@@ -226,10 +236,10 @@ var options = {
lineStyle: {
width: 2,
},
- data: [850, 810, 712, 580, 480, 480, 780, 850, 810, 712, 580, 480], // 折线图的数据
+ data: [],
},
{
- name: "微博发布",
+ name: "情报板",
type: "line",
symbol: "circle",
symbolSize: 0,
@@ -257,10 +267,10 @@ var options = {
lineStyle: {
width: 2,
},
- data: [850, 810, 712, 580, 480, 480, 780, 850, 810, 712, 580, 480], // 折线图的数据
+ data: [],
},
{
- name: "短信发布",
+ name: "服务网站",
type: "line",
symbol: "circle",
symbolSize: 0,
@@ -288,7 +298,70 @@ var options = {
lineStyle: {
width: 2,
},
- data: [850, 410, 712, 680, 50, 280, 480, 850, 810, 712, 580, 480], // 折线图的数据
+ data: [],
+ },
+ {
+ name: "微信小程序",
+ type: "line",
+ symbol: "circle",
+ symbolSize: 0,
+ smooth: true,
+ areaStyle: {
+ width: 4,
+ opacity: 0.25,
+ color: {
+ type: "linear",
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [
+ { offset: 0.389, color: "#51BFA490" },
+ { offset: 1, color: "#51BFA400" },
+ ],
+ global: false,
+ },
+ },
+ // yAxisIndex: 1, // 与第二个 y 轴关联
+ itemStyle: {
+ color: "#51BFA4",
+ },
+ lineStyle: {
+ width: 2,
+ },
+ data: [],
+ },
+ {
+ name: "语音广播",
+ type: "line",
+ symbol: "circle",
+ symbolSize: 0,
+
+ // yAxisIndex: 1, // 与第二个 y 轴关联
+ itemStyle: {
+ color: "#08BAF4",
+ },
+ lineStyle: {
+ width: 2,
+ },
+ smooth: true,
+ areaStyle: {
+ width: 4,
+ opacity: 0.25,
+ color: {
+ type: "linear",
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [
+ { offset: 0.389, color: "#08BAF490" },
+ { offset: 1, color: "#08BAF400" },
+ ],
+ global: false,
+ },
+ },
+ data: [],
},
],
};
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsMonth/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsMonth/index.vue
index 1b058b2c..bdef0ab3 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsMonth/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/postTrendsMonth/index.vue
@@ -17,9 +17,10 @@
size="mini"
class="btnSearch"
icon="el-icon-search"
+ @click="bindMonthTrendsPublishManage()"
>查询
- 重置
@@ -32,6 +33,8 @@
import WgtTitle from "@screen/pages/perception/widgets/title";
import * as echarts from "echarts";
import chartsStatistics from "./assets/charts";
+import request from "@/utils/request";
+import moment from "moment";
export default {
name: "postTrendsMonth",
components: {
@@ -44,14 +47,33 @@ export default {
},
created() {},
- methods: {},
+ methods: {
+ bindMonthTrendsPublishManage(){
+ request({
+ url: `/business/manage/monthTrendsPublishManage`,
+ method: "post",
+ data: {publishTime:moment(this.dateTime).format('YYYY-MM-DD HH:mm:ss')},
+ })
+ .then((result) => {
+ if (result.code != 200) return;
+ let sdata = [[],[],[],[],[],[],[]]
+ for(let i of result.data){
+ sdata[i.publishChannels-1].push(i.number)
+ }
+ chartsStatistics.series.forEach((e,i) => {
+ e.data = sdata[i]
+ });
+ var myChart = echarts.init(document.getElementById("postTrendsMonth"));
+ myChart.setOption(chartsStatistics);
+ })
+ },
+ init(){
+ this.dateTime = new Date();
+ this.bindMonthTrendsPublishManage();
+ }
+ },
mounted() {
- setTimeout(() => {
- this.$nextTick(() => {
- var myChart = echarts.init(document.getElementById("postTrendsMonth"));
- myChart.setOption(chartsStatistics);
- });
- });
+ this.init();
},
};
@@ -139,7 +161,7 @@ export default {
}
.charts {
- height: 300px;
+ height: 100%;
width: 100%;
}
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/topComponent/assets/设备设施隐患.png b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/topComponent/assets/设备设施隐患.png
new file mode 100644
index 00000000..35d501d6
Binary files /dev/null and b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/topComponent/assets/设备设施隐患.png differ
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/topComponent/assets/非法上路.png b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/topComponent/assets/非法上路.png
new file mode 100644
index 00000000..17c4bb9c
Binary files /dev/null and b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/topComponent/assets/非法上路.png differ
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/topComponent/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/topComponent/index.vue
index 89b65bcb..5c9a99b3 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/topComponent/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/components/topComponent/index.vue
@@ -1,7 +1,8 @@