forgeplus-react-v2/src/forge/Utils/utils.js

81 lines
2.5 KiB
JavaScript

import default1 from '../../images/factory/default/1.png'
import default2 from '../../images/factory/default/2.png'
import default3 from '../../images/factory/default/3.png'
import default4 from '../../images/factory/default/4.png'
import default5 from '../../images/factory/default/5.png'
import default6 from '../../images/factory/default/6.png'
import default7 from '../../images/factory/default/7.png'
import default8 from '../../images/factory/default/8.png'
import { message } from 'antd'
import cookie from 'react-cookies';
export function formatNumber(num) {
if (num === undefined || num === null) return
if (num >= 1e9) {
return (num / 1e9).toFixed(1) + 'B'; // 十亿
} else if (num >= 1e6) {
return (num / 1e6).toFixed(1) + 'M'; // 百万
} else if (num >= 1e3) {
return (num / 1e3).toFixed(1) + 'K'; // 千
} else {
return num.toString(); // 小于 1000 的数字原样返回
}
}
export function formatNumberWithCommas(num) {
if (num === undefined || num === null) return
return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
/**
* 下载
* @param url 下载地址
* @param name 下载名称
* @param msg 成功消息
*/
export const downloadFunc = (url, name) => {
// 检查用户是否登录
const login = cookie.load("login");
if (!login) {
message.info('请先登录后再下载')
return
}
const link = document.createElement('a')
link.href = url
link.download = name || 'download'
document.body.appendChild(link)
setTimeout(() => {
link.click()
if (url.startsWith('blob:')) {
URL.revokeObjectURL(url)
}
document.body.removeChild(link)
message.success('开始下载, 请稍后')
}, 50)
}
export const getDefaultImage = (id) => {
const defaultList = [default1, default2, default3, default4, default5, default6, default7, default8]
return defaultList[ id % 8 ]
}
// 判断前一个路由是否是本站地址
export const isPrevRouteSameSite = () => {
try {
// 获取当前域名
const currentHost = window.location.host;
// 获取前一个页面的 URL
const prevUrl = document.referrer || ""; // 获取 state 中的 URL
const prevHost = new URL(prevUrl).host; // 获取前一个页面的域名
// 判断前一个页面的域名是否与当前域名一致
return prevHost === currentHost;
} catch (error) {
// 如果解析失败,返回 false
console.error("无法判断前一个路由是否是本站地址", error);
return false;
}
};