完成员工亲属资产前端实施

This commit is contained in:
wkc
2026-03-13 13:48:12 +08:00
parent d683522cc1
commit 1dc6c66ed2
6 changed files with 844 additions and 14 deletions

View File

@@ -0,0 +1,45 @@
const assert = require("assert");
const fs = require("fs");
const path = require("path");
const relationApiPath = path.resolve(
__dirname,
"../../src/api/ccdiStaffFmyRelation.js"
);
const assetApiPath = path.resolve(
__dirname,
"../../src/api/ccdiAssetInfo.js"
);
assert(fs.existsSync(relationApiPath), "未找到亲属关系 API 文件 ccdiStaffFmyRelation.js");
assert(fs.existsSync(assetApiPath), "未找到资产 API 文件 ccdiAssetInfo.js");
const relationSource = fs.readFileSync(relationApiPath, "utf8");
const assetSource = fs.readFileSync(assetApiPath, "utf8");
[
"export function getRelation(id)",
"export function addRelation(data)",
"export function updateRelation(data)",
"data: data",
].forEach((token) => {
assert(
relationSource.includes(token),
`亲属关系 API 需保持聚合保存契约: ${token}`
);
});
[
"export function importAssetTemplate()",
"export function importAssetData(data)",
"export function getAssetImportStatus(taskId)",
"export function getAssetImportFailures(taskId, pageNum, pageSize)",
"/ccdi/assetInfo/importTemplate",
"/ccdi/assetInfo/importData",
"/ccdi/assetInfo/importStatus/",
"/ccdi/assetInfo/importFailures/",
].forEach((token) => {
assert(assetSource.includes(token), `亲属资产 API 缺少关键契约: ${token}`);
});
console.log("staff-family-asset-api-contract test passed");

View File

@@ -0,0 +1,40 @@
const assert = require("assert");
const fs = require("fs");
const path = require("path");
const componentPath = path.resolve(
__dirname,
"../../src/views/ccdiStaffFmyRelation/index.vue"
);
const source = fs.readFileSync(componentPath, "utf8");
[
"导入亲属资产信息",
"查看亲属资产导入失败记录",
"assetUpload",
"assetImportPollingTimer",
"assetCurrentTaskId",
"assetFailureDialogVisible",
"staff_fmy_asset_import_last_task",
"亲属资产数据导入",
"亲属资产导入失败记录",
"viewAssetImportFailures()",
"handleAssetImport()",
"handleAssetFileSuccess(response)",
"startAssetImportStatusPolling(taskId)",
"getAssetFailureList()",
"clearAssetImportHistory()",
].forEach((token) => {
assert(source.includes(token), `亲属资产导入 UI 缺少关键结构或状态: ${token}`);
});
[
">亲属资产信息</el-divider>",
"暂无亲属资产信息",
"detail-assets-table",
":disabled=\"!isAdd\"",
].forEach((token) => {
assert(source.includes(token), `详情展示或禁改逻辑缺少关键结构: ${token}`);
});
console.log("staff-family-asset-detail-import-ui test passed");

View File

@@ -0,0 +1,42 @@
const assert = require("assert");
const fs = require("fs");
const path = require("path");
const componentPath = path.resolve(
__dirname,
"../../src/views/ccdiStaffFmyRelation/index.vue"
);
const source = fs.readFileSync(componentPath, "utf8");
[
"亲属资产信息",
"新增资产",
"handleAddAsset()",
"handleRemoveAsset(index)",
"createEmptyAssetRow()",
"请先填写关系人证件信息",
"暂无亲属资产信息,请点击新增资产",
"prop=\"assetInfoList\"",
"v-model=\"scope.row.assetMainType\"",
"v-model=\"scope.row.assetSubType\"",
"v-model=\"scope.row.assetName\"",
"v-model=\"scope.row.assetStatus\"",
"v-model=\"scope.row.remarks\"",
].forEach((token) => {
assert(
source.includes(token),
`亲属资产维护弹窗缺少关键结构: ${token}`
);
});
[
"v-model=\"scope.row.familyId\"",
"v-model=\"scope.row.personId\"",
].forEach((token) => {
assert(
!source.includes(token),
`亲属资产维护弹窗不应暴露归属字段: ${token}`
);
});
console.log("staff-family-asset-maintenance-layout test passed");

View File

@@ -0,0 +1,38 @@
const assert = require("assert");
const fs = require("fs");
const path = require("path");
const componentPath = path.resolve(
__dirname,
"../../src/views/ccdiStaffFmyRelation/index.vue"
);
const source = fs.readFileSync(componentPath, "utf8");
[
"assetInfoList: []",
"normalizeAssetInfoList()",
"response.data.assetInfoList || []",
"this.form.assetInfoList = this.normalizeAssetInfoList();",
"this.form.assetInfoList.push(this.createEmptyAssetRow());",
"relationCertType: null",
"relationCertNo: null",
].forEach((token) => {
assert(
source.includes(token),
`亲属资产提交流程缺少关键处理: ${token}`
);
});
[
"delete payload.assetInfoList[index].familyId",
"delete payload.assetInfoList[index].personId",
"delete asset.familyId",
"delete asset.personId",
].forEach((token) => {
assert(
source.includes(token),
`提交前需要清理归属字段: ${token}`
);
});
console.log("staff-family-asset-submit-flow test passed");