feat(site): 对齐参考站点UI与交互调整
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m8s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Successful in 9m11s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Successful in 7s

- 页脚:响应耗时文字统一为「响应耗时 XXXms」,版本链接改为 GitHub 官方仓库,默认 ICP 备案号设置为粤ICP备2025450093号
- 顶部栏:恢复主题切换按钮与语言按钮(语言暂为占位提示),放置于用户区左侧
- 主题:修复首屏内联脚本默认主题白名单校验,避免 localStorage 中残留的 light/dark/System 等非法值生效,首屏默认改为 ClassicLight(仅允许 ClassicLight/ModernLight)
- 登录页:在密码输入框下方恢复「忘记密码?」入口,新增配套的找回密码引导页 /forgot-password
- 默认配置:system-settings 兜底记录与 SYSTEM_SETTINGS_DEFAULTS 新增 icpNumber 默认值
This commit is contained in:
2026-09-12 11:56:30 +08:00
parent 0c71328efd
commit a82ff6747e
7 changed files with 415 additions and 15 deletions
+25 -11
View File
@@ -192,7 +192,11 @@ export default defineNuxtConfig({
{ name: 'theme-color', content: '#111111' },
{
name: 'x-default-theme',
content: process.env.NUXT_PUBLIC_DEFAULT_THEME || 'System'
content: process.env.NUXT_PUBLIC_DEFAULT_THEME || 'ClassicLight'
},
{
name: 'x-enabled-themes',
content: process.env.NUXT_PUBLIC_ENABLED_THEMES || 'ClassicLight,ModernLight'
},
{ name: 'apple-mobile-web-app-capable', content: 'yes' },
{ name: 'apple-mobile-web-app-status-bar-style', content: 'black-translucent' },
@@ -206,18 +210,28 @@ export default defineNuxtConfig({
tagPosition: 'head',
children: [
`(function(){try{`,
` var k='voicehub:theme', d=document, r=d.documentElement, s=null, eff=null;`,
` try{s=localStorage.getItem(k)}catch(e){s=null}`,
` if(!s){`,
` try{`,
` var meta=document.querySelector('meta[name="x-default-theme"]');`,
` if(meta && meta.content){s=meta.content}`,
` }catch(e){s=null}`,
` if(!s){s='System'}`,
` var k='voicehub:theme', d=document, r=d.documentElement, s=null, eff=null, def=null, list=[];`,
` try{`,
` var mt=d.querySelector('meta[name="x-enabled-themes"]');`,
` if(mt && mt.content){list=String(mt.content).split(',').map(function(x){return x.replace(/^\\s+|\\s+$/g,'')}).filter(Boolean)}`,
` }catch(e){list=[]}`,
` try{`,
` var md=d.querySelector('meta[name="x-default-theme"]');`,
` if(md && md.content){def=md.content}`,
` }catch(e){def=null}`,
` if(!def){def='ClassicLight'}`,
` if(list.length===0){list=['ClassicLight','ModernLight']}`,
` function valid(t){`,
` if(list.indexOf(t)!==-1){return t}`,
` if(list.indexOf(def)!==-1){return def}`,
` return list[0]`,
` }`,
` if(s==='System'||s==='system'){eff=window.matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light'}`,
` try{s=localStorage.getItem(k)}catch(e){s=null}`,
` if(!s){s=def}`,
` else{s=valid(s)}`,
` if(typeof s==='string' && (s==='System'||s==='system')){eff=window.matchMedia('(prefers-color-scheme: dark)').matches?'dark':'light'}`,
` else if(typeof s==='string'){eff=s.endsWith('Dark')||s==='dark'?'dark':(s.endsWith('Light')||s==='light'?'light':s)}`,
` else{eff='dark'}`,
` else{eff='light'}`,
` r.setAttribute('data-theme', (typeof s==='string'?s:eff));`,
` if(eff==='dark'){r.classList.add('dark'); r.classList.remove('light'); r.style.colorScheme='dark'}`,
` else if(eff==='light'){r.classList.add('light'); r.classList.remove('dark'); r.style.colorScheme='light'}`,