这段代码是一个基于 jQuery 的订单管理页面前端逻辑;该代码通过 AJAX 与后端交互,实现了订单的加载、分页、状态展示、删除及关联房间查看等功能,同时提供了系统统计信息展示。

pull/1/head
gaoyating 4 months ago
parent 064dc2964a
commit c17bba3f21

@ -1,13 +1,17 @@
var pageNum=1;
var pageSize=8;
var l;
// 定义分页相关变量:当前页码、每页显示数量、当前页数据条数
var pageNum=1;// 当前页码初始为第1页
var pageSize=8;// 每页显示8条数据
var l;// 记录当前页实际加载的数据条数
// 页面DOM加载完成后执行初始化操作
$(document).ready(function(){
getorderList();
getConfig();
getorderList(); // 加载订单列表
getConfig();// 加载系统配置信息
// 绑定"上一页"按钮点击事件
$("#pre").on('click',function(){
getPre();
});
});
// 绑定"下一页"按钮点击事件
$("#next").on('click',function(){
getNext();
});
@ -17,123 +21,150 @@ $(document).ready(function(){
//判断对象/JSON是否为空 空返回1 非空返回0
function isEmptyObject(e) {
var t;
for (t in e)
for (t in e)// 遍历对象属性,存在属性则非空
return 0;
return 1;
}
// 存储当前页的订单列表数据
var list;
// 获取订单列表数据
function getorderList(){
$.ajax({
type:"post",
url:"../order/getAllOrder.do",
dataType:"JSON",
data:{
type:"post",// 请求类型为POST
url:"../order/getAllOrder.do", // 后端获取订单列表的接口
dataType:"JSON",// 预期返回JSON格式数据
data:{// 传递分页参数
"pageNum":pageNum,
"pageSize":pageSize
},
// 请求成功的回调函数
success:function(data){
// 若当前页数据为空且页码>0回退到上一页重新加载
if(isEmptyObject(data.List)&&pageNum>0){
pageNum=pageNum-1;
getorderList();
}
else{
list=data.List;
var htmlStr=" ";
var btnStr=" ";
var state=" ";
var sdate;
var edate;
l=0;
list=data.List;// 存储订单列表数据
var htmlStr=" ";// 表格行HTML字符串
var btnStr=" ";// 操作按钮HTML字符串
var state=" ";// 订单状态文本
var sdate;// 入住日期(格式化后)
var edate;// 退房日期(格式化后)
l=0;// 重置当前页数据计数
// 显示分页按钮(默认先显示,后续根据情况隐藏)
$("#pre").css("display","block");
$("#next").css("display","block");
// 清空表格并添加表头
$("#orderList").empty();
$("#orderList").append("<tr><th>入住人</th><th>身份证号</th><th>开始时间</th><th>结束时间</th><th>总金额</th><th>状态</th><th>操作</th></tr>")
for(i in list){
// 从时间字符串中提取日期部分(格式:年-月-日)
sdate=/\d{4}-\d{1,2}-\d{1,2}/g.exec(list[i].starttime);
edate=/\d{4}-\d{1,2}-\d{1,2}/g.exec(list[i].endtime);
// 根据订单状态state设置状态文本和操作按钮
if(list[i].state=="0"){
state="未付款";
// 未付款订单:仅显示"查看房间"按钮(关联模态框)
btnStr="<input type=\"button\" class=\"btn btn-info\" data-roomid=\""+list[i].roomid+"\" id=\"showRoom\" data-toggle=\"modal\" data-target=\"#showRoomT\" value=\"查看房间\">";
}
else if(list[i].state=="1"){
state="已付款";
// 已付款订单:仅显示"查看房间"按钮
btnStr="<input type=\"button\" class=\"btn btn-info\" data-roomid=\""+list[i].roomid+"\" id=\"showRoom\" data-toggle=\"modal\" data-target=\"#showRoomT\" value=\"查看房间\"> ";
}
else if(list[i].state=="2"){
state="已完成";
// 已完成订单:显示"查看房间"和"删除"按钮
btnStr="<input type=\"button\" class=\"btn btn-info\" data-roomid=\""+list[i].roomid+"\" id=\"showRoom\" data-toggle=\"modal\" data-target=\"#showRoomT\" value=\"查看房间\"> <input type=\"button\" class=\"btn btn-success\" data-orderid=\""+list[i].orderid+"\" id=\"delOrder\" value=\"删除\">";
}
else{
state="已取消";
// 已取消订单:显示"查看房间"和"删除"按钮
btnStr="<input type=\"button\" class=\"btn btn-info\" data-roomid=\""+list[i].roomid+"\" id=\"showRoom\" data-toggle=\"modal\" data-target=\"#showRoomT\" value=\"查看房间\"> <input type=\"button\" class=\"btn btn-success\" data-orderid=\""+list[i].orderid+"\" id=\"delOrder\" value=\"删除\">";
}
// 拼接订单表格行HTML
htmlStr="<tr data-orderid=\""+list[i].orderid+"\"><td>"+list[i].householdname+"</td><td>"+list[i].id+"</td><td>"+sdate+"</td><td>"+edate+"</td><td>"+list[i].money+"</td><td>"+state+"</td><td>"+btnStr+"</td></tr>";
// 添加到表格中
$("#orderList").append(htmlStr);
l++;
l++;// 累加当前页数据条数
}
// 若为第1页隐藏"上一页"按钮
if(pageNum=="1") $("#pre").css("display","none");
// 若当前页数据少于每页数量,说明是最后一页,隐藏"下一页"按钮
if(pageSize>l) $("#next").css("display","none");
// 绑定操作按钮事件
btnOn();
}
},
// 请求失败的回调
error:function(){
alert("获取订单列表发生错误")
}
})
}
// 绑定操作按钮的点击事件
function btnOn(){
// 绑定"跳转页码"按钮事件
$("input").filter("#setPageBtn").on('click',function( ){
setPage( );
});
// 绑定"查看房间"按钮事件
$("input").filter("#showRoom").on('click',function(event){
showRoom(event);
})
// 绑定"删除订单"按钮事件
$("input").filter("#delOrder").on('click',function(event){
delOrder(event);
});
}
// 上一页功能页码减1并重新加载列表
function getPre(){
pageNum=pageNum-1;
getorderList();
}
// 下一页功能页码加1并重新加载列表
function getNext(){
pageNum=pageNum+1;
getorderList();
}
// 跳转指定页码功能
function setPage(){
// 验证页码合法性必须大于0
if($("#inputPage").val()<0 || $("#inputPage").val()==0)
alert("请输入正确页码");
else{
pageNum=$("#inputPage").val();
getorderList();
pageNum=$("#inputPage").val();// 更新页码
getorderList();// 重新加载列表
}
}
// 删除订单功能
function delOrder(event){
var orderid=$(event.target).data("orderid");
var orderid=$(event.target).data("orderid");// 获取订单ID
$.ajax({
type:"POST",
url:"../order/delOrder.do",
url:"../order/delOrder.do",// 后端删除订单接口
dataType:"JSON",
data:{
data:{// 传递订单ID
"orderid":orderid
},
success:function(data){
if(data.code==0){
if(data.code==0){// 删除成功
alert("删除成功");
// 若当前页只剩1条数据删除后页码回退1页
if(l==1)
pageNum=pageNum-1;
getorderList();
getorderList();// 重新加载列表刷新数据
}
else
alert("删除失败")
@ -145,23 +176,25 @@ function delOrder(event){
}
// 查看房间详情功能(点击后显示模态框)
function showRoom(event){
var roomid=$(event.target).data("roomid");
var roomid=$(event.target).data("roomid");// 获取房间ID
$.ajax({
type:"POST",
url:"../room/getRoomById.do",
url:"../room/getRoomById.do",// 后端获取房间详情接口
dataType:"JSON",
data:{
data:{// 传递房间ID
"roomid":roomid
},
success:function(data){
var room=data.room;
if(data.code==0){
var htmlStr=" ";
var state=" ";
var type=" ";
var room=data.room;// 房间详情数据
if(data.code==0){// 获取成功
var htmlStr=" ";// 房间信息表格HTML
var state=" ";// 房间状态文本
var type=" ";// 房间类型文本
// 清空模态框中的表格
$("#roomTable").empty();
// 转换房间状态编码为文本
if(room.state=="0")
state="停用";
else if(room.state=="1")
@ -170,6 +203,7 @@ function showRoom(event){
state="已预定(入住)";
else
state="待清扫";
// 转换房间类型编码为文本
if(room.type=="1")
type="单人间";
else if(room.type=="2")
@ -178,7 +212,9 @@ function showRoom(event){
type="大床房";
else
type="套房";
// 拼接房间信息表格HTML
htmlStr="<tr><th>位置</th><td>"+room.local+"</td></tr><tr><th>价格</th><td>"+room.money+"</td></tr><tr><th>类型</th><td>"+type+"</td></tr><tr><th>状态</th><td>"+state+"</td></tr>"
// 添加到模态框表格中
$("#roomTable").append(htmlStr);
}
else
@ -190,15 +226,17 @@ function showRoom(event){
})
}
// 获取系统配置信息(如总营业额、总房间数)
function getConfig(){
$.ajax({
type:"POST",
url:"../config/getConfig.do",
url:"../config/getConfig.do",// 后端获取配置接口
dataType:"JSON",
data:{},
data:{},// 无参数
success:function(data){
if(data.code=="0"){
var config=data.config;
if(data.code=="0"){// 获取成功
var config=data.config;// 配置数据
// 更新页面上的总金额和总房间数显示
$("#totalMoney").text(config.totalmoney);
$("#totalRoom").text(config.totalroom);
}

Loading…
Cancel
Save