const strApiDoMain = `https://hyapi.${strCodeCcHy}.net` const strSite = 1 /** * api 接口 */ const apiGetUserInfo = '/api/user/info' //用户详情 const apiReGist = '/api/user/regist' //注册 const apiLoGout = '/api/user/logout'//退出 const apiLoginByEmail = '/api/user/login' //邮箱登录 const apiUserInfoSave = '/api/user/info/save' //修改密码 const apiPayPackage = '/api/pay/package' //获取支付套餐 const apiPayChannele = '/api/pay/channel' //获取支付渠道 const apiPayOrderCreate = '/api/pay/order/create' //创建支付订单 const apiPayOrderList = '/api/pay/order/list' //获取充值订单列表 const apiFundsTransactionsList = '/api/funds/transactions/list' //获取交易流水 const apiLoginByPhone = '' //手机登录 /** * layer 弹窗提示 * @param {string} strContent * @param int intTime */ function layerPopup(strContent, intTime) { layer.open({ shadeClose: false, skin: 'msg', content: strContent, time: intTime }); } /** * 将ArrayBuffer转换为Base64字符串 * @param buffer buffer * @returns {string} */ function arrayBufferToBase64(buffer) { let strBinary = ''; const bytes = new Uint8Array(buffer); for (let i = 0; i < bytes.byteLength; i++) { strBinary += String.fromCharCode(bytes[i]); } return window.btoa(strBinary); } /** * 终身会员倒计时 */ export function memberCountDown() { setInterval(() => { var djs_time = localStorage.getItem('djs_time') if (djs_time) { if (djs_time < 1 * 60 * 60) { djs_time = 23 * 60 * 60 } djs_time -= 1 } else { djs_time = 23 * 60 * 60 } localStorage.setItem('djs_time', djs_time) var djs_obj = Gettime.TimeFramtHms(djs_time * 1000) var djs_str = djs_obj.h + ':' + djs_obj.m + ':' + djs_obj.s $(".djs_time").text(djs_str) }, 1000) } /** * 提取url参数的方法 * @param {string} strCode * @returns {string} */ export function getValFromBrowserAddress(strCode) { var strQuery = window.location.search; var Params = new URLSearchParams(strQuery); var strSearchVal = Params.get(strCode); return strSearchVal; } const Gettime = { //数字补零 parseNumber(num) { return num < 10 ? "0" + num : num; }, //毫秒转 日时分秒 TimeFramtHms(time) { var day = parseInt(time / (60 * 60 * 24 * 1000)); var hour = parseInt(time / (60 * 60 * 1000) % 24); var min = parseInt(time / (60 * 1000) % 60); var sec = parseInt(time / 1000 % 60); let obj = { 'd': this.parseNumber(day), 'h': this.parseNumber(hour), 'm': this.parseNumber(min), 's': this.parseNumber(sec), } return obj // return `剩余${day}天${hour}时${min}分${sec}秒` } } //本地储存 const storageObj = { loginStatus: window.location.hostname + 'loginStatus', //登录状态 userInfo: window.location.hostname + 'userInfo', tokenKey: window.location.hostname + 'mi_login_token', //token 本地储存key isMember: window.location.hostname + 'isMember', //是否会员 本地储存key isBingPhoneReturn: window.location.hostname + 'isBingPhoneReturn', //是否绑定手机页面返回 } /** * 获取登录状态 */ function getLoginStatus() { return localStorage.getItem(storageObj.loginStatus) || false; } /** * 获取会员信息 */ function getUserInfo() { let userInfo = localStorage.getItem(storageObj.userInfo); // 如果 data 不为 null 且长度大于 0,解析 JSON,否则返回 null 或原始数据 return userInfo && userInfo.length > 0 ? JSON.parse(userInfo) : userInfo; } /** * fetchApi * @param {*} url * @param {*} data * @param {*} onSuccess * @param {*} onError * @param {*} loadingMessage */ const fetchApi = function (url, data = null, onSuccess = null, onError = null, loadingMessage = '正在加载...') { // 检测是否是 FormData,从而决定是否设置 'Content-Type' 为 'application/json' const isFormData = data instanceof FormData; const headers = new Headers({ 'Accept': "application/x.hubserver.admin+json", 'token': localStorage.getItem(storageObj.tokenKey) // 如果不是 FormData,设置 'Content-Type' 为 'application/json' }); if (!isFormData) { headers.append('Content-Type', 'application/json'); } let layerIndex = null; const options = { method: data ? 'POST' : 'GET', headers, }; if (data) { options.body = isFormData ? data : JSON.stringify(data); // 如果是 FormData,则直接设置为 body } // 显示加载提示 function showLoading() { if (loadingMessage) { layerIndex = layer.open({ type: 2, content: loadingMessage // 修改这里以使用正确的变量 }); } } // 关闭加载提示 function closeLoading() { if (layerIndex !== null) { layer.close(layerIndex); } } // 封装处理成功响应的逻辑 function handleSuccessResponse(res) { // 解密处理 // if (Configs.get('MIAO_API_ENCRYPT_STATUS') == '1') { // let returnENC = EncAndDec.decryptData(res, Configs.get('MIAO_API_ENCRYPT_KEY')); // res = JSON.parse(returnENC); // } if (res.code !== '000' && res.code != '015' && res.code != '014') { if (res.code != '014') { layerPopup(res.message, 3); } // 重新登录 if (res.code == '2000' || res.code == '995' || res.code == '996' || res.code == '992') { localStorage.setItem(storageObj.loginStatus, false) location.href = "/login" } } else if (onSuccess) { onSuccess(res); } } showLoading(); // 请求前显示加载提示 fetch(strApiDoMain + url, options) .then(response => { if (response.status == 204) { return null; } if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } // return response.text(); return response.json(); }) .then(data => { closeLoading(); // 请求成功,关闭加载提示 if (typeof onSuccess === 'function') { handleSuccessResponse(data); } }) .catch(error => { closeLoading(); // 请求失败,关闭加载提示 layerPopup(error, 3); console.error('Fetch error:', error); if (typeof onError === 'function') { onError(error); } }); } /** * * 访问失败的回调函数 * */ const onError = function (err) { console.log(err); } $(document).ready(function () { if (document.querySelector(".login-html-js")) { sessionStorage.setItem("fallbackPage", document.referrer); } if (document.querySelector(".register-html-js")) { 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) => { return true; 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') { 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) //$(".sc-public-popup").show() layerPopup('注册成功!', 3) console.log('注册成功!') let time = setTimeout(() => { console.log('注册成功!2') clearTimeout(time) console.log('注册成功3!3') let previousPage = document.referrer; // 获取上一个页面的 URL console.log(previousPage) if (previousPage.includes("login")) { // 如果上一个页面是登录页面,跳转到再上一个页面或指定页面 const fallbackPage = sessionStorage.getItem("fallbackPage") || "/"; window.location.href = fallbackPage;history.go(-2); // 返回再上一个页面 } else { 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() }); } if (document.querySelector(".info-html-js")) { $(function () { // 从绑定手机页面返回到个人中心 if (getValFromBrowserAddress('free_vip_data') && localStorage.getItem(storageObj.isBingPhoneReturn)) { $(".free_vip_data_tip").removeClass("yc") $(".tip_zdc_body").removeClass("yc") $(".free_vip_data_num").text(getValFromBrowserAddress('free_vip_data')) } //退出点击 $('.logout-url').click(function () { getLogout() }) }) // 登录状态 if (getLoginStatus()) { getUserInfo() } else { location.href = "/login.html" } //退出登录 function getLogout() { let postData = {} fetchApi(apiLoGout, postData, successFun, onError, false) function successFun(res) { if (res.code == '000') { $('.mm_id').text('') $('.mm_name').text('') $('.another_level_vip').hide() $('.another_level_vip1').hide() localStorage.setItem(storageObj.loginStatus, false) localStorage.setItem(storageObj.isMember, false) localStorage.setItem(storageObj.tokenKey, '') localStorage.setItem(storageObj.userInfo, '') layerPopup('退出成功', 3) location.href = "/" } else { layerPopup(res.msg, 3) } } } //用户详情 function getUserInfo() { let apiUrl = apiGetUserInfo + `?si_id=${strSite}` fetchApi(apiUrl, null, successFn, onError) function successFn(res) { if (res.code == '000') { var data = res.data $("._40cfe6e5fe").text(data.mu_nickname) $(".user_id").text(data.mu_id) if (data.mu_email_verified == 0) { $(".j-email-verify").show() $(".user_email").text(data.mu_email) } // if(data.mu_auth_phone == 0){ // $(".j-phone-verify").show() // } localStorage.setItem(storageObj.userInfo, JSON.stringify(data)) if (data.mu_is_vip) { // 会员 localStorage.setItem(storageObj.isMember, true) $('.user_is_type').text("VIP会员") $(".mu_vip_expired").show() $(".user_vip_day").text(data.expire_vip_day + '天') } else { // 不是会员 localStorage.setItem(storageObj.isMember, false) } } } } } if (document.querySelector(".setpwd-html-js")) { // 登录状态 if (getLoginStatus()) { //getUserInfo() } else { location.href = "/login.html" } const PASSWORD_MIN_LENGTH = 6; const PASSWORD_MAX_LENGTH = 20; // 去空格 const getValueAndTrim = (selector) => $(selector).length > 0 ? $(selector).val().replace(/\s*/g, "") : ""; // 当前密码验证 const isValidCurrentPassword = (password) => { if (password.length < PASSWORD_MIN_LENGTH) { $('.sc-current-password-error').text(`请输入密码`); 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 strPasswordVal = getValueAndTrim(".sc-password"); const strConfirmPasswordval = getValueAndTrim(".sc-confirm-password"); if (!validationFunc(value)) { $(errorSelector).text(value.length === 0 ? `请输入密码` : $(errorSelector).text()); if (type == 1) { // 检查确认密码是否匹配 if (strConfirmPasswordval.length > 0 && strConfirmPasswordval !== strPasswordVal) { $('.sc-confirm-password-error').text(`两次密码不匹配,请确认后重新输入`); } else { $('.sc-confirm-password-error').text(``); } } } else { $(errorSelector).text(''); if (type == 1) { // 检查确认密码是否匹配 if (strConfirmPasswordval.length > 0 && strConfirmPasswordval !== strPasswordVal) { $('.sc-confirm-password-error').text(`两次密码不匹配,请确认后重新输入`); } else { $('.sc-confirm-password-error').text(``); } } } }); }; // 0代表用户名 1密码 2手机号 1确认密码 3验证码 setupInputValidation(".sc-current-password", ".sc-current-password-error", isValidCurrentPassword, 0); 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 strCurrentPasswordVal = getValueAndTrim(".sc-current-password"); const strPasswordVal = getValueAndTrim(".sc-password"); const strConfirmPasswordval = getValueAndTrim(".sc-confirm-password"); if (isLogin == 1) { //修改密码 if (isValidCurrentPassword(strCurrentPasswordVal) && isValidPassword(strPasswordVal, strConfirmPasswordval)) { await handleSubmit(strCurrentPasswordVal, strPasswordVal, strConfirmPasswordval); } } }; const handleSubmit = async (strCurrentPasswordVal, strPasswordVal) => { let postData = { 'old_mu_pwd': strCurrentPasswordVal, 'mu_pwd': strPasswordVal, 'si_id': strSite, } fetchApi(apiUserInfoSave, postData, successFun, onError) function successFun(res) { if (res.code == '000') { layerPopup('修改成功', 3) let time = setTimeout(() => { clearTimeout(time) history.go(-1) }, 1500) // $(".sc-public-popup").show() // $('.sc-trends-text').text(`修改成功`); } } }; //修改密码 $('.sc-modify-btn').on('click', function () { submitForm(1); }); } if (document.querySelector(".bill-html-js")) { // 登录状态 if (getLoginStatus()) { //getUserInfo() } else { location.href = "/login.html" } const BillJs = function () { //支付订单列表 var page = 1 var allpage = 1 $('.load-morn').text('暂无') getOrderList(page) function getOrderList(page) { let apiUrl = apiFundsTransactionsList + '?limit=10' + '&page=' + page fetchApi(apiUrl, null, successFn, onError) function successFn(res) { if (res.code == '000') { allpage = res.data.total_page var data = res.data.item if (page >= res.data.total_page) { $('.load-morn').text('没有了') if (data.length == 0) { $('.load-morn').text('暂无') } } else { $('.load-morn').text('加载更多 ↓') } data.forEach((item) => { if (item.vo_status == 1) { item['vp_name'] = '已支付' } else if (item.vo_status == 1) { item['vp_name'] = '未支付' } else { item['vp_name'] = '已过期' } }) if (page == 1) { data = data } else { data = data.concat(data) } var $list = $(".detail-list"); setLunDate(data) // let data2 = [ // {vo_success_at:'2021-06888',created_at:'2021-06',vp_name:'VIP购买',vo_order_no:'171882135426094995HU',vo_price:'¥50.00'}, // {vo_success_at:'2021-07',created_at:'2021-08',vp_name:'VIP购买',vo_order_no:'171882135426094995HU',vo_price:'¥150.00'}, // {vo_success_at:'2021-08',created_at:'2021-09',vp_name:'VIP购买',vo_order_no:'171882135426094995HU',vo_price:'¥250.00'}, // {vo_success_at:'2021-07',created_at:'2021-10',vp_name:'VIP购买',vo_order_no:'171882135426094995HU',vo_price:'¥350.00'} // ] // setLunDate(data2) function setLunDate(data) { data.forEach((item) => { var html = '' html += `
`;
// html += `
//
//
//