This commit is contained in:
make
2025-04-21 17:49:17 +08:00
parent 7ef217c1b9
commit 2337ab4f7d
942 changed files with 209166 additions and 0 deletions

View 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()
});
});