define(function (require, exports) {
exports.getError = function (data) {
/// 获得指定返回数据中的错误信息
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) {
/// 格式化指定日期
/// 格式化字符串
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 === "3")
a.push({ id: 3, 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;
};
exports.toDate = function (date) {
return date instanceof Date ? date : new Date(Date.parse(date));
};
exports.addDays = function (date, offset) {
return new Date(date.getFullYear(), date.getMonth(), date.getDate() + offset);
};
exports.formatSellDate = function (date) {
date = exports.toDate(date);
var today = exports.addDays(new Date(), 0);
var offset = Math.round((date - today) / 1000 / 60);
var hour = Math.round(offset / 60);
var minute = offset % 60;
if (hour < 24) return "今天" + hour + "点" + (minute ? minute + "分" : "");
else if (hour < 72) {
return ["明天", '后天'] + (hour % 24) + "点" + (minute ? minute + "分" : "");
} else {
return exports.formatDate(date, "MM月dd日 hh:mm");
}
};
});