206 lines
7.6 KiB
Python
206 lines
7.6 KiB
Python
"""运营端菜单接口(与 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})
|