fix: store risk rules per siteId instead of shared siteType
This commit is contained in:
@@ -299,7 +299,7 @@ const parsed = computed({
|
||||
|
||||
const editSiteName = computed(() => {
|
||||
if (!editType.value) return ''
|
||||
const site = (sites.value||[]).find(s => s.siteType === editType.value)
|
||||
const site = (sites.value||[]).find(s => s.siteId === editType.value)
|
||||
return site ? (site.names||[]).join('/') || site.siteId || editType.value : editType.value
|
||||
})
|
||||
|
||||
@@ -334,8 +334,8 @@ const ruleText = (r) => {
|
||||
}
|
||||
const merged = computed(() => (Array.isArray(sites.value)?sites.value:[]).map(s => ({
|
||||
siteId: s.siteId, names: s.names, siteType: s.siteType,
|
||||
ruleCount: rulesMap.value[s.siteType]?.ruleCount || 0, version: rulesMap.value[s.siteType]?.version || null,
|
||||
updatedAt: rulesMap.value[s.siteType]?.updatedAt || null, rulesJson: rulesMap.value[s.siteType]?.rulesJson || null,
|
||||
ruleCount: rulesMap.value[s.siteId]?.ruleCount || 0, version: rulesMap.value[s.siteId]?.version || null,
|
||||
updatedAt: rulesMap.value[s.siteId]?.updatedAt || null, rulesJson: rulesMap.value[s.siteId]?.rulesJson || null,
|
||||
})))
|
||||
|
||||
// ============ 数据操作 ============
|
||||
@@ -348,17 +348,18 @@ const fetchAll = async () => {
|
||||
const map = {}
|
||||
for (const r of rulesData) {
|
||||
const cnt = (() => { try { return JSON.parse(r.rulesJson||'[]').length } catch { return 0 } })()
|
||||
if (!map[r.siteType] || r.version > map[r.siteType].version)
|
||||
map[r.siteType] = { ruleCount: cnt, version: r.version, updatedAt: r.updatedAt, rulesJson: r.rulesJson }
|
||||
const key = r.siteId || r.siteType // siteId is the new key, fallback to siteType
|
||||
if (!map[key] || r.version > map[key].version)
|
||||
map[key] = { ruleCount: cnt, version: r.version, updatedAt: r.updatedAt, rulesJson: r.rulesJson }
|
||||
}
|
||||
rulesMap.value = map
|
||||
} finally { loading.value = false }
|
||||
}
|
||||
|
||||
const editRule = async (row) => {
|
||||
editType.value = row.siteType
|
||||
editType.value = row.siteId
|
||||
try {
|
||||
const r = await api.raw.get('/admin/risk-rules/'+row.siteType)
|
||||
const r = await api.raw.get('/admin/risk-rules/'+row.siteId)
|
||||
editorJson.value = (r?.data||r)?.rules ? JSON.stringify((r.data||r).rules, null, 2) : '[]'
|
||||
} catch { editorJson.value = '[]' }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user