调整部分前端布局和后端增删改逻辑

This commit is contained in:
焦龙言
2026-09-28 18:29:10 +08:00
parent 17d991a74a
commit a539b4eb71
57 changed files with 87382 additions and 895 deletions
@@ -159,21 +159,95 @@ test("PDA 路由和工作台入口覆盖五类现场业务", async () => {
assert.equal(pagePaths.has(pagePath), true, `${pagePath} 路由缺失`);
}
const workSource = await readFile(
path.join(appRoot, "src/pages/work/index.vue"),
"utf8",
const [workSource, menuSource] = await Promise.all([
readFile(path.join(appRoot, "src/pages/work/index.vue"), "utf8"),
readFile(path.join(appRoot, "src/config/businessMenu.js"), "utf8"),
]);
assert.match(workSource, /hasPermi\(entry\.permission\)/);
assert.match(menuSource, /business:inbound:list/);
assert.match(menuSource, /business:filling:list/);
assert.match(menuSource, /business:shipment:list/);
assert.match(menuSource, /business:usage:list/);
assert.match(menuSource, /business:return:list/);
assert.match(menuSource, /pages\/business\/inbound\/index/);
assert.match(menuSource, /pages\/business\/filling\/index/);
assert.match(menuSource, /pages\/business\/shipment\/index/);
assert.match(menuSource, /pages\/business\/usage\/index/);
assert.match(menuSource, /pages\/business\/return\/index/);
});
test("首页展示真实运营驾驶舱,不保留模板入口和虚假统计", async () => {
const source = await readFile(path.join(appRoot, "src/pages/index.vue"), "utf8");
assert.match(source, /listScanExceptions/);
assert.match(source, /最近扫码异常/);
assert.match(source, /TestBatchBanner/);
assert.doesNotMatch(
source,
/快捷入口|新闻|计划|请假申请|周报|工作效率|新通知|待办任务|85%/,
);
assert.match(workSource, /hasPermiOr/);
assert.match(workSource, /business:inbound/);
assert.match(workSource, /business:filling/);
assert.match(workSource, /business:shipment/);
assert.match(workSource, /business:usage/);
assert.match(workSource, /business:return/);
assert.match(workSource, /pages\/business\/inbound\/index/);
assert.match(workSource, /pages\/business\/filling\/index/);
assert.match(workSource, /pages\/business\/shipment\/index/);
assert.match(workSource, /pages\/business\/usage\/index/);
assert.match(workSource, /pages\/business\/return\/index/);
});
test("工作台只展示真实业务入口并使用后端列表权限", async () => {
const [workSource, menuModule] = await Promise.all([
readFile(path.join(appRoot, "src/pages/work/index.vue"), "utf8"),
importSource("src/config/businessMenu.js"),
]);
assert.deepEqual(
menuModule.businessMenuEntries.map(({ title, permission, path: entryPath }) => ({
title,
permission,
path: entryPath,
})),
[
{
title: "仓库入库",
permission: "business:inbound:list",
path: "/pages/business/inbound/index",
},
{
title: "工厂装填",
permission: "business:filling:list",
path: "/pages/business/filling/index",
},
{
title: "发货出库",
permission: "business:shipment:list",
path: "/pages/business/shipment/index",
},
{
title: "客户现场使用",
permission: "business:usage:list",
path: "/pages/business/usage/index",
},
{
title: "退回仓库",
permission: "business:return:list",
path: "/pages/business/return/index",
},
],
);
assert.match(workSource, /businessMenuEntries/);
assert.match(workSource, /hasPermi\(entry\.permission\)/);
assert.match(workSource, /navigateTo\(entry\.path\)/);
assert.doesNotMatch(workSource, /AI 生产力|智能对话|图像生成|系统管理|handleBuilding|模块建设中/);
});
test("运营驾驶舱 API 对接现有扫码异常接口", async () => {
const source = await readFile(path.join(appRoot, "src/api/business/dashboard.js"), "utf8");
assert.match(source, /export function listScanExceptions\(/);
assert.match(source, /url:\s*["']\/business\/dashboard\/scan-exceptions["']/);
assert.match(source, /method:\s*["']get["']/);
});
test("APP 页面标题与后端业务菜单名称一致", async () => {
const [pages, fillingSource] = await Promise.all([
JSON.parse(await readFile(path.join(appRoot, "src/pages.json"), "utf8")),
readFile(path.join(appRoot, "src/pages/business/filling/index.vue"), "utf8"),
]);
const fillingPage = pages.pages.find((page) => page.path === "pages/business/filling/index");
assert.equal(fillingPage?.style?.navigationBarTitleText, "工厂装填");
assert.match(fillingSource, />工厂装填</);
});
test("PDA 测试模式附加批次请求头并在五个业务页持续提示", async () => {