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.
 
 
 
 

207 lines
7.6 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" />
<link rel="stylesheet" type="text/css" href="../../../css/c2c/base/dom-flex.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="../../js/base/rem-layout.js"></script>
<script src="../../js/my/my_ajax.js"></script>
<script type="text/javascript" src="../../js/base/regular.js"></script>
<script src="../../../lib/js/require2.1.11.js"></script>
</head>
<style>
#contents {
margin: 0.5rem;
}
.alert-text div {
margin-bottom: 0.08rem;
}
</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.UserSaveNickNameTitle}}</h1>
</header>
<div class="mui-content">
<div id="contents">
<input type="text" class="app-input app-input-darkly" v-model="dataParameter.nickname" :placeholder="userLocalStorage.nickname" />
<div class="app-text-color app-text-warning-color alert-text">
<div>{{langue.UserSaveNickNameAlert1}}</div>
<div>{{langue.UserSaveNickNameAlert2}}</div>
<div>{{langue.UserSaveNickNameAlert3}}</div>
</div>
<button id="save" class="app-btn-darkly">{{langue.NotarizeText2}}</button>
</div>
</div>
</div>
</body>
</html>
<script>
// 国际化
var langues = {
zh_CN: {
UserSaveNickNameTitle: "昵称设置",
UserSaveNickNameMsgRepetitionError: "昵称没有变化",
UserSaveNickNameMsgNullError: "昵称不能为空",
UserSaveNickNameMsgLengthError: "昵称长度请控制在 1-10 个字符",
UserSaveNickNameMsgError: "您输入的昵称不合法,请重新输入!",
UserSaveNickNameAlert1: "请输入10位字符的昵称",
UserSaveNickNameAlert2: "可以输入的字符包含:",
UserSaveNickNameAlert3: "中文、英文、数字、下划线",
NotarizeText2: "确定",
ShowWaiting: "等待中...",
AlterSuccessMsg: "修改成功!"
},
zh_HK: {
UserSaveNickNameTitle: "暱稱設置",
UserSaveNickNameMsgRepetitionError: "暱稱沒有變化",
UserSaveNickNameMsgNullError: "暱稱不能為空",
UserSaveNickNameMsgLengthError: "暱稱長度請控制在 1-10 個字符",
UserSaveNickNameMsgError: "您輸入的暱稱不合法,請重新輸入!",
UserSaveNickNameAlert1: "請輸入10位字符的暱稱",
UserSaveNickNameAlert2: "可以輸入的字符包含:",
UserSaveNickNameAlert3: "中文、英文、數字、下劃線",
NotarizeText2: "確定",
ShowWaiting: "等待中...",
AlterSuccessMsg: "修改成功!"
},
en_US: {
UserSaveNickNameTitle: "Nickname",
UserSaveNickNameMsgRepetitionError: "The nickname has not changed",
UserSaveNickNameMsgNullError: "The nickname cannot be empty",
UserSaveNickNameMsgLengthError: "Please control the nickname length to 1-10 characters",
UserSaveNickNameMsgError: "The nickname you entered is not valid, please re-enter!",
UserSaveNickNameAlert1: "Please enter a nickname of 10 characters",
UserSaveNickNameAlert2: "The characters that can be entered contain:",
UserSaveNickNameAlert3: "Chinese, English, Number, Underline",
NotarizeText2: "OK",
ShowWaiting: "Waiting...",
AlterSuccessMsg: "Modified successfully!"
}
}
</script>
<script>
var dataInfo = new Vue({
el: '#data-info',
data: {
langue: langues[app.getLanguageLocalStorage()],
userLocalStorage: app.getUserLocalStorage(), // 缓存的用户数据
dataParameter: {
nickname: "" // 新昵称
}
},
methods: {
trimeAll: function() {
this.dataParameter.nickname = this.dataParameter.nickname.replace(/^ +| +$/g, ''); // v-on:keyup="trimeAll"
}
}
})
mui.plusReady(function() {
var saveBtn = document.getElementById("save");
// 确认
saveBtn.addEventListener("tap", function() {
if(verifyNickName()) {
plus.nativeUI.showWaiting(dataInfo.langue.ShowWaiting);
saveBtn.setAttribute("disabled", true);
console.log(dataInfo.dataParameter.nickname)
mui.ajax(myAjaxJs.AJAX_UPDATE_NICK_NAME.getUrl, {
headers: {
"X-Requested-Token": app.getTokenStorage(), // token头部
"locale": app.getLanguageLocalStorage() // 语种头部
},
type: myAjaxJs.AJAX_UPDATE_NICK_NAME.getType, //HTTP请求类型
data: {
nickName: dataInfo.dataParameter.nickname
},
dataType: 'json', //服务器返回json格式数据
timeout: 10000, //超时时间设置为10秒;
success: function(data) {
if("200" == data.code) {
//用户数据加入缓存
var userData = app.getUserLocalStorage();
userData.nickName = dataInfo.dataParameter.nickname;
app.setUserLocalStorage(userData);
synchrodataFun();
plus.nativeUI.closeWaiting();
mui.back();
var center = plus.webview.currentWebview().opener();
center.evalJS("saveUserInfoData();");
plus.webview.currentWebview().close();
mui.toast(dataInfo.langue.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 {
saveBtn.removeAttribute("disabled", true);
plus.nativeUI.closeWaiting();
app.toast(data.msg);
}
},
error: function(xhr, type, errorThrown) {
saveBtn.removeAttribute("disabled", true);
plus.nativeUI.closeWaiting();
// app.toast(langue.AjaxError);
}
})
}
});
})
function verifyNickName() {
var nickNameNew = dataInfo.dataParameter.nickname == null ? "" : dataInfo.dataParameter.nickname; // 新昵称
var nickNameOld = dataInfo.userLocalStorage.nickname == null ? "" : dataInfo.userLocalStorage.nickname; // 旧昵称
var regular_emoji = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig;
var emoji_test = regular_emoji.test(nickNameNew);
if("" == nickNameNew) {
app.toast(dataInfo.langue.UserSaveNickNameMsgNullError);
} else if(nickNameNew == nickNameOld) {
app.toast(dataInfo.langue.UserSaveNickNameMsgRepetitionError);
} else if(nickNameNew.length < 1 || nickNameNew.length > 10) {
app.toast(dataInfo.langue.UserSaveNickNameMsgLengthError);
} else if(emoji_test) {
app.toast(dataInfo.langue.UserSaveNickNameMsgError);
} else if(!regular.chinese_english2.test(nickNameNew)) {
app.toast(dataInfo.langue.UserSaveNickNameMsgError);
} else {
return true;
}
return false;
}
/**
* 数据同步
*/
function synchrodataFun() {
//获取首页窗口,账户信息页窗口
var walletMyView = plus.webview.getWebviewById("mine/html/wallet_my.html");
var walletUserInfoListView = plus.webview.getWebviewById("mine/html/user/user_info_list.html");
walletMyView.evalJS("saveUserInfoData();");
walletUserInfoListView.evalJS("saveUserInfoData();");
}
// 国际化统一方法
window.addEventListener('switchLangueData', function(e) {
dataInfo.langue = langues[e.detail];
});
</script>