调整结果总览详情侧栏固定布局

This commit is contained in:
wkc
2026-03-25 17:26:50 +08:00
parent d174dc739f
commit 0746a44b32
6 changed files with 168 additions and 96 deletions

View File

@@ -14,42 +14,44 @@
:sidebar-data="dialogData.sidebar"
/>
<div v-loading="detailLoading" class="project-analysis-layout__main">
<el-alert
v-if="detailError"
:closable="false"
class="project-analysis-layout__alert"
type="error"
show-icon
:title="detailError"
>
<template slot="default">
<el-button type="text" size="mini" @click="handleRetryDetail">重试</el-button>
</template>
</el-alert>
<div
v-if='dialogData.sourceSummary.showCurrentModel && source === "riskModelPeople"'
class="source-summary"
>
<span class="source-summary__label">当前命中模型</span>
<span class="source-summary__value">{{ dialogData.sourceSummary.currentModelValue }}</span>
<div class="project-analysis-layout__main-scroll">
<el-alert
v-if="detailError"
:closable="false"
class="project-analysis-layout__alert"
type="error"
show-icon
:title="detailError"
>
<template slot="default">
<el-button type="text" size="mini" @click="handleRetryDetail">重试</el-button>
</template>
</el-alert>
<div
v-if='dialogData.sourceSummary.showCurrentModel && source === "riskModelPeople"'
class="source-summary"
>
<span class="source-summary__label">当前命中模型</span>
<span class="source-summary__value">{{ dialogData.sourceSummary.currentModelValue }}</span>
</div>
<el-tabs v-model="activeTab" stretch>
<el-tab-pane label="异常明细" name="abnormalDetail">
<project-analysis-abnormal-tab :detail-data="dialogData.abnormalDetail" />
</el-tab-pane>
<el-tab-pane label="资产分析" name="assetAnalysis">
<project-analysis-placeholder-tab :tab-data="getTabData('assetAnalysis')" />
</el-tab-pane>
<el-tab-pane label="征信摘要" name="creditSummary">
<project-analysis-placeholder-tab :tab-data="getTabData('creditSummary')" />
</el-tab-pane>
<el-tab-pane label="关系图谱" name="relationshipGraph">
<project-analysis-placeholder-tab :tab-data="getTabData('relationshipGraph')" />
</el-tab-pane>
<el-tab-pane label="资金流向" name="fundFlow">
<project-analysis-placeholder-tab :tab-data="getTabData('fundFlow')" />
</el-tab-pane>
</el-tabs>
</div>
<el-tabs v-model="activeTab" stretch>
<el-tab-pane label="异常明细" name="abnormalDetail">
<project-analysis-abnormal-tab :detail-data="dialogData.abnormalDetail" />
</el-tab-pane>
<el-tab-pane label="资产分析" name="assetAnalysis">
<project-analysis-placeholder-tab :tab-data="getTabData('assetAnalysis')" />
</el-tab-pane>
<el-tab-pane label="征信摘要" name="creditSummary">
<project-analysis-placeholder-tab :tab-data="getTabData('creditSummary')" />
</el-tab-pane>
<el-tab-pane label="关系图谱" name="relationshipGraph">
<project-analysis-placeholder-tab :tab-data="getTabData('relationshipGraph')" />
</el-tab-pane>
<el-tab-pane label="资金流向" name="fundFlow">
<project-analysis-placeholder-tab :tab-data="getTabData('fundFlow')" />
</el-tab-pane>
</el-tabs>
</div>
</div>
</el-dialog>
@@ -200,6 +202,7 @@ export default {
display: flex;
gap: 20px;
min-height: 640px;
max-height: calc(90vh - 120px);
}
.project-analysis-layout__sidebar {
@@ -211,6 +214,11 @@ export default {
min-width: 0;
}
.project-analysis-layout__main-scroll {
max-height: calc(90vh - 120px);
overflow-y: auto;
}
.project-analysis-layout__alert {
margin-bottom: 16px;
}

View File

@@ -1,54 +1,50 @@
<template>
<aside class="project-analysis-sidebar">
<section class="sidebar-card">
<div class="sidebar-card__title">人员基础信息</div>
<div class="sidebar-field">
<span class="sidebar-field__label">姓名</span>
<span class="sidebar-field__value">{{ sidebarData.basicInfo.name || "-" }}</span>
</div>
<div class="sidebar-field">
<span class="sidebar-field__label">工号</span>
<span class="sidebar-field__value">{{ sidebarData.basicInfo.staffCode || "-" }}</span>
</div>
<div class="sidebar-field">
<span class="sidebar-field__label">部门</span>
<span class="sidebar-field__value">{{ sidebarData.basicInfo.department || "-" }}</span>
</div>
<div class="sidebar-field">
<span class="sidebar-field__label">风险等级</span>
<span class="sidebar-field__value">{{ sidebarData.basicInfo.riskLevel || "-" }}</span>
</div>
<div class="sidebar-field">
<span class="sidebar-field__label">所属项目</span>
<span class="sidebar-field__value">{{ sidebarData.basicInfo.projectName || "-" }}</span>
</div>
</section>
<section class="sidebar-card">
<div class="sidebar-card__title">命中模型摘要</div>
<div class="sidebar-field">
<span class="sidebar-field__label">命中模型数</span>
<span class="sidebar-field__value">{{ sidebarData.modelSummary.modelCount || "-" }}</span>
</div>
<div class="sidebar-field sidebar-field--column">
<span class="sidebar-field__label">核心异常标签</span>
<div v-if="sidebarData.modelSummary.riskTags.length" class="tag-list">
<el-tag
v-for="(tag, index) in sidebarData.modelSummary.riskTags"
:key="`${formatRiskTag(tag)}-${index}`"
size="mini"
effect="plain"
>
{{ formatRiskTag(tag) }}
</el-tag>
<div class="sidebar-section">
<div class="sidebar-card__title">人员基础信息</div>
<div class="sidebar-field">
<span class="sidebar-field__label">姓名</span>
<span class="sidebar-field__value">{{ sidebarData.basicInfo.name || "-" }}</span>
</div>
<div class="sidebar-field">
<span class="sidebar-field__label">工号</span>
<span class="sidebar-field__value">{{ sidebarData.basicInfo.staffCode || "-" }}</span>
</div>
<div class="sidebar-field">
<span class="sidebar-field__label">部门</span>
<span class="sidebar-field__value">{{ sidebarData.basicInfo.department || "-" }}</span>
</div>
<div class="sidebar-field">
<span class="sidebar-field__label">风险等级</span>
<span class="sidebar-field__value">{{ sidebarData.basicInfo.riskLevel || "-" }}</span>
</div>
<div class="sidebar-field">
<span class="sidebar-field__label">所属项目</span>
<span class="sidebar-field__value">{{ sidebarData.basicInfo.projectName || "-" }}</span>
</div>
</div>
<div class="sidebar-section sidebar-section--split">
<div class="sidebar-card__title">命中模型摘要</div>
<div class="sidebar-field">
<span class="sidebar-field__label">命中模型数</span>
<span class="sidebar-field__value">{{ sidebarData.modelSummary.modelCount || "-" }}</span>
</div>
<div class="sidebar-field sidebar-field--column">
<span class="sidebar-field__label">核心异常标签</span>
<div v-if="sidebarData.modelSummary.riskTags.length" class="tag-list">
<el-tag
v-for="(tag, index) in sidebarData.modelSummary.riskTags"
:key="`${formatRiskTag(tag)}-${index}`"
size="mini"
effect="plain"
>
{{ formatRiskTag(tag) }}
</el-tag>
</div>
<span v-else class="sidebar-field__value">暂无异常标签</span>
</div>
<span v-else class="sidebar-field__value">暂无异常标签</span>
</div>
</section>
<section class="sidebar-card">
<div class="sidebar-card__title">排查记录摘要</div>
<p class="sidebar-summary">{{ sidebarData.recordSummary }}</p>
</section>
</aside>
</template>
@@ -64,7 +60,6 @@ export default {
modelSummary: {
riskTags: [],
},
recordSummary: "",
}),
},
},
@@ -84,16 +79,23 @@ export default {
<style lang="scss" scoped>
.project-analysis-sidebar {
display: flex;
flex-direction: column;
gap: 16px;
position: sticky;
top: 0;
}
.sidebar-card {
padding: 18px 16px;
padding: 0;
border: 1px solid #e2e8f0;
background: #fff;
box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
background: transparent;
box-shadow: none;
}
.sidebar-section {
padding: 18px 16px;
}
.sidebar-section--split {
border-top: 1px solid #e2e8f0;
}
.sidebar-card__title {
@@ -141,11 +143,4 @@ export default {
gap: 8px;
margin-top: 8px;
}
.sidebar-summary {
margin: 0;
font-size: 13px;
line-height: 1.8;
color: #475569;
}
</style>