fix(小宝预警): 移除风险快捷筛选

This commit is contained in:
Script Generator
2026-06-30 10:35:09 +08:00
parent dd24922293
commit d754585fe0

View File

@@ -9,11 +9,9 @@ import { useXiaobaoWarningRisks } from '@/hooks/useXiaobaoWarningRisks';
import type { XiaobaoRiskLevel, XiaobaoVersionRisk } from '@/lib/xiaobao-risk'; import type { XiaobaoRiskLevel, XiaobaoVersionRisk } from '@/lib/xiaobao-risk';
import { buildRiskInsightSignature, findPreviousRiskSnapshot, getReusableInsight, requestRiskInsight, shouldRequestRiskInsightWithCacheGate } from '@/lib/xiaobao-risk-ai'; import { buildRiskInsightSignature, findPreviousRiskSnapshot, getReusableInsight, requestRiskInsight, shouldRequestRiskInsightWithCacheGate } from '@/lib/xiaobao-risk-ai';
import { buildRiskSignature, findLatestDailySnapshot, shouldSaveRiskSnapshot } from '@/lib/xiaobao-risk-trend'; import { buildRiskSignature, findLatestDailySnapshot, shouldSaveRiskSnapshot } from '@/lib/xiaobao-risk-trend';
import { filterXiaobaoRiskWarnings, formatRemainingWork, sanitizeRiskInsight, type XiaobaoWarningRiskFilter } from '@/lib/xiaobao-warning-view'; import { filterXiaobaoRiskWarnings, formatRemainingWork, sanitizeRiskInsight } from '@/lib/xiaobao-warning-view';
import { formatDateTime } from '@/lib/format'; import { formatDateTime } from '@/lib/format';
const HIGH_RISK_LEVELS = new Set<XiaobaoRiskLevel>(['at_risk', 'likely_delayed', 'blocked']);
const RISK_LEVEL_LABEL: Record<XiaobaoRiskLevel, string> = { const RISK_LEVEL_LABEL: Record<XiaobaoRiskLevel, string> = {
on_track: '按期', on_track: '按期',
attention: '关注', attention: '关注',
@@ -45,7 +43,6 @@ function XiaobaoWarningContent() {
const canManage = useHasPermission('xiaobao.warning:manage'); const canManage = useHasPermission('xiaobao.warning:manage');
const { risks, snapshots, insights, riskDataLoaded, saveSnapshot, saveInsight, today } = useXiaobaoWarningRisks({ loadRiskCache: true }); const { risks, snapshots, insights, riskDataLoaded, saveSnapshot, saveInsight, today } = useXiaobaoWarningRisks({ loadRiskCache: true });
const [selectedRiskId, setSelectedRiskId] = useState<string | null>(null); const [selectedRiskId, setSelectedRiskId] = useState<string | null>(null);
const [riskFilter, setRiskFilter] = useState<XiaobaoWarningRiskFilter>('all');
const [selectedProductId, setSelectedProductId] = useState(''); const [selectedProductId, setSelectedProductId] = useState('');
const [selectedProjectId, setSelectedProjectId] = useState(''); const [selectedProjectId, setSelectedProjectId] = useState('');
const savedSnapshotKeysRef = useRef(new Set<string>()); const savedSnapshotKeysRef = useRef(new Set<string>());
@@ -112,10 +109,9 @@ function XiaobaoWarningContent() {
}, [projectOptions, selectedProjectId]); }, [projectOptions, selectedProjectId]);
const filteredRisks = useMemo(() => filterXiaobaoRiskWarnings(risksWithInsight, { const filteredRisks = useMemo(() => filterXiaobaoRiskWarnings(risksWithInsight, {
riskFilter,
productId: selectedProductId || undefined, productId: selectedProductId || undefined,
projectId: selectedProjectId || undefined, projectId: selectedProjectId || undefined,
}), [riskFilter, risksWithInsight, selectedProductId, selectedProjectId]); }), [risksWithInsight, selectedProductId, selectedProjectId]);
useEffect(() => { useEffect(() => {
if (filteredRisks.length === 0) { if (filteredRisks.length === 0) {
@@ -184,11 +180,6 @@ function XiaobaoWarningContent() {
onChange={setSelectedProjectId} onChange={setSelectedProjectId}
/> />
</div> </div>
<div className="mt-3 inline-flex rounded-lg border border-[var(--line)] bg-[var(--bg)] p-1">
<FilterButton active={riskFilter === 'all'} onClick={() => setRiskFilter('all')}></FilterButton>
<FilterButton active={riskFilter === 'attention'} onClick={() => setRiskFilter('attention')}></FilterButton>
<FilterButton active={riskFilter === 'high'} onClick={() => setRiskFilter('high')}></FilterButton>
</div>
<p className="mt-3 text-[11px] text-[var(--ink-muted)]"> <p className="mt-3 text-[11px] text-[var(--ink-muted)]">
{filteredRisks.length} {filteredRisks.length}
</p> </p>
@@ -413,22 +404,6 @@ function SelectFilter({
); );
} }
function FilterButton({ active, onClick, children }: { active: boolean; onClick: () => void; children: React.ReactNode }) {
return (
<button
type="button"
onClick={onClick}
className={`h-7 rounded-md px-3 text-[12px] transition-colors ${
active
? 'bg-[var(--accent)] text-white'
: 'text-[var(--ink-soft)] hover:bg-[var(--bg-subtle)] hover:text-[var(--ink)]'
}`}
>
{children}
</button>
);
}
function TabButton({ active, onClick, children }: { active: boolean; onClick: () => void; children: React.ReactNode }) { function TabButton({ active, onClick, children }: { active: boolean; onClick: () => void; children: React.ReactNode }) {
return ( return (
<button <button