"use client" import { Eye, EyeOff, GripVertical } from "lucide-react" import Link from "next/link" import { useState } from "react" import { Button } from "@/components/ui/button" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { Switch } from "@/components/ui/switch" import { mockShops } from "@/lib/mock-data" import type { ShopSection } from "@/lib/types" const sectionLabels: Record = { banner: "横幅图片", intro: "店铺简介", services: "服务列表", players: "打手展示", announcements: "公告栏", reviews: "评价展示", } const sectionDescriptions: Record = { banner: "店铺顶部的横幅图片", intro: "店铺的文字介绍", services: "展示店铺提供的服务", players: "展示签约打手列表", announcements: "店铺公告和活动信息", reviews: "展示用户评价", } export default function ShopTemplatesPage() { const shop = mockShops[0] const [sections, setSections] = useState( [...shop.templateConfig.sections].sort((a, b) => a.order - b.order), ) const toggleSection = (type: ShopSection["type"]) => { setSections((prev) => prev.map((s) => (s.type === type ? { ...s, enabled: !s.enabled } : s))) } return (

模板编辑

自定义店铺主页的展示内容和顺序

页面组件 {sections.map((section) => (
{sectionLabels[section.type]} {section.enabled ? ( ) : ( )}

{sectionDescriptions[section.type]}

toggleSection(section.type)} />
))}
提示

拖拽左侧手柄可调整组件顺序(原型演示中暂不支持拖拽)

关闭开关可隐藏对应组件,不会删除已有内容

保存后立即生效,访客将看到最新的店铺主页

) }