2026-03-25 14:05:30 +08:00
|
|
|
const assert = require("assert");
|
|
|
|
|
const fs = require("fs");
|
|
|
|
|
const path = require("path");
|
|
|
|
|
|
|
|
|
|
const dialog = fs.readFileSync(
|
|
|
|
|
path.resolve(
|
|
|
|
|
__dirname,
|
|
|
|
|
"../../src/views/ccdiProject/components/detail/ProjectAnalysisDialog.vue"
|
|
|
|
|
),
|
|
|
|
|
"utf8"
|
|
|
|
|
);
|
|
|
|
|
const mockSource = fs.readFileSync(
|
|
|
|
|
path.resolve(
|
|
|
|
|
__dirname,
|
|
|
|
|
"../../src/views/ccdiProject/components/detail/preliminaryCheck.mock.js"
|
|
|
|
|
),
|
|
|
|
|
"utf8"
|
|
|
|
|
);
|
2026-03-25 19:12:30 +08:00
|
|
|
const placeholderTab = fs.readFileSync(
|
|
|
|
|
path.resolve(
|
|
|
|
|
__dirname,
|
|
|
|
|
"../../src/views/ccdiProject/components/detail/ProjectAnalysisPlaceholderTab.vue"
|
|
|
|
|
),
|
|
|
|
|
"utf8"
|
|
|
|
|
);
|
2026-03-25 14:05:30 +08:00
|
|
|
|
|
|
|
|
[
|
|
|
|
|
'title="项目分析"',
|
2026-03-25 17:21:34 +08:00
|
|
|
'width="80%"',
|
|
|
|
|
'top="5vh"',
|
2026-03-25 19:09:16 +08:00
|
|
|
"project-analysis-header",
|
|
|
|
|
"project-analysis-overview",
|
2026-03-25 19:12:30 +08:00
|
|
|
"analysis-panel",
|
2026-03-25 19:09:16 +08:00
|
|
|
"project-analysis-header__title",
|
|
|
|
|
"project-analysis-header__risk",
|
|
|
|
|
"project-analysis-header__meta",
|
2026-03-25 14:05:30 +08:00
|
|
|
"<project-analysis-sidebar",
|
|
|
|
|
'<el-tabs v-model="activeTab"',
|
|
|
|
|
'name="abnormalDetail"',
|
|
|
|
|
'label="异常明细"',
|
|
|
|
|
'label="资产分析"',
|
|
|
|
|
'label="征信摘要"',
|
|
|
|
|
'label="关系图谱"',
|
|
|
|
|
'label="资金流向"',
|
2026-03-25 15:26:03 +08:00
|
|
|
"fetchDetailData()",
|
|
|
|
|
"detailLoading",
|
|
|
|
|
"detailError",
|
|
|
|
|
"handleRetryDetail()",
|
2026-03-25 17:26:50 +08:00
|
|
|
"project-analysis-layout__main-scroll",
|
|
|
|
|
"overflow-y: auto",
|
|
|
|
|
"max-height: calc(90vh - 120px)",
|
2026-03-25 19:09:16 +08:00
|
|
|
"工号",
|
|
|
|
|
"部门",
|
|
|
|
|
"所属项目",
|
2026-03-25 14:05:30 +08:00
|
|
|
].forEach((token) => assert(dialog.includes(token), token));
|
|
|
|
|
|
2026-03-25 19:09:16 +08:00
|
|
|
assert(!dialog.includes("project-analysis-shell"), "不应继续保留内部大白卡外壳");
|
|
|
|
|
assert(!dialog.includes('class="source-summary"'), "当前命中模型不应停留在主区顶部");
|
2026-03-25 19:12:30 +08:00
|
|
|
assert(placeholderTab.includes("analysis-panel--placeholder"), "占位页签应与主区面板统一样式基线");
|
|
|
|
|
assert(
|
|
|
|
|
!placeholderTab.includes("background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%)"),
|
|
|
|
|
"占位页签不应继续保留旧渐变底"
|
|
|
|
|
);
|
2026-03-25 19:09:16 +08:00
|
|
|
|
2026-03-25 14:05:30 +08:00
|
|
|
[
|
|
|
|
|
"projectAnalysisTabs",
|
|
|
|
|
'key: "abnormalDetail"',
|
|
|
|
|
'key: "assetAnalysis"',
|
|
|
|
|
'key: "creditSummary"',
|
|
|
|
|
'key: "relationshipGraph"',
|
|
|
|
|
'key: "fundFlow"',
|
|
|
|
|
].forEach((token) => assert(mockSource.includes(token), token));
|