/**
 * 通用js方法封装处理
 * Copyright (c) 2019 ruoyi
 */

import dayjs from '@/uni_modules/uview-ui/libs/util/dayjs.js'
// 日期格式化
export function parseTime(time, pattern) {
	if (arguments.length === 0 || !time) {
		return null
	}
	const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
	let date
	if (typeof time === 'object') {
		date = time
	} else {
		if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
			time = parseInt(time)
		} else if (typeof time === 'string') {
			time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '');
		}
		if ((typeof time === 'number') && (time.toString().length === 10)) {
			time = time * 1000
		}
		date = new Date(time)
	}
	const formatObj = {
		y: date.getFullYear(),
		m: date.getMonth() + 1,
		d: date.getDate(),
		h: date.getHours(),
		i: date.getMinutes(),
		s: date.getSeconds(),
		a: date.getDay()
	}
	const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
		let value = formatObj[key]
		// Note: getDay() returns 0 on Sunday
		if (key === 'a') {
			return ['日', '一', '二', '三', '四', '五', '六'][value]
		}
		if (result.length > 0 && value < 10) {
			value = '0' + value
		}
		return value || 0
	})
	return time_str
}


/**
 * 时间日期转换
 * @param {dayjs.ConfigType} date 当前时间,new Date() 格式
 * @param {string} format 需要转换的时间格式字符串
 * @description format 字符串随意,如 `YYYY-mm、YYYY-mm-dd`
 * @description format 季度:"YYYY-mm-dd HH:MM:SS QQQQ"
 * @description format 星期:"YYYY-mm-dd HH:MM:SS WWW"
 * @description format 几周:"YYYY-mm-dd HH:MM:SS ZZZ"
 * @description format 季度 + 星期 + 几周:"YYYY-mm-dd HH:MM:SS WWW QQQQ ZZZ"
 * @returns {string} 返回拼接后的时间字符串
 */
export function formatDate(date, format = 'YYYY-MM-DD HH:mm:ss') {
	// 日期不存在,则返回空
	if (!date) {
		return '';
	}
	// 日期存在,则进行格式化
	if (format === undefined) {
		format = 'YYYY-MM-DD HH:mm:ss';
	}
	return dayjs(date).format(format);
}

/**
 * 查看位置
 * @param {number} lat 经度
 * @param {number} lng 纬度
 * @param {string} name 地址名称
 */
export function viewPosition({
	lat,
	lng,
	name = '',
	address = ''
}) {
	uni.openLocation({
		latitude: Number(lat),
		longitude: Number(lng),
		name,
		address,
		fail: (err) => {
			console.log(err);
		}
	})
}




/**
 * 加载
 */
export function loading(title = '加载中') {
	uni.showLoading({
		mask: true,
		title
	})

	function close() {
		uni.hideLoading()
	}
	return {
		close
	}
}

/**
 * 预览图片
 */

export function perviewImage(url) {
	uni.previewImage({
		urls: [...url], //需要预览的图片http链接列表,多张的时候,url直接写在后面就行了
		current: '', // 当前显示图片的http链接,默认是第一个
		success: function(res) {},
		fail: function(res) {},
		complete: function(res) {},
	})


}