这次来说说我做的项目里的一个功能,就是乘车选座,下面简单介绍一下这个功能。为满足需求需要在售票界面添加选座功能,也就是说售票方式分为两种,一种是选座,另一种是直售(批量直接销售)现在先讲第一种,因为选座是要车票的信息一块绑定到这个班次的这车座位上。所以代码有点多。这个比较依赖于layui的表格单击时间。言语不详还是看代码吧。
layuiTable.on('row(tbPilotManagements)', function (obj) {//单击事件
$.ajaxSettings.async = false;
$("#showhide").empty();
sea = obj.data;
//console.log(obj.data);
obj.tr.addClass("layui-table-click").siblings()
.removeClass("layui-table-click");
var sum;
var arr = new Array();
$.post("Checkseat", obj.data, function (fun) {
if (fun == "") {
sum = "0";
arr = "0";
} else {
sum = fun;
for (var i = 0; i < fun.length; i++) {
arr[i] = fun[i].Seat.toString();
}
}
})
for (var i = 0; i < obj.data.SeatNumber; i++) {
for (var j = 0; j < sum.length; j++) {//检索两个字符窜,
if (arr.indexOf((i * 1 + 1).toString()) > -1) {
var content = ('<div class="di border" onclick="fick(' + (i + 1) + ',' + sum[0].BillDetailsID + ',' + sum[0].BillID + ')" ><img src="/Content/wei.png" />' + (i + 1) + '</div>');
if (sum.length>1) {
sum = sum.slice(1);
}
break;
}
else {
var content = ('<div class="di border" onclick="fick(' + (i + 1) + ',false,false)" ><img src="/Content/空.png" />' + (i + 1) + '</div>');
break;
}
}
$("#showhide").append(content);
}
})
下面是再打开页面时判断是否有人的控制器的代码,此处一定要按升序排列,不然检索票号时座位号会不对应
public ActionResult Checkseat(int ShiftScheduleID)
{
var billdelt = (from tb in myModuls.R_BillDetails
where tb.ShiftScheduleID == ShiftScheduleID
orderby tb.Seat
select tb).ToList();
return Json(billdelt, JsonRequestBehavior.AllowGet);
}
下面是效果图,应收、找补自动计算,输入收取后点击回车这次的交易就完成了,还有一个换座位的功能。这次的说的功能就到这里结束了。