/**
|
* 将场景配置里的 boardUrl 转为 iframe 可用的绝对地址。
|
* - 已是 http(s):// 开头:原样返回(兼容旧配置)。
|
* - 否则视为 DataEase 前端路由片段(如 /de-link/xxx),拼为:
|
* {dataEasePublicBase}/#/de-link/xxx
|
*/
|
export function resolveBoardUrl(
|
dataEasePublicBase: string | undefined,
|
boardUrl: string
|
): string {
|
const raw = (boardUrl ?? "").trim();
|
if (!raw) {
|
return raw;
|
}
|
if (/^https?:\/\//i.test(raw)) {
|
return raw;
|
}
|
const base = (dataEasePublicBase ?? "").trim().replace(/\/$/, "");
|
if (!base) {
|
throw new Error(
|
"app.config.json 中 dataEasePublicBase 未配置,无法解析相对 boardUrl"
|
);
|
}
|
const path = raw.startsWith("/") ? raw : `/${raw}`;
|
return `${base}/#${path}`;
|
}
|