From ed3858cff34585313a88bc893bb9395717c2ad2d Mon Sep 17 00:00:00 2001 From: zetaloop Date: Fri, 20 Feb 2026 20:36:27 +0800 Subject: [PATCH] fix: sidebar mobile responsive and footer link clickability --- app/(account)/layout.tsx | 4 +- app/(dashboard)/dashboard/page.tsx | 12 +--- app/(dashboard)/layout.tsx | 4 +- app/(main)/community/page.tsx | 7 +-- app/(main)/post/[id]/page.tsx | 7 +-- app/(order)/order/[id]/page.tsx | 12 +--- app/globals.css | 2 + components/footer.tsx | 12 +++- lib/constants.ts | 18 ++++++ lib/mock-data.ts | 94 +++++++++++++++--------------- 10 files changed, 86 insertions(+), 86 deletions(-) create mode 100644 lib/constants.ts diff --git a/app/(account)/layout.tsx b/app/(account)/layout.tsx index e34dc15..551e477 100644 --- a/app/(account)/layout.tsx +++ b/app/(account)/layout.tsx @@ -6,7 +6,9 @@ export default function AccountLayout({ children }: { children: React.ReactNode
- +
+ +
{children}
diff --git a/app/(dashboard)/dashboard/page.tsx b/app/(dashboard)/dashboard/page.tsx index f73edb2..6534f24 100644 --- a/app/(dashboard)/dashboard/page.tsx +++ b/app/(dashboard)/dashboard/page.tsx @@ -6,20 +6,10 @@ import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Progress } from "@/components/ui/progress" +import { statusLabels } from "@/lib/constants" import { mockOrders, mockPlayers, mockServices, mockShops } from "@/lib/mock-data" import { useAuthStore } from "@/store/auth" -const statusLabels: Record = { - pending_payment: "待支付", - pending_accept: "待接单", - in_progress: "进行中", - pending_close: "待结单", - pending_review: "待评价", - disputed: "争议中", - completed: "已完成", - cancelled: "已取消", -} - export default function DashboardPage() { const { currentRole } = useAuthStore() const isOwner = currentRole === "owner" diff --git a/app/(dashboard)/layout.tsx b/app/(dashboard)/layout.tsx index a731a1f..5bacc59 100644 --- a/app/(dashboard)/layout.tsx +++ b/app/(dashboard)/layout.tsx @@ -6,7 +6,9 @@ export default function DashboardLayout({ children }: { children: React.ReactNod
- +
+ +
{children}
diff --git a/app/(main)/community/page.tsx b/app/(main)/community/page.tsx index b5552b0..e0cb707 100644 --- a/app/(main)/community/page.tsx +++ b/app/(main)/community/page.tsx @@ -4,14 +4,9 @@ import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { Card, CardContent, CardFooter, CardHeader } from "@/components/ui/card" +import { roleLabels } from "@/lib/constants" import { mockPosts } from "@/lib/mock-data" -const roleLabels: Record = { - consumer: "消费者", - player: "打手", - owner: "店主", -} - export default function CommunityPage() { return (
diff --git a/app/(main)/post/[id]/page.tsx b/app/(main)/post/[id]/page.tsx index 6b97dc0..7075fc4 100644 --- a/app/(main)/post/[id]/page.tsx +++ b/app/(main)/post/[id]/page.tsx @@ -8,14 +8,9 @@ import { Button } from "@/components/ui/button" import { Card, CardContent, CardHeader } from "@/components/ui/card" import { Separator } from "@/components/ui/separator" import { Textarea } from "@/components/ui/textarea" +import { roleLabels } from "@/lib/constants" import { mockComments, mockOrders, mockPosts } from "@/lib/mock-data" -const roleLabels: Record = { - consumer: "消费者", - player: "打手", - owner: "店主", -} - export default async function PostDetailPage({ params }: { params: Promise<{ id: string }> }) { const { id } = await params const post = mockPosts.find((p) => p.id === id) diff --git a/app/(order)/order/[id]/page.tsx b/app/(order)/order/[id]/page.tsx index edc2f2c..dcfdf5a 100644 --- a/app/(order)/order/[id]/page.tsx +++ b/app/(order)/order/[id]/page.tsx @@ -14,20 +14,10 @@ import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Separator } from "@/components/ui/separator" +import { statusLabels } from "@/lib/constants" import { mockChatSessions, mockOrders, mockReviews } from "@/lib/mock-data" import type { OrderStatus } from "@/lib/types" -const statusLabels: Record = { - pending_payment: "待支付", - pending_accept: "待接单", - in_progress: "进行中", - pending_close: "待结单", - pending_review: "待评价", - disputed: "争议中", - completed: "已完成", - cancelled: "已取消", -} - const statusSteps: OrderStatus[] = [ "pending_payment", "pending_accept", diff --git a/app/globals.css b/app/globals.css index d767ad6..156fa1e 100644 --- a/app/globals.css +++ b/app/globals.css @@ -122,5 +122,7 @@ } body { @apply bg-background text-foreground; + font-family: + var(--font-geist-sans), "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif; } } diff --git a/components/footer.tsx b/components/footer.tsx index 7120a65..60bd145 100644 --- a/components/footer.tsx +++ b/components/footer.tsx @@ -30,9 +30,15 @@ export function Footer() {

支持

diff --git a/lib/constants.ts b/lib/constants.ts new file mode 100644 index 0000000..2bf204e --- /dev/null +++ b/lib/constants.ts @@ -0,0 +1,18 @@ +import type { OrderStatus } from "./types" + +export const statusLabels: Record = { + pending_payment: "待支付", + pending_accept: "待接单", + in_progress: "进行中", + pending_close: "待结单", + pending_review: "待评价", + disputed: "争议中", + completed: "已完成", + cancelled: "已取消", +} + +export const roleLabels: Record = { + consumer: "消费者", + player: "打手", + owner: "店主", +} diff --git a/lib/mock-data.ts b/lib/mock-data.ts index 3fc6f29..4c4d774 100644 --- a/lib/mock-data.ts +++ b/lib/mock-data.ts @@ -20,7 +20,7 @@ export const mockUsers: User[] = [ { id: "u1", username: "xm_2003", - nickname: "小明同学", + nickname: "小明", avatar: "/avatars/u1.jpg", role: "consumer", phone: "138****1234", @@ -59,7 +59,7 @@ export const mockUsers: User[] = [ { id: "u5", username: "甜甜酱w", - nickname: "甜甜", + nickname: "甜甜酱", avatar: "/avatars/u5.jpg", role: "player", bio: "主辅和原神日常,社恐但不摆烂", @@ -323,11 +323,11 @@ export const mockReviews: Review[] = [ id: "r1", orderId: "ord2", fromUserId: "u1", - fromUserName: "小明同学", + fromUserName: "小明", fromUserAvatar: "/avatars/u1.jpg", toUserId: "u4", rating: 5, - content: "报点很清楚,基本不用猜人在哪,打着挺舒服", + content: "报点很快,架枪位也会提前说。中间崩了一把,后面拉回来了。", sealed: false, createdAt: "2025-02-15T13:00:00", }, @@ -339,7 +339,7 @@ export const mockReviews: Review[] = [ fromUserAvatar: "/avatars/u4.jpg", toUserId: "u1", rating: 4, - content: "听指挥,节奏跟得上", + content: "人挺好沟通,听指令,不会乱冲。", sealed: false, createdAt: "2025-02-15T13:30:00", }, @@ -347,23 +347,23 @@ export const mockReviews: Review[] = [ id: "r3", orderId: "ord1", fromUserId: "u1", - fromUserName: "小明同学", + fromUserName: "小明", fromUserAvatar: "/avatars/u1.jpg", toUserId: "u2", rating: 4, - content: "思路是有的,就是中间回消息慢了两次", + content: "整体可以,第二把他家里来电话断了几分钟,后面补回来了。", sealed: true, - createdAt: "2025-02-18T20:00:00", + createdAt: "2025-02-19T00:05:00", }, { id: "r4", orderId: "ord5", fromUserId: "u1", - fromUserName: "小明同学", + fromUserName: "小明", fromUserAvatar: "/avatars/u1.jpg", toUserId: "u2", rating: 5, - content: "补位真稳,最后一把逆风也翻了", + content: "补位确实稳。最后一把逆风翻了,爽。", sealed: false, createdAt: "2025-02-08T22:40:00", }, @@ -375,7 +375,7 @@ export const mockReviews: Review[] = [ fromUserAvatar: "/avatars/u2.jpg", toUserId: "u1", rating: 4, - content: "配合不错,输一把也没急", + content: "配合OK,心态稳,输一局也没甩锅。", sealed: false, createdAt: "2025-02-08T22:45:00", }, @@ -383,11 +383,11 @@ export const mockReviews: Review[] = [ id: "r6", orderId: "ord6", fromUserId: "u1", - fromUserName: "小明同学", + fromUserName: "小明", fromUserAvatar: "/avatars/u1.jpg", toUserId: "u5", rating: 3, - content: "日常都清了,但比说好的晚了一点", + content: "日常都做了,就是比我想的晚半小时。", sealed: false, createdAt: "2025-02-06T20:40:00", }, @@ -395,11 +395,11 @@ export const mockReviews: Review[] = [ id: "r7", orderId: "ord6", fromUserId: "u5", - fromUserName: "甜甜", + fromUserName: "甜甜酱", fromUserAvatar: "/avatars/u5.jpg", toUserId: "u1", rating: 4, - content: "需求说得很清楚,沟通省心", + content: "需求给得清楚,省事。", sealed: false, createdAt: "2025-02-06T20:46:00", }, @@ -407,11 +407,11 @@ export const mockReviews: Review[] = [ id: "r8", orderId: "ord7", fromUserId: "u1", - fromUserName: "小明同学", + fromUserName: "小明", fromUserAvatar: "/avatars/u1.jpg", toUserId: "u4", rating: 5, - content: "这把节奏太快了 爽", + content: "节奏飞快,枪很硬。就是我跟得有点累哈哈。", sealed: false, createdAt: "2025-02-04T00:20:00", }, @@ -423,7 +423,7 @@ export const mockReviews: Review[] = [ fromUserAvatar: "/avatars/u4.jpg", toUserId: "u1", rating: 5, - content: "上手很快,基本不用多说", + content: "上手快,喊点就能到。", sealed: false, createdAt: "2025-02-04T00:25:00", }, @@ -434,8 +434,8 @@ export const mockDisputes: Dispute[] = [ id: "d1", orderId: "ord4", initiatorId: "u1", - initiatorName: "小明同学", - reason: "中途掉线后一直没回来,约好的上星数量没打完", + initiatorName: "小明", + reason: "中途掉线后一直没回来,约好的上星数量没打完。", evidence: ["/evidence/d1-1.jpg", "/evidence/d1-2.jpg"], status: "reviewing", createdAt: "2025-02-12T10:00:00", @@ -448,10 +448,10 @@ export const mockChatSessions: ChatSession[] = [ type: "order", orderId: "ord1", participants: [ - { id: "u1", name: "小明同学", avatar: "/avatars/u1.jpg" }, + { id: "u1", name: "小明", avatar: "/avatars/u1.jpg" }, { id: "u2", name: "老李", avatar: "/avatars/u2.jpg" }, ], - lastMessage: "今晚8点开始可以吗", + lastMessage: "行,20:00开", lastMessageAt: "2025-02-18T18:30:00", unreadCount: 2, readonly: false, @@ -460,10 +460,10 @@ export const mockChatSessions: ChatSession[] = [ id: "chat2", type: "consultation", participants: [ - { id: "u1", name: "小明同学", avatar: "/avatars/u1.jpg" }, - { id: "u5", name: "甜甜", avatar: "/avatars/u5.jpg" }, + { id: "u1", name: "小明", avatar: "/avatars/u1.jpg" }, + { id: "u5", name: "甜甜酱", avatar: "/avatars/u5.jpg" }, ], - lastMessage: "周末能接两把吗", + lastMessage: "周末还能接吗", lastMessageAt: "2025-02-19T15:00:00", unreadCount: 0, readonly: false, @@ -473,10 +473,10 @@ export const mockChatSessions: ChatSession[] = [ type: "order", orderId: "ord2", participants: [ - { id: "u1", name: "小明同学", avatar: "/avatars/u1.jpg" }, + { id: "u1", name: "小明", avatar: "/avatars/u1.jpg" }, { id: "u4", name: "阿辰", avatar: "/avatars/u4.jpg" }, ], - lastMessage: "gg 改天再打", + lastMessage: "下次再组", lastMessageAt: "2025-02-15T12:30:00", unreadCount: 0, readonly: true, @@ -488,7 +488,7 @@ export const mockChatMessages: ChatMessage[] = [ id: "msg1", sessionId: "chat1", senderId: "u1", - senderName: "小明同学", + senderName: "小明", senderAvatar: "/avatars/u1.jpg", type: "system", content: "订单创建成功", @@ -501,17 +501,17 @@ export const mockChatMessages: ChatMessage[] = [ senderName: "老李", senderAvatar: "/avatars/u2.jpg", type: "text", - content: "在的,今晚能开。你想打几把", + content: "在,能打。你想几把?", createdAt: "2025-02-18T14:36:00", }, { id: "msg3", sessionId: "chat1", senderId: "u1", - senderName: "小明同学", + senderName: "小明", senderAvatar: "/avatars/u1.jpg", type: "text", - content: "今晚8点开始可以吗", + content: "8点开行不", createdAt: "2025-02-18T18:30:00", }, { @@ -521,7 +521,7 @@ export const mockChatMessages: ChatMessage[] = [ senderName: "老李", senderAvatar: "/avatars/u2.jpg", type: "text", - content: "行 8点我拉你", + content: "行,到点我拉你", createdAt: "2025-02-18T18:32:00", }, ] @@ -531,10 +531,10 @@ export const mockPosts: Post[] = [ id: "p1", author: mockUsers[0], authorRole: "consumer", - title: "CS2上分记录", - content: "昨晚和阿辰连打了两小时,节奏很快,报点特别清楚。虽然也输了一把,但整体体验不错。", + title: "CS2上分体验分享", + content: "昨晚跟阿辰打了三把,前两把顺,第三把差点翻车。总体值这个价。", images: ["/posts/p1-1.jpg"], - tags: ["CS2", "上分"], + tags: ["CS2", "上分", "好评"], linkedOrderId: "ord2", likeCount: 42, commentCount: 8, @@ -546,7 +546,7 @@ export const mockPosts: Post[] = [ id: "p2", author: mockUsers[1], authorRole: "player", - title: "新赛季LOL上分思路", + title: "新赛季英雄联盟上分攻略", content: "新赛季改动有点多,先别急着硬冲分。前10分钟别乱接团,先稳住发育。", images: [], tags: ["英雄联盟", "攻略", "新赛季"], @@ -560,10 +560,10 @@ export const mockPosts: Post[] = [ id: "p3", author: mockUsers[4], authorRole: "player", - title: "原神4.5版本代肝开放", - content: "这版本活动确实多,没空上线的话我可以帮你把委托和体力清掉,做完会回传截图。", + title: "原神4.5版本日常代肝服务上线", + content: "新活动有点肝,没空的话我可以帮清日常,做完发截图。", images: ["/posts/p3-1.jpg", "/posts/p3-2.jpg"], - tags: ["原神", "代肝"], + tags: ["原神", "代肝", "新版本"], likeCount: 67, commentCount: 12, liked: false, @@ -577,7 +577,7 @@ export const mockComments: Comment[] = [ id: "c1", postId: "p1", author: mockUsers[3], - content: "谢了 下次继续冲 💪", + content: "收到,下次继续组", likeCount: 15, liked: false, createdAt: "2025-02-16T11:00:00", @@ -586,7 +586,7 @@ export const mockComments: Comment[] = [ id: "c2", postId: "p1", author: mockUsers[4], - content: "他报点是真的快,我也常跟他排", + content: "他枪法确实硬,不过脾气也直哈哈", likeCount: 8, liked: false, createdAt: "2025-02-16T12:00:00", @@ -595,7 +595,7 @@ export const mockComments: Comment[] = [ id: "c3", postId: "p2", author: mockUsers[0], - content: "这条有用,照着打舒服多了", + content: "我照着打了两把,确实有用", likeCount: 5, liked: true, createdAt: "2025-02-14T10:00:00", @@ -607,7 +607,7 @@ export const mockNotifications: Notification[] = [ id: "n1", type: "order", title: "订单已接单", - content: "老李已接单,记得按时上线", + content: "老李接单了,去聊天里约时间就行", read: false, link: "/order/ord1", createdAt: "2025-02-18T14:35:00", @@ -616,7 +616,7 @@ export const mockNotifications: Notification[] = [ id: "n2", type: "order", title: "争议处理中", - content: "你发起的订单争议正在审核", + content: "你提交的订单争议已进入审核", read: true, link: "/dispute/ord4", createdAt: "2025-02-12T10:05:00", @@ -624,8 +624,8 @@ export const mockNotifications: Notification[] = [ { id: "n3", type: "community", - title: "帖子获赞", - content: "「CS2上分记录」收到了42个赞", + title: "帖子获得点赞", + content: "你的帖子「CS2上分体验分享」又多了42个赞", read: false, link: "/post/p1", createdAt: "2025-02-17T20:00:00", @@ -634,7 +634,7 @@ export const mockNotifications: Notification[] = [ id: "n4", type: "system", title: "平台公告", - content: "春节活动已上线,首页可以直接领券", + content: "春节活动 2 月 3 日上线,活动页明天开放。", read: true, createdAt: "2025-02-01T00:00:00", },