| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import { joinApiUrl } from '@/config'
- /** 是否外链或 data URL */
- export function isExternalUrl(url) {
- if (!url) return false
- return /^(https?:|data:|\/\/)/i.test(String(url).trim())
- }
- /**
- * 将后端返回的图片路径转为可展示的完整 URL
- * @param {string} path bannerImage / categoryPic / mainPic 等
- */
- export function resolveFileUrl(path) {
- if (path == null || path === '') {
- return ''
- }
- const raw = String(path).split(',')[0].trim()
- if (!raw) {
- return ''
- }
- if (isExternalUrl(raw)) {
- return raw
- }
- return joinApiUrl(raw.startsWith('/') ? raw : `/${raw}`)
- }
- /**
- * 将逗号分隔或数组形式的图片路径转为完整 URL 列表(对齐 ruoyi-ui ImagePreview)
- * @param {string|string[]|null|undefined} pathOrList
- */
- export function resolveFileUrlList(pathOrList) {
- if (pathOrList == null || pathOrList === '') return []
- if (Array.isArray(pathOrList)) {
- return pathOrList.map((item) => resolveFileUrl(item)).filter(Boolean)
- }
- return String(pathOrList)
- .split(',')
- .map((s) => resolveFileUrl(s.trim()))
- .filter(Boolean)
- }
|