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.
 
 
 
 

537 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>
html,body,#data-info{
width: 100%;
height: 100%;
}
#user-login {
margin: 0.25rem 0.25rem;
}
#user-login .app-input-row-list 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: absolute;
z-index: 999;
/* margin-top: 7rem; */
margin-left: 0.3rem;
margin-right: 0.3rem;
width: 100%;
}
#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;
}
@media only screen and (-webkit-device-pixel-ratio: 3) and (device-height: 812px) and (device-width: 375px) {
.mui-bar-nav~.mui-content {
position: absolute;
top: .6rem;
right: 15px;
left: 15px;
bottom: 0;
margin: 0;
padding: 0 !important;
overflow: scroll;
-webkit-overflow-scrolling: touch;
}
.mui-bar-nav~.mui-content .mui-slider.mui-fullscreen{
top: 0 !important;
}
::-webkit-scrollbar {
display: none;
}
.mui-bar-nav{
height: .6rem;
}
.mui-bar.mui-bar-nav {
top: 0 !important;
padding: 0;
margin: 0;
}
}
</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 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 class="login-btn">
<div class="mui-input-row mui-checkbox mui-left">
<label>
<p id="login-text-info" class="mui-text-left">{{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>
</div>
</div>
</div>
</div>
</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>