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 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 }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user