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
5 years ago
|
<!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>
|