SVG; public const string SERVICE_BELL = << SVG; public const string SEARCH = << SVG; public const string GRID = << SVG; public const string CLIPBOARD = << SVG; public const string USER = << SVG; public const string BACK_ARROW = << SVG; public const string PLUS = << SVG; public const string BANQUET_ROOM = << SVG; public const string ROOM = << SVG; public const string MEAT = << SVG; public const string FISH = << SVG; public const string LOBSTER = << SVG; public const string VEGETABLE = << SVG; public const string NOODLE = << SVG; public const string CASH = << SVG; public const string QR_PAY = << SVG; public const string CREDIT_CARD = << SVG; public const string BOOK = << SVG; public const string TICKET = << SVG; public const string USERS = << SVG; public const string CHART = << SVG; public const string PRINTER = << SVG; public const string VOLUME = << SVG; public const string SETTINGS = << SVG; public const string BATTERY = << SVG; public const string WIFI = << SVG; public const string SIGNAL = << SVG; public const string AVATAR_PLACEHOLDER = << SVG; public const string DOT = << SVG; } // 定义菜单数据结构 final class MenuData { /** @return array> */ public static function getDishes(): array { return [ ['name' => '黑松露和牛粒', 'desc' => 'M9和牛 · 黑松露酱', 'price' => '388', 'icon' => 'meat'], ['name' => '清蒸东星斑', 'desc' => '鲜活 · 约800g', 'price' => '688', 'icon' => 'fish'], ['name' => '蒜蓉粉丝蒸龙虾', 'desc' => '波士顿龙虾 · 蒜蓉粉丝', 'price' => '498', 'icon' => 'lobster'], ['name' => '上汤娃娃菜', 'desc' => '高汤煨制 · 火腿丝', 'price' => '68', 'icon' => 'vegetable'], ['name' => '蟹粉捞面', 'desc' => '手拆蟹粉 · 手工面', 'price' => '128', 'icon' => 'noodle'], ]; } /** @return array> */ public static function getCategories(): array { return [ ['label' => '全部', 'active' => true], ['label' => '招牌', 'active' => false], ['label' => '热菜', 'active' => false], ['label' => '凉菜', 'active' => false], ['label' => '酒水', 'active' => false], ['label' => '套餐', 'active' => false], ]; } /** @return array> */ public static function getTables(): array { return [ ['id' => 'A1', 'status' => 'free', 'amount' => null, 'time' => null], ['id' => 'A2', 'status' => 'occupied', 'amount' => '368', 'time' => '25分钟前', 'isNew' => true], ['id' => 'A3', 'status' => 'reserved', 'amount' => null, 'time' => null], ['id' => 'A5', 'status' => 'free', 'amount' => null, 'time' => null], ['id' => 'A6', 'status' => 'occupied', 'amount' => '582', 'time' => '1小时前', 'isNew' => false], ['id' => 'A7', 'status' => 'free', 'amount' => null, 'time' => null], ]; } /** @return array> */ public static function getRooms(): array { return [ ['name' => '兰亭阁', 'capacity' => 6, 'status' => 'occupied', 'amount' => '1,280', 'time' => '已开台 1小时'], ['name' => '樱花居', 'capacity' => 8, 'status' => 'free', 'amount' => null, 'time' => null], ['name' => '竹韵轩', 'capacity' => 10, 'status' => 'occupied', 'amount' => '2,650', 'time' => '已开台 2小时'], ]; } /** @return array> */ public static function getOrders(): array { return [ [ 'table' => 'A2 桌', 'items' => '东坡肉、清炒时蔬、米饭...', 'amount' => '368', 'time' => '2分钟前', 'source' => '扫码点餐', 'status' => 'new', ], [ 'table' => 'V6 兰亭阁', 'items' => '蒜蓉粉丝蒸龙虾 +1', 'amount' => '+498', 'time' => '5分钟前', 'source' => '扫码加菜', 'status' => 'new', ], [ 'table' => 'A6 桌', 'items' => '清蒸鲈鱼、糖醋排骨...', 'amount' => '582', 'time' => '15分钟前', 'source' => null, 'status' => 'cooking', ], [ 'table' => 'V8 竹韵轩', 'items' => '黑松露和牛粒、东星斑...', 'amount' => '2,650', 'time' => '30分钟前', 'source' => null, 'status' => 'cooking', ], [ 'table' => 'A1 桌', 'items' => '套餐A、饮料×2', 'amount' => '256', 'time' => '1小时前', 'source' => null, 'status' => 'done', ], ]; } } // 辅助函数 function svg(string $icon): string { return match($icon) { 'bell' => Icons::BELL, 'service-bell' => Icons::SERVICE_BELL, 'search' => Icons::SEARCH, 'grid' => Icons::GRID, 'clipboard' => Icons::CLIPBOARD, 'user' => Icons::USER, 'back-arrow' => Icons::BACK_ARROW, 'plus' => Icons::PLUS, 'banquet-room' => Icons::BANQUET_ROOM, 'room' => Icons::ROOM, 'meat' => Icons::MEAT, 'fish' => Icons::FISH, 'lobster' => Icons::LOBSTER, 'vegetable' => Icons::VEGETABLE, 'noodle' => Icons::NOODLE, 'cash' => Icons::CASH, 'qr-pay' => Icons::QR_PAY, 'credit-card' => Icons::CREDIT_CARD, 'book' => Icons::BOOK, 'ticket' => Icons::TICKET, 'users' => Icons::USERS, 'chart' => Icons::CHART, 'printer' => Icons::PRINTER, 'volume' => Icons::VOLUME, 'settings' => Icons::SETTINGS, 'battery' => Icons::BATTERY, 'wifi' => Icons::WIFI, 'signal' => Icons::SIGNAL, 'avatar' => Icons::AVATAR_PLACEHOLDER, 'dot' => Icons::DOT, default => '', }; } function statusClass(string $status): string { return match($status) { 'free' => 'free', 'occupied' => 'occupied', 'reserved' => 'reserved', default => '', }; } function statusLabel(string $status): string { return match($status) { 'free' => '空闲', 'occupied' => '使用中', 'reserved' => '已预订', default => $status, }; } function orderBadgeClass(string $status): string { return match($status) { 'new' => 'badge-new', 'cooking' => 'badge-cooking', 'done' => 'badge-done', default => '', }; } function orderBadgeLabel(string $status): string { return match($status) { 'new' => '新订单', 'cooking' => '制作中', 'done' => '已结账', default => $status, }; } function orderSectionTitle(string $status): string { return match($status) { 'new' => '新订单', 'cooking' => '制作中', 'done' => '已完成', default => '', }; } ?> 璟宴 · 餐饮收银系统 - 手机端UI预览
9:41
包厢
·
¥ 空闲
散台
¥
新扫码订单
A2桌 · 3个菜品 · ¥368
桌台总览 · 含新订单提醒
9:41
兰亭阁 · V6
6人包厢 · 已开台1小时
$cat): ?>
¥
6 已点菜品
¥1,280
点餐页面 · 兰亭阁包厢
9:41
兰亭阁 · 结账
6人包厢
黑松露和牛粒 ×1¥388
清蒸东星斑 ×1¥688
蒜蓉粉丝蒸龙虾 ×1¥498
上汤娃娃菜 ×1¥68
蟹粉捞面 ×2¥256
桂花酿 ×1¥88

小计¥1,986
包厢服务费 (10%)¥199
应付金额
¥2,185
结账页面 · 现金收款
9:41
¥ ·
订单列表 · 含新订单高亮
9:41
张经理
收银员 · 璟宴餐厅
¥8,652
今日营收
23
订单数
6
在桌
个人中心 · 今日概览