新功能: 1. S3存储桶配置管理 - 可在系统设置中配置S3端点、密钥等 2. 全站实时弹幕功能 - 右下角悬浮球,支持实时发送和接收弹幕 3. LOGO分离上传 - 导航栏LOGO和登录页LOGO分开上传 数据库更新: - SystemSettings表新增s3Endpoint, s3AccessKey, s3SecretKey等6个字段 - 新增Danmaku表用于存储弹幕数据 技术改进: - 部门管理从系统设置移至系统管理标签页 - 优化了浏览器标题动态更新 - 添加了弹幕轮询机制(2秒)
47 lines
1.0 KiB
TypeScript
47 lines
1.0 KiB
TypeScript
import type { Metadata } from 'next'
|
|
import { Inter } from 'next/font/google'
|
|
import './globals.css'
|
|
import Providers from './providers'
|
|
|
|
const inter = Inter({ subsets: ['latin'] })
|
|
|
|
async function getSystemSettings() {
|
|
try {
|
|
const response = await fetch(`${process.env.NEXTAUTH_URL || 'http://localhost:3000'}/api/system-settings`, {
|
|
cache: 'no-store' // 不缓存,确保每次都获取最新数据
|
|
})
|
|
if (response.ok) {
|
|
return await response.json()
|
|
}
|
|
} catch (error) {
|
|
console.error('Failed to fetch system settings:', error)
|
|
}
|
|
return null
|
|
}
|
|
|
|
export async function generateMetadata(): Promise<Metadata> {
|
|
const settings = await getSystemSettings()
|
|
|
|
return {
|
|
title: settings?.siteName || '由壹点3D素材',
|
|
description: '3D素材分享平台',
|
|
}
|
|
}
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode
|
|
}) {
|
|
return (
|
|
<html lang="zh-CN">
|
|
<body className={inter.className}>
|
|
<Providers>
|
|
{children}
|
|
</Providers>
|
|
</body>
|
|
</html>
|
|
)
|
|
}
|
|
|