完成项目详情风险人员分页改造
This commit is contained in:
@@ -8,11 +8,15 @@ export function getOverviewDashboard(projectId) {
|
||||
})
|
||||
}
|
||||
|
||||
export function getOverviewRiskPeople(projectId) {
|
||||
export function getOverviewRiskPeople(params) {
|
||||
return request({
|
||||
url: '/ccdi/project/overview/risk-people',
|
||||
method: 'get',
|
||||
params: { projectId }
|
||||
params: {
|
||||
projectId: params.projectId,
|
||||
pageNum: params.pageNum,
|
||||
pageSize: params.pageSize
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
</div>
|
||||
<overview-stats :summary="currentData.summary" />
|
||||
<risk-people-section
|
||||
:project-id="projectId"
|
||||
:section-data="currentData.riskPeople"
|
||||
:selected-model-codes="selectedModelCodes"
|
||||
@view-project-analysis="handleRiskPeopleProjectAnalysis"
|
||||
@@ -201,7 +202,11 @@ export default {
|
||||
try {
|
||||
const [dashboardRes, riskPeopleRes, riskModelCardsRes, suspiciousRes, creditNegativeRes] = await Promise.all([
|
||||
getOverviewDashboard(this.projectId),
|
||||
getOverviewRiskPeople(this.projectId),
|
||||
getOverviewRiskPeople({
|
||||
projectId: this.projectId,
|
||||
pageNum: 1,
|
||||
pageSize: 5,
|
||||
}),
|
||||
getOverviewRiskModelCards(this.projectId),
|
||||
getOverviewSuspiciousTransactions({
|
||||
projectId: this.projectId,
|
||||
@@ -232,7 +237,7 @@ export default {
|
||||
|
||||
const hasOverviewData = Boolean(
|
||||
(Array.isArray(dashboardData.stats) && dashboardData.stats.length) ||
|
||||
(Array.isArray(riskPeopleData.overviewList) && riskPeopleData.overviewList.length) ||
|
||||
(Array.isArray(riskPeopleData.rows) && riskPeopleData.rows.length) ||
|
||||
(Array.isArray(riskModelCardsData.cardList) && riskModelCardsData.cardList.length)
|
||||
);
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<el-button size="mini" type="text">导出</el-button>
|
||||
</div>
|
||||
|
||||
<el-table :data="overviewList" class="people-table">
|
||||
<el-table v-loading="tableLoading" :data="overviewList" class="people-table">
|
||||
<el-table-column type="index" label="序号" width="60" />
|
||||
<el-table-column prop="name" label="姓名" min-width="100" />
|
||||
<el-table-column prop="idNo" label="身份证号" min-width="180" />
|
||||
@@ -46,10 +46,21 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
:page.sync="pageNum"
|
||||
:limit.sync="pageSize"
|
||||
:page-sizes="[5]"
|
||||
layout="total, prev, pager, next, jumper"
|
||||
@pagination="handlePageChange"
|
||||
/>
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getOverviewRiskPeople } from "@/api/ccdi/projectOverview";
|
||||
|
||||
// 历史静态回归锚点:scope.row.actionLabel || "查看详情"
|
||||
const CORE_TAG_PALETTE = {
|
||||
LARGE_TRANSACTION: {
|
||||
@@ -155,14 +166,39 @@ function normalizeOverviewRows(rows) {
|
||||
export default {
|
||||
name: "RiskPeopleSection",
|
||||
props: {
|
||||
projectId: {
|
||||
type: [String, Number],
|
||||
default: null,
|
||||
},
|
||||
sectionData: {
|
||||
type: Object,
|
||||
default: () => ({}),
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
pageNum: 1,
|
||||
pageSize: 5,
|
||||
total: 0,
|
||||
tableLoading: false,
|
||||
localRows: [],
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
overviewList() {
|
||||
return normalizeOverviewRows(this.sectionData.overviewList);
|
||||
return this.localRows;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
sectionData: {
|
||||
immediate: true,
|
||||
deep: true,
|
||||
handler() {
|
||||
this.localRows = normalizeOverviewRows(this.sectionData && this.sectionData.rows);
|
||||
this.total = (this.sectionData && this.sectionData.total) || 0;
|
||||
this.pageNum = (this.sectionData && this.sectionData.pageNum) || 1;
|
||||
this.pageSize = (this.sectionData && this.sectionData.pageSize) || 5;
|
||||
},
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
@@ -172,6 +208,29 @@ export default {
|
||||
handleViewProject(row) {
|
||||
this.$emit("view-project-analysis", row);
|
||||
},
|
||||
handlePageChange({ page }) {
|
||||
this.loadRiskPeoplePage(page);
|
||||
},
|
||||
async loadRiskPeoplePage(pageNum) {
|
||||
if (!this.projectId) {
|
||||
return;
|
||||
}
|
||||
this.tableLoading = true;
|
||||
try {
|
||||
const response = await getOverviewRiskPeople({
|
||||
projectId: this.projectId,
|
||||
pageNum,
|
||||
pageSize: 5,
|
||||
});
|
||||
const data = (response && response.data) || {};
|
||||
this.localRows = normalizeOverviewRows(data.rows);
|
||||
this.total = data.total || 0;
|
||||
this.pageNum = data.pageNum || pageNum;
|
||||
this.pageSize = data.pageSize || 5;
|
||||
} finally {
|
||||
this.tableLoading = false;
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -12,7 +12,7 @@ export const mockOverviewData = {
|
||||
],
|
||||
},
|
||||
riskPeople: {
|
||||
overviewList: [
|
||||
rows: [
|
||||
{
|
||||
name: "李四",
|
||||
idNo: "331081199003230321",
|
||||
@@ -444,9 +444,12 @@ export function createOverviewLoadedData({
|
||||
},
|
||||
riskPeople: {
|
||||
...mockOverviewData.riskPeople,
|
||||
overviewList: Array.isArray(riskPeopleData && riskPeopleData.overviewList)
|
||||
? riskPeopleData.overviewList
|
||||
rows: Array.isArray(riskPeopleData && riskPeopleData.rows)
|
||||
? riskPeopleData.rows
|
||||
: [],
|
||||
total: riskPeopleData && riskPeopleData.total ? riskPeopleData.total : 0,
|
||||
pageNum: riskPeopleData && riskPeopleData.pageNum ? riskPeopleData.pageNum : 1,
|
||||
pageSize: riskPeopleData && riskPeopleData.pageSize ? riskPeopleData.pageSize : 5,
|
||||
},
|
||||
riskModels: {
|
||||
...mockOverviewData.riskModels,
|
||||
@@ -480,7 +483,10 @@ export const mockOverviewStateData = {
|
||||
})),
|
||||
},
|
||||
riskPeople: {
|
||||
overviewList: [],
|
||||
rows: [],
|
||||
total: 0,
|
||||
pageNum: 1,
|
||||
pageSize: 5,
|
||||
},
|
||||
riskModels: {
|
||||
...mockOverviewData.riskModels,
|
||||
|
||||
@@ -31,7 +31,10 @@ const loadOverviewDataBlock = source.match(
|
||||
assert(loadOverviewDataBlock, "入口页应继续并发请求仪表盘、风险人员、模型卡片、涉疑交易和员工负面征信");
|
||||
[
|
||||
"getOverviewDashboard(this.projectId)",
|
||||
"getOverviewRiskPeople(this.projectId)",
|
||||
"getOverviewRiskPeople({",
|
||||
"projectId: this.projectId",
|
||||
"pageNum: 1",
|
||||
"pageSize: 5",
|
||||
"getOverviewRiskModelCards(this.projectId)",
|
||||
"getOverviewSuspiciousTransactions({",
|
||||
"getOverviewEmployeeCreditNegative({",
|
||||
@@ -41,6 +44,7 @@ assert(loadOverviewDataBlock, "入口页应继续并发请求仪表盘、风险
|
||||
"createOverviewLoadedData",
|
||||
"dashboardData",
|
||||
"riskPeopleData",
|
||||
"riskPeopleData.rows",
|
||||
"riskModelCardsData",
|
||||
"creditNegativeData",
|
||||
].forEach((token) => assert(source.includes(token), token));
|
||||
|
||||
@@ -8,16 +8,20 @@ const source = fs.readFileSync(
|
||||
);
|
||||
|
||||
[
|
||||
"sectionData.overviewList",
|
||||
"sectionData.rows",
|
||||
"normalizeOverviewRows",
|
||||
"normalizeRiskPointTags",
|
||||
"riskCount",
|
||||
"riskPoint",
|
||||
"modelCount",
|
||||
"pageNum",
|
||||
"pageSize",
|
||||
"total",
|
||||
"riskLevelType",
|
||||
].forEach((token) => assert(source.includes(token), token));
|
||||
|
||||
assert(!source.includes("sectionData.topRiskList"), "不应再绑定TOP10列表");
|
||||
assert(!source.includes("sectionData.overviewList"), "风险人员列表不应再绑定 overviewList");
|
||||
|
||||
assert(!source.includes("scope.row.riskLevelType || 'danger'"), "riskLevelType fallback");
|
||||
assert(source.includes('scope.row.actionLabel || "查看详情"'), "actionLabel fallback");
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
const assert = require("assert");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const source = fs.readFileSync(
|
||||
path.resolve(__dirname, "../../src/views/ccdiProject/components/detail/PreliminaryCheck.vue"),
|
||||
"utf8"
|
||||
);
|
||||
const mockSource = fs.readFileSync(
|
||||
path.resolve(__dirname, "../../src/views/ccdiProject/components/detail/preliminaryCheck.mock.js"),
|
||||
"utf8"
|
||||
);
|
||||
|
||||
[
|
||||
"getOverviewRiskPeople({",
|
||||
"projectId: this.projectId",
|
||||
"pageNum: 1",
|
||||
"pageSize: 5",
|
||||
"riskPeopleData.rows",
|
||||
].forEach((token) => assert(source.includes(token), token));
|
||||
|
||||
[
|
||||
"rows",
|
||||
"total",
|
||||
"pageNum",
|
||||
"pageSize",
|
||||
].forEach((token) => assert(mockSource.includes(token), `riskPeople 应保存 ${token}`));
|
||||
@@ -0,0 +1,32 @@
|
||||
const assert = require("assert");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const entrySource = fs.readFileSync(
|
||||
path.resolve(__dirname, "../../src/views/ccdiProject/components/detail/PreliminaryCheck.vue"),
|
||||
"utf8"
|
||||
);
|
||||
const sectionSource = fs.readFileSync(
|
||||
path.resolve(__dirname, "../../src/views/ccdiProject/components/detail/RiskPeopleSection.vue"),
|
||||
"utf8"
|
||||
);
|
||||
|
||||
[
|
||||
':project-id="projectId"',
|
||||
':section-data="currentData.riskPeople"',
|
||||
].forEach((token) => assert(entrySource.includes(token), token));
|
||||
|
||||
[
|
||||
"sectionData.rows",
|
||||
"pageNum",
|
||||
"pageSize",
|
||||
"total",
|
||||
"<pagination",
|
||||
':page-sizes="[5]"',
|
||||
"handlePageChange",
|
||||
"loadRiskPeoplePage",
|
||||
"getOverviewRiskPeople",
|
||||
"tableLoading",
|
||||
].forEach((token) => assert(sectionSource.includes(token), token));
|
||||
|
||||
assert(!sectionSource.includes("if (page === this.pageNum)"), "分页切换不应被同步后的 pageNum 提前拦截");
|
||||
@@ -27,6 +27,14 @@ const source = fs.readFileSync(
|
||||
"/ccdi/project/overview/top-risk-people",
|
||||
].forEach((token) => assert(!source.includes(token), token));
|
||||
|
||||
[
|
||||
"getOverviewRiskPeople(params)",
|
||||
"/ccdi/project/overview/risk-people",
|
||||
"projectId: params.projectId",
|
||||
"pageNum: params.pageNum",
|
||||
"pageSize: params.pageSize",
|
||||
].forEach((token) => assert(source.includes(token), token));
|
||||
|
||||
const riskModelPeopleFn = source.match(
|
||||
/export function getOverviewRiskModelPeople\(params\) \{[\s\S]*?params:\s*\{([\s\S]*?)\}\s*\}\s*\)/m
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user