补充结果总览异常标签模型归属与联动着色
This commit is contained in:
@@ -14,8 +14,14 @@
|
||||
|
||||
<div v-else class="preliminary-check-page">
|
||||
<overview-stats :summary="currentData.summary" />
|
||||
<risk-people-section :section-data="currentData.riskPeople" />
|
||||
<risk-model-section :section-data="currentData.riskModels" />
|
||||
<risk-people-section
|
||||
:section-data="currentData.riskPeople"
|
||||
:selected-model-codes="selectedModelCodes"
|
||||
/>
|
||||
<risk-model-section
|
||||
:section-data="currentData.riskModels"
|
||||
@selection-change="handleRiskModelSelectionChange"
|
||||
/>
|
||||
<risk-detail-section :section-data="currentData.riskDetails" />
|
||||
</div>
|
||||
</div>
|
||||
@@ -62,6 +68,7 @@ export default {
|
||||
data() {
|
||||
return {
|
||||
pageState: "loading",
|
||||
selectedModelCodes: [],
|
||||
mockData: mockOverviewData,
|
||||
stateDataMap: mockOverviewStateData,
|
||||
realData: mockOverviewData,
|
||||
@@ -83,6 +90,7 @@ export default {
|
||||
}
|
||||
this.realData = this.stateDataMap.empty;
|
||||
this.pageState = "empty";
|
||||
this.selectedModelCodes = [];
|
||||
},
|
||||
},
|
||||
created() {
|
||||
@@ -94,14 +102,19 @@ export default {
|
||||
this.pageState = "empty";
|
||||
},
|
||||
methods: {
|
||||
handleRiskModelSelectionChange(modelCodes) {
|
||||
this.selectedModelCodes = Array.isArray(modelCodes) ? [...modelCodes] : [];
|
||||
},
|
||||
async loadOverviewData() {
|
||||
if (!this.projectId) {
|
||||
this.realData = this.stateDataMap.empty;
|
||||
this.pageState = "empty";
|
||||
this.selectedModelCodes = [];
|
||||
return;
|
||||
}
|
||||
|
||||
this.pageState = "loading";
|
||||
this.selectedModelCodes = [];
|
||||
try {
|
||||
const [dashboardRes, riskPeopleRes, riskModelCardsRes] = await Promise.all([
|
||||
getOverviewDashboard(this.projectId),
|
||||
@@ -129,6 +142,7 @@ export default {
|
||||
} catch (error) {
|
||||
this.realData = this.stateDataMap.empty;
|
||||
this.pageState = "empty";
|
||||
this.selectedModelCodes = [];
|
||||
console.error("加载结果总览失败", error);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
:key="`${scope.row.staffCode || scope.row.idNo || index}-tag-${index}`"
|
||||
size="mini"
|
||||
effect="plain"
|
||||
:type="mapRiskLevelToTagType(tag.riskLevel)"
|
||||
:type="resolveModelTagType(tag)"
|
||||
>
|
||||
{{ tag.ruleName }}
|
||||
</el-tag>
|
||||
@@ -232,6 +232,8 @@ export default {
|
||||
projectId: {
|
||||
immediate: true,
|
||||
handler() {
|
||||
this.selectedModelCodes = [];
|
||||
this.$emit("selection-change", this.selectedModelCodes);
|
||||
this.pageNum = 1;
|
||||
this.fetchPeopleList();
|
||||
},
|
||||
@@ -250,6 +252,7 @@ export default {
|
||||
} else {
|
||||
this.selectedModelCodes = [...this.selectedModelCodes, modelCode];
|
||||
}
|
||||
this.$emit("selection-change", this.selectedModelCodes);
|
||||
this.pageNum = 1;
|
||||
this.fetchPeopleList({ syncCardLoading: true });
|
||||
},
|
||||
@@ -263,6 +266,7 @@ export default {
|
||||
},
|
||||
resetQuery() {
|
||||
this.selectedModelCodes = [];
|
||||
this.$emit("selection-change", this.selectedModelCodes);
|
||||
this.matchMode = "ANY";
|
||||
this.keyword = "";
|
||||
this.deptId = undefined;
|
||||
@@ -290,15 +294,14 @@ export default {
|
||||
}
|
||||
return modelNames.join("、");
|
||||
},
|
||||
mapRiskLevelToTagType(riskLevel) {
|
||||
const level = String(riskLevel || "").toUpperCase();
|
||||
if (level === "HIGH") {
|
||||
resolveModelTagType(tag) {
|
||||
if (!this.selectedModelCodes.length) {
|
||||
return "";
|
||||
}
|
||||
if (this.selectedModelCodes.includes(tag.modelCode)) {
|
||||
return "danger";
|
||||
}
|
||||
if (level === "MEDIUM") {
|
||||
return "warning";
|
||||
}
|
||||
return "info";
|
||||
return "";
|
||||
},
|
||||
async loadDeptOptions() {
|
||||
this.deptLoading = true;
|
||||
|
||||
@@ -16,6 +16,9 @@ const source = fs.readFileSync(
|
||||
"异常标签",
|
||||
"hitTagList",
|
||||
"ruleName",
|
||||
"tag.modelCode",
|
||||
'this.$emit("selection-change", this.selectedModelCodes)',
|
||||
':type="resolveModelTagType(tag)"',
|
||||
].forEach((token) => assert(source.includes(token), token));
|
||||
|
||||
[
|
||||
|
||||
@@ -38,6 +38,11 @@ const mockSource = fs.readFileSync(
|
||||
["currentData.summary", "currentData.riskPeople"].forEach((token) =>
|
||||
assert(entry.includes(token), token)
|
||||
);
|
||||
[
|
||||
':selected-model-codes="selectedModelCodes"',
|
||||
'@selection-change="handleRiskModelSelectionChange"',
|
||||
"selectedModelCodes: []",
|
||||
].forEach((token) => assert(entry.includes(token), token));
|
||||
["风险人员总览", "风险等级", "命中模型数", "查看详情"].forEach((token) =>
|
||||
assert(people.includes(token), token)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user