diff --git a/apps/frontend/src/layouts/WorkerLayout.tsx b/apps/frontend/src/layouts/WorkerLayout.tsx
index 9b0c86ac..78a0d42d 100644
--- a/apps/frontend/src/layouts/WorkerLayout.tsx
+++ b/apps/frontend/src/layouts/WorkerLayout.tsx
@@ -4,11 +4,12 @@ import {
ShoppingOutlined,
UserOutlined,
} from '@ant-design/icons'
-import { App, Button, Layout, Menu, Space, Typography } from 'antd'
+import { App, Button, Layout, Menu, Space, Tag, Typography } from 'antd'
import type { MenuProps } from 'antd'
import { Outlet, useLocation, useNavigate } from 'react-router'
import { logoutWorker } from '@/services/worker'
+import { useIsMobile } from '@/utils/use-is-mobile'
import { clearWorkerSession, getWorkerStatus, getWorkerUsername } from '@/utils/worker-auth'
const menuItems: MenuProps['items'] = [
@@ -17,12 +18,20 @@ const menuItems: MenuProps['items'] = [
{ key: '/worker/profile', icon: , label: '个人中心' },
]
+const tabItems = [
+ { key: '/worker/hall', icon: ShoppingOutlined, label: '抢单大厅' },
+ { key: '/worker/orders', icon: ContainerOutlined, label: '我的订单' },
+ { key: '/worker/profile', icon: UserOutlined, label: '个人中心' },
+]
+
export default function WorkerLayout() {
const navigate = useNavigate()
const location = useLocation()
- const { message } = App.useApp()
+ const isMobile = useIsMobile()
+ const { message, modal } = App.useApp()
const username = getWorkerUsername() || '打手'
const status = getWorkerStatus()
+ const currentKey = resolveSelectedKey(location.pathname)
async function submitLogout() {
try {
@@ -36,6 +45,72 @@ export default function WorkerLayout() {
}
}
+ function confirmLogout() {
+ modal.confirm({
+ title: '确认退出登录',
+ content: '退出后需要重新登录才能继续抢单和处理订单。',
+ okText: '确认退出',
+ cancelText: '取消',
+ okButtonProps: { danger: true },
+ onOk: submitLogout,
+ })
+ }
+
+ if (isMobile) {
+ return (
+
+
+
+
+
+
+
+
+
+ )
+ }
+
return (
@@ -53,7 +128,7 @@ export default function WorkerLayout() {