feat: 风险规则缓刑天数可配置
- DRATIO/RATIO 编辑区域增加缓刑天数输入框 - 规则摘要和卡片头部的缓刑天数文案改为动态读取 graceDays 字段 - DRATIO 预设模板增加 graceDays: 7 默认值 - 不填时默认7天,向后兼容
This commit is contained in:
@@ -99,7 +99,7 @@
|
||||
<span v-else-if="rule.type==='EXEMPT'" class="rule-fixed-text">永久保留 ≥ {{ rankDisplay(rule.permRank) }} / 封存豁免 ≥ {{ rankDisplay(rule.sealExemptRank) }}</span>
|
||||
<span v-else class="rule-fixed-text">{{ metricLabel(rule.metric) }} {{ condLabel(rule.condition) }} {{ rule.threshold }}{{ rule.unit || '' }}</span>
|
||||
<span class="then-arrow" :style="rule.type==='EXEMPT'?'color:#67c23a':rule.type==='RATIO'||rule.type==='DRATIO'?'color:#e6a23c':''">→</span>
|
||||
<span :style="{fontWeight:'600',fontSize:'13px',color:rule.type==='EXEMPT'?'#67c23a':rule.type==='RATIO'||rule.type==='DRATIO'?'#e6a23c':'#f56c6c'}">{{ rule.type==='EXEMPT' ? '保号' : rule.type==='RATIO'||rule.type==='DRATIO' ? '封号(缓刑7天)' : '封号/删除账号' }}</span>
|
||||
<span :style="{fontWeight:'600',fontSize:'13px',color:rule.type==='EXEMPT'?'#67c23a':rule.type==='RATIO'||rule.type==='DRATIO'?'#e6a23c':'#f56c6c'}">{{ rule.type==='EXEMPT' ? '保号' : rule.type==='RATIO'||rule.type==='DRATIO' ? '封号(缓刑' + (rule.graceDays || 7) + '天)' : '封号/删除账号' }}</span>
|
||||
<span v-if="rule.applicable" class="applicable-tag">{{ applicableLabel(rule.applicable) }}</span>
|
||||
</div>
|
||||
<div class="card-header-right">
|
||||
@@ -139,6 +139,12 @@
|
||||
<el-button size="small" text type="primary" @click="addDRatioLevel(rule)" style="align-self:flex-start">
|
||||
<el-icon style="margin-right:2px"><Plus /></el-icon>添加等级
|
||||
</el-button>
|
||||
<!-- 缓刑天数 -->
|
||||
<div class="field-row" style="margin-top:4px">
|
||||
<span class="field-label">缓刑天数</span>
|
||||
<el-input v-model.number="rule.graceDays" size="small" type="number" placeholder="天数" @input="sync" style="width:100px" />
|
||||
<span class="field-hint">天(不填则默认7天)</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<!-- EXEMPT 等级豁免 -->
|
||||
@@ -173,9 +179,15 @@
|
||||
<div class="field-row">
|
||||
<span class="field-label">阈值</span>
|
||||
<el-input v-model.number="rule.threshold" size="small" type="number" placeholder="阈值" @input="sync" style="width:120px" />
|
||||
<span v-if="rule.type==='RATIO'" class="field-hint">(低于此分享率则降级至Peasant,7天缓刑后封号/删除账号)</span>
|
||||
<span v-if="rule.type==='RATIO'" class="field-hint">(低于此分享率则降级至Peasant,缓刑后封号/删除账号)</span>
|
||||
<span v-else class="field-hint">{{ rule.unit || '' }}</span>
|
||||
</div>
|
||||
<!-- RATIO 缓刑天数 -->
|
||||
<div v-if="rule.type==='RATIO'" class="field-row" style="margin-top:4px">
|
||||
<span class="field-label">缓刑天数</span>
|
||||
<el-input v-model.number="rule.graceDays" size="small" type="number" placeholder="天数" @input="sync" style="width:100px" />
|
||||
<span class="field-hint">天(不填则默认7天)</span>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
@@ -283,7 +295,7 @@ const presets = [
|
||||
// 新人考核
|
||||
{ name:'新人考核', type:'TASK', threshold:30, unit:'天', description:'新注册用户需在考核周期内完成各项要求' },
|
||||
// 分享率
|
||||
{ name:'分享率', type:'DRATIO', levels:[{threshold:0,ratio:1.0}], description:'下载量>0时,分享率<1.0即封号(缓刑7天)' },
|
||||
{ name:'分享率', type:'DRATIO', graceDays: 7, levels:[{threshold:0,ratio:1.0}], description:'下载量>0时,分享率<1.0即封号(缓刑7天)' },
|
||||
// 等级豁免
|
||||
{ name:'等级豁免', type:'EXEMPT', permRank:'Elite User', sealExemptRank:'Power User', description:'达到等级的账号可豁免清理' },
|
||||
]
|
||||
@@ -351,11 +363,13 @@ const ruleText = (r) => {
|
||||
return `无流量且未登录:${val} → <span style="color:#f56c6c;font-weight:500">封号/删除账号</span>${appText}`
|
||||
}
|
||||
if (r.type === 'DRATIO') {
|
||||
const grace = r.graceDays != null ? `(缓刑${r.graceDays}天)` : '(缓刑7天)'
|
||||
const levels = (r.levels||[]).map(l => `下载量≥${l.threshold}GB时分享率<${l.ratio}`).join(',')
|
||||
return `分享率:${levels} → <span style="color:#e6a23c;font-weight:500">封号(缓刑7天)</span>${appText}`
|
||||
return `分享率:${levels} → <span style="color:#e6a23c;font-weight:500">封号${grace}</span>${appText}`
|
||||
}
|
||||
if (r.type === 'RATIO') {
|
||||
return `分享率:${val} → <span style="color:#e6a23c;font-weight:500">封号(缓刑7天)</span>${appText}`
|
||||
const grace = r.graceDays != null ? `(缓刑${r.graceDays}天)` : '(缓刑7天)'
|
||||
return `分享率:${val} → <span style="color:#e6a23c;font-weight:500">封号${grace}</span>${appText}`
|
||||
}
|
||||
return `${typeLabel(r.type)}:${val} → <span style="color:#f56c6c;font-weight:500">封号/删除账号</span>${appText}`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user