fix: RiskRules+SitePages数组迭代空值保护

This commit is contained in:
mediabot-pt
2026-07-05 00:34:33 +08:00
parent 5f51e8ce81
commit 2999e848f8
2 changed files with 5 additions and 4 deletions

View File

@@ -93,11 +93,11 @@ const fmt = (t) => t ? (t.substring(0,19)||'').replace('T',' ') : '-'
const merged = computed(() => { const merged = computed(() => {
const map = {} const map = {}
for (const r of rulesData.value) { const list = Array.isArray(rulesData.value) ? rulesData.value : []
for (const r of list) {
const cnt = (() => { try { return JSON.parse(r.rulesJson || '[]').length } catch { return 0 } })() const cnt = (() => { try { return JSON.parse(r.rulesJson || '[]').length } catch { return 0 } })()
map[r.siteType] = { siteType: r.siteType, version: r.version, ruleCount: cnt, updatedAt: r.updatedAt, rulesJson: r.rulesJson } map[r.siteType] = { siteType: r.siteType, version: r.version, ruleCount: cnt, updatedAt: r.updatedAt, rulesJson: r.rulesJson }
} }
// 补充未配置的类型
for (const t of siteTypes) { for (const t of siteTypes) {
if (!map[t]) map[t] = { siteType: t, version: null, ruleCount: 0, updatedAt: null, rulesJson: null } if (!map[t]) map[t] = { siteType: t, version: null, ruleCount: 0, updatedAt: null, rulesJson: null }
} }
@@ -108,7 +108,7 @@ const fetchAll = async () => {
loading.value = true loading.value = true
try { try {
const r = await api.raw.get('/admin/risk-rules') const r = await api.raw.get('/admin/risk-rules')
rulesData.value = (r.data || r || []) rulesData.value = Array.isArray(r?.data) ? r.data : Array.isArray(r) ? r : []
} catch { ElMessage.error('加载失败') } } catch { ElMessage.error('加载失败') }
finally { loading.value = false } finally { loading.value = false }
} }

View File

@@ -85,7 +85,8 @@ watch(editorMode, (m) => {
const fmt = (t) => t ? (t.substring(0,19)||'').replace('T',' ') : '-' const fmt = (t) => t ? (t.substring(0,19)||'').replace('T',' ') : '-'
const merged = computed(() => { const merged = computed(() => {
return sites.value.map(s => ({ const list = Array.isArray(sites.value) ? sites.value : []
return list.map(s => ({
siteId: s.siteId, siteId: s.siteId,
names: s.names, names: s.names,
version: pagesMap.value[s.siteId]?.version || null, version: pagesMap.value[s.siteId]?.version || null,