diff --git a/ruoyi-ui/src/common/menuData.js b/ruoyi-ui/src/common/menuData.js
index d1af6aca..7c08946f 100644
--- a/ruoyi-ui/src/common/menuData.js
+++ b/ruoyi-ui/src/common/menuData.js
@@ -88,6 +88,12 @@ export default [
name: "commandDispatch",
component: "control/event/commandDispatch/index.vue",
},
+ {
+ title: "管控事件分析",
+ path: "/control/event/governanceAnalysis",
+ name: "governanceAnalysis",
+ component: "control/event/governanceAnalysis/index.vue",
+ },
],
},
],
diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/Descriptions.vue b/ruoyi-ui/src/views/JiHeExpressway/components/Descriptions.vue
index 3c8b85f7..2686b17e 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/components/Descriptions.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/components/Descriptions.vue
@@ -81,7 +81,7 @@ export default {
if (templateResult && templateResult != item.key) return templateResult
- return result
+ return result || item.text;
},
getComponent(type) {
return `Form${type.replace(/^[a-z]/, word => word.toUpperCase())}`
diff --git a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/index.vue b/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/index.vue
index e93ec547..07287a86 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/components/FormConfig/index.vue
@@ -4,7 +4,8 @@
-
+
@@ -85,15 +86,27 @@ export default {
return item => {
const result = item.visible ? item.visible(this.formData) : true;
- if (!result) {
- delete this.formData[item.key];
- }
+ // if (!result) {
+ // delete this.formData[item.key];
+ // }
return result;
}
}
},
methods: {
+ resolveListeners(callbacks) {
+
+ if (!callbacks) return;
+
+ const result = {};
+
+ for (const key in callbacks) {
+ result[key] = (...args) => callbacks[key](...args, this.formData, this)
+ }
+
+ return result
+ },
reset() {
return this.formData = reduceDefaultValue(this.formList);
},
diff --git a/ruoyi-ui/src/views/JiHeExpressway/images/deviceType/ball.svg b/ruoyi-ui/src/views/JiHeExpressway/images/deviceType/ball.svg
new file mode 100644
index 00000000..17e57887
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/images/deviceType/ball.svg
@@ -0,0 +1,14 @@
+
diff --git a/ruoyi-ui/src/views/JiHeExpressway/images/deviceType/ball_fault.svg b/ruoyi-ui/src/views/JiHeExpressway/images/deviceType/ball_fault.svg
new file mode 100644
index 00000000..b575f454
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/images/deviceType/ball_fault.svg
@@ -0,0 +1,14 @@
+
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/DrivingGuidance/components/DeviceControlDialog.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/DrivingGuidance/components/DeviceControlDialog.vue
index 8aa32fd7..54114e46 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/DrivingGuidance/components/DeviceControlDialog.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/DrivingGuidance/components/DeviceControlDialog.vue
@@ -74,6 +74,22 @@ export default {
key: "controlType",
type: "RadioGroup",
default: "manual",
+ ons: {
+ input: (value, data) => {
+ const oldFormData = this.oldFormData;
+ if (!oldFormData) return;
+
+ switch (value) {
+ case "manual":
+ data.onWorkStatus = oldFormData.onWorkStatus;
+ data.inWorkStatus = oldFormData.inWorkStatus;
+ break;
+ case "automatic":
+ Array.isArray(oldFormData.displayTime) && (data.displayTime = [...oldFormData.displayTime]);
+ break;
+ }
+ },
+ },
options: {
type: 'circle',
options: [
@@ -113,13 +129,13 @@ export default {
{
label: "选择时间:",
key: "displayTime",
- type: "datePicker",
+ type: "timePicker",
required: true,
visible: (data) => data.controlType == "automatic",
options: {
- type: "datetimerange",
- angeSeparator: "至",
- valueFormat: "yyyy-MM-dd HH:mm:ss",
+ isRange: true,
+ rangeSeparator: "至",
+ valueFormat: "HH:mm",
startPlaceholder: "开始时间",
endPlaceholder: "结束时间",
},
@@ -143,56 +159,64 @@ export default {
handler(bool) {
if (!bool) return;
- request.post(`business/device/functions/${this.deviceId}/${52}`, {})
- .then(async (result) => {
- if (result.code != 200) return;
+ this.reDisplay();
+ }
+ }
+ },
+ methods: {
+ reDisplay() {
+ request.post(`business/device/functions/${this.deviceId}/${52}`, {})
+ .then(async (result) => {
+ if (result.code != 200) return;
- await delay(0);
+ await delay(0);
- const formData = this.$refs.FormConfigRef?.formData;
+ const formData = this.$refs.FormConfigRef?.formData;
- const data = result.data[0];
+ const data = result.data[0];
+ console.log("%c [ data ]-155-「DeviceControlDialog.vue」", "font-size:15px; background:#66352f; color:#aa7973;", data);
- switch (data.mode) {
- case "00":
- formData.controlType = "manual";
+ switch (data.mode) {
+ case "00":
+ formData.controlType = "manual";
- formData.onWorkStatus = data.onWorkStatus;
- formData.inWorkStatus = data.inWorkStatus;
- break;
- case "01":
- formData.controlType = "automatic";
+ formData.onWorkStatus = data.onWorkStatus;
+ formData.inWorkStatus = data.inWorkStatus;
+ break;
+ case "01":
+ formData.controlType = "automatic";
- formData.datePicker = [data.startDisplay, data.endDisplay];
- break;
- }
- })
- }
- }
- },
- methods: {
+ formData.displayTime = [data.startDisplay, data.endDisplay];
+ break;
+ }
+
+ this.oldFormData = { ...formData };
+ })
+
+ },
handleSubmit() {
- const result = cloneDeep(this.$refs.FormConfigRef?.formData);
+ const result = {}, formData = this.$refs.FormConfigRef?.formData;
let functionId = 51;
- result.mode = result.controlType === 'manual' ? "00" : "01";
+ result.mode = formData.controlType === 'manual' ? "00" : "01";
delete result.controlType;
if (result.mode === '01') {
- if (!result.displayTime?.length) return Message.error(`时间不能为空!`);
- result.startDisplayTime = result.displayTime[0];
- result.endDisplayTime = result.displayTime[1];
+ if (!formData.displayTime?.length) return Message.error(`时间不能为空!`);
+ result.startDisplayTime = formData.displayTime[0];
+ result.endDisplayTime = formData.displayTime[1];
delete result.displayTime;
} else {
- if (!result.onWorkStatus || !result.inWorkStatus) return Message.error(`工作状态不能为空!`)
+ if (!formData.onWorkStatus || !formData.inWorkStatus) return Message.error(`工作状态不能为空!`);
+
+ result.onWorkStatus = formData.onWorkStatus
+ result.inWorkStatus = formData.inWorkStatus
}
this.submitting = true;
- console.log(result);
-
// this.submitting = false;
// return;
@@ -213,9 +237,7 @@ export default {
})
.finally(() => {
this.submitting = false;
- console.log(this.submitting)
})
- console.log(result)
}
},
}
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js
index d08b34ea..38a5c421 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js
@@ -33,6 +33,9 @@ export const eventMap = {
// status: "0",
// };
+ const ballFault = require("@screen/images/deviceType/ball_fault.svg");
+ const ball = require("@screen/images/deviceType/ball.svg");
+
const data = await getDeviceList(1);
// const data = [
// {
@@ -74,6 +77,18 @@ export const eventMap = {
data: extData,
};
} catch (error) {}
+ },
+ null,
+ {
+ iconCallback(bool, item) {
+ const type = JSON.parse(item.otherConfig)?.ptzCtrl;
+
+ switch (type) {
+ case "0":
+ case 0:
+ return bool ? ball : ballFault;
+ }
+ },
}
);
},
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/map.js b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/map.js
index c0bb0a45..8f5879f8 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/map.js
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/map.js
@@ -97,23 +97,33 @@ export async function setMarkerCluster(map, points, markerFun) {
* @param {*} _markerClick marker 点击
* @returns
*/
-export async function setMarkToMap(item, data, _markerClick, content) {
+export async function setMarkToMap(
+ item,
+ data,
+ _markerClick,
+ content,
+ { iconCallback } = {}
+) {
const { mapIns } = this.getMap();
if (!mapIns) return Message.error("地图加载失败!");
- const normal = require(`@screen/images/layer${item.id.replace(
- /^\.|[^/]+(?=.svg$)/g,
- (data) => (data === "." ? "" : `${data}_active`)
- )}`);
+ const normal =
+ normal ||
+ require(`@screen/images/layer${item.id.replace(
+ /^\.|[^/]+(?=.svg$)/g,
+ (data) => (data === "." ? "" : `${data}`)
+ )}`);
- const fault = require(`@screen/images/layer${item.id.replace(
- /^\.|[^/]+(?=.svg$)/g,
- (data) => (data === "." ? "" : `${data}_fault`)
- )}`);
+ const fault =
+ fault ||
+ require(`@screen/images/layer${item.id.replace(
+ /^\.|[^/]+(?=.svg$)/g,
+ (data) => (data === "." ? "" : `${data}_fault`)
+ )}`);
const faultBg = require(`@screen/images/mapBg/fault.svg`);
- const normalBg = require(`@screen/images/mapBg/active.svg`);
+ const normalBg = require(`@screen/images/mapBg/normal.svg`);
const markerClick = (e) => {
const extData = e.target.getExtData();
@@ -124,6 +134,10 @@ export async function setMarkToMap(item, data, _markerClick, content) {
const markerCluster = await setMarkerCluster(
mapIns,
data.map((item) => {
+ const deviceIcon =
+ iconCallback === "function" &&
+ iconCallback(item.deviceState == 1, item);
+
return {
weight: 1,
lnglat: [item.longitude, item.latitude],
@@ -132,9 +146,7 @@ export async function setMarkToMap(item, data, _markerClick, content) {
content:
content ||
`
+ " src='${
+ deviceIcon ? deviceIcon : item.deviceState == 1 ? normal : fault
+ }'>
`,
};
}),
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/assets/charts.js
new file mode 100644
index 00000000..ab52e40c
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/assets/charts.js
@@ -0,0 +1,391 @@
+var res = [
+ { value: 50, name: '情报板发布' },
+ { value: 1, name: '' },
+ { value: 20, name: '微博发布' },
+ { value: 1, name: '' },
+ { value: 30, name: '服务网站' },
+ { value: 1, name: '' },
+ ];
+ // var res = this.evaluatedCountList;
+ var data1 = [], data2 = [], data3 = [], legendData = [];
+ var curIndex = 0;
+ var index = 0;
+ let angle = 0; //角度,用来做简单的动画效果的
+
+ for (var i = 0; i < res.length; i++) {
+
+ data1.push({
+ value: res[i].value,
+ name: res[i].name,
+ })
+ data2.push({
+ value: res[i].value,
+ name: res[i].name,
+ itemStyle: {
+ opacity: 0.4,
+ },
+ })
+
+ 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: ['#5CC5FF', 'transparent', '#54EFD5', 'transparent', '#FD9666', 'transparent', '#5C8CFE', 'transparent', '#51D5AD', 'transparent'],
+ title: [
+ {
+ text:'999',
+ top: '25%',
+ textAlign: 'center',
+ left: '50%',
+ textStyle: {
+ color: '#ffffff',
+ fontSize: 30,
+ fontFamily: 'SourceHanSansCN',
+ },
+ },
+ {
+ text: '总数',
+ top: '38%',
+ textAlign: 'center',
+ left: '50%',
+ textStyle: {
+ color: 'rgba(242, 252, 253, 0.84)',
+ fontSize: 16,
+ fontFamily: 'SourceHanSansCN',
+ },
+ },
+ ],
+ grid: {
+ top: '3%',
+ left: '6%',
+ right: '6%',
+ bottom: '3%',
+ containLabel: true
+ },
+ tooltip: {
+ trigger: 'item',
+ formatter: '{b} : {c}:{d}'
+ },
+ legend: {
+ orient: '',
+ left: '10%',
+ top: '68%',
+ itemWidth: 10,
+ itemHeight: 10,
+ icon:"circle",
+ textStyle: {
+ color: "#ffffff",
+ fontSize: 14,
+ lineHeight: 22,
+ rich: {
+ text: {
+ marginLeft:32,
+ fontSize: 14,
+ },
+ number: {
+ fontSize: 14,
+ color: "#37E7FF",
+ marginLeft:32,
+ fontWeight: 'bold'
+ },
+ unit: {
+ fontSize: 14,
+ }
+ }
+ },
+ data: legendData,
+ formatter(name) {
+ if ( name == "" ) return "";
+ const newData = res;
+ let tarValue = 0;
+ let total = 0;
+ for (let i = 0; i < newData.length; i++) {
+ total += newData[i].value;
+ if (newData[i].name === name) {
+ tarValue = newData[i].value;
+ }
+ }
+ var percert = total == 0 ? 0 : ((tarValue / total) * 100).toFixed(2);
+ const arr = name + ' ' + tarValue;
+ return `{text|${name}} {number|${percert}%}`;;
+ },
+ },
+ series: [
+ /** 饼图上刻度 */
+ {
+ type: 'gauge',
+ center: ['50%', '35%'],
+ radius: '40%', // 错位调整此处
+ startAngle: 0,
+ endAngle: 360,
+ splitNumber: 52,
+ axisLine: { show: false },
+ splitLine: {
+ // length: 39,
+ length: '2',
+ lineStyle: {
+ width: 5,
+ color: '#5CC5FF'
+ }
+ },
+ axisTick: { show: false },
+ axisLabel: { show: false }
+ },
+ /** 绘制外部圆弧-2-开始圆点 */
+ {
+ type: 'custom',
+ coordinateSystem: 'none',
+ renderItem: (params, api) => {
+ let x0 = api.getWidth() / 2;
+ let y0 = api.getHeight() / 2 - 59;
+ let r = Math.min(api.getWidth(), api.getHeight()) / 2 * 0.50;
+ return {
+ type: 'circle',
+ shape: {
+ /** 角度175° 外弧2开始角度 */
+ cx: x0 + r * Math.cos((350 + -angle) * Math.PI / 180),
+ cy: y0 + r * Math.sin((350 + -angle) * Math.PI / 180),
+ r: 4
+ },
+ style: {
+ fill: '#5BC4FF',
+ stroke: '#5BC4FF'
+ },
+ silent: true
+ }
+ },
+ data: [0]
+ },
+ {
+ type: 'custom',
+ coordinateSystem: 'none',
+ renderItem: (params, api) => {
+ return {
+ type: 'arc',
+ shape: {
+ cx: api.getWidth() / 2,
+ cy: api.getHeight() / 2 - 59,
+ r: Math.min(api.getWidth(), api.getHeight()) / 2 * 0.50,
+ startAngle: (350 + -angle) * Math.PI / 180,
+ endAngle: (120 + -angle) * Math.PI / 180
+ },
+ style: {
+ fill: 'transparent',
+ stroke: '#5BC4FF66',
+ lineWidth: 2.6
+ },
+ silent: true
+ }
+ },
+ data: [0]
+ },
+ {
+ type: 'custom',
+ coordinateSystem: 'none',
+ renderItem: (params, api) => {
+ let x0 = api.getWidth() / 2;
+ let y0 = api.getHeight() / 2 - 59;
+ let r = Math.min(api.getWidth(), api.getHeight()) / 2 * 0.50;
+ return {
+ type: 'circle',
+ shape: {
+ /** 角度175° 外弧2开始角度 */
+ cx: x0 + r * Math.cos((150 + -angle) * Math.PI / 180),
+ cy: y0 + r * Math.sin((150 + -angle) * Math.PI / 180),
+ r: 4
+ },
+ style: {
+ fill: '#5BC4FF',
+ stroke: '#5BC4FF'
+ },
+ silent: true
+ }
+ },
+ data: [0]
+ },
+ {
+ type: 'custom',
+ coordinateSystem: 'none',
+ renderItem: (params, api) => {
+ return {
+ type: 'arc',
+ shape: {
+ cx: api.getWidth() / 2,
+ cy: api.getHeight() / 2 - 59,
+ r: Math.min(api.getWidth(), api.getHeight()) / 2 * 0.50,
+ startAngle: (150 + -angle) * Math.PI / 180,
+ endAngle: (-30 + -angle) * Math.PI / 180
+ },
+ style: {
+ fill: 'transparent',
+ stroke: '#5BC4FF66',
+ lineWidth: 2.6
+ },
+ silent: true
+ }
+ },
+ data: [0]
+ },
+ {
+ type: 'custom',
+ coordinateSystem: 'none',
+ renderItem: (params, api) => {
+ let x0 = api.getWidth() / 2;
+ let y0 = api.getHeight() / 2 - 59;
+ let r = Math.min(api.getWidth(), api.getHeight()) / 2 * 0.56;
+ return {
+ type: 'circle',
+ shape: {
+ /** 角度175° 外弧2开始角度 */
+ cx: x0 + r * Math.cos((590 + -angle) * Math.PI / 180),
+ cy: y0 + r * Math.sin((590 + -angle) * Math.PI / 180),
+ r: 4
+ },
+ style: {
+ fill: '#5BC4FF',
+ stroke: '#5BC4FF'
+ },
+ silent: true
+ }
+ },
+ data: [0]
+ },
+ {
+ type: 'custom',
+ coordinateSystem: 'none',
+ renderItem: (params, api) => {
+ return {
+ type: 'arc',
+ shape: {
+ cx: api.getWidth() / 2,
+ cy: api.getHeight() / 2 - 59,
+ r: Math.min(api.getWidth(), api.getHeight()) / 2 * 0.56,
+ startAngle: (590 + -angle) * Math.PI / 180,
+ endAngle: (350 + -angle) * Math.PI / 180
+ },
+ style: {
+ fill: 'transparent',
+ stroke: '#5BC4FF66',
+ lineWidth: 2.6
+ },
+ silent: true
+ }
+ },
+ data: [0]
+ },
+ {
+ type: 'custom',
+ coordinateSystem: 'none',
+ renderItem: (params, api) => {
+ let x0 = api.getWidth() / 2;
+ let y0 = api.getHeight() / 2 - 59;
+ let r = Math.min(api.getWidth(), api.getHeight()) / 2 * 0.56;
+ return {
+ type: 'circle',
+ shape: {
+ /** 角度175° 外弧2开始角度 */
+ cx: x0 + r * Math.cos((90 + -angle) * Math.PI / 180),
+ cy: y0 + r * Math.sin((90 + -angle) * Math.PI / 180),
+ r: 4
+ },
+ style: {
+ fill: '#5BC4FF',
+ stroke: '#5BC4FF'
+ },
+ silent: true
+ }
+ },
+ data: [0]
+ },
+ {
+ type: 'custom',
+ coordinateSystem: 'none',
+ renderItem: (params, api) => {
+ return {
+ type: 'arc',
+ shape: {
+ cx: api.getWidth() / 2,
+ cy: api.getHeight() / 2 - 59,
+ r: Math.min(api.getWidth(), api.getHeight()) / 2 * 0.56,
+ startAngle: (90 + -angle) * Math.PI / 180,
+ endAngle: (160 + -angle) * Math.PI / 180
+ },
+ style: {
+ fill: 'transparent',
+ stroke: '#5BC4FF66',
+ lineWidth: 2.6
+ },
+ silent: true
+ }
+ },
+ data: [0]
+ },
+ {
+ type: 'pie',
+ radius: ['45%', '39%'],
+ 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: data1,
+ labelLine: {
+ show: false,
+ },
+ itemStyle: {
+ normal: {
+ borderWidth: 6,
+ shadowBlur: 10,
+ borderRadius: 50, // 圆角
+ }
+ }
+ },
+ {
+ type: 'pie',
+ radius: ['25%', '39%'],
+ center: ['50%', '35%'],
+ label: {
+ show: false,
+ },
+ data: data2,
+ labelLine: {
+ show: false,
+ },
+ itemStyle: {
+ normal: {
+ borderWidth: 6,
+ shadowBlur: 10,
+ borderRadius: 0, // 圆角
+ }
+ }
+ },
+ ],
+
+ };
+
+ export default options
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/index.vue
new file mode 100644
index 00000000..023484e6
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/index.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/channelAnalytics/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/channelAnalytics/assets/charts.js
new file mode 100644
index 00000000..fd4fab3a
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/channelAnalytics/assets/charts.js
@@ -0,0 +1,284 @@
+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: '异常天气' },
+ { 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', '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: '50%',
+ textStyle: {
+ color: '#ffffff',
+ fontSize: 30,
+ fontFamily: 'SourceHanSansCN',
+ },
+ },
+ {
+ text: '总数',
+ top: '38%',
+ textAlign: 'center',
+ left: '50%',
+ textStyle: {
+ color: 'rgba(242, 252, 253, 0.84)',
+ fontSize: 16,
+ fontFamily: 'SourceHanSansCN',
+ },
+ },
+ ],
+ grid: {
+ top: '38%',
+ left: '6%',
+ right: '6%',
+ bottom: '3%',
+ containLabel: true
+ },
+ tooltip: {
+ trigger: 'item',
+ formatter: '{b} : {c}:{d}'
+ },
+ legend: {
+ orient: '',
+ left: '10%',
+ top: '68%',
+ itemWidth: 10,
+ itemHeight: 10,
+ icon:"circle",
+ textStyle: {
+ color: "#ffffff",
+ fontSize: 14,
+ lineHeight: 22,
+ rich: {
+ text: {
+ marginLeft:32,
+ fontSize: 14,
+ },
+ number: {
+ 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: data1,
+ 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
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/channelAnalytics/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/channelAnalytics/index.vue
new file mode 100644
index 00000000..d3a60c57
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/channelAnalytics/index.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/eventTypeAnalysis/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/eventTypeAnalysis/assets/charts.js
new file mode 100644
index 00000000..fd4fab3a
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/eventTypeAnalysis/assets/charts.js
@@ -0,0 +1,284 @@
+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: '异常天气' },
+ { 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', '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: '50%',
+ textStyle: {
+ color: '#ffffff',
+ fontSize: 30,
+ fontFamily: 'SourceHanSansCN',
+ },
+ },
+ {
+ text: '总数',
+ top: '38%',
+ textAlign: 'center',
+ left: '50%',
+ textStyle: {
+ color: 'rgba(242, 252, 253, 0.84)',
+ fontSize: 16,
+ fontFamily: 'SourceHanSansCN',
+ },
+ },
+ ],
+ grid: {
+ top: '38%',
+ left: '6%',
+ right: '6%',
+ bottom: '3%',
+ containLabel: true
+ },
+ tooltip: {
+ trigger: 'item',
+ formatter: '{b} : {c}:{d}'
+ },
+ legend: {
+ orient: '',
+ left: '10%',
+ top: '68%',
+ itemWidth: 10,
+ itemHeight: 10,
+ icon:"circle",
+ textStyle: {
+ color: "#ffffff",
+ fontSize: 14,
+ lineHeight: 22,
+ rich: {
+ text: {
+ marginLeft:32,
+ fontSize: 14,
+ },
+ number: {
+ 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: data1,
+ 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
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/eventTypeAnalysis/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/eventTypeAnalysis/index.vue
new file mode 100644
index 00000000..f83ed3af
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/eventTypeAnalysis/index.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/nucleusThrough/assets/charts3.js b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/nucleusThrough/assets/charts3.js
new file mode 100644
index 00000000..44d47f95
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/nucleusThrough/assets/charts3.js
@@ -0,0 +1,308 @@
+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:false,
+ trigger: "axis",
+ axisPointer: {
+ // 坐标轴指示器,坐标轴触发有效
+ type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
+ },
+ textStyle: {
+ color: "#fff",
+ fontSize: 14,
+ },
+ backgroundColor: "rgba(3, 31, 71, .0)", //设置背景颜色
+ borderColor: "rgba(3, 31, 71, .0)",
+ formatter: "健康监测
{b1}:{c1}人",
+ },
+ grid: {
+ left: "2%",
+ right: "4%",
+ top: "20%",
+ bottom: "10%",
+ containLabel: true,
+ },
+ xAxis: {
+ data: xData,
+ show: true,
+ axisTick: {
+ show: false,
+ lineStyle: {
+ color: "#fff",
+ },
+ },
+ axisLine: {
+ lineStyle: {
+ color: "#1C82C5",
+ },
+ },
+ axisLabel: {
+ interval: 0,
+ align: "center",
+ rotate: "1",
+ margin: "20",
+ textStyle: {
+ fontSize: 12,
+ color: "#50A2C1",
+ },
+ },
+ },
+ yAxis: [
+ {
+ min: 0,
+ axisLine: {
+ lineStyle: {
+ color: "#1C82C5",
+ },
+ },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ color: "rgba(28, 130, 197, .3)",
+ type: "solid",
+ },
+ },
+ axisLabel: {
+ color: "#DEEBFF",
+ textStyle: {
+ fontSize: 12,
+ },
+ },
+ axisTick: {
+ show: false,
+ },
+ },
+ ],
+ legend: {
+ // orient: 'vertical',
+ icon: "circle",
+ itemHeight: 6,
+ itemWidth: 6,
+ top: "5%",
+ right: "10%",
+ textStyle: {
+ color: "#fff",
+ },
+
+ data:[
+ {
+ name:"审核通过",
+ itemStyle:{
+ color:'#00A3FF',
+ },
+ },
+ {
+ 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: "#003B4E", // 100% 处的颜色
+ },
+ ],
+ false
+ );
+ },
+ },
+ },
+ itemStyle: {
+ // lenged文本
+ opacity: 0.6,
+ 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: "#00E4BB53", // 100% 处的颜色
+ },
+ ],
+ false
+ );
+ },
+ },
+ },
+ itemStyle: {
+ // lenged文本
+ opacity: 0.6,
+ 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: "#003B4E", // 100% 处的颜色
+ },
+ ],
+ false
+ );
+ },
+ },
+ },
+ itemStyle: {
+ // lenged文本
+ opacity: 0.6,
+ 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;
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/nucleusThrough/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/nucleusThrough/index.vue
new file mode 100644
index 00000000..8ddc301c
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/nucleusThrough/index.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsDay/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsDay/assets/charts.js
new file mode 100644
index 00000000..a98339fc
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsDay/assets/charts.js
@@ -0,0 +1,180 @@
+
+/* 数据 */
+let nameList = ["00:00", "02:00", "04:00", "06:00", "08:00", "10:00", "12:00", "14:00", "16:00", "18:00", "20:00", "22:00"]; // 类别
+let valueList = [800, 520, 650, 950, 420, 600, 450, 720, 303, 503 , 203 ,703 , 903 ]; // 人数
+var yList = [ "1000","800","轻度拥堵","基本畅通","畅通"]
+/* 数据整合 */
+let dataList = [];
+nameList.map((item, index) => {
+ if (index === 4) {
+ dataList.push({
+ name: item,
+ value: valueList[index],
+ itemStyle: {
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [{
+ offset: 0, color: '#FFB904' // 0% 处的颜色
+ }, {
+ offset: 1, color: '#FF6969' // 100% 处的颜色
+ }],
+ global: false // 缺省为 false
+ },
+ borderRadius: 6
+ },
+ label: { show: false }
+ })
+ } else {
+ dataList.push({
+ name: item,
+ value: valueList[index],
+ itemStyle:{
+ borderRadius: 6
+ }
+ })
+ }
+})
+
+var options = {
+ legend: {
+ // orient: 'vertical',
+ icon: "circle",
+ itemHeight: 8,
+ itemWidth: 8,
+ top: "5%",
+ x: "right",
+ textStyle: {
+ color: "#fff",
+ },
+ },
+ grid: {
+ top: '15%',//上边距
+ right: '0',//右边距
+ left: '0',//左边距
+ bottom: "10%",//下边距
+ containLabel: true,
+ },
+ xAxis: {
+ type: 'category',
+ data: nameList,
+ axisTick: {
+ show: false //隐藏X轴刻度
+ },
+ axisLine: {
+ lineStyle: {
+ color: "rgba(49, 217, 255, 0.8)"
+ }
+ },
+ axisLabel: {
+ show: true,
+ color: '#B6E6FF',
+ fontSize:8,
+ fontFamily: 'Source Han Sans CN-Regular',
+ },
+ },
+ yAxis: [{
+ type: 'value',
+ name: "",
+ max: 1200,
+ min:0,
+ splitNumber:5,
+ nameTextStyle: {
+ color: '#B6E6FF',
+ fontSize: 13,
+ fontFamily: 'Source Han Sans CN-Regular',
+ align: "left",
+ verticalAlign: "center",
+ },
+ axisLabel: {
+ fontSize: 13,
+ color: '#B6E6FF',
+ fontFamily: 'HarmonyOS Sans-Regular',
+ // formatter:function(value,index){
+ // return yList[index]
+ // }
+ },
+ axisLine: {
+ show: false,
+ },
+ axisTick: {
+ show: false
+ },
+ splitLine: {
+ lineStyle: {
+ color: 'rgba(49, 217, 255, 0.5)',
+ }
+ },
+ }],
+ series: [
+ {
+ 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: "#32BB8A99" },
+ { offset: 1, color: "#32BB8A00" },
+ ],
+ global: false,
+ },
+ },
+ // yAxisIndex: 1, // 与第二个 y 轴关联
+ itemStyle: {
+ color: '#32BB8A90',
+ },
+ lineStyle: {
+ width:2,
+ },
+
+ data: [1000, 800, 520, 600, 900, 700, 700,1000, 800, 520, 600, 900, 700, 700], // 折线图的数据
+ },
+ {
+ name: '服务网站',
+ type: 'line',
+ symbol: 'circle',
+ symbolSize: 0,
+
+ // yAxisIndex: 1, // 与第二个 y 轴关联
+ itemStyle: {
+ color: '#E2BA7490',
+ },
+ 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: "#E2BA7490" },
+ { offset: 1, color: "#E2BA7400" },
+ ],
+ global: false,
+ },
+ },
+ data: [600, 700, 900, 400, 500, 800, 600,600, 700, 900, 400, 500, 800, 600], // 折线图的数据
+ },
+ ]
+}
+
+export default options;
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsDay/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsDay/index.vue
new file mode 100644
index 00000000..606d6f7e
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsDay/index.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts.js
new file mode 100644
index 00000000..c4411f48
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/assets/charts.js
@@ -0,0 +1,180 @@
+
+/* 数据 */
+let nameList = ["00:00", "02:00", "04:00", "06:00", "08:00", "10:00", "12:00", "14:00", "16:00", "18:00", "20:00", "22:00"]; // 类别
+let valueList = [800, 520, 650, 950, 420, 600, 450, 720, 303, 503 , 203 ,703 , 903 ]; // 人数
+var yList = [ "1000","800","轻度拥堵","基本畅通","畅通"]
+/* 数据整合 */
+let dataList = [];
+nameList.map((item, index) => {
+ if (index === 4) {
+ dataList.push({
+ name: item,
+ value: valueList[index],
+ itemStyle: {
+ color: {
+ type: 'linear',
+ x: 0,
+ y: 0,
+ x2: 0,
+ y2: 1,
+ colorStops: [{
+ offset: 0, color: '#FFB904' // 0% 处的颜色
+ }, {
+ offset: 1, color: '#FF6969' // 100% 处的颜色
+ }],
+ global: false // 缺省为 false
+ },
+ borderRadius: 6
+ },
+ label: { show: false }
+ })
+ } else {
+ dataList.push({
+ name: item,
+ value: valueList[index],
+ itemStyle:{
+ borderRadius: 6
+ }
+ })
+ }
+})
+
+var options = {
+ legend: {
+ // orient: 'vertical',
+ icon: "circle",
+ itemHeight: 8,
+ itemWidth: 8,
+ top: "5%",
+ x: "right",
+ textStyle: {
+ color: "#fff",
+ },
+ },
+ grid: {
+ top: '20%',//上边距
+ right: '0',//右边距
+ left: '0',//左边距
+ bottom: "10%",//下边距
+ containLabel: true,
+ },
+ xAxis: {
+ type: 'category',
+ data: nameList,
+ axisTick: {
+ show: false //隐藏X轴刻度
+ },
+ axisLine: {
+ lineStyle: {
+ color: "rgba(49, 217, 255, 0.8)"
+ }
+ },
+ axisLabel: {
+ show: true,
+ color: '#B6E6FF',
+ fontSize:8,
+ fontFamily: 'Source Han Sans CN-Regular',
+ },
+ },
+ yAxis: [{
+ type: 'value',
+ name: "",
+ max: 1000,
+ min:0,
+ splitNumber:5,
+ nameTextStyle: {
+ color: '#B6E6FF',
+ fontSize: 13,
+ fontFamily: 'Source Han Sans CN-Regular',
+ align: "left",
+ verticalAlign: "center",
+ },
+ axisLabel: {
+ fontSize: 13,
+ color: '#B6E6FF',
+ fontFamily: 'HarmonyOS Sans-Regular',
+ // formatter:function(value,index){
+ // return yList[index]
+ // }
+ },
+ axisLine: {
+ show: false,
+ },
+ axisTick: {
+ show: false
+ },
+ splitLine: {
+ lineStyle: {
+ color: 'rgba(49, 217, 255, 0.5)',
+ }
+ },
+ }],
+ series: [
+ {
+ 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: "#32BB8A99" },
+ { offset: 1, color: "#32BB8A00" },
+ ],
+ global: false,
+ },
+ },
+ // yAxisIndex: 1, // 与第二个 y 轴关联
+ itemStyle: {
+ color: '#32BB8A',
+ },
+ lineStyle: {
+ width:2,
+ },
+
+ data: [1000, 800, 520, 600, 900, 700, 700,1000, 800, 520, 600, 900, 700, 700], // 折线图的数据
+ },
+ {
+ name: '交通事件',
+ type: 'line',
+ symbol: 'circle',
+ symbolSize: 0,
+
+ // yAxisIndex: 1, // 与第二个 y 轴关联
+ itemStyle: {
+ color: '#E2BA74',
+ },
+ 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: "##E2BA7490" },
+ { offset: 1, color: "##E2BA7400" },
+ ],
+ global: false,
+ },
+ },
+ data: [600, 700, 900, 400, 500, 800, 600,600, 700, 900, 400, 500, 800, 600], // 折线图的数据
+ },
+ ]
+}
+
+export default options;
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/index.vue
new file mode 100644
index 00000000..be895be9
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/postTrendsMonth/index.vue
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/交通事故.png b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/交通事故.png
new file mode 100644
index 00000000..ca288136
Binary files /dev/null and b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/交通事故.png differ
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/交通拥堵.png b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/交通拥堵.png
new file mode 100644
index 00000000..9ee3ddeb
Binary files /dev/null and b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/交通拥堵.png differ
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/交通管制.png b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/交通管制.png
new file mode 100644
index 00000000..baf87026
Binary files /dev/null and b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/交通管制.png differ
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/其他事件.png b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/其他事件.png
new file mode 100644
index 00000000..e3f3da33
Binary files /dev/null and b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/其他事件.png differ
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/异常天气.png b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/异常天气.png
new file mode 100644
index 00000000..a4f41870
Binary files /dev/null and b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/异常天气.png differ
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/施工建设.png b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/施工建设.png
new file mode 100644
index 00000000..d1042784
Binary files /dev/null and b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/施工建设.png differ
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/服务区异常.png b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/服务区异常.png
new file mode 100644
index 00000000..12d1c69f
Binary files /dev/null and b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/服务区异常.png differ
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/路障清除.png b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/路障清除.png
new file mode 100644
index 00000000..e7be2ee1
Binary files /dev/null and b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/路障清除.png differ
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/车辆故障.png b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/车辆故障.png
new file mode 100644
index 00000000..f002ed8c
Binary files /dev/null and b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/assets/车辆故障.png differ
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/index.vue
new file mode 100644
index 00000000..b778310b
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/topComponent/index.vue
@@ -0,0 +1,256 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/index.vue
new file mode 100644
index 00000000..30cd160f
--- /dev/null
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/index.vue
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/chargeableOperations/components/RoadSectionTolls/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/chargeableOperations/components/RoadSectionTolls/assets/charts.js
index cf0fac1d..d5fde08a 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/chargeableOperations/components/RoadSectionTolls/assets/charts.js
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/chargeableOperations/components/RoadSectionTolls/assets/charts.js
@@ -20,7 +20,7 @@ let options = {
fontSize: 14,
color: "#000",
},
- formatter: "{a}
{b} :\n\n{c} 个",
+ formatter: "{a}
{b} :\n\n{c} ",
},
legend: {
top: 10,
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/components/deviceUptime/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/components/deviceUptime/assets/charts.js
index 4b35b669..48948996 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/components/deviceUptime/assets/charts.js
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/components/deviceUptime/assets/charts.js
@@ -50,7 +50,7 @@ let options = {
series: [{
type: 'radar',
data: [data],
- name: '安全作业',
+ name: '设备在线率',
label: {
show: true,
formatter: function (params) {
@@ -80,7 +80,7 @@ let options = {
},
{
type: 'radar',
- name: '安全作业',
+ name: '设备在线率',
data: [
[100, 100, 100, 100, 100, 100, 100, 100,100, 100, 100, 100, 100, 100, 100, 100,100, 100, 100],
],
@@ -100,7 +100,7 @@ let options = {
},
{
type: 'radar',
- name: '安全作业',
+ name: '设备在线率',
data: [
[80, 80, 80, 80, 80, 80, 80, 80,80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80]
],
@@ -120,7 +120,7 @@ let options = {
},
{
type: 'radar',
- name: '安全作业',
+ name: '设备在线率',
data: [
[60, 60, 60, 60, 60, 60, 60, 60,60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60],
],
@@ -140,7 +140,7 @@ let options = {
},
{
type: 'radar',
- name: '安全作业',
+ name: '设备在线率',
data: [
[40, 40, 40, 40, 40, 40, 40, 40,40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40],
],
@@ -159,7 +159,7 @@ let options = {
},
{
type: 'radar',
- name: '安全作业',
+ name: '设备在线率',
data: [
[20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20],
],
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/components/monthlyEquipment/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/components/monthlyEquipment/assets/charts.js
index dfd3d256..9204ae69 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/components/monthlyEquipment/assets/charts.js
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/components/monthlyEquipment/assets/charts.js
@@ -50,7 +50,7 @@ let options = {
series: [{
type: 'radar',
data: [data],
- name: '安全作业',
+ name: '设备在线率',
label: {
show: true,
formatter: function (params) {
@@ -80,7 +80,7 @@ let options = {
},
{
type: 'radar',
- name: '安全作业',
+ name: '设备在线率',
data: [
[100, 100, 100, 100, 100, 100, 100, 100,100, 100, 100, 100, 100, 100, 100, 100],
],
@@ -100,7 +100,7 @@ let options = {
},
{
type: 'radar',
- name: '安全作业',
+ name: '设备在线率',
data: [
[80, 80, 80, 80, 80, 80, 80, 80,80, 80, 80, 80, 80, 80, 80, 80]
],
@@ -120,7 +120,7 @@ let options = {
},
{
type: 'radar',
- name: '安全作业',
+ name: '设备在线率',
data: [
[60, 60, 60, 60, 60, 60, 60, 60,60, 60, 60, 60, 60, 60, 60, 60],
],
@@ -140,7 +140,7 @@ let options = {
},
{
type: 'radar',
- name: '安全作业',
+ name: '设备在线率',
data: [
[40, 40, 40, 40, 40, 40, 40, 40,40, 40, 40, 40, 40, 40, 40, 40],
],
@@ -159,7 +159,7 @@ let options = {
},
{
type: 'radar',
- name: '安全作业',
+ name: '设备在线率',
data: [
[20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20],
],
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/components/monthlyEquipment/index.vue b/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/components/monthlyEquipment/index.vue
index a55e0448..0a17c933 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/components/monthlyEquipment/index.vue
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/statisticalAnalysis/components/monthlyEquipment/index.vue
@@ -246,9 +246,8 @@
border-radius: 0px 0px 0px 0px;
opacity: 1;
border-radius: 50%;
- border: 2px solid;
- border: rgba(23, 162, 255, 0.2);
-
+ border: 0px solid;
+// border-image: linear-gradient(33deg, rgba(23, 162, 255, 0.71), rgba(23, 162, 255, 0)) 2 2;
> .round-num {
width:100%;
diff --git a/ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/railway/assets/charts.js b/ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/railway/assets/charts.js
index 43de80f3..2ef9faf8 100644
--- a/ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/railway/assets/charts.js
+++ b/ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/railway/assets/charts.js
@@ -1,6 +1,6 @@
let chartIcon = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAC4jAAAuIwF4pT92AAAFw2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgOS4wLWMwMDAgNzkuMTcxYzI3ZmFiLCAyMDIyLzA4LzE2LTIyOjM1OjQxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgMjQuMCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMjMtMTItMjlUMTA6MTM6MTQrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIzLTEyLTI5VDEwOjQ2OjE3KzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIzLTEyLTI5VDEwOjQ2OjE3KzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplYzhkN2NkNS01ZjdjLTQ5Y2ItOTgyMy1lOTM4ODViNjRjMmIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ZjE1ZWVkNDgtNDA3ZS00MDU0LTliNTMtYTllZmQ1ODE5YjVmIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZjE1ZWVkNDgtNDA3ZS00MDU0LTliNTMtYTllZmQ1ODE5YjVmIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDpmMTVlZWQ0OC00MDdlLTQwNTQtOWI1My1hOWVmZDU4MTliNWYiIHN0RXZ0OndoZW49IjIwMjMtMTItMjlUMTA6MTM6MTQrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNC4wIChNYWNpbnRvc2gpIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplYzhkN2NkNS01ZjdjLTQ5Y2ItOTgyMy1lOTM4ODViNjRjMmIiIHN0RXZ0OndoZW49IjIwMjMtMTItMjlUMTA6NDY6MTcrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyNC4wIChNYWNpbnRvc2gpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PibZhN0AAAHBSURBVDiNfdTtThNREAbgZ5sCrRTaRaBqQDTR6AXaq9grJEaiKCJWaAv9ENDUH2fWLkU8yeTkZGbe885nNp/PVU9vIMMGNtHGo1BNMQoZF7k7jlkVqDewji72sI5VrIT6F64xwRecFbnJPaDeQBsv8RSdCpsS6BYzDENOcVTkLv8CBZPX2McOdrEVITYC6BpjnKOP7zjG+yI3yd5dzLNg8jbY7MW9g+2lHJUgpzgJOcRRPX7dj3C6eIaDAO+iGUCzYPERWSXU5+jXIxct5MFgN0AOsLaoi9Ul0HHkaoBOLZg0IoQNPMaTJZAqWDfytylVtol2LdishNFaKBv/AClPI3waISto1UKZoRZ39h8QFZus8laTqvEbNyEzqdQPnZ/hcyMl/BbTmpSsacg43v0wXD43+BE2V+FzjWFdmp1ZKAZheByUt91tyD4+S/00wGWAjerxOJYS2JSSngX4lrsNeREfnUg9dRG+o3JEWniDF1Lpd6U2KEdkHoyuwvkM36TmPCxy4+rQdvDKoss7FhugzM8kIjiPED8UuSH310jLYkRaUl9V18gswD7ha5Ebl77ZA4utLY1MOT4sRmKI0fJi+wM9v6Q1QC+Y6wAAAABJRU5ErkJggg==`;
let xdata = {
- value: ['华山北枢纽-济南虚', '东客站虚-华山北枢纽', '小许家枢纽-东客站虚', '临沂枣园枢纽-临沂虚', '华山北枢纽-济南虚', '华山北枢纽-济南虚', '华山北枢纽-济南虚']
+ value: ['平阴停车区', '孔村枢纽', '平阴南收费站', '东平湖枢纽', '沙河停车区', '梁山东收费站', '王官屯枢纽']
};
let sdata = {
value: [32774, 30067, 28774, 30067, 30021, 30067, 32774]
diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue
index 5122d809..093607d5 100644
--- a/ruoyi-ui/src/views/login.vue
+++ b/ruoyi-ui/src/views/login.vue
@@ -1,77 +1,39 @@
-
-
+
{{ '' }}
-
-
+
+
-
-
+
+
-
+
记住密码
-
+
登 录
登 录 中...
- 立即注册
+ 立即注册
@@ -101,8 +63,10 @@ export default {
title: "", // 系统标题
cookiePassword: "",
loginForm: {
- username: "admin",
- password: "dxc123!@#",
+ // username: "admin",
+ // password: "dxc123!@#",
+ username: "",
+ password: "",
rememberMe: false,
code: "",
uuid: "",
@@ -147,7 +111,7 @@ export default {
capctchaCheckSuccess(params) {
this.loginForm.code = params.captchaVerification;
this.loading = true;
- console.log(this.loginForm.rememberMe,"=======================");
+ console.log(this.loginForm.rememberMe, "=======================");
if (this.loginForm.rememberMe == true) {
Cookies.set("username", this.loginForm.username, { expires: 30 });
Cookies.set("password", encrypt(this.loginForm.password), {
@@ -162,7 +126,7 @@ export default {
this.$store
.dispatch("Login", this.loginForm)
.then(() => {
- this.$router.push({ path: this.redirect || "/" }).catch(() => {});
+ this.$router.push({ path: this.redirect || "/" }).catch(() => { });
})
.catch(() => {
this.loading = false;
@@ -172,11 +136,11 @@ export default {
const username = Cookies.get("username");
const password = Cookies.get("password");
const rememberMe = Cookies.get("rememberMe");
- console.log("rem",rememberMe);
+ console.log("rem", rememberMe);
this.loginForm = {
username: username === undefined ? this.loginForm.username : username,
password:
- password === undefined ? this.loginForm.password : decrypt(password),
+ password === undefined ? this.loginForm.password : decrypt(password),
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe),
};
},
@@ -188,23 +152,23 @@ export default {
}
});
} else {
-
+
if (this.loginForm.rememberMe == true) {
- Cookies.set("username", this.loginForm.username, { expires: 30 });
- Cookies.set("password", encrypt(this.loginForm.password), {
- expires: 30,
- });
- Cookies.set("rememberMe", this.loginForm.rememberMe, { expires: 30 });
- } else {
- Cookies.remove("username");
- Cookies.remove("password");
- Cookies.remove("rememberMe");
- }
+ Cookies.set("username", this.loginForm.username, { expires: 30 });
+ Cookies.set("password", encrypt(this.loginForm.password), {
+ expires: 30,
+ });
+ Cookies.set("rememberMe", this.loginForm.rememberMe, { expires: 30 });
+ } else {
+ Cookies.remove("username");
+ Cookies.remove("password");
+ Cookies.remove("rememberMe");
+ }
this.$store
.dispatch("Login", this.loginForm)
.then(() => {
- this.$router.push({ path: this.redirect || "/" }).catch(() => {});
+ this.$router.push({ path: this.redirect || "/" }).catch(() => { });
this.getManageStation();
})
.catch(() => {
@@ -218,7 +182,7 @@ export default {
this.$cache.local.set("manageStation", res.msg);
});
getConfigKey("sd.navigationBar").then((res) => {
- console.log(res,"res")
+ console.log(res, "res")
let sideTheme = "theme-blue";
if (res.msg == "0") {
sideTheme = "theme-dark";
@@ -253,33 +217,32 @@ export default {
diff --git a/ruoyi-ui/vue.config.js b/ruoyi-ui/vue.config.js
index 62566d0a..4d947841 100644
--- a/ruoyi-ui/vue.config.js
+++ b/ruoyi-ui/vue.config.js
@@ -1,8 +1,5 @@
"use strict";
const path = require("path");
-const webpack = require("webpack");
-
-const packageJSON = require("./package.json");
function resolve(dir) {
return path.join(__dirname, dir);
@@ -83,14 +80,6 @@ module.exports = {
chainWebpack(config) {
config.plugins.delete("preload"); // TODO: need test
config.plugins.delete("prefetch"); // TODO: need test
- config.plugin("DefinePlugin").use(webpack.DefinePlugin, [
- {
- "process.env.Version": (() =>
- JSON.stringify(
- `${new Date().toLocaleString()}-V${packageJSON.version}`
- ))(),
- },
- ]);
const rootModulesPath = path.resolve("node_modules");
if (config.resolve.modules.store.has(rootModulesPath)) {