import store from '@/store/index.js' import config from '@/common/config' import api from '@/common/api.js' export default { isGoLogin(isBack = true) { if (!uni.getStorageSync('user_account')) { uni.navigateTo({ url: '/pages4/login/login?isBack=' + isBack }); return true; } else { return false } }, isLogin() { if (uni.getStorageSync('user_account')) { return true; } else { return false } }, isLogout() { // uni.removeStorageSync('user_account') // uni.removeStorageSync('token') }, //提示 showToast(title, icon = 'none', time = 2000) { return setTimeout(() => { uni.showToast({ title: title, icon: icon, duration: time }) }, 500) }, //图片路径填补 splitImgHost(url, scale = false, width = 250) { if (!url) { return '' } else if (url.indexOf("http") != -1 || url.indexOf("https") != -1 || url.indexOf("wxfile") != -1) { } else { url = config.BASE_IMG_URL + url } if (scale) { url = url + "?x-oss-process=image/resize,w_" + width } return url; }, setUuid(id) { uni.setStorageSync('uuid', id) }, getUuid() { return uni.getStorageSync('uuid') }, exit() { uni.removeStorageSync('user_account') uni.removeStorageSync('token') uni.removeStorageSync('h5_code') store.state.userInfo = null uni.reLaunch({ url: '/pages/index/index' }); }, /* 时间戳转换成日期 * @param timestamp * @returns {*} */ timestampToTime(timestamp, isDay = true, hasChinese, line) { if (!timestamp) { return '' } var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000 var Y = date.getFullYear() + (hasChinese ? '' : '-'); var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + (hasChinese ? '' : '-'); var D = date.getDate() < 10 ? '0' + date.getDate() + (hasChinese ? '' : ' ') : date.getDate() + (hasChinese ? '' : ' '); 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(); if (isDay) { if (hasChinese) { return Y + '年' + M + '月' + D + '日'; } else { return Y + M + D; } } if (line) { return h + m + s } if (hasChinese) { return Y + '年' + M + '月' + D + '日' + h + m + s; } else { return Y + M + D + h + m + s; } }, // 时间戳转换日期 formDate(time, formate = 'yyyy-mm-dd hh:mm:ss') { var padDate = function (va) { va = va < 10 ? '0' + va : va return va } if (time) { var value = new Date(time * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000 // var value = new Date(parseFloat(time)) var year = value.getFullYear() var month = padDate(value.getMonth() + 1) var day = padDate(value.getDate()) var hour = padDate(value.getHours()) var minutes = padDate(value.getMinutes()) var seconds = padDate(value.getSeconds()) let res = '' switch (formate) { case 'mm-dd': { res = month + '-' + day break } case 'yyyy-mm-dd': { res = year + '-' + month + '-' + day break } case 'yyyy-mm': { res = year + '-' + month break } case 'mm月dd日': { res = month + '月' + day + '日' break } case 'yyyy年mm月dd日': { res = year + '年' + month + '月' + day + '日' break } case 'yyyy年mm月': { res = year + '年' + month + '月' break } case 'hh:mm': { res = hour + ':' + minutes break } case 'yyyy-mm-dd hh:mm': { res = year + '-' + month + '-' + day + ' ' + hour + ':' + minutes break } case 'yyyy.mm.dd': res = year + '.' + month + '.' + day break case 'yyyy-mm-dd hh:mm:ss': default: { res = year + '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds break } } return res } return '--' }, //当前时间距离目标时间还有多久 GetRTime(EndTime, isDay = true) { var EndTime = EndTime //结束时间 var NowTime = new Date(); //当前时间 //后台给我的是10位 精确到秒的 所有下面我就除以了1000,不要小数点后面的 var t = EndTime - (NowTime.getTime() / 1000).toFixed(0); if (t <= 0) { return '已结束' } //如果后台给的是毫秒 上面不用除以1000 下面的计算时间也都要除以1000 这里我去掉1000了 var d = Math.floor(t / 60 / 60 / 24); //天 var d=Math.floor(t/1000/60/60/24) var h = Math.floor(t / 60 / 60 % 24); //时 var h=Math.floor(t/1000/60/60%24) var m = Math.floor(t / 60 % 60); //分 var m=Math.floor(t/1000/60%60) var s = Math.floor(t % 60); //秒 var s=Math.floor(t/1000%60) if (parseInt(d) < 10) { d = "0" + d; } if (parseInt(h) < 10) { h = "0" + h; } if (parseInt(m) < 10) { m = "0" + m; } if (parseInt(s) < 10) { s = "0" + s; } if (isDay) { return d; } return d + '天' + h + '小时' + m + '分' + s + '秒' }, TimeTotimestamp(date) { var date = date.replace(/-/g, '/'); var newDate = new Date(date) return (newDate.getTime() / 1000) }, timest() { var tmp = Date.parse(new Date()).toString(); tmp = tmp.substr(0, 10); return tmp; }, //压缩图片 imageInfos(url) { var self = this; return new Promise((resolve, reject) => { uni.getImageInfo({ src: url, success: async res => { let canvasWidth = res.width; //图片原始长宽 let canvasHeight = res.height; if (canvasWidth > 2000 || canvasHeight > 2000) { uni.compressImage({ src: url, quality: 75, width: '35%', height: '35%', success: async rest => { const waitUpload = await self.uploadFile(rest.tempFilePath, 0); console.log(waitUpload, 'waitUpload') resolve(waitUpload); } }); } else if (canvasWidth > 1000 || canvasHeight > 1000) { uni.compressImage({ src: url, quality: 75, width: '50%', height: '50%', success: async rest => { const waitUpload = await self.uploadFile(rest.tempFilePath, 0); console.log(waitUpload, 'waitUpload') resolve(waitUpload); } }); } else { const waitUpload = await self.uploadFile(url, 0); console.log(waitUpload, 'waitUpload') resolve(waitUpload); // console.log('无需压缩', url); // resolve(url); } } }); }); }, //上传图片 uploadFile(options, int) { return new Promise((resolve, reject) => { var self = this; if (options.indexOf('//tmp') === -1 && options.indexOf('//temp') === -1) { resolve(options) return } var data = { imageStatus: int }; api.aliyunpolicy(data).then(res => { var ossToken = res.data.data.resultContent; uni.uploadFile({ url: ossToken.host, name: 'file', filePath: options, fileType: 'image', header: { AuthorizationToken: 'WX ' + uni.getStorageSync('token') }, formData: { key: ossToken.dir, OSSAccessKeyId: ossToken.accessid, policy: ossToken.policy, Signature: ossToken.signature, // callback: ossToken.callback, success_action_status: 200 }, success: result => { // if (result.statusCode === 200) { resolve(ossToken.dir); // } else { // uni.showToast({ // title: '上传失败', // icon: 'none' // }); // return; // } }, fail: error => { uni.showToast({ title: '上传接口报错', icon: 'none' }); return; } }); }); }); }, getYears(strBirthday) { if (!strBirthday) { return '-'; } var returnAge; var strBirthdayArr = strBirthday.split('-'); var birthYear = strBirthdayArr[0]; var birthMonth = strBirthdayArr[1]; var birthDay = strBirthdayArr[2]; var d = new Date(); var nowYear = d.getFullYear(); var nowMonth = d.getMonth() + 1; var nowDay = d.getDate(); if (nowYear == birthYear) { returnAge = 0; //同年 则为0岁 } else { var ageDiff = nowYear - birthYear; //年之差 if (ageDiff > 0) { if (nowMonth == birthMonth) { var dayDiff = nowDay - birthDay; //日之差 if (dayDiff < 0) { returnAge = ageDiff - 1; } else { returnAge = ageDiff; } } else { var monthDiff = nowMonth - birthMonth; //月之差 if (monthDiff < 0) { returnAge = ageDiff - 1; } else { returnAge = ageDiff; } } } else { returnAge = -1; //返回-1 表示出生日期输入错误 晚于今天 } } return returnAge; //返回周岁年龄 }, getDate() { let nowDate = new Date() let date = { year: nowDate.getFullYear(), month: nowDate.getMonth() + 1, date: nowDate.getDate() } return date.year + '-' + date.month + '-' + date.date }, getZeroTime() { return Number(new Date(new Date().toLocaleDateString()).getTime() / 1000) }, setClock: function (time) { var that = this, sec = parseInt(time), clockCount = {}, strTimer = ""; clockCount = setInterval(function () { if (sec == 0) { $(".js-count-down").html("活动已经结束"); clearInterval(clockCount); return false; } strTimer = that.secondToDate(sec); $(".js-count-down").html(strTimer); sec--; }, 1000) }, secondToDate(result) { var h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600); var m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60)); var s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60)); if (h == 0) { result = m + ":" + s; } else { result = h + ':' + m + ":" + s } return result; }, /** * * @param {int} result * @returns {string} * @remard 单位S转小时分钟秒 */ secondToTime(result, Diszing = true) { var h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600); var m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60)); var s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60)); if (h == 0 && Diszing) { result = m + ":" + s; } else { result = h + ':' + m + ":" + s } return result; }, /** * @param {Object} length 长度 * 获取随机字符串 */ getRandomString(length) { var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; var result = ''; for (var i = length; i > 0; --i) result += str[Math.floor(Math.random() * str.length)]; return result; }, skipLogin(sign) { return api.skipLogin({ sign }).then(res => { if (res.data.code == 200) { uni.removeStorageSync('newUser_sc') uni.removeStorageSync('shareActivityCode') //信息完善,直接进入页面 uni.setStorageSync('user_account', res.data.data.user_account); uni.setStorageSync('token', res.data.data.token); store.dispatch('getUserInfo').finally(e => { return Promise.resolve() }) } else { uni.navigateTo({ url: '/pages4/login/login' }); return Promise.reject() } }) }, getCanvas(that, className = ".canvas") { return new Promise((resolve, reject) => { uni.getSystemInfo({ success: res => { const query = uni.createSelectorQuery().in(that) setTimeout(() => { query.select(className) .boundingClientRect() .exec((newRes) => { resolve({ systemInfo: res, newRes }) }); }, 1000) } }) }); }, }