You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
2.9 KiB
131 lines
2.9 KiB
/** |
|
* 通用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) {}, |
|
}) |
|
|
|
|
|
} |