2021-10-21 09:21:59 +00:00
|
|
|
|
import {buriedPoint,reportBuriedPoint,zhuColor} from './publicAPI.js';
|
|
|
|
|
const tools = {
|
|
|
|
|
timer:'',
|
|
|
|
|
timerNot:'',
|
|
|
|
|
// 埋点倒计时
|
|
|
|
|
daoTime(){
|
|
|
|
|
let daoTime = uni.getStorageSync('daoTime')
|
|
|
|
|
if(daoTime==''){//初次判断倒计时是否为空
|
2021-12-20 08:03:34 +00:00
|
|
|
|
uni.setStorageSync('daoTime',60)//设置倒计时
|
2021-10-21 09:21:59 +00:00
|
|
|
|
daoTime = uni.getStorageSync('daoTime')
|
|
|
|
|
this.timer = setInterval(()=>{
|
|
|
|
|
uni.setStorageSync('daoTime',daoTime--)//设置倒计时
|
|
|
|
|
// console.log('埋点倒计时初次:',daoTime);
|
|
|
|
|
// console.log('埋点长度初次:',uni.getStorageSync('maiList').length);
|
2021-12-20 08:03:34 +00:00
|
|
|
|
if(uni.getStorageSync('daoTime')<=0 || uni.getStorageSync('maiList').length==5){
|
2021-10-21 09:21:59 +00:00
|
|
|
|
uni.removeStorageSync('daoTime')//清空倒计时
|
|
|
|
|
clearInterval(this.timer)//关闭倒计时
|
|
|
|
|
// console.log('上/报,埋点');
|
|
|
|
|
reportBuriedPoint(uni.getStorageSync('maiList'))//上报事件
|
|
|
|
|
uni.removeStorageSync('maiList')//清空上报参数
|
|
|
|
|
this.daoTime()//重新倒计时
|
|
|
|
|
}
|
|
|
|
|
},1000)
|
|
|
|
|
} else {//继续当前倒计时倒计
|
|
|
|
|
this.timer = setInterval(()=>{
|
|
|
|
|
uni.setStorageSync('daoTime',daoTime--)//设置倒计时
|
|
|
|
|
// console.log('埋点倒计时:',daoTime);
|
|
|
|
|
// console.log('埋点长度:',uni.getStorageSync('maiList').length);
|
2021-12-20 08:03:34 +00:00
|
|
|
|
if(uni.getStorageSync('daoTime')<=0 || uni.getStorageSync('maiList').length==5){
|
2021-10-21 09:21:59 +00:00
|
|
|
|
uni.removeStorageSync('daoTime')//清空倒计时
|
|
|
|
|
clearInterval(this.timer)//关闭倒计时
|
|
|
|
|
// console.log('上报,埋点');
|
|
|
|
|
reportBuriedPoint(uni.getStorageSync('maiList'))//上报事件
|
|
|
|
|
uni.removeStorageSync('maiList')//清空上报参数
|
|
|
|
|
this.daoTime()//重新倒计时
|
|
|
|
|
}
|
|
|
|
|
},1000)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
zhuColorT(){//调用主色调
|
|
|
|
|
zhuColor()
|
|
|
|
|
},
|
|
|
|
|
networkStatus(){//检查网络状态
|
|
|
|
|
uni.getNetworkType({
|
|
|
|
|
success: function (res) {
|
|
|
|
|
console.log('当前网络状态:',res.networkType);//none:当前无网络连接
|
|
|
|
|
if(res.networkType=='none'){
|
|
|
|
|
uni.setStorageSync('isNet',false)
|
|
|
|
|
} else {
|
|
|
|
|
uni.setStorageSync('isNet',true)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
closeTimer(){
|
|
|
|
|
clearInterval(this.timer)//关闭倒计时
|
|
|
|
|
console.log('倒计时清空了');
|
|
|
|
|
clearInterval(this.timerNot)//关闭倒计时
|
|
|
|
|
},
|
|
|
|
|
buriedPointAll(){//查询埋点类型事件
|
|
|
|
|
buriedPoint()
|
|
|
|
|
},
|
|
|
|
|
maiDian(data){//埋点事件
|
|
|
|
|
let maiList = uni.getStorageSync('maiList')
|
|
|
|
|
// console.log(maiList);
|
|
|
|
|
if(maiList==''){
|
|
|
|
|
maiList = [data]
|
|
|
|
|
} else maiList.push(data)
|
|
|
|
|
uni.setStorageSync('maiList',maiList)
|
|
|
|
|
},
|
|
|
|
|
weekDate(){//获取未来七天星期几,几号
|
|
|
|
|
let date = new Date()
|
|
|
|
|
let year = date.getFullYear()
|
|
|
|
|
let month = date.getMonth()+1
|
|
|
|
|
let day = date.getDate()
|
|
|
|
|
let nth = date.getDay()//星期几
|
|
|
|
|
// console.log(year,month,day);
|
|
|
|
|
let xingq = ['周一','周二','周三','周四','周五','周六','周日']
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
// 手机号验证
|
|
|
|
|
isPhone:function(phone){
|
|
|
|
|
// 手机号正则表达式
|
|
|
|
|
let reg_tel = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/;
|
|
|
|
|
if(!reg_tel.test(phone)){
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
return false
|
|
|
|
|
},
|
|
|
|
|
// 手机号中间四位用"****"带替
|
|
|
|
|
hideMPhone(phone){
|
|
|
|
|
return `${phone.substr(0, 3)}****${phone.substr(7)}`
|
|
|
|
|
},
|
|
|
|
|
// 只显示姓,名使用"*"代替
|
|
|
|
|
// hideName(name,num){//苹果手机运行不起
|
|
|
|
|
// let hname = ''
|
|
|
|
|
// let reg = /(?<=.)./g;
|
|
|
|
|
// if(num==1) hname = name.replace(reg, '*')
|
|
|
|
|
// if(num==2) hname = `${name.substr(0, 1)}****${name.substr(name.length-1)}`
|
|
|
|
|
// return hname
|
|
|
|
|
// },
|
|
|
|
|
hideName(name,num){
|
|
|
|
|
let hname = ''
|
|
|
|
|
hname = `${name.substr(0, 1)}****${name.substr(name.length-1)}`
|
|
|
|
|
return hname
|
|
|
|
|
},
|
|
|
|
|
// 时间戳===>日期
|
|
|
|
|
timestampToTime(timestamp) {
|
|
|
|
|
var date = timestamp.toString().length==13 ? new Date(timestamp*1) : new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
|
|
|
|
var Y = date.getFullYear();
|
|
|
|
|
var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1);
|
|
|
|
|
var D = date.getDate() < 10 ? '0'+date.getDate() : date.getDate();
|
|
|
|
|
var h = date.getHours() < 10 ? '0'+date.getHours() : date.getHours();
|
|
|
|
|
var m = date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes();
|
|
|
|
|
var s = date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds();
|
|
|
|
|
return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' +s;
|
|
|
|
|
},
|
|
|
|
|
// 日期===>时间戳
|
|
|
|
|
timeToTimestamp(time){
|
|
|
|
|
var date = new Date(time);
|
|
|
|
|
var timestamp = date.getTime();//精确到毫秒
|
|
|
|
|
return timestamp
|
|
|
|
|
// var date = new Date('2014-04-23 18:55:49:123');
|
|
|
|
|
// 有三种方式获取
|
|
|
|
|
// var time1 = date.getTime();//精确到毫秒
|
|
|
|
|
// var time2 = date.valueOf();//精确到毫秒
|
|
|
|
|
// var time3 = Date.parse(date);//只能精确到秒,毫秒用000替代
|
|
|
|
|
// console.log(time1);//1398250549123
|
|
|
|
|
// console.log(time2);//1398250549123
|
|
|
|
|
// console.log(time3);//1398250549000
|
|
|
|
|
},
|
|
|
|
|
// 随机数生成
|
|
|
|
|
randomStr(){
|
|
|
|
|
var strData = "";
|
|
|
|
|
//如果觉得12个数太少也可以多放点,将i<4修改即可
|
|
|
|
|
for(var i=0;i<4;i++){
|
|
|
|
|
var num = random(0,9); //数字
|
|
|
|
|
var upper = String.fromCharCode(random(65,90)); //大写字母
|
|
|
|
|
var lower = String.fromCharCode(random(97,122)); //小写字母
|
|
|
|
|
strData = strData+num+upper+lower; //将所有结果放进strData中
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
var str = "";
|
|
|
|
|
for (var i = 0; i < 4; i++) {
|
|
|
|
|
str += strData[random(0,strData.length-1)]; //在strData里面随机抽取四个数
|
|
|
|
|
}
|
|
|
|
|
return str;
|
|
|
|
|
},
|
|
|
|
|
// 金额输入框验证
|
|
|
|
|
checkPrice(number,zong){
|
|
|
|
|
let reg = /^[0-9]*$/;//数字正则表达式
|
|
|
|
|
let newObj = {}
|
|
|
|
|
zong = parseInt(zong).toString()//取小数点左边的整数
|
|
|
|
|
if(!reg.test(number)){//不是数字时
|
|
|
|
|
newObj = {
|
|
|
|
|
len:zong.length,//动态设置长度
|
|
|
|
|
val:zong//动态设置值正整数的总金额
|
|
|
|
|
}
|
|
|
|
|
} else {//是数字时
|
|
|
|
|
newObj = {
|
|
|
|
|
len:zong.length,
|
|
|
|
|
val:number//动态设置当前输入的值
|
|
|
|
|
}
|
|
|
|
|
if(number*1 > zong*1){//输入的金额大于总金额
|
|
|
|
|
newObj.val = zong//赋值总金额
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return newObj
|
|
|
|
|
},
|
|
|
|
|
// 提示方法
|
|
|
|
|
showToast: function(msg, icon,time) {
|
|
|
|
|
// 弹框图标:none默认无图标、loading、success
|
|
|
|
|
var newIncon = 'none';
|
|
|
|
|
if (icon) {newIncon = icon;}
|
|
|
|
|
// 弹框显示时间:默认2秒
|
|
|
|
|
var newTime = 2000
|
|
|
|
|
if (time) {newTime = time;}
|
|
|
|
|
return uni.showToast({
|
|
|
|
|
title: msg,
|
|
|
|
|
icon: newIncon,
|
|
|
|
|
duration:newTime
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
formatDuring: function(mss) {
|
|
|
|
|
// let dangTime = Math.round(new Date()/1000)//获取当前时间戳
|
|
|
|
|
var hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
|
|
|
|
var minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60));
|
|
|
|
|
var seconds = (mss % (1000 * 60)) / 1000;
|
|
|
|
|
hours = hours < 10 ? ('0' + hours) : hours;
|
|
|
|
|
minutes = minutes < 10 ? ('0' + minutes) : minutes;
|
|
|
|
|
seconds = seconds < 10 && seconds >= 1 ? ('0' + seconds) : seconds;
|
|
|
|
|
return hours + ' : ' + minutes + ' : ' + seconds;
|
|
|
|
|
},
|
|
|
|
|
escape2Html(str) {//富文本
|
|
|
|
|
var arrEntities = { 'lt': '<', 'gt': '>', 'nbsp': ' ', 'amp': '&', 'quot': '"' };
|
|
|
|
|
return str.replace(/&(lt|gt|nbsp|amp|quot|src);/ig, function (all, t) { return arrEntities[t]; }).replace('<section', '<div').replace(/\<img/g, '<img @tap="pre" style="max-width:100%;height:auto" ').replace(/src=\"/g,'src="https://oss.hmzfyy.cn');
|
|
|
|
|
},
|
|
|
|
|
setTime(url,title,time){
|
|
|
|
|
// console.log(url,title,time);
|
|
|
|
|
if(url=='' && title==''){
|
|
|
|
|
setTimeout(function(){uni.navigateBack({delta:1,})},time)
|
|
|
|
|
} else if(title==''){
|
|
|
|
|
setTimeout(function(){
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
url:url
|
|
|
|
|
})
|
|
|
|
|
},time)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
updaX(){//检测小程序版本以及更新小程序
|
|
|
|
|
// 获取小程序的运行环境、版本号、appId 注意:线上小程序版本号仅支持在正式版小程序中获取,开发版和体验版中无法获取。
|
|
|
|
|
const accountInfo = wx.getAccountInfoSync();//使用详情:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/account-info/wx.getAccountInfoSync.html
|
|
|
|
|
var version = accountInfo.miniProgram.version
|
|
|
|
|
console.log(version);
|
|
|
|
|
// 检测小程序的更新
|
|
|
|
|
const updateManager = wx.getUpdateManager()//以下使用详情:https://developers.weixin.qq.com/miniprogram/dev/api/base/update/UpdateManager.html#%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81
|
|
|
|
|
updateManager.onCheckForUpdate(function (res) {
|
|
|
|
|
// 请求完新版本信息的回调
|
|
|
|
|
// console.log('检测是否有更新:',res.hasUpdate)
|
|
|
|
|
})
|
|
|
|
|
updateManager.onUpdateReady(function (res) {
|
|
|
|
|
wx.showModal({
|
|
|
|
|
title: '恒美植发客服代表提醒您',
|
|
|
|
|
content: '新版本已经准备就绪,是否重启应用',
|
|
|
|
|
success(res) {
|
|
|
|
|
if (res.confirm) {
|
|
|
|
|
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
|
|
|
|
|
updateManager.applyUpdate()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
updateManager.onUpdateFailed(function (res) {
|
|
|
|
|
// 新版本下载失败
|
|
|
|
|
// console.log('新版本下载失败:',res);
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
clearClog(){//去除某环境下的所有console.log()//输出信息
|
|
|
|
|
// uniapp性能优化
|
|
|
|
|
// #ifdef APP-PLUS
|
|
|
|
|
if(uni.getSystemInfoSync().platform != "devtool"){//devtools:开发版 值域为:ios、android、mac(3.1.10+)、windows(3.1.10+)、linux(3.1.10+)
|
|
|
|
|
console.log = () =>{}
|
|
|
|
|
}
|
|
|
|
|
// #endif
|
|
|
|
|
// 微信小程序原生API性能优化
|
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
|
let hInfo = wx.getAccountInfoSync();
|
|
|
|
|
// console.log(hInfo.envVersion);//develop:开发版 trial:体验版 release:正式版
|
|
|
|
|
if(hInfo.miniProgram.envVersion != "develop"){
|
|
|
|
|
console.log = () =>{}
|
|
|
|
|
}
|
|
|
|
|
// #endif
|
|
|
|
|
},
|
|
|
|
|
overdue(){//查询过期时间和是否有token,并调用登录事件
|
|
|
|
|
var date = new Date();
|
|
|
|
|
var timestamp = date.getTime();//精确到毫秒
|
|
|
|
|
if((uni.getStorageSync('expire')*1000) - 10000 < timestamp){
|
|
|
|
|
this.loginEv()
|
|
|
|
|
} else if(uni.getStorageSync('token')==''){
|
|
|
|
|
this.loginEv()
|
|
|
|
|
} else if(uni.getStorageSync('is_active')=='' || uni.getStorageSync('is_active')==0){
|
|
|
|
|
this.loginEv()
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
loginEv(){//执行登录事件
|
|
|
|
|
uni.login({
|
|
|
|
|
provider: 'weixin',
|
|
|
|
|
success: function(res) {
|
|
|
|
|
if (res.code) {
|
|
|
|
|
let code = res.code;
|
|
|
|
|
let obj = uni.getStorageSync('params')
|
|
|
|
|
var params = {
|
|
|
|
|
invite_code:'',
|
|
|
|
|
code:code,
|
|
|
|
|
nickname: obj.nickname,
|
|
|
|
|
avatar: obj.avatarUrl,
|
|
|
|
|
country: obj.country,
|
|
|
|
|
province: obj.province,
|
|
|
|
|
city: obj.city,
|
|
|
|
|
gender: obj.gender,
|
|
|
|
|
language:obj.language
|
|
|
|
|
}
|
|
|
|
|
uni.request({
|
2021-11-06 08:32:54 +00:00
|
|
|
|
url: `https://hm.hmzfyy.cn/api/user/login`,
|
2021-10-21 09:21:59 +00:00
|
|
|
|
method: 'post',
|
|
|
|
|
data: params,
|
|
|
|
|
header: {
|
|
|
|
|
'Content-Type': 'application/json; charset=UTF-8',
|
|
|
|
|
// "content-type": "application/x-www-form-urlencoded;charset=UTF-8",
|
|
|
|
|
'Authorization': 'Bearer '+uni.getStorageSync('token') || ''
|
|
|
|
|
},
|
|
|
|
|
success: res => {
|
|
|
|
|
if(res.data.data.token!=''){
|
|
|
|
|
uni.removeStorageSync('ninvite_code')
|
|
|
|
|
uni.setStorageSync('token',res.data.data.token)//缓存token
|
|
|
|
|
uni.setStorageSync('openid',res.data.data.openid)//缓存Openid
|
|
|
|
|
uni.setStorageSync('expire',res.data.data.expire)//缓存失效时间(时间戳格式)
|
|
|
|
|
uni.setStorageSync('is_active',res.data.data.is_active)//是否第一次授权
|
2021-11-05 08:49:56 +00:00
|
|
|
|
uni.setStorageSync('phone_active',res.data.data.phone_active)//是否绑定手机号
|
2021-10-21 09:21:59 +00:00
|
|
|
|
uni.setStorageSync('userId',res.data.data.account_id)
|
|
|
|
|
uni.setStorageSync('invite_code',res.data.data.invite_code)
|
|
|
|
|
// console.log('is_active',uni.getStorageSync('is_active'));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
returnAuth(){//是否第一次授权
|
|
|
|
|
let auth = false
|
2021-11-05 08:49:56 +00:00
|
|
|
|
if(uni.getStorageSync('is_active')==0 || uni.getStorageSync('phone_active')==0) {
|
|
|
|
|
// this.showToast('您目前是游客,请授权登录')
|
|
|
|
|
// setTimeout(()=>{
|
2021-10-21 09:21:59 +00:00
|
|
|
|
uni.navigateTo({url:'/pages/login/login'})
|
2021-11-05 08:49:56 +00:00
|
|
|
|
// },1500)
|
2021-10-21 09:21:59 +00:00
|
|
|
|
auth = true
|
|
|
|
|
}
|
|
|
|
|
return auth
|
|
|
|
|
},
|
|
|
|
|
isLogin(){//是否已经登录
|
2021-11-05 08:49:56 +00:00
|
|
|
|
if(uni.getStorageSync('is_active')!='' && uni.getStorageSync('is_active') !=0){
|
2021-10-21 09:21:59 +00:00
|
|
|
|
this.overdue()
|
|
|
|
|
}
|
2021-12-20 08:03:34 +00:00
|
|
|
|
},
|
|
|
|
|
isVedio(){//是否显示视频内容
|
|
|
|
|
uni.request({
|
|
|
|
|
url: `https://hm.hmzfyy.cn/api/index/base-config`,
|
|
|
|
|
method: 'get',
|
|
|
|
|
header: {
|
|
|
|
|
'Content-Type': 'application/json; charset=UTF-8',
|
|
|
|
|
// "content-type": "application/x-www-form-urlencoded;charset=UTF-8",
|
|
|
|
|
'Authorization': 'Bearer '+uni.getStorageSync('token') || ''
|
|
|
|
|
},
|
|
|
|
|
success: res => {
|
|
|
|
|
// console.log(res);
|
|
|
|
|
if(res.data.code==0){
|
|
|
|
|
if(res.data.data.v==0) {
|
|
|
|
|
uni.setStorageSync('isVedio',false);
|
|
|
|
|
} else {
|
|
|
|
|
uni.setStorageSync('isVedio',true);
|
|
|
|
|
}
|
|
|
|
|
// console.log(uni.getStorageSync('isVedio/'));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
2021-10-21 09:21:59 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export default {
|
|
|
|
|
tools
|
|
|
|
|
}
|