fix: enforce drainage uniqueness and carrier-specific reporting

This commit is contained in:
hectorzhao
2026-09-14 18:12:38 +08:00
parent ac6449028c
commit 7f9abe3da0
26 changed files with 2637 additions and 965 deletions
+11 -12
View File
@@ -19,6 +19,9 @@ type SendDetailModalProps = {
};
export function SendDetailModal({ record, segmentAudits, segmentLoading, onClose }: SendDetailModalProps) {
const visibleWordDecisions = record.channelWordDecisions?.filter(
(decision) => decision.snapshot.hits.length > 0 || Boolean(decision.snapshot.reason),
);
const routeRows = buildRouteRows(record, segmentAudits);
const channelGroupNames = Array.from(new Set(routeRows.map((route) => route.channelGroup).filter(Boolean)));
const orderedSegmentAudits = [...segmentAudits].sort((left, right) => {
@@ -47,15 +50,13 @@ export function SendDetailModal({ record, segmentAudits, segmentLoading, onClose
}
>
<div className="admin-sms-send-detail">
<section aria-label="通道筛选原因">
<h3></h3>
{record.channelWordDecisions?.length ? (
record.channelWordDecisions.map((decision) => (
{visibleWordDecisions?.length ? (
<section aria-label="通道筛选原因">
<h3></h3>
{visibleWordDecisions.map((decision) => (
<div key={decision.id}>
<p>
{getTime(decision.decidedAt)} ·{' '}
{decision.snapshot.reason ||
(decision.snapshot.hits.length ? '已排除命中通道,按剩余候选选路' : '候选通道未命中通道敏感词')}
{getTime(decision.decidedAt)} · {decision.snapshot.reason || '已排除命中通道,按剩余候选选路'}
</p>
{decision.snapshot.hits.map((hit) => (
<p key={hit.channelId}>
@@ -65,11 +66,9 @@ export function SendDetailModal({ record, segmentAudits, segmentLoading, onClose
</p>
))}
</div>
))
) : (
<p className="muted">{segmentLoading ? '加载中…' : '暂无通道敏感词选路记录'}</p>
)}
</section>
))}
</section>
) : null}
<section aria-label="引流发送资格">
<h3></h3>
{record.drainageGate ? (