([])
const dialogVisible = ref(false)
const dialogMode = ref<'create' | 'edit'>('create')
@@ -54,7 +61,23 @@ const statusOptions = [
{ value: 'archived', label: '已归档' },
]
-onMounted(loadAnnouncements)
+onMounted(() => {
+ void loadDistributionSites()
+ void loadAnnouncements()
+})
+
+async function loadDistributionSites() {
+ try {
+ distributionSites.value = await fetchDistributionSites()
+ } catch {
+ distributionSites.value = []
+ }
+}
+
+function siteLabel(row: Announcement): string {
+ if (!row.distribution_site_id) return '主站'
+ return row.distribution_site_name || `分站 #${row.distribution_site_id}`
+}
async function loadAnnouncements() {
loading.value = true
@@ -62,6 +85,7 @@ async function loadAnnouncements() {
const result = await fetchAdminAnnouncements({
status: statusFilter.value || undefined,
category: categoryFilter.value || undefined,
+ site_id: siteFilter.value === '' ? undefined : Number(siteFilter.value),
page: currentPage.value,
page_size: currentPageSize.value,
})
@@ -222,6 +246,22 @@ function getStatusType(status: string): '' | 'success' | 'info' | 'warning' {
+
+
+
+
+
+
+
+
+ {{ siteLabel(row) }}
+
+ 主站
+
+
0=分站 */
+ distribution_site_id: number
+ /** 管理端列表带出的站点名(前台不返回) */
+ distribution_site_name?: string
title: string
content: string
category: string