1、前台登陆的《用户协议》和《隐私政策》合并为一个文件,用户协议及隐私政策,后台系统设置上传同步更改

2、前台登陆最下方加入版权信息添加,后台系统设置同步修改
This commit is contained in:
2026-06-29 10:42:13 +08:00
parent 92fb64aa99
commit 776e122adf
10 changed files with 96 additions and 64 deletions
+2 -2
View File
@@ -174,8 +174,8 @@ export async function verifyCaptcha(captchaId: string, x: number): Promise<strin
return res.token;
}
// ── Site Info ─────────────────────────────────────────────
export async function getSiteInfo(): Promise<{ siteName: string; siteLogo: string; userAgreementUrl: string; privacyPolicyUrl: string }> {
if (USE_MOCK) return { siteName: 'VideoGen.AI', siteLogo: '', userAgreementUrl: '', privacyPolicyUrl: '' };
export async function getSiteInfo(): Promise<{ siteName: string; siteLogo: string; userAgreementPrivacyUrl: string; siteCopyright: string }> {
if (USE_MOCK) return { siteName: 'VideoGen.AI', siteLogo: '', userAgreementPrivacyUrl: '', siteCopyright: '' };
return api.get('/auth/site-info', false);
}
// ── Video Engines ─────────────────────────────────────────
+30
View File
@@ -375,3 +375,33 @@
font-size: 15px !important;
}
}
.login-copyright {
text-align: center;
margin-top: 20px;
}
.login-copyright-text {
font-size: 12px !important;
color: #94a3b8 !important;
}
@media (min-width: 900px) {
.login-copyright {
position: absolute;
bottom: 24px;
left: 0;
right: 0;
text-align: center;
}
}
@media (max-width: 480px) {
.login-copyright {
margin-top: 16px;
}
.login-copyright-text {
font-size: 11px !important;
}
}
+13 -12
View File
@@ -44,8 +44,8 @@ const LoginPage: React.FC = () => {
const initialInfo = getInitialSiteInfo();
const [siteName, setSiteName] = useState(initialInfo.siteName);
const [siteLogo, setSiteLogo] = useState(initialInfo.siteLogo);
const [agreementUrl, setAgreementUrl] = useState('');
const [policyUrl, setPolicyUrl] = useState('');
const [agreementPrivacyUrl, setAgreementPrivacyUrl] = useState('');
const [siteCopyright, setSiteCopyright] = useState('');
const navigate = useNavigate();
const { login } = useAuthStore();
@@ -57,14 +57,14 @@ const LoginPage: React.FC = () => {
getSiteInfo().then(info => {
setSiteName(info.siteName);
setSiteLogo(info.siteLogo);
setAgreementUrl(info.userAgreementUrl);
setPolicyUrl(info.privacyPolicyUrl);
setAgreementPrivacyUrl(info.userAgreementPrivacyUrl);
setSiteCopyright(info.siteCopyright);
}).catch(() => {});
}, []);
const checkAgreed = (): boolean => {
if (!agreed) {
message.warning('请先阅读并同意用户协议隐私政策');
message.warning('请先阅读并同意用户协议隐私政策');
return false;
}
return true;
@@ -440,14 +440,9 @@ const LoginPage: React.FC = () => {
<span className="login-agreement-text">
<span
onClick={e => { e.stopPropagation(); openPdf(agreementUrl); }}
onClick={e => { e.stopPropagation(); openPdf(agreementPrivacyUrl); }}
className="login-link"
></span>
<span
onClick={e => { e.stopPropagation(); openPdf(policyUrl); }}
className="login-link"
></span>
></span>
</span>
</Checkbox>
</div>
@@ -486,6 +481,12 @@ const LoginPage: React.FC = () => {
)}
</div>
</Card>
{siteCopyright && (
<div className="login-copyright">
<Typography.Text className="login-copyright-text">{siteCopyright}</Typography.Text>
</div>
)}
</div>
</div>
);