import {sandBox} from './sandBox'; import config from './config'; // #ifdef H5 import wechat from './wechat'; // #endif export const is = { env() { return process.env.NODE_ENV }, has(val) { return !!val; }, isNum(val){ return val && /^[0-9]$/.test(val); }, not(val) { return !val; }, empty(val) { return val === ''; }, age(val){ return val && /^[0-9]{1,2}$/.test(val); }, equal(v1, v2) { return v1 === v2; }, qq(val) { return val && /^[1-9]\d{4,12}$/.test(val); }, name(val) { return val && /^[A-Za-z0-9\u4E00-\u9FA5_]{2,10}$/.test(val); }, mobile(val) { return val && /^(?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7(?:[01356789]\d{2}|4(?:0\d|1[0-2]|9\d))|9[01356789]\d{2}|6[2567]\d{2}|4[579]\d{2})\d{6}$/.test(val); }, fifteen(val) { return val && /^[\d\-_\+]{2,15}$/.test(val); }, email(val) { return val && /^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/.test(val); }, password(val) { return val && val.length && val.length > 5 && !/^\d+$/.test(val); }, bank(val) { if (!val) return false; val = String(val); var lastNum=val.substr(val.length-1,1); //取出最后一位(与luhm进行比较) var first15Num=val.substr(0,val.length-1); //前15或18位 var newArr=[]; for(var i=first15Num.length-1;i>-1;i--){ //前15或18位倒序存进数组 newArr.push(first15Num.substr(i,1)); } var arrJiShu=[]; //奇数位*2的积 <9 var arrJiShu2=[]; //奇数位*2的积 >9 var arrOuShu=[]; //偶数位数组 for(var j=0;j9 的分割之后的数组个位数 var jishu_child2=[];//奇数位*2 >9 的分割之后的数组十位数 for(var h=0;h9 的分割之后的数组个位数之和 var sumJiShuChild2=0; //奇数位*2 >9 的分割之后的数组十位数之和 var sumTotal; for(var m=0;m 0) { var url = url.split("?")[1]; function countInstances(mainStr, subStr) { var count = 0; var offset = 0; do { offset = mainStr.indexOf(subStr, offset); if(offset != -1) { count++; offset += subStr.length; } } while (offset != -1) return count; } var num = countInstances(url, '&') if(num == 0) { var a = url.split('&') k = '', v = '' k = url.substr(0, url.indexOf('=')) v = url.substr(url.indexOf('=') + 1) jsons[k] = v } else { var a = url.split('&') var jsons = {}, jsond = {}, k, v for(var i = 0; i < a.length; i++) { k = '', v = '' k = a[i].substr(0, a[i].indexOf('=')) v = a[i].substr(a[i].indexOf('=') + 1) jsons[k] = v } } return jsons } } // Url赋值 // 时间戳 const timeMap={ y: 31536000000, m: 2592000000, d: 86400000, h: 3600000, n: 60000, s: 1000 }; var version = config.VERSION || '1.0.1'; //缓存模块 时间可以是1y 1m 1d.. 还有毫秒数 export const cookieStorage={ set:function(key,value,time){ let data={}; data.data=value; let timestamp=""; time+=""; // 缓存时间设置 if(time){ var last=time.charAt(time.length-1); if(!is.isNum(last)){ timestamp=(time.slice(0,time.length-1))*(timeMap[last])+new Date().getTime(); } else { timestamp=time*1+new Date().getTime(); } } else{ timestamp=null; } data.expire=timestamp; data.version = version; wx.setStorageSync(key,data); }, get:function(key){ if(!wx.getStorageSync(key)){ return null; } let data=wx.getStorageSync(key), expireTime=data.expire; if (!data.version || data.version != version) { this.clear(key); return null } else if(expireTime){ if(expireTime>new Date().getTime()){ return data.data; }else{ this.clear(key); return null; } } else{ return data.data; } }, clear:function(key){ wx.removeStorageSync(key); } }; // 页面登陆 function pageLogin(url,callback){ var token=cookieStorage.get('user_token'); if(!token){ wx.redirectTo({ url: '/pages/user/register/register?url=' + url }) } else { callback && callback(token); } } //判断生日有礼 function isBirthday(){ let isLogin =!!cookieStorage.get("user_token"); let birthdayCache=cookieStorage.get("birthday_gift") || {}; let app = getApp(); return new Promise((reslove,reject)=>{ if( isLogin && !birthdayCache.flag){ let oauth=cookieStorage.get("user_token"); sandBox.post({ api:"api/home/gift_birthday", header:{ Authorization:oauth }, data:{} }).then(res =>{ res=res.data; if(res.status && res.data){ var data={}; data.flag=false; data.data=res.data; cookieStorage.set("birthday_gift",data); reslove(); } else{ reject(); } }) } else{ reject(); } }); } //自动登陆 function autoLogin(code,agent_code) { return new Promise((resolve, reject) => { sandBox.post({ api: 'api/oauth/miniprogram/login', data: { code: code, open_type:'miniprogram', shop_id: cookieStorage.get('shop_id') || '', agent_code: agent_code || '', clerk_id: cookieStorage.get('clerk_id') || '', agent_code_time: cookieStorage.get('agent_code_time') || '', shop_id_time: cookieStorage.get('shop_id_time') || '', }, }).then(res => { res = res.data; if (res.status) { if (res.data.access_token) { var access_token = res.data.token_type + ' ' + res.data.access_token; var expires_in = res.data.expires_in || 315360000; cookieStorage.set("user_token", access_token, expires_in); } } else { wx.showModal({ content: res.message || '请求失败', showCancel: false }) } resolve(res) }).catch(rej => { reject() wx.showModal({ content:'请求失败,请重试', showCancel: false, }) }) }) } // 接口获取更新后的用户信息 function getUpdateUserInfo(token){ return new Promise((resolve, reject) => { sandBox.get({ api: 'api/user', header: { Authorization: token } }).then(res => { cookieStorage.set('user_info', res.data); resolve(res.data); }).catch(err => reject(err)); }) } module.exports = { getUrl: getCurrentPageUrlWithArgs, pageLogin:pageLogin, isBirthday:isBirthday, is:is, config:config, cookieStorage:cookieStorage, // #ifdef H5 wechat:wechat, // #endif GetUrl:GetUrl, // #ifdef MP-WEIXIN autoLogin:autoLogin, // #endif getUpdateUserInfo: getUpdateUserInfo }