fix(小宝预警): 移除风险快捷筛选
This commit is contained in:
@@ -9,11 +9,9 @@ import { useXiaobaoWarningRisks } from '@/hooks/useXiaobaoWarningRisks';
|
||||
import type { XiaobaoRiskLevel, XiaobaoVersionRisk } from '@/lib/xiaobao-risk';
|
||||
import { buildRiskInsightSignature, findPreviousRiskSnapshot, getReusableInsight, requestRiskInsight, shouldRequestRiskInsightWithCacheGate } from '@/lib/xiaobao-risk-ai';
|
||||
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';
|
||||
|
||||
const HIGH_RISK_LEVELS = new Set<XiaobaoRiskLevel>(['at_risk', 'likely_delayed', 'blocked']);
|
||||
|
||||
const RISK_LEVEL_LABEL: Record<XiaobaoRiskLevel, string> = {
|
||||
on_track: '按期',
|
||||
attention: '关注',
|
||||
@@ -45,7 +43,6 @@ function XiaobaoWarningContent() {
|
||||
const canManage = useHasPermission('xiaobao.warning:manage');
|
||||
const { risks, snapshots, insights, riskDataLoaded, saveSnapshot, saveInsight, today } = useXiaobaoWarningRisks({ loadRiskCache: true });
|
||||
const [selectedRiskId, setSelectedRiskId] = useState<string | null>(null);
|
||||
const [riskFilter, setRiskFilter] = useState<XiaobaoWarningRiskFilter>('all');
|
||||
const [selectedProductId, setSelectedProductId] = useState('');
|
||||
const [selectedProjectId, setSelectedProjectId] = useState('');
|
||||
const savedSnapshotKeysRef = useRef(new Set<string>());
|
||||
@@ -112,10 +109,9 @@ function XiaobaoWarningContent() {
|
||||
}, [projectOptions, selectedProjectId]);
|
||||
|
||||
const filteredRisks = useMemo(() => filterXiaobaoRiskWarnings(risksWithInsight, {
|
||||
riskFilter,
|
||||
productId: selectedProductId || undefined,
|
||||
projectId: selectedProjectId || undefined,
|
||||
}), [riskFilter, risksWithInsight, selectedProductId, selectedProjectId]);
|
||||
}), [risksWithInsight, selectedProductId, selectedProjectId]);
|
||||
|
||||
useEffect(() => {
|
||||
if (filteredRisks.length === 0) {
|
||||
@@ -184,11 +180,6 @@ function XiaobaoWarningContent() {
|
||||
onChange={setSelectedProjectId}
|
||||
/>
|
||||
</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)]">
|
||||
当前显示 {filteredRisks.length} 个风险版本,系统会自动隐藏无风险版本。
|
||||
</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 }) {
|
||||
return (
|
||||
<button
|
||||
|
||||
Reference in New Issue
Block a user