diff --git a/RwTicketAssistantV2/app/infobar/scripts/entity.js b/RwTicketAssistantV2/app/infobar/scripts/entity.js index 4a9a3e4..85a4539 100644 --- a/RwTicketAssistantV2/app/infobar/scripts/entity.js +++ b/RwTicketAssistantV2/app/infobar/scripts/entity.js @@ -177,7 +177,7 @@ function Passenger(name, type, typename, idtype, idtypename, id, firstLetter, ti }; Object.defineProperty(this, "canOrder", { - get: function() { + get: function () { if (__.idtype === "C" || __.idtype === "G" || __.idtype === "B") return true; @@ -218,9 +218,11 @@ function LoginUser(name) { $.extend(e, _.omit(data, "savedProfile", "passengers", "currentProfile")); e.savedProfile = new ProfileList(data.savedProfile.list); e.currentProfile = new Profile(data.currentProfile); - $.each(data.passengers, function () { - e.passengers.push(new Passenger(this.name, this.type, this.typename, this.idtype, this.idtypeName, this.id, this.firstLetter, this.times)); - }); + + if (data.passengers && data.passengers.every(function (s) { return s.times > 0; })) + $.each(data.passengers, function () { + e.passengers.push(new Passenger(this.name, this.type, this.typename, this.idtype, this.idtypeName, this.id, this.firstLetter, this.times)); + }); } //重新加载乘客 diff --git a/Web12306/js/account/sessionMgr.js b/Web12306/js/account/sessionMgr.js index db1fed4..8da5d94 100644 --- a/Web12306/js/account/sessionMgr.js +++ b/Web12306/js/account/sessionMgr.js @@ -129,6 +129,7 @@ } } + that.current = profile; if (dispname) { if (checkData) { that.current.dispname = checkData.realName; @@ -154,7 +155,6 @@ }); } } - that.current = profile; that.save(); }; that.resetProfile = function () { diff --git a/Web12306/js/data.js b/Web12306/js/data.js index bf0ba1c..c8bc087 100644 --- a/Web12306/js/data.js +++ b/Web12306/js/data.js @@ -165,8 +165,22 @@ EXIT_CHAT: 115, //extar OPEN_SYS_NOTICE: 116, - LOAD_SYS_NOTICE: 117 - }; + LOAD_SYS_NOTICE: 117, + LOAD_SUGGESTION: 118, + SHOW_NOTIFICATION_SELECT: 119, + OPEN_SELL_NOTIFICATION: 120, + //---------------------------- + SUBMIT_ORDER_BY_SUGGESTIONI: 121, + QUEUE_ORDER_SUCCESS: 122, + PROFILE_AUTO_SELECTSEAT: 130, + PROFILE_AUTO_ADDTRAIN: 131, + PROFILE_AUTO_ADDPAS: 132, + PROFILE_AUTO_ADDDL: 133, + PROFILE_AUTO_MOREOPT: 134, + PROFILE_AUTO_OPENTM: 135, + PROFILE_AUTO_RESET: 136, + PROFILE_DATEBAR:137, +}; exports.chatSendMsgDelay = 5000; exports.maxRecentCity = 18; exports.suggestRefreshInterval = 60000; diff --git a/Web12306/js/otn/orderprocess.js b/Web12306/js/otn/orderprocess.js index cd42bc6..18ee21d 100644 --- a/Web12306/js/otn/orderprocess.js +++ b/Web12306/js/otn/orderprocess.js @@ -2,6 +2,8 @@ var ajax = require("../platform/webRequest.js"); var parser = require("../platform/parser.js"); var vc = require("./vc.js"); + var port = require("../platform/extensionPort.js"); + var param = require("../data.js"); var submitToken; var formData; @@ -184,6 +186,15 @@ def.reject({ msg: json.data.errMsg || "提交订单错误,错误原因未知..." }); } else { waitQueueToComplete(); + + //report + port.track(param.trackTypes.QUEUE_ORDER_SUCCESS, [ + train.code, + train.from.name, + train.to.name, + train.date, + passenger[0].seat + ]); } }, function () { def.reject({ msg: "12306不给力啊,唉。出现网络错误了,请重试.." }); @@ -340,6 +351,15 @@ def.reject({ msg: json.data.errMsg || "提交订单错误,错误原因未知..." }); } else { waitQueueToComplete(); + + //report + port.track(param.trackTypes.QUEUE_ORDER_SUCCESS, [ + train.code, + train.from.name, + train.to.name, + train.date, + passenger[0].seat + ]); } }, function () { def.reject({ msg: "12306不给力啊,唉。出现网络错误了,请重试.." }); diff --git a/Web12306/js/otn/trainstationsuggest.js b/Web12306/js/otn/trainstationsuggest.js index 009a779..cf98b31 100644 --- a/Web12306/js/otn/trainstationsuggest.js +++ b/Web12306/js/otn/trainstationsuggest.js @@ -8,6 +8,7 @@ var utility = require("../utility.js"); var cachedSuggest = JSON.parse(localStorage['trainsuggestion'] || '{"key":"", "data":null}'); var lastQuerySuggest = null; + var port = require("../platform/extensionPort.js"); sessmgr.on("currentProfileChanged", function () { cp = sessmgr.currentProfile; @@ -73,6 +74,7 @@ //如果服务器出现错误,则等待十秒后再恢复状态 }, 10000); }); + port.track(data.trackTypes.LOAD_SUGGESTION, [cp.fromCode, cp.fromText, cp.toCode, cp.toText, cp.depDate, cp.studentTicket + '']); }; var preprocessServerResponse = function (serverSuggestion) { serverSuggestion = serverSuggestion && serverSuggestion.groups; diff --git a/Web12306/js/ui/chat/roomsession.js b/Web12306/js/ui/chat/roomsession.js index 7cc0cac..aa4095c 100644 --- a/Web12306/js/ui/chat/roomsession.js +++ b/Web12306/js/ui/chat/roomsession.js @@ -64,6 +64,8 @@ } else { port.postMessage("enterChatRoom", room); } + + port.track(param.trackTypes.JOIN_CHAT); }; this.refreshOnlineCount = function () { page.find(">header>span:eq(1)").html("当前在线 " + room.onlinecount + " 人"); @@ -73,6 +75,8 @@ room = null; port.postMessage("disconnectChatRoom"); that.fireEvent("exitRoom"); + + port.track(param.trackTypes.EXIT_CHAT); }; this.appendMessageItem = function (html) { chatListContainer.append(html); diff --git a/Web12306/js/ui/index.js b/Web12306/js/ui/index.js index 0f8d8f3..4826fae 100644 --- a/Web12306/js/ui/index.js +++ b/Web12306/js/ui/index.js @@ -132,6 +132,9 @@ div.is(":visible") ? (div.hide(), $(this).html("显示更多选项")) : (div.show(), $(this).html("隐藏更多选项")); sessMgr.current.options.showMoreOpt = div.is(":visible"); sessMgr.save(); + + //report + port.track(param.trackTypes.PROFILE_AUTO_MOREOPT, [sessMgr.current.options.showMoreOpt ? 1 : 0]); }); $("#from_city").change(function () { var u = sessMgr.current; @@ -205,7 +208,7 @@ } //track - port.track(param.trackTypes.QUERY_TICKET, [cp.fromCode, cp.fromText, cp.toCode, cp.toText, cp.depDate, cp.studentTicket+'']); + port.track(param.trackTypes.QUERY_TICKET, [cp.fromCode, cp.fromText, cp.toCode, cp.toText, cp.depDate, cp.studentTicket + '']); }); diff --git a/Web12306/js/ui/ui-autorefresh.js b/Web12306/js/ui/ui-autorefresh.js index 88d854a..8e25d6c 100644 --- a/Web12306/js/ui/ui-autorefresh.js +++ b/Web12306/js/ui/ui-autorefresh.js @@ -160,7 +160,8 @@ trainSuggest.clearQueryResultCache(); //track - port.track(expdata.trackTypes.START_AUTOREFRESH); + var cp = sessMgr.currentProfile; + port.track(expdata.trackTypes.START_AUTOREFRESH, [cp.fromCode, cp.fromText, cp.toCode, cp.toText, cp.depDate, cp.studentTicket + '']); } inAutoRefresh = true; diff --git a/Web12306/js/ui/ui-autosubmitform.js b/Web12306/js/ui/ui-autosubmitform.js index 654883d..07350aa 100644 --- a/Web12306/js/ui/ui-autosubmitform.js +++ b/Web12306/js/ui/ui-autosubmitform.js @@ -4,6 +4,8 @@ var query = require("../otn/queryticket.js"); var data = require("../data.js"); var passenger = require("../otn/passenger.js"); + var port = require("../platform/extensionPort.js"); + require("./widget_modalDialog.js"); var initPassengerEditor = function () { @@ -271,6 +273,9 @@ uiList.append(uiListTpl([p])); sessmgr.save(); + //report + port.track(data.trackTypes.PROFILE_AUTO_ADDPAS); + return noui ? null : true; }; }; @@ -441,6 +446,9 @@ } else { cp.selectedTrain.push(t); container.append(listTpl([t])); + + //report + port.track(data.trackTypes.PROFILE_AUTO_ADDTRAIN, [t]); } sessmgr.save(); @@ -505,6 +513,9 @@ sessmgr.save(); //add to list container.append(tpl([d])); + + //report + port.track(data.trackTypes.PROFILE_AUTO_ADDDL, [d]); }; exports.removeDateFromLoopList = function (d) { if (!cp || !cp.dateloop) @@ -607,6 +618,11 @@ if (this.checked) exports.addSeat(this.value); else exports.removeSeat(this.value); + + //跟踪 + if (this.checked) { + port.track(data.trackTypes.PROFILE_AUTO_SELECTSEAT, [this.value]); + } }); container.on("click", "span.close", function () { exports.removeSeat(this.parentNode.dataset.code); @@ -633,6 +649,9 @@ $("#from_city, #to_city").attr("data-code", ""); sessmgr.currentProfile = null; sessmgr.save(); + + //report + port.track(data.trackTypes.PROFILE_AUTO_RESET); }); }; diff --git a/Web12306/js/ui/ui-order-submit-process.js b/Web12306/js/ui/ui-order-submit-process.js index d00e77c..dc4090d 100644 --- a/Web12306/js/ui/ui-order-submit-process.js +++ b/Web12306/js/ui/ui-order-submit-process.js @@ -6,6 +6,7 @@ var sessMgr = require("../account/sessionMgr.js"); var mp = require("./widget_message_popup.js"); var op = require("../otn/orderprocess.js"); + var port = require("../platform/extensionPort.js"); //标记位 diff --git a/Web12306/js/ui/ui-submit-order.js b/Web12306/js/ui/ui-submit-order.js index 53e3a08..1207df0 100644 --- a/Web12306/js/ui/ui-submit-order.js +++ b/Web12306/js/ui/ui-submit-order.js @@ -89,7 +89,13 @@ return; //track - port.track(param.trackTypes.SUBMIT_ORDER); + port.track(param.trackTypes.SUBMIT_ORDER, [ + pTrain.code, + pTrain.from.name, + pTrain.to.name, + pTrain.date, + pPassengers[0].seat + ]); submitBtn[0].disabled = true; submitProgress.removeClass().addClass("ticket-submit-status ticket-submit-status-loading").show().find("span").html("正在提交订单中..."); @@ -105,7 +111,13 @@ submitBtn[0].disabled = false; //track - port.track(param.trackTypes.SUBMIT_ORDER_SUCCESS); + port.track(param.trackTypes.SUBMIT_ORDER_SUCCESS, [ + pTrain.code, + pTrain.from.name, + pTrain.to.name, + pTrain.date, + pPassengers[0].seat + ]); }); submitDef.fail(function (data) { that.fireEvent("orderFailed", data); @@ -123,7 +135,13 @@ } //track - port.track(param.trackTypes.SUBMIT_ORDER_FAILED); + port.track(param.trackTypes.SUBMIT_ORDER_FAILED, [ + pTrain.code, + pTrain.from.name, + pTrain.to.name, + pTrain.date, + pPassengers[0].seat + ]); }); submitDef.progress(function (data) { submitProgress.find("span").html(data.msg); diff --git a/Web12306/js/ui/ui-sysnotice.js b/Web12306/js/ui/ui-sysnotice.js index d964d15..f178791 100644 --- a/Web12306/js/ui/ui-sysnotice.js +++ b/Web12306/js/ui/ui-sysnotice.js @@ -6,6 +6,7 @@ var savedNotice = JSON.parse(storage.get("systemNotice") || "{}"); var unreadNotice = null; var noticeTemplate = $("#search_tips_template").doT(); + var port = require("../platform/extensionPort.js"); var loadSystemNotice = function () { $.post(loadUrl).done(function (json) { @@ -27,6 +28,7 @@ //定时器 setTimeout(loadSystemNotice, data.sysNoticeLoadInterval); + port.track(data.trackTypes.LOAD_SYS_NOTICE); }); }; @@ -71,6 +73,8 @@ $("#index-tip-body").click(function (e) { $(this).next().fadeIn(); e.stopPropagation(); + + port.track(data.trackTypes.OPEN_SYS_NOTICE); }); $(document).on("click", "section.search-tips-container i.fa-times", function () { closeNotice(); diff --git a/Web12306/js/ui/ui-theme-manager.js b/Web12306/js/ui/ui-theme-manager.js index 3887e30..6c3d967 100644 --- a/Web12306/js/ui/ui-theme-manager.js +++ b/Web12306/js/ui/ui-theme-manager.js @@ -7,6 +7,8 @@ var listContainer = container.find("ul"); var sessMgr = require("../account/sessionMgr.js"); var dlg = $("#save-travel-method"); + var port = require("../platform/extensionPort.js"); + var data = require("../data.js"); var ThemeManagerUi = function () { var that = this; @@ -21,6 +23,9 @@ var init = function () { $("#travel-theme-select").focus(function () { $(this).parent().parent().addClass("hover"); + + //report + port.track(data.trackTypes.PROFILE_AUTO_OPENTM); }).blur(function () { $(this).parent().parent().removeClass("hover"); }); diff --git a/Web12306/js/ui/ui-trainlist.js b/Web12306/js/ui/ui-trainlist.js index d45482e..5051d95 100644 --- a/Web12306/js/ui/ui-trainlist.js +++ b/Web12306/js/ui/ui-trainlist.js @@ -153,10 +153,11 @@ var seatcode = this.dataset.seatcode; var train; var cp = sessMgr.currentProfile; + var bySuggest = false; if (this.dataset.suggest) { train = trainSuggest.findTrain(this.dataset.sec); - + bySuggest = true; } else { train = _.findWhere(queryResult.original, { id: id }); } @@ -179,6 +180,17 @@ seat: seatcode, passengers: pas }); + + if (bySuggest) { + port.track(param.trackTypes.SUBMIT_ORDER_BY_SUGGESTIONI, [ + train.code, + train.from.name, + train.to.name, + train.date, + seatcode + ]); + + } }); }; init(); diff --git a/Web12306/js/ui/widget_datebar.js b/Web12306/js/ui/widget_datebar.js index 034ba44..76c103f 100644 --- a/Web12306/js/ui/widget_datebar.js +++ b/Web12306/js/ui/widget_datebar.js @@ -4,6 +4,8 @@ var container = $("ul.date-bar-list"); var parser = require("../platform/parser.js"); var utility = require("../utility.js"); + var data = require("../data.js"); + var port = require("../platform/extensionPort.js"); var getFirstDayOfWeek = function (date) { date = utility.toDate(date); @@ -38,6 +40,9 @@ $("div.date-bar-next").click(that.goNext); $(document).on("click", "ul.date-bar-list li:not(.disabled):not(.selected)", function () { that.fireEvent("requireChangeDate", this.dataset.date); + + //report + port.track(data.trackTypes.PROFILE_DATEBAR, [this.dataset.date]); }); that.go(today); diff --git a/Web12306/js/ui/widget_sell_notification.js b/Web12306/js/ui/widget_sell_notification.js index 3b5981b..6c3d7b9 100644 --- a/Web12306/js/ui/widget_sell_notification.js +++ b/Web12306/js/ui/widget_sell_notification.js @@ -128,25 +128,37 @@ ); } + var args = [0, 0, 0]; if ($("#selltip_selection :checkbox:eq(2)").is(":checked:visible")) { + args[0] = 1; //动车 assignTimeGroup(baseTime.getTime() + 11 * 60 * 60 * 1000, "动车/城铁"); } if ($("#selltip_selection :checkbox:eq(1)").is(":checked:visible")) { + args[1] = 1; //高铁 assignTimeGroup(baseTime.getTime() + 14 * 60 * 60 * 1000, "高铁"); } if ($("#selltip_selection :checkbox:eq(3)").is(":checked:visible")) { + args[2] = 1; //普通车次 assignTimeGroup(baseTime.getTime() + sellTime, "普通车次"); } - port.sendMessage({ action: "setAlarmTask", detail: tasks }); + port.track(data.trackTypes.OPEN_SELL_NOTIFICATION, args); + return true; }; var showAlarmSetUi = function (result) { var hasDc = 0, hasG = 0, hasC = 0, total = 0; + + if (!result.original.length) { + //没有车次 + mp.alert("没有查到车次喔!"); + return; + } + _.each(result.original, function (t) { if (t.code[0] === 'D' || t.code[0] === 'C') hasDc++; @@ -188,6 +200,7 @@ } ] }); + port.track(data.trackTypes.SHOW_NOTIFICATION_SELECT); }; var init = function () { sessMgr.on("save", function () {