Light12306/Web12306/js/platform/parser.js
2014-07-01 20:07:44 +08:00

89 lines
2.6 KiB
JavaScript

define(function (require, exports) {
exports.getError = function (data) {
/// <summary>获得指定返回数据中的错误信息</summary>
if (data.messages && data.messages instanceof Array) {
return { message: data.messages.join(";") };
}
if (data.data && data.data.isRelogin) {
return { message: "登录状态异常,请重新登录。", relogin: true };
}
return { message: "未知错误信息" };
};
exports.formatDate = function (date, format) {
/// <summary>格式化指定日期</summary>
/// <param name="format" type="String">格式化字符串</param>
format = format || "yyyy-MM-dd";
var o = {
"M+": date.getMonth() + 1, //month
"d+": date.getDate(), //day
"h+": date.getHours(), //hour
"m+": date.getMinutes(), //minute
"s+": date.getSeconds(), //second
"q+": Math.floor((date.getMonth() + 3) / 3), //quarter
"S": date.getMilliseconds() //millisecond
};
if (/(y+)/i.test(format)) {
format = format.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
};
exports.canPassageAddToOrder = function (p) {
if (p.passenger_id_type_code === "C" || p.passenger_id_type_code === "G" || p.passenger_id_type_code === "B")
return true;
if (p.passenger_id_type_code === "2")
return false;
return p.total_times === "93" || p.total_times === "95" || p.total_times === "97" || p.total_times === "99";
};
exports.getAvailableTicketType = function (p, stu) {
var a = [];
var pt = p.passenger_type;
if (pt === "3" && stu) {
a.push({ id: 3, name: "学生票" });
} else {
a.push({ id: 1, name: "成人票" });
a.push({ id: 2, name: "儿童票" });
}
if (pt === "4") {
a.push({ id: 4, name: "残军票" });
}
return a;
};
exports.processPassenger = function (list) {
list.forEach(function (e) {
e.key = e.passenger_type + "$" + e.passenger_name + "$" + e.passenger_id_type_code + "$" + e.passenger_id_no;
});
};
exports.getSeats = function (trainSeats) {
var seats = _.clone(trainSeats);
//排序
seats.sort(function (x, y) {
return x.price - y.price;
});
//如果有硬座/二等座和无座,则隐藏无座
var removeNonSeat = _.findWhere(seats, { code: "1" }) || _.findWhere(seats, { code: "O" }) || false;
if (removeNonSeat) {
for (var i = 0; i < seats.length; i++) {
if (seats[i].code === "0") {
seats.splice(i, 1);
break;
}
}
}
return seats;
};
});