完成员工亲属资产前端实施
This commit is contained in:
45
ruoyi-ui/tests/unit/staff-family-asset-api-contract.test.js
Normal file
45
ruoyi-ui/tests/unit/staff-family-asset-api-contract.test.js
Normal 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");
|
||||
@@ -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");
|
||||
@@ -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");
|
||||
38
ruoyi-ui/tests/unit/staff-family-asset-submit-flow.test.js
Normal file
38
ruoyi-ui/tests/unit/staff-family-asset-submit-flow.test.js
Normal 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");
|
||||
Reference in New Issue
Block a user