import dayjs from "dayjs"; export function msg(content, time = 3000) { uni.showToast({ icon: "none", title: content, duration: time, }); } export function showLoading(content = "加载数据中...", mask = true) { uni.showLoading({ title: content, mask: mask, }); } export function hideLoading(timer = 0) { if (timer > 0) { var t = setTimeout(function () { uni.hideLoading(); clearTimeout(t); }, timer); } else { uni.hideLoading(); } } export function in_array(search, array) { let flag = false; for (let i in array) { if (array[i] == search) { flag = true; break; } } return flag; } export function isDataType(data, type) { return Object.prototype.toString.call(data) === "[object " + type + "]"; } // 时间格式化 export function dateFormatter(dateObj) { return dateObj ? dayjs(dateObj).format("YYYY-MM-DD") : ""; } export function ltrim(str, char) { let pos = str.indexOf(char); let sonstr = str.substr(pos + 1); return sonstr; } export function rtrim(str, char) { let pos = str.lastIndexOf(char); let sonstr = str.substr(0, pos); return sonstr; } /** * 保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。 */ export function navigateTo(url, params) { uni.navigateTo({ url: parseUrl(url, params), }); } /** * 关闭当前页面,跳转到应用内的某个页面。 */ export function redirectTo(url, params) { uni.redirectTo({ url: parseUrl(url, params), }); } /** * 关闭所有页面,打开到应用内的某个页面。 */ export function reLaunch(url, params) { uni.reLaunch({ url: parseUrl(url, params), }); } /** * 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。 */ export function switchTab(url, params) { uni.switchTab({ url: parseUrl(url, params), }); } /** * 关闭当前页面,返回上一页面或多级页面 */ export function navigateBack(delta) { uni.navigateBack({ delta: delta, }); } /** * 预加载页面,是一种性能优化技术。被预载的页面,在打开时速度更快。 */ export function preloadPage(url, params) { uni.preloadPage({ url: parseUrl(url, params), }); } export function prePage() { let pages = getCurrentPages(); let prePage = pages[pages.length - 2]; // #ifdef H5 return prePage; // #endif return prePage.$vm; } /** * rpx转px * @param int|float num */ export function rpx2px(num) { // const info = uni.getSystemInfoSync() // let scale = 750 / info.windowWidth; // return (Number.isNaN(parseFloat(num)) ? 0 : parseFloat(num)) / scale; return uni.upx2px(num); } /** * @param int|float num */ export function px2rpx(num) { return num / (uni.upx2px(num) / num); } /** * 获取窗口的宽高 */ export function getSystemInfo() { const info = uni.getSystemInfoSync(); return { w: info.windowWidth, h: info.windowHeight, }; } function parseUrl(url, params) { let arr = []; let string = ""; for (let i in params) { arr.push(i + "=" + params[i]); } string = "/pages/" + url; if (arr.length > 0) { string += "?" + arr.join("&"); } return string; } export function arrToObj(arr) { return arr.reduce((obj, item) => { obj[item.value] = item.name; return obj; }, {}); } export function objToArr(obj) { const objde = {}; for (const key in obj) { objde[key] = arrToObj(obj[key]); } return objde; }