Browse Source

echarts导出图片+表格

develop
lau572 4 months ago
parent
commit
ae5d023e27
  1. 6
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/audit/index.vue
  2. 11
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/ctimer/index.vue
  3. 22
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/days/index.vue
  4. 17
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/etime/index.vue
  5. 11
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/etype/index.vue
  6. 13
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/governanceAnalysis/index.vue
  7. 23
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/day/index.vue
  8. 15
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/muliple/index.vue
  9. 19
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/pile/index.vue
  10. 13
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/railway/index.vue
  11. 17
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/type/index.vue
  12. 21
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/fee/index.vue
  13. 15
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/flow/index.vue
  14. 19
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/real/index.vue
  15. 15
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/section/index.vue
  16. 15
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/timer/index.vue
  17. 11
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/analysis/section/index.vue
  18. 21
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/analysis/timer/index.vue
  19. 15
      ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/nucleusThrough/index.vue
  20. 21
      ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/postTrendsDay/index.vue
  21. 23
      ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/postTrendsMonth/index.vue
  22. 41
      ruoyi-ui/src/views/JiHeExpressway/utils/common.js

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

@ -7,9 +7,9 @@
统计 统计
</ButtonGradient> </ButtonGradient>
</div> </div>
<div class="box" :style="menu.isRecentOpen?'height:calc(100vh - 700px)':'height:calc(100vh - 740px)'">
<div class="box" :style="menu.isRecentOpen?'height:calc(100vh - 700px)':'height:calc(100vh - 740px)'">
<div class="content"> <div class="content">
<div <div
class="content-item" class="content-item"
@ -123,7 +123,7 @@ export default {
.title-button { .title-button {
width: 50px; width: 50px;
border-radius: 65px; border-radius: 65px;
font-size: 12px; font-size: 12px;
} }

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

@ -5,7 +5,7 @@
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
import chartsOptions from "./charts"; import chartsOptions from "./charts";
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
import { import {
selectRoadSection, selectRoadSection,
@ -22,8 +22,13 @@ export default {
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("chartsTimer"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/business/trafficIncidents/exportSelectRoadSectionAnalysis", url: "/business/trafficIncidents/exportSelectRoadSectionAnalysis",
filename: name, filename: name,
data: this.data data: this.data

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

@ -1,17 +1,17 @@
<template> <template>
<div class="chartsDays" id="chartsDays"></div> <div class="chartsDays" id="chartsDays"></div>
</template> </template>
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
import chartsStatistics from "./charts"; import chartsStatistics from "./charts";
import { eventTrend } from "@/api/event/governanceAnalysis" import { eventTrend } from "@/api/event/governanceAnalysis"
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
name: 'chartsDays', name: 'chartsDays',
components: { components: {
}, },
data() { data() {
return { return {
@ -20,11 +20,16 @@ export default {
}, },
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("chartsDays"));
method:'get', let fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/business/trafficIncidents/exportGetEventTrend", url: "/business/trafficIncidents/exportGetEventTrend",
filename: name, filename: name,
data: {}, data: {fileUrl:fileUrl},
}); });
}, },
getEventTrend() { getEventTrend() {
@ -57,11 +62,11 @@ export default {
this.$nextTick(()=>{ this.$nextTick(()=>{
this.getEventTrend(); this.getEventTrend();
}) })
}, },
} }
</script> </script>
<style lang='scss' scoped> <style lang='scss' scoped>
@ -70,4 +75,3 @@ export default {
width: 100%; width: 100%;
} }
</style> </style>

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

@ -5,7 +5,7 @@
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
import chartsOptions from "./charts"; import chartsOptions from "./charts";
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
import request from '@/utils/request' import request from '@/utils/request'
export default { export default {
name: "ChartsETime", name: "ChartsETime",
@ -19,9 +19,14 @@ export default {
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("chartsETime"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
url: "/business/trafficIncidents/exportSelectEventTypeAnalysis", type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/business/trafficIncidents/exportSelectEventTimeProportion",
filename: name, filename: name,
data: this.data data: this.data
}); });
@ -51,7 +56,7 @@ export default {
method: 'post', method: 'post',
data: this.data data: this.data
}).then(res=>{ }).then(res=>{
let aryXAxis = [] let aryXAxis = []
let arySeries0 = [] let arySeries0 = []
let arySeries1 = [] let arySeries1 = []
@ -66,7 +71,7 @@ export default {
} else if (type === '2'){ // } else if (type === '2'){ //
// //
const daysInMonth = moment().daysInMonth(); const daysInMonth = moment().daysInMonth();
for(let i = 1; i <= daysInMonth; i++){ for(let i = 1; i <= daysInMonth; i++){
let c = _.find(res.data.currentlyMap, function(o){ let c = _.find(res.data.currentlyMap, function(o){
{ return Number(o.day.substring(8)) === i; } { return Number(o.day.substring(8)) === i; }

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

@ -8,7 +8,7 @@ import chartsOptions from "./charts";
import { import {
selectEventType, selectEventType,
} from "@/api/event/governanceAnalysis"; } from "@/api/event/governanceAnalysis";
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
name: "ChartsEType", name: "ChartsEType",
@ -21,8 +21,13 @@ export default {
created() {}, created() {},
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("chartsEType"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/business/trafficIncidents/exportSelectEventTypeAnalysis", url: "/business/trafficIncidents/exportSelectEventTypeAnalysis",
filename: name, filename: name,
data: this.data data: this.data

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

@ -42,7 +42,7 @@
<section class="cright"> <section class="cright">
<div class="title"> <div class="title">
<div class="icon"></div>事故时间分析 <div class="icon"></div>事故时间分析
<ChartExport @export="$refs.refEType.export('事故时间分析')" /> <ChartExport @export="$refs.refETime.export('事故时间分析')" />
</div> </div>
<ETime ref="refETime" /> <ETime ref="refETime" />
</section> </section>
@ -76,7 +76,7 @@
</Dialog> </Dialog>
</div> </div>
</template> </template>
<script> <script>
import TopComponent from './components/topComponent/index.vue' import TopComponent from './components/topComponent/index.vue'
import Search from './search/index.vue' import Search from './search/index.vue'
@ -120,7 +120,7 @@ export default {
this.$refs.refTimer.myChart.resize(); this.$refs.refTimer.myChart.resize();
this.$refs.refETime.myChart.resize(); this.$refs.refETime.myChart.resize();
this.$refs.refDays.myChart.resize(); this.$refs.refDays.myChart.resize();
}); });
}, },
methods: { methods: {
@ -137,7 +137,7 @@ export default {
this.searchQuery = new FormData(); this.searchQuery = new FormData();
this.searchQuery.append("direction", search.direction); this.searchQuery.append("direction", search.direction);
this.searchQuery.append("type", search.type); this.searchQuery.append("type", search.type);
this.searchQuery.append("startTime", search.startTime); this.searchQuery.append("startTime", search.startTime);
this.onChangeTab({name:'EType'}) this.onChangeTab({name:'EType'})
}, },
onChangeTab(e) { onChangeTab(e) {
@ -155,7 +155,7 @@ export default {
} }
</script> </script>
<style lang='scss' scoped> <style lang='scss' scoped>
::v-deep .el-tabs__item { ::v-deep .el-tabs__item {
display: inline-flex; display: inline-flex;
@ -212,7 +212,7 @@ export default {
.chartPanel { .chartPanel {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
width: 100%; width: 100%;
gap:10px; gap:10px;
} }
@ -241,4 +241,3 @@ export default {
} }
} }
</style> </style>

23
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/day/index.vue

@ -7,7 +7,7 @@ import * as echarts from "echarts";
import chartsStatistics from "./charts"; import chartsStatistics from "./charts";
import request from '@/utils/request' import request from '@/utils/request'
import moment from "moment"; import moment from "moment";
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
name: "RailWayDay", name: "RailWayDay",
@ -22,12 +22,23 @@ export default {
created() {}, created() {},
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("railwayDay"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/perceivedEvents/warning/exportSelectStateType", url: "/perceivedEvents/warning/exportSelectStateType",
filename: name, filename: name,
data:this.data, data:this.data,
}); });
// exportFile({
// method:'get',
// url: "/perceivedEvents/warning/exportSelectStateType",
// filename: name,
// data:this.data,
// });
}, },
bind(){ bind(){
this.data = { this.data = {
@ -43,7 +54,7 @@ export default {
const {currentlyMap,lastYearMap,stateDuration} = result.data; const {currentlyMap,lastYearMap,stateDuration} = result.data;
const xListSource = [...currentlyMap,...lastYearMap,...stateDuration] const xListSource = [...currentlyMap,...lastYearMap,...stateDuration]
let xList = Array.from(new Set(xListSource.map(x=>x.sectionName))); let xList = Array.from(new Set(xListSource.map(x=>x.sectionName)));
const value0 = []; // warningState = 1 const value0 = []; // warningState = 1
const value1 = []; // warningState = 2 const value1 = []; // warningState = 2
const value2 = []; // warningState = 3 const value2 = []; // warningState = 3
@ -77,7 +88,7 @@ export default {
chartsStatistics.series[4].data = value4; chartsStatistics.series[4].data = value4;
chartsStatistics.series[5].data = value5; chartsStatistics.series[5].data = value5;
if(!this.myChart){ if(!this.myChart){
this.myChart = echarts.init(document.getElementById("railwayDay")); this.myChart = echarts.init(document.getElementById("railwayDay"));
} }
this.myChart.setOption(chartsStatistics); this.myChart.setOption(chartsStatistics);
@ -88,7 +99,7 @@ export default {
this.$nextTick(()=>{ this.$nextTick(()=>{
this.bind(); this.bind();
}) })
// getSectionPerceivedNumber().then((res) => { // getSectionPerceivedNumber().then((res) => {
// if (res.code == 200) { // if (res.code == 200) {
// this.dataList = res.data; // this.dataList = res.data;

15
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/muliple/index.vue

@ -7,7 +7,7 @@ import * as echarts from "echarts";
import chartsStatistics from "./charts"; import chartsStatistics from "./charts";
import { getDailyCumulativeMonth } from "@/api/event/perceiveEvent"; import { getDailyCumulativeMonth } from "@/api/event/perceiveEvent";
import request from '@/utils/request' import request from '@/utils/request'
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
name: "Muliple", name: "Muliple",
@ -33,8 +33,13 @@ export default {
created() {}, created() {},
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("chartsMuliple"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/perceivedEvents/warning/exportManyTimesInterval", url: "/perceivedEvents/warning/exportManyTimesInterval",
filename: name, filename: name,
data:this.data, data:this.data,
@ -59,7 +64,7 @@ export default {
} }
this.myChart.setOption(chartsStatistics); this.myChart.setOption(chartsStatistics);
}) })
}, },
bindMock(){ bindMock(){
getDailyCumulativeMonth().then((res) => { getDailyCumulativeMonth().then((res) => {
@ -92,7 +97,7 @@ export default {
} }
}, },
mounted() { mounted() {
}, },
}; };
</script> </script>

19
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/pile/index.vue

@ -7,7 +7,7 @@ import * as echarts from "echarts";
import chartOption from "./charts"; import chartOption from "./charts";
import { getSectionMarkNumber } from "@/api/event/perceiveEvent"; import { getSectionMarkNumber } from "@/api/event/perceiveEvent";
import request from '@/utils/request' import request from '@/utils/request'
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
@ -26,14 +26,19 @@ export default {
} }
}, },
data() { data() {
return { return {
}; };
}, },
created() {}, created() {},
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("chartPile"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/perceivedEvents/warning/exportSelectSection", url: "/perceivedEvents/warning/exportSelectSection",
filename: name, filename: name,
data:this.data, data:this.data,
@ -50,8 +55,8 @@ export default {
data: data data: data
}).then(result=>{ }).then(result=>{
if (result.code != 200) return this.$message.error(result.msg); if (result.code != 200) return this.$message.error(result.msg);
// if(result.data.currentlyMap){ // if(result.data.currentlyMap){
// chartsStatistics.series[0].data = result.data.currentlyMap.map(x=>x.number); // chartsStatistics.series[0].data = result.data.currentlyMap.map(x=>x.number);
// } // }
@ -79,7 +84,7 @@ export default {
chartOption.series[1].data = values2; chartOption.series[1].data = values2;
this.myChart.setOption(chartOption); this.myChart.setOption(chartOption);
}) })
}, },
bindMock(){ bindMock(){
getSectionMarkNumber({ getSectionMarkNumber({

13
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/railway/index.vue

@ -8,7 +8,7 @@
import * as echarts from "echarts"; import * as echarts from "echarts";
import chartsStatistics from "./charts"; import chartsStatistics from "./charts";
import request from "@/utils/request"; import request from "@/utils/request";
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
@ -32,11 +32,16 @@ export default {
created() { }, created() { },
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("situationEchartBox"));
method:'get', this.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/perceivedEvents/warning/exportSectionPerceivedList", url: "/perceivedEvents/warning/exportSectionPerceivedList",
filename: name, filename: name,
data:{}, data:{fileUrl:this.fileUrl},
}); });
}, },
bind() { bind() {

17
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/type/index.vue

@ -1,6 +1,6 @@
<template> <template>
<div class="congestiontType"> <div class="congestiontType">
<div class="charts" id="ctypeAnalysis"></div> <div class="charts" id="ctypeAnalysis"></div>
<div class="legend-box"> <div class="legend-box">
<div v-if="dataList.length ===0" style="width:100%;height: 100%;text-align: center;line-height: 100px;">暂无数据</div> <div v-if="dataList.length ===0" style="width:100%;height: 100%;text-align: center;line-height: 100px;">暂无数据</div>
@ -18,7 +18,7 @@
</el-carousel-item> </el-carousel-item>
</el-carousel> </el-carousel>
</div> </div>
</div> </div>
</template> </template>
@ -28,7 +28,7 @@ import chartsStatistics from "./charts";
import { getWarningTypeDay } from "@/api/event/perceiveEvent"; import { getWarningTypeDay } from "@/api/event/perceiveEvent";
import request from '@/utils/request' import request from '@/utils/request'
import {WarnintType} from '@screen/utils/enum.js' import {WarnintType} from '@screen/utils/enum.js'
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
name: "TypeAnalysis", name: "TypeAnalysis",
@ -54,8 +54,13 @@ export default {
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("ctypeAnalysis"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/perceivedEvents/warning/exportSelectWarningType", url: "/perceivedEvents/warning/exportSelectWarningType",
filename: name, filename: name,
data:this.data, data:this.data,
@ -86,7 +91,7 @@ export default {
}); });
}); });
} }
this.dataList = _dataList; this.dataList = _dataList;
const list = this.dataList.reduce((acc, curr, index) => { const list = this.dataList.reduce((acc, curr, index) => {

21
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/fee/index.vue

@ -10,7 +10,7 @@
import * as echarts from "echarts"; import * as echarts from "echarts";
import chartOptions from "./charts"; import chartOptions from "./charts";
import request from '@/utils/request' import request from '@/utils/request'
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
name: "Flowstate", name: "Flowstate",
@ -22,7 +22,7 @@ export default {
data() { data() {
return {}; return {};
}, },
mounted() { mounted() {
this.$nextTick(()=>{ this.$nextTick(()=>{
this.bind(); this.bind();
@ -42,11 +42,16 @@ export default {
}) })
}, },
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("feeChart"));
method:'get', let fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/business/traffic-statistics/history/exportTrafficFlowAtTollStationEntranceHour", url: "/business/traffic-statistics/history/exportTrafficFlowAtTollStationEntranceHour",
filename: name, filename: name,
data:{}, data:{fileUrl:fileUrl},
}); });
}, },
async bind(){ async bind(){
@ -79,7 +84,7 @@ export default {
chartOptions.series[1].data = ckq chartOptions.series[1].data = ckq
chartOptions.series[2].data = rk.data.map(x=>x.value) chartOptions.series[2].data = rk.data.map(x=>x.value)
chartOptions.series[3].data = rkq chartOptions.series[3].data = rkq
this.myChart.setOption(chartOptions); this.myChart.setOption(chartOptions);
} }
}, },
@ -95,11 +100,11 @@ export default {
.flowstate { .flowstate {
width: 100%; width: 100%;
height: 100%; height: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.tag1 { .tag1 {
position: absolute; position: absolute;
margin-top: -174px; margin-top: -174px;

15
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/flow/index.vue

@ -6,7 +6,7 @@
import * as echarts from "echarts"; import * as echarts from "echarts";
import chartsStatistics from "./charts"; import chartsStatistics from "./charts";
import request from '@/utils/request' import request from '@/utils/request'
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
name: "AnaFlow", name: "AnaFlow",
@ -28,8 +28,13 @@ export default {
created() {}, created() {},
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("anaFlow"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/business/traffic-statistics/history/exportRealTimeTrafficFlow", url: "/business/traffic-statistics/history/exportRealTimeTrafficFlow",
filename: name, filename: name,
data: this.data, data: this.data,
@ -68,7 +73,7 @@ export default {
this.myChart.setOption(chartsStatistics); this.myChart.setOption(chartsStatistics);
echarts.getInstanceByDom(document.getElementById("anaFlow")).resize() echarts.getInstanceByDom(document.getElementById("anaFlow")).resize()
}) })
}) })
} }
}, },
@ -77,7 +82,7 @@ export default {
// var myChart = echarts.init(document.getElementById("anaFlow")); // var myChart = echarts.init(document.getElementById("anaFlow"));
// myChart.setOption(chartsStatistics); // myChart.setOption(chartsStatistics);
// }) // })
// getSectionPerceivedNumber().then((res) => { // getSectionPerceivedNumber().then((res) => {
// if (res.code == 200) { // if (res.code == 200) {
// this.dataList = res.data; // this.dataList = res.data;

19
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/real/index.vue

@ -10,7 +10,7 @@
import * as echarts from "echarts"; import * as echarts from "echarts";
import chartOptions from "./charts"; import chartOptions from "./charts";
import request from '@/utils/request' import request from '@/utils/request'
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
@ -41,11 +41,16 @@ export default {
}) })
}, },
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("flowStateEchartBox"));
method:'get', let fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/business/traffic-statistics/history/exportRealTimeTrafficFlowHour", url: "/business/traffic-statistics/history/exportRealTimeTrafficFlowHour",
filename: name, filename: name,
data:{}, data:{fileUrl:fileUrl},
}); });
}, },
async bind(){ async bind(){
@ -68,7 +73,7 @@ export default {
// chartOptions.series[1].data = jn2.data.map(x=>x.totalFlow) // chartOptions.series[1].data = jn2.data.map(x=>x.totalFlow)
// chartOptions.series[2].data = hz.data.map(x=>x.totalFlow) // chartOptions.series[2].data = hz.data.map(x=>x.totalFlow)
// chartOptions.series[3].data = hz2.data.map(x=>x.totalFlow) // chartOptions.series[3].data = hz2.data.map(x=>x.totalFlow)
request({ request({
url: '/business/traffic-statistics/history/realTimeTrafficFlowHour', url: '/business/traffic-statistics/history/realTimeTrafficFlowHour',
method: 'get' method: 'get'
@ -84,7 +89,7 @@ export default {
this.myChart.setOption(chartOptions); this.myChart.setOption(chartOptions);
}) })
} }
}, },
}; };
@ -97,7 +102,7 @@ export default {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.chartsFs { .chartsFs {
height: 100%; height: 100%;
width: 100%; width: 100%;

15
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/section/index.vue

@ -8,7 +8,7 @@
import * as echarts from "echarts"; import * as echarts from "echarts";
import chartsOption from "./charts"; import chartsOption from "./charts";
import request from '@/utils/request' import request from '@/utils/request'
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
name: "AnaSituation", name: "AnaSituation",
@ -30,8 +30,13 @@ export default {
created() {}, created() {},
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("anaSituation"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/business/traffic-statistics/history/exportSectionTrafficRanking", url: "/business/traffic-statistics/history/exportSectionTrafficRanking",
filename: name, filename: name,
data: this.data, data: this.data,
@ -58,13 +63,13 @@ export default {
chartsOption.yAxis[0].data = res.data.map(x=>x.facilityName); chartsOption.yAxis[0].data = res.data.map(x=>x.facilityName);
chartsOption.series[0].data = res.data.map(x=>x.trafficVolume); chartsOption.series[0].data = res.data.map(x=>x.trafficVolume);
this.myChart.setOption(chartsOption); this.myChart.setOption(chartsOption);
}) })
} }
}, },
mounted() { mounted() {
}, },
}; };
</script> </script>

15
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/timer/index.vue

@ -6,7 +6,7 @@
import * as echarts from "echarts"; import * as echarts from "echarts";
import chartOption from "./charts"; import chartOption from "./charts";
import request from '@/utils/request' import request from '@/utils/request'
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
name: "Timer", name: "Timer",
@ -28,8 +28,13 @@ export default {
created() {}, created() {},
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("chartsTimer"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/business/traffic-statistics/history/exportTrafficPeriodAnalysis", url: "/business/traffic-statistics/history/exportTrafficPeriodAnalysis",
filename: name, filename: name,
data: this.data, data: this.data,
@ -62,10 +67,10 @@ export default {
}).then(resLastYear=>{ }).then(resLastYear=>{
chartOption.series[0].data = res.data.map(x=>x.trafficVolume); chartOption.series[0].data = res.data.map(x=>x.trafficVolume);
chartOption.series[1].data = resLastYear.data.map(x=>x.trafficVolume); chartOption.series[1].data = resLastYear.data.map(x=>x.trafficVolume);
this.myChart.setOption(chartOption); this.myChart.setOption(chartOption);
}) })
}) })
} }
}, },

11
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/analysis/section/index.vue

@ -6,7 +6,7 @@
import * as echarts from "echarts"; import * as echarts from "echarts";
import request from '@/utils/request' import request from '@/utils/request'
import chartOption from "./charts"; import chartOption from "./charts";
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
const enum_group = [ const enum_group = [
{name: '殷家林枢纽', id: 1}, {name: '殷家林枢纽', id: 1},
@ -43,8 +43,13 @@ export default {
created() { }, created() { },
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("chtSection"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/business/traffic-statistics/history/exportSectionTrafficIndexAnalysis", url: "/business/traffic-statistics/history/exportSectionTrafficIndexAnalysis",
filename: name, filename: name,
data: this.data, data: this.data,

21
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficSituation/analysis/timer/index.vue

@ -6,7 +6,7 @@
import * as echarts from "echarts"; import * as echarts from "echarts";
import chartOption from "./charts"; import chartOption from "./charts";
import request from '@/utils/request' import request from '@/utils/request'
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
@ -26,8 +26,13 @@ export default {
created() {}, created() {},
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("divTimer"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/business/traffic-statistics/history/exportPassIndicatorTimeDistribution", url: "/business/traffic-statistics/history/exportPassIndicatorTimeDistribution",
filename: name, filename: name,
data: this.data, data: this.data,
@ -59,7 +64,7 @@ export default {
}).then(resLastYear => { }).then(resLastYear => {
let perList = [] let perList = []
let _data = _.cloneDeep(res.data); let _data = _.cloneDeep(res.data);
let _dataYes = _.cloneDeep(resLastYear.data); let _dataYes = _.cloneDeep(resLastYear.data);
let substr = 11; let substr = 11;
@ -111,18 +116,18 @@ export default {
chartOption.series[3].data = v3; chartOption.series[3].data = v3;
chartOption.series[4].data = v4; chartOption.series[4].data = v4;
chartOption.series[5].data = v5; chartOption.series[5].data = v5;
this.myChart.setOption(chartOption); this.myChart.setOption(chartOption);
}) })
}) })
// this.myChart = echarts.init(document.getElementById("divTimer")); // this.myChart = echarts.init(document.getElementById("divTimer"));
// this.myChart.setOption(options); // this.myChart.setOption(options);
} }
}, },
mounted() { mounted() {
}, },
}; };
</script> </script>

15
ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/nucleusThrough/index.vue

@ -5,7 +5,7 @@
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
import request from "@/utils/request"; import request from "@/utils/request";
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
name: "nucleusThrough", name: "nucleusThrough",
components: { components: {
@ -24,8 +24,13 @@ export default {
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("nucleusThrough"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: `/business/manage/exportEventTypePublishManageMonth`, url: `/business/manage/exportEventTypePublishManageMonth`,
filename: name, filename: name,
data: this.data data: this.data
@ -37,14 +42,14 @@ export default {
} }
dateTime = dateTime.format('YYYY-MM-DD HH:mm:ss') dateTime = dateTime.format('YYYY-MM-DD HH:mm:ss')
this.data = {publishTime:dateTime} this.data = {publishTime:dateTime}
request({ request({
url: `/business/manage/eventTypePublishManageMonth`, url: `/business/manage/eventTypePublishManageMonth`,
method: "post", method: "post",
data: this.data data: this.data
}) })
.then((result) => { .then((result) => {
if (result.code != 200) return; if (result.code != 200) return;
const totalData = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; const totalData = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];

21
ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/postTrendsDay/index.vue

@ -1,12 +1,12 @@
<template> <template>
<div class="charts" id="postTrendsDay"></div> <div class="charts" id="postTrendsDay"></div>
</template> </template>
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
import chartsStatistics from "./charts"; import chartsStatistics from "./charts";
import request from "@/utils/request"; import request from "@/utils/request";
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
name: 'RailWayDay', name: 'RailWayDay',
components: { components: {
@ -26,10 +26,16 @@ export default {
}, },
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("postTrendsDay"));
method:'get', let fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: "/business/manage/exportTrendsPublishManage", url: "/business/manage/exportTrendsPublishManage",
filename: name, filename: name,
data:{fileUrl:fileUrl}
}); });
}, },
bindTrendsPublishManage(){ bindTrendsPublishManage(){
@ -51,14 +57,14 @@ export default {
e.data = sdata[i] e.data = sdata[i]
}); });
this.myChart.setOption(chartsStatistics); this.myChart.setOption(chartsStatistics);
}) })
}, },
}, },
mounted() { mounted() {
this.$nextTick(() => { this.$nextTick(() => {
this.bindTrendsPublishManage(); this.bindTrendsPublishManage();
}) })
// setTimeout(() => { // setTimeout(() => {
// this.$nextTick(() => { // this.$nextTick(() => {
// var myChart = echarts.init(document.getElementById('postTrendsDay')); // var myChart = echarts.init(document.getElementById('postTrendsDay'));
@ -68,7 +74,7 @@ export default {
}, },
} }
</script> </script>
<style lang='scss' scoped> <style lang='scss' scoped>
@ -77,4 +83,3 @@ export default {
width: 100%; width: 100%;
} }
</style> </style>

23
ruoyi-ui/src/views/JiHeExpressway/pages/service/publicService/postTrendsMonth/index.vue

@ -7,7 +7,7 @@ import * as echarts from "echarts";
import chartsStatistics from "./charts"; import chartsStatistics from "./charts";
import request from "@/utils/request"; import request from "@/utils/request";
import moment from "moment"; import moment from "moment";
import { exportFile } from "@screen/utils/common"; import { exportImgFile,exportFile } from "@screen/utils/common";
export default { export default {
name: "postTrendsMonth", name: "postTrendsMonth",
components: { components: {
@ -27,8 +27,13 @@ export default {
methods: { methods: {
export(name){ export(name){
exportFile({ this.myChart = echarts.init(document.getElementById("postTrendsMonth"));
method:'get', this.data.fileUrl = this.myChart.getDataURL({
type: 'png', // 'png' 'jpeg'
backgroundColor: '#132d38' //
})
exportImgFile({
method:'post',
url: `/business/manage/exportMonthTrendsPublishManage`, url: `/business/manage/exportMonthTrendsPublishManage`,
filename: name, filename: name,
data:this.data, data:this.data,
@ -60,9 +65,9 @@ export default {
for(let i = start; i <= end; i++){ for(let i = start; i <= end; i++){
_xAsix.push((i<10?'0'+i.toString():i.toString())+'') _xAsix.push((i<10?'0'+i.toString():i.toString())+'')
} }
let sdata = [[],[],[]] let sdata = [[],[],[]]
_xAsix.forEach(x=>{ _xAsix.forEach(x=>{
sdata.forEach(s=>{ sdata.forEach(s=>{
s.push(0) s.push(0)
@ -76,20 +81,20 @@ export default {
e.data = sdata[i] e.data = sdata[i]
}); });
chartsStatistics.xAxis.data = _xAsix chartsStatistics.xAxis.data = _xAsix
this.myChart.setOption(chartsStatistics); this.myChart.setOption(chartsStatistics);
}) })
}, },
}, },
mounted() { mounted() {
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.charts { .charts {
height: 100%; height: 100%;
width: 100%; width: 100%;

41
ruoyi-ui/src/views/JiHeExpressway/utils/common.js

@ -33,6 +33,47 @@ export function delay(ms = 240) {
return new Promise((resolve) => setTimeout(() => resolve(void 0), ms)); return new Promise((resolve) => setTimeout(() => resolve(void 0), ms));
} }
/**
*
* @param {{ method?: string; url: string; data?: string; type?: string; filename?: string; }} options
*/
export function exportImgFile({
url,
method = "post",
data,
type = "application/vnd.ms-excel",
filename = "download",
ext = "xlsx",
} = {}) {
if (!url) return;
const closeMessage = loadingMessage({ message: "文件下载中..." });
request({
url,
method,
responseType: "blob",
data: {
...data,
}
})
.then((result) => {
const blob = new Blob([result], { type });
const downloadElement = document.createElement("a");
const href = window.URL.createObjectURL(blob);
downloadElement.href = href;
downloadElement.download = result.filename || `${filename}.${ext}`;
document.body.appendChild(downloadElement);
downloadElement.click();
document.body.removeChild(downloadElement);
window.URL.revokeObjectURL(href);
Message.success("文件下载成功");
})
.catch((err) => {
Message.error("文件下载失败");
})
.finally(() => closeMessage());
}
/** /**
* *
* @param {{ method?: string; url: string; data?: string; type?: string; filename?: string; }} options * @param {{ method?: string; url: string; data?: string; type?: string; filename?: string; }} options

Loading…
Cancel
Save