"""运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,供后端菜单模式联调)""" from fastapi import APIRouter, Depends from app.core.menu_guard import require_admin_or_super_admin from app.core.response import success_response router = APIRouter(prefix="/web/menu", tags=["菜单管理"]) # 与 web-admin/src/router/modules/sqxp.ts 一致:Demo、系统管理、基础信息管理 等 STATIC_MENU_TREE = [ { "id": "10000000000000000000000000000002", "name": "Demo", "path": "/demo", "component": "/index/index", "meta": { "title": "Demo", "icon": "ri:layout-grid-line", "keepAlive": False, "roles": ["admin"], }, "children": [ { "id": "10000000000000000000000000000001_child", "name": "Console", "path": "console", "component": "/dashboard/console/index", "meta": { "title": "工作台", "icon": "ri:home-smile-2-line", "keepAlive": True, "fixedTab": True, "menuCode": "dashboard", }, }, { "id": "10000000000000000000000000000005", "name": "Unit", "path": "unit", "component": "/system/unit/index", "meta": {"title": "商品单位", "keepAlive": True}, }, { "id": "10000000000000000000000000000021", "name": "OrderList", "path": "order", "component": "/system/order/index", "meta": {"title": "订单列表", "keepAlive": True}, }, { "id": "10000000000000000000000000000006", "name": "Product", "path": "product", "component": "/system/product/index", "meta": {"title": "商品管理", "keepAlive": True}, }, { "id": "10000000000000000000000000000004", "name": "Category", "path": "category", "component": "/system/category/index", "meta": {"title": "商品分类", "keepAlive": True}, }, { "id": "10000000000000000000000000000007", "name": "User", "path": "user", "component": "/system/user/index", "meta": {"title": "用户管理", "keepAlive": True}, }, { "id": "10000000000000000000000000000008", "name": "UserDetail", "path": "user/detail", "component": "/system/user/detail", "meta": {"title": "用户详情", "isHide": True, "keepAlive": True}, }, ], }, { "id": "20000000000000000000000000000001", "name": "System", "path": "/system", "component": "/index/index", "meta": { "title": "系统管理", "icon": "ri:settings-3-line", "keepAlive": False, "roles": ["admin"], }, "children": [ { "id": "20000000000000000000000000000002", "name": "Tenant", "path": "tenant", "component": "/system/tenant/index", "meta": {"title": "租户管理", "keepAlive": True}, }, ], }, { "id": "40000000000000000000000000000001", "name": "BasicInfo", "path": "/basic-info", "component": "/index/index", "meta": { "title": "基础信息管理", "icon": "ri:folder-user-line", "keepAlive": False, "roles": ["admin"], }, "children": [ { "id": "40000000000000000000000000000002", "name": "BizCustomer", "path": "customer", "component": "/basic-info/customer/index", "meta": {"title": "客户管理", "keepAlive": True}, }, { "id": "40000000000000000000000000000003", "name": "BizCellSampleType", "path": "cell-sample-type", "component": "/basic-info/cell-sample-type/index", "meta": {"title": "细胞样本类型管理", "keepAlive": True}, }, { "id": "40000000000000000000000000000004", "name": "BizCollectionRegion", "path": "collection-region", "component": "/basic-info/collection-region/index", "meta": {"title": "采集地区及医院管理", "keepAlive": True}, }, { "id": "40000000000000000000000000000005", "name": "BizCollectionProtocolNo", "path": "collection-protocol-no", "component": "/basic-info/collection-protocol-no/index", "meta": {"title": "采集协议号管理", "keepAlive": True}, }, { "id": "40000000000000000000000000000006", "name": "BizSampleCode", "path": "sample-code", "component": "/basic-info/sample-code/index", "meta": {"title": "样本编码管理", "keepAlive": True}, }, ], }, { "id": "50000000000000000000000000000001", "name": "CellStorage", "path": "/cell-storage", "component": "/index/index", "meta": { "title": "细胞存储管理", "icon": "ri:test-tube-line", "keepAlive": False, "roles": ["admin"], }, "children": [ { "id": "50000000000000000000000000000002", "name": "CellStorageProtocol", "path": "protocol", "component": "/cell-storage/protocol/index", "meta": {"title": "采集协议单", "keepAlive": True}, }, { "id": "50000000000000000000000000000007", "name": "CellStoragePaymentInfo", "path": "payment-info", "component": "/cell-storage/payment-info/index", "meta": {"title": "缴费信息", "keepAlive": True}, }, { "id": "50000000000000000000000000000003", "name": "CellStorageProtocolAudit", "path": "protocol-audit", "component": "/cell-storage/protocol-audit/index", "meta": {"title": "采集协议单审核", "keepAlive": True}, }, { "id": "50000000000000000000000000000004", "name": "CellStoragePaymentConfirm", "path": "payment-confirm", "component": "/cell-storage/payment-confirm/index", "meta": {"title": "缴费确认(财务)", "keepAlive": True}, }, { "id": "50000000000000000000000000000005", "name": "CellStorageRefundConfirm", "path": "refund-confirm", "component": "/cell-storage/refund-confirm/index", "meta": {"title": "退费确认(财务)", "keepAlive": True}, }, ], }, ] @router.get("/list") async def get_menu_list(_user: dict = Depends(require_admin_or_super_admin)): """获取菜单列表(与当前前端路由一致)""" return success_response({"menuList": STATIC_MENU_TREE})