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
