| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424 | 
							- // import { whoami } from '../api/auth'
 
- import { USER_ID, T_STORAGE_KEY, USER_INFO } from '../constant'
 
- // import { isNull } from 'lodash-es'
 
- /**
 
-  * @description 解决小数计算精度问题(en,你应该使用big.js)
 
-  * @param {Number, String} data 数字
 
-  * @param {Number} accuracy 保留几位小数
 
-  * @returns
 
-  */
 
- export const fomartNumber = (data, accuracy = 2) => {
 
- 	const temp = data + ''
 
- 	if (temp.includes('.')) {
 
- 		return (data * 1).toFixed(accuracy)
 
- 	}
 
- 	return data
 
- }
 
- /**
 
-  * @description 批量清除缓存
 
-  * @param {String[]} cacheArr 要清除的缓存string数组
 
-  */
 
- export const removeCache = (cacheArr) => {
 
- 	if (!Array.isArray(cacheArr)) {
 
- 		return
 
- 	}
 
- 	for (const item of cacheArr) {
 
- 		uni.removeStorageSync(item)
 
- 	}
 
- }
 
- /**
 
-  * 检测登录是否有效
 
-  */
 
- export const checkWhoami = () => {
 
- 	new Promise(async (resolve, reject) => {
 
- 		const userId = getUserId()
 
- 		const res = await whoami(userId)
 
- 		if (res.errno !== 0) {
 
- 			uni.navigateTo({
 
- 				url: '/pages/login/login'
 
- 			})
 
- 		}
 
- 	})
 
- }
 
- /**
 
-  * 获取用户userid
 
-  * @returns
 
-  */
 
- export const getUserId = () => {
 
- 	const userId = uni.getStorageSync(USER_ID)
 
- 	if (!userId) {
 
- 		// uni.showToast({
 
- 		//   title: "登录已失效,请重新登录",
 
- 		//   duration: 2000,
 
- 		//   icon: "none",
 
- 		// });
 
- 		// uni.navigateTo({
 
- 		//   url: "/pages/login/login",
 
- 		// });
 
- 		uni.showModal({
 
- 			title: '提示',
 
- 			content: '您还未登录,是否去登录?',
 
- 			success(res) {
 
- 				if (res.confirm) {
 
- 					uni.navigateTo({
 
- 						url: '/pages/login/login'
 
- 					})
 
- 				} else if (res.cancel) {
 
- 					// uni.navigateBack();
 
- 				}
 
- 			}
 
- 		})
 
- 		return
 
- 	}
 
- 	return userId
 
- }
 
- /**
 
-  * 获取新团蜂用户id
 
-  * @returns
 
-  */
 
- export const getStorageUserId = () => {
 
- 	const userInfo = uni.getStorageSync(T_STORAGE_KEY) || {}
 
- 	if (!userInfo.buyerUserId) {
 
- 		uni.showModal({
 
- 			title: '提示',
 
- 			content: '您还未登录,是否去登录?',
 
- 			success(res) {
 
- 				if (res.confirm) {
 
- 					uni.navigateTo({
 
- 						url: '/pages/login/login'
 
- 					})
 
- 				} else if (res.cancel) {
 
- 					// uni.navigateBack();
 
- 				}
 
- 			}
 
- 		})
 
- 		return
 
- 	}
 
- 	return userInfo.buyerUserId
 
- }
 
- /**
 
-  * 获取新团蜂token
 
-  * @returns
 
-  */
 
- export const getStorageKeyToken = () => {
 
- 	const userInfo = uni.getStorageSync(USER_INFO)
 
- 	if (!userInfo || !userInfo.userId) {
 
- 		uni.showModal({
 
- 			title: '提示',
 
- 			content: '您还未登录,是否去登录?',
 
- 			success(res) {
 
- 				if (res.confirm) {
 
- 					uni.navigateTo({
 
- 						url: '/pages/login/login'
 
- 					})
 
- 				} else if (res.cancel) {
 
- 					// uni.navigateBack();
 
- 				}
 
- 			}
 
- 		})
 
- 		return
 
- 	}
 
- 	if (!userInfo || !userInfo.phone) {
 
- 		uni.showModal({
 
- 			title: '提示',
 
- 			content: '未绑定手机号码,是否去绑定?',
 
- 			success(res) {
 
- 				if (res.confirm) {
 
- 					uni.switchTab({
 
- 						url: '/pages/index/index'
 
- 					})
 
- 				} else if (res.cancel) {
 
- 					// uni.navigateBack();
 
- 				}
 
- 			}
 
- 		})
 
- 		return
 
- 	}
 
- 	const storageKey = uni.getStorageSync(T_STORAGE_KEY)
 
- 	if (!storageKey || !storageKey.token) {
 
- 		uni.showModal({
 
- 			title: '提示',
 
- 			content: '系统出错,请重新登陆',
 
- 			success(res) {
 
- 				if (res.confirm) {
 
- 					uni.navigateTo({
 
- 						url: '/pages/login/login'
 
- 					})
 
- 				} else if (res.cancel) {
 
- 					// uni.navigateBack();
 
- 				}
 
- 			}
 
- 		})
 
- 		return
 
- 	}
 
- 	return storageKey.token
 
- }
 
- /**
 
-  * 跳转到新团蜂入驻端项目
 
-  * @returns
 
-  */
 
- export const jumpToOtherProject = (url, cb = () => { }) => {
 
- 	// #ifdef H5
 
- 	window.location.href = url
 
- 	// #endif
 
- 	// #ifdef APP
 
- 	plus.runtime.openURL(url, cb)
 
- 	// #endif
 
- 	// #ifdef MP
 
- 	uni.redirectTo({
 
- 		url: `/user/view?target=${url}`
 
- 	})
 
- 	// #endif
 
- }
 
- /**
 
-  * 点击复制
 
-  * @param {*} text
 
-  */
 
- export const useCopy = (text) => {
 
- 	const input = document.createElement('input')
 
- 	input.value = text
 
- 	document.body.appendChild(input)
 
- 	input.select()
 
- 	document.execCommand('Copy')
 
- 	document.body.removeChild(input)
 
- 	uni.showToast({
 
- 		title: '单号复制成功'
 
- 	})
 
- }
 
- /**
 
-  * @description 防抖函数
 
-  * @param {*} func
 
-  * @param {*} wait
 
-  * @param {*} immediate
 
-  * @returns
 
-  */
 
- export function handleDebounce(func, wait, immediate) {
 
- 	let timeout
 
- 	return function () {
 
- 		const context = this
 
- 		const args = arguments
 
- 		if (timeout) clearTimeout(timeout)
 
- 		if (immediate) {
 
- 			var callNow = !timeout
 
- 			timeout = setTimeout(() => {
 
- 				timeout = null
 
- 			}, wait)
 
- 			if (callNow) func.apply(context, args)
 
- 		} else {
 
- 			timeout = setTimeout(function () {
 
- 				func.apply(context, args)
 
- 			}, wait)
 
- 		}
 
- 	}
 
- }
 
- export function getRandom(min, max) {
 
- 	return Math.floor(Math.random() * (max - min) + min)
 
- }
 
- export const randomRGB = () => {
 
- 	const r = Math.floor(Math.random() * 255)
 
- 	const g = Math.floor(Math.random() * 255)
 
- 	const b = Math.floor(Math.random() * 255)
 
- 	return `rgb(${r}, ${g}, ${b})`
 
- }
 
- export const timestampToTime = (timestamp) => {
 
- 	// 时间戳为10位需*1000,时间戳为13位不需乘1000
 
- 	// var date = new Date(timestamp * 1000);
 
- 	var date = new Date(timestamp)
 
- 	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() + ':'
 
- 	var m = date.getMinutes() + ':'
 
- 	var s = date.getSeconds()
 
- 	return Y + M + D + h + m + s
 
- 	// console.log(timestampToTime(1670145353)); //2022-12-04 17:15:53
 
- }
 
- /**
 
-  * 时间格式化
 
-  */
 
- export const timeFormatting = (timeDifference) => {
 
- 	// 天数
 
- 	const day = Math.floor(timeDifference / 3600 / 24)
 
- 	// 小时
 
- 	const hr = Math.floor(timeDifference / 3600 % 24)
 
- 	// 分钟
 
- 	const min = Math.floor(timeDifference / 60 % 60)
 
- 	// 秒
 
- 	const sec = Math.floor(timeDifference % 60)
 
- 	return {
 
- 		day: day < 10 ? '0' + day : day,
 
- 		hour: hr < 10 ? '0' + hr : hr,
 
- 		min: min < 10 ? '0' + min : min,
 
- 		sec: sec < 10 ? '0' + sec : sec
 
- 	}
 
- }
 
- export const throttle = (fn, interval) => {
 
- 	let lastTime = 0
 
- 	const _throttle = function (...args) {
 
- 		const nowTime = new Date().getTime()
 
- 		const remainTime = interval - (nowTime - lastTime)
 
- 		if (remainTime <= 0) {
 
- 			fn.apply(this, args)
 
- 			lastTime = nowTime
 
- 		}
 
- 	}
 
- 	return _throttle
 
- }
 
- // 获取 微信 code
 
- // #ifdef H5
 
- export const getUrlCode = () => {
 
- 	var url = location.search
 
- 	var theRequest = new Object()
 
- 	if (url.indexOf('?') != -1) {
 
- 		var str = url.substr(1)
 
- 		var strs = str.split('&')
 
- 		for (var i = 0; i < strs.length; i++) {
 
- 			theRequest[strs[i].split('=')[0]] = strs[i].split('=')[1]
 
- 		}
 
- 	}
 
- 	console.log('code结果', theRequest)
 
- 	return theRequest
 
- }
 
- // #endif
 
- // 判断当前是否处于微信环境
 
- export const isInWx = () => {
 
- 	// #ifdef H5
 
- 	var ua = navigator.userAgent.toLowerCase()
 
- 	return ua.match(/MicroMessenger/i) == 'micromessenger'
 
- 	// #endif
 
- 	// #ifdef APP
 
- 	return false
 
- 	// #endif
 
- }
 
- /**
 
-  * 大数转小数 12345.123 = 1.23万
 
-  */
 
- export const convertToDecimal = (number) => {
 
- 	if (!number || isNull(number)) return 0
 
- 	if (number < 10000) {
 
- 		return number.toString()
 
- 	} else if (number < 100000000) {
 
- 		const decimalNumber = (number / 10000).toFixed(2)
 
- 		return decimalNumber + '万'
 
- 	}
 
- 	const decimalNumber = (number / 100000000).toFixed(2)
 
- 	return decimalNumber + '亿'
 
- }
 
- export const isSubarray = (arr, subarr) => {
 
- 	const mainSet = new Set(arr)
 
- 	for (const element of subarr) {
 
- 		if (!mainSet.has(element)) {
 
- 			return false
 
- 		}
 
- 	}
 
- 	return true
 
- }
 
- export const tradeOrderNo = function () {
 
- 	const now = new Date()
 
- 	const year = now.getFullYear()
 
- 	let month = now.getMonth() + 1
 
- 	let day = now.getDate()
 
- 	let hour = now.getHours()
 
- 	let minutes = now.getMinutes()
 
- 	let seconds = now.getSeconds()
 
- 	String(month).length < 2 ? month = Number('0' + month) : month
 
- 	String(day).length < 2 ? day = Number('0' + day) : day
 
- 	String(hour).length < 2 ? hour = Number('0' + hour) : hour
 
- 	String(minutes).length < 2 ? minutes = Number('0' + minutes) : minutes
 
- 	String(seconds).length < 2 ? seconds = Number('0' + seconds) : seconds
 
- 	const yyyyMMddHHmmss = `${year}${month}${day}${hour}${minutes}${seconds}`
 
- 	return yyyyMMddHHmmss + Math.random().toString(36)
 
- 		.substr(2, 9)
 
- }
 
- /**
 
-  * 判断当前H5是否在webview中打开
 
-  */
 
- export const isH5InWebview = () => {
 
- 	const ua = navigator.userAgent.toLowerCase()
 
- 	return typeof ua === 'string' && (ua.includes('webview') || ua.includes('miniprogramhtmlwebview'))
 
- }
 
- /**
 
-  * 判断当前资源是否是视频格式
 
-  * @param {string} url
 
-  * @returns {boolean}
 
-  */
 
- // export function isVideo(url) {
 
- // 	// ['png', 'jpg', 'jpeg', 'bmp', 'gif','webp'] ['mp4', 'm2v', 'mkv', 'webm', 'ogg', 'flv']
 
- // 	const videoExtensions = ['.avi', '.wmv', '.mpg', '.mpeg', '.mov', '.rm', '.ram', '.swf', '.flv', '.mp4']
 
- // 	const lowercasedUrl = url.toLowerCase()
 
- // 	return videoExtensions.some(type => lowercasedUrl.includes(type))
 
- // }
 
- export function isVideoSource(src) {
 
- 	// return ['.avi', '.wmv', '.mpg', '.mpeg', '.mov', '.rm', '.ram', '.swf', '.flv', '.mp4'].some((item) => src.indexOf(item) !== -1)
 
- 	return ['.avi', '.wmv', '.mpg', '.mpeg', '.mov', '.rm', '.ram', '.swf', '.flv', '.mp4'].includes(src.substring(src.lastIndexOf('.')))
 
- }
 
- export const saveImg = (url, cb) => {
 
- 	// #ifdef H5
 
- 	if (isInWx()) {
 
- 		uni.showToast({
 
- 			title: '请长按图片保存',
 
- 			duration: 2000,
 
- 			icon: 'none'
 
- 		})
 
- 	} else {
 
- 		const uniappA = document.createElement('a')
 
- 		uniappA.download = ''
 
- 		uniappA.href = url
 
- 		document.body.appendChild(uniappA)
 
- 		uniappA.click()
 
- 		uniappA.remove()
 
- 		cb && typeof cb === 'function' && cb()
 
- 	}
 
- 	// #endif
 
- 	// #ifdef APP || MP
 
- 	uni.saveImageToPhotosAlbum({
 
- 		filePath: url,
 
- 		success() {
 
- 			cb && typeof cb === 'function' && cb()
 
- 		}
 
- 	})
 
- 	// #endif
 
- }
 
 
  |