2026-10-05-unhide-payment-info-menu.sql 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. -- =============================================================================
  2. -- 缴费信息独立菜单:显示与排序(2026-10-05)
  3. -- =============================================================================
  4. --
  5. -- 【主路径 — 前端固定菜单】
  6. -- 当前 Web 管理端使用 VITE_ACCESS_MODE=frontend,菜单树由以下两处维护,Task 4 已更新:
  7. -- - backend/app/api/menu.py → CellStoragePaymentInfo(id 904b5173519411f1944300163e3bdd96)
  8. -- - web-admin/src/router/modules/sqxp.ts → 预签约订单与样本信息管理之间,已取消 isHide
  9. -- 前端模式环境 **无需执行** 本脚本;保留本文件供 DB 菜单模式或角色授权同步参考。
  10. --
  11. -- 【可选 — DB 菜单模式】
  12. -- sys_menu 列名以 backend/app/models/models.py :: SysMenu 为准(docs/sql/zkxw.sql 无 sys_menu 段)。
  13. -- visible: '1'=显示, '0'=隐藏(与 menu.py meta.isHide 映射一致,见 reorder_web_menus.py)
  14. --
  15. -- 细胞存储目录 parent_id: CEL00000000000000000000000000001
  16. -- 预签约订单 id: 50000000000000000000000000000020
  17. -- 缴费信息 id: 904b5173519411f1944300163e3bdd96 path=payment-info perms=cellStorage:paymentInfo:list
  18. -- 样本信息 id: 50000000000000000000000000000013
  19. -- =============================================================================
  20. -- 1) 若库中已有该菜单(按 id 或 perms 匹配):取消隐藏并调整排序至预签约与样本信息之间
  21. UPDATE sys_menu
  22. SET del_flag = 0,
  23. visible = '1',
  24. status = '1',
  25. order_num = (
  26. SELECT mid_order FROM (
  27. SELECT COALESCE(MAX(m2.order_num), 0) AS mid_order
  28. FROM sys_menu m2
  29. WHERE m2.del_flag = 0
  30. AND (
  31. m2.id = '50000000000000000000000000000020'
  32. OR m2.perms = 'cell-storage:presign-order:list'
  33. OR m2.path = 'presign-order'
  34. )
  35. ) t
  36. ) + 1,
  37. update_time = NOW()
  38. WHERE del_flag = 0
  39. AND (
  40. id = '904b5173519411f1944300163e3bdd96'
  41. OR perms = 'cellStorage:paymentInfo:list'
  42. OR (path = 'payment-info' AND parent_id = 'CEL00000000000000000000000000001')
  43. );
  44. -- 2) 若不存在则幂等插入(仅 DB 菜单模式需要;前端模式可跳过)
  45. INSERT INTO sys_menu (
  46. id, menu_name, parent_id, menu_type, path, component, perms,
  47. is_frame, visible, status, tenant_no, order_num, remark,
  48. create_by, create_dept_id, create_time, update_by, update_time, del_flag
  49. )
  50. SELECT
  51. '904b5173519411f1944300163e3bdd96',
  52. '缴费信息',
  53. 'CEL00000000000000000000000000001',
  54. 'C',
  55. 'payment-info',
  56. '/cell-storage/payment-info/index',
  57. 'cellStorage:paymentInfo:list',
  58. 1,
  59. '1',
  60. '1',
  61. 'zkxw',
  62. COALESCE((
  63. SELECT MAX(m2.order_num) + 1
  64. FROM sys_menu m2
  65. WHERE m2.del_flag = 0
  66. AND (
  67. m2.id = '50000000000000000000000000000020'
  68. OR m2.perms = 'cell-storage:presign-order:list'
  69. )
  70. ), 1),
  71. '细胞存储:缴费信息(流程看板 + 按样本),独立于采集协议单',
  72. NULL,
  73. '',
  74. NOW(),
  75. NULL,
  76. NOW(),
  77. 0
  78. FROM DUAL
  79. WHERE NOT EXISTS (
  80. SELECT 1 FROM sys_menu m
  81. WHERE m.del_flag = 0
  82. AND (
  83. m.id = '904b5173519411f1944300163e3bdd96'
  84. OR m.perms = 'cellStorage:paymentInfo:list'
  85. )
  86. );
  87. -- 3) 可选:为已有角色补授权(将 super_admin 角色 id 替换为实际值后取消注释)
  88. -- INSERT INTO sys_role_menu (id, role_id, menu_id, tenant_no, create_time, update_time, del_flag)
  89. -- SELECT UUID(), '<role_id>', '904b5173519411f1944300163e3bdd96', 'zkxw', NOW(), NOW(), 0
  90. -- FROM DUAL
  91. -- WHERE NOT EXISTS (
  92. -- SELECT 1 FROM sys_role_menu rm
  93. -- WHERE rm.menu_id = '904b5173519411f1944300163e3bdd96' AND rm.role_id = '<role_id>' AND rm.del_flag = 0
  94. -- );