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.
514 lines
15 KiB
514 lines
15 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 href="../../lib/css/basic.css" rel="stylesheet" /> |
|
<link rel="stylesheet" type="text/css" href="../css/base.css" /> |
|
<script src="../../lib/js/mui.min.js"></script> |
|
<script src="../../lib/js/vue.js"></script> |
|
<script src="../../lib/js/app.js"></script> |
|
<script src="../../lib/js/jsdeferred.nodoc.js"></script> |
|
<script type="text/javascript" src="../js/base/rem-layout.js"></script> |
|
<script type="text/javascript" src="../js/login/login_ajax.js"></script> |
|
<script src="../../html/wakuang/js/eth/ajax/eth.ajaxApi.js"></script> |
|
<script src="../../lib/js/require2.1.11.js"></script> |
|
<script src="../../lib/js/internationalCode.js"></script> |
|
<script src="../js/base/getClientInfo.js"></script> |
|
</head> |
|
<style> |
|
#user-login { |
|
margin: 0.25rem 0.25rem; |
|
} |
|
|
|
#user-login label { |
|
width: 1.25rem; |
|
} |
|
|
|
#user-login .app-input { |
|
width: 60%; |
|
} |
|
|
|
#user-login #mobile-phone .app-input { |
|
flex-grow: 7; |
|
} |
|
|
|
#user-login #password-input .app-input, |
|
#user-login #name-input .app-input { |
|
flex-grow: 7; |
|
} |
|
|
|
#user-login .app-group-right-text { |
|
width: 40%; |
|
border: 0px solid white; |
|
} |
|
|
|
#user-login .app-input-row-list { |
|
border-radius: 0.2rem; |
|
margin: 0.2rem 0; |
|
overflow: hidden; |
|
border: 1px solid #DDDDDD !important; |
|
} |
|
|
|
#login-text-info { |
|
/*margin: 0.3rem 0 0 0;*/ |
|
} |
|
|
|
.mui-slider-item { |
|
border: none !important; |
|
} |
|
|
|
.login-slider { |
|
top: 50px !important; |
|
} |
|
|
|
.login-btn { |
|
position: relative; |
|
z-index: 999; |
|
margin-top: 7rem; |
|
margin-left: 0.3rem; |
|
margin-right: 0.3rem; |
|
} |
|
|
|
#login-btn { |
|
margin-top: .2rem; |
|
} |
|
|
|
.login-slider-title { |
|
padding: 0 0.68rem 0 0.68rem !important; |
|
} |
|
|
|
#sliderSegmentedControl { |
|
margin: 0 0 0 0.25rem !important; |
|
} |
|
|
|
#forget-password { |
|
margin: 0.4rem; |
|
font-size: 0.25rem; |
|
line-height: 1.5em; |
|
} |
|
|
|
#password-input { |
|
align-items: center; |
|
} |
|
|
|
.scan-code { |
|
width: .4rem !important; |
|
height: .4rem !important; |
|
margin-right: .2rem; |
|
} |
|
|
|
.mui-checkbox.mui-left input[type=checkbox] { |
|
left: .4rem; |
|
top: .1rem; |
|
} |
|
|
|
.mui-checkbox input[type=checkbox]:before { |
|
font-size: .4rem; |
|
} |
|
|
|
.mui-checkbox input[type=checkbox]:checked:before { |
|
color: #D43436; |
|
} |
|
|
|
.vister { |
|
display: none; |
|
visibility: hidden; |
|
} |
|
</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> |
|
<h1 class="mui-title">{{langue.title}}</h1> |
|
</header> |
|
<div class="mui-content"> |
|
<div id="slider" class="mui-slider mui-fullscreen login-slider"> |
|
<div id="sliderSegmentedControl" class="mui-scroll-wrapper mui-slider-indicator mui-segmented-control mui-segmented-control-inverted"> |
|
<div class="mui-scroll app-scroll-darkly"> |
|
</div> |
|
</div> |
|
<div class="mui-slider-group"> |
|
<div id="item1mobile" class="mui-slider-item mui-control-content mui-active"> |
|
<div id="scroll1" class="mui-scroll-wrapper"> |
|
<div class="mui-scroll"> |
|
<div id="user-login" class="app-input-group app-input-group-darkly"> |
|
<div id="international-div" class="app-input-row-list"> |
|
<label class="mui-text-center">{{langue.countriesAndRegions}}</label> |
|
<!--<label>请选择国家</label>--> |
|
<input id="international_code" class="app-input" type="text" readonly="readonly" :value="langue.Hongkong" /> |
|
<input id="internationalCode" type="hidden" value="86" /> |
|
</div> |
|
<div id="mobile-phone" class="app-input-row-list"> |
|
<label id="mobilePhoneLabel" class="mui-text-center">{{langue.phone}}</label> |
|
<input id="mobilePhone" class="app-input" type="text" v-model="dataParameter.mobilePhone" :placeholder="langue.placeholder01" /> |
|
</div> |
|
<div id="password-input" class="app-input-row-list"> |
|
<label class="mui-text-center">{{langue.cdkey}}</label> |
|
<input id="cdkey" class="app-input" type="text" v-model="dataParameter.cdkey" :placeholder="langue.placeholder03" readonly/> |
|
<img src="../../html/OTC/img/code.png" class="scan-code" id="scan-code" /> |
|
</div> |
|
<div id="name-input" class="app-input-row-list"> |
|
<label class="mui-text-center">{{langue.name}}</label> |
|
<input id="nickName-input" class="app-input" type="text" v-model="dataParameter.nickName" :placeholder="langue.placeholder04" /> |
|
</div> |
|
<div class="app-input-row-list"> |
|
<input class="app-input" type="text" v-model="dataParameter.verificationCode" :placeholder="langue.placeholder02" /> |
|
<button id="verification-code-btn" class="app-group-right-text app-text-color app-background-color"> |
|
{{langue.sendCode}} |
|
</button> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
</div> |
|
|
|
<div class="login-btn"> |
|
<div class="mui-input-row mui-checkbox mui-left"> |
|
<label> |
|
<p id="login-text-info" class="mui-text-center">{{langue.registerText}} |
|
<a id="protocol">{{langue.registerHref}}</a> |
|
</p> |
|
</label> |
|
<input v-model="agreeServiceAgreement" type="checkbox" class="agree-input"> |
|
</div> |
|
<button id="login-btn" class="app-btn app-btn-darkly">{{langue.register}}</button> |
|
<!--<div class="mui-input-row mui-checkbox mui-left" style="margin-top: 0.2rem;"> |
|
<label> |
|
<p id="login-text-info" class="mui-text-center">{{langue.registerText}} |
|
<a id="protocol">{{langue.registerHref}}</a> |
|
</p> |
|
</label> |
|
<input v-model="agreeServiceAgreement" type="checkbox"> |
|
</div>--> |
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</body> |
|
|
|
</html> |
|
<script> |
|
// 国际化 |
|
var langues = { |
|
zh_CN: { |
|
title: "注册", |
|
sendCode: "获取验证码", |
|
cdkey: "邀请码", |
|
name: "姓名", |
|
phone: "账号", |
|
placeholder01: "请输入手机号/邮箱", |
|
placeholder02: "请输入验证码", |
|
placeholder03: "请扫描(非必填)", |
|
placeholder04: "请输入真实姓名(必填)", |
|
register: "注册", |
|
registerText: "我已阅读并同意", |
|
registerHref: "《服务协议》", |
|
alert01: "账号不能为空", |
|
alert02: "验证码不能为空", |
|
alert03: "邀请码不能为空", |
|
alert04: "姓名不能为空", |
|
alert05: "请勾选用户协议", |
|
countriesAndRegions: "国家地区", |
|
Hongkong: "中国" |
|
|
|
}, |
|
zh_HK: { |
|
title: "註冊", |
|
sendCode: "獲取驗證碼", |
|
cdkey: "邀請碼", |
|
name: "姓名", |
|
phone: "賬號", |
|
placeholder01: "請輸入手機號/郵箱", |
|
placeholder02: "請輸入驗證碼", |
|
placeholder03: "請掃描(非必填)", |
|
placeholder04: "請輸入真實姓名(必填)", |
|
register: "註冊", |
|
registerText: "點擊'註冊'代表妳已閱讀並同意", |
|
registerHref: "《服務協議》", |
|
alert01: "賬號不能為空", |
|
alert02: "驗證碼不能為空", |
|
alert03: "邀請碼不能為空", |
|
alert04: "姓名不能為空", |
|
alert05: "請勾選用戶協議", |
|
countriesAndRegions: "國家地區", |
|
Hongkong: "中国" |
|
}, |
|
en_US: { |
|
title: "Register", |
|
sendCode: "Send", |
|
cdkey: "Cdkey", |
|
name: "Name", |
|
phone: "Account", |
|
placeholder01: "Input phone number/mailbox", |
|
placeholder02: "Input code", |
|
placeholder03: "Please scan(Optional)", |
|
placeholder04: "Input name (Must)", |
|
register: "Register", |
|
registerText: "Click 'Register' to read and agree", |
|
registerHref: " Service Agreement ", |
|
alert01: "The account cannot be empty", |
|
alert02: "The verification code cannot be empty", |
|
alert03: "The invitation code cannot be empty", |
|
alert04: "The nickname cannot be empty", |
|
alert05: "Please check the user agreement box", |
|
countriesAndRegions: "Country Areas", |
|
Hongkong: "China" |
|
} |
|
} |
|
</script> |
|
<script> |
|
var dataInfo = new Vue({ |
|
el: "#data-info", |
|
data: { |
|
langue: langues[app.getLanguageLocalStorage()], |
|
dataParameter: { |
|
mobilePhone: "", // 手机号验证 |
|
verificationCode: "", // 验证码 |
|
cdkey: "", // 邀请码 |
|
internationalCode: "86", //国际化标识码 |
|
nickName: "", |
|
}, |
|
agreeServiceAgreement: false, //服务协议选择状态 |
|
} |
|
}); |
|
|
|
mui.init({ |
|
gestureConfig: { |
|
longtap: true, //默认为false |
|
release: true |
|
} |
|
}); |
|
mui.plusReady(function() { |
|
//注册 |
|
document.getElementById("login-btn").addEventListener("tap", function() { |
|
var ajaxData = { |
|
username: dataInfo.dataParameter.mobilePhone, |
|
verifyCode: dataInfo.dataParameter.verificationCode, |
|
cdkey: dataInfo.dataParameter.cdkey, |
|
internationalCode: dataInfo.dataParameter.internationalCode, |
|
nickName: dataInfo.dataParameter.nickName |
|
}; |
|
if(!valueIsNotNull(ajaxData.username)) { |
|
mui.toast(dataInfo.langue.alert01); |
|
} else if(!valueIsNotNull(ajaxData.nickName)) { |
|
mui.toast(dataInfo.langue.alert04); |
|
} else if(!valueIsNotNull(ajaxData.verifyCode)) { |
|
mui.toast(dataInfo.langue.alert02); |
|
} else if(!dataInfo.agreeServiceAgreement) { |
|
mui.toast(dataInfo.langue.alert05); |
|
} else { |
|
plus.nativeUI.showWaiting(); |
|
ajaxData.tel = ajaxData.username; |
|
ajaxData.code = ajaxData.verifyCode; |
|
ajaxData.invitationCode = ajaxData.cdkey; |
|
ajaxData.internationalCode = ajaxData.internationalCode; |
|
ajaxData.nickName = ajaxData.nickName; |
|
//该值请从 mine/js/base/getClientInfo.js 中查看 |
|
ajaxData.clientId = plusClientId; |
|
signUp(ajaxData); |
|
} |
|
}); |
|
|
|
document.getElementById('protocol').addEventListener('tap', function() { |
|
mui.openWindow({ |
|
id: "mine/html/wallet_terms_of_service.html", |
|
url: "wallet_terms_of_service.html" |
|
}); |
|
}) |
|
|
|
//获取验证码 |
|
document.getElementById('verification-code-btn').addEventListener('tap', function() { |
|
getCode(); |
|
}); |
|
|
|
/** |
|
* 扫一扫监听 |
|
*/ |
|
var toAddrInput = document.getElementById("cdkey"); // 当前页面的提现Input节点 |
|
// var scanPage = app.preloadWin('../../html/wallet/html/barcode_scan.html', 'barcode_scan.html', null, null, null, true); |
|
document.getElementById('password-input').addEventListener('tap', function() { |
|
// app.openWin("../../html/wallet/html/barcode_scan.html", "barcode_scan.html"); |
|
mui.openWindow("../../html/wallet/html/barcode_scan.html", "barcode_scan.html"); |
|
// scanPage.show(); |
|
}); |
|
/** |
|
* 二维码扫描回掉监听 |
|
*/ |
|
window.addEventListener("barcodeScanClose", function(event) { |
|
// toAddrInput.value = event.detail; |
|
dataInfo.dataParameter.cdkey = event.detail; |
|
}); |
|
|
|
/** |
|
* 国际代码回掉监听 |
|
*/ |
|
window.addEventListener("internationalCode", function(event) { |
|
document.getElementById("internationalCode").value = event.detail.code; |
|
document.getElementById('international_code').value = event.detail.name; |
|
// document.getElementById("mobilePhoneLabel").innerText = "+" + event.detail.code; |
|
dataInfo.langue.Hongkong = event.detail.name; |
|
dataInfo.dataParameter.internationalCode = event.detail.code; |
|
}); |
|
|
|
//选择国际点击事件 |
|
document.getElementById('international_code').addEventListener('tap', function() { |
|
app.openWin('indexed-list.html', 'indexed-list.html', null, null); |
|
}); |
|
|
|
}); |
|
|
|
/** |
|
* 倒计时 |
|
* |
|
* @param {Object} obj docm对象 |
|
* @param {Object} time 时间 |
|
*/ |
|
function setTime(obj, inputObj, time) { |
|
//开始判断倒计时是否为0 |
|
if(time == 0) { |
|
obj.removeAttribute("disabled"); |
|
inputObj.style.color = "white"; |
|
inputObj.removeAttribute("disabled"); |
|
obj.innerText = dataInfo.langue.sendCode; |
|
return; |
|
} else { |
|
obj.setAttribute("disabled", "disabled"); |
|
inputObj.color = "#666666"; |
|
inputObj.setAttribute("disabled", "disabled"); |
|
obj.innerText = time; |
|
time--; |
|
} |
|
//过1秒后执行倒计时函数 |
|
setTimeout(function() { |
|
setTime(obj, inputObj, time); |
|
}, 1000) |
|
} |
|
|
|
/** |
|
* 空判断 |
|
* @param {Object} value 参数 |
|
*/ |
|
function valueIsNotNull(value) { |
|
if(null != value && value.replace(/\s+/g, "") != "") { |
|
return true; |
|
} |
|
return false; |
|
} |
|
|
|
/** |
|
* 判断是否为有效手机号 |
|
* @param {Object} str |
|
*/ |
|
// function isPoneAvailable(str) { |
|
// var myreg = /^1[3-9][0-9]{9}$/; |
|
// if(!myreg.test(str)) { |
|
// return false; |
|
// } else { |
|
// return true; |
|
// } |
|
// } |
|
|
|
//获取验证码 |
|
function getCode() { |
|
//获取验证码按钮 |
|
var verificationCodeBtn = document.getElementById('verification-code-btn'); |
|
//获取input控件 |
|
var mobilePhone = document.getElementById("mobilePhone"); |
|
if(!valueIsNotNull(dataInfo.dataParameter.mobilePhone)) { |
|
app.toast(dataInfo.langue.alert01); |
|
} else { |
|
setTime(verificationCodeBtn, mobilePhone, 60); |
|
mui.ajax(loginAjaxJs.AJAX_GET_SIGNUP_CODE.getUrl, { |
|
headers: { |
|
"locale": app.getLanguageLocalStorage() // 语种头部 |
|
}, |
|
type: loginAjaxJs.AJAX_GET_SIGNUP_CODE.getType, //HTTP请求类型 |
|
data: { |
|
"internationalCode": dataInfo.dataParameter.internationalCode, |
|
"tel": dataInfo.dataParameter.mobilePhone |
|
}, |
|
dataType: 'json', //服务器返回json格式数据 |
|
timeout: 10000, //超时时间设置为10秒; |
|
success: function(data) { |
|
if("200" != data.code) { |
|
mui.toast(data.msg); |
|
} |
|
}, |
|
error: function(xhr, type, errorThrown) {} |
|
}) |
|
} |
|
} |
|
|
|
//注册 |
|
function signUp(ajaxData) { |
|
// alert(JSON.stringify(ajaxData)) |
|
mui.ajax(loginAjaxJs.AJAX_SIGN_UP.getUrl, { |
|
headers: { |
|
"X-Requested-Token": app.getTokenStorage(), // token头部 |
|
"locale": app.getLanguageLocalStorage() // 语种头部 |
|
}, |
|
type: loginAjaxJs.AJAX_SIGN_UP.getType, //HTTP请求类型 |
|
data: ajaxData, |
|
dataType: 'json', //服务器返回json格式数据 |
|
timeout: 10000, //超时时间设置为10秒; |
|
success: function(data) { |
|
if("200" == data.code) { |
|
saveLocalStorage(data) //更新缓存 |
|
synchrodataFun(); // 其他页面同步数据 |
|
plus.webview.currentWebview().opener().hide(); |
|
setTimeout(function() { |
|
plus.webview.currentWebview().opener().close(); |
|
plus.nativeUI.closeWaiting(); |
|
mui.back(); |
|
}, 1000) |
|
} else { |
|
plus.nativeUI.closeWaiting(); |
|
mui.toast(data.msg); |
|
} |
|
}, |
|
error: function(xhr, type, errorThrown) { |
|
plus.nativeUI.closeWaiting(); |
|
} |
|
}) |
|
} |
|
|
|
/** |
|
* 数据同步 |
|
*/ |
|
function synchrodataFun() { |
|
//“我的”首页 |
|
var walletMyView = plus.webview.getWebviewById("mine/html/wallet_my.html"); |
|
walletMyView.evalJS("saveUserInfoData();"); |
|
// 钱包页面 |
|
var walletView = plus.webview.getWebviewById("html/wallet/html/wallet.html"); |
|
mui.fire(walletView, "walletSaveEvent"); |
|
// 币币页面 |
|
var CCTView = plus.webview.getWebviewById("html/cct/html/cct_index.html"); |
|
mui.fire(CCTView, "login"); |
|
} |
|
|
|
/** |
|
* 更新缓存 |
|
*/ |
|
function saveLocalStorage(data) { |
|
//用户数据加入缓存 |
|
app.setUserLocalStorage(data.data); |
|
// token数据加入缓存 |
|
app.setTokenStorage(data.data.token); |
|
} |
|
|
|
// 国际化统一方法 |
|
window.addEventListener('switchLangueData', function(e) { |
|
dataInfo.langue = langues[e.detail]; |
|
}); |
|
</script> |