同步代码

This commit is contained in:
iFish 2014-05-29 19:41:38 +08:00
parent cf6752f435
commit d78028018e
7 changed files with 143 additions and 85 deletions

View File

@ -264,7 +264,8 @@ a:active {
background-color: #f7f1e8;
}
input[type="checkbox"] {
input[type="checkbox"],
input[type="radio"] {
margin-left: 12px;
width: 15px;
height: 15px;
@ -279,6 +280,7 @@ input[type="checkbox"] {
background: url(../images/icon.png) no-repeat 0 -560px;
}
input[type="checkbox"]:checked {
input[type="checkbox"]:checked,
input[type="radio"]:checked {
background-position: 0 -582px;
}

View File

@ -34,10 +34,10 @@
</div>
<dl class="user-nav-menu">
<dd>
<a href="javascript:;" target="acc_login">登录账号</a>
<a href="https://kyfw.12306.cn/otn/regist/init" target="_blank">注册新账号</a>
<a href="https://kyfw.12306.cn/otn/forgetPassword/initforgetMyPassword" target="_blank">忘记密码</a>
<a href="javascript:;" id="acc_logout">退出账号</a>
<a href="javascript:;" id="acc_login" class="non-login">登录账号</a>
<a href="https://kyfw.12306.cn/otn/regist/init" target="_blank" class="non-login">注册新账号</a>
<a href="https://kyfw.12306.cn/otn/forgetPassword/initforgetMyPassword" target="_blank" class="non-login">忘记密码</a>
<a href="javascript:;" id="acc_logout" class="user-logined">退出账号</a>
</dd>
</dl>
</li>
@ -88,8 +88,8 @@
</li>
<li>
<div class="identity fl">
<label><input type="checkbox" />普通</label>
<label><input type="checkbox" />学生</label>
<label><input type="radio" name="ticket_type" checked="checked" id="ticket_type_common" />普通</label>
<label><input type="radio" name="ticket_type" checked="checked" id="ticket_type_stu" />学生</label>
</div>
</li>
<li>
@ -105,7 +105,7 @@
<!-- 其他设置条件 -->
<div class="options-param">
<dl class="cl">
<dt>指定坐席:</dt>
<dt>指定坐席</dt>
<dd class="options-seat-type">
<label><input type="checkbox" /> 全部</label> <label><input type="checkbox" />高软</label><label><input type="checkbox" /> 软卧</label>
</dd>
@ -440,7 +440,7 @@
<div class="verify-code">
<input type="text" value="" id="" placeholder="验证码" />
<span></span>
<a href="" class="refresh-vc">看不清?换一张</a>
<a href="javascript:;" class="refresh-vc">看不清?换一张</a>
</div>
<footer data-col="2">
<a class="button button-default" href="https://kyfw.12306.cn/otn/regist/init" target="_blank">

View File

@ -1,18 +1,51 @@
define(function (require, exports, module) {
var session = null;
var ev = require("../platform/EventObject.js");
var widget = require("../ui/widget.js");
var ajax = require("../platform/webRequest.js");
//var LoginUser = require("./LoginUser.js");
var SessionMgr = function () {
var that = this;
ev.apply(this, arguments);
that.showLogin = function () {
if (that.current != null) return;
widget.showFloatDialog($("#user-login-dialog"));
};
that.loadLoginVcImage = function (target) {
};
that.loginAsync = function (callback) {
};
that.checkLoginState = function (callback) {
ajax.sendGet("modifyUser/initQueryUserInfo", "", null, "text", function () {
if (this.text.indexOf("登录名:") !== -1) {
callback({ logined: false });
} else {
var m = /姓名:.*[\r\n]+<div[^>]+>([^<]+)<\/div>/i.exec(this.text) && RegExp.$1;
var status = /核验状态:[\w\W]+?>([^<>]+?)<\/div>/.exec(this.text) && RegExp.$1;
if (!m || !status)
callback({ logined: false });
else {
callback({ logined: true, realName: m, status: status, isChecked: status === '已通过' });
}
}
}, function () {
});
};
Object.defineProperty(this, "current", {
get: function () {
return session;
},
set:function(v) {
set: function (v) {
if (session === v) return;
session = v;

View File

@ -1,65 +1,67 @@

define(function (require, exports, module) {
var EventObject = require("../platform/EventObject.js");
var config = require("../data.js");
var WebRequest = function() {
var that = this;
var requestMap = {};
var ajaxCount = 0;
this.getFullUri= function (url) {
/// <summary>获得完整地址</summary>
if (url[4] === ":" || url[5] === ":") return url;
return config.baseUri + url;
};
this.send = function (method, url, refer, data, responseType, done, failed) {
var xhrData = {
url: that.getFullUri(url),
data: data,
timeout: 120000,
type: "GET",
dataType: responseType,
refer: that.getFullUri(refer)
};
var e = new CustomEvent("ajaxproxy", { detail: { data: xhrData, index: ajaxCount++ }, cancelable: true });
if (document.dispatchEvent(e)) {
requestMap[e.detail.index] = {
done: done,
fail: failed
};
return;
}
};
this.sendGet = function (url, refer, data, responseType, done, failed) {
/// <summary>以GET模式发送AJAX请求</summary>
/// <param name="url">要请求的地址</param>
/// <param name="refer">请求的引用地址</param>
/// <param name="data">要发送的数据</param>
/// <param name="responseType">要请求的地址</param>
/// <param name="done">完成请求的回调</param>
/// <param name="failed">请求失败的回调</param>
that.send("GET", url, refer, data, responseType, done, failed);
};
this.sendPost = function (url, refer, data, responseType, done, failed) {
that.send("GET", url, refer, data, responseType, done, failed);
};
document.addEventListener("ajaxproxyfinished", function (e) {
var data = e.detail;
if (!that.requestMap[data.index]) return;
var param = requestMap[data.index];
delete requestMap[data.index];
data.success ? param.done.call(data) : param.fail.call(data);
});
};
.0
WebRequest.prototype = Object.create(EventObject);
WebRequest.constructor = WebRequest;
return Object.create(WebRequest);
});

define(function (require, exports, module) {
var EventObject = require("../platform/EventObject.js");
var config = require("../data.js");
var WebRequest = function() {
var that = this;
var requestMap = {};
var ajaxCount = 0;
EventObject.apply(this, arguments);
this.getFullUri= function (url) {
/// <summary>获得完整地址</summary>
if (url[4] === ":" || url[5] === ":") return url;
return config.baseUri + url;
};
this.send = function (method, url, refer, data, responseType, done, failed) {
var xhrData = {
url: that.getFullUri(url),
data: data,
timeout: 120000,
type: "GET",
dataType: responseType,
refer: that.getFullUri(refer)
};
var e = new CustomEvent("ajaxproxy", { detail: { data: xhrData, index: ajaxCount++ }, cancelable: true });
if (!document.dispatchEvent(e)) {
requestMap[e.detail.index] = {
done: done,
fail: failed
};
return;
} else {
that.fireEvent("requestSupportError");
}
};
this.sendGet = function (url, refer, data, responseType, done, failed) {
/// <summary>以GET模式发送AJAX请求</summary>
/// <param name="url">要请求的地址</param>
/// <param name="refer">请求的引用地址</param>
/// <param name="data">要发送的数据</param>
/// <param name="responseType">要请求的地址</param>
/// <param name="done">完成请求的回调</param>
/// <param name="failed">请求失败的回调</param>
that.send("GET", url, refer, data, responseType, done, failed);
};
this.sendPost = function (url, refer, data, responseType, done, failed) {
that.send("GET", url, refer, data, responseType, done, failed);
};
document.addEventListener("ajaxproxyfinished", function (e) {
var data = e.detail;
if (!requestMap[data.index]) return;
var param = requestMap[data.index];
delete requestMap[data.index];
data.success ? param.done.call(data) : param.fail.call(data);
});
};
WebRequest.prototype = Object.create(EventObject);
WebRequest.constructor = WebRequest;
module.exports = new WebRequest();
});

View File

@ -3,6 +3,7 @@
var ajax = require("../platform/webRequest.js");
var storage = require('../platform/storage.js');
var widget = require("./widget.js");
var sessMgr = require("../account/sessionMgr.js");
//初始化UI
(function() {
@ -35,5 +36,8 @@
});
setTimeout(function () {
sessMgr.checkLoginState(function(a) {
console.log(a)
});
}, 1000);
});

View File

@ -1,19 +1,36 @@
define(function(require, exports, module) {
define(function (require, exports, module) {
var sessionMgr = require("../account/sessionMgr.js");
var ev = require("../platform/EventObject.js");
var UiWidgetLogin = function() {
ev.appy(this, arguments);
var UiWidgetLogin = function () {
ev.apply(this, arguments);
sessionMgr.on("sessionChanged", function () {
if (sessionMgr.current) {
$(".non-login").hide();
$(".user-logined").show();
} else {
$(".non-login").show();
$(".user-logined").hide();
}
});
//界面事件绑定
$("#acc_login").click(function () {
sessionMgr.showLogin();
});
//初始化显示
sessionMgr.fireEvent("sessionChanged");
return this;
};
UiWidgetLogin.prototype = Object.create(ev);
UiWidgetLogin.constructor = UiWidgetLogin;
sessionMgr.on("sessionChanged", function() {
});
module.exports = new UiWidgetLogin();
});

View File

@ -328,7 +328,7 @@
break;
case 13:
//选定
console.log(selector.getSelectedCity.call(this));
selector.selectToTarget();
break;
default:
}