quanyawei
2024-06-18 11da2aef4b4aa8ebff5b58b5241aaa6e0df56eb4
utils/utils.js
New file
@@ -0,0 +1,179 @@
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;
}