- 스팸 감지 항목에 🤖 스팸감지 뱃지 표시 (🚩 신고 수 대신) - blockReason(블라인드 사유) 카드에 표시 - 스팸 항목에는 신고 무시 버튼 숨김 - 안내 문구에 스팸 자동 블라인드 정책 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,9 @@ const blockedCount = computed(() => items.value.filter((i) => i.blocked).length)
|
||||
function keyOf(it) {
|
||||
return `${it.targetType}:${it.targetId}`
|
||||
}
|
||||
function isSpam(it) {
|
||||
return it.blockReason === '스팸 키워드 감지'
|
||||
}
|
||||
function categoryLabel(c) {
|
||||
return CATEGORY_LABEL[c] || c || '게시판'
|
||||
}
|
||||
@@ -99,8 +102,8 @@ onMounted(load)
|
||||
<div class="report-admin">
|
||||
<div class="head">
|
||||
<p class="desc">
|
||||
신고 누적 <strong>5건</strong> 이상이면 자동 블라인드됩니다. 관리자는 여기서 신고 내용을 검토해
|
||||
<b>블라인드</b> 하거나, 정상 글이면 <b>신고 무시</b>로 정리할 수 있습니다.
|
||||
신고 누적 <strong>5건</strong> 이상 또는 스팸 키워드 포함 시 자동 블라인드됩니다.
|
||||
관리자는 여기서 내용을 검토해 <b>블라인드</b> 하거나, 정상 글이면 <b>신고 무시</b>로 정리할 수 있습니다.
|
||||
</p>
|
||||
<button class="reload" type="button" :disabled="loading" @click="load">↻ 새로고침</button>
|
||||
</div>
|
||||
@@ -123,7 +126,8 @@ onMounted(load)
|
||||
{{ it.targetType === 'POST' ? '글' : '댓글' }}
|
||||
</span>
|
||||
<span class="cat">{{ categoryLabel(it.category) }}</span>
|
||||
<span class="report-count">🚩 {{ it.reportCount }}</span>
|
||||
<span v-if="isSpam(it)" class="badge spam">🤖 스팸감지</span>
|
||||
<span v-else class="report-count">🚩 {{ it.reportCount }}</span>
|
||||
<span v-if="it.blocked" class="badge blind">블라인드됨</span>
|
||||
<span class="time">{{ formatTime(it.lastReportedAt) }}</span>
|
||||
</div>
|
||||
@@ -134,6 +138,7 @@ onMounted(load)
|
||||
</RouterLink>
|
||||
<p class="content">{{ it.content }}</p>
|
||||
<p class="author">작성자: {{ it.authorName || '알 수 없음' }}</p>
|
||||
<p v-if="it.blockReason" class="block-reason">사유: {{ it.blockReason }}</p>
|
||||
|
||||
<div class="actions">
|
||||
<RouterLink :to="linkTo(it)" class="btn ghost">글 보기</RouterLink>
|
||||
@@ -156,7 +161,7 @@ onMounted(load)
|
||||
블라인드 해제
|
||||
</button>
|
||||
<button
|
||||
v-if="!it.blocked"
|
||||
v-if="!it.blocked && !isSpam(it)"
|
||||
class="btn ghost"
|
||||
type="button"
|
||||
:disabled="busyKey === keyOf(it)"
|
||||
@@ -257,6 +262,15 @@ onMounted(load)
|
||||
background: #e5484d22;
|
||||
color: #e5484d;
|
||||
}
|
||||
.badge.spam {
|
||||
background: #f9731622;
|
||||
color: #ea580c;
|
||||
}
|
||||
.block-reason {
|
||||
margin: 0 0 0.4rem;
|
||||
font-size: 0.75rem;
|
||||
color: #ea580c;
|
||||
}
|
||||
.cat {
|
||||
font-size: 0.78rem;
|
||||
color: var(--color-text-soft, #888);
|
||||
|
||||
Reference in New Issue
Block a user