同步提交

This commit is contained in:
iFish 2014-06-27 22:25:42 +08:00
parent c94dfc701c
commit c5e22843d9
11 changed files with 115 additions and 30 deletions

View File

@ -176,6 +176,7 @@
<None Include="js\docs\chrome-api-vsdoc.js" />
<Content Include="js\data.js" />
<Content Include="js\modules\doT.js" />
<Content Include="js\otn\orderprocess.js" />
<Content Include="js\otn\queryticket.js" />
<Content Include="js\platform\EventObject.js" />
<Content Include="js\platform\extensionPort.js" />

View File

@ -88,7 +88,7 @@
</li>
<li>
<div class="identity fl">
<label><input type="radio" name="ticket_type" data-profile-key="studentTicket" value="0" checked="checked" id="ticket_type_common" />普通</label>
<label><input type="radio" name="ticket_type" data-profile-key="a" value="0" checked="checked" id="ticket_type_common" />普通</label>
<label><input type="radio" name="ticket_type" data-profile-key="studentTicket" value="1" checked="checked" id="ticket_type_stu" />学生</label>
</div>
</li>
@ -409,7 +409,7 @@
</div>
<div id="ticket-submit-info">
<header>提交订单</header>
<p class="ticket-submit-vc">
<p class="ticket-submit-vc verify-code" data-target="order">
<input type="text" value="" id="" placeholder="验证码" />
<span></span>
<a href="#" class="refresh-vc">换一张</a>

View File

@ -0,0 +1,38 @@
define(function (require, exports, module) {
var ajax = require("../platform/webRequest.js");
var parser = require("../platform/parser.js");
var submitToken;
exports.prepareOrder = function (train, profile) {
var purposeCode = profile.studentTicket ? "0X00" : "ADULT";
var data = "secretStr" + "=" + train.secureStr + "&train_date=" + train.date + "&back_train_date" + "=" + (profile.resign ? profile.resignDate : train.date) + "&tour_flag" + "=" + (profile.resign ? "gc" : "dc") + "&" +
"purpose_codes" + "=" + purposeCode + "&" +
"query_from_station_name" + "=" + train.from.code + "&" +
"query_to_station_name" + "=" + train.to.code + "&" + (ajax.userAtts ? "_json_att=" + ajax.userAtts : "undefined");
var def = new $.Deferred();
ajax.sendPost("leftTicket/submitOrderRequest", "leftTicket/init", data, "json", function (data) {
if (!data.status) {
def.reject({ msg: parser.getError(data).message });
} else {
ajax.sendPost(profile.resign ? "confirmPassenger/initGc" : "confirmPassenger/initDc", "leftTicket/init", null, "text", function (html) {
var token = /var\s*globalRepeatSubmitToken\s*=\s*['"]([^'"]+)["']/i.exec(html) && RegExp.$1;
if (token) {
submitToken = token;
def.resolve({ token: token });
} else {
submitToken = null;
def.reject({ msg: "12306返回的信息无法识别请重试..." });
}
}, function () {
def.reject({ msg: "12306不给力唷请尽快重试..." });
}, true);
}
}, function () {
def.reject({ msg: "12306不给力唷请尽快重试..." });
});
return def;
};
});

View File

@ -79,7 +79,8 @@
supportCard: t.queryLeftNewDTO.is_support_card,
saleTime: t.queryLeftNewDTO.sale_time,
secureStr: t.secretStr,
selltime: null
selltime: null,
date: t.queryLeftNewDTO.start_train_date.replace(/(\d{4})(\d{2})(\d{2})/, "$1-$2-$3")
};
var kp = getTicketInfo(t.queryLeftNewDTO.yp_info);
train.tickets = kp;

View File

@ -7,4 +7,4 @@
chrome.runtime.sendMessage(exports.targetId, m, response || function () { });
};
});
});

View File

@ -16,17 +16,17 @@ define(function (require, exports, module) {
if (url[4] === ":" || url[5] === ":") return url;
return config.baseUri + url;
};
this.send = function (method, url, refer, data, responseType, done, failed, ignoreGlobalAtt) {
if (!ignoreGlobalAtt && jsonAtt) {
this.send = function (method, url, refer, data, responseType, done, failed, appendatt) {
if (appendatt) {
data = $.extend({
_json_att: jsonAtt
_json_att: jsonAtt || ""
}, data);
}
var xhrData = {
url: that.getFullUri(url),
data: data,
timeout: 120000,
type: "GET",
type: method,
dataType: responseType,
refer: that.getFullUri(refer)
};
@ -54,7 +54,7 @@ define(function (require, exports, module) {
document.dispatchEvent(new CustomEvent("requestSupportError"));
}
};
this.sendGet = function (url, refer, data, responseType, done, failed) {
this.sendGet = function (url, refer, data, responseType, done, failed, appendatt) {
/// <summary>以GET模式发送AJAX请求</summary>
/// <param name="url">要请求的地址</param>
/// <param name="refer">请求的引用地址</param>
@ -62,10 +62,10 @@ define(function (require, exports, module) {
/// <param name="responseType">要请求的地址</param>
/// <param name="done">完成请求的回调</param>
/// <param name="failed">请求失败的回调</param>
that.send("GET", url, refer, data, responseType, done, failed);
that.send("GET", url, refer, data, responseType, done, failed, appendatt);
};
this.sendPost = function (url, refer, data, responseType, done, failed) {
that.send("POST", url, refer, data, responseType, done, failed);
this.sendPost = function (url, refer, data, responseType, done, failed, appendatt) {
that.send("POST", url, refer, data, responseType, done, failed, appendatt);
};
document.addEventListener("ajaxproxyfinished", function (e) {
@ -75,7 +75,7 @@ define(function (require, exports, module) {
var param = requestMap[data.index];
delete requestMap[data.index];
data.success ? param.done.call(data) : param.fail.call(data);
data.success ? param.done.call(data, data.model) : param.fail.call(data, data.model);
});
Object.defineProperties(this, {

View File

@ -50,7 +50,7 @@
//订票列表交互
(function () {
ui_result.on("requireSubmitOrder", function (e, d) {
uiOrderProcess.start(d.train, d.seat, sessMgr.currentProfile.studentTicket, null);
uiOrderProcess.start(d.train, d.seat, sessMgr.currentProfile, null);
});
})();
@ -152,7 +152,7 @@
sessMgr.save();
});
$("#btnQuery").click(function () {
ui_result.load($("#from_city").attr("data-code"), $("#to_city").attr("data-code"), $("#dep_date").val());
ui_result.load($("#from_city").attr("data-code"), $("#to_city").attr("data-code"), $("#dep_date").val(), sessMgr.currentProfile.studentTicket);
});

View File

@ -4,9 +4,13 @@
var param = require("../data.js");
var ui_login = require("./ui-login.js");
var sessMgr = require("../account/sessionMgr.js");
var mp = require("./widget_message_popup.js");
var op = require("../otn/orderprocess.js");
//标记位
//提交参数
var pTrain, pSeat, pStu, pPassengers;
var pTrain, pSeat, pStu, pPassengers, pProfile;
exports.init = function () {
ps.init();
@ -18,11 +22,12 @@
});
};
exports.start = function (train, seat, stu, passengers) {
exports.start = function (train, seat, profile, passengers) {
if (train) {
pTrain = train;
pSeat = seat;
pStu = stu;
pProfile = profile;
pStu = profile.studentTicket;
pPassengers = passengers;
}
if (!pTrain)
@ -34,11 +39,21 @@
return;
}
if (!pPassengers || !pPassengers.length)
exports.showPassengerSelectUi();
else {
exports.showConfirmOrderUi();
}
var tip = new mp.MessagePopup("loading", "正在准备提交订单,请稍等...");
tip.show();
var def = op.prepareOrder(train, pProfile);
def.done(function () {
if (!pPassengers || !pPassengers.length)
exports.showPassengerSelectUi();
else {
exports.showConfirmOrderUi();
}
tip.close();
}).fail(function (data) {
tip.setState("error", data.msg);
tip.delayClose();
});
};
@ -52,7 +67,7 @@
};
exports.showConfirmOrderUi = function () {
so.showOrderUi(pTrain, pSeat, pStu, pPassengers);
so.showOrderUi(pTrain, pSeat, pProfile, pPassengers);
};
exports.showSuccessUi = function () {

View File

@ -1,16 +1,45 @@
define(function(require, exports, module) {
var EventObject = require("../platform/EventObject.js");
var widget = require("./widget.js");
var vc_inited = false;
var mp = require("./widget_message_popup.js");
var op = require("../otn/orderprocess.js");
var vc = require("./widget_verifycode.js");
//提交参数
var pTrain, pSeat, pStu, pPassengers, pProfile;
var SubmitOrderUi = function() {
var that = this;
EventObject.apply(this);
this.init = function() {
$("#ticket-submit-info .ticket-submit-vc input:text").click(function() {
if (this.value.length === 4)
that.submitOrder();
});
$("#ticket-submit-info button.button-primary").click(that.submitOrder);
};
this.showOrderUi = function(train, passenger) {
this.showOrderUi = function (train, seat, profile, passengers) {
if (train) {
pTrain = train;
pSeat = seat;
pProfile = profile;
pStu = profile.studentTicket;
pPassengers = passengers;
}
if (!pTrain)
return;
widget.showFloatDialog($("#ticket-submit-container"));
if (!vc_inited) {
vc_inited = true;
vc.load($("#ticket-submit-info .ticket-submit-vc"));
} else {
$("#ticket-submit-info .ticket-submit-vc img").click();
}
};
this.submitOrder = function() {
};
return this;

View File

@ -39,10 +39,11 @@
});
};
this.delayClose = function (timeout) {
timeout = timeout || options.closeAfter || 1500;
if (that.shown)
setTimeout(that.close, timeout || options.closeAfter);
setTimeout(that.close, timeout);
else {
options.closeAfter = timeout || options.closeAfter || 1000;
options.closeAfter = timeout;
}
};
that.setState = function (type, content) {

View File

@ -7,8 +7,8 @@
refer: "login/init"
},
order: {
url: "",
refer: ""
url: "passcodeNew/getPassCodeNew?module=passenger&rand=randp&_="+Math.random(),
refer: "confirmPassenger/initDc"
}
};
exports.autoLoad = function(target) {