app/utils/filters.js
2025-05-14 04:25:36 +08:00

241 lines
5.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import Foundation from "./Foundation.js";
import storage from "@/utils/storage.js";
import {
logoffConfirm
} from "@/api/login";
import {
clearIm
} from "@/utils/handleim.js";
/**
* 金钱单位置换 2999 --> 2,999.00
* @param val
* @param unit
* @param location
* @returns {*}
*/
export function unitPrice(val, unit, location) {
if (!val) val = 0;
let price = Foundation.formatPrice(val);
if (location === "before") {
return price.substr(0, price.length - 3);
}
if (location === "after") {
return price.substr(-2);
}
return (unit || "") + price;
}
/**
* 脱敏姓名
*/
export function noPassByName(str) {
if (null != str && str != undefined) {
if (str.length <= 3) {
return "*" + str.substring(1, str.length);
} else if (str.length > 3 && str.length <= 6) {
return "**" + str.substring(2, str.length);
} else if (str.length > 6) {
return str.substring(0, 2) + "****" + str.substring(6, str.length);
}
} else {
return "";
}
}
/**
* 处理unix时间戳转换为可阅读时间格式
* @param unix
* @param format
* @returns {*|string}
*/
export function unixToDate(unix, format) {
let _format = format || "yyyy-MM-dd hh:mm:ss";
const d = new Date(unix * 1000);
const o = {
"M+": d.getMonth() + 1,
"d+": d.getDate(),
"h+": d.getHours(),
"m+": d.getMinutes(),
"s+": d.getSeconds(),
"q+": Math.floor((d.getMonth() + 3) / 3),
S: d.getMilliseconds(),
};
if (/(y+)/.test(_format))
_format = _format.replace(
RegExp.$1,
(d.getFullYear() + "").substr(4 - RegExp.$1.length)
);
for (const k in o)
if (new RegExp("(" + k + ")").test(_format))
_format = _format.replace(
RegExp.$1,
RegExp.$1.length === 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)
);
return _format;
}
/**
* 13888888888 -> 138****8888
* @param mobile
* @returns {*}
*/
export function secrecyMobile(mobile) {
mobile = String(mobile);
if (!/\d{11}/.test(mobile)) {
return mobile;
}
return mobile.replace(/(\d{3})(\d{4})(\d{4})/, "$1****$3");
}
/**
* 清除逗号
*
*/
export function clearStrComma(str) {
str = str.replace(/,/g, ""); //取消字符串中出现的所有逗号
return str;
}
/**
* 用户注销
*
*/
export function logoff() {
uni.showModal({
title: "提示",
content: "确认注销用户么?注销用户将无法再次登录并失去当前数据。",
confirmColor: Vue.prototype.$mainColor,
async success(res) {
if (res.confirm) {
// 退出im登录
clearIm()
await logoffConfirm();
storage.setHasLogin(false);
storage.setAccessToken("");
storage.setRefreshToken("");
storage.setUuid("");
storage.setUserInfo({});
// 清理vlog信息
storage.setVlogToken("");
storage.setVlogUserInfo(null);
// 清除初始化数据内容
storage.setRefreshVlogIndex("1"); //需要刷新
navigateToLogin("redirectTo");
}
},
});
}
/**
* 判断用户是否登录
* @param val 如果为auth则判断是否登录
* 如果传入 auth 则为判断是否登录
*/
export function isLogin(val) {
let userInfo = storage.getUserInfo();
if (val == "auth") {
return userInfo.id ? true : false;
} else {
return storage.getUserInfo();
}
}
/**
* 验证是否登录如果没登录则去登录
* @param {*} val
* @returns
*/
export function forceLogin() {
let userInfo = storage.getUserInfo();
if (!userInfo.id) {
// #ifdef MP-WEIXIN
uni.navigateTo({
url: "/pages/passport/wechatMPLogin",
});
// #endif
// #ifndef MP-WEIXIN
uni.navigateTo({
url: "/pages/passport/login",
});
// #endif
}
}
/**
* 获取当前加载的页面对象
* @param val
*/
export function getPages(val) {
const pages = getCurrentPages(); //获取加载的页面
const currentPage = pages[pages.length - 1]; //获取当前页面的对象
const url = currentPage.route; //当前页面url
return val ? currentPage : url;
}
/**
* 跳转到登录页面
*/
export function navigateToLogin(type = "navigateTo") {
/**
* 此处进行条件编译判断
* 微信小程序跳转到微信小程序登录页面
* H5/App跳转到普通登录页面
*/
// #ifdef MP-WEIXIN
uni[type]({
url: "/pages/passport/wechatMPLogin",
});
// #endif
// #ifndef MP-WEIXIN
uni[type]({
url: "/pages/passport/login",
});
// #endif
}
/**
* 服务状态列表
*/
export function serviceStatusList(val) {
let statusList = {
APPLY: "申请售后",
PASS: "通过售后",
REFUSE: "拒绝售后",
BUYER_RETURN: "买家退货,待卖家收货",
SELLER_RE_DELIVERY: "商家换货/补发",
SELLER_CONFIRM: "卖家确认收货",
SELLER_TERMINATION: "卖家终止售后",
BUYER_CONFIRM: "买家确认收货",
BUYER_CANCEL: "买家取消售后",
WAIT_REFUND: "等待平台退款",
COMPLETE: "完成售后",
};
return statusList[val];
}
/**
* 订单状态列表
*/
export function orderStatusList(val) {
let orderStatusList = {
UNDELIVERED: "待发货",
UNPAID: "未付款",
PAID: "已付款",
DELIVERED: "已发货",
CANCELLED: "已取消",
COMPLETED: "已完成",
COMPLETE: "已完成",
TAKE: "待核验",
REFUNDED: "已退款",
};
return orderStatusList[val];
}