feat: support announcement image upload

# Conflicts:
#	database.py
#	db/migrations.py
#	routes/admin_api/core.py
#	static/admin/.vite/manifest.json
#	static/admin/assets/AnnouncementsPage-Btl9JP7M.js
#	static/admin/assets/EmailPage-CwqlBGU2.js
#	static/admin/assets/FeedbacksPage-B_qDNL3q.js
#	static/admin/assets/LogsPage-DzdymdrQ.js
#	static/admin/assets/ReportPage-Bp26gOA-.js
#	static/admin/assets/SettingsPage-__r25pN8.js
#	static/admin/assets/SystemPage-C1OfxrU-.js
#	static/admin/assets/UsersPage-DhnABKcY.js
#	static/admin/assets/email-By53DCWv.js
#	static/admin/assets/email-ByiJ74rd.js
#	static/admin/assets/email-DkWacopQ.js
#	static/admin/assets/index-D5wU2pVd.js
#	static/admin/assets/tasks-1acmkoIX.js
#	static/admin/assets/update-DdQLVpC3.js
#	static/admin/assets/users-B1w166uc.js
#	static/admin/assets/users-CPJP5r-B.js
#	static/admin/assets/users-CnIyvFWm.js
#	static/admin/index.html
#	static/app/.vite/manifest.json
#	static/app/assets/AccountsPage-C48gJL8c.js
#	static/app/assets/AccountsPage-D387XNsv.js
#	static/app/assets/AccountsPage-DBJCAsJz.js
#	static/app/assets/LoginPage-BgK_Vl6X.js
#	static/app/assets/RegisterPage-CwADxWfe.js
#	static/app/assets/ResetPasswordPage-CVfZX_5z.js
#	static/app/assets/SchedulesPage-CWuZpJ5h.js
#	static/app/assets/SchedulesPage-Dw-mXbG5.js
#	static/app/assets/SchedulesPage-DwzGOBuc.js
#	static/app/assets/ScreenshotsPage-C6vX2U3V.js
#	static/app/assets/ScreenshotsPage-CreOSjVc.js
#	static/app/assets/ScreenshotsPage-DuTeRzLR.js
#	static/app/assets/VerifyResultPage-BzGlCgtE.js
#	static/app/assets/VerifyResultPage-CN_nr4V6.js
#	static/app/assets/VerifyResultPage-CNbQc83z.js
#	static/app/assets/accounts-BFaVMUve.js
#	static/app/assets/accounts-BYq3lLev.js
#	static/app/assets/accounts-Bc9j2moH.js
#	static/app/assets/auth-Dk_ApO4B.js
#	static/app/assets/index-BIng7uZJ.css
#	static/app/assets/index-CDxVo_1Z.js
#	static/app/index.html
This commit is contained in:
2026-01-06 12:15:16 +08:00
parent 82acc3470f
commit 4c492122dd
48 changed files with 450 additions and 121 deletions

View File

@@ -628,6 +628,9 @@
</div>
<div class="modal-body">
<div id="announcementModalContent" style="white-space: pre-wrap;"></div>
<div id="announcementModalImageWrap" style="display:none; margin-top: 12px; text-align: center;">
<img id="announcementModalImage" src="" alt="公告图片" style="max-width: 100%; max-height: 320px; border-radius: 10px; border: 1px solid #e5e7eb; object-fit: contain;">
</div>
</div>
<div class="modal-footer">
<button class="btn btn-text" onclick="closeAnnouncementOnce()">当次关闭</button>
@@ -1090,8 +1093,20 @@
currentAnnouncementId = announcement.id;
const titleEl = document.getElementById('announcementModalTitle');
const contentEl = document.getElementById('announcementModalContent');
const imageWrap = document.getElementById('announcementModalImageWrap');
const imageEl = document.getElementById('announcementModalImage');
if (titleEl) titleEl.textContent = announcement.title || '系统公告';
if (contentEl) contentEl.textContent = announcement.content || '';
if (imageWrap && imageEl) {
const imageUrl = String(announcement.image_url || '').trim();
if (imageUrl) {
imageEl.src = imageUrl;
imageWrap.style.display = 'block';
} else {
imageEl.removeAttribute('src');
imageWrap.style.display = 'none';
}
}
openModal('announcementModal');
} catch (e) {
// ignore