| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- 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, type = 0) {
- 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 (type == 1 ? [hour, minute, second] : [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,
- fail() {
- uni.switchTab({
- url: url
- })
- }
- })
- }
- /**
- * 页面跳转
- * @param {*} url
- * @param {*} type
- */
- const redirectTo = (url, type = '') => {
- console.log(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,
- redirectTo,
- throttle,
- removeTrailingZeros,
- getCompressImage
- }
|