拆分核验,数据稽核

master
白美平 5 months ago
parent b0138bbbf3
commit 744122a98a

@ -21,6 +21,7 @@ export const getDivDataList = data => post("/devProjectJt/divFeeStat/getDivDataL
export const getFeeTotal = data => post("/devProjectJt/divFeeStat/getFeeTotal", data,"") export const getFeeTotal = data => post("/devProjectJt/divFeeStat/getFeeTotal", data,"")
export const getHbData = data => post("/devProjectJt/divFeeStat/getHbData", data,"") export const getHbData = data => post("/devProjectJt/divFeeStat/getHbData", data,"")
export const getFeeTotalStatus = data => post("/devProjectJt/divFeeStat/getFeeTotalStatus", 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 未计费 未拆分数据核验 //20250507 未计费 未拆分数据核验
export const getFeeListByPage = data => post("/devProjectJt/divPassidAll/getFeeListByPage", data,"") 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 getDivFeeListByPage = data => post("/devProjectJt/divPassidAll/getDivFeeListByPage", data,"")
//根据计费无拆分数据查找无计费有拆分的数据 //根据计费无拆分数据查找无计费有拆分的数据
export const getDivListByFeeId = data => post("/devProjectJt/divPassidAll/getDivListByFeeId", 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,"") export const matchData = data => post("/devProjectJt/noFeeOrDivfee/matchData", data,"")
//20250513 //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 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 获取地图信息 //20250526 获取地图信息
export const getMapDivDatas = data => post("/devProjectJt/mapFee/getMapDivDatas", data,"") export const getMapDivDatas = data => post("/devProjectJt/mapFee/getMapDivDatas", data,"")

@ -4,8 +4,8 @@ import {ElMessage} from "element-plus";
// axios.defaults.staticBaseURL = '../' // axios.defaults.staticBaseURL = '../'
//axios.defaults.baseURL = 'http://' + window.location.host //正式 axios.defaults.baseURL = 'http://' + window.location.host //正式
axios.defaults.baseURL = 'http://' + window.location.hostname + ':9004' //测试 //axios.defaults.baseURL = 'http://' + window.location.hostname + ':9004' //测试
//post请求头 //post请求头
//axios.defaults.headers.post["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8"; //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), '请求异常', { alert(JSON.stringify(error), '请求异常', {
confirmButtonText: '确定', confirmButtonText: '确定',
callback: (action) => { callback: (action) => {
console.log(action)
} }
}); });
} }

@ -230,9 +230,6 @@ export default{
this.updateDetail= this.updateDetail+1; this.updateDetail= this.updateDetail+1;
},getStatusColor(status) { // },getStatusColor(status) { //
if(status !== undefined){ if(status !== undefined){
console.log("status======"+status);
console.log("num======"+this.num);
console.log("ret======"+status >= this.num);
if(status >= this.num){ if(status >= this.num){
return '#67C23A'; // 绿 return '#67C23A'; // 绿
}else{ }else{

@ -11,16 +11,16 @@
:header-cell-style="headlerCss" :header-cell-style="headlerCss"
style="width: 100%;height: 100%"> style="width: 100%;height: 100%">
<el-table-column prop="classdate" label="日期" resizable align="center" :formatter="dateFormatter" fixed="left" width="140" /> <el-table-column prop="classdate" label="日期" resizable align="center" :formatter="dateFormatter" fixed="left" width="140" />
<el-table-column prop="jmtotal" label="总减免(元)" resizable align="center" width="180" /> <el-table-column prop="jmtotal" label="总减免(元)" resizable align="center" width="180" />
<el-table-column prop="jmgw" label="公务车(元)" resizable align="center" width="180" /> <el-table-column prop="jmgw" label="公务车(元)" resizable align="center" width="180" />
<el-table-column prop="jmjunjing" label="军警车(元)" resizable align="center" width="180" /> <el-table-column prop="jmjunjing" label="军警车(元)" resizable align="center" width="180" />
<el-table-column prop="jmjinji" label="紧急车(元)" resizable align="center" width="180" /> <el-table-column prop="jmjinji" label="紧急车(元)" resizable align="center" width="180" />
<el-table-column prop="jmmf" label="免费车(元)" resizable align="center" width="180" /> <el-table-column prop="jmmf" label="免费车(元)" resizable align="center" width="180" />
<el-table-column prop="jmcd" label="车队(元)" resizable align="center" width="160" /> <el-table-column prop="jmcd" label="车队(元)" resizable align="center" width="160" />
<el-table-column prop="jmgreen" label="绿通车(元)" resizable align="center" width="170" /> <el-table-column prop="jmgreen" label="绿通车(元)" resizable align="center" width="170" />
<el-table-column prop="jmsgj" label="联合收割机(元)" resizable align="center" width="170" /> <el-table-column prop="jmsgj" label="联合收割机(元)" resizable align="center" width="170" />
<el-table-column prop="jmqxjzc" label="抢险救灾车(元)" resizable align="center" width="170" /> <el-table-column prop="jmqxjzc" label="抢险救灾车(元)" resizable align="center" width="170" />
<el-table-column prop="jmyjbzc" label="应急保障车(元)" resizable align="center" width="180" /> <el-table-column prop="jmyjbzc" label="应急保障车(元)" resizable align="center" width="180" />
</el-table> </el-table>
</div> </div>
</div> </div>

@ -244,7 +244,6 @@ export default {
this.totalCount=res.total; this.totalCount=res.total;
}) })
getTotal(params).then(res=>{ getTotal(params).then(res=>{
console.log("明细页面====fee==="+(res.fee/100)+"====divfee==="+(res.divfee /100))
this.totalfee = (res.fee /1000000).toFixed(2); this.totalfee = (res.fee /1000000).toFixed(2);
this.totaldivfee= (res.divfee /1000000).toFixed(2); this.totaldivfee= (res.divfee /1000000).toFixed(2);
}) })

@ -20,7 +20,7 @@
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import {getListByPage, exportDivPassidAllData, getSelectList} from "@/util/api/api"; import { exportDivPassidAllData, getSelectList} from "@/util/api/api";
import {Search} from "@element-plus/icons-vue"; import {Search} from "@element-plus/icons-vue";
import gantryFee from '@/views/dev/detail/gantryFee.vue' import gantryFee from '@/views/dev/detail/gantryFee.vue'

@ -1,7 +1,7 @@
<!-- 计费未拆分 拆分未计费数据进行匹配--> <!-- 计费未拆分 拆分未计费数据进行匹配-->
<template> <template>
<div id="contain_nofee_match" style="width:100%;height: 100%;position: inherit"> <div id="contain_nofee_match" style="width:100%;height: 100%;position: inherit">
<div style="height:100%;width:100%;position:inherit"> <div style="height:100%;width:100%;position:inherit" v-loading="div_full_loading">
<div style="height: 30%;width: 100%"> <div style="height: 30%;width: 100%">
<el-table :data="tableDataFee" width="100%" id="table_el_div_match_fee" :header-cell-style="{background:'#e9ecee',align:'center'}" border <el-table :data="tableDataFee" width="100%" id="table_el_div_match_fee" :header-cell-style="{background:'#e9ecee',align:'center'}" border
v-loading="tableLoadingFee" v-loading="tableLoadingFee"
@ -9,8 +9,11 @@
:row-style="rowStyle"> :row-style="rowStyle">
<el-table-column type="index" label="序号" width="100px" align="center"/> <el-table-column type="index" label="序号" width="100px" align="center"/>
<el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="150px" resizable align="center" /> <el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="150px" resizable align="center" />
<el-table-column prop="divEntime" label="开始日期" :show-overflow-tooltip="true" :formatter="dateFormatterSSS" width="150px" resizable align="center" />
<el-table-column prop="divExtime" label="结束日期" :show-overflow-tooltip="true" :formatter="dateFormatterSSS" width="150px" resizable align="center" />
<el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="220px" resizable align="center" /> <el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="220px" resizable align="center" />
<el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="150px" resizable align="center" /> <el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="150px" resizable align="center" />
<el-table-column prop="vehicleidColor" label="车牌颜色" :show-overflow-tooltip="true" width="120px" resizable align="center" />
<el-table-column prop="divFee" label="拆分总金额(元)" width="150px" resizable align="center" /> <el-table-column prop="divFee" label="拆分总金额(元)" width="150px" resizable align="center" />
<el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="150px" resizable align="center" /> <el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="150px" resizable align="center" />
<el-table-column prop="divTollintervalidName" label="路径" :show-overflow-tooltip="true" width="580px" align="center" /> <el-table-column prop="divTollintervalidName" label="路径" :show-overflow-tooltip="true" width="580px" align="center" />
@ -18,37 +21,67 @@
<el-table-column prop="divFeegroup" label="计费金额(元)" v-if="tableDisable" width="200px" resizable align="center" /> <el-table-column prop="divFeegroup" label="计费金额(元)" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="mediatype" label="通行介质" v-if="tableDisable" width="200px" resizable align="center" /> <el-table-column prop="mediatype" label="通行介质" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="statusname" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" /> <el-table-column prop="statusname" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="roadno" label="计费单元组id" v-if="tableDisable" align="center" /> <el-table-column prop="bak1" label="本省/跨省" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="vehicleclass" label="车种" v-if="tableDisable" align="center" />
<el-table-column label="操作" v-slot="slot" fixed="right" align="center" width="200px">
<el-button type="primary" @click="matchMainDataOper(slot.row)" style="background-color: #67c23a">处理结果</el-button>
</el-table-column>
</el-table> </el-table>
</div> </div>
<div style="height: 60%;width: 100%;margin-top:1%"> <div style="height: 60%;width: 100%;margin-top:1%">
<el-table :data="tableDataFeeMatch" width="100%" id="table_el_div_match_div" :header-cell-style="{background:'#e9ecee',align:'center'}" border <el-table :data="tableDataFeeMatch" width="100%" id="table_el_div_match_div" :header-cell-style="{background:'#e9ecee',align:'center'}" border
v-loading="tableLoadingFee" v-loading="tableLoadingFee"
:title="nofeeTitle" :title="nofeeTitle"
show-summary
:summary-method="getSumDataDiv"
:row-style="rowStyle"> :row-style="rowStyle">
<el-table-column type="index" label="序号" width="100px" align="center"/> <el-table-column type="index" label="序号" width="100px" align="center"/>
<el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="150px" resizable align="center" /> <el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="150px" resizable align="center" />
<el-table-column prop="gpaEntime" label="开始日期" :show-overflow-tooltip="true" :formatter="dateFormatterSSS" width="150px" resizable align="center" />
<el-table-column prop="gpaExtime" label="结束日期" :show-overflow-tooltip="true" :formatter="dateFormatterSSS" width="150px" resizable align="center" />
<el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="220px" resizable align="center" /> <el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="220px" resizable align="center" />
<el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="150px" resizable align="center" /> <el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="150px" resizable align="center" />
<el-table-column prop="vehicleidColor" label="车牌颜色" :show-overflow-tooltip="true" width="120px" resizable align="center" />
<el-table-column prop="gpaFee" label="计费总金额(元)" width="150px" resizable align="center" /> <el-table-column prop="gpaFee" label="计费总金额(元)" width="150px" resizable align="center" />
<el-table-column prop="gpaFeeOld" label="计费总金额" v-if="tableDisable" width="150px" resizable align="center" />
<el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="150px" resizable align="center" /> <el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="150px" resizable align="center" />
<el-table-column prop="gpaFeegroup" label="计费金额(元)" v-if="tableDisable" width="200px" resizable align="center" /> <el-table-column prop="gpaFeegroup" label="计费金额(元)" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="gpaTollintervalidName" label="路径" :show-overflow-tooltip="true" width="400" align="center" /> <el-table-column prop="gpaTollintervalidName" label="路径" :show-overflow-tooltip="true" width="400" align="center" />
<el-table-column prop="gpaTollintervalid" label="计费单元组id" v-if="tableDisable" align="center" /> <el-table-column prop="gpaTollintervalid" label="计费单元组id" v-if="tableDisable" align="center" />
<el-table-column prop="mediatype" label="通行介质" v-if="tableDisable" width="200px" resizable align="center" /> <el-table-column prop="mediatype" label="通行介质" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="vehicleclassname" label="车种" v-if="tableDisable" :show-overflow-tooltip="true" width="100px" resizable align="center" /> <el-table-column prop="vehicleclassname" label="车种" v-if="tableDisable" :show-overflow-tooltip="true" width="100px" resizable align="center" />
<el-table-column prop="statusname" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" /> <el-table-column prop="statusName" label="拆分状态" width="200px" resizable align="center" />
<el-table-column prop="roadno" label="计费单元组id" v-if="tableDisable" align="center" /> <el-table-column prop="status" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column label="操作" v-slot="slot" fixed="right" align="center"> <el-table-column prop="vehicletype" label="车型" v-if="tableDisable" align="center" />
<el-button type="primary" @click="matchData(slot.row)" style="background-color: #67c23a">数据匹配</el-button> <el-table-column prop="gpaEnstationname" label="入口计费单元名称" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="gpaExstationname" label="出口计费单元名称" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="gpaEnpointid" label="入口计费单元id" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="gpaExpointid" label="出口计费单元id" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column label="操作" v-slot="slot" fixed="right" align="center" width="200px">
<el-button type="primary" @click="matchDataMethod(slot.row)" style="background-color: #67c23a">数据匹配</el-button>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
<!-- <el-dialog id="map_dialog_div" v-model="isShowMap" title="地图(拆分)" style="width: 80%;height:80%;" draggable > <el-dialog id="match_dialog_div" v-model="isShowDivMap" title="" style="width: 30%;height:40% !important;" draggable >
<mapFeeData ref="mapFeeData" :key="new Date().getTime()" :params="mapParams" ></mapFeeData> <el-form style="width:100%;height:100%">
</el-dialog>--> <el-form-item label="处理结果:" style="width:100%;height: 50%">
<el-select v-model="statusCheckDivMaatch" filterable placeholder="请选择..." clearable style="width:100%;height:100%;border-color: gainsboro">
<el-option
v-for="item in statusCheckListDivMaatch"
:key="item.VALUE"
:label="item.LABEL"
:value="item.VALUE">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width:100%;height: 50%">
<el-button @click="cancelDivMatch"></el-button>
<el-button @click="saveMainDivMatch"></el-button>
</el-form-item>
</el-form>
</el-dialog>
</div> </div>
</template> </template>
@ -68,7 +101,7 @@
import { ref} from "vue"; import { ref} from "vue";
//import mapFeeData from "@/views/dev/detail/nodivandnofee/mapFee.vue"; //import mapFeeData from "@/views/dev/detail/nodivandnofee/mapFee.vue";
import {Filter,Search} from '@element-plus/icons-vue' import {Filter,Search} from '@element-plus/icons-vue'
import {getDivListByFeeId,matchData} from "@/util/api/api"; import {getFeeListByDivFeeId, matchData} from "@/util/api/api";
import {ElMessageBox} from "element-plus"; import {ElMessageBox} from "element-plus";
var _this; var _this;
export default { export default {
@ -79,9 +112,10 @@ export default {
totalCount: 0, totalCount: 0,
tableDataFee: ref([]), tableDataFee: ref([]),
tableDataFeeMatch: ref([]), tableDataFeeMatch: ref([]),
isShowMap: false, isShowDivMap: false,
isShowDivDetail: false, isShowDivDetail: false,
tableDisable:false, tableDisable:false,
div_full_loading:false,
mapParams: {}, mapParams: {},
Filter: Filter, Filter: Filter,
tableLoadingFee: false, tableLoadingFee: false,
@ -89,7 +123,9 @@ export default {
doubleclikIndex: -1,// doubleclikIndex: -1,//
params:{}, params:{},
nofeeTitle:"有计费无拆分", nofeeTitle:"有计费无拆分",
feeTitle:"无计费有拆分" feeTitle:"无计费有拆分",
statusCheckDivMaatch:'10' ,//
statusCheckListDivMaatch:[{"VALUE":"10","LABEL":"需处理"},{"VALUE":"12","LABEL":"作废"},{"VALUE":"11","LABEL":"其它"}]
} }
}, },
@ -97,9 +133,105 @@ export default {
methods: { methods: {
refreshData(paramAll){ refreshData(paramAll){
this.params=paramAll; this.params=paramAll;
this.isShowDivMap=false;
getTableDataLists(); getTableDataLists();
},matchData(row){ },matchMainDataOper(row){
alert("数据匹配"); this.isShowDivMap=true;
},matchDataMethod(row){
this.div_full_loading=true;
var paramsData={};
paramsData.PASSID=this.tableDataFee[0].passid;
paramsData.DIVPASSID=row.passid;
if(localStorage.mannoDe ===undefined || localStorage.mannoDe===""){
alert("您账号已登录过期,请重新登陆之后在此操作");
return false;
}else{
paramsData.MANO=localStorage.mannoDe;
paramsData.MANAME=localStorage.man;
}
/* paramsData.MANO="11";
paramsData.MANAME="测试";*/
paramsData.divFeegroup=this.tableDataFee[0].divFeegroup;
paramsData.divTollintervalid=this.tableDataFee[0].divTollintervalid;
paramsData.gpaFeegroup=row.gpaFeegroup;
paramsData.gpaTollintervalid=row.gpaTollintervalid;
paramsData.gpaEntime=this.dateFormatterSSS(null,null,row.gpaEntime);
paramsData.gpaExtime=this.dateFormatterSSS(null,null,row.gpaExtime);
paramsData.gpaEntollstationname=row.gpaEntollstationname;
paramsData.gpaExtollstationname=row.gpaExtollstationname;
paramsData.gpaEnpointid=row.gpaEnpointid;
paramsData.gpaExpointid=row.gpaExpointid;
paramsData.gpaFee=row.gpaFeeOld;
paramsData.divFee=this.tableDataFee[0].divFeeOld;
paramsData.bak1=this.tableDataFee[0].bak1;
paramsData.divTollintervalid=this.tableDataFee[0].divTollintervalid;
paramsData.vehicletype=row.vehicletype;
paramsData.vehicleClass=this.tableDataFee[0].vehicleclass;
paramsData.classDate=this.dateFormatter(null,null,this.tableDataFee[0].classdate);
paramsData.status=row.status;
paramsData.divEntime=this.dateFormatterSSS(null,null,this.tableDataFee[0].divEntime);
paramsData.divExtime=this.dateFormatterSSS(null,null,this.tableDataFee[0].divExtime);
paramsData.divEntollstationname=this.tableDataFee[0].divEntollstationname;
paramsData.divExtollstationname=this.tableDataFee[0].divExtollstationname;
paramsData.divEnpointid=this.tableDataFee[0].divEnpointid;
paramsData.divExpointid=this.tableDataFee[0].divExpointid;
paramsData.dataType=2;
paramsData.VEHICLEID=row.vehicleid;
paramsData.vehicleidColor=this.tableDataFee[0].vehicleidColor;
matchData(paramsData).then(res=>{
this.div_full_loading=false;
if(res.code<=0){
alert("匹配失败");
return false;
}else{
alert("匹配成功");
this.$emit('subMethod');
}
})
},cancelDivMatch(){
this.isShowDivMap=false;
this.statusCheck="";
},saveMainDivMatch(){
var paramsData={};
paramsData.PASSID=this.tableDataFee[0].passid;
paramsData.DIVPASSID=this.tableDataFee[0].passid;
if(localStorage.mannoDe ===undefined || localStorage.mannoDe===""){
alert("您账号已登录过期,请重新登陆之后在此操作");
return false;
}else{
paramsData.MANO=localStorage.mannoDe;
paramsData.MANAME=localStorage.man;
}
/* paramsData.MANO="11";
paramsData.MANAME="测试";*/
paramsData.divFeegroup=this.tableDataFee[0].divFeegroup;
paramsData.divTollintervalid=this.tableDataFee[0].divTollintervalid;
paramsData.divFee=this.tableDataFee[0].divFeeOld;
paramsData.divTollintervalid=this.tableDataFee[0].divTollintervalid;
paramsData.vehicleClass=this.tableDataFee[0].vehicleclass;
paramsData.classDate=this.dateFormatter(null,null,row.classdate);
paramsData.divEntime=this.dateFormatterSSS(null,null,this.tableDataFee[0].divEntime);
paramsData.divExtime=this.dateFormatterSSS(null,null,this.tableDataFee[0].divExtime);
paramsData.divEntollstationname=this.tableDataFee[0].divEntollstationname;
paramsData.divExtollstationname=this.tableDataFee[0].divExtollstationname;
paramsData.divEnpointid=this.tableDataFee[0].divEnpointid;
paramsData.divExpointid=this.tableDataFee[0].divExpointid;
paramsData.dataType=2;
paramsData.VEHICLEID=this.tableDataFee[0].vehicleid;
paramsData.vehicleidColor=this.tableDataFee[0].vehicleidColor;
paramsData.checkStatus=this.statusCheckDivMaatch;
paramsData.status=this.statusCheckDivMaatch;
matchData(paramsData).then(res=>{
this.div_full_loading=false;
if(res.code<=0){
alert("处理失败");
return false;
}else{
alert("处理成功");
this.$emit('subMethod');
}
})
}, },
handleSizeChange(val) { handleSizeChange(val) {
this.pageSize = val; this.pageSize = val;
@ -107,6 +239,34 @@ export default {
},handleCurrentChange(val) { },handleCurrentChange(val) {
this.currentPage = val; this.currentPage = val;
getTableDataLists(); getTableDataLists();
},getSumDataDiv(param){
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总计';
return;
}
if(index === 6){
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] =sums[index].toFixed(2);
sums[index] += ' 元';
}
}else {
sums[index] = '';
}
});
return sums;
}, dateFormatter(row, column, cellValue) { }, dateFormatter(row, column, cellValue) {
if (cellValue == null || cellValue == "" || cellValue == undefined) { if (cellValue == null || cellValue == "" || cellValue == undefined) {
return ""; return "";
@ -122,7 +282,7 @@ export default {
const date = new Date(cellValue); const date = new Date(cellValue);
// //
//return `${date.toLocaleDateString()}`; //return `${date.toLocaleDateString()}`;
return formatDate(cellValue, "YYYY-MM-DD HH:MM:SS:SSS"); return formatDate(cellValue, "YYYY-MM-DD HH:MM:SS");
}, rowStyle(row, rowIndex) { }, rowStyle(row, rowIndex) {
if (this.doubleclikIndex === row.row.RN) { if (this.doubleclikIndex === row.row.RN) {
return { return {
@ -146,7 +306,7 @@ export default {
function getTableDataLists(){ function getTableDataLists(){
_this.tableLoadingFee=true; _this.tableLoadingFee=true;
var paramsData=_this.params; var paramsData=_this.params;
getDivListByFeeId(paramsData).then(res=>{ getFeeListByDivFeeId(paramsData).then(res=>{
_this.tableLoadingFee=false; _this.tableLoadingFee=false;
if(res.code<=0){ if(res.code<=0){
return false; return false;

@ -1,7 +1,7 @@
<!-- 计费未拆分 拆分未计费数据进行匹配--> <!-- 计费未拆分 拆分未计费数据进行匹配-->
<template> <template>
<div id="contain_nofee_match" style="width:100%;height: 100%;position: inherit"> <div id="contain_nofee_match" style="width:100%;height: 100%;position: inherit">
<div style="height:100%;width:100%;position:inherit"> <div style="height:100%;width:100%;position:inherit" v-loading="div_full_loading">
<div style="height: 30%;width: 100%"> <div style="height: 30%;width: 100%">
<el-table :data="tableDataFee" width="100%" id="table_el_div_match_fee" :header-cell-style="{background:'#e9ecee',align:'center'}" border <el-table :data="tableDataFee" width="100%" id="table_el_div_match_fee" :header-cell-style="{background:'#e9ecee',align:'center'}" border
v-loading="tableLoadingFee" v-loading="tableLoadingFee"
@ -9,8 +9,11 @@
:row-style="rowStyle"> :row-style="rowStyle">
<el-table-column type="index" label="序号" width="100px" align="center"/> <el-table-column type="index" label="序号" width="100px" align="center"/>
<el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="150px" resizable align="center" /> <el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="150px" resizable align="center" />
<el-table-column prop="gpaEntime" label="开始日期" :show-overflow-tooltip="true" :formatter="dateFormatterSSS" width="150px" resizable align="center" />
<el-table-column prop="gpaExtime" label="结束日期" :show-overflow-tooltip="true" :formatter="dateFormatterSSS" width="150px" resizable align="center" />
<el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="220px" resizable align="center" /> <el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="220px" resizable align="center" />
<el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="150px" resizable align="center" /> <el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="150px" resizable align="center" />
<el-table-column prop="vehicleidColor" label="车牌颜色" :show-overflow-tooltip="true" width="120px" resizable align="center" />
<el-table-column prop="gpaFee" label="计费总金额(元)" width="150px" resizable align="center" /> <el-table-column prop="gpaFee" label="计费总金额(元)" width="150px" resizable align="center" />
<el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="150px" resizable align="center" /> <el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="150px" resizable align="center" />
<el-table-column prop="gpaTollintervalidName" label="路径" :show-overflow-tooltip="true" width="580px" align="center" /> <el-table-column prop="gpaTollintervalidName" label="路径" :show-overflow-tooltip="true" width="580px" align="center" />
@ -18,37 +21,75 @@
<el-table-column prop="gpaFeegroup" label="计费金额(元)" v-if="tableDisable" width="200px" resizable align="center" /> <el-table-column prop="gpaFeegroup" label="计费金额(元)" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="mediatype" label="通行介质" v-if="tableDisable" width="200px" resizable align="center" /> <el-table-column prop="mediatype" label="通行介质" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="statusname" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" /> <el-table-column prop="statusname" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="roadno" label="计费单元组id" v-if="tableDisable" align="center" /> <el-table-column prop="gpaEntollstationname" label="入口计费单元名称" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="gpaExtollstationname" label="出口计费单元名称" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="gpaEnpointid" label="入口计费单元id" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="gpaExpointid" label="出口计费单元id" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="vehicletype" label="车型" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="statusname" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column label="操作" v-slot="slot" fixed="right" align="center" width="200px">
<el-button type="primary" @click="matchMainDataOper(slot.row)" style="background-color: #67c23a">处理结果</el-button>
</el-table-column>
</el-table> </el-table>
</div> </div>
<div style="height: 60%;width: 100%;margin-top:1%"> <div style="height: 60%;width: 100%;margin-top:1%">
<el-table :data="tableDataFeeMatch" width="100%" id="table_el_div_match_div" :header-cell-style="{background:'#e9ecee',align:'center'}" border <el-table :data="tableDataFeeMatch" width="100%" id="table_el_div_match_div" :header-cell-style="{background:'#e9ecee',align:'center'}" border
v-loading="tableLoadingFee" v-loading="tableLoadingFee"
:title="nofeeTitle" :title="nofeeTitle"
show-summary
:summary-method="getSumData"
:row-style="rowStyle"> :row-style="rowStyle">
<el-table-column type="index" label="序号" width="100px" align="center"/> <el-table-column type="index" label="序号" width="100px" align="center"/>
<el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="150px" resizable align="center" /> <el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="150px" resizable align="center" />
<el-table-column prop="divEntime" label="开始日期" :show-overflow-tooltip="true" :formatter="dateFormatterSSS" width="150px" resizable align="center" />
<el-table-column prop="divExtime" label="结束日期" :show-overflow-tooltip="true" :formatter="dateFormatterSSS" width="150px" resizable align="center" />
<el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="220px" resizable align="center" /> <el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="220px" resizable align="center" />
<el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="150px" resizable align="center" /> <el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="150px" resizable align="center" />
<el-table-column prop="vehicleidColor" label="车牌颜色" :show-overflow-tooltip="true" width="120px" resizable align="center" />
<el-table-column prop="divFee" label="拆分总金额(元)" width="150px" resizable align="center" /> <el-table-column prop="divFee" label="拆分总金额(元)" width="150px" resizable align="center" />
<el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="150px" resizable align="center" /> <el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="150px" resizable align="center" />
<el-table-column prop="vehicleclassName" label="车种" :show-overflow-tooltip="true" width="100px" resizable align="center" />
<el-table-column prop="divFeegroup" label="计费金额(元)" v-if="tableDisable" width="200px" resizable align="center" /> <el-table-column prop="divFeegroup" label="计费金额(元)" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="divTollintervalidName" label="路径" :show-overflow-tooltip="true" width="400" align="center" /> <el-table-column prop="divTollintervalidName" label="路径" :show-overflow-tooltip="true" width="400" align="center" />
<el-table-column prop="divTollintervalid" label="计费单元组id" v-if="tableDisable" align="center" /> <el-table-column prop="divTollintervalid" label="计费单元组id" v-if="tableDisable" align="center" />
<el-table-column prop="mediatype" label="通行介质" v-if="tableDisable" width="200px" resizable align="center" /> <el-table-column prop="mediatype" label="通行介质" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="vehicleclassname" label="车种" v-if="tableDisable" :show-overflow-tooltip="true" width="100px" resizable align="center" /> <el-table-column prop="statusName" label="拆分状态" width="200px" resizable align="center" />
<el-table-column prop="statusname" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" /> <el-table-column prop="status" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="roadno" label="计费单元组id" v-if="tableDisable" align="center" /> <el-table-column prop="vehicletype" label="车型" v-if="tableDisable" align="center" />
<el-table-column label="操作" v-slot="slot" fixed="right" align="center"> <el-table-column prop="divEntime" label="入口开始时间" v-if="tableDisable" width="400px" resizable align="center" />
<el-button type="primary" @click="matchData(slot.row)" style="background-color: #67c23a">数据匹配</el-button> <el-table-column prop="divExtime" label="入口结束时间" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="divFeeOld" label="拆分总计费" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="divEntollstationname" label="入口计费单元名称" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="divExtollstationname" label="出口计费单元名称" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="divEnpointid" label="入口计费单元id" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="divExpointid" label="出口计费单元id" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="bak1" label="本省/跨省" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="vehicleclass" label="车种" v-if="tableDisable" align="center" />
<el-table-column label="操作" v-slot="slot" fixed="right" align="center" width="200px">
<el-button type="primary" @click="matchDataOper(slot.row)" style="background-color: #67c23a">数据匹配</el-button>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
<!-- <el-dialog id="map_dialog_div" v-model="isShowMap" title="地图(拆分)" style="width: 80%;height:80%;" draggable > <el-dialog id="match_dialog_div" v-model="isShowFeeMap" title="" style="width: 30%;height:40% !important;" draggable >
<mapFeeData ref="mapFeeData" :key="new Date().getTime()" :params="mapParams" ></mapFeeData> <el-form style="width:100%;height:100%">
</el-dialog>--> <el-form-item label="处理结果:" style="width:100%;height: 50%">
<el-select v-model="statusCheck" filterable placeholder="请选择..." clearable style="width:100%;height:100%;border-color: gainsboro">
<el-option
v-for="item in statusCheckList"
:key="item.VALUE"
:label="item.LABEL"
:value="item.VALUE">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="" style="width:100%;height: 50%">
<el-button @click="cancel"></el-button>
<el-button @click="saveMain"></el-button>
</el-form-item>
</el-form>
</el-dialog>
</div> </div>
</template> </template>
@ -79,7 +120,7 @@ export default {
totalCount: 0, totalCount: 0,
tableDataFee: ref([]), tableDataFee: ref([]),
tableDataFeeMatch: ref([]), tableDataFeeMatch: ref([]),
isShowMap: false, isShowFeeMap: false,
isShowDivDetail: false, isShowDivDetail: false,
tableDisable:false, tableDisable:false,
mapParams: {}, mapParams: {},
@ -88,18 +129,145 @@ export default {
searchButton: Search, searchButton: Search,
doubleclikIndex: -1,// doubleclikIndex: -1,//
params:{}, params:{},
tooltipContent:'这是第一行<br>这是第二行',
nofeeTitle:"无计费有拆分", nofeeTitle:"无计费有拆分",
feeTitle:"有计费无拆分" feeTitle:"有计费无拆分",
div_full_loading:false,
paramsData:{},
statusCheck:'10' ,//
statusCheckList:[{"VALUE":"10","LABEL":"需处理"},{"VALUE":"12","LABEL":"作废"},{"VALUE":"11","LABEL":"其它"}]
} }
}, },
//props: ['params'], //props: ['params'],
methods: { methods: {
refreshData(paramAll){ refreshData(paramAll){
this.params=paramAll; this.params=paramAll;
this.isShowFeeMap=false;
getTableDataLists(); getTableDataLists();
},matchData(row){ },matchDataOper(row){
alert("数据匹配"); this.div_full_loading=true;
var paramsData={};
paramsData.PASSID=this.tableDataFee[0].passid;
paramsData.DIVPASSID=row.passid;
if(localStorage.mannoDe ===undefined || localStorage.mannoDe===""){
alert("您账号已登录过期,请重新登陆之后在此操作");
return false;
}else{
paramsData.MANO=localStorage.mannoDe;
paramsData.MANAME=localStorage.man;
}
/* paramsData.MANO="11";
paramsData.MANAME="测试";*/
paramsData.gpaFeegroup=this.tableDataFee[0].gpaFeegroup;
paramsData.gpaTollintervalid=this.tableDataFee[0].gpaTollintervalid;
paramsData.gpaEntime=this.dateFormatterSSS(null,null,this.tableDataFee[0].gpaEntime);
paramsData.gpaExtime=this.dateFormatterSSS(null,null,this.tableDataFee[0].gpaExtime);
paramsData.gpaEntollstationname=this.tableDataFee[0].gpaEntollstationname;
paramsData.gpaExtollstationname=this.tableDataFee[0].gpaExtollstationname;
paramsData.gpaEnpointid=this.tableDataFee[0].gpaEnpointid;
paramsData.gpaExpointid=this.tableDataFee[0].gpaExpointid;
paramsData.gpaFee=this.tableDataFee[0].gpaFeeOld;
paramsData.divFeegroup=row.divFeegroup;
paramsData.divFee=row.divFeeOld;
paramsData.divTollintervalid=row.divTollintervalid;
paramsData.vehicletype=this.tableDataFee[0].vehicletype;
paramsData.vehicleClass=row.vehicleclass;
paramsData.classDate=this.dateFormatter(null,null,this.tableDataFee[0].classdate);
paramsData.status=row.status;
paramsData.divEntime=this.dateFormatterSSS(null,null,row.divEntime);
paramsData.divExtime=this.dateFormatterSSS(null,null,row.divExtime);
paramsData.divEntollstationname=row.divEntollstationname;
paramsData.divExtollstationname=row.divExtollstationname;
paramsData.divEnpointid=row.divEnpointid;
paramsData.divExpointid=row.divExpointid;
paramsData.dataType=1;
paramsData.bak1=row.bak1;
paramsData.VEHICLEID=row.vehicleid;
paramsData.vehicleidColor=this.tableDataFee[0].vehicleidColor;
matchData(paramsData).then(res=>{
this.div_full_loading=false;
if(res.code<=0){
alert("匹配失败");
return false;
}else{
alert("匹配成功");
this.$emit('subMethod');
}
})
},matchMainDataOper(row){
this.isShowFeeMap=true;
},getSumData(param){
const { columns, data } = param;
const sums = [];
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总计';
return;
}
if(index === 7){
const values = data.map(item => Number(item[column.property]));
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr);
if (!isNaN(value)) {
return prev + curr;
} else {
return prev;
}
}, 0);
sums[index] =sums[index].toFixed(2);
sums[index] += ' 元';
}
}else {
sums[index] = '';
}
});
return sums;
},cancel(){
this.isShowFeeMap=false;
this.statusCheck="";
},saveMain(){
var paramsData={};
paramsData.PASSID=this.tableDataFee[0].passid;
paramsData.DIVPASSID=this.tableDataFee[0].passid;
if(localStorage.mannoDe ===undefined || localStorage.mannoDe===""){
alert("您账号已登录过期,请重新登陆之后在此操作");
return false;
}else{
paramsData.MANO=localStorage.mannoDe;
paramsData.MANAME=localStorage.man;
}
/* paramsData.MANO="11";
paramsData.MANAME="测试";*/
paramsData.gpaFeegroup=this.tableDataFee[0].gpaFeegroup;
paramsData.gpaTollintervalid=this.tableDataFee[0].gpaTollintervalid;
paramsData.gpaEntime=this.dateFormatterSSS(null,null,this.tableDataFee[0].gpaEntime);
paramsData.gpaExtime=this.dateFormatterSSS(null,null,this.tableDataFee[0].gpaExtime);
paramsData.gpaEntollstationname=this.tableDataFee[0].gpaEntollstationname;
paramsData.gpaExtollstationname=this.tableDataFee[0].gpaExtollstationname;
paramsData.gpaEnpointid=this.tableDataFee[0].gpaEnpointid;
paramsData.gpaExpointid=this.tableDataFee[0].gpaExpointid;
paramsData.gpaFee=this.tableDataFee[0].gpaFeeOld;
paramsData.vehicletype=this.tableDataFee[0].vehicletype;
paramsData.classDate=this.dateFormatter(null,null,this.tableDataFee[0].classdate);
paramsData.dataType=1;
paramsData.VEHICLEID=this.tableDataFee[0].vehicleid;
paramsData.vehicleidColor=this.tableDataFee[0].vehicleidColor;
paramsData.checkStatus=this.statusCheck;
paramsData.status=this.statusCheck;
matchData(paramsData).then(res=>{
this.div_full_loading=false;
if(res.code<=0){
alert("处理失败");
return false;
}else{
alert("处理成功");
this.isShowFeeMap=false;
this.$emit('subMethod');
}
})
}, },
handleSizeChange(val) { handleSizeChange(val) {
this.pageSize = val; this.pageSize = val;
@ -122,7 +290,7 @@ export default {
const date = new Date(cellValue); const date = new Date(cellValue);
// //
//return `${date.toLocaleDateString()}`; //return `${date.toLocaleDateString()}`;
return formatDate(cellValue, "YYYY-MM-DD HH:MM:SS:SSS"); return formatDate(cellValue, "YYYY-MM-DD HH:MM:SS");
}, rowStyle(row, rowIndex) { }, rowStyle(row, rowIndex) {
if (this.doubleclikIndex === row.row.RN) { if (this.doubleclikIndex === row.row.RN) {
return { return {
@ -144,6 +312,7 @@ export default {
} }
} }
function getTableDataLists(){ function getTableDataLists(){
console.log("params===="+JSON.stringify(_this.params));
_this.tableLoadingFee=true; _this.tableLoadingFee=true;
var paramsData=_this.params; var paramsData=_this.params;
getDivListByFeeId(paramsData).then(res=>{ getDivListByFeeId(paramsData).then(res=>{

@ -2,18 +2,19 @@
<template> <template>
<div id="contain_nofee" style="width:100%;height: 100%;position: inherit"> <div id="contain_nofee" style="width:100%;height: 100%;position: inherit">
<div style="height:88%;width:100%;position:relative"> <div style="height:99%;width:100%;position:relative">
<div style="height: 94%;width: 100%"> <div style="height: 94%;width: 100%">
<el-table :data="tableData" width="100%" id="table_el_div_fee" :header-cell-style="{background:'#e9ecee',align:'center'}" border <el-table :data="tableData" width="100%" id="table_el_div_fee" :header-cell-style="{background:'#e9ecee',align:'center'}" border
v-loading="tableLoading" v-loading="tableLoading"
:row-style="rowStyle"> :row-style="rowStyle">
<el-table-column type="index" label="序号" width="100px" align="center"/> <el-table-column type="index" label="序号" width="100px" :index="indexmethodDiv" align="center"/>
<el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="180px" resizable align="center" /> <el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="180px" resizable align="center" />
<el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="320px" resizable align="center" /> <el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="320px" resizable align="center" />
<el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="220px" resizable align="center" /> <el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="220px" resizable align="center" />
<el-table-column prop="vehicleidColor" label="车牌颜色" :show-overflow-tooltip="true" width="120px" resizable align="center" />
<el-table-column prop="divFee" label="拆分总金额(元)" width="250px" resizable align="center" /> <el-table-column prop="divFee" label="拆分总金额(元)" width="250px" resizable align="center" />
<el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="250px" resizable align="center" /> <el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="250px" resizable align="center" />
<el-table-column prop="multitypeName" label="匹配类型" :show-overflow-tooltip="true" width="250px" resizable align="center" > <el-table-column prop="multitypeName" label="匹配类型" :show-overflow-tooltip="true" fixed="right" width="250px" resizable align="center" >
<template #default="scope"> <template #default="scope">
<!-- 根据 scope.row.status 设置字体颜色 --> <!-- 根据 scope.row.status 设置字体颜色 -->
<span :style="{ color: getmultitypeColor(scope.row.multitypeName) }"> <span :style="{ color: getmultitypeColor(scope.row.multitypeName) }">
@ -25,11 +26,19 @@
<el-table-column prop="createTime" label="处理时间" :show-overflow-tooltip="true" v-if="tableDisable" :formatter="dateFormatterSSS" width="200px" resizable align="center" /> <el-table-column prop="createTime" label="处理时间" :show-overflow-tooltip="true" v-if="tableDisable" :formatter="dateFormatterSSS" width="200px" resizable align="center" />
<el-table-column prop="divTollintervalid" label="计费单元组id" v-if="tableDisable" align="center" /> <el-table-column prop="divTollintervalid" label="计费单元组id" v-if="tableDisable" align="center" />
<el-table-column prop="divFeegroup" label="计费金额(元)" v-if="tableDisable" width="200px" resizable align="center" /> <el-table-column prop="divFeegroup" label="计费金额(元)" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="divFeeOld" label="拆分金额" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="mediatype" label="通行介质" v-if="tableDisable" width="200px" resizable align="center" /> <el-table-column prop="mediatype" label="通行介质" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="vehicleclassname" label="车种" v-if="tableDisable" :show-overflow-tooltip="true" width="100px" resizable align="center" /> <el-table-column prop="vehicleclassname" label="车种" v-if="tableDisable" :show-overflow-tooltip="true" width="100px" resizable align="center" />
<el-table-column prop="vehicleclass" label="车种" v-if="tableDisable" :show-overflow-tooltip="true" width="100px" resizable align="center" />
<el-table-column prop="statusname" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" /> <el-table-column prop="statusname" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="roadno" label="计费单元组id" v-if="tableDisable" align="center" /> <el-table-column prop="divEntollstationname" label="入口计费单元名称" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column label="操作" v-slot="slot" fixed="right" align="center"> <el-table-column prop="divExtollstationname" label="出口计费单元名称" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="divEnpointid" label="入口计费单元id" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="divExpointid" label="出口计费单元id" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="bak1" label="本省/跨省" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="divEntime" label="开始日期" width="200px" :formatter="dateFormatterSSS" v-if="tableDisable" align="center" />
<el-table-column prop="divExtime" label="结束日期" width="200px" :formatter="dateFormatterSSS" v-if="tableDisable" align="center" />
<el-table-column label="操作" v-slot="slot" width="200px" fixed="right" align="center">
<!-- <el-button type="primary" @click="skipMapVue(slot.row)" style="background-color: #3abdc2"></el-button>--> <!-- <el-button type="primary" @click="skipMapVue(slot.row)" style="background-color: #3abdc2"></el-button>-->
<el-button type="primary" @click="matchFeeData(slot.row)" style="background-color: #67c23a">路径匹配</el-button> <el-button type="primary" @click="matchFeeData(slot.row)" style="background-color: #67c23a">路径匹配</el-button>
</el-table-column> </el-table-column>
@ -49,8 +58,8 @@
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
<el-dialog id="detail_dialog_div" v-model="isShowFeeDetail" title="路径信息" draggable > <el-dialog id="detail_dialog_div" v-model="isShowFeeDetail" title="路径信息" draggable :close-on-click-modal="closeD">
<divMatchNoFee ref="divMatchNoFee" ></divMatchNoFee> <divMatchNoFee ref="divMatchNoFee" @subMethod="closeDialogDivfee"></divMatchNoFee>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -74,6 +83,7 @@ import {Filter,Search} from '@element-plus/icons-vue'
import {getDivFeeListByPage} from "@/util/api/api"; import {getDivFeeListByPage} from "@/util/api/api";
import divMatchNoFee from "@/views/dev/detail/nodivandnofee/DivMatchNoFee.vue"; import divMatchNoFee from "@/views/dev/detail/nodivandnofee/DivMatchNoFee.vue";
import tool from "@/util/tool"; import tool from "@/util/tool";
import feeMatchNoDiv from "@/views/dev/detail/nodivandnofee/FeeMatchNoDiv.vue";
var _this; var _this;
export default { export default {
data() { data() {
@ -88,6 +98,7 @@ export default {
mapParams: {}, mapParams: {},
Filter: Filter, Filter: Filter,
tableLoading: false, tableLoading: false,
closeD: false,
searchButton: Search, searchButton: Search,
doubleclikIndex: -1,// doubleclikIndex: -1,//
params:{} params:{}
@ -100,8 +111,14 @@ export default {
this.tableLoading=true; this.tableLoading=true;
this.params=paramAll; this.params=paramAll;
getTableDataLists(); getTableDataLists();
}, },indexmethodDiv(index){
skipMapVue(row) { return index + this.pageSize * (this.currentPage -1)+1;
},exportExcleDivFee(paramAll){
alert("导出数据")
},closeDialogDivfee(){//
this.isShowFeeDetail=false;
getTableDataLists();
}, skipMapVue(row) {
this.isShowMap = true; this.isShowMap = true;
let _params={ let _params={
"GPA_TOLLINTERVALID": "", "GPA_TOLLINTERVALID": "",
@ -117,15 +134,27 @@ export default {
this.isShowFeeDetail=true; this.isShowFeeDetail=true;
let _params={ let _params={
"divTollintervalid": row.divTollintervalid, "divTollintervalid": row.divTollintervalid,
"classdate": row.classdate, "classdate": this.dateFormatter(null,null,row.classdate),
"divEntime": this.dateFormatterSSS(null,null,row.divEntime),
"divExtime": this.dateFormatterSSS(null,null,row.divExtime),
"passid": row.passid, "passid": row.passid,
"vehicleid": row.vehicleid, "vehicleid": row.vehicleid,
"vehicleidColor": row.vehicleidColor,
"divFeeGroup": row.divFeegroup, "divFeeGroup": row.divFeegroup,
"vehicletypeName": row.vehicletypeName, "vehicletypeName": row.vehicletypeName,
"divFee": row.divFee, "divFee": row.divFee,
"divFeeOld": row.divFeeOld,
"feeStatus": 4, "feeStatus": 4,
"vehicleclass": row.vehicleclass,
"startTime": tool.DayDec(row.classdate,0), "startTime": tool.DayDec(row.classdate,0),
"endTime": tool.DayDec(row.classdate,-10) "endTime": tool.DayDec(row.classdate,-10),
"divEntollstationname": row.divEntollstationname ,
"divExtollstationname": row.divExtollstationname ,
"divEnpointid": row.divEnpointid ,
"bak1": row.bak1 ,
"divExpointid": row.divExpointid
} }
this.$nextTick(() => { this.$nextTick(() => {
this.$refs["divMatchNoFee"].refreshData(_params); this.$refs["divMatchNoFee"].refreshData(_params);
@ -135,7 +164,7 @@ export default {
if (status ==="匹配一条") { if (status ==="匹配一条") {
return '#67C23A'; // 绿 return '#67C23A'; // 绿
} else if (status ==="匹配多条") { } else if (status ==="匹配多条") {
return '#f3650d'; // return '#02dfe7'; //
}else { }else {
return '#f10505'; // return '#f10505'; //
} }
@ -164,7 +193,7 @@ export default {
const date = new Date(cellValue); const date = new Date(cellValue);
// //
//return `${date.toLocaleDateString()}`; //return `${date.toLocaleDateString()}`;
return formatDate(cellValue, "YYYY-MM-DD HH:MM:SS:SSS"); return formatDate(cellValue, "YYYY-MM-DD HH:MM:SS");
}, rowStyle(row, rowIndex) { }, rowStyle(row, rowIndex) {
if (this.doubleclikIndex === row.row.RN) { if (this.doubleclikIndex === row.row.RN) {
return { return {
@ -178,6 +207,7 @@ export default {
} }
}, components: { }, components: {
feeMatchNoDiv,
divMatchNoFee, divMatchNoFee,
Search Search
}, },

@ -2,16 +2,17 @@
<template> <template>
<div id="contain" style="width:100%;height: 100%;position: inherit"> <div id="contain" style="width:100%;height: 100%;position: inherit">
<div style="height:88%;width:100%;position:relative"> <div style="height:99%;width:100%;position:relative">
<div style="height: 94%;width: 100%"> <div style="height: 94%;width: 100%">
<el-table :data="tableData" width="100%" id="table_el" :header-cell-style="{background:'#e9ecee',align:'center'}" border <el-table :data="tableData" width="100%" id="table_el" :header-cell-style="{background:'#e9ecee',align:'center'}" border
v-loading="tableLoading" v-loading="tableLoading"
:row-style="rowStyle"> :row-style="rowStyle">
<el-table-column type="index" label="序号" width="100px" align="center"/> <el-table-column type="index" label="序号" :index="indexmethod" width="100px" align="center"/>
<el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="150px" resizable align="center" /> <el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="150px" resizable align="center" />
<el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="320px" resizable align="center" /> <el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="320px" resizable align="center" />
<el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="220px" resizable align="center" /> <el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="220px" resizable align="center" />
<el-table-column prop="gpaFee" label="计费总金额(元)" width="250px" resizable align="center" /> <el-table-column prop="vehicleidColor" label="车牌颜色" :show-overflow-tooltip="true" width="120px" resizable align="center" />
<el-table-column prop="gpaFee" label="计费金额(元)" width="250px" resizable align="center" />
<el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="250px" resizable align="center" /> <el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="250px" resizable align="center" />
<el-table-column prop="multitypeName" label="匹配类型" :show-overflow-tooltip="true" width="250px" fixed="right" resizable align="center" > <el-table-column prop="multitypeName" label="匹配类型" :show-overflow-tooltip="true" width="250px" fixed="right" resizable align="center" >
<template #default="scope"> <template #default="scope">
@ -26,10 +27,16 @@
<el-table-column prop="gpaTollintervalid" label="计费单元组id" v-if="tableDisable" align="center" /> <el-table-column prop="gpaTollintervalid" label="计费单元组id" v-if="tableDisable" align="center" />
<el-table-column prop="gpaFeegroup" label="计费金额(元)" v-if="tableDisable" width="200px" resizable align="center" /> <el-table-column prop="gpaFeegroup" label="计费金额(元)" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="mediatype" label="通行介质" v-if="tableDisable" width="200px" resizable align="center" /> <el-table-column prop="mediatype" label="通行介质" v-if="tableDisable" width="200px" resizable align="center" />
<el-table-column prop="vehicleclassname" label="车种" v-if="tableDisable" :show-overflow-tooltip="true" width="100px" resizable align="center" />
<el-table-column prop="statusname" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" /> <el-table-column prop="statusname" label="拆分状态" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="roadno" label="计费单元组id" v-if="tableDisable" align="center" /> <el-table-column prop="gpaEntollstationname" label="入口计费单元名称" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column label="操作" v-slot="slot" fixed="right" align="center"> <el-table-column prop="gpaExtollstationname" label="出口计费单元名称" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="gpaEnpointid" label="入口计费单元id" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="gpaExpointid" label="出口计费单元id" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="gpaFeeOld" label="计费金额" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="vehicletype" label="车型" v-if="tableDisable" width="400px" resizable align="center" />
<el-table-column prop="gpaEntime" label="开始日期" :formatter="dateFormatterSSS" v-if="tableDisable" width="200px" align="center" />
<el-table-column prop="gpaExtime" label="结束日期" :formatter="dateFormatterSSS" v-if="tableDisable" width="200px" align="center" />
<el-table-column label="操作" v-slot="slot" fixed="right" align="center" width="200px">
<!-- <el-button type="primary" @click="skipMapVue(slot.row)" style="background-color: #3abdc2">路径</el-button>--> <!-- <el-button type="primary" @click="skipMapVue(slot.row)" style="background-color: #3abdc2">路径</el-button>-->
<el-button type="primary" @click="matchData(slot.row)" style="background-color: #67c23a">路径匹配</el-button> <el-button type="primary" @click="matchData(slot.row)" style="background-color: #67c23a">路径匹配</el-button>
</el-table-column> </el-table-column>
@ -52,8 +59,8 @@
<!-- <el-dialog id="map_dialog_fee" v-model="isShowMap" title="地图(计费)" style="width: 80%;height:80%;" draggable > <!-- <el-dialog id="map_dialog_fee" v-model="isShowMap" title="地图(计费)" style="width: 80%;height:80%;" draggable >
<mapFeeData ref="mapFeeData" :key="new Date().getTime()" :params="mapParams" ></mapFeeData> <mapFeeData ref="mapFeeData" :key="new Date().getTime()" :params="mapParams" ></mapFeeData>
</el-dialog>--> </el-dialog>-->
<el-dialog id="detail_dialog_fee" v-model="isShowDivDetail" title="路径信息" draggable > <el-dialog id="detail_dialog_fee" v-model="isShowDivDetail" title="路径信息" draggable :close-on-click-modal="closeD">
<feeMatchNoDiv ref="feeMatchNoDiv" ></feeMatchNoDiv> <feeMatchNoDiv ref="feeMatchNoDiv" @subMethod="closeDialog" ></feeMatchNoDiv>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -76,7 +83,7 @@ import { ref} from "vue";
//import mapFeeData from "@/views/dev/detail/nodivandnofee/mapFee.vue"; //import mapFeeData from "@/views/dev/detail/nodivandnofee/mapFee.vue";
import feeMatchNoDiv from "@/views/dev/detail/nodivandnofee/FeeMatchNoDiv.vue"; import feeMatchNoDiv from "@/views/dev/detail/nodivandnofee/FeeMatchNoDiv.vue";
import {Filter,Search} from '@element-plus/icons-vue' import {Filter,Search} from '@element-plus/icons-vue'
import {getFeeListByPage} from "@/util/api/api"; import {exportExcleProvinceData, getFeeListByPage} from "@/util/api/api";
import tool from "@/util/tool"; import tool from "@/util/tool";
import {ElMessageBox} from "element-plus"; import {ElMessageBox} from "element-plus";
var _this; var _this;
@ -93,6 +100,7 @@ export default {
mapParams: {}, mapParams: {},
Filter: Filter, Filter: Filter,
tableLoading: false, tableLoading: false,
closeD: false,
searchButton: Search, searchButton: Search,
doubleclikIndex: -1,// doubleclikIndex: -1,//
params:{} params:{}
@ -102,9 +110,13 @@ export default {
//props: ['params'], //props: ['params'],
methods: { methods: {
refreshData(paramAll){ refreshData(paramAll){
this.tableLoading=true;
this.params=paramAll; this.params=paramAll;
getTableDataLists(); getTableDataLists();
},exportExcleFee(paramAll){
exportFeeData(paramAll);
},closeDialog(){//
this.isShowDivDetail=false;
getTableDataLists();
}, },
skipMapVue(row) { skipMapVue(row) {
this.isShowMap = true; this.isShowMap = true;
@ -122,15 +134,25 @@ export default {
this.isShowDivDetail=true; this.isShowDivDetail=true;
let _params={ let _params={
"gpaTollintervalid": row.gpaTollintervalid, "gpaTollintervalid": row.gpaTollintervalid,
"classdate": row.classdate, "classdate": this.dateFormatter(null,null,row.classdate),
"gpaEntime": this.dateFormatterSSS(null,null,row.gpaEntime),
"gpaExtime": this.dateFormatterSSS(null,null,row.gpaExtime),
"passid": row.passid, "passid": row.passid,
"vehicleid": row.vehicleid, "vehicleid": row.vehicleid,
"vehicleidColor": row.vehicleidColor,
"gpaFeeGroup": row.gpaFeegroup, "gpaFeeGroup": row.gpaFeegroup,
"vehicletypeName": row.vehicletypeName, "vehicletypeName": row.vehicletypeName,
"gpaFee": row.gpaFee, "gpaFee": row.gpaFee,
"gpaFeeOld": row.gpaFeeOld,
"vehicletype": row.vehicletype,
"feeStatus": 5, "feeStatus": 5,
"startTime": tool.DayDec(row.classdate,0), "startTime": tool.DayDec(row.classdate,0),
"endTime": tool.DayDec(row.classdate,10) "endTime": tool.DayDec(row.classdate,10),
"gpaEntollstationname": row.gpaEntollstationname ,
"gpaExtollstationname": row.gpaExtollstationname ,
"gpaEnpointid": row.gpaEnpointid ,
"gpaExpointid": row.gpaExpointid
} }
this.$nextTick(() => { this.$nextTick(() => {
this.$refs["feeMatchNoDiv"].refreshData(_params); this.$refs["feeMatchNoDiv"].refreshData(_params);
@ -153,22 +175,19 @@ export default {
this.currentPage = val; this.currentPage = val;
this.isLoding = true; this.isLoding = true;
getTableDataLists(); getTableDataLists();
},indexmethod(index){
return index + this.pageSize * (this.currentPage -1)+1;
}, dateFormatter(row, column, cellValue) { }, dateFormatter(row, column, cellValue) {
if (cellValue == null || cellValue == "" || cellValue == undefined) { if (cellValue == null || cellValue == "" || cellValue == undefined) {
return ""; return "";
} }
const date = new Date(cellValue);
//
//return `${date.toLocaleDateString()}`; //return `${date.toLocaleDateString()}`;
return formatDate(cellValue, "YYYY-MM-DD"); return formatDate(cellValue, "YYYY-MM-DD");
}, dateFormatterSSS(row, column, cellValue) { }, dateFormatterSSS(row, column, cellValue) {
if (cellValue == null || cellValue == "" || cellValue == undefined) { if (cellValue == null || cellValue == "" || cellValue == undefined) {
return ""; return "";
} }
const date = new Date(cellValue); return formatDate(cellValue, "YYYY-MM-DD HH:MM:SS");
//
//return `${date.toLocaleDateString()}`;
return formatDate(cellValue, "YYYY-MM-DD HH:MM:SS:SSS");
}, rowStyle(row, rowIndex) { }, rowStyle(row, rowIndex) {
if (this.doubleclikIndex === row.row.RN) { if (this.doubleclikIndex === row.row.RN) {
return { return {
@ -194,6 +213,9 @@ function getTableDataLists(){
var paramsData=_this.params; var paramsData=_this.params;
paramsData.pageNum=_this.currentPage; paramsData.pageNum=_this.currentPage;
paramsData.pageSize=_this.pageSize; paramsData.pageSize=_this.pageSize;
paramsData
/* if(! paramsData.queryStartTime){ /* if(! paramsData.queryStartTime){
_this.tableLoading=false; _this.tableLoading=false;
return ; return ;
@ -203,6 +225,7 @@ function getTableDataLists(){
if(res.code<=0){ if(res.code<=0){
return false; return false;
}else{ }else{
debugger
_this.totalCount=res.total; _this.totalCount=res.total;
_this.tableData=res.records; _this.tableData=res.records;
_this.isLoding=false; _this.isLoding=false;
@ -270,4 +293,35 @@ function getCurrentDateHour(){
// dateTemp = myDate.getFullYear()+"/"+(c)+"/"+myDate.getDate(); // dateTemp = myDate.getFullYear()+"/"+(c)+"/"+myDate.getDate();
return `${year}${month}${day}${hour}${minute}${second}`; return `${year}${month}${day}${hour}${minute}${second}`;
} }
function exportFeeData(paramsData) {
if(!paramsData.queryStartTime){
alert("请选择日期");
return ;
}
exportExcleProvinceData({paramsData: JSON.stringify(paramsData)}).then(res => {
if (res.data != "") {
//fileName:
var fileName = '有计费无拆分_' + tool.getCurrentDateHour(); //decodeURIComponent(res.headers["Content-Disposition"].split("=")[1])
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel;charset=utf-8'});
// ie
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {
//ie
var downloadElement = document.createElement("a");
var href = window.URL.createObjectURL(blob); //url
downloadElement.href = href;
downloadElement.download = fileName; //
document.body.appendChild(downloadElement);
downloadElement.click(); //
document.body.removeChild(downloadElement); //
window.URL.revokeObjectURL(href); //blob
}
}
//false
_this.tableLoading = false;
});
}
</script> </script>

@ -152,7 +152,6 @@ export default {
} }
} }
} }
console.log("中心坐标======LNG===="+LNG+"====LAT========"+LAT+"===STANAME=====");
let styleOption = Object.assign( let styleOption = Object.assign(
{}, {},
HDmap.MapStyle.SM_WMTS_VEC_WHITE, HDmap.MapStyle.SM_WMTS_VEC_WHITE,
@ -228,7 +227,6 @@ export default {
if (this.fitGantry != null && this.fitGantry.length > 0) { if (this.fitGantry != null && this.fitGantry.length > 0) {
for (let i = 0; i < this.fitGantry.length; i++) { for (let i = 0; i < this.fitGantry.length; i++) {
if(this.fitGantry[i].LNG !="" && this.fitGantry[i].LAT != ""){ if(this.fitGantry[i].LNG !="" && this.fitGantry[i].LAT != ""){
console.log("计费坐标名称====="+this.fitGantry[i].staName+"("+this.fitGantry[i].FEE+")");
this.fitFeatures[this.fitFeatures.length] = { this.fitFeatures[this.fitFeatures.length] = {
"type": "Feature", "type": "Feature",
"properties": { "properties": {
@ -270,7 +268,6 @@ export default {
if (this.divGantry != null && this.divGantry.length > 0) { if (this.divGantry != null && this.divGantry.length > 0) {
for (let i = 0; i < this.divGantry.length; i++) { for (let i = 0; i < this.divGantry.length; i++) {
if(this.divGantry[i].LNG !="" && this.divGantry[i].LAT != ""){ if(this.divGantry[i].LNG !="" && this.divGantry[i].LAT != ""){
console.log("拆分坐标名称====="+this.divGantry[i].staName+"("+this.divGantry[i].FEE+")");
this.divFeatures[this.divFeatures.length] = { this.divFeatures[this.divFeatures.length] = {
"type": "Feature", "type": "Feature",
"properties": { "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: ' + document.documentElement.clientHeight * 0.75 + 'px;z-index: 1;'
this.mapStyle = 'width: 100%;height:100%;position:relative;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'){ if(this.$props.params ==undefined || this.$props.params=='' || this.$props.params=='null'){
console.log("params值为空==================");
}else{ }else{
this.getMapDatas(this.$props.params); this.getMapDatas(this.$props.params);
} }

@ -0,0 +1,167 @@
<!-- 计费大于拆分 本省和跨省拆分金额-->
<template>
<div id="contain" style="width:100%;height: 100%;position: inherit">
<div style="height:88%;width:100%;position:relative">
<div style="height: 94%;width: 100%">
<el-table :data="tableData" width="100%" id="table_el" :header-cell-style="{background:'#e9ecee',align:'center'}" border
v-loading="tableLoading"
:row-style="rowStyle"
show-summary>
<el-table-column type="index" label="序号" :index="indexmethod" width="100px" align="center"/>
<el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="150px" resizable align="center" />
<el-table-column prop="gpaFee" label="计费总金额(万元)" width="410px" resizable align="center" />
<el-table-column prop="divFee" label="拆分总金额(万元)" width="410px" resizable align="center" />
<el-table-column prop="bdivfee" label="本省拆分金额(万元)" :show-overflow-tooltip="true" width="410px" resizable align="center" />
<el-table-column prop="kdivfee" label="跨省拆分金额(万元)" :show-overflow-tooltip="true" width="410px" resizable align="center" />
</el-table>
</div>
</div>
</div>
</template>
<style >
#table_el{
height: 100% ;
width: 100%;
}
</style>
<script >
import { ref} from "vue";
import {Filter,Search} from '@element-plus/icons-vue'
import {getProvinceData} from "@/util/api/api";
import tool from "@/util/tool";
import {ElMessageBox} from "element-plus";
var _this;
export default {
data() {
return {
currentPage: 1,
pageSize: 10,
totalCount: 0,
tableData: ref([]),
isShowMap: false,
isShowDivDetail: false,
tableDisable:false,
mapParams: {},
Filter: Filter,
tableLoading: false,
searchButton: Search,
doubleclikIndex: -1,//
params:{}
}
},
//props: ['params'],
methods: {
refreshData(paramAll){
this.params=paramAll;
getTableDataLists();
},handleSizeChange(val) {
this.pageSize = val;
this.isLoding = true;
getTableDataLists();
},handleCurrentChange(val) {
this.currentPage = val;
this.isLoding = true;
getTableDataLists();
},indexmethod(index){
return index + this.pageSize * (this.currentPage -1)+1;
}, dateFormatter(row, column, cellValue) {
if (cellValue == null || cellValue == "" || cellValue == undefined) {
return "";
}
//return `${date.toLocaleDateString()}`;
return formatDate(cellValue, "YYYY-MM-DD");
}, rowStyle(row, rowIndex) {
if (this.doubleclikIndex === row.row.RN) {
return {
"background-color": "lightcyan",
"cursor": "pointer"
}
}
return {
"cursor": "pointer"
}
}
},
mounted() {
_this = this;
}
}
function getTableDataLists(){
_this.tableLoading=true;
var paramsData=_this.params;
getProvinceData(paramsData).then(res=>{
_this.tableLoading=false;
if(res.code<=0){
return false;
}else{
_this.tableData=res.data;
}
})
}
//
function formatDate(dateString,format) {
const date = new Date(dateString);
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;
}
const milSecond=date.getMilliseconds();
if(format=="YYYY-MM-DD"){
return `${year}-${month}-${day}`;
}else if(format=="YYYY-MM-DD HH:MM:SS"){
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
}else if(format=="YYYY-MM-DD HH:MM:SS:SSS"){
return `${year}-${month}-${day} ${hour}:${minute}:${second}:${milSecond}`;
}else if(format=="HH:MM:SS"){
return `${hour}:${minute}:${second}:${milSecond}`;
}
return "";
}
function getCurrentDate(){
var myDate = new Date(); //
myDate.setDate(myDate.getDate() - 1);
// dateTemp = myDate.getFullYear()+"/"+(c)+"/"+myDate.getDate();
return myDate.getFullYear()+"-"+((myDate.getMonth()+1) >9?(myDate.getMonth()+1):"0"+(myDate.getMonth()+1))+"-"+(myDate.getDate() >9?myDate.getDate():"0"+myDate.getDate());
}
function getCurrentDateHour(){
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;
}
// dateTemp = myDate.getFullYear()+"/"+(c)+"/"+myDate.getDate();
return `${year}${month}${day}${hour}${minute}${second}`;
}
</script>

@ -0,0 +1,297 @@
<!-- 计费大于拆分的明细-->
<template>
<div id="contain_nofee_province" style="width:100%;height: 100%;position: inherit">
<div style="height:99%;width:100%;position:relative">
<p style="color: darkgreen;font-size: large">不包含免费车-->总计费金额{{gpaFee}}(万元)&nbsp;&nbsp;&nbsp; 总拆分金额{{divFee}}(万元)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;本省总拆分金额{{bdivFee}}(万元)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;跨省总拆分金额{{kdivFee}}(万元)</p>
<div style="height: 90%;width: 100%">
<el-table :data="tableData" width="100%" id="table_el_province" :header-cell-style="{background:'#e9ecee',align:'center'}" border
v-loading="tableLoading"
>
<el-table-column type="index" label="序号" width="100px" :index="indexProvincemethod" align="center"/>
<el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="180px" resizable align="center" />
<el-table-column prop="passid" label="PASSID" :show-overflow-tooltip="true" width="320px" resizable align="center" />
<el-table-column prop="gpaEntime" label="计费开始日期" width="200px" :formatter="dateFormatterSSS" align="center" />
<el-table-column prop="gpaExtime" label="计费结束日期" width="200px" :formatter="dateFormatterSSS" align="center" />
<el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="150px" resizable align="center" />
<el-table-column prop="vehicleidColor" label="车牌颜色" :show-overflow-tooltip="true" width="100px" resizable align="center" />
<el-table-column prop="gpaFee" label="计费金额(元)" width="250px" resizable align="center" />
<el-table-column prop="divFee" label="拆分金额(元)" width="250px" resizable align="center" />
<el-table-column prop="vehicletypeName" label="车型" :show-overflow-tooltip="true" width="100px" resizable align="center" />
<el-table-column prop="vehicleclassName" label="车种" :show-overflow-tooltip="true" width="100px" resizable align="center" />
<el-table-column prop="bak1" label="本省/跨省" :show-overflow-tooltip="true" width="100px" resizable align="center" />
<el-table-column prop="vehicleclass" label="车种" v-if="tableDisable" :show-overflow-tooltip="true" width="100px" resizable align="center" />
<el-table-column prop="status" label="拆分状态" width="400px" resizable align="center" />
<el-table-column prop="roadno" label="计费单元组id" v-if="tableDisable" align="center" />
</el-table>
</div>
<div style="height: 5%;width: 100%;position:relative">
<!-- 分页 -->
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[20, 30,50,100]"
:page-size="pageSize"
:total="totalCount"
layout="total, sizes, prev, pager, next, jumper"
style="width: 90%;height:100%;padding: 0;position:relative;margin-top:1%;bottom: 0;font-size: x-small">
</el-pagination>
</div>
</div>
</div>
</template>
<style >
#table_el_province{
height: 100% ;
width: 100%;
}
</style>
<script >
import { ref} from "vue";
import {Filter,Search} from '@element-plus/icons-vue'
import {exportEveryData, exportExcleProvinceData, getProvinceData, getProvinceListByPage} from "@/util/api/api";
import tool from "@/util/tool";
var _this;
export default {
data() {
return {
currentPage: 1,
pageSize: 15,
totalCount: 0,
tableData: ref([]),
isShowMap: false,
isShowFeeDetail: false,
tableDisable:false,
mapParams: {},
Filter: Filter,
tableLoading: false,
searchButton: Search,
doubleclikIndex: -1,//
params:{},
gpaFee:0,
divFee:0,
bgpaFee:0,
kgpaFee:0,
bdivFee:0,
kdivFee:0,
}
},
//props: ['params'],
methods: {
refreshProvinceData(paramAll){
this.tableLoading=true;
this.params=paramAll;
getTableDataLists();
getSumDataLists();
},exportExcleProvince(paramAll){
exportProvinceData(paramAll);
},closeDialogDivfee(){//
this.isShowFeeDetail=false;
getTableDataLists();
}, skipMapVue(row) {
this.isShowMap = true;
let _params={
"GPA_TOLLINTERVALID": "",
"GPA_FEEGROUP": "",
"GPA_FEE": "",
"DIV_TOLLINTERVALID": row.divTollintervalid,
"DIV_FEEGROUP": row.divFeegroup,
"DIV_FEE": row.divFee,
}
this.isShowMap = true;
this.mapParams = _params;
},indexProvincemethod(index){
return index + this.pageSize * (this.currentPage -1)+1;
},matchFeeData(row){
this.isShowFeeDetail=true;
let _params={
"divTollintervalid": row.divTollintervalid,
"classdate": this.dateFormatter(null,null,row.classdate),
"divEntime": this.dateFormatterSSS(null,null,row.divEntime),
"divExtime": this.dateFormatterSSS(null,null,row.divExtime),
"passid": row.passid,
"vehicleid": row.vehicleid,
"divFeeGroup": row.divFeegroup,
"vehicletypeName": row.vehicletypeName,
"divFee": row.divFee,
"feeStatus": 4,
"vehicleclass": row.vehicleclass,
"startTime": tool.DayDec(row.classdate,0),
"endTime": tool.DayDec(row.classdate,-10)
}
this.$nextTick(() => {
this.$refs["divMatchNoFee"].refreshData(_params);
})
},getmultitypeColor(status) { //
if (status !== undefined) {
if (status ==="匹配一条") {
return '#67C23A'; // 绿
} else if (status ==="匹配多条") {
return '#f3650d'; //
}else {
return '#f10505'; //
}
}
},
handleSizeChange(val) {
this.pageSize = val;
this.isLoding = true;
getTableDataLists();
},handleCurrentChange(val) {
this.currentPage = val;
this.isLoding = true;
getTableDataLists();
}, dateFormatter(row, column, cellValue) {
if (cellValue == null || cellValue == "" || cellValue == undefined) {
return "";
}
const date = new Date(cellValue);
//
//return `${date.toLocaleDateString()}`;
return formatDate(cellValue, "YYYY-MM-DD");
}, dateFormatterSSS(row, column, cellValue) {
if (cellValue == null || cellValue == "" || cellValue == undefined) {
return "";
}
const date = new Date(cellValue);
//
//return `${date.toLocaleDateString()}`;
return formatDate(cellValue, "YYYY-MM-DD HH:MM:SS");
}
}, components: {
Search
},
mounted() {
_this = this;
}
}
function getTableDataLists(){
_this.tableLoading=true;
var paramsData=_this.params;
paramsData.pageNum=_this.currentPage;
paramsData.pageSize=_this.pageSize;
getProvinceListByPage(paramsData).then(res=>{
_this.tableLoading=false;
if(res.code<=0){
return false;
}else{
_this.totalCount=res.total;
_this.tableData=res.records;
_this.isLoding=false;
}
})
}
function getSumDataLists(){
var paramsData=_this.params;
getProvinceData(paramsData).then(res=>{
if(res.count<=0){
return false;
}else{
let obj=res.data[0];
_this.gpaFee=obj.gpaFee;
_this.divFee=obj.divFee;
_this.bgpaFee=obj.bgpafee;
_this.kgpaFee=obj.kgpafee;
_this.bdivFee=obj.bdivfee;
_this.kdivFee=obj.kdivfee;
}
})
}
//
function formatDate(dateString,format) {
const date = new Date(dateString);
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;
}
const milSecond=date.getMilliseconds();
if(format=="YYYY-MM-DD"){
return `${year}-${month}-${day}`;
}else if(format=="YYYY-MM-DD HH:MM:SS"){
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
}else if(format=="YYYY-MM-DD HH:MM:SS:SSS"){
return `${year}-${month}-${day} ${hour}:${minute}:${second}:${milSecond}`;
}else if(format=="HH:MM:SS"){
return `${hour}:${minute}:${second}:${milSecond}`;
}
return "";
}
function getCurrentDate(){
var myDate = new Date(); //
myDate.setDate(myDate.getDate() - 1);
// dateTemp = myDate.getFullYear()+"/"+(c)+"/"+myDate.getDate();
return myDate.getFullYear()+"-"+((myDate.getMonth()+1) >9?(myDate.getMonth()+1):"0"+(myDate.getMonth()+1))+"-"+(myDate.getDate() >9?myDate.getDate():"0"+myDate.getDate());
}
function getCurrentDateHour(){
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;
}
// dateTemp = myDate.getFullYear()+"/"+(c)+"/"+myDate.getDate();
return `${year}${month}${day}${hour}${minute}${second}`;
}
function exportProvinceData(paramsData) {
paramsData.status=2;
if(!paramsData.queryStartTime){
alert("请选择日期");
return ;
}
exportExcleProvinceData({paramsData: JSON.stringify(paramsData)}).then(res => {
if (res.data != "") {
//fileName:
var fileName = '计费大于拆分_' + tool.getCurrentDateHour(); //decodeURIComponent(res.headers["Content-Disposition"].split("=")[1])
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel;charset=utf-8'});
// ie
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {
//ie
var downloadElement = document.createElement("a");
var href = window.URL.createObjectURL(blob); //url
downloadElement.href = href;
downloadElement.download = fileName; //
document.body.appendChild(downloadElement);
downloadElement.click(); //
document.body.removeChild(downloadElement); //
window.URL.revokeObjectURL(href); //blob
}
}
//false
_this.tableLoading = false;
});
}
</script>

@ -0,0 +1,226 @@
<!-- 稽核数据查看-->
<template>
<div id="contain_query" style="width:100%;height: 100%;position: inherit">
<div style="height:99%;width:100%;position:relative">
<div style="height: 94%;width: 100%">
<el-table :data="tableData" width="100%" id="table_el" :header-cell-style="{background:'#e9ecee',align:'center'}" border
v-loading="tableLoading"
>
<el-table-column type="index" label="序号" :index="indexmethod" width="100px" align="center"/>
<el-table-column prop="classdate" label="日期" :show-overflow-tooltip="true" :formatter="dateFormatter" width="150px" resizable align="center" />
<el-table-column prop="id" label="PASSID" :show-overflow-tooltip="true" width="200px" resizable align="center" />
<el-table-column prop="matchId" label="匹配数据PASSID" :show-overflow-tooltip="true" width="200px" resizable align="center" />
<el-table-column prop="vehicleid" label="车牌号" :show-overflow-tooltip="true" width="220px" resizable align="center" />
<el-table-column prop="vehicleidColor" label="车牌颜色" :show-overflow-tooltip="true" width="220px" resizable align="center" />
<el-table-column prop="gpaFee" label="计费金额(元)" width="250px" resizable align="center" />
<el-table-column prop="divFee" label="拆分金额(元)" width="250px" resizable align="center" />
<el-table-column prop="vehicletype" label="车型" :show-overflow-tooltip="true" width="250px" resizable align="center" />
<el-table-column prop="vehicleclass" label="车种" :show-overflow-tooltip="true" width="100px" resizable align="center" />
<el-table-column prop="maname" label="处理人" :show-overflow-tooltip="true" width="180px" resizable align="center" />
<el-table-column prop="createTime" label="处理时间" :show-overflow-tooltip="true" :formatter="dateFormatterSSS" width="200px" resizable align="center" />
<el-table-column prop="datatype" label="数据类型" :show-overflow-tooltip="true" width="200px" resizable align="center" />
<el-table-column prop="checkStatus" label="处理结果" :show-overflow-tooltip="true" width="200px" resizable align="center" />
</el-table>
</div>
<div tyle="height: 5%;width: 100%">
<!-- 分页 -->
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[20, 30,50,100]"
:page-size="pageSize"
:total="totalCount"
layout="total, sizes, prev, pager, next, jumper"
style="width: 90%;height:5%;padding: 0;position:relative;margin-top:10px;bottom: 0;font-size: x-small">
</el-pagination>
</div>
</div>
</div>
</template>
<style >
#table_el{
height: 100% ;
width: 100%;
}
#detail_dialog_fee{
margin-top: 20px !important;
width:80%;
height: 75%;
padding-bottom: 0 !important;
}
</style>
<script >
import { ref} from "vue";
import {exportExcleQueryMatch, getMatchListByPage} from "@/util/api/api";
import tool from "@/util/tool";
var _this;
export default {
data() {
return {
currentPage: 1,
pageSize: 10,
totalCount: 0,
tableData: ref([]),
tableLoading: false,
params:{}
}
},
//props: ['params'],
methods: {
refreshQueryData(paramAll){
this.params=paramAll;
getQueryDataLists();
},exportExcleQuery(paramAll){
exportMatchData(paramAll);
},handleSizeChange(val) {
this.pageSize = val;
this.isLoding = true;
getQueryDataLists();
},handleCurrentChange(val) {
this.currentPage = val;
this.isLoding = true;
getQueryDataLists();
},indexmethod(index){
return index + this.pageSize * (this.currentPage -1)+1;
}, dateFormatter(row, column, cellValue) {
if (cellValue == null || cellValue == "" || cellValue == undefined) {
return "";
}
//return `${date.toLocaleDateString()}`;
return formatDate(cellValue, "YYYY-MM-DD");
}, dateFormatterSSS(row, column, cellValue) {
if (cellValue == null || cellValue == "" || cellValue == undefined) {
return "";
}
return formatDate(cellValue, "YYYY-MM-DD HH:MM:SS");
}, rowStyle(row, rowIndex) {
if (this.doubleclikIndex === row.row.RN) {
return {
"background-color": "lightcyan",
"cursor": "pointer"
}
}
return {
"cursor": "pointer"
}
}
}, components: {
},
mounted() {
_this = this;
}
}
function getQueryDataLists(){
_this.tableLoading=true;
var paramsData=_this.params;
paramsData.pageNum=_this.currentPage;
paramsData.pageSize=_this.pageSize;
paramsData.status="";
getMatchListByPage(paramsData).then(res=>{
_this.tableLoading=false;
if(res.code<=0){
return false;
}else{
debugger
_this.totalCount=res.total;
_this.tableData=res.records;
_this.isLoding=false;
}
})
}
//
function formatDate(dateString,format) {
const date = new Date(dateString);
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;
}
const milSecond=date.getMilliseconds();
if(format=="YYYY-MM-DD"){
return `${year}-${month}-${day}`;
}else if(format=="YYYY-MM-DD HH:MM:SS"){
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
}else if(format=="YYYY-MM-DD HH:MM:SS:SSS"){
return `${year}-${month}-${day} ${hour}:${minute}:${second}:${milSecond}`;
}else if(format=="HH:MM:SS"){
return `${hour}:${minute}:${second}:${milSecond}`;
}
return "";
}
function getCurrentDate(){
var myDate = new Date(); //
myDate.setDate(myDate.getDate() - 1);
// dateTemp = myDate.getFullYear()+"/"+(c)+"/"+myDate.getDate();
return myDate.getFullYear()+"-"+((myDate.getMonth()+1) >9?(myDate.getMonth()+1):"0"+(myDate.getMonth()+1))+"-"+(myDate.getDate() >9?myDate.getDate():"0"+myDate.getDate());
}
function getCurrentDateHour(){
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;
}
// dateTemp = myDate.getFullYear()+"/"+(c)+"/"+myDate.getDate();
return `${year}${month}${day}${hour}${minute}${second}`;
}
function exportMatchData(paramsData) {
exportExcleQueryMatch({paramsData: JSON.stringify(paramsData)}).then(res => {
if (res.data != "") {
//fileName:
var fileName = '稽核数据_' + tool.getCurrentDateHour(); //decodeURIComponent(res.headers["Content-Disposition"].split("=")[1])
let blob = new Blob([res.data], {type: 'application/vnd.ms-excel;charset=utf-8'});
// ie
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(blob, fileName);
} else {
//ie
var downloadElement = document.createElement("a");
var href = window.URL.createObjectURL(blob); //url
downloadElement.href = href;
downloadElement.download = fileName; //
document.body.appendChild(downloadElement);
downloadElement.click(); //
document.body.removeChild(downloadElement); //
window.URL.revokeObjectURL(href); //blob
}
}
//false
_this.tableLoading = false;
});
}
</script>

@ -115,7 +115,6 @@ data() {
}, },
methods: { methods: {
search() {// search() {//
console.log(tool.DayDec(new Date(),-1))
if(this.rpTime){ if(this.rpTime){
this.begindate=this.rpTime[0]; this.begindate=this.rpTime[0];
this.enddate=this.rpTime[1]; this.enddate=this.rpTime[1];

@ -0,0 +1,537 @@
<!--主页 各种金额分别展示 -->
<template>
<div style="width:100%;height: 100%">
<div id="feeanddiv" style="width: 800px;height:220px" v-loading="feeanddivloading" ></div>
</div>
</template>
<script>
import {ref } from 'vue';
import tool from '@/util/tool';
import {getDivDataList, getFeeTotal} from "@/util/api/api";
//import {getGantryPassDivStatList} from '../../../util/api/api.js'
var _this;
export default {
name: "echatsTotalLine",
data() {
return {
loading:ref(false),
feeanddivloading:ref(false),
beginDate:"",
endDate:"",
dataType:"JT",
//dateTime:'2024-07-22'
}
},
methods: {
refreshData(beginDate,endDate,subcomno,roadno,stano){
this.loading=true;
this.feeanddivloading=true;
this.queryStartTime= beginDate;
this.queryEndTime= endDate;
this.subcomno= subcomno;
this.roadno= roadno;
this.stano= stano;
var paramsObj={
"queryStartTime":beginDate,
"queryEndTime":endDate,
"subcomno":subcomno,
"roadno":roadno,
"stano":stano,
"isNoContainJm":"Y" //
}
getDivDataList(paramsObj).then(
res=>{
this.loading=false;
if (res.code > 0) {
let _data = res.data;
let dataX=[];
var dataRight = [];
var dataRightFlow = [];
var dataNoDiv = [];
var dataNoDivFlow = [];
var dataNoFee = [];
var dataNoFeeFlow = [];
var dataLessDiv = [];
var dataLessDivFee = [];
var dataLessDivFlow = [];
var dataMoreDiv = [];
var dataMoreDivFee = [];
var dataMoreDivFlow = [];
if(_data !==undefined ){
if (_data.length > 0) {
var _classdate="";
for(var k=0;k<_data.length;k++){
let divData=_data[k];
if(_classdate !== divData.classdate){
dataX.push(tool.formatDate(new Date(divData.classdate),"YYYY-MM-DD"));
_classdate=divData.classdate;
}
if(divData.status ==="1"){
dataRight.push(tool.NumRound(divData.fee));
dataRightFlow.push(divData.carcount);
}
if(divData.status ==="2"){//
dataLessDiv.push(tool.NumRound(divData.fee));
dataLessDivFee.push(tool.NumRound(divData.divfee));
dataLessDivFlow.push(divData.carcount);
}
if(divData.status ==="3"){//
dataMoreDiv.push(tool.NumRound(divData.fee));
dataMoreDivFee.push(tool.NumRound(divData.divfee));
dataMoreDivFlow.push(divData.carcount);
}
if(divData.status ==="4"){//
dataNoFee.push(tool.NumRound(divData.divfee));
dataNoFeeFlow.push(divData.carcount);
}
if(divData.status ==="5"){//
dataNoDiv.push(tool.NumRound(divData.fee));
dataNoDivFlow.push(divData.carcount);
}
}
}
this.$nextTick(() => {
this.initOptionLine('feeanddiv', dataX, dataFeeRight,dataDivRight, dataRightFlow);
})
}
}
}
)
getFeeTotal(paramsObj).then(
res=>{
this.feeanddivloading=false;
if (res.code > 0) {
let _data = res.data;
if (_data.length > 0) {
let dataX=[];
var dataYS = [];
var dataYSFlow = [];
if(_data !==undefined ){
for(var k=0;k<_data.length;k++){
let divData=_data[k];
dataX.push(tool.formatDate(new Date(divData.classdate),"YYYY-MM-DD"));
dataYS.push(tool.NumRound(divData.fee));
dataYSFlow.push(divData.carcount);
}
}
this.$nextTick(() => {
this.initOptionLine('YSLine', dataX, dataYS, dataYSFlow);
})
}
}
}
)
},initOptionLine(divId,dataX,dataMoney,dataFlow) {
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:10}
},
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:false,
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:'line',
data:dataFlow,
label:{
show: true, //
position: 'top', //
formatter: '{c}' // {c}
},
yAxisIndex:0
},{
name:'金额(万元)',
type:'bar',
data:dataMoney,
label:{
show: true, //
position: 'inside', //
formatter: '{c}' // {c}
},
yAxisIndex:1
}
]
};
myChart.setOption(this.option);
/*myChart.on('click', function(params) {
//
_this.$emit("changeGantryCount",params.name);
});*/
},initOptionLineMoreLess(divId,dataX,dataMoney,dataFeeMoney,dataFlow) {
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:10}
},
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:false,
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:'line',
data:dataFlow,
label:{
show: true, //
position: 'top', //
formatter: '{c}' // {c}
},
yAxisIndex:0
},{
name:'计费金额(万元)',
type:'bar',
data:dataMoney,
label:{
show: true, //
position: 'inside', //
formatter: '{c}' // {c}
},
yAxisIndex:1
},{
name:'拆分金额(万元)',
type:'bar',
data:dataFeeMoney,
label:{
show: true, //
position: 'inside', //
formatter: '{c}' // {c}
},
yAxisIndex:1
}
]
};
myChart.setOption(this.option);
}
},mounted() {
_this=this;
/*
var paramsObj={
"beginDate":this.beginDate,
"endDate":this.endDate,
"dataType":this.dataType
}
getDivDataList(paramsObj).then(
res=>{
if (res.code > 0) {
let _data = res.data;
if (_data.length > 0) {
let dataX=[];
var dataYS = [];
var dataYSFlow = [];
var dataRight = [];
var dataRightFlow = [];
var dataNoDiv = [];
var dataNoDivFlow = [];
var dataNoFee = [];
var dataNoFeeFlow = [];
var dataLessDiv = [];
var dataLessDivFlow = [];
var dataMoreDiv = [];
var dataMoreDivFlow = [];
var dataYQ = [];
var dataYQFlow = [];
var dataJF = [];
var dataJFFlow = [];
if(_data !==undefined ){
for(var k=0;k<_data.length;k++){
dataX.push(tool.formatDate(new Date(_data[k].CLASSDATE),"YYYY-MM-DD"));
dataYS.push(tool.NumRound(_data[k].JTYSMONEY/10000));
dataYSFlow.push(_data[k].JTYSFLOW);
dataRight.push(tool.NumRound(_data[k].RIGHTMONEY /10000));
dataRightFlow.push(_data[k].RIGHTFLOW);
dataNoDiv.push(tool.NumRound(_data[k].NODIVMONEY/10000));
dataNoDivFlow.push(_data[k].NODIVFLOW);
dataNoFee.push(tool.NumRound(_data[k].NOFEEMONEY/10000));
dataNoFeeFlow.push(_data[k].NOFEEFLOW);
dataLessDiv.push(tool.NumRound(_data[k].LESSDIVMONEY/10000));
dataLessDivFlow.push(_data[k].LESSDIVFLOW);
dataMoreDiv.push(tool.NumRound(_data[k].MOREDIVMONEY/10000));
dataMoreDivFlow.push(_data[k].MOREDIVFLOW);
dataYQ.push(tool.NumRound(_data[k].YQMONEY/10000));
dataYQFlow.push(_data[k].YQFLOW);
dataJF.push(tool.NumRound(_data[k].JFMONEY/10000));
dataJFFlow.push(_data[k].JFFLOW);
}
}
this.initOptionLine('YSLine',dataX,dataYS,dataYSFlow);
this.initOptionLine('divRightLine',dataX,dataRight,dataRightFlow);
this.initOptionLine('noDivLine',dataX,dataNoDiv,dataNoDivFlow);
this.initOptionLine('noFeeLine',dataX,dataNoFee,dataNoFeeFlow);
this.initOptionLine('lessDivLine',dataX,dataLessDiv,dataLessDivFlow);
this.initOptionLine('moreDivLine',dataX,dataMoreDiv,dataMoreDivFlow);
this.initOptionLine('yqLine',dataX,dataYQ,dataYQFlow);
this.initOptionLine('jfLine',dataX,dataJF,dataJFFlow);
}
_this.loading=false;
}
}
)*/
}
}
/*function formatDate(dateString,format) {
const date = new Date(dateString);
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;
}
const milSecond=date.getMilliseconds();
if(format=="YYYY-MM-DD"){
return `${year}-${month}-${day}`;
}else if(format=="YYYY-MM-DD HH:MM:SS"){
return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
}else if(format=="YYYY-MM-DD HH:MM:SS:SSS"){
return `${year}-${month}-${day} ${hour}:${minute}:${second}:${milSecond}`;
}else if(format=="HH:MM:SS"){
return `${hour}:${minute}:${second}:${milSecond}`;
}
return "";
}*/
</script>
<style>
</style>

@ -1,15 +1,15 @@
<template> <template>
<div style="width:100%;height: 100%"> <div style="width:100%;height: 100%">
<div style="width: 1500px;height:50px"> <div style="width: 100%;height:5%">
<el-radio-group v-model="rankClassText" @change="changeEchartsData"> <el-radio-group v-model="rankClassText" @change="changeEchartsData">
<el-radio label="ZT">总体</el-radio> <el-radio label="ZT">总体</el-radio>
<el-radio label="KC">客车</el-radio> <el-radio label="KC">客车</el-radio>
<el-radio label="HC">货车</el-radio> <el-radio label="HC">货车</el-radio>
</el-radio-group> </el-radio-group>
</div> </div>
<div id="contain_line" style="width: 1500px;height:800px" v-show="showZt"></div> <div id="contain_line" style="width: 100%;height:95%;" v-show="showZt"></div>
<div id="contain_line_HC" style="width: 1500px;height:800px" v-show="showHc"></div> <div id="contain_line_HC" style="width: 100%;height:95%;" v-show="showHc"></div>
<div id="contain_line_KC" style="width: 1500px;height:800px" v-show="showKc"></div> <div id="contain_line_KC" style="width: 100%;height:95%;" v-show="showKc"></div>
</div> </div>
</template> </template>
@ -44,6 +44,7 @@ export default {
let dataFlow=[]; let dataFlow=[];
let datakFlow=[]; let datakFlow=[];
let datahFlow=[]; let datahFlow=[];
this.rankClassText="ZT";
for(var i=0;i<params.length;i++){ for(var i=0;i<params.length;i++){
dataX.push(params[i].tollintervalidname); dataX.push(params[i].tollintervalidname);
datafee.push(params[i].fee); datafee.push(params[i].fee);

@ -62,8 +62,9 @@
</el-form> </el-form>
</div> </div>
<div class="contain-div"> <div class="contain-div">
<div style="width:100%;height: 300px;position:relative" v-show="showDiv"> <div style="width:100%;height: 300px;position:relative;display: flex" v-show="showDiv">
<div id="feePie" style="width: 700px;height:290px" v-loading="loading" ></div> <div id="feePie" style="width: 700px;height:290px" v-loading="loading" ></div>
<div id="feeBar" style="width: 700px;height:290px" v-loading="loading" ></div>
</div> </div>
<div class="everydata_div" style="width:100%;height: 600px;border-bottom: #6b778c 1px solid;position:relative"> <div class="everydata_div" style="width:100%;height: 600px;border-bottom: #6b778c 1px solid;position:relative">
<div style="width:100%;padding-bottom: 20px;height: 100%" v-show="hbShow"> <div style="width:100%;padding-bottom: 20px;height: 100%" v-show="hbShow">
@ -112,7 +113,7 @@ body{
import { import {
Search, Upload Search, Upload
} from '@element-plus/icons-vue' } 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 everyDayData from "@/views/dev/detail/everyDayData.vue";
import hbData from "@/views/dev/detail/hbData.vue"; import hbData from "@/views/dev/detail/hbData.vue";
import echatsTotalLine from "@/views/dev/echarts/echatsTotalLine.vue"; import echatsTotalLine from "@/views/dev/echarts/echatsTotalLine.vue";
@ -150,6 +151,8 @@ data() {
stano: "", stano: "",
totalFee: 0, totalFee: 0,
totalDiv: 0, totalDiv: 0,
dataFee:[],
dataDivFee:[]
} }
}, },
methods: { methods: {
@ -204,6 +207,7 @@ methods: {
this.initOptionPie(data,"feePie","未拆分金额与已拆分金额","单位:万元"); this.initOptionPie(data,"feePie","未拆分金额与已拆分金额","单位:万元");
}else{ }else{
getTotalFeeAndDivFeeA(); getTotalFeeAndDivFeeA();
getBarData();
this.$refs["echatsTotalLine"].refreshData(this.begindate,this.enddate,this.subcomno,this.roadno,this.stano); 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) this.$refs["everyDayData"].refreshData(this.begindate,this.enddate,this.subcomno,this.roadno,this.stano,this.radio,this.num)
@ -241,6 +245,7 @@ methods: {
return ; return ;
} }
getTotalFeeAndDivFeeA(); getTotalFeeAndDivFeeA();
getBarData();
this.$refs["echatsTotalLine"].refreshData(this.begindate,this.enddate,this.subcomno,this.roadno,this.stano); this.$refs["echatsTotalLine"].refreshData(this.begindate,this.enddate,this.subcomno,this.roadno,this.stano);
if(this.radio ===3){ if(this.radio ===3){
this.$refs["hbData"].refreshDataHb(this.begindate,this.enddate,this.hbStartTimeQuery,this.hbEndTimeQuery) this.$refs["hbData"].refreshDataHb(this.begindate,this.enddate,this.hbStartTimeQuery,this.hbEndTimeQuery)
@ -319,6 +324,144 @@ methods: {
] ]
}; };
myChart.setOption(this.option); 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: { components: {
@ -352,6 +495,7 @@ mounted() {
}); });
this.initOptionPie(data,"feePie","未拆分金额与已拆分金额","单位:万元"); 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(){ function getCurrentDate(){
var myDate = new Date(); // var myDate = new Date(); //
myDate.setDate(myDate.getDate() - 1); myDate.setDate(myDate.getDate() - 1);

@ -140,7 +140,6 @@ export default {
},*/ },*/
addTab(path) { addTab(path) {
//tab //tab
console.log("path======"+path);
if(path.indexOf("undefined")>-1){ if(path.indexOf("undefined")>-1){
return ; return ;
} }
@ -222,7 +221,6 @@ export default {
} }
} }
this.$nextTick(()=>{ this.$nextTick(()=>{
console.log("首页菜单url====="+firstMenuUrl)
if(firstMenuUrl =="") { if(firstMenuUrl =="") {
firstMenuUrl = '/FeeBased/feeBased__数据监测'; firstMenuUrl = '/FeeBased/feeBased__数据监测';
} }

@ -4,7 +4,7 @@
<div id="first_div_0507"> <div id="first_div_0507">
<el-form :inline="true" :model="formInline" :label-position="right" style="width:100%;height: 100%"> <el-form :inline="true" :model="formInline" :label-position="right" style="width:100%;height: 100%">
<el-form-item label="日期:" class="s_el_row"> <el-form-item label="日期:" class="s_el_row">
<el-date-picker <!-- <el-date-picker
v-model="rpTime" v-model="rpTime"
type="datetimerange" type="datetimerange"
range-separator="To" range-separator="To"
@ -12,7 +12,21 @@
end-placeholder="结束时间" end-placeholder="结束时间"
value-format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss"
/> />-->
<el-date-picker
v-model="rpTime"
type="date"
placeholder="选择日期"
value-format="YYYY-MM-DD"
format="YYYY-MM-DD">
</el-date-picker>
</el-form-item>
<el-form-item label="PASSID" style="width:13%" >
<el-input v-model="passid" clearable></el-input>
</el-form-item>
<el-form-item label="车牌号:" style="width:13%" >
<el-input v-model="vehicleId" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="分公司名称:" class="s_el_row" style="width:13%"> <el-form-item label="分公司名称:" class="s_el_row" style="width:13%">
<el-select v-model="subcomno" @change="changesubcomnoValue" filterable placeholder="请选择..." clearable="true" style="width:100%;height:100%;border-color: gainsboro"> <el-select v-model="subcomno" @change="changesubcomnoValue" filterable placeholder="请选择..." clearable="true" style="width:100%;height:100%;border-color: gainsboro">
@ -55,15 +69,42 @@
</el-select> </el-select>
</el-form-item>--> </el-form-item>-->
<el-form-item style="padding: 0px;margin-right:5px;"> <el-form-item style="padding: 0px;margin-right:5px;">
<el-radio-group v-model="radio" @change="changeRadio"> <el-radio-group v-model="radio" @change="changeRadio" style="margin-right: 10px">
<el-radio :label="5">计费未拆分</el-radio> <el-radio :label="5">有计费无拆分</el-radio>
<el-radio :label="4">拆分未计费</el-radio> <el-radio :label="4">无计费有拆分</el-radio>
<el-radio :label="2">计费大于拆分</el-radio>
</el-radio-group> </el-radio-group>
<!-- <el-switch
v-if="showProvince"
v-model="provinceValue"
active-text="本省"
active-value="b"
inactive-text="跨省"
inactive-value="k"
@change="changeProvince">
</el-switch>-->
</el-form-item>
<el-form-item label="" class="s_el_row" style="width:12%" v-if="showProvince">
<el-select v-model="provinceValue" @change="changeProvince" filterable placeholder="请选择..." clearable style="width:100%;height:100%;border-color: gainsboro">
<el-option
v-for="item in provinceList"
:key="item.VALUE"
:label="item.LABEL"
:value="item.VALUE">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="比值(计费金额-拆分金额)/元:" style="padding: 0px;margin-left:5px;" v-show="rateValueShow">
<el-input-number v-model="rateValue" :precision="2" :min="0" :step="0.1" ></el-input-number>
</el-form-item> </el-form-item>
<el-form-item label="" style="width:8%;margin-right:5px" class="s_el_row"> <el-form-item label="" style="width:8%;margin-right:5px" class="s_el_row">
<div style="display:flex;text-align: left; height:100%; position: relative;margin:0;padding:0"> <div style="display:flex;text-align: left; height:100%; position: relative;margin:0;padding:0">
<el-button type="primary" style="margin-top: 0px;" @click="search" class="query_button" size="default" :icon="searchButton">查询</el-button> <el-button type="primary" style="margin-top: 0px;" @click="search" class="query_button" size="default" :icon="searchButton">查询</el-button>
<el-button type="primary" style="margin-top: 0px;margin-left: 20px;background-color: #eec10d" @click="search" class="query_button" size="default" >一键匹配</el-button> <el-button type="primary" style="margin-top: 0px;" v-if="showQueryButton" @click="querySearch" class="query_button" size="default" :icon="viewButton"></el-button>
<el-button type="primary" style="margin-top: 0px;" v-if="showExportButton" @click="exportCommonExcle" class="query_button" size="default" :icon="uploadButton"></el-button>
<!-- <el-button type="primary" style="margin-top: 0px;margin-left: 20px;background-color: #eec10d" @click="search" v-if="matchButoon" class="query_button" size="default" >一键匹配</el-button>-->
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -74,6 +115,12 @@
<div id="second_div_0508" v-show="showDivNofee"> <div id="second_div_0508" v-show="showDivNofee">
<divAndNoFee ref="divAndNoFee" /> <divAndNoFee ref="divAndNoFee" />
</div> </div>
<div id="second_div_0611" v-show="showQueryData">
<querySolveData ref="querySolveData" />
</div>
<div id="second_div_0609" v-show="showProvinceData">
<provinceDetail ref="provinceDetail" />
</div>
</template> </template>
<style scoped> <style scoped>
@ -82,25 +129,42 @@
width: 100%; width: 100%;
} }
#second_div_0507{ #second_div_0507{
height: 90%; height: 88%;
width: 100%; width: 100%;
} }
#second_div_0508{ #second_div_0508{
height: 90%; height: 88%;
width: 100%;
}
#second_div_0609{
height: 88%;
width: 100%;
}
#second_div_0611{
height: 88%;
width: 100%; width: 100%;
} }
</style> </style>
<script> <script>
import { import {
Search Search, Upload,View
} from '@element-plus/icons-vue' } from '@element-plus/icons-vue'
import { getSelectList} from "@/util/api/api"; import { getSelectList} from "@/util/api/api";
import feeAndNodiv from "@/views/dev/detail/nodivandnofee/feeAndNodiv.vue" import feeAndNodiv from "@/views/dev/detail/nodivandnofee/feeAndNodiv.vue"
import divAndNoFee from "@/views/dev/detail/nodivandnofee/divAndNoFee.vue" import divAndNoFee from "@/views/dev/detail/nodivandnofee/divAndNoFee.vue"
import provniceData from "@/views/dev/detail/nodivandnofee/provinceData.vue"
import provinceDetail from "@/views/dev/detail/nodivandnofee/provinceDetail.vue"
import querySolveData from "@/views/dev/detail/nodivandnofee/querySolveData.vue"
import tool from "@/util/tool"; import tool from "@/util/tool";
import {rateEmits} from "element-plus";
var _this; var _this;
export default { export default {
name: "nodivAndnofee", name: "nodivAndnofee",
computed: {
rateEmits() {
return rateEmits
}
},
data() { data() {
return { return {
showFeeNoDiv:true, showFeeNoDiv:true,
@ -108,21 +172,35 @@ export default {
radio:5, radio:5,
rpTime:"", rpTime:"",
searchButton:Search, searchButton:Search,
viewButton:View,
clickDialog:false, clickDialog:false,
divStatus:"", divStatus:"",
divStatusList:[], divStatusList:[],
queryStartTime:"", queryStartTime:"",
queryEndTime:"", queryEndTime:"",
uploadButton:Upload,
subcomDatas: [],// subcomDatas: [],//
roadDatas: [],// roadDatas: [],//
staDatas: [],// staDatas: [],//
multiTypeList: [{"VALUE":"Y","LABEL":"匹配一条"},{"VALUE":"M","LABEL":"匹配多条"},{"VALUE":"W","LABEL":"未匹配"}],// multiTypeList: [{"VALUE":"Y","LABEL":"匹配一条"},{"VALUE":"M","LABEL":"匹配多条"},{"VALUE":"W","LABEL":"未匹配"}],//
provinceList:[{"VALUE":"ALL","LABEL":"全部"},{"VALUE":"b","LABEL":"本省"},{"VALUE":"k","LABEL":"跨省"}],
subcomno: "", subcomno: "",
roadno: "", roadno: "",
stano: "", stano: "",
multiType: "", multiType: "",
passid: "",
vehicleId: "",
divstatus:4, divstatus:4,
paramAll:{} matchButoon:true,
provinceValue:"ALL",
showProvince:false,
showProvinceData:false,
rateValueShow:false,
showQueryButton:true,
showExportButton:true,
showQueryData:false,
paramAll:{},
rateValue:1
} }
}, },
methods: { methods: {
@ -130,20 +208,57 @@ export default {
if(value===5){ if(value===5){
this.showFeeNoDiv=true; this.showFeeNoDiv=true;
this.showDivNofee=false; this.showDivNofee=false;
this.showProvinceData=false;
this.showProvince=false;
this.showQueryData=false;
this.divstatus=4; this.divstatus=4;
}else{ this.matchButoon=true;
this.showQueryButton=true;
this.rateValueShow=false;
this.showExportButton=true;
}else if(value===4){
this.showFeeNoDiv=false; this.showFeeNoDiv=false;
this.showProvinceData=false;
this.showProvince=false;
this.showDivNofee=true; this.showDivNofee=true;
this.showQueryButton=true;
this.showQueryData=false;
this.divstatus=5; this.divstatus=5;
this.matchButoon=true;
this.rateValueShow=false;
this.showExportButton=false;
}else{//
this.matchButoon=false;
this.showFeeNoDiv=false;
this.showDivNofee=false;
this.showQueryButton=false;
this.showQueryData=false;
this.showProvinceData=true;
this.showProvince=true;
this.paramAll.feeStatus=2;
this.rateValueShow=true;
this.showExportButton=true;
} }
this.paramAll.status=value; this.paramAll.status=value;
this.paramAll.divstatus=this.divstatus; this.paramAll.divstatus=this.divstatus;
}, },changeProvince(){
search() {// /* if(this.rpTime){
console.log(this.rpTime) this.queryStartTime=this.rpTime+" 00:00:00";
this.queryEndTime=this.rpTime+" 00:00:00";
this.tableloading=true;
}else{
alert("请选择日期");
return ;
}
this.paramAll.status=2;
this.paramAll.bak1=(this.provinceValue==="ALL")?"":this.provinceValue;
this.$refs["provinceDetail"].refreshProvinceData(this.paramAll)*/
},search() {//
if(this.rpTime){ if(this.rpTime){
this.queryStartTime=this.rpTime[0]; /* this.queryStartTime=this.rpTime[0];
this.queryEndTime=this.rpTime[1]; this.queryEndTime=this.rpTime[1];*/
this.queryStartTime=this.rpTime+" 00:00:00";
this.queryEndTime=this.rpTime+" 00:00:00";
this.tableloading=true; this.tableloading=true;
}else{ }else{
alert("请选择日期"); alert("请选择日期");
@ -156,13 +271,75 @@ export default {
this.paramAll.stano =this.stano; this.paramAll.stano =this.stano;
this.paramAll.multiType =this.multiType; this.paramAll.multiType =this.multiType;
this.paramAll.status=this.radio; this.paramAll.status=this.radio;
this.paramAll.passid=this.passid;
this.paramAll.vehicleId=this.vehicleId;
this.changeRadio(this.radio);
if(this.radio ===5){ if(this.radio ===5){
this.paramAll.divstatus=4; this.paramAll.divstatus=4;
this.$refs["feeAndNodiv"].refreshData(this.paramAll) this.$refs["feeAndNodiv"].refreshData(this.paramAll)
}else{ }else if(this.radio ===4){
this.paramAll.divstatus=5; this.paramAll.divstatus=5;
this.$refs["divAndNoFee"].refreshData(this.paramAll) this.$refs["divAndNoFee"].refreshData(this.paramAll)
}else{
this.paramAll.feeStatus=2;
this.paramAll.status=2;
this.paramAll.bak1=(this.provinceValue==="ALL")?"":this.provinceValue;
this.paramAll.rateValue=this.rateValue;
this.$refs["provinceDetail"].refreshProvinceData(this.paramAll)
} }
},exportCommonExcle(){
if(this.rpTime){
/* this.queryStartTime=this.rpTime[0];
this.queryEndTime=this.rpTime[1];*/
this.queryStartTime=this.rpTime+" 00:00:00";
this.queryEndTime=this.rpTime+" 00:00:00";
this.tableloading=true;
}else if(this.showQueryData){
console.log("导出稽核数据")
}else{
alert("请选择日期");
return ;
}
this.paramAll.queryStartTime=this.queryStartTime;
this.paramAll.queryEndTime=this.queryEndTime;
this.paramAll.subcomno=this.subcomno;
this.paramAll.roadno =this.roadno;
this.paramAll.stano =this.stano;
this.paramAll.multiType =this.multiType;
this.paramAll.status=this.radio;
this.paramAll.passid=this.passid;
this.paramAll.vehicleId=this.vehicleId;
if(this.radio ===5 && !this.showQueryData){
this.paramAll.divstatus=4;
this.paramAll.rateValue="";
this.$refs["feeAndNodiv"].exportExcleFee(this.paramAll)
}else if(this.radio ===4 && !this.showQueryData){
this.paramAll.divstatus=5;
this.$refs["divAndNoFee"].exportExcleDivFee(this.paramAll)
}else if(this.radio ===2 && !this.showQueryData){
this.paramAll.feeStatus=2;
this.paramAll.bak1=(this.provinceValue==="ALL")?"":this.provinceValue;
this.paramAll.rateValue=this.rateValue;
this.$refs["provinceDetail"].exportExcleProvince(this.paramAll)
}else if(this.showQueryData){
this.paramAll.status="";
this.paramAll.status="";
this.$refs["querySolveData"].exportExcleQuery(this.paramAll)
}else{}
},querySearch(){
console.log("是否选择日期===="+ !this.rpTime);
if(!this.rpTime){
this.paramAll.queryStartTime="";
this.paramAll.queryEndTime="";
}
this.showQueryData=true;
this.showExportButton=true;
this.showFeeNoDiv=false;
this.showDivNofee=false;
this.showProvinceData=false;
this.showProvince=false;
this.$refs["querySolveData"].refreshQueryData(this.paramAll)
},showDivDetial(row,column,e){ },showDivDetial(row,column,e){
this.feeunitTitleMain=row.tollintervalidname; this.feeunitTitleMain=row.tollintervalidname;
this.feeDetailShow=true; this.feeDetailShow=true;
@ -180,7 +357,10 @@ export default {
}, },
components: { components: {
feeAndNodiv, feeAndNodiv,
divAndNoFee divAndNoFee,
provniceData,
querySolveData,
provinceDetail
}, },
mounted() { mounted() {
_this=this; _this=this;

@ -24,26 +24,6 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- <el-form-item label="路段名称:" class="s_el_row" style="width:12%">
<el-select v-model="roadno" @change="changeroadValue" filterable placeholder="请选择..." clearable style="width:100%;height:100%;border-color: gainsboro">
<el-option
v-for="item in roadDatas"
:key="item.VALUE"
:label="item.LABEL"
:value="item.VALUE">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="收费站:" class="s_el_row" style="width:10%">
<el-select v-model="stano" filterable placeholder="请选择..." style="width:100%;height:100%;border-color: gainsboro" clearable>
<el-option
v-for="item in staDatas"
:key="item.VALUE"
:label="item.LABEL"
:value="item.VALUE">
</el-option>
</el-select>
</el-form-item>-->
<el-form-item label="" style="width:8%;margin-right:5px" class="s_el_row"> <el-form-item label="" style="width:8%;margin-right:5px" class="s_el_row">
<div style="display:flex;text-align: left; height:100%; position: relative;margin:0;padding:0"> <div style="display:flex;text-align: left; height:100%; position: relative;margin:0;padding:0">
<el-button type="primary" style="margin-top: 0px;" @click="search" class="query_button" size="default" :icon="searchButton">查询</el-button> <el-button type="primary" style="margin-top: 0px;" @click="search" class="query_button" size="default" :icon="searchButton">查询</el-button>
@ -51,10 +31,11 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
<el-divider id="divider_00"></el-divider>
<div class="contain-div_rank"> <div class="contain-div_rank">
<div class="middle-div_rank"> <div class="middle-div_rank">
<div class="middle-div-left_rank"> <div class="middle-div-left_rank">
<el-row style="padding-bottom: 10px;" type="flex" justify="center" align="middle"> <el-row style="padding-bottom: 2%;" type="flex" justify="center" align="middle">
<el-col :span="12"> <el-col :span="12">
<el-select v-model="divStatus" <el-select v-model="divStatus"
placeholder="请选择拆分状态" placeholder="请选择拆分状态"
@ -76,15 +57,16 @@
<el-input-number v-model="rankNum" @change="changeRankData" :min="1" label=""></el-input-number> <el-input-number v-model="rankNum" @change="changeRankData" :min="1" label=""></el-input-number>
</el-col> </el-col>
</el-row> </el-row>
<el-table :data="rankdata" :header-cell-style="{background:'rgb(201,198,198)',align:'center'}" height="95%" border v-loading="tableloading" <el-table :data="rankdata" :header-cell-style="{background:'rgb(201,198,198)',align:'center'}" height="97%" border v-loading="tableloading"
@row-dblclick="showDivDetial"> @row-dblclick="showDivDetial">
<el-table-column type="index" label="排名" align="center" width="80px"/> <el-table-column type="index" label="排名" align="center" width="60px"/>
<el-table-column prop="tollintervalidname" label="计费单元" :show-overflow-tooltip="true" width="230px" resizable align="center" /> <el-table-column prop="tollintervalidname" label="计费单元" :show-overflow-tooltip="true" width="220px" resizable align="center" />
<el-table-column prop="tollintervalid" label="计费单元id" v-if="false" /> <el-table-column prop="tollintervalid" label="计费单元id" v-if="false" />
<el-table-column prop="fee" label="计费金额(万元)" :show-overflow-tooltip="true" width="100px" resizable align="center" /> <el-table-column prop="fee" label="计费金额(万元)" :show-overflow-tooltip="true" width="100px" resizable align="center" />
<el-table-column prop="divfee" label="拆分金额(万元)" :show-overflow-tooltip="true" width="100px" resizable align="center" /> <el-table-column prop="divfee" label="拆分金额(万元)" :show-overflow-tooltip="true" width="100px" resizable align="center" />
</el-table> </el-table>
</div> </div>
<el-divider direction="vertical" id="divider_01"></el-divider>
<div class="middle-div-right_rank"> <div class="middle-div-right_rank">
<div class="hz-div_rank"> <div class="hz-div_rank">
<el-row style="padding-bottom: 20px;position: relative;border-bottom: 0.5px #c9c6c6 solid"> <el-row style="padding-bottom: 20px;position: relative;border-bottom: 0.5px #c9c6c6 solid">
@ -126,43 +108,6 @@
</el-row> </el-row>
</div> </div>
<div class="dt-div_rank"> <div class="dt-div_rank">
<!-- <mapvue ref="map" :begindate="begindate" :enddate="enddate"></mapvue>-->
<!-- <div style="height: 8%;width: 100%;position:relative">
<el-form :inline="true" :label-position="right" style="width:100%;height: 100%;margin-top: 20px">
<el-form-item label="名称:">
<el-input v-model="queryfeename"/>
</el-form-item>
<el-form-item label="" style="width:8%;margin-right:5px" class="s_el_row">
<div style="display:flex;text-align: left; height:100%; position: relative;margin:0;padding:0">
<el-button type="primary" style="margin-top: 0px;" @click="searchFee" class="query_button" size="default" :icon="searchButton">查询</el-button>
</div>
</el-form-item>
</el-form>
</div>
<div style="height: 85%;width: 100%;position:relative">
<el-table :data="tableDataDetail" height="100%" :header-cell-style="{background:'rgb(213,216,217)',align:'center'}" border v-loading="feeloading"
@row-dblclick="showDivDetial">
<el-table-column type="index" label="序号" align="center" width="100px"/>
<el-table-column prop="tollintervalid" label="计费单元id" v-if="tableDisable" align="center" />
<el-table-column prop="tollintervalidname" label="计费单元" align="center" width="260px"/>
<el-table-column prop="subcomname" label="分公司" align="center" width="220px"/>
<el-table-column prop="roadname" label="路段" align="center" width="200px"/>
<el-table-column prop="staname" label="收费站" align="center" width="200px"/>
<el-table-column prop="lengthT" label="计费单元长度(米)" align="center" width="200px"/>
</el-table>
</div>
<div style="height: 5%;width: 100%;position:relative">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageNum"
:page-sizes="[15, 30,50,100]"
:page-size="pageSize"
:total="totalCount"
layout="total, sizes, prev, pager, next, jumper"
style="width: 90%;height:100%;position:inherit;margin-top:5px;font-size: x-small">
</el-pagination>
</div>-->
<div style="height: 8%;width: 100%;position:relative"> <div style="height: 8%;width: 100%;position:relative">
<el-form :inline="true" :label-position="right" style="width:100%;height: 100%;margin-top: 20px"> <el-form :inline="true" :label-position="right" style="width:100%;height: 100%;margin-top: 20px">
<el-form-item label="路线名称:"> <el-form-item label="路线名称:">
@ -239,26 +184,37 @@ body{
width: 100% !important; width: 100% !important;
} }
.contain-div_rank{ .contain-div_rank{
height: 95%; height: 91%;
width: 100%; width: 100%;
} }
.top_div_rank{ .top_div_rank{
height: 5%; height: 5%;
width: 100%; width: 100%;
border-bottom: 0.5px #c9c6c6 solid; //border-bottom: 0.1px #c9c6c6 ;
top: 0; top: 0;
/*z-index: 1000; /* 确保它在其他内容之上 */ /*z-index: 1000; /* 确保它在其他内容之上 */
} }
#divider_00{
margin: 0px !important;
margin-top: 2px !important;
margin-bottom: 15px !important;
}
#divider_01{
height: 100%;
margin: 0px !important;
margin-left: 1% !important;
margin-right: 1% !important;
}
.middle-div_rank{ .middle-div_rank{
height: 95%; height: 100%;
width: 100%; width: 100%;
display: flex; display: flex;
border-top: #c9c6c6 solid; //border-top: #c9c6c6 solid;
} }
.middle-div-left_rank{ .middle-div-left_rank{
height: 90%; height: 100%;
width: 30%; width: 30%;
border-right: #c9c6c6 solid; //border-right: #c9c6c6 solid;
} }
.middle-div-right_rank{ .middle-div-right_rank{
height: 100%; height: 100%;
@ -608,7 +564,6 @@ function getGantryList() {
getGantryListByLineNo(staParams).then( getGantryListByLineNo(staParams).then(
res => { res => {
_this.roadLineloading=false; _this.roadLineloading=false;
console.log(res.data);
_this.roadLineTableData=res.data; _this.roadLineTableData=res.data;
} }
) )

Loading…
Cancel
Save