diff --git a/src/util/api/api.js b/src/util/api/api.js index 76af394..a2cca5e 100644 --- a/src/util/api/api.js +++ b/src/util/api/api.js @@ -21,6 +21,7 @@ export const getDivDataList = data => post("/devProjectJt/divFeeStat/getDivDataL export const getFeeTotal = data => post("/devProjectJt/divFeeStat/getFeeTotal", data,"") export const getHbData = data => post("/devProjectJt/divFeeStat/getHbData", data,"") export const getFeeTotalStatus = data => post("/devProjectJt/divFeeStat/getFeeTotalStatus", data,"") +export const getFeeBarData = data => post("/devProjectJt/divFeeStat/getFeeBarData", data,"") //查询所有计费单元的经纬度,通过门架查找 @@ -42,9 +43,13 @@ export const getVehicleClassToal = data => post("/devProjectJt/divFeeStat/getVeh //20250507 未计费 未拆分数据核验 export const getFeeListByPage = data => post("/devProjectJt/divPassidAll/getFeeListByPage", data,"") +export const getMatchListByPage = data => post("/devProjectJt/divPassidAllMatch/getMatchListByPage", data,"") +export const getProvinceListByPage = data => post("/devProjectJt/divPassidAll/getListByPage", data,"") +export const getProvinceData = data => post("/devProjectJt/divPassidAll/getProvinceData", data,"") export const getDivFeeListByPage = data => post("/devProjectJt/divPassidAll/getDivFeeListByPage", data,"") //根据计费无拆分数据查找无计费有拆分的数据 export const getDivListByFeeId = data => post("/devProjectJt/divPassidAll/getDivListByFeeId", data,"") +export const getFeeListByDivFeeId = data => post("/devProjectJt/divPassidAll/getFeeListByDivFeeId", data,"") //数据匹配 export const matchData = data => post("/devProjectJt/noFeeOrDivfee/matchData", data,"") //20250513 @@ -52,6 +57,8 @@ export const getFeeunitListByPage = data => post("/devProjectJt/feeunit/getListB //导出汇总数据 export const exportEveryData = data => download("/devProjectJt/exportData/exportEveryList", data,null) +export const exportExcleProvinceData = data => download("/devProjectJt/exportData/exportExcleProvinceData", data,null) +export const exportExcleQueryMatch = data => download("/devProjectJt/exportData/exportExcleQueryMatch", data,null) //20250526 获取地图信息 export const getMapDivDatas = data => post("/devProjectJt/mapFee/getMapDivDatas", data,"") \ No newline at end of file diff --git a/src/util/axios/axios.js b/src/util/axios/axios.js index f5ab85d..8d2a8aa 100644 --- a/src/util/axios/axios.js +++ b/src/util/axios/axios.js @@ -4,8 +4,8 @@ import {ElMessage} from "element-plus"; // axios.defaults.staticBaseURL = '../' -//axios.defaults.baseURL = 'http://' + window.location.host //正式 -axios.defaults.baseURL = 'http://' + window.location.hostname + ':9004' //测试 +axios.defaults.baseURL = 'http://' + window.location.host //正式 +//axios.defaults.baseURL = 'http://' + window.location.hostname + ':9004' //测试 //post请求头 //axios.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8"; @@ -67,7 +67,6 @@ axios.interceptors.response.use( alert(JSON.stringify(error), '请求异常', { confirmButtonText: '确定', callback: (action) => { - console.log(action) } }); } diff --git a/src/views/dev/detail/everyDayData.vue b/src/views/dev/detail/everyDayData.vue index 91309a1..86bbb43 100644 --- a/src/views/dev/detail/everyDayData.vue +++ b/src/views/dev/detail/everyDayData.vue @@ -230,9 +230,6 @@ export default{ this.updateDetail= this.updateDetail+1; },getStatusColor(status) { // 根据状态返回颜色值 if(status !== undefined){ - console.log("status======"+status); - console.log("num======"+this.num); - console.log("ret======"+status >= this.num); if(status >= this.num){ return '#67C23A'; // 成功:绿色 }else{ diff --git a/src/views/dev/detail/everyDayDataJM.vue b/src/views/dev/detail/everyDayDataJM.vue index 28fc499..f389c25 100644 --- a/src/views/dev/detail/everyDayDataJM.vue +++ b/src/views/dev/detail/everyDayDataJM.vue @@ -11,16 +11,16 @@ :header-cell-style="headlerCss" style="width: 100%;height: 100%"> - - - - - - - - - - + + + + + + + + + + diff --git a/src/views/dev/detail/feeStatDetail.vue b/src/views/dev/detail/feeStatDetail.vue index a457487..8b53d68 100644 --- a/src/views/dev/detail/feeStatDetail.vue +++ b/src/views/dev/detail/feeStatDetail.vue @@ -244,7 +244,6 @@ export default { this.totalCount=res.total; }) getTotal(params).then(res=>{ - console.log("明细页面====fee==="+(res.fee/100)+"====divfee==="+(res.divfee /100)) this.totalfee = (res.fee /1000000).toFixed(2); this.totaldivfee= (res.divfee /1000000).toFixed(2); }) diff --git a/src/views/dev/detail/map.vue b/src/views/dev/detail/map.vue index e5e4b7a..ea30d7f 100644 --- a/src/views/dev/detail/map.vue +++ b/src/views/dev/detail/map.vue @@ -20,7 +20,7 @@ \ No newline at end of file diff --git a/src/views/dev/detail/nodivandnofee/mapFee.vue b/src/views/dev/detail/nodivandnofee/mapFee.vue index 6eeaba0..67e3dca 100644 --- a/src/views/dev/detail/nodivandnofee/mapFee.vue +++ b/src/views/dev/detail/nodivandnofee/mapFee.vue @@ -152,7 +152,6 @@ export default { } } } - console.log("中心坐标======LNG===="+LNG+"====LAT========"+LAT+"===STANAME====="); let styleOption = Object.assign( {}, HDmap.MapStyle.SM_WMTS_VEC_WHITE, @@ -228,7 +227,6 @@ export default { if (this.fitGantry != null && this.fitGantry.length > 0) { for (let i = 0; i < this.fitGantry.length; i++) { if(this.fitGantry[i].LNG !="" && this.fitGantry[i].LAT != ""){ - console.log("计费坐标名称====="+this.fitGantry[i].staName+"("+this.fitGantry[i].FEE+")"); this.fitFeatures[this.fitFeatures.length] = { "type": "Feature", "properties": { @@ -270,7 +268,6 @@ export default { if (this.divGantry != null && this.divGantry.length > 0) { for (let i = 0; i < this.divGantry.length; i++) { if(this.divGantry[i].LNG !="" && this.divGantry[i].LAT != ""){ - console.log("拆分坐标名称====="+this.divGantry[i].staName+"("+this.divGantry[i].FEE+")"); this.divFeatures[this.divFeatures.length] = { "type": "Feature", "properties": { @@ -343,7 +340,6 @@ export default { // this.mapStyle = 'width:100%;height: ' + document.documentElement.clientHeight * 0.75 + 'px;z-index: 1;' this.mapStyle = 'width: 100%;height:100%;position:relative;z-index: 1;' if(this.$props.params ==undefined || this.$props.params=='' || this.$props.params=='null'){ - console.log("params值为空=================="); }else{ this.getMapDatas(this.$props.params); } diff --git a/src/views/dev/detail/nodivandnofee/provinceData.vue b/src/views/dev/detail/nodivandnofee/provinceData.vue new file mode 100644 index 0000000..c734e9a --- /dev/null +++ b/src/views/dev/detail/nodivandnofee/provinceData.vue @@ -0,0 +1,167 @@ + + + + + + \ No newline at end of file diff --git a/src/views/dev/detail/nodivandnofee/provinceDetail.vue b/src/views/dev/detail/nodivandnofee/provinceDetail.vue new file mode 100644 index 0000000..ca2d08b --- /dev/null +++ b/src/views/dev/detail/nodivandnofee/provinceDetail.vue @@ -0,0 +1,297 @@ + + + + + \ No newline at end of file diff --git a/src/views/dev/detail/nodivandnofee/querySolveData.vue b/src/views/dev/detail/nodivandnofee/querySolveData.vue new file mode 100644 index 0000000..460ee6f --- /dev/null +++ b/src/views/dev/detail/nodivandnofee/querySolveData.vue @@ -0,0 +1,226 @@ + + + + + + \ No newline at end of file diff --git a/src/views/dev/divfeeShowStat.vue b/src/views/dev/divfeeShowStat.vue index 47e853a..52d1f99 100644 --- a/src/views/dev/divfeeShowStat.vue +++ b/src/views/dev/divfeeShowStat.vue @@ -115,7 +115,6 @@ data() { }, methods: { search() {//查询 - console.log(tool.DayDec(new Date(),-1)) if(this.rpTime){ this.begindate=this.rpTime[0]; this.enddate=this.rpTime[1]; diff --git a/src/views/dev/echarts/mainEchartsBar.vue b/src/views/dev/echarts/mainEchartsBar.vue new file mode 100644 index 0000000..1b5e1e3 --- /dev/null +++ b/src/views/dev/echarts/mainEchartsBar.vue @@ -0,0 +1,537 @@ + + + + + + \ No newline at end of file diff --git a/src/views/dev/echarts/roadLineEcharts.vue b/src/views/dev/echarts/roadLineEcharts.vue index 1046d91..8c4605a 100644 --- a/src/views/dev/echarts/roadLineEcharts.vue +++ b/src/views/dev/echarts/roadLineEcharts.vue @@ -1,15 +1,15 @@ @@ -44,6 +44,7 @@ export default { let dataFlow=[]; let datakFlow=[]; let datahFlow=[]; + this.rankClassText="ZT"; for(var i=0;i
-
+
+
@@ -112,7 +113,7 @@ body{ import { Search, Upload } from '@element-plus/icons-vue' -import {getSelectList, getTotalFeeAndDivFee} from "@/util/api/api"; +import { getSelectList, getTotalFeeAndDivFee,getFeeBarData} 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"; @@ -150,6 +151,8 @@ data() { stano: "", totalFee: 0, totalDiv: 0, + dataFee:[], + dataDivFee:[] } }, methods: { @@ -204,6 +207,7 @@ methods: { this.initOptionPie(data,"feePie","未拆分金额与已拆分金额","单位:万元"); }else{ getTotalFeeAndDivFeeA(); + getBarData(); 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) @@ -241,6 +245,7 @@ methods: { return ; } getTotalFeeAndDivFeeA(); + getBarData(); 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) @@ -319,6 +324,144 @@ methods: { ] }; myChart.setOption(this.option); + },initOptionBar(divId,dataX,dataMoney,dataFeeMoney) { + let myChart = this.$echarts.init(document.getElementById(divId)) + // 绘制图表 + this.option = { + title : { + text: '', + subtext: '' + }, + tooltip : { + trigger: 'axis', + //position:['20px','20px'] + }, + legend: { + data:["计费金额(万元)","拆分金额(万元)"] + }, + toolbox: { + show : true, + orient: 'vertical', + title : { + line : '折线图', + bar : '柱形图' + + }, + feature : { + mark : {show: true}, + //垂直显示 + //dataView : {show: true, readOnly: false}, + magicType : {show: true, + title : { + line : '折线图', + bar : '柱形图' + + }, + type: ['line', 'bar']}, + } + }, + calculable : true, + xAxis : + { + type : 'category', + name:'类型', + nameTextStyle:{ + lineHeight:30, + verticalAlign:'top' + }, + boundaryGap : true, + axisTick: { + show: true, + alignWithLabel:true + + }, + axisLabel: { //设置x轴的文字 + show:true, + interval:0,//使x轴横坐标全部显示 + //rotate:45, + textStyle:{fontSize:14} + }, + data : dataX + }, 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', + axisLabel : { + formatter: '{value}' + }, + show:true, + splitLine:{ + show:true + }, + lineStyle:{ + color:'black', + type:'solid', + width:2 + }, + sync: true, + splitNumber:10, + position:'left' + },{ + type : 'value', + axisLabel : { + formatter: '{value}' + }, + show:false, + splitLine:{ + show:true + }, + lineStyle:{ + color:'black', + type:'solid', + width:2 + }, + sync: true, + splitNumber:100, + position:'right' + } + ], + series : [ + { + name:'计费金额(万元)', + type:'bar', + data:dataMoney, + label:{ + show: true, // 显示标签 + position: 'inside', // 标签位置 + formatter: '{c}' // 标签格式器,{c} 代表数据值 + }, + yAxisIndex:0 + },{ + name:'拆分金额(万元)', + type:'bar', + data:dataFeeMoney, + label:{ + show: true, // 显示标签 + position: 'inside', // 标签位置 + formatter: '{c}' // 标签格式器,{c} 代表数据值 + }, + yAxisIndex:0 + } + ] + }; + myChart.setOption(this.option); + } }, components: { @@ -352,6 +495,7 @@ mounted() { }); this.initOptionPie(data,"feePie","未拆分金额与已拆分金额","单位:万元"); + this.initOptionBar("feeBar",['拆分准确','计费大于拆分','计费小于拆分','无计费有拆分','有计费无拆分'],[0,0,0,0,0],[0,0,0,0,0]); } } @@ -437,7 +581,37 @@ function getTotalFeeAndDivFeeA() { } ) } - +function getBarData(){ + _this.loading=true; + var paramsObj={ + "queryStartTime": _this.begindate, + "queryEndTime": _this.enddate, + "subcomno": _this.subcomno, + "roadno": _this.roadno, + "stano": _this.stano, + "type":_this.radio + } + _this.dataFee=[]; + _this.dataDivFee=[]; + getFeeBarData(paramsObj).then( + res=>{ + if (res.code > 0) { + let _data = res.data; + for(var k=0;k<_data.length;k++){ + _this.dataFee.push(_data[k].rightmoney); + _this.dataDivFee.push(_data[k].lessdivmoneygpa); + } + } else { + _this.dataFee=[0,0,0,0,0,0]; + _this.dataDivFee=[0,0,0,0,0,0]; + } + _this.loading=false; + _this.$nextTick(() => { + _this.initOptionBar("feeBar",['拆分准确','计费大于拆分','计费小于拆分','无计费有拆分','有计费无拆分'],_this.dataFee,_this.dataDivFee); + }) + } + ) +} function getCurrentDate(){ var myDate = new Date(); //获取今天日期 myDate.setDate(myDate.getDate() - 1); diff --git a/src/views/dev/index_self_test.vue b/src/views/dev/index_self_test.vue index e823d91..e39b093 100644 --- a/src/views/dev/index_self_test.vue +++ b/src/views/dev/index_self_test.vue @@ -140,7 +140,6 @@ export default { },*/ addTab(path) { //获取已经打开的tab - console.log("path======"+path); if(path.indexOf("undefined")>-1){ return ; } @@ -222,7 +221,6 @@ export default { } } this.$nextTick(()=>{ - console.log("首页菜单url====="+firstMenuUrl) if(firstMenuUrl =="") { firstMenuUrl = '/FeeBased/feeBased__数据监测'; } diff --git a/src/views/dev/nodivAndnofee.vue b/src/views/dev/nodivAndnofee.vue index 8ab3fb9..ef4832c 100644 --- a/src/views/dev/nodivAndnofee.vue +++ b/src/views/dev/nodivAndnofee.vue @@ -4,7 +4,7 @@
- + />--> + + + + + + + + + @@ -55,15 +69,42 @@ --> - - 计费未拆分 - 拆分未计费 + + 有计费无拆分 + 无计费有拆分 + 计费大于拆分 + + + + + + + + + + + +
查询 - 一键匹配 + 查看稽核数据 + 导出 +
@@ -74,6 +115,12 @@
+
+ +
+
+ +