diff --git a/src/util/api/api.js b/src/util/api/api.js index 21439e4..76af394 100644 --- a/src/util/api/api.js +++ b/src/util/api/api.js @@ -32,6 +32,8 @@ export const getHzData = data => post("/devProjectJt/divFeeStat/getHzData", data export const getEveryClassFee = data => post("/devProjectJt/divFeeStat/getEveryClassFee", data,"") //导出明细数据 export const exportDivPassidAllData = data => download("/devProjectJt/exportData/exportList", data,null) +//查询路线数据 +export const getGantryListByLineNo = data => post("/devProjectJt/roadLine/getGantryListByLineNo", data,null) //20250417 数据核验数据展示 export const getFeeShowTotal = data => post("/devProjectJt/divFeeStat/getFeeShowTotal", data,"") @@ -40,10 +42,16 @@ export const getVehicleClassToal = data => post("/devProjectJt/divFeeStat/getVeh //20250507 未计费 未拆分数据核验 export const getFeeListByPage = data => post("/devProjectJt/divPassidAll/getFeeListByPage", data,"") -export const getDivListByPage = data => post("/devProjectJt/divPassidAll/getDivListByPage", data,"") +export const getDivFeeListByPage = data => post("/devProjectJt/divPassidAll/getDivFeeListByPage", data,"") +//根据计费无拆分数据查找无计费有拆分的数据 +export const getDivListByFeeId = data => post("/devProjectJt/divPassidAll/getDivListByFeeId", data,"") +//数据匹配 +export const matchData = data => post("/devProjectJt/noFeeOrDivfee/matchData", data,"") //20250513 - export const getFeeunitListByPage = data => post("/devProjectJt/feeunit/getListByPage", data,"") //导出汇总数据 export const exportEveryData = data => download("/devProjectJt/exportData/exportEveryList", data,null) + +//20250526 获取地图信息 +export const getMapDivDatas = data => post("/devProjectJt/mapFee/getMapDivDatas", data,"") \ No newline at end of file diff --git a/src/util/router/router.js b/src/util/router/router.js index 334408c..c3ca3e6 100644 --- a/src/util/router/router.js +++ b/src/util/router/router.js @@ -13,7 +13,7 @@ const routes = [ { path: '/', - component: nodivAndnofee,// + component: gsCheckMain,// },{ path: '/devProjectJt/divfeeShowStat', component: divfeeShowStat,// diff --git a/src/util/tool.js b/src/util/tool.js index 4d57a70..3f7c23e 100644 --- a/src/util/tool.js +++ b/src/util/tool.js @@ -165,7 +165,25 @@ let pro = { return 0 } return value - },initOptionPublic(data,echartsId,title,subtext) { + }, getCurrentDateHour:function(){ + var date = new Date(); //获取今天日期 + const year = date.getFullYear(); + const month = (date.getMonth() + 1).toString().padStart(2, '0'); + const day = date.getDate().toString().padStart(2, '0'); + let hour=date.getHours(); + let minute=date.getMinutes(); + let second=date.getSeconds(); + if(hour<10){ + hour ="0"+hour; + } + if(minute<10){ + minute ="0"+minute; + } + if(second<10){ + second ="0"+second; + } + return year.toString()+month+day+hour.toString()+minute.toString()+second.toString(); +},initOptionPublic(data,echartsId,title,subtext) { let myChart = this.$echarts.init(document.getElementById(echartsId)) // 绘制图表 this.option = { diff --git a/src/views/dev/detail/everyDayData.vue b/src/views/dev/detail/everyDayData.vue index a4561b0..91309a1 100644 --- a/src/views/dev/detail/everyDayData.vue +++ b/src/views/dev/detail/everyDayData.vue @@ -147,7 +147,8 @@ body{ \ No newline at end of file diff --git a/src/views/dev/detail/nodivandnofee/FeeMatchNoDiv.vue b/src/views/dev/detail/nodivandnofee/FeeMatchNoDiv.vue new file mode 100644 index 0000000..1ccad31 --- /dev/null +++ b/src/views/dev/detail/nodivandnofee/FeeMatchNoDiv.vue @@ -0,0 +1,222 @@ + + + + + \ No newline at end of file diff --git a/src/views/dev/detail/nodivandnofee/divAndNoFee.vue b/src/views/dev/detail/nodivandnofee/divAndNoFee.vue new file mode 100644 index 0000000..c2b8a3a --- /dev/null +++ b/src/views/dev/detail/nodivandnofee/divAndNoFee.vue @@ -0,0 +1,289 @@ + + + + + + \ No newline at end of file diff --git a/src/views/dev/detail/nodivandnofee/divAndNofee.vue b/src/views/dev/detail/nodivandnofee/divAndNofee.vue deleted file mode 100644 index d166048..0000000 --- a/src/views/dev/detail/nodivandnofee/divAndNofee.vue +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/views/dev/detail/nodivandnofee/feeAndNodiv.vue b/src/views/dev/detail/nodivandnofee/feeAndNodiv.vue index 2b86fca..e0095f5 100644 --- a/src/views/dev/detail/nodivandnofee/feeAndNodiv.vue +++ b/src/views/dev/detail/nodivandnofee/feeAndNodiv.vue @@ -9,23 +9,29 @@ :row-style="rowStyle"> - - - - - - + + + + + + + + + - - - - 数据匹配 + + 路径匹配 @@ -35,7 +41,7 @@ @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" - :page-sizes="[15, 30,50,100]" + :page-sizes="[20, 30,50,100]" :page-size="pageSize" :total="totalCount" layout="total, sizes, prev, pager, next, jumper" @@ -43,12 +49,12 @@ - - - - + + + @@ -57,20 +63,28 @@ height: 100% ; width: 100%; } +#detail_dialog_fee{ + margin-top: 20px !important; + width:80%; + height: 75%; + padding-bottom: 0 !important; +} + \ No newline at end of file diff --git a/src/views/dev/echarts/echatsTotalLine.vue b/src/views/dev/echarts/echatsTotalLine.vue index 1aae94b..b7de1c1 100644 --- a/src/views/dev/echarts/echatsTotalLine.vue +++ b/src/views/dev/echarts/echatsTotalLine.vue @@ -173,7 +173,7 @@ export default { //position:['20px','20px'] }, legend: { - data:["流量(辆)","金额(元)"] + data:["流量(万辆)","金额(万元)"] }, toolbox: { show : true, @@ -218,20 +218,24 @@ export default { textStyle:{fontSize:10} }, data : dataX - }, dataZoom: [{ - type: 'slider', - show: true, //flase直接隐藏图形 - xAxisIndex: [0], - backgroundColor:'rgb(233,236,238)', - handleColor:'rgba(147,145,145,0.81)', - fillerColor:'rgb(184,186,187)', - handleSize:30,//控制手柄大小 - height:30, - left: '9%', //滚动条靠左侧的百分比 - bottom: -5, - start: 0,//滚动条的起始位置 - end: 110 //滚动条的截止位置(按比例分割你的柱状图x轴长度) - }], + }, + dataZoom: [ { + type: 'inside' + },{ + type: 'slider', + show: true, //flase直接隐藏图形 + xAxisIndex: [0], + backgroundColor:'rgb(233,236,238)', + handleColor:'rgba(147,145,145,0.81)', + fillerColor:'rgb(184,186,187)', + handleSize:30,//控制手柄大小 + height:30, + left: '9%', //滚动条靠左侧的百分比 + bottom: -5, + start: 0,//滚动条的起始位置 + end: 110 //滚动条的截止位置(按比例分割你的柱状图x轴长度) + } + ], yAxis :[ { type : 'value', @@ -271,7 +275,7 @@ export default { ], series : [ { - name:'流量(辆)', + name:'流量(万辆)', type:'line', data:dataFlow, label:{ @@ -281,7 +285,7 @@ export default { }, yAxisIndex:0 },{ - name:'金额(元)', + name:'金额(万元)', type:'bar', data:dataMoney, label:{ @@ -311,7 +315,7 @@ export default { //position:['20px','20px'] }, legend: { - data:["流量(辆)","计费金额(元)","拆分金额(元)"] + data:["流量(万辆)","计费金额(万元)","拆分金额(万元)"] }, toolbox: { show : true, @@ -357,19 +361,21 @@ export default { }, data : dataX }, dataZoom: [{ - type: 'slider', - show: true, //flase直接隐藏图形 - xAxisIndex: [0], - backgroundColor:'rgb(233,236,238)', - handleColor:'rgba(147,145,145,0.81)', - fillerColor:'rgb(184,186,187)', - handleSize:30,//控制手柄大小 - height:30, - left: '9%', //滚动条靠左侧的百分比 - bottom: -5, - start: 0,//滚动条的起始位置 - end: 110 //滚动条的截止位置(按比例分割你的柱状图x轴长度) - }], + type: 'inside' + },{ + type: 'slider', + show: true, //flase直接隐藏图形 + xAxisIndex: [0], + backgroundColor:'rgb(233,236,238)', + handleColor:'rgba(147,145,145,0.81)', + fillerColor:'rgb(184,186,187)', + handleSize:30,//控制手柄大小 + height:30, + left: '9%', //滚动条靠左侧的百分比 + bottom: -5, + start: 0,//滚动条的起始位置 + end: 110 //滚动条的截止位置(按比例分割你的柱状图x轴长度) + }], yAxis :[ { type : 'value', @@ -409,7 +415,7 @@ export default { ], series : [ { - name:'流量(辆)', + name:'流量(万辆)', type:'line', data:dataFlow, label:{ @@ -419,7 +425,7 @@ export default { }, yAxisIndex:0 },{ - name:'计费金额(元)', + name:'计费金额(万元)', type:'bar', data:dataMoney, label:{ @@ -429,7 +435,7 @@ export default { }, yAxisIndex:1 },{ - name:'拆分金额(元)', + name:'拆分金额(万元)', type:'bar', data:dataFeeMoney, label:{ diff --git a/src/views/dev/echarts/roadLineEcharts.vue b/src/views/dev/echarts/roadLineEcharts.vue new file mode 100644 index 0000000..1046d91 --- /dev/null +++ b/src/views/dev/echarts/roadLineEcharts.vue @@ -0,0 +1,422 @@ + + + + + \ No newline at end of file diff --git a/src/views/dev/gsCheckMain.vue b/src/views/dev/gsCheckMain.vue index e8c0c0e..aa4915d 100644 --- a/src/views/dev/gsCheckMain.vue +++ b/src/views/dev/gsCheckMain.vue @@ -51,7 +51,7 @@ - +
@@ -62,22 +62,8 @@
- -
-
+
+
@@ -90,7 +76,7 @@
-
+
@@ -109,11 +95,11 @@ body{ width: 100% !important; } .contain-div{ - height: 90%; + height: 89%; width: 100%; } .top_div{ - height: 10%; + height: 11%; width: 100%; border-bottom: #c9c6c6 solid; top: 0; @@ -126,7 +112,7 @@ body{ import { Search, Upload } from '@element-plus/icons-vue' -import {getSelectList, getRankList, getHzData, exportDivPassidAllData} from "@/util/api/api"; +import {getSelectList, getTotalFeeAndDivFee} from "@/util/api/api"; import everyDayData from "@/views/dev/detail/everyDayData.vue"; import hbData from "@/views/dev/detail/hbData.vue"; import echatsTotalLine from "@/views/dev/echarts/echatsTotalLine.vue"; @@ -143,6 +129,7 @@ data() { showHZ:true, showHZMF:false, loading:false, + showDiv:true, rpTime:"", num:90, searchButton:Search, @@ -167,12 +154,20 @@ data() { }, methods: { changeRadio(value){ + if(this.rpTime){ + this.begindate=this.rpTime[0]; + this.enddate=this.rpTime[1]; + this.tableloading=true; + this.hbStartTimeQuery=tool.DayDec(this.begindate,0- this.diffDate); + this.hbEndTimeQuery=tool.DayDec(this.enddate,0- this.diffDate); + } if(value===3){ this.showExportButton=false; this.hbShow=true; this.showHZ=false; this.showHZMF=false; this.showClass=false; + this.showDiv=false; if(this.begindate && this.enddate && this.enddate!==""){ this.hbStartTimeQuery=tool.DayDec(this.begindate,0- this.diffDate); this.hbEndTimeQuery=tool.DayDec(this.enddate,0- this.diffDate); @@ -184,6 +179,7 @@ methods: { this.showHZ=false; this.showHZMF=false; this.showClass=true; + this.showDiv=false; this.$refs["everyDayDataJM"].refreshData(this.begindate,this.enddate,this.subcomno,this.roadno,this.stano,this.radio) }else if(value===6 ){ if(!this.num){ @@ -191,9 +187,25 @@ methods: { } this.showExportButton=true; this.hbShow=false; + this.showDiv=true; this.showHZ=true; this.showHZMF=false; this.showClass=false; + if(!this.begindate){ + var data=[]; + data.push({ + value: 0, + name: "未拆分" + }); + data.push({ + value: 0, + name: "已拆分" + }); + this.initOptionPie(data,"feePie","未拆分金额与已拆分金额","单位:万元"); + }else{ + getTotalFeeAndDivFeeA(); + this.$refs["echatsTotalLine"].refreshData(this.begindate,this.enddate,this.subcomno,this.roadno,this.stano); + } this.$refs["everyDayData"].refreshData(this.begindate,this.enddate,this.subcomno,this.roadno,this.stano,this.radio,this.num) } @@ -201,7 +213,7 @@ methods: { if(!this.num){ this.num=90; } - if(value===6 ){ + if(this.radio===6 ){ this.hbShow=false; this.showHZ=true; this.showHZMF=false; @@ -218,7 +230,6 @@ methods: { } }, search() {//查询 - console.log(this.rpTime) if(this.rpTime){ this.begindate=this.rpTime[0]; this.enddate=this.rpTime[1]; @@ -229,14 +240,14 @@ methods: { alert("请选择日期"); return ; } - + getTotalFeeAndDivFeeA(); this.$refs["echatsTotalLine"].refreshData(this.begindate,this.enddate,this.subcomno,this.roadno,this.stano); if(this.radio ===3){ this.$refs["hbData"].refreshDataHb(this.begindate,this.enddate,this.hbStartTimeQuery,this.hbEndTimeQuery) }else if(this.radio ===9){ this.$refs["everyDayDataJM"].refreshData(this.begindate,this.enddate,this.subcomno,this.roadno,this.stano,this.radio) }else{ - this.$refs["everyDayData"].refreshData(this.begindate,this.enddate,this.subcomno,this.roadno,this.stano,this.radio) + this.$refs["everyDayData"].refreshData(this.begindate,this.enddate,this.subcomno,this.roadno,this.stano,this.radio,this.num) } }, changesubcomnoValue() { this.stano=""; @@ -248,8 +259,15 @@ methods: { this.stano=""; getStalist(); },exportExcle(){ + if(this.rpTime){ + this.begindate=this.rpTime[0]; + this.enddate=this.rpTime[1]; + this.tableloading=true; + this.hbStartTimeQuery=tool.DayDec(this.begindate,0- this.diffDate); + this.hbEndTimeQuery=tool.DayDec(this.enddate,0- this.diffDate); + } this.$refs["everyDayData"].exportExcle(this.begindate,this.enddate,this.subcomno,this.roadno,this.stano,this.radio) - },initOption(data,echartsId,title,subtext) { + },initOptionPie(data,echartsId,title,subtext) { let myChart = this.$echarts.init(document.getElementById(echartsId)) // 绘制图表 this.option = { @@ -263,8 +281,10 @@ methods: { left:'left' }, legend: { - orient: 'horizontal', // vertical 水平 - top: 'bottom', + orient: 'vertical', // vertical 垂直 horizontal 水平 + //orient: 'vertical', // vertical 垂直 + left: '80%', + top:'30%', fontSize:'5px' }, series: [ @@ -273,7 +293,7 @@ methods: { avoidLabelOverlap: true, // 是否启用防止标签重叠策略 radius: '55%',//饼图大小,55 最大,不要加中括号,否则 label不生效 //radius: ['50%','70%'],//饼图大小,55 最大,不要加中括号,否则 label不生效 - center: ['50%', '50%'],//饼图 X Y 坐标 + center: ['50%', '60%'],//饼图 X Y 坐标 itemStyle: { shadowBlur: 10, shadowOffsetX: 0, @@ -326,7 +346,11 @@ mounted() { value: 0, name: "未拆分" }); - this.initOption(data,"feePie","未拆分金额与已拆分金额","单位:万元"); + data.push({ + value: 0, + name: "已拆分" + }); + this.initOptionPie(data,"feePie","未拆分金额与已拆分金额","单位:万元"); } } @@ -381,7 +405,7 @@ function getStalist() { } ) } -function getTotalFeeAndDivFee() { +function getTotalFeeAndDivFeeA() { let staParams = { "queryStartTime": _this.begindate, "queryEndTime": _this.enddate, @@ -389,6 +413,7 @@ function getTotalFeeAndDivFee() { "roadno": _this.roadno, "stano": _this.stano } + _this.loading=true; var data = []; getTotalFeeAndDivFee(staParams).then( res => { @@ -408,7 +433,7 @@ function getTotalFeeAndDivFee() { _this.totalFee = 0 _this.totaldivfee = 0 } - tool.initOption(data,"feePie","未拆分金额与已拆分金额","单位:万元") + _this.initOptionPie(data,"feePie","未拆分金额与已拆分金额","单位:万元") } ) } diff --git a/src/views/dev/nodivAndnofee.vue b/src/views/dev/nodivAndnofee.vue index 45d6891..8ab3fb9 100644 --- a/src/views/dev/nodivAndnofee.vue +++ b/src/views/dev/nodivAndnofee.vue @@ -44,7 +44,7 @@ - + 计费未拆分 @@ -63,14 +63,17 @@
查询 + 一键匹配
-
+
- +
+ +