debug
This commit is contained in:
380
code/public/template/shikong/huiyuan/js/member/register.js
Normal file
380
code/public/template/shikong/huiyuan/js/member/register.js
Normal file
@@ -0,0 +1,380 @@
|
||||
import { layerPopup } from '../public/commonFun-news.js';
|
||||
import { fetchApi,onError,strSite} from '../public/api/fetch.js';
|
||||
import { storageObj } from '../public/localstorage.js';
|
||||
// import { checkoutHuiyuanTip } from '/assets/js/html.js?';
|
||||
import { apiGetUserInfo,apiLoginByPhone ,apiLoginByEmail,apiReGist} from '../public/api/index.js';
|
||||
$(document).ready(function() {
|
||||
const PHONE_LENGTH = 11;
|
||||
const PASSWORD_MIN_LENGTH = 6;
|
||||
const PASSWORD_MAX_LENGTH = 20;
|
||||
let intChangIndex = 0;
|
||||
const $getCodeButton = $('.get-v-code');
|
||||
|
||||
// 去空格
|
||||
const getValueAndTrim = (selector) => $(selector).length > 0 ? $(selector).val().replace(/\s*/g, "") : "";
|
||||
|
||||
// 用户名验证
|
||||
const isValidUsername = (username) => {
|
||||
if (username.length < PASSWORD_MIN_LENGTH || username.length > PASSWORD_MAX_LENGTH) {
|
||||
$('.sc-username-error').text(`必须由${PASSWORD_MIN_LENGTH}-${PASSWORD_MAX_LENGTH}位数字或者字母组成`);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
const validateEmail = (strAccount) => {
|
||||
let regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
|
||||
if (strAccount.length < PASSWORD_MIN_LENGTH ) {
|
||||
$('.sc-username-error').text(`请输入大于六位数的正确邮箱!`);
|
||||
return false;
|
||||
}else{
|
||||
if (regex.test(strAccount) || !strAccount) {
|
||||
return true;
|
||||
} else {
|
||||
$('.sc-username-error').text(`账号格式输入不正确,请重新输入`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 手机号验证
|
||||
const isValidPhone = (phone) => {
|
||||
if (phone.length < PHONE_LENGTH ) {
|
||||
$('.sc-phone-error').text(`请填写正确的手机号码`);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
//验证码验证
|
||||
const isValidCode = (code) => {
|
||||
if (code.length !== 6 ) {
|
||||
$('.sc-code-error').text(`短信验证码必须是6位数字`);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
// 密码验证
|
||||
const isValidPassword = (password, confirmPass = null) => {
|
||||
if (password.length < PASSWORD_MIN_LENGTH || password.length > PASSWORD_MAX_LENGTH) {
|
||||
$('.sc-password-error').text(`密码必须由${PASSWORD_MIN_LENGTH}-${PASSWORD_MAX_LENGTH}位数字或者字母组成`);
|
||||
return false;
|
||||
}
|
||||
if (confirmPass !== null && password !== confirmPass) {
|
||||
$('.sc-confirm-password-error').text(`两次密码不匹配,请确认后重新输入`);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
// 输入框监听事件
|
||||
const setupInputValidation = (selector, errorSelector, validationFunc,type) => {
|
||||
$(selector).bind('input propertychange', function(e) {
|
||||
const value = e.target.value.replace(/\s*/g, "");
|
||||
const strPasswordVal2 = getValueAndTrim(".sc-password");
|
||||
const strConfirmPasswordval2 = getValueAndTrim(".sc-confirm-password");
|
||||
if (!validationFunc(value)) {
|
||||
if(type == 0){
|
||||
$(errorSelector).text(value.length === 0 ? `请输入邮箱` : $(errorSelector).text());
|
||||
}else if (type == 2){
|
||||
$(errorSelector).text(value.length === 0 ? `请填写正确的手机号码` : $(errorSelector).text());
|
||||
}else if (type == 1){
|
||||
$(errorSelector).text(value.length === 0 ? `请输入密码` : $(errorSelector).text());
|
||||
}else{
|
||||
$(errorSelector).text(value.length === 0 ? `短信验证码必须是6位数字` : $(errorSelector).text());
|
||||
}
|
||||
if(type == 1){
|
||||
// 检查确认密码是否匹配
|
||||
if (strConfirmPasswordval2.length > 0 && strConfirmPasswordval2 !== strPasswordVal2) {
|
||||
$('.sc-confirm-password-error').text(`两次密码不匹配,请确认后重新输入`);
|
||||
} else {
|
||||
$('.sc-confirm-password-error').text(``);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
$(errorSelector).text('');
|
||||
if(type == 1){
|
||||
// 检查确认密码是否匹配
|
||||
if (strConfirmPasswordval2.length > 0 && strConfirmPasswordval2 !== strPasswordVal2) {
|
||||
$('.sc-confirm-password-error').text(`两次密码不匹配,请确认后重新输入`);
|
||||
} else {
|
||||
$('.sc-confirm-password-error').text(``);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
// 0代表用户名 1密码 2手机号 1确认密码 3验证码
|
||||
setupInputValidation(".sc-username", ".sc-username-error", isValidUsername,0);
|
||||
setupInputValidation(".sc-code", ".sc-code-error", isValidCode,3);
|
||||
setupInputValidation(".sc-phone", ".sc-phone-error", isValidPhone,2);
|
||||
setupInputValidation(".sc-password", ".sc-password-error", (val) => isValidPassword(val),1);
|
||||
setupInputValidation(".sc-confirm-password", ".sc-confirm-password-error", (val) => isValidPassword($('.sc-password').val(), val),1);
|
||||
|
||||
// 提交表单逻辑
|
||||
const submitForm = async (isLogin) => {
|
||||
const strUsernameVal = getValueAndTrim(".sc-username");
|
||||
const strPhoneVal = getValueAndTrim(".sc-phone");
|
||||
const strCodeVal = getValueAndTrim(".sc-code");
|
||||
const strPasswordVal = getValueAndTrim(".sc-password");
|
||||
const strConfirmPasswordval = getValueAndTrim(".sc-confirm-password");
|
||||
|
||||
if (isLogin ==1) {
|
||||
//登录
|
||||
if (intChangIndex === 0) {
|
||||
if (isValidUsername(strUsernameVal) && isValidPassword(strPasswordVal)) {
|
||||
await handleSubmit(strUsernameVal, strPasswordVal,isLogin);
|
||||
}
|
||||
} else {
|
||||
if (isValidPhone(strPhoneVal) && isValidPassword(strPasswordVal)) {
|
||||
await handleSubmit(strPhoneVal, strPasswordVal,isLogin);
|
||||
}
|
||||
}
|
||||
} else if (isLogin ==2) {
|
||||
//注册
|
||||
if (validateEmail(strUsernameVal) && isValidPassword(strPasswordVal, strConfirmPasswordval)) {
|
||||
await handleSubmit(strUsernameVal, strPasswordVal,isLogin,strConfirmPasswordval);
|
||||
}
|
||||
}else if (isLogin ==3){
|
||||
//忘记密码
|
||||
if (isValidPhone(strPhoneVal) && isValidCode(strCodeVal) && isValidPassword(strPasswordVal, strConfirmPasswordval)) {
|
||||
await handleSubmit(strPhoneVal,strPasswordVal,isLogin,strConfirmPasswordval,strCodeVal);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const handleSubmit = async (username, password,isLogin,confirmpassword,code,) => {
|
||||
if(isLogin == 1){
|
||||
if(intChangIndex == 0){
|
||||
userLogin(username, password)
|
||||
}else{
|
||||
phoneLogin(username, password)
|
||||
}
|
||||
}else if(isLogin == 2){
|
||||
userRegister(username, password)
|
||||
}else if(isLogin == 3){
|
||||
forgetPassWord(username, password,code)
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
/*
|
||||
mu_email string Y 用户邮箱
|
||||
mu_pwd string Y 用户密码
|
||||
si_id int Y 站点 ID
|
||||
*/
|
||||
//用户名登录
|
||||
function userLogin(username, password) {
|
||||
let postData = {
|
||||
'mu_email':username,
|
||||
'mu_pwd':password,
|
||||
'si_id':strSite,
|
||||
}
|
||||
fetchApi(apiLoginByEmail, postData,successFun, onError)
|
||||
function successFun(res){
|
||||
if (res.code == '000') {
|
||||
layerPopup(res.message, 3)
|
||||
localStorage.setItem(storageObj.tokenKey, res.data.token)
|
||||
localStorage.setItem(storageObj.loginStatus, true)
|
||||
localStorage.setItem(storageObj.isMember, res.data.mu_is_vip)
|
||||
localStorage.setItem(storageObj.userInfo, res.data)
|
||||
history.go(-1)
|
||||
// getInfo()
|
||||
} else if (res.code == '014') {
|
||||
// 需要重置密码
|
||||
strSetPwdKey = res.data.key
|
||||
localStorage.setItem(storageObj.loginStatus, true)
|
||||
layerPopup(res.message, 3)
|
||||
} else {
|
||||
layerPopup('出错啦!请重试', 3)
|
||||
}
|
||||
}
|
||||
}
|
||||
//手机登录
|
||||
function phoneLogin(username, password) {
|
||||
let postData = {
|
||||
'phone':username,
|
||||
'password':password,
|
||||
'si_id':strSite,
|
||||
}
|
||||
fetchApi(apiLoginByPhone, postData,successFun, onError)
|
||||
function successFun(res){
|
||||
if (res.code == '000') {
|
||||
layerPopup(res.message, 3)
|
||||
localStorage.setItem(storageObj.tokenKey, res.data.token)
|
||||
localStorage.setItem(storageObj.loginStatus, true)
|
||||
localStorage.setItem(storageObj.isMember, res.data.mu_is_vip)
|
||||
localStorage.setItem(storageObj.userInfo, res.data)
|
||||
// history.go(-1)
|
||||
// getInfo()
|
||||
}else if (res.code == '014') {
|
||||
// 需要重置密码
|
||||
strSetPwdKey = res.data.key
|
||||
localStorage.setItem(storageObj.loginStatus, true)
|
||||
layerPopup(res.message, 3)
|
||||
|
||||
} else {
|
||||
layerPopup('出错啦!请重试', 3)
|
||||
}
|
||||
}
|
||||
}
|
||||
//用户注册
|
||||
function userRegister(username, password) {
|
||||
let postData = {
|
||||
'mu_email':username,
|
||||
'mu_pwd':password,
|
||||
'si_id':strSite,
|
||||
mu_channel_code: localStorage.getItem(EncAndDec.encryptData('dlfx_channelcode')) || '',
|
||||
mu_channel_domain: localStorage.getItem(EncAndDec.encryptData('dlfx_sourceDomain')) || '',
|
||||
mu_referrer_id: localStorage.getItem(EncAndDec.encryptData('dlfx_muReferrerId')) || ''
|
||||
}
|
||||
fetchApi(apiReGist, postData,successFun, onError)
|
||||
function successFun(res){
|
||||
if (res.code == '000') {
|
||||
//$(".sc-public-popup").show()
|
||||
layerPopup('注册成功!' ,3)
|
||||
let time = setTimeout(()=>{
|
||||
clearTimeout(time)
|
||||
history.go(-1)
|
||||
},1500)
|
||||
}else{
|
||||
layerPopup('请求超时,请稍后再试', 3)
|
||||
}
|
||||
}
|
||||
}
|
||||
//忘记密码
|
||||
function forgetPassWord(username, password,code) {
|
||||
let postData = {
|
||||
'phone':username,
|
||||
'password':password,
|
||||
'code':code,
|
||||
|
||||
}
|
||||
fetchApi(apiLoginByPhone, postData,successFun, onError)
|
||||
function successFun(res){
|
||||
console.log(res.message)
|
||||
layerPopup(res.message, 3)
|
||||
console.log(res)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//用户详情
|
||||
function getInfo() {
|
||||
fetchApi(apiGetUserInfo, null,successFn, onError)
|
||||
function successFn(res){
|
||||
if (res.code == '000') {
|
||||
var data = res.data
|
||||
localStorage.setItem(storageObj.userInfo, JSON.stringify(data))
|
||||
let timestamp = Date.parse(new Date());
|
||||
if (data.mu_vip_expired != null) {
|
||||
localStorage.setItem(storageObj.isMember, true)
|
||||
let vip_timesStamp = new Date(data.mu_vip_expired).getTime()
|
||||
let seconds = 2 * 24 * 60 * 60 * 1000
|
||||
if (vip_timesStamp - timestamp > seconds) {
|
||||
console.log('大于2天')
|
||||
history.go(-1)
|
||||
} else {
|
||||
console.log('小于2天')
|
||||
if (vip_timesStamp < timestamp) {
|
||||
localStorage.setItem(storageObj.isMember, false)
|
||||
$('.charge-dialog').show()
|
||||
} else {
|
||||
$('.vip-dialog').show()
|
||||
$('.tip-date').text('你的会员即将过期,请及时续费,续费会员,纵想激情')
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
// $(".sc-vip_modal").show()
|
||||
// $('.yh-expire').show()
|
||||
localStorage.setItem(storageObj.isMember, false)
|
||||
}
|
||||
} else {
|
||||
layerPopup(res.msg, 3)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//登录
|
||||
$('.sc-login-btn').on('click', function() {
|
||||
submitForm(1);
|
||||
});
|
||||
//注册
|
||||
$('.sc-register-btn').on('click', function() {
|
||||
submitForm(2);
|
||||
});
|
||||
//忘记密码
|
||||
$('.sc-forget-btn').on('click', function() {
|
||||
submitForm(3);
|
||||
});
|
||||
// 登录页 用户登录/手机登录切换
|
||||
var a = $(".grid .login_item");
|
||||
var c = $(".grid .input-pu-lic")
|
||||
for (var i = 0; i < a.length; i++) {
|
||||
a[i].index = i;
|
||||
a[i].setAttribute("index", i);
|
||||
a[i].onclick = function () {
|
||||
for (var i = 0; i < a.length; i++) {
|
||||
a[i].className = 'undefined point login_item'
|
||||
c[i].className = 'align_center gap10 input-pu-lic ee58ce4adf';
|
||||
}
|
||||
this.className = '_2a4b899e3f point login_item';
|
||||
var index = this.getAttribute("index");
|
||||
intChangIndex = index
|
||||
c[index].className = 'fl align_center gap10 _53fc7f89df _17d18e62bf input-pu-lic';
|
||||
|
||||
$(".sc-username").val('')
|
||||
$(".sc-password").val('')
|
||||
$(".sc-phone").val('');
|
||||
$('.sc-username-error').text(`请输入邮箱`);
|
||||
$('.sc-password-error').text(`请输入密码`);
|
||||
$('.sc-phone-error').text(`请填写正确的手机号码`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 发送验证码
|
||||
*/
|
||||
const sendMsg = () => {
|
||||
$(".yzm-btn").on('click', function () {
|
||||
const intPhone = getValueAndTrim(".sc-phone");
|
||||
if (isValidPhone(intPhone)) {
|
||||
getSmsCode(intPhone);
|
||||
}else{
|
||||
// $(".sc-public-popup").show()
|
||||
// $(".sc-public-popup .sc-trends-text").text(`请填写正确的手机号码`);
|
||||
}
|
||||
});
|
||||
function getSmsCode(strPhone) {
|
||||
let postData = {
|
||||
'phone':strPhone,
|
||||
'type':'reg',
|
||||
}
|
||||
let timerCount = 60;
|
||||
let timerCctvQiDon = setInterval(() => {
|
||||
if (timerCount <= 0) {
|
||||
$getCodeButton.text('获取验证码');
|
||||
clearInterval(timerCctvQiDon);
|
||||
} else {
|
||||
timerCount--;
|
||||
$getCodeButton.text(`${timerCount} s`);
|
||||
}
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
}
|
||||
$(".sc-junp-vip-buy").on('click', function () {
|
||||
window.open('/taochang');
|
||||
});
|
||||
|
||||
$(function () {
|
||||
sendMsg()
|
||||
});
|
||||
|
||||
});
|
||||
Reference in New Issue
Block a user