import { cookies } from 'next/headers' import { redirect } from 'next/navigation' import { verifySharedJwt } from '@/lib/jwt' import Header from '@/components/Header' function siteUrl(url: string, domain: string): string { if (process.env.NODE_ENV === 'production') { return `https://${domain}` } return url } const CORE_SITES = [ { name: '资产管理', url: 'http://127.0.0.1:6177', desc: 'GPU 服务器、存储服务器等硬件设备信息管理与实时监控', tag: 'CMDB', dot: '#2563eb', domain: 'assets.tlyq.ai' }, { name: '工单跟踪', url: 'http://127.0.0.1:6176', desc: '故障工单全流程管理,SLA 自动计算,月度/周度报告导出', tag: 'ITS', dot: '#7c3aed', domain: 'issue.tlyq.ai' }, ] const OTHER_SITES = [ { name: '官网', url: 'http://127.0.0.1:6173', desc: 'tlyq.ai 企业官方网站', tag: 'WWW', dot: '#059669', domain: 'www.tlyq.ai' }, { name: '云平台', url: 'http://127.0.0.1:6174', desc: '云服务登录入口与资源概览', tag: 'CLOUD', dot: '#d97706', domain: 'cloud.tlyq.ai' }, { name: 'Token 工厂', url: 'http://127.0.0.1:6175', desc: 'Token 管理与发放平台', tag: 'TOKEN', dot: '#e11d48', domain: 'token.tlyq.ai' }, { name: '代码仓库', url: 'https://git.tlyq.ai', desc: 'Gitea 代码托管与版本管理', tag: 'GIT', dot: '#db2777', domain: 'git.tlyq.ai' }, ] const COLORS: Record = { '#2563eb': { light: 'rgba(37,99,235,0.08)', tag: '#2563eb' }, '#7c3aed': { light: 'rgba(124,58,237,0.08)', tag: '#7c3aed' }, '#059669': { light: 'rgba(5,150,105,0.08)', tag: '#059669' }, '#d97706': { light: 'rgba(217,119,6,0.08)', tag: '#d97706' }, '#e11d48': { light: 'rgba(225,29,72,0.08)', tag: '#e11d48' }, '#db2777': { light: 'rgba(219,39,119,0.08)', tag: '#db2777' }, } export default async function HomePage() { const cookieStore = await cookies() const sessionCookie = cookieStore.get('session')?.value let username = '' if (sessionCookie) { try { username = JSON.parse(sessionCookie).username || '' } catch { } } if (!username) redirect('/login') const tlyqToken = cookieStore.get('tlyq_session')?.value let displayName = username if (tlyqToken) { const shared = verifySharedJwt(tlyqToken) if (shared && shared.displayName && shared.displayName !== shared.username) { displayName = shared.displayName } } return (
tlyq.ai / OA PORTAL

欢迎回来,{displayName}

核心系统
{CORE_SITES.map(site => { const c = COLORS[site.dot] return (
{site.name}
{site.tag}
{site.desc}
{site.domain} →
) })}
其他站点
{OTHER_SITES.map(site => { const c = COLORS[site.dot] return (
{site.name}
{site.tag}
{site.desc}
{site.domain} →
) })}
) }