Bläddra i källkod

fix: 补货员菜单编辑失败 + 权限定义缺失

- 菜单编辑 openDialog 补充 id 字段映射,修复所有菜单修改失败的问题
- data_permission.sql 补充补货员管理和设备补货单共11条权限记录
- 新增增量迁移SQL,可直接在生产库执行

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
skyline 23 timmar sedan
förälder
incheckning
7558ef25cb

+ 27 - 0
docs/database/migration_add_replenisher_permissions.sql

@@ -0,0 +1,27 @@
+-- =====================================================
+-- 增量迁移: 补货员管理 + 设备补货单 权限数据
+-- 执行方式: 在 haha-admin 数据库中直接执行此 SQL
+-- =====================================================
+
+-- 补货员管理模块权限
+INSERT IGNORE INTO t_data_permission (permission_code, permission_name, module_code, module_name, operation_type, description, sort_order) VALUES
+('replenisher:create', '添加补货员', 'replenisher', '补货员管理', 'create', '创建新补货员', 131),
+('replenisher:read', '查询补货员', 'replenisher', '补货员管理', 'read', '查看补货员列表和详情', 132),
+('replenisher:update', '修改补货员', 'replenisher', '补货员管理', 'update', '编辑补货员信息和绑定设备', 133),
+('replenisher:delete', '删除补货员', 'replenisher', '补货员管理', 'delete', '删除补货员', 134);
+
+-- 设备补货单模块权限
+INSERT IGNORE INTO t_data_permission (permission_code, permission_name, module_code, module_name, operation_type, description, sort_order) VALUES
+('replenishment:order:create', '创建补货单', 'replenishment-order', '设备补货单', 'create', '创建新补货单', 141),
+('replenishment:order:read', '查询补货单', 'replenishment-order', '设备补货单', 'read', '查看补货单列表和详情', 142),
+('replenishment:order:update', '修改补货单', 'replenishment-order', '设备补货单', 'update', '编辑补货单信息', 143),
+('replenishment:order:delete', '删除补货单', 'replenishment-order', '设备补货单', 'delete', '删除补货单', 144),
+('replenishment:order:submit', '提交补货单', 'replenishment-order', '设备补货单', 'execute', '提交补货单', 145),
+('replenishment:order:sync', '同步ERP', 'replenishment-order', '设备补货单', 'execute', '同步补货单到ERP系统', 146),
+('replenishment:order:complete', '完成补货单', 'replenishment-order', '设备补货单', 'execute', '完成补货单', 147);
+
+-- 为新权限分配超级管理员角色(role_id=1)
+INSERT IGNORE INTO t_role_permission (role_id, permission_id)
+SELECT 1, id FROM t_data_permission
+WHERE module_code IN ('replenisher', 'replenishment-order')
+  AND id NOT IN (SELECT permission_id FROM t_role_permission WHERE role_id = 1);

+ 1 - 0
haha-admin-web/src/views/system/menu/utils/hook.tsx

@@ -191,6 +191,7 @@ export function useMenu() {
       title: `${title}菜单`,
       props: {
         formInline: {
+          id: row?.id,
           menuType: row?.menuType ?? 0,
           higherMenuOptions: formatHigherMenuOptions(cloneDeep(dataList.value)),
           parentId: row?.parentId ?? 0,

+ 2 - 0
haha-admin-web/src/views/system/menu/utils/types.ts

@@ -1,4 +1,6 @@
 interface FormItemProps {
+  /** 菜单ID(编辑时必传)*/
+  id?: number;
   /** 菜单类型(0代表菜单、1代表iframe、2代表外链、3代表按钮)*/
   menuType: number;
   higherMenuOptions: Record<string, unknown>[];

+ 17 - 0
haha-admin/src/main/resources/sql/data_permission.sql

@@ -124,6 +124,23 @@ INSERT INTO t_data_permission (permission_code, permission_name, module_code, mo
 ('customer:read', '查询客户', 'customer', '客户管理', 'read', '查看客户列表和详情', 121),
 ('customer:update', '修改客户', 'customer', '客户管理', 'update', '编辑客户信息', 123);
 
+-- 补货员管理模块
+INSERT INTO t_data_permission (permission_code, permission_name, module_code, module_name, operation_type, description, sort_order) VALUES
+('replenisher:create', '添加补货员', 'replenisher', '补货员管理', 'create', '创建新补货员', 131),
+('replenisher:read', '查询补货员', 'replenisher', '补货员管理', 'read', '查看补货员列表和详情', 132),
+('replenisher:update', '修改补货员', 'replenisher', '补货员管理', 'update', '编辑补货员信息和绑定设备', 133),
+('replenisher:delete', '删除补货员', 'replenisher', '补货员管理', 'delete', '删除补货员', 134);
+
+-- 设备补货单模块
+INSERT INTO t_data_permission (permission_code, permission_name, module_code, module_name, operation_type, description, sort_order) VALUES
+('replenishment:order:create', '创建补货单', 'replenishment-order', '设备补货单', 'create', '创建新补货单', 141),
+('replenishment:order:read', '查询补货单', 'replenishment-order', '设备补货单', 'read', '查看补货单列表和详情', 142),
+('replenishment:order:update', '修改补货单', 'replenishment-order', '设备补货单', 'update', '编辑补货单信息', 143),
+('replenishment:order:delete', '删除补货单', 'replenishment-order', '设备补货单', 'delete', '删除补货单', 144),
+('replenishment:order:submit', '提交补货单', 'replenishment-order', '设备补货单', 'execute', '提交补货单', 145),
+('replenishment:order:sync', '同步ERP', 'replenishment-order', '设备补货单', 'execute', '同步补货单到ERP系统', 146),
+('replenishment:order:complete', '完成补货单', 'replenishment-order', '设备补货单', 'execute', '完成补货单', 147);
+
 -- =====================================================
 -- 为超级管理员角色(role.id=1)分配所有权限
 -- =====================================================