| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- import simpleCache from './cache.js'
- import dateTime from './dateTime.js'
- //工具类
- let util = {}
- //预览图片
- // this.$util.preview('http://....png')
- // this.$util.preview('../../test.png')
- // this.$util.preview(['http://....png', '../../test.png'])
- util.preview=async (src)=> {
- const urls = typeof src === 'string' ? [src] : src
- const filePath = async src => src.match(/^http/) ? src : (await uni.compressImage({ src, quality: 100 }))[1].tempFilePath
- for (let i = 0; i < urls.length; i++) {
- urls[i] = await filePath(urls[i])
- }
- uni.previewImage({ urls })
- },
- //复制
- util.copy=content=>{
- uni.setClipboardData({ data: content });
- }
- util.calculateDistance=(lat1, lng1, lat2, lng2)=> {
- console.log(lat1, lng1, lat2, lng2)
- var radLat1 = lat1 * Math.PI / 180.0;
- var radLat2 = lat2 * Math.PI / 180.0;
- var a = radLat1 - radLat2;
- var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
- var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +
- Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
- s = s * 6378.137;
- s = Math.round(s * 10000) / 10;//单位米
- return s
- },
- util.showModal=(content,title='提示')=>{
- return new Promise((resolve,reject)=>{
- uni.showModal({
- title: title,
- content: content,
- success: (res)=>{
- resolve(res)
- }
- });
- })
- }
- //拨打电话
- util.callPhone=(phone)=>{
- uni.showModal({
- title: '提示',
- content: `确定要拨打电话:${phone}吗?`,
- success: function (res) {
- if (res.confirm) {
- uni.makePhoneCall({
- phoneNumber: phone //仅为示例
- });
- }
- }
- });
- }
- /**
- * 数组去重
- * @param {Array} arr 源数组
- *
- * @return {Array} newArr 去重后的数组
- */
- util.uniqueArray = (arr)=>{
- return [...new Set(arr)]
- }
- //获取某一个页面上下文 context
- util.getPageCtx = (idx = 0) => {
- let pages = getCurrentPages()
- if (pages.length > 0) {
- return pages[pages.length - 1 - idx] || {}
- }
- return {}
- }
- //获取当前页面路由
- util.getCurrentRoute = () => {
- let page = util.getPageCtx()
- if (page.route) {
- return page.route
- }
- return ''
- }
- //回到上一页刷新页面
- util.isReloadAndBack = () => {
- let prePage=util.getPageCtx(1)
- prePage.setData({
- "reload":true
- })
- uni.navigateBack({
- delta:1
- })
- }
- //等待刷新页面
- util.waitReload = () => {
- let prePage=util.getPageCtx(1)
- prePage.setData({
- "reload":true
- })
- }
- //onshow方法通过刷新mescroll数据
- util.reload = (mescroll) => {
- let page= util.getPageCtx()
- if (page.data.reload) {
- mescroll.resetUpScroll();
- page.data.reload=false
- }
- }
- export default util
|