YingXingAI/common/utils.js

50 lines
1.4 KiB
JavaScript
Raw Normal View History

2025-06-30 14:43:02 +08:00
export const Debounce = (fn, wait) => {
let delay = wait|| 500
let timer
return function () {
let args = arguments;
if (timer) {
clearTimeout(timer)
}
let callNow = !timer
timer = setTimeout(() => {
timer = null
}, delay)
if (callNow) fn.apply(this, args)
}
}
/**
* 处理头像/图片 URL
* @param {String} url 图片路径
* @param {String} baseUrl 基础路径
* @param {String} defaultUrl 默认图片路径
*/
export const getHeadImgUrl = (url, baseUrl, defaultUrl = "/static/common/images/avatar_default2.png") => {
if (!url) return defaultUrl;
if (url.startsWith('http') || url.startsWith('https') || url.startsWith('blob:')) return url;
// 统一处理反斜杠:将所有的 \ 替换为 /
let cleanUrl = url.replace(/\\/g, '/');
// 处理 baseUrl: 替换反斜杠并去除末尾斜杠
let cleanBaseUrl = '';
if (baseUrl) {
cleanBaseUrl = baseUrl.replace(/\\/g, '/').replace(/\/$/, '');
}
// 情况三headSculptureUrl = "/UploadImages/tx.jpg"
if (cleanUrl.startsWith('/')) {
return cleanBaseUrl + cleanUrl;
}
// 情况二headSculptureUrl = "UploadImages/tx.jpg"
if (cleanUrl.includes('/')) {
return cleanBaseUrl + '/' + cleanUrl;
}
// 情况一headSculptureUrl = "tx.jpg"
return cleanBaseUrl + '/UploadImages/' + cleanUrl;
}