feat: support both site-level and type-level risk rule storage
List shows source column: site-level or type-level Fallback: siteId rule first, then siteType rule Save always creates site-level entry; load falls back to type-level if none exists
This commit is contained in:
@@ -11,6 +11,9 @@
|
||||
<template #default="s">{{ (s.row.names||[]).join('/') || '-' }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="siteType" label="类型" width="100" />
|
||||
<el-table-column label="来源" width="80" align="center">
|
||||
<template #default="s">{{ s.row.source || '—' }}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="规则数" width="80" align="center">
|
||||
<template #default="s"><el-tag size="small">{{ s.row.ruleCount || 0 }}</el-tag></template>
|
||||
</el-table-column>
|
||||
@@ -332,11 +335,16 @@ const ruleText = (r) => {
|
||||
}
|
||||
return `${typeLabel(r.type)}:${val} → <span style="color:#f56c6c;font-weight:500">封号/删除账号</span>${appText}`
|
||||
}
|
||||
const merged = computed(() => (Array.isArray(sites.value)?sites.value:[]).map(s => ({
|
||||
siteId: s.siteId, names: s.names, siteType: s.siteType,
|
||||
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,
|
||||
})))
|
||||
const merged = computed(() => (Array.isArray(sites.value)?sites.value:[]).map(s => {
|
||||
// 优先站点级,兜底类型级
|
||||
const entry = rulesMap.value[s.siteId] || rulesMap.value[s.siteType] || {}
|
||||
return {
|
||||
siteId: s.siteId, names: s.names, siteType: s.siteType,
|
||||
ruleCount: entry.ruleCount || 0, version: entry.version || null,
|
||||
updatedAt: entry.updatedAt || null, rulesJson: entry.rulesJson || null,
|
||||
source: rulesMap.value[s.siteId] ? '站点级' : entry.ruleCount ? '类型级' : null,
|
||||
}
|
||||
}))
|
||||
|
||||
// ============ 数据操作 ============
|
||||
const fetchAll = async () => {
|
||||
|
||||
Reference in New Issue
Block a user