YingXingAI/common/utils.js

50 lines
1.4 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.

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;
}