提交 d8686493 authored 作者: 朱政's avatar 朱政

feat:风险信号,跳转问题

上级 3366e38c
流水线 #633 已通过 于阶段
in 1 分 49 秒
...@@ -78,6 +78,25 @@ export function getEmptyRiskDetailPayload() { ...@@ -78,6 +78,25 @@ export function getEmptyRiskDetailPayload() {
}; };
} }
/**
* 风险类型(与列表/详情接口 `riskType` 一致):用于详情弹窗「风险类型」展示,优先于 direction 编码
* system / tech_control / external / status
*/
export const RISK_SIGNAL_RISK_TYPE_CODE_LABEL_MAP = {
system: "科技体系有效性",
tech_control: "核心技术自主可控性",
external: "外部打压危害性",
status: "安全状态失稳性"
};
export function getRiskSignalRiskTypeLabel(raw) {
if (raw == null || raw === "") {
return "";
}
const c = String(raw).trim().toLowerCase();
return RISK_SIGNAL_RISK_TYPE_CODE_LABEL_MAP[c] ?? "";
}
/** 风险信号详情接口 `direction` 字段 → 中文(与 `model` 的 0100/0101 含义不同,单独映射) */ /** 风险信号详情接口 `direction` 字段 → 中文(与 `model` 的 0100/0101 含义不同,单独映射) */
export const RISK_SIGNAL_DIRECTION_LABEL_MAP = { export const RISK_SIGNAL_DIRECTION_LABEL_MAP = {
"0100": "政策法规打压类风险", "0100": "政策法规打压类风险",
...@@ -273,6 +292,7 @@ export function buildListRowFallbackFromRawRow(row, fields) { ...@@ -273,6 +292,7 @@ export function buildListRowFallbackFromRawRow(row, fields) {
const dsc = String(row.summary ?? row.contentZh ?? row.description ?? row.dsc ?? row.content ?? "").trim(); const dsc = String(row.summary ?? row.contentZh ?? row.description ?? row.dsc ?? row.content ?? "").trim();
const category = String(row.typeName ?? row.module ?? row.category ?? "").trim(); const category = String(row.typeName ?? row.module ?? row.category ?? "").trim();
const direction = row.direction != null && row.direction !== "" ? row.direction : ""; const direction = row.direction != null && row.direction !== "" ? row.direction : "";
const riskType = String(row.riskType ?? "").trim();
return { return {
title, title,
time, time,
...@@ -281,7 +301,8 @@ export function buildListRowFallbackFromRawRow(row, fields) { ...@@ -281,7 +301,8 @@ export function buildListRowFallbackFromRawRow(row, fields) {
dsc, dsc,
tag: parseRiskSignalTagList(row), tag: parseRiskSignalTagList(row),
category, category,
direction direction,
riskType
}; };
} }
...@@ -312,12 +333,18 @@ export function buildRiskDetailPayloadFromApi(data, listRow) { ...@@ -312,12 +333,18 @@ export function buildRiskDetailPayloadFromApi(data, listRow) {
const detailTags = parseRiskSignalTagList(data); const detailTags = parseRiskSignalTagList(data);
const apiCategory = String(category).trim(); const apiCategory = String(category).trim();
const apiTime = formatRiskPublishDisplay(postRaw) || String(postRaw || "").trim(); const apiTime = formatRiskPublishDisplay(postRaw) || String(postRaw || "").trim();
// 风险动向类型:严格使用 direction(0100~0103),支持多值 // 风险类型:优先使用接口 `riskType`(system/tech_control/external/status),与风险信号管理筛选项一致
const dataRiskType = data.riskType != null ? String(data.riskType).trim() : "";
const listRiskType = String(list.riskType ?? "").trim();
const riskTypeCode = dataRiskType || listRiskType;
const riskTypeLabel = getRiskSignalRiskTypeLabel(riskTypeCode);
// 风险动向(direction 0100~0103):无有效 riskType 时沿用原逻辑
const directionCodes = [ const directionCodes = [
...parseRiskSignalDirectionCodes(data.direction), ...parseRiskSignalDirectionCodes(data.direction),
...parseRiskSignalDirectionCodes(list.direction) ...parseRiskSignalDirectionCodes(list.direction)
]; ];
const directionLabels = buildRiskSignalDirectionLabels(directionCodes); const directionLabelsFromCodes = buildRiskSignalDirectionLabels(directionCodes);
const directionLabels = riskTypeLabel ? [riskTypeLabel] : directionLabelsFromCodes;
return { return {
title: data.title ?? list.title ?? "", title: data.title ?? list.title ?? "",
category: apiCategory || String(list.category ?? "").trim(), category: apiCategory || String(list.category ?? "").trim(),
......
...@@ -854,6 +854,7 @@ const handleGetPageQuery = async () => { ...@@ -854,6 +854,7 @@ const handleGetPageQuery = async () => {
tag: parseRiskSignalTagList(item), tag: parseRiskSignalTagList(item),
risktype: item.riskLevel ?? item.level ?? "", risktype: item.riskLevel ?? item.level ?? "",
direction: item.direction == null || item.direction === "" ? "" : item.direction, direction: item.direction == null || item.direction === "" ? "" : item.direction,
riskType: item.riskType != null && String(item.riskType).trim() !== "" ? String(item.riskType).trim() : "",
pic: item.orgLogo || "" pic: item.orgLogo || ""
}; };
}); });
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论