Browse Source

更改收费站分析

wangqin
zhangzhang 1 year ago
parent
commit
c3572ed890
  1. 816
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/StatsDialogVisible/index.vue
  2. 137
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/auditAnalytics/index.vue
  3. 1
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/channelAnalytics/assets/charts.js
  4. 1
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/components/eventTypeAnalysis/assets/charts.js

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

@ -1,393 +1,551 @@
<template>
<Dialog v-model="modelVisible" title="收费站管制统计" style="width: 100%;">
<div class="search">
<InputSearch :formList="searchFormList" @handleSearch="handleSearch" style="width: 502px;" />
</div>
<div class="StatsDetail">
<el-table key="table1" v-if="searchType == 2" :data="tableData" style="width: 100%"
:span-method="arraySpanMethod">
<el-table-column prop="controlCauseName" label="封闭原因" width="150" align="center">
</el-table-column>
<el-table-column prop="causeTypeName" label="" align="center">
</el-table-column>
<el-table-column label="封闭站次" align="center">
<el-table-column label="目标时段" width="120" align="center">
<el-table-column prop="num" label="站次" width="120" align="center">
</el-table-column>
<el-table-column prop="numRatio" label="占比(%)" width="120" align="center">
</el-table-column>
</el-table-column>
<el-table-column label="去年同期时间段" align="center">
<el-table-column prop="lastYearNum" label="站次" width="120" align="center">
</el-table-column>
<el-table-column prop="lastYearNumRatio" label="占比(%)" width="120" align="center">
</el-table-column>
</el-table-column>
<el-table-column prop="yearNumRatio" label="同比(%)" align="center"></el-table-column>
</el-table-column>
<el-table-column label="封闭时长" align="center">
<el-table-column label="目标时段" width="120" align="center">
<el-table-column prop="minuteTime" label="时长(分钟)" width="120" align="center">
</el-table-column>
<el-table-column prop="timeRatio" label="占比(%)" width="120" align="center">
</el-table-column>
</el-table-column>
<el-table-column label="去年同期时间段" align="center">
<el-table-column prop="lastYearTime" label="时长(分钟)" width="120" align="center">
</el-table-column>
<el-table-column prop="lastYearTimeRatio" label="占比(%)" width="120" align="center">
</el-table-column>
</el-table-column>
<el-table-column prop="yearTimeRatio" label="同比(%)" align="center"></el-table-column>
</el-table-column>
</el-table>
<el-table key="table2" v-else :data="facilityTableData" style="width: 100%">
<el-table-column prop="facilityName" label="" width="150" align="center">
</el-table-column>
<el-table-column prop="facilityClose" label="封闭" align="center">
</el-table-column>
<el-table-column prop="facilityRestriction" label="限行" align="center">
</el-table-column>
<el-table-column prop="facilityInterval" label="间隔放行" align="center">
</el-table-column>
<el-table-column prop="total" label="合计" align="center">
</el-table-column>
</el-table>
</div>
</Dialog>
<Dialog v-model="modelVisible" title="收费站管制统计" style="width: 100%">
<div class="search">
<InputSearch
:formList="searchFormList"
@handleSearch="handleSearch"
style="width: 502px"
/>
</div>
<div class="StatsDetail">
<el-table
key="table1"
v-if="searchType == 2 && controlType == 1"
:data="tableData"
style="width: 100%"
:span-method="arraySpanMethod"
>
<el-table-column
prop="controlCauseName"
label="封闭原因"
width="150"
align="center"
>
</el-table-column>
<el-table-column prop="causeTypeName" label="" align="center">
</el-table-column>
<el-table-column label="封闭站次" align="center">
<el-table-column label="目标时段" width="120" align="center">
<el-table-column prop="num" label="站次" width="120" align="center">
</el-table-column>
<el-table-column
prop="numRatio"
label="占比(%)"
width="120"
align="center"
>
</el-table-column>
</el-table-column>
<el-table-column label="去年同期时间段" align="center">
<el-table-column
prop="lastYearNum"
label="站次"
width="120"
align="center"
>
</el-table-column>
<el-table-column
prop="lastYearNumRatio"
label="占比(%)"
width="120"
align="center"
>
</el-table-column>
</el-table-column>
<el-table-column
prop="yearNumRatio"
label="同比(%)"
align="center"
></el-table-column>
</el-table-column>
<el-table-column label="封闭时长" align="center">
<el-table-column label="目标时段" width="120" align="center">
<el-table-column
prop="minuteTime"
label="时长(分钟)"
width="120"
align="center"
>
</el-table-column>
<el-table-column
prop="timeRatio"
label="占比(%)"
width="120"
align="center"
>
</el-table-column>
</el-table-column>
<el-table-column label="去年同期时间段" align="center">
<el-table-column
prop="lastYearTime"
label="时长(分钟)"
width="120"
align="center"
>
</el-table-column>
<el-table-column
prop="lastYearTimeRatio"
label="占比(%)"
width="120"
align="center"
>
</el-table-column>
</el-table-column>
<el-table-column
prop="yearTimeRatio"
label="同比(%)"
align="center"
></el-table-column>
</el-table-column>
</el-table>
<el-table
key="table2"
v-else-if="searchType == 2 && controlType == 2"
:data="tableData"
style="width: 100%"
:span-method="arraySpanMethod"
>
<el-table-column
prop="controlCauseName"
label="限行原因"
width="150"
align="center"
>
</el-table-column>
<el-table-column prop="causeTypeName" label="" align="center">
</el-table-column>
<el-table-column label="限行站次" align="center">
<el-table-column label="目标时段" width="120" align="center">
<el-table-column prop="num" label="站次" width="120" align="center">
</el-table-column>
<el-table-column
prop="numRatio"
label="占比(%)"
width="120"
align="center"
>
</el-table-column>
</el-table-column>
<el-table-column label="去年同期时间段" align="center">
<el-table-column
prop="lastYearNum"
label="站次"
width="120"
align="center"
>
</el-table-column>
<el-table-column
prop="lastYearNumRatio"
label="占比(%)"
width="120"
align="center"
>
</el-table-column>
</el-table-column>
<el-table-column
prop="yearNumRatio"
label="同比(%)"
align="center"
></el-table-column>
</el-table-column>
<el-table-column label="限行时长" align="center">
<el-table-column label="目标时段" width="120" align="center">
<el-table-column
prop="minuteTime"
label="时长(分钟)"
width="120"
align="center"
>
</el-table-column>
<el-table-column
prop="timeRatio"
label="占比(%)"
width="120"
align="center"
>
</el-table-column>
</el-table-column>
<el-table-column label="去年同期时间段" align="center">
<el-table-column
prop="lastYearTime"
label="时长(分钟)"
width="120"
align="center"
>
</el-table-column>
<el-table-column
prop="lastYearTimeRatio"
label="占比(%)"
width="120"
align="center"
>
</el-table-column>
</el-table-column>
<el-table-column
prop="yearTimeRatio"
label="同比(%)"
align="center"
></el-table-column>
</el-table-column>
</el-table>
<el-table
key="table3"
v-else
:data="facilityTableData"
style="width: 100%"
>
<el-table-column
prop="facilityName"
label=""
width="150"
align="center"
>
</el-table-column>
<el-table-column prop="facilityClose" label="封闭" align="center">
</el-table-column>
<el-table-column prop="facilityRestriction" label="限行" align="center">
</el-table-column>
<el-table-column
prop="facilityInterval"
label="间隔放行"
align="center"
>
</el-table-column>
<el-table-column prop="total" label="合计" align="center">
</el-table-column>
</el-table>
</div>
</Dialog>
</template>
<script>
import Dialog from "@screen/components/Dialog/index";
import InputSearch from '@screen/components/InputSearch/index.vue';
import InputSearch from "@screen/components/InputSearch/index.vue";
import Table from "@screen/components/Table.vue";
import { selectTollStation } from "@/api/event/governanceAnalysis"
import { selectTollStation } from "@/api/event/governanceAnalysis";
import options from "../assets/charts";
import request from "@/utils/request";
export default {
name: 'StatsDetail',
components: {
Dialog,
InputSearch,
Table
},
model: {
prop: 'visible',
event: 'update:value'
},
props: {
visible: Boolean
},
data() {
return {
num: 0,
tableData: [],
weatherNum: [],
startTime: "",
endTime: "",
name: "StatsDetail",
components: {
Dialog,
InputSearch,
Table,
},
model: {
prop: "visible",
event: "update:value",
},
props: {
visible: Boolean,
},
data() {
return {
num: 0,
tableData: [],
weatherNum: [],
startTime: "",
endTime: "",
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
},
},
searchType: 1,
controlType: 1,
facilityIds: [],
facilityTableData: [],
searchFormList: [
{
label: "查询条件:",
key: "searchType",
required: true,
isAlone: true,
type: "RadioGroup",
default: 1,
options: {
type: "circle",
options: [
{
key: 1,
label: "站点",
},
{
key: 2,
label: "原因",
},
],
},
},
{
label: "事件类型:",
key: "controlType",
required: true,
isAlone: true,
type: "RadioGroup",
visible: (data) => {
if (data.searchType == 2) {
return true;
}
},
default: 1,
options: {
type: "circle",
options: [
{
key: 1,
label: "收费站封闭",
},
{
key: 2,
label: "收费站限行",
},
],
},
},
{
label: "选择站点:",
key: "facilityId",
required: true,
type: "Select",
options: {
multiple: true,
options: [],
},
visible: (data) => {
if (data.searchType == 1) {
return true;
}
},
},
{
label: "日期:",
key: "date",
required: true,
type: "datePicker",
options: {
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
},
disabledDate(time) {
return time.getTime() > Date.now();
},
},
valueFormat: "yyyy-MM-dd",
type: "daterange",
},
},
],
};
},
computed: {
modelVisible: {
get() {
return this.visible;
},
set(val) {
this.$emit("update:value", val);
},
},
},
methods: {
getFacilityList() {
Promise.allSettled([
//
request({
url: `/business/facility/query`,
method: "get",
}),
]).then((res) => {
if (res[0].status === "fulfilled" && res[0].value.code == 200) {
this.searchFormList[2].options.options = res[0].value.data.map(
(item) => ({
key: item.id,
label: item.facilityName,
})
);
this.facilityIds = res[0].value.data.map((item) => item.id);
// this.searchFormList[2].default = res[0].value.data.map(item => item.id)
let date = moment().format("YYYY-MM-DD");
let data = {
searchType: 1,
facilityIds: [],
facilityTableData: [],
searchFormList: [
{
label: "查询条件:",
key: "searchType",
required: true,
isAlone: true,
type: "RadioGroup",
default: 1,
options: {
type: 'circle',
options: [
{
key: 1,
label: "站点",
},
{
key: 2,
label: "原因",
}
]
}
},
{
label: "事件类型:",
key: "controlType",
required: true,
isAlone: true,
type: "RadioGroup",
visible: data => {
if (data.searchType == 2) {
return true
}
},
default: 1,
options: {
type: 'circle',
options: [{
key: 1,
label: "收费站封闭",
},
{
key: 2,
label: "收费站限行",
}]
}
},
{
label: "选择站点:",
key: "facilityId",
required: true,
type: "Select",
options: {
multiple: true,
options: []
},
visible: data => {
if (data.searchType == 1) {
return true
}
},
},
{
label: "日期:",
key: "date",
required: true,
type: "datePicker",
options: {
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
},
},
valueFormat: "yyyy-MM-dd",
type: "daterange"
}
},
],
facilityId: this.facilityIds,
date: [date + " 00:00:00", date + " 23:59:59"],
};
this.getSelectTollStation(data);
}
});
},
computed: {
modelVisible: {
get() {
return this.visible;
},
set(val) {
this.$emit('update:value', val)
handleSearch(data) {
this.getSelectTollStation(data);
},
arraySpanMethod({ row, column, rowIndex, columnIndex }) {
if (this.searchType == 2) {
if (!row.causeTypeName) {
if (columnIndex === 0) {
return [1, 2];
} else if (columnIndex === 1) {
return [0, 0];
}
}
if (row.controlCauseName === "恶劣天气") {
if (columnIndex === 0) {
console.log(this.weatherNum.length);
if (rowIndex === 0) {
return [this.weatherNum.length, 1];
} else if (rowIndex <= this.weatherNum.length) {
return [0, 0];
}
// if (rowIndex === 2) {
// return [7, 1];
// }
// else if (rowIndex === 3) {
// return [0, 0];
// } else if (rowIndex === 4) {
// return [0, 0];
// }
// else if (rowIndex === 5) {
// return [0, 0];
// }
// else if (rowIndex === 6) {
// return [0, 0];
// }
// else if (rowIndex === 7) {
// return [0, 0];
// }
// else if (rowIndex === 8) {
// return [0, 0];
// }
}
// this.weatherNum = 0
}
}
},
methods: {
getFacilityList() {
Promise.allSettled([
//
request({
url: `/business/facility/query`,
method: "get",
}),
])
.then((res) => {
if (res[0].status === 'fulfilled' && res[0].value.code == 200) {
this.searchFormList[2].options.options = res[0].value.data.map(item => ({
key: item.id,
label: item.facilityName,
}))
this.facilityIds = res[0].value.data.map(item => item.id)
// this.searchFormList[2].default = res[0].value.data.map(item => item.id)
let date = moment().format('YYYY-MM-DD')
let data = {
searchType: 1,
facilityId: this.facilityIds,
date: [date + " 00:00:00", date + " 23:59:59"]
}
this.getSelectTollStation(data)
}
})
},
handleSearch(data) {
this.getSelectTollStation(data)
},
arraySpanMethod({ row, column, rowIndex, columnIndex }) {
if (this.searchType == 2) {
if (!row.causeTypeName) {
if (columnIndex === 0) {
return [1, 2];
}
else if (columnIndex === 1) {
return [0, 0];
}
};
if (row.controlCauseName === '恶劣天气') {
if (columnIndex === 0) {
console.log(this.weatherNum.length)
if (rowIndex === 0) {
return [this.weatherNum.length, 1];
} else if (rowIndex <= this.weatherNum.length) {
return [0, 0];
}
// if (rowIndex === 2) {
// return [7, 1];
// }
// else if (rowIndex === 3) {
// return [0, 0];
// } else if (rowIndex === 4) {
// return [0, 0];
// }
// else if (rowIndex === 5) {
// return [0, 0];
// }
// else if (rowIndex === 6) {
// return [0, 0];
// }
// else if (rowIndex === 7) {
// return [0, 0];
// }
// else if (rowIndex === 8) {
// return [0, 0];
// }
}
// this.weatherNum = 0
}
}
},
getSelectTollStation(data) {
let startTime = ""
let endTime = ""
if (data) {
startTime = data.date[0] + ' 00:00:00'
endTime = data.date[1] + ' 23:59:59'
getSelectTollStation(data) {
let startTime = "";
let endTime = "";
if (data) {
startTime = data.date[0] + " 00:00:00";
endTime = data.date[1] + " 23:59:59";
} else {
startTime = new Date("2024-01-01 11:12:21");
startTime = new Date("2024-01-26 11:12:36");
}
var formData = new FormData();
this.searchType = data.searchType;
this.controlType = data.controlType;
if (data.searchType == 1) {
formData.append("facilityId", data.facilityId);
} else {
formData.append("controlType", data.controlType);
}
formData.append("searchType", data.searchType);
formData.append("startTime", startTime);
formData.append("endTime", endTime);
let weatherData = [];
let otherData = [];
selectTollStation(formData).then((res) => {
if (data.searchType == 2) {
this.weatherNum = [];
res.data.forEach((item) => {
if (item.causeTypeName) {
this.weatherNum.push(item.causeTypeName);
weatherData.push(item);
} else {
startTime = new Date("2024-01-01 11:12:21")
startTime = new Date("2024-01-26 11:12:36")
otherData.push(item);
}
var formData = new FormData();
this.searchType = data.searchType
if (data.searchType == 1) {
formData.append("facilityId", data.facilityId);
} else {
formData.append("controlType", data.controlType);
}
formData.append("searchType", data.searchType);
formData.append("startTime", startTime);
formData.append("endTime", endTime);
let weatherData = []
let otherData = []
selectTollStation(formData).then((res) => {
if (data.searchType == 2) {
this.weatherNum = []
res.data.forEach(item => {
if (item.causeTypeName) {
this.weatherNum.push(item.causeTypeName)
weatherData.push(item)
} else {
otherData.push(item)
}
});
this.tableData = weatherData.concat(otherData)
} else {
res.data.forEach((item) => {
item.total = item.facilityClose + item.facilityRestriction + item.facilityInterval
})
this.facilityTableData = res.data
}
})
});
this.tableData = weatherData.concat(otherData);
} else {
res.data.forEach((item) => {
item.total =
item.facilityClose +
item.facilityRestriction +
item.facilityInterval;
});
this.facilityTableData = res.data;
}
});
},
mounted() {
this.getFacilityList()
}
}
},
mounted() {
this.getFacilityList();
},
};
</script>
<style lang="scss" scoped>
.dialog {
min-height: 800px;
min-height: 800px;
}
.search {
display: flex;
flex-direction: row-reverse;
display: flex;
flex-direction: row-reverse;
}
::v-deep .is-scrolling-none {
background: #0B6581;
background: #0b6581;
}
::v-deep .el-table__empty-text {
color: #3AE0F8;
color: #3ae0f8;
}
.StatsDetail {
// height: 770px;
margin: 20px 0;
width: 100%;
display: flex;
gap: 5px;
// height: 770px;
margin: 20px 0;
width: 100%;
display: flex;
gap: 5px;
}
.el-table {
border: 1px solid #07AEC6;
background: #0B6581;
border: 1px solid #07aec6;
background: #0b6581;
}
::v-deep .el-table .el-table__header-wrapper th,
.el-table .el-table__fixed-header-wrapper th {
background: #0B6581;
border: 1px solid #07AEC6;
background: #0b6581;
border: 1px solid #07aec6;
}
::v-deep .el-table th.el-table__cell>.cell {
color: #3DE8FF;
::v-deep .el-table th.el-table__cell > .cell {
color: #3de8ff;
}
::v-deep .el-table thead.is-group th.el-table__cell {
background: #0B6581;
border: 1px solid #07AEC6;
background: #0b6581;
border: 1px solid #07aec6;
}
// ::v-deep .el-table th.el-table__cell.is-leaf,
::v-deep .el-table td.el-table__cell {
border: 1px solid #07AEC6;
background: #1B586D;
color: #fff;
border: 1px solid #07aec6;
background: #1b586d;
color: #fff;
}
::v-deep .el-table tr {
border: 1px solid #07AEC6;
background-color: #0B6581;
border: 1px solid #07aec6;
background-color: #0b6581;
}
::v-deep .el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell {
background: #1B586D;
border: 1px solid #07AEC6;
::v-deep
.el-table--enable-row-hover
.el-table__body
tr:hover
> td.el-table__cell {
background: #1b586d;
border: 1px solid #07aec6;
}
::v-deep .el-table::before,
.el-table--group::after,
.el-table--border::after {
background: none;
background: none;
}
</style>
</style>

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

@ -1,5 +1,5 @@
<template>
<div class='congestion'>
<div class="congestion">
<WgtTitle :title="'收费站管制分析'">
<ButtonGradient class="title-button" @click.native="handleStats">
统计
@ -10,39 +10,50 @@
<div class="title-top">
<div class="close">收费站封闭</div>
<div class="traffic">收费站限行</div>
</div>
<div class="content">
<div class="content-item" v-for="item in tollBoothsData" :key="item.facilityName">
<div
class="content-item"
v-for="item in tollBoothsData"
:key="item.facilityName"
>
<div class="content-item-left">
<span class="name">{{ item.facilityName }}</span>
<img class="icon" src="./assets/icon.svg" />
</div>
<div class="content-item-right" :style="{
'--width': (item.trafficClose / maxCloseNum) * 100 + '%'
}">
<div class="box-item">
<span class="num">{{ item.trafficClose }}</span>
</div>
<div class="box-item" :style="{
'--width': (item.trafficRestriction / maxRestrictionNum) * 100 + '%'
}">
<div class="content-item-right">
<div
class="box-item"
:style="{
'--width':
(item.trafficRestriction / maxRestrictionNum) * 100 + '%',
}"
>
<span class="num">{{ item.trafficRestriction }}</span>
</div>
<div
class="box-item"
:style="{
'--width': (item.trafficClose / maxCloseNum) * 100 + '%',
}"
>
<span class="num">{{ item.trafficClose }}</span>
</div>
<!-- <el-progress :text-inside="true" :stroke-width="26" :percentage="70"></el-progress> -->
<!-- <el-progress :width="600"></el-progress>
<el-progress :percentage="50"></el-progress> -->
</div>
</div>
</div>
</div>
<!-- <div class="board">
<div class="charts keep-ratio " id="auditAnalytics"></div>
</div> -->
<StatsDialogVisible :visible="statsDialogVisible" @update:value="handleClose" />
<StatsDialogVisible
:visible="statsDialogVisible"
@update:value="handleClose"
/>
</div>
</template>
@ -51,42 +62,50 @@ import WgtTitle from "@screen/pages/perception/widgets/title";
import ButtonGradient from "@screen/components/Buttons/ButtonGradient.vue";
import * as echarts from "echarts";
import chartsStatistics from "./assets/charts";
import { tollStationAnalysis } from "@/api/event/governanceAnalysis"
import StatsDialogVisible from "./StatsDialogVisible/index.vue"
import { tollStationAnalysis } from "@/api/event/governanceAnalysis";
import StatsDialogVisible from "./StatsDialogVisible/index.vue";
import icon from "./assets/icon.svg";
export default {
name: 'RailWayDay',
name: "RailWayDay",
components: {
WgtTitle,
ButtonGradient,
StatsDialogVisible
StatsDialogVisible,
},
data() {
return {
statsDialogVisible: false,
tollBoothsData: [],
maxRestrictionNum: null,
maxCloseNum: null
}
maxCloseNum: null,
};
},
created() {
},
created() {},
methods: {
handleStats() {
this.statsDialogVisible = true
this.statsDialogVisible = true;
},
handleClose() {
this.statsDialogVisible = false
this.statsDialogVisible = false;
},
getTollStationAnalysis() {
return tollStationAnalysis().then((response) => {
this.tollBoothsData = response.data
this.maxRestrictionNum = Math.max.apply(Math, this.tollBoothsData.map(item => { return item.trafficRestriction }))
this.maxCloseNum = Math.max.apply(Math, this.tollBoothsData.map(item => { return item.trafficRestriction }))
console.log("response", this.maxRestrictionNum, this.maxCloseNum)
this.tollBoothsData = response.data;
this.maxRestrictionNum = Math.max.apply(
Math,
this.tollBoothsData.map((item) => {
return item.trafficRestriction;
})
);
this.maxCloseNum = Math.max.apply(
Math,
this.tollBoothsData.map((item) => {
return item.trafficRestriction;
})
);
console.log("response", this.maxRestrictionNum, this.maxCloseNum);
// let facilityName = []
// let trafficRestriction = []
// let trafficClose = []
@ -109,20 +128,18 @@ export default {
// chartsStatistics.yAxis[0].data = facilityName;
// chartsStatistics.series[0].data = trafficClose;
// chartsStatistics.series[1].data = trafficRestriction;
})
}
});
},
},
async mounted() {
await this.getTollStationAnalysis()
await this.getTollStationAnalysis();
// const myChart = echarts.init(document.getElementById('auditAnalytics'));
// myChart.setOption(chartsStatistics);
},
}
};
</script>
<style lang='scss' scoped>
<style lang="scss" scoped>
.congestion {
width: 100%;
overflow: hidden;
@ -135,11 +152,15 @@ export default {
border-radius: 5px 5px 5px 5px;
opacity: 1;
border: 1px solid;
border-image: linear-gradient(360deg, rgba(55, 231, 255, 0.3), rgba(55, 231, 255, 0)) 1 1;
border-image: linear-gradient(
360deg,
rgba(55, 231, 255, 0.3),
rgba(55, 231, 255, 0)
)
1 1;
display: flex;
justify-content: space-between;
align-items: center;
}
.title-button {
@ -164,7 +185,12 @@ export default {
border-radius: 5px 5px 5px 5px;
opacity: 1;
border: 1px solid;
border-image: linear-gradient(360deg, rgba(55, 231, 255, 0.3), rgba(55, 231, 255, 0)) 1 1;
border-image: linear-gradient(
360deg,
rgba(55, 231, 255, 0.3),
rgba(55, 231, 255, 0)
)
1 1;
// display: flex;
// justify-content: space-between;
// align-items: center;
@ -182,27 +208,27 @@ export default {
}
.traffic:before {
content: '';
content: "";
display: block;
position: relative;
top: 13px;
left: -15px;
width: 8px;
height: 8px;
background: #5FD7FE;
background: #5fd7fe;
border-radius: 50%;
opacity: 1;
}
.close:before {
content: '';
content: "";
display: block;
position: relative;
top: 13px;
left: -15px;
width: 8px;
height: 8px;
background: #FC6A67;
background: #fc6a67;
border-radius: 50%;
opacity: 1;
}
@ -231,18 +257,21 @@ export default {
height: 27px;
margin-right: 5px;
}
}
.content-item-right {}
.content-item-right {
}
}
.box-item {
position: relative;
height: 8px;
width: 289px;
background: linear-gradient(180deg, rgba(11, 167, 218, 0.1) 0%, rgba(79, 211, 255, 0.1) 100%);
background: linear-gradient(
180deg,
rgba(11, 167, 218, 0.1) 0%,
rgba(79, 211, 255, 0.1) 100%
);
border-radius: 2px 2px 2px 2px;
}
@ -256,7 +285,11 @@ export default {
top: 0;
height: 8px;
width: var(--width);
background: linear-gradient(90deg, rgba(97, 216, 255, 0) 0%, #60D7FF 100%);
background: linear-gradient(
90deg,
rgba(97, 216, 255, 0) 0%,
#60d7ff 100%
);
border-radius: 2px 2px 2px 2px;
opacity: 1;
}
@ -267,7 +300,11 @@ export default {
top: 0;
height: 8px;
width: var(--width);
background: linear-gradient(90deg, rgba(255, 185, 4, 0) 0%, rgba(255, 105, 105, 1) 100%);
background: linear-gradient(
90deg,
rgba(255, 185, 4, 0) 0%,
rgba(255, 105, 105, 1) 100%
);
border-radius: 2px 2px 2px 2px;
opacity: 1;
}

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

@ -72,6 +72,7 @@ var options = {
width: "300px",
height: "120px",
orient: "vertical",
icon: "circle",
top: "60%",
itemWidth: 10,
itemHeight: 10,

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

@ -87,6 +87,7 @@ var options = {
width: "300px",
height: "120px",
orient: "vertical",
icon: "circle",
top: "60%",
itemWidth: 10,
itemHeight: 10,

Loading…
Cancel
Save