车辆派遣管理系统-13-结算明细

今日完成任务:结算明细查询功能及页面设计

核心代码:见下列插入的代码

遇到的问题:无

解决的方法:无

 

功能模块:结算明细查询

需要角色:任意

数据加载:已结算的结算信息列表、结算的年月

数据验证:非空验证

导出报表:excel文件

列表分页:AJAX分页查询

业务描述:

统计某年内单月所有车辆费用明细信息,可以生成报表

点击左侧“查询统计”下的“结算明细”菜单,在右侧主题区域加载已结算的明细子页面,并加载所有已结算的结算明细信息进行分页显示,选择不同的年月查询不同的结算明细,查询后可以点击“生成报表”生成查询统计的指定年月的已结算明细excel信息。

视频演示地址:https://www.bilibili.com/video/BV15K411n7oD/

图文演示:

已结算明细信息列表

 

指定年月的结算明细生成报表

结算明细子页面html代码:

<table id="table0" width='100%' cellspacing="0" border='0'>
	<tr align="left">
		<td style="height:32px;">
			<div class="cxtjDiv">
				<input type="text" name="cxtj" value="" readonly="readonly"/>
				<ul>
				</ul>
			</div>
			<b id="tjtb"><img src="img/down.png" width="10px"/></b>
			<div class="cxtjDiv2">
				<input type="text" name="yue" value="" readonly="readonly"/>
				<ul>
					<li>1</li>
					<li>2</li>
					<li>3</li>
					<li>4</li>
					<li>5</li>
					<li>6</li>
					<li>7</li>
					<li>8</li>
					<li>9</li>
					<li>10</li>
					<li>11</li>
					<li>12</li>
				</ul>
			</div>
			<b id="tjtb2"><img src="img/down.png" width="10px"/></b>
			<span style="margin-top:4px;margin-bottom:4px;margin-left:10px;">
				<button onclick="mxcx()">明 细 查 询</button>
		</span>
		<span style="margin-top:4px;margin-bottom:4px;margin-left:10px;">
			<button onclick="scbb()">生 成 报 表</button>
			</span>
		</td>
	</tr>
</table>
<table class="table1" width='100%' cellspacing="0" border='0'>
	<tr align="left">
		<td width="5%">编号</td>
		<td width="8%">结算日期</td>
		<td width="8%">车牌号码</td>
		<td width="8%">结算年份</td>
		<td width="8%">结算月份</td>
		<td width="8%">月公里数</td>
		<td width="8%">月油费</td>
		<td width="8%">修理费</td>
		<td width="8%">轮胎费</td>
		<td width="8%">过桥费</td>
		<td width="8%">停车费</td>
		<td width="8%">总营业额</td>
		<td width="">毛利润</td>
	</tr>
</table>
<table class="list" width='100%' cellspacing="0">
</table>
<p class="pageManager">
	<span><input type="hidden" name="rows" value="10"/></span>
	<b >
	<button onclick="first()">首页</button>
<button onclick="prev()">上一页</button>
<button onclick="next()">下一页</button>
<button onclick="last()">尾页</button>
	&nbsp;
	第
	<select name="toNumPage" onchange="changeNumPage()">
		<option value="1">1</option>
	</select>
	页
	&nbsp;
	共
	<span></span>
	页
	</b>
</p>

结算明细子页面js代码:

function loadPage(rows,page,nian,yue){
	var cphm='';
	$.ajax({
		url:'yjsList',
		type:'post',
		data:'rows='+rows+'&row='+((page-1)*rows)+'&nian='+nian+'&yue='+yue+'&cphm='+cphm,
		async:false,
		success:function(data){
			var arr = eval(data);
			if(arr.length==0){
				$("#message").html("暂无结算信息!");
    			var left = $("#message").width()/2;
				$("#message").css("left",$(window).width()/2-left);
				$("#message").css("top",270);
    			$("#message").fadeIn(1000);
    			messageOut();
				return;
			}
			var row="";
			$.each(arr,function(i,o){
				row +="<tr>";
				row +="<td width='5%'>"+o.jsbh+"</td>";
				row +="<td width='8%'>"+o.jsrq+"</td>";
				row +="<td width='8%'>"+o.cphm+"</td>";
				row +="<td width='8%'>"+o.jsnf+"年</td>";
				row +="<td width='8%'>"+o.jsyf+"月</td>";
				row +="<td width='8%'>"+o.zgls+"(km)</td>";
				row +="<td width='8%'>"+o.yf+".00</td>";
				row +="<td width='8%'>"+o.xlf+".00</td>";
				row +="<td width='8%'>"+o.ltf+".00</td>";
				row +="<td width='8%'>"+o.gqf+".00</td>";
				row +="<td width='8%'>"+o.tcf+".00</td>";
				row +="<td width='8%'>"+o.zyye+".00</td>";
				row +="<td width=''>"+o.mlr+".00</td>";
				row +="</tr>";
			});
			$(".list").html(row);
			$.ajax({
				url:'yjsPages',
				type:'post',
				data:'rows='+$('.pageManager>span>input').val(),
				aysnc:false,
				success:function(data){
					$(".pageManager>b>span").html(data);
					var options = "";
					var n = parseInt(data);
					for(var i=1;i<=n;i++){
						if(page==i){
							options+="<option value='"+i+"' selected>"+i+"</option>";
						}else{
							options+="<option value='"+i+"'>"+i+"</option>";
						}
					}
					$(".pageManager select[name='toNumPage']").html(options);
				}
			});
		}
	});
}

var bj=0;
var bj2=0;
$(function(){
	var rows = $('.pageManager>span>input').val();
	var page = $('.pageManager>b>select').val();
	var lis="";
	var year = new Date().getYear()+1900;
	for(var i=year;i>year-3;i--){
		lis+="<li>"+i+"</li>";
	}
	$(".cxtjDiv input[name='cxtj']").val(year);
	$(".cxtjDiv ul").html(lis);
	$(".cxtjDiv input[name='cxtj'] , #tjtb").click(function(){
		$(".cxtjDiv>ul").slideDown();
		$("#tjtb>img").prop("src","img/up.png");
		bj=1;
	});
	$(document).mousedown(function(){
		if(bj==1){
			var ulLeft = $(".cxtjDiv ul").offset().left;
			var ulTop = $(".cxtjDiv ul").offset().top;
			if(event.x>=ulLeft && event.x<=ulLeft+180 &&event.y>=ulTop&&event.y<=ulTop+116){
			}else{
				$(".cxtjDiv ul").slideUp();
				bj=0;
			}
		}
	});
	$(".cxtjDiv ul li").click(function(){
		var cxtj = $(this).html();
		$(".cxtjDiv input[name='cxtj']").val(cxtj);
		$("#tjtb img").attr("src","img/down.png"); 
		$(".cxtjDiv input[name='cxtj']").css("padding-left","15px").css("color","#069");
		bj=0;
		$(".cxtjDiv ul").slideUp();
	});
	$(".cxtjDiv2 input[name='yue']").val(1);
	$(".cxtjDiv2 input[name='yue'] , #tjtb2").click(function(){
		$(".cxtjDiv2>ul").slideDown();
		$("#tjtb2>img").prop("src","img/up.png");
		bj2=1;
	});
	$(document).mousedown(function(){
		if(bj2==1){
			var ulLeft = $(".cxtjDiv2 ul").offset().left;
			var ulTop = $(".cxtjDiv2 ul").offset().top;
			if(event.x>=ulLeft && event.x<=ulLeft+180 &&event.y>=ulTop&&event.y<=ulTop+116){
			}else{
				$(".cxtjDiv2 ul").slideUp();
				bj2=0;
			}
		}
	});
	$(".cxtjDiv2 ul li").click(function(){
		var cxtj = $(this).html();
		$(".cxtjDiv2 input[name='yue']").val(cxtj);
		$("#tjtb2 img").attr("src","img/down.png"); 
		$(".cxtjDiv2 input[name='yue']").css("padding-left","15px").css("color","#069");
		bj2=0;
		$(".cxtjDiv2 ul").slideUp();
	});
	loadPage(rows,page,'','');
});

function changeNumPage(){
	var rows = $(".pageManager input[name='rows']").val();
	var page = $(".pageManager select[name='toNumPage']").val();
	var cxtj = $("input[name='cxtj']").val();
	var yue = $("input[name='yue']").val();
	loadPage(rows,page,cxtj,yue);
}
function first(){
	var rows = $(".pageManager input[name='rows']").val();
	var page = 1;
	var cxtj = $("input[name='cxtj']").val();
	var yue = $("input[name='yue']").val();
	loadPage(rows,page,cxtj,yue);
}
function last(){
	var rows = $(".pageManager input[name='rows']").val();
	var pages = $(".pageManager>b>span").html();
	var cxtj = $("input[name='cxtj']").val();
	var yue = $("input[name='yue']").val();
	loadPage(rows,pages,cxtj,yue);
}
function prev(){
	var rows = $(".pageManager input[name='rows']").val();
	var page = parseInt($(".pageManager select[name='toNumPage']").val());
	if(page-1<1){
		$(".pageManager select[name='toNumPage']").children(":last").prop("selected","true");
		last();
	}else{
		$(".pageManager select[name='toNumPage']").children(":eq("+(page-1)+")").prop("selected","true");
		var cxtj = $("input[name='cxtj']").val();
		var yue = $("input[name='yue']").val();
		loadPage(rows,page-1,cxtj,yue);
	}
}
function next(){
	var rows = $(".pageManager input[name='rows']").val();
	var page = parseInt($(".pageManager select[name='toNumPage']").val());
	var pages = parseInt($(".pageManager>b>span").html());
	if(page+1>pages){
		$(".pageManager select[name='toNumPage']").children(":eq(0)").prop("selected","true");
		first();
	}else{
		$(".pageManager select[name='toNumPage']").children(":eq("+(page+1)+")").prop("selected","true");
		var cxtj = $("input[name='cxtj']").val();
		var yue = $("input[name='yue']").val();
		loadPage(rows,page+1,cxtj,yue);
	}
}
function mxcx(){
	var rows = $('.pageManager>span>input').val();
	var page = $('.pageManager>b>select').val();
	var cxtj = $("input[name='cxtj']").val();
	var yue = $("input[name='yue']").val();
	loadPage(rows,page,cxtj,yue);
	sc=1;
}
var sc=0;
function scbb(){
	if(sc==0){
		$("#message").html("请查询后再进行报表导出!");
  			var left = $("#message").width()/2;
		$("#message").css("left",$(window).width()/2-left);
		$("#message").css("top",270);
  			$("#message").fadeIn(1000);
  			messageOut();
  			return;
	}
	var page = $('.pageManager>b>select').val();
	var rows = $('.pageManager>span>input').val();
	var cxtj = $("input[name='cxtj']").val();
	var yue = $("input[name='yue']").val();
	var cphm='';
	$.ajax({
		url:'yjsList2',
		type:'post',
		data:'rows='+rows+'&row='+((page-1)*rows)+'&nian='+cxtj+'&yue='+yue+'&cphm='+cphm,
		async:false,
		success:function(data){
			var arrData = eval(data);
			if(arrData.length==0){
				$("#message").html("暂无结算信息!");
    			var left = $("#message").width()/2;
				$("#message").css("left",$(window).width()/2-left);
				$("#message").css("top",270);
    			$("#message").fadeIn(1000);
    			messageOut();
				return;
			}
			var ShowLabel = [{ "value": "结算编号" },
				{ "value": "结算日期" }, 
				{ "value": "车牌号码" }, 
				{ "value": "结算年份" }, 
				{ "value": "结算月份" }, 
				{ "value": "月公里数" }, 
				{ "value": "月油费" },
				{ "value": "修理费" },
				{ "value": "轮胎费" },
				{ "value": "过桥费" },
				{ "value": "停车费" },
				{ "value": "总营业额" },
				{ "value": "毛利润" }
				];
	        var excel = '<table>';
	        var row = "<tr>";
	        for (var i = 0, l = ShowLabel.length; i < l; i++) {
	            row += "<td style=\"color:blue\">" + ShowLabel[i].value + '</td>';
	        }
	        excel += row + "</tr>";
	        for (var i = 0; i < arrData.length; i++) {
	            var row = "<tr>";
                row += '<td>' + arrData[i].jsbh + '</td>';
                row += '<td>' + arrData[i].jsrq + '</td>';
                row += '<td>' + arrData[i].cphm + '</td>';
                row += '<td>' + arrData[i].jsnf + '</td>';
                row += '<td>' + arrData[i].jsyf + '</td>';
                row += '<td>' + arrData[i].zgls + '</td>';
                row += '<td>' + arrData[i].yf + '</td>';
                row += '<td>' + arrData[i].xlf + '</td>';
                row += '<td>' + arrData[i].ltf + '</td>';
                row += '<td>' + arrData[i].gqf + '</td>';
                row += '<td>' + arrData[i].tcf + '</td>';
                row += '<td>' + arrData[i].zyye + '</td>';
                row += '<td>' + arrData[i].mlr + '</td>';
	            excel += row + "</tr>";
	        }
	        excel += "</table>";
	        var excelFile = "<html xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'>";
	        excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel; charset=UTF-8">';
	        excelFile += '<meta http-equiv="content-type" content="application/vnd.ms-excel';
	        excelFile += '; charset=UTF-8">';
	        excelFile += "<head>";
	        excelFile += "<!--[if gte mso 9]>";
	        excelFile += "<xml>";
	        excelFile += "<x:ExcelWorkbook>";
	        excelFile += "<x:ExcelWorksheets>";
	        excelFile += "<x:ExcelWorksheet>";
	        excelFile += "<x:Name>";
	        excelFile += "{worksheet}";
	        excelFile += "</x:Name>";
	        excelFile += "<x:WorksheetOptions>";
	        excelFile += "<x:DisplayGridlines/>";
	        excelFile += "</x:WorksheetOptions>";
	        excelFile += "</x:ExcelWorksheet>";
	        excelFile += "</x:ExcelWorksheets>";
	        excelFile += "</x:ExcelWorkbook>";
	        excelFile += "</xml>";
	        excelFile += "<![endif]-->";
	        excelFile += "</head>";
	        excelFile += "<body>";
	        excelFile += excel;
	        excelFile += "</body>";
	        excelFile += "</html>";
	        var uri = 'data:application/vnd.ms-excel;charset=utf-8,' + encodeURIComponent(excelFile);
	        var link = document.createElement("a");
	        link.href = uri;
	        link.style = "visibility:hidden";
	        link.download = "结算明细报表.xls";
	        document.body.appendChild(link);
	        link.click();
	        document.body.removeChild(link);
		}
	});
}

结算明细子页面css代码:

.xg{
	color:#fff;
	border-radius:5px;
	border:none;
	line-height:25px;
	width:70px;
	background-color:#01AAED;
	outline:none;
	cursor:pointer;
}
#table0{
	background-color:#01AAED;
	color:#fff;
	font-size:12px;
	padding-left:30px;
	font-weight:bolder;
	
}
#table0 span{
	float:left;
	margin-top:5px;
	margin-bottom:5px;
	margin-left:5px;
	line-height:20px;
}
#table0 button{
	outline:none;
	border:none;
	padding:3px 15px;
	background-color:#fff;
	color:#069;
	cursor:pointer;
	margin-left:15px;
	box-shadow:2px 2px 2px #666;
}
#table0 button:hover{
	color:#01AAED;
}
.table1{
	background-color:#eef;
	line-height:41px;
	font-size:12px;
	padding-left:25px;
	font-weight:bolder;
	color:#666;
}
.table1 tr td{
	padding-left:10px;
}
.list{
	font-size:12px;
	padding-left:25px;
	margin-top:15px;
	color:#666;
}
.list tr{
	background-color:#fff;
	height:50px;
	outline:3px solid #def;
}
.list tr:hover{
	background-color:#aef;
}
.list tr td{
	padding-left:10px;
}

.pageManager{
	margin-top:10px;
	margin-left:25px;
	background-color:#fff;
	padding:5px 10px;
	color:#999;
	box-shadow:2px 2px 3px #999;
}
.pageManager>span{
	font-size:9px;
}
.pageManager>span>input{
	width:40px;
	border:1px solid #ccc;
	outline:none;
	padding-left:5px;
	border-radius:5px;
	margin-left:5px;
}
.pageManager>b{
	font-weight:100;
	font-size:9px;
	margin-left:15px;
}
.pageManager>b>select{
	border:1px solid #ccc;
	outline:none;
	border-radius:5px;
}
.pageManager>b>button{
	border:1px solid #ccc;
	outline:none;
	background-color:#fff;
	color:#666;
	font-size:9px;
	padding:1px 2px;
	cursor:pointer;
}
.pageManager>b>button:hover{
	color:white;
	font-weight:bolder;
	background-color:#0DE;
}
#xz{
	box-shadow:2px 2px 2px #aaa;
	cursor:pointer;
}
.pcddjForm{
	border:1px dotted #ccc;
	margin-bottom:0px;
	background-color:#fff;
}
.list1{
	font-size:12px;
	margin-top:15px;
	color:#666;
}
.pcddjForm input[type='text']{
	height:30px;
	color:#666;
}
.pcddjForm input[type='number']{
	height:30px;
}
.cxtjDiv{
	float:left;
	overflow: auto;
	box-shadow:2px 2px 2px #666;
}
.cxtjDiv ul{
	display:none;
	list-style:none;
	outline:none;
	position:absolute;
	background-color:#fff;
	margin-top:5px;
	width:168px;
	border:1px solid #eee;
	padding-bottom:10px;
	box-shadow:2px 2px 2px #666;
	height:250px;
	overflow:scroll;
}
.cxtjDiv ul li{
	padding-left:18px;
	line-height:25px;
	border-bottom:1px dotted #eee;
	cursor:pointer;
	color:#777;
}
.cxtjDiv ul li:hover{
	background-color:#01AAED;
	color:#fff;
}
.cxtjDiv>input{
	padding-left:15px;
	line-height:22px;
	margin-top:4px;
	width:170px;
	border:none;
	outline:none;
	color:#777;
	font-size:8px;
	font-family:'宋体';
	cursor:pointer;
}
#tjtb{
	float:left;
	margin-left:-18px;
	display:block;
	width:16px;
	height:16px;
	color:red;
	margin-top:7px;
	padding-top:6px;
	cursor:pointer;
}
.cxtjDiv2{
	float:left;
	overflow: auto;
	box-shadow:2px 2px 2px #666;
	margin-left:10px;
}
.cxtjDiv2 ul{
	display:none;
	list-style:none;
	outline:none;
	position:absolute;
	background-color:#fff;
	margin-top:5px;
	width:168px;
	border:1px solid #eee;
	padding-bottom:10px;
	box-shadow:2px 2px 2px #666;
	height:250px;
	overflow:scroll;
}
.cxtjDiv2 ul li{
	padding-left:18px;
	line-height:25px;
	border-bottom:1px dotted #eee;
	cursor:pointer;
	color:#777;
}
.cxtjDiv2 ul li:hover{
	background-color:#01AAED;
	color:#fff;
}
.cxtjDiv2>input{
	padding-left:15px;
	line-height:22px;
	margin-top:4px;
	width:170px;
	border:none;
	outline:none;
	color:#777;
	font-size:8px;
	font-family:'宋体';
	cursor:pointer;
}
#tjtb2{
	float:left;
	margin-left:-18px;
	display:block;
	width:16px;
	height:16px;
	color:red;
	margin-top:7px;
	padding-top:6px;
	cursor:pointer;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值