合并结果总览详情外层卡片

This commit is contained in:
wkc
2026-03-25 18:44:57 +08:00
parent 7fb1543c4c
commit ed427f7a42
6 changed files with 122 additions and 43 deletions

View File

@@ -8,49 +8,51 @@
custom-class="project-analysis-dialog"
@close="handleDialogClosed"
>
<div class="project-analysis-layout">
<project-analysis-sidebar
class="project-analysis-layout__sidebar"
:sidebar-data="dialogData.sidebar"
/>
<div v-loading="detailLoading" class="project-analysis-layout__main">
<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 class="project-analysis-shell">
<div class="project-analysis-layout">
<project-analysis-sidebar
class="project-analysis-layout__sidebar"
:sidebar-data="dialogData.sidebar"
/>
<div v-loading="detailLoading" class="project-analysis-layout__main">
<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>
</div>
@@ -205,13 +207,23 @@ export default {
max-height: calc(90vh - 120px);
}
.project-analysis-shell {
border: 1px solid #e2e8f0;
border-radius: 20px;
background: #fff;
overflow: hidden;
}
.project-analysis-layout__sidebar {
flex: 0 0 340px;
padding: 20px 0 20px 20px;
}
.project-analysis-layout__main {
flex: 1;
min-width: 0;
padding: 20px 20px 20px 0;
border-left: 1px solid #e2e8f0;
}
.project-analysis-layout__main-scroll {

View File

@@ -84,7 +84,7 @@ export default {
.sidebar-card {
padding: 0;
border: 1px solid #e2e8f0;
border: none;
background: transparent;
box-shadow: none;
}

View File

@@ -21,6 +21,7 @@ const mockSource = fs.readFileSync(
'title="项目分析"',
'width="80%"',
'top="5vh"',
"project-analysis-shell",
"<project-analysis-sidebar",
'<el-tabs v-model="activeTab"',
'name="abnormalDetail"',
@@ -36,6 +37,8 @@ const mockSource = fs.readFileSync(
"project-analysis-layout__main-scroll",
"overflow-y: auto",
"max-height: calc(90vh - 120px)",
"border: 1px solid #e2e8f0",
"border-radius: 20px",
].forEach((token) => assert(dialog.includes(token), token));
[

View File

@@ -43,6 +43,7 @@ assert(!sidebar.includes("当前命中模型"), "命中模型摘要应移除当
assert(!sidebar.includes("排查记录摘要"), "侧栏应移除排查记录摘要");
assert(!sidebar.includes("sidebar-summary"), "侧栏不应再渲染排查记录摘要文案");
assert(!sidebar.includes("position: sticky"), "左侧整卡不应保持固定");
assert(!sidebar.includes("border: 1px solid #e2e8f0"), "左右区域合并后左侧不应保留独立卡片边框");
assert(!sidebar.includes("关系人画像"), "侧栏不应扩展到额外区块");
assert(!sidebar.includes("资产分布"), "侧栏不应扩展到额外区块");