- 新增api目录下多个接口路径代理处理文件,支持动态拼接目标URL - 根据环境变量选择不同的后端服务地址(如dev和生产环境) - 统一添加TenantId和Authorization请求头传递租户及身份信息 - 实现请求参数及搜索参数的完整转发 - 引入better-sqlite3及node内建模块支持服务端功能 - 新增专家详情页面,实现文章、成果及预约咨询功能展示 - 页面实现加载骨架屏、标签页切换及空状态提示优化体验
71 lines
2.4 KiB
JavaScript
71 lines
2.4 KiB
JavaScript
import { f as useRequestFetch, M as MODULES_API_URL, g as useRuntimeConfig, S as SERVER_API_URL, A as APP_API_URL } from './server.mjs';
|
|
|
|
function getTenantId(defaultTenantId = "5") {
|
|
return defaultTenantId;
|
|
}
|
|
function getFetch() {
|
|
try {
|
|
return useRequestFetch();
|
|
} catch {
|
|
return globalThis.$fetch;
|
|
}
|
|
}
|
|
function normalizeUrl(url) {
|
|
const config = useRuntimeConfig();
|
|
const serverBase = config.public.serverApiBase;
|
|
const modulesBase = config.public.modulesApiBase;
|
|
const appBase = config.public.appApiBase;
|
|
if (url.startsWith(serverBase)) {
|
|
return SERVER_API_URL + url.slice(serverBase.length);
|
|
}
|
|
if (url.startsWith(modulesBase)) {
|
|
return MODULES_API_URL + url.slice(modulesBase.length);
|
|
}
|
|
if (url.startsWith(appBase)) {
|
|
return APP_API_URL + url.slice(appBase.length);
|
|
}
|
|
return url;
|
|
}
|
|
function mergeHeaders(headers) {
|
|
const config = useRuntimeConfig();
|
|
const tenantId = headers?.TenantId ?? headers?.tenantId ?? getTenantId(String(config.public.tenantId));
|
|
const merged = {
|
|
TenantId: String(tenantId)
|
|
};
|
|
if (headers) {
|
|
for (const [key, value] of Object.entries(headers)) {
|
|
if (value === void 0 || value === null) continue;
|
|
merged[key] = String(value);
|
|
}
|
|
}
|
|
return merged;
|
|
}
|
|
function withDefaultModuleBase(url) {
|
|
if (url.startsWith("http://") || url.startsWith("https://")) return url;
|
|
if (url.startsWith("/api/_server") || url.startsWith("/api/_modules") || url.startsWith("/api/_file")) return url;
|
|
if (url.startsWith("/api/app")) return "/api/_app" + url.slice("/api/app".length);
|
|
if (!url.startsWith("/")) return MODULES_API_URL + "/" + url;
|
|
return MODULES_API_URL + url;
|
|
}
|
|
async function request(method, url, body, config = {}) {
|
|
const $fetch = getFetch();
|
|
const normalized = withDefaultModuleBase(normalizeUrl(url));
|
|
const data = await $fetch(normalized, {
|
|
method,
|
|
query: config.params,
|
|
body: body ?? config.data,
|
|
headers: mergeHeaders(config.headers),
|
|
responseType: config.responseType
|
|
});
|
|
return { data };
|
|
}
|
|
const requestClient = {
|
|
get: (url, config) => request("GET", url, void 0, config),
|
|
delete: (url, config) => request("DELETE", url, void 0, config),
|
|
post: (url, data, config) => request("POST", url, data, config),
|
|
put: (url, data, config) => request("PUT", url, data, config)
|
|
};
|
|
|
|
export { requestClient as r };
|
|
//# sourceMappingURL=request-BIxQh2im.mjs.map
|