提交 5a1afe03 authored 作者: 王鹏飞's avatar 王鹏飞

feat: 更新文件预览功能,支持学校模式下使用自建服务

上级 f09fade7
/** /**
* 学校本地部署时,前后端在同一台机器上,端口固定。 * 学校本地部署时,前后端在同一台机器上,端口固定。
* 通过自动检测当前页面 hostname(IP 地址),推导所有后端服务地址。 * school 模式从浏览器地址栏读取主机,其他模式使用环境变量。
*
* 非 IP 访问(如域名 dev.ezijing.com / saas-lab.ezijing.com)时,
* 回退到 .env 中的显式配置。
*/ */
const schoolHost = import.meta.env.MODE === 'school' ? window.location.hostname : ''
function isIPAddress(hostname: string): boolean {
return /^\d+\.\d+\.\d+\.\d+$/.test(hostname)
}
const host = isIPAddress(window.location.hostname) ? window.location.hostname : ''
export const urls = { export const urls = {
/** 登录 — 端口 1001 */ /** 登录 — 端口 1001 */
get login() { login: schoolHost ? `http://${schoolHost}:1001/auth/login/index` : import.meta.env.VITE_LOGIN_URL,
return host ? `http://${host}:1001/auth/login/index` : import.meta.env.VITE_LOGIN_URL
},
/** 商务数据分析师登录 — 端口 1001 */ /** 商务数据分析师登录 — 端口 1001 */
get swsjfxsLogin() { swsjfxsLogin: schoolHost ? `http://${schoolHost}:1001/swsjfxs/login/index` : import.meta.env.VITE_SWSJFXS_LOGIN_URL,
return host ? `http://${host}:1001/swsjfxs/login/index` : import.meta.env.VITE_SWSJFXS_LOGIN_URL
},
/** 答疑中心 — 端口 1004 */ /** 答疑中心 — 端口 1004 */
get qaCenter() { qaCenter: schoolHost ? `http://${schoolHost}:1004` : import.meta.env.VITE_QA_CENTER_URL,
return host ? `http://${host}:1004` : import.meta.env.VITE_QA_CENTER_URL
},
/** 数字营销实验平台 — 端口 1006 */ /** 数字营销实验平台 — 端口 1006 */
get dml() { dml: schoolHost ? `http://${schoolHost}:1006` : import.meta.env.VITE_DML_URL,
return host ? `http://${host}:1006` : import.meta.env.VITE_DML_URL
},
/** 数字营销专业版 — 端口 1007 */ /** 数字营销专业版 — 端口 1007 */
get dmlPro() { dmlPro: schoolHost ? `http://${schoolHost}:1007` : import.meta.env.VITE_DML_PRO_URL,
return host ? `http://${host}:1007` : import.meta.env.VITE_DML_PRO_URL
},
/** 理论学习 — 端口 1009 */ /** 理论学习 — 端口 1009 */
get learn() { learn: schoolHost ? `http://${schoolHost}:1009` : import.meta.env.VITE_SAAS_LEARN_URL,
return host ? `http://${host}:1009` : import.meta.env.VITE_SAAS_LEARN_URL
},
/** 实验 Lab URL — 端口 1012 */ /** 实验 Lab URL — 端口 1012 */
get lab() { lab: schoolHost
return host ? `http://${schoolHost}:1012/bi/viewer?proc=0&action=index`
? `http://${host}:1012/bi/viewer?proc=0&action=index` : import.meta.env.VITE_LAB_URL,
: import.meta.env.VITE_LAB_URL
},
/** BI 数据看板 — 端口 1014 */ /** BI 数据看板 — 端口 1014 */
get bi() { bi: schoolHost ? `http://${schoolHost}:1014/data/dashboard` : import.meta.env.VITE_SAAS_BI_URL,
return host ? `http://${host}:1014/data/dashboard` : import.meta.env.VITE_SAAS_BI_URL
},
/** 直播练习 — 端口 1015 */ /** 直播练习 — 端口 1015 */
get dmlLive() { dmlLive: schoolHost ? `http://${schoolHost}:1015/live/test` : import.meta.env.VITE_SAAS_DML_LIVE_URL,
return host ? `http://${host}:1015/live/test` : import.meta.env.VITE_SAAS_DML_LIVE_URL
},
/** AI 平台 — 端口 1016 */ /** AI 平台 — 端口 1016 */
get ai() { ai: schoolHost ? `http://${schoolHost}:1016` : import.meta.env.VITE_SAAS_AI_URL,
return host ? `http://${host}:1016` : import.meta.env.VITE_SAAS_AI_URL /** Office 文档预览 — 端口 8012 */
}, filePreview: schoolHost ? `http://${schoolHost}:8012` : '',
} }
...@@ -3,11 +3,11 @@ ...@@ -3,11 +3,11 @@
* - 线上环境:Microsoft Office Online Viewer * - 线上环境:Microsoft Office Online Viewer
* - 学校本地部署:自建 onlinePreview 服务(端口 8012) * - 学校本地部署:自建 onlinePreview 服务(端口 8012)
*/ */
import { urls } from './env'
export function getOnlinePreviewUrl(url: string): string { export function getOnlinePreviewUrl(url: string): string {
if (import.meta.env.MODE === 'school') { if (import.meta.env.MODE === 'school') {
const host = window.location.hostname return `${urls.filePreview}/onlinePreview?url=${encodeURIComponent(btoa(url))}`
return `http://${host}:8012/onlinePreview?url=${encodeURIComponent(btoa(url))}`
} }
return `https://view.officeapps.live.com/op/view.aspx?src=${url}` return `https://view.officeapps.live.com/op/view.aspx?src=${url}`
} }
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论