fix: RiskRules+SitePages数组迭代空值保护
This commit is contained in:
@@ -93,11 +93,11 @@ const fmt = (t) => t ? (t.substring(0,19)||'').replace('T',' ') : '-'
|
||||
|
||||
const merged = computed(() => {
|
||||
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 } })()
|
||||
map[r.siteType] = { siteType: r.siteType, version: r.version, ruleCount: cnt, updatedAt: r.updatedAt, rulesJson: r.rulesJson }
|
||||
}
|
||||
// 补充未配置的类型
|
||||
for (const t of siteTypes) {
|
||||
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
|
||||
try {
|
||||
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('加载失败') }
|
||||
finally { loading.value = false }
|
||||
}
|
||||
|
||||
@@ -85,7 +85,8 @@ watch(editorMode, (m) => {
|
||||
const fmt = (t) => t ? (t.substring(0,19)||'').replace('T',' ') : '-'
|
||||
|
||||
const merged = computed(() => {
|
||||
return sites.value.map(s => ({
|
||||
const list = Array.isArray(sites.value) ? sites.value : []
|
||||
return list.map(s => ({
|
||||
siteId: s.siteId,
|
||||
names: s.names,
|
||||
version: pagesMap.value[s.siteId]?.version || null,
|
||||
|
||||
Reference in New Issue
Block a user