实现员工资产维护前端功能
This commit is contained in:
44
ruoyi-ui/tests/unit/employee-asset-api-contract.test.js
Normal file
44
ruoyi-ui/tests/unit/employee-asset-api-contract.test.js
Normal file
@@ -0,0 +1,44 @@
|
||||
const assert = require("assert");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const baseStaffApiPath = path.resolve(
|
||||
__dirname,
|
||||
"../../src/api/ccdiBaseStaff.js"
|
||||
);
|
||||
const assetApiPath = path.resolve(
|
||||
__dirname,
|
||||
"../../src/api/ccdiAssetInfo.js"
|
||||
);
|
||||
|
||||
assert(fs.existsSync(baseStaffApiPath), "未找到员工 API 文件 ccdiBaseStaff.js");
|
||||
assert(fs.existsSync(assetApiPath), "未找到员工资产 API 文件 ccdiAssetInfo.js");
|
||||
|
||||
const baseStaffSource = fs.readFileSync(baseStaffApiPath, "utf8");
|
||||
const assetSource = fs.readFileSync(assetApiPath, "utf8");
|
||||
|
||||
[
|
||||
"export function addBaseStaff(data)",
|
||||
"export function updateBaseStaff(data)",
|
||||
"data: data",
|
||||
].forEach((token) => {
|
||||
assert(
|
||||
baseStaffSource.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("employee-asset-api-contract test passed");
|
||||
27
ruoyi-ui/tests/unit/employee-asset-import-ui.test.js
Normal file
27
ruoyi-ui/tests/unit/employee-asset-import-ui.test.js
Normal file
@@ -0,0 +1,27 @@
|
||||
const assert = require("assert");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const componentPath = path.resolve(
|
||||
__dirname,
|
||||
"../../src/views/ccdiBaseStaff/index.vue"
|
||||
);
|
||||
const source = fs.readFileSync(componentPath, "utf8");
|
||||
|
||||
[
|
||||
"导入资产信息",
|
||||
"查看员工资产导入失败记录",
|
||||
"assetUpload",
|
||||
"assetPollingTimer",
|
||||
"assetCurrentTaskId",
|
||||
"assetFailureDialogVisible",
|
||||
"employee_asset_import_last_task",
|
||||
"员工资产数据导入",
|
||||
].forEach((token) => {
|
||||
assert(
|
||||
source.includes(token),
|
||||
`员工资产导入 UI 缺少关键结构或状态: ${token}`
|
||||
);
|
||||
});
|
||||
|
||||
console.log("employee-asset-import-ui test passed");
|
||||
@@ -0,0 +1,45 @@
|
||||
const assert = require("assert");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const componentPath = path.resolve(
|
||||
__dirname,
|
||||
"../../src/views/ccdiBaseStaff/index.vue"
|
||||
);
|
||||
const source = fs.readFileSync(componentPath, "utf8");
|
||||
|
||||
[
|
||||
"<el-dialog :title=\"title\" :visible.sync=\"open\" width=\"80%\"",
|
||||
"<el-dialog title=\"员工详情\" :visible.sync=\"detailOpen\" width=\"80%\"",
|
||||
"资产信息",
|
||||
"新增资产",
|
||||
"handleAddAsset()",
|
||||
"handleRemoveAsset(index)",
|
||||
"createEmptyAssetRow(defaultPersonId = \"\")",
|
||||
"暂无资产信息,请点击新增资产",
|
||||
"新增、编辑时无需填写实际持有人身份证号",
|
||||
"系统会默认带入并保留已有归属信息",
|
||||
"暂无资产信息",
|
||||
"ownerType",
|
||||
"prop=\"assetInfoList\"",
|
||||
"assetStatusOptions",
|
||||
"<el-select v-model=\"scope.row.assetStatus\" placeholder=\"请选择资产状态\">",
|
||||
"<el-option",
|
||||
].forEach((token) => {
|
||||
assert(
|
||||
source.includes(token),
|
||||
`员工资产维护弹窗缺少关键结构: ${token}`
|
||||
);
|
||||
});
|
||||
|
||||
[
|
||||
"placeholder=\"请输入资产实际持有人身份证号\"",
|
||||
"v-model=\"scope.row.personId\"",
|
||||
].forEach((token) => {
|
||||
assert(
|
||||
!source.includes(token),
|
||||
`员工资产维护弹窗不应继续展示字段: ${token}`
|
||||
);
|
||||
});
|
||||
|
||||
console.log("employee-asset-maintenance-layout test passed");
|
||||
29
ruoyi-ui/tests/unit/employee-asset-submit-flow.test.js
Normal file
29
ruoyi-ui/tests/unit/employee-asset-submit-flow.test.js
Normal file
@@ -0,0 +1,29 @@
|
||||
const assert = require("assert");
|
||||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
|
||||
const componentPath = path.resolve(
|
||||
__dirname,
|
||||
"../../src/views/ccdiBaseStaff/index.vue"
|
||||
);
|
||||
const source = fs.readFileSync(componentPath, "utf8");
|
||||
|
||||
[
|
||||
"assetInfoList: []",
|
||||
"normalizeAssetInfoList()",
|
||||
"this.form.assetInfoList = [];",
|
||||
"response.data.assetInfoList || []",
|
||||
"this.form.assetInfoList = this.normalizeAssetInfoList();",
|
||||
"'form.idCard'(newIdCard, oldIdCard)",
|
||||
"syncAssetPersonIds(newIdCard, oldIdCard)",
|
||||
"this.form.assetInfoList.push(this.createEmptyAssetRow(this.form.idCard));",
|
||||
"personId: defaultPersonId || \"\"",
|
||||
"assetStatusOptions.some(option => option.value === asset.assetStatus)",
|
||||
].forEach((token) => {
|
||||
assert(
|
||||
source.includes(token),
|
||||
`员工资产提交流程缺少关键处理: ${token}`
|
||||
);
|
||||
});
|
||||
|
||||
console.log("employee-asset-submit-flow test passed");
|
||||
Reference in New Issue
Block a user