import { chatUrl } from '../config/setting.js' import { getToken, getSycCache, getSign, } from '../config/cache.js' import request from '../config/request.js' import store from '../store/index.js' /** * 防抖动节流 * @param {Object} func * @param {Object} limit */ function throttle(func, limit) { console.log('节流请求1') let inThrottle = false; if (!inThrottle) { const args = arguments; const context = this; inThrottle = true; setTimeout(() => { console.log('结束请求') inThrottle = false; }, limit); console.log('节流请求2') return func.apply(context, args); } else { return false; } } /** * 时间格式化 * @param {Object} time */ function formatTime(time) { if (typeof time !== 'number' || time < 0) { return time } var hour = parseInt(time / 3600) time = time % 3600 var minute = parseInt(time / 60) time = time % 60 var second = time return ([hour, minute, second]).map(function(n) { n = n.toString() return n[1] ? n : '0' + n }).join(':') } /** * 坐标格式化 * @param {Object} longitude * @param {Object} latitude */ function formatLocation(longitude, latitude) { if (typeof longitude === 'string' && typeof latitude === 'string') { longitude = parseFloat(longitude) latitude = parseFloat(latitude) } longitude = longitude.toFixed(2) latitude = latitude.toFixed(2) return { longitude: longitude.toString().split('.'), latitude: latitude.toString().split('.') } } /** * 日期格式化 */ var dateUtils = { UNITS: { '年': 31557600000, '月': 2629800000, '天': 86400000, '小时': 3600000, '分钟': 60000, '秒': 1000 }, humanize: function(milliseconds) { var humanize = ''; for (var key in this.UNITS) { if (milliseconds >= this.UNITS[key]) { humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前'; break; } } return humanize || '刚刚'; }, format: function(dateStr) { var date = this.parse(dateStr) var diff = Date.now() - date.getTime(); if (diff < this.UNITS['天']) { return this.humanize(diff); } var _format = function(number) { return (number < 10 ? ('0' + number) : number); }; return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDate()) + '-' + _format(date.getHours()) + ':' + _format(date.getMinutes()); }, parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串,转化为一个Date对象 var a = str.split(/[^0-9]/); return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]); } }; /** * 获取当前日期 */ const getDate = (time = 0, type = 1) => { var date = time > 0 ? (new Date(time)) : (new Date()); var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); if (type == 1) { return year + '-' + (month < 10 ? '0' + month : month) + '-' + (day < 10 ? '0' + day : day); } else { return year + '年' + (month < 10 ? '0' + month : month) + '月' + (day < 10 ? '0' + day : day) + '日'; } } /** * 页面跳转 * @param {*} url * @param {*} type */ const gotoPage = (url, type = '') => { if (!url || url.length == 0) { return false; } if (url.substr(0, 1) !== '/') { url = '/' + url; } let p = url; if (url.indexOf('?') != -1) { // #ifdef APP-PLUS p = url.substr(0, url.indexOf('?')); // #endif } else { // #ifdef H5 if (url.search("app_id") == -1) { url = url; } // #endif } if (type == 'redirect') { uni.navigateTo({ url: url }) } if (type == 'reLaunch') { uni.reLaunch({ url: url }) } if (type == 'switchTab') { uni.switchTab({ url: url }) } // 普通页面 uni.navigateTo({ url: url }) } /** * 图片压缩预览 */ const getCompressImage = async (url, rate = '') => { if (rate) { return url + rate; } else { let config = await request.apiGetConfig(); if (typeof(config.img_compress) != 'undefined' && config.img_compress) { return url + config.img_compress; } } return url; } /** * 去0 */ const removeTrailingZeros = (str) => { return str ? (str + '').replace(/0+$/, '') : str; } export { formatTime, formatLocation, dateUtils, getDate, gotoPage, throttle, removeTrailingZeros, getCompressImage }