新增开发 Mock 后台菜单与造单能力
非生产环境在后台提供 lewan/feifei 领取造单与 91 查单模拟,CLI 复用同一服务,避免依赖真实平台联调。
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import {
|
||||
AuditOutlined,
|
||||
BugOutlined,
|
||||
DashboardOutlined,
|
||||
FileSearchOutlined,
|
||||
LogoutOutlined,
|
||||
@@ -15,10 +16,11 @@ import {
|
||||
} from '@ant-design/icons'
|
||||
import { App, Button, Dropdown, Layout, Menu, Space, Typography } from 'antd'
|
||||
import type { MenuProps } from 'antd'
|
||||
import { useQuery } from '@tanstack/react-query'
|
||||
import { useMemo, useState } from 'react'
|
||||
import { Outlet, useLocation, useNavigate } from 'react-router'
|
||||
|
||||
import { logoutAdmin } from '@/services/admin'
|
||||
import { fetchDevMockStatus, logoutAdmin } from '@/services/admin'
|
||||
import {
|
||||
clearAdminSession,
|
||||
getAdminRole,
|
||||
@@ -40,6 +42,14 @@ export default function AdminLayout() {
|
||||
const username = getAdminUsername() || 'admin'
|
||||
const expiresAt = getAdminTokenExpiresAt()
|
||||
|
||||
const devMockStatusQuery = useQuery({
|
||||
queryKey: ['admin-dev-mock-status'],
|
||||
queryFn: () => fetchDevMockStatus(),
|
||||
staleTime: 60_000,
|
||||
retry: false,
|
||||
})
|
||||
const devMockEnabled = Boolean(devMockStatusQuery.data?.data?.enabled)
|
||||
|
||||
const menuItems = useMemo<MenuProps['items']>(() => {
|
||||
const operationItems: MenuProps['items'] = [
|
||||
{ key: '/admin/dashboard', icon: <DashboardOutlined />, label: '概览' },
|
||||
@@ -58,6 +68,17 @@ export default function AdminLayout() {
|
||||
},
|
||||
]
|
||||
|
||||
if (devMockEnabled) {
|
||||
items.push({
|
||||
key: 'group-dev',
|
||||
type: 'group',
|
||||
label: '开发',
|
||||
children: [
|
||||
{ key: '/admin/dev-mock', icon: <BugOutlined />, label: '开发 Mock' },
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
if (role === 'admin') {
|
||||
items.push(
|
||||
{
|
||||
@@ -80,7 +101,7 @@ export default function AdminLayout() {
|
||||
}
|
||||
|
||||
return items
|
||||
}, [role])
|
||||
}, [devMockEnabled, role])
|
||||
|
||||
async function submitLogout() {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user