You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
229 lines
6.2 KiB
229 lines
6.2 KiB
<!DOCTYPE html> |
|
<html> |
|
|
|
<head> |
|
<meta charset="utf-8"> |
|
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> |
|
<title>安全中心</title> |
|
<!--REM自适应布局JS--> |
|
<link rel="stylesheet" type="text/css" href="../../../lib/css/mui.min.css"> |
|
<link rel="stylesheet" type="text/css" href="../../../lib/css/basic.css"/> |
|
<link rel="stylesheet" type="text/css" href="../../css/base.css" /> |
|
<script src="../../../lib/js/mui.min.js"></script> |
|
<script src="../../../lib/js/app.js"></script> |
|
<script type="text/javascript" src="../../../lib/js/vue.js"></script> |
|
<script src="../../js/base/rem-layout.js"></script> |
|
<script src="../../../lib/js/mui.locker.js"></script> |
|
<script type="text/javascript" src="../../js/my/my_ajax.js"></script> |
|
<script src="../../../lib/js/require2.1.11.js"></script> |
|
</head> |
|
<style> |
|
<style>html, |
|
body { |
|
width: 100%; |
|
height: 100%; |
|
margin: 0px; |
|
padding: 0px; |
|
overflow: hidden; |
|
} |
|
|
|
#holder { |
|
width: 5.5rem !important; |
|
height: 5.5rem !important; |
|
margin: 0.5rem auto; |
|
} |
|
|
|
#info { |
|
margin: 0.25rem 0; |
|
} |
|
|
|
#info * { |
|
text-align: center; |
|
line-height: 1em; |
|
color: #666666; |
|
padding: 0.2rem 0; |
|
} |
|
|
|
#info p:nth-child(1) { |
|
font-size: 0.5rem; |
|
} |
|
|
|
#info p:nth-child(2) {} |
|
</style> |
|
</style> |
|
|
|
<body> |
|
<div id="data-info"> |
|
<header class="mui-bar mui-bar-nav app-header app-header-darkly"> |
|
<a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> |
|
</header> |
|
<div class="mui-content"> |
|
<div id="info"> |
|
<p>{{dataBase.MySecurityCenterLockerTitle}}</p> |
|
<p>{{alert}}</p> |
|
</div> |
|
<div id='holder' class="mui-locker " data-locker-options='{"ringColor ":"#303344 ","fillColor ":"#303344 ","pointColor ":"#606fef ","lineColor ":"#606fef "}' data-locker-width='300' data-locker-height='300' /> |
|
</div> |
|
</div> |
|
<script> |
|
var v = new Vue({ |
|
el: '#info', |
|
data: { |
|
dataBase: {}, |
|
alert: "" |
|
} |
|
}); |
|
|
|
(function($, doc) { |
|
$.init(); |
|
var user_info = app.getWalletUserLocalStorage(); |
|
var holder = doc.querySelector('#holder'), |
|
isRight = true, |
|
record = []; |
|
if(user_info.isGesturePassword) { |
|
v.alert = v.dataBase.MySecurityCenterLockerAlert6; |
|
isRight = false; |
|
} else { |
|
v.alert = v.dataBase.MySecurityCenterLockerAlert7; |
|
} |
|
//处理事件 |
|
holder.addEventListener('done', function(event) { |
|
var rs = event.detail; |
|
if(isRight) { |
|
if(rs.points.length < 4) { |
|
v.alert = v.dataBase.MySecurityCenterLockerAlert2; |
|
record = []; |
|
rs.sender.clear(); |
|
return; |
|
} |
|
record.push(rs.points.join('')); |
|
if(record.length >= 2) { |
|
if(record[0] == record[1]) { |
|
v.alert = v.dataBase.MySecurityCenterLockerAlert3; |
|
saveGesturePassword(record[1]); |
|
user_info.isGesturePassword = true; |
|
app.setWalletUserLocalStorage(user_info); |
|
} else { |
|
v.alert = v.dataBase.MySecurityCenterLockerAlert4; |
|
} |
|
rs.sender.clear(); |
|
record = []; |
|
} else if(record.length = 1) { |
|
v.alert = v.dataBase.MySecurityCenterLockerAlert5; |
|
rs.sender.clear(); |
|
} |
|
} else { |
|
if(user_info.isGesturePassword) { |
|
isRight = checkGesturePassword(rs.points.join('')); |
|
rs.sender.clear(); |
|
if(isRight) { |
|
v.alert = v.dataBase.MySecurityCenterLockerAlert7; |
|
rs.sender.clear(); |
|
} else { |
|
v.alert = v.dataBase.MySecurityCenterLockerAlert8; |
|
rs.sender.clear(); |
|
} |
|
} |
|
} |
|
}); |
|
}(mui, document)); |
|
</script> |
|
</body> |
|
|
|
</html> |
|
|
|
<script> |
|
//修改手势密码 |
|
function saveGesturePassword(gesturePassword) { |
|
plus.nativeUI.showWaiting(v.dataBase.ShowWaiting); |
|
mui.ajax(myAjaxJs.AJAX_SAVE_GESTURE_PASSWORD.getUrl, { |
|
headers: { |
|
"X-Requested-Token": localStorage.getItem("user_token"), |
|
}, |
|
data: { |
|
gesturePassword: gesturePassword |
|
}, |
|
dataType: 'json', //服务器返回json格式数据 |
|
type: myAjaxJs.AJAX_SAVE_GESTURE_PASSWORD.getType, //HTTP请求类型 |
|
timeout: 10000, |
|
success: function(data) { |
|
if(data.code == "200") { |
|
var user = app.getWalletUserLocalStorage(); |
|
user.isGesturePassword = true; |
|
app.setWalletUserLocalStorage(user); |
|
plus.nativeUI.closeWaiting(); |
|
plus.webview.currentWebview().close(); |
|
mui.back(); |
|
mui.toast(v.dataBase.AlterSuccessMsg); |
|
} else if(data.code == "201" || data.code == "202") { //未登录 |
|
plus.nativeUI.closeWaiting(); |
|
mui.openWindow({ |
|
id: "mine/html/wallet_login.html", |
|
url: "../wallet_login.html" |
|
}); |
|
} else { |
|
plus.nativeUI.closeWaiting(); |
|
mui.toast(data.msg); |
|
} |
|
}, |
|
error: function(xhr, type, errorThrown) { |
|
plus.nativeUI.closeWaiting(); |
|
// mui.alert(dataBase.AjaxError2, dataBase.AlertMsg); |
|
} |
|
}); |
|
} |
|
|
|
//验证旧手势密码 |
|
function checkGesturePassword(gesturePassword) { |
|
plus.nativeUI.showWaiting(v.dataBase.ShowWaiting); |
|
var isRight = true; |
|
mui.ajax(myAjaxJs.AJAX_CHECK_GESTURE_PASSWORD.getUrl, { |
|
headers: { |
|
"X-Requested-Token": localStorage.getItem("user_token"), |
|
}, |
|
data: { |
|
password: gesturePassword, |
|
type: 2 |
|
}, |
|
async: false, |
|
dataType: 'json', //服务器返回json格式数据 |
|
type: myAjaxJs.AJAX_CHECK_GESTURE_PASSWORD.getType, //HTTP请求类型 |
|
timeout: 10000, |
|
success: function(data) { |
|
if(data.code == "200") { |
|
plus.nativeUI.closeWaiting(); |
|
isRight = true; |
|
} else if(data.code == "201" || data.code == "202") { //未登录 |
|
plus.nativeUI.closeWaiting(); |
|
mui.openWindow({ |
|
id: "mine/html/wallet_login.html", |
|
url: "../wallet_login.html" |
|
}); |
|
isRight = false; |
|
} else { |
|
plus.nativeUI.closeWaiting(); |
|
mui.toast(data.msg); |
|
isRight = false; |
|
} |
|
}, |
|
error: function(xhr, type, errorThrown) { |
|
plus.nativeUI.closeWaiting(); |
|
// mui.alert(dataBase.AjaxError2, dataBase.AlertMsg); |
|
isRight = false; |
|
} |
|
}); |
|
return isRight; |
|
} |
|
|
|
appLanguageFun(); |
|
/** |
|
* 国际化方法 |
|
*/ |
|
function appLanguageFun() { |
|
var type = app.getLanguageLocalStorage(); |
|
require(['../../js/language/' + type], function(dataBase) { |
|
v.dataBase = dataBase; |
|
v.alert = dataBase.MySecurityCenterLockerAlert1; |
|
}) |
|
} |
|
</script> |