/**
|
* 站点文案(后台「字典管理 → 2024级学生产教融合实践教学信息填报」驱动)
|
*
|
* 文案由 /miniapp/site-titles 下发,后台改完即时生效,前端不用重新打包。
|
* 接口未通 / 字典项被删 / 值为空时,一律回退下面的内置默认,页面不会出现空白标题。
|
* 一次会话只请求一次(并发调用共用同一个 pending Promise),失败不缓存、下次可重试。
|
*/
|
import { getSiteTitles } from '@/api/auth.js'
|
|
// 兜底文案:须与后端 MiniappController#siteTitles 的 fallback 保持一致
|
export const DEFAULT_TITLES = {
|
platformTitle: '产教融合实践教学管理平台',
|
platformSubtitle: '江苏商贸职业学院 · 学生实践教学信息填报',
|
loginSubtitle: '产教融合实践教学管理平台 · 学生账号',
|
}
|
|
let cache = null
|
let pending = null
|
|
/** 取站点文案(带缓存);永远 resolve,不会 reject */
|
export function getTitles() {
|
if (cache) return Promise.resolve(cache)
|
if (!pending) {
|
pending = getSiteTitles()
|
.then((res) => {
|
cache = { ...DEFAULT_TITLES, ...(res.data || {}) }
|
return cache
|
})
|
.catch(() => DEFAULT_TITLES)
|
.then((v) => {
|
pending = null
|
return v
|
})
|
}
|
return pending
|
}
|