Healthy Living 健康食堂
2026年
Healthy Living 是开在清迈 4Seas 宁曼的 健康食堂 。我做的是整套食堂系统:对外的菜单和菜品页、会员侧和员工侧的网页与 App,还有柜台上的 iPad 扫码结账,全部打在同一个后台里。现在最想拿出来看的,是员工每天在用的 Workspace。
healthyliving.tankxu.com
Healthy Living 首页:介绍 4Seas 宁曼的健康食堂

同一首页的手机端
工作台里的三件事
厨房和店长进出的是 Workspace。网页和 iPhone App 是同一套工作台:结账、菜品、餐次计划、库存、盒标、会员的餐券和储值,还有日报。角色分成 owner、manager、cashier、kitchen,权限不一样,厨房人员看不到会员的钱和订单金额。我特别想写里面的三块: 菜品列表 、 食材库 ,还有餐盒上的 二维码标签 。
菜品按蛋白质、膳食纤维、碳水分类,列表里能看到照片、6 位编码、热量、价格和一句介绍。每道菜可以写配方、发版本,公开的介绍页和后来打印的标签都跟着走。

Workspace 菜品列表:按分类排列,带照片、6 位编码、热量和价格
食材库是给配方用的。肉类、海鲜、谷物、蔬菜这些文件夹下面,按品种和做法分开记,每 100 克都有热量和营养,中文、英文、泰文都有。做菜的时候从库里挑条目、填克数,这道菜的热量就从配方算出来。

Workspace 食材库:蔬菜分类下的条目,带热量、营养和中英泰名称
每道菜有一个 6 位编码,打印成标签贴在餐盒盖上。标签可以只放二维码,也可以把菜品照片压在码的中间。手机对着扫,打开这道菜自己的介绍页:照片、热量、配料和做法。柜台上的 iPad 也靠这个码认出每一盒,认准了再进草稿订单。

Workspace 制作盒标:勾选菜品,每道菜旁边都有二维码,选好尺寸后打印

打印盒标:二维码中间压着菜品照片,下面是菜名和 6 位编码
上面这几张工作台的截图,是我在本地用演示数据跑起来拍的,没有登录线上食堂的员工后台。
公开的菜单和菜品页
食堂页不用登录。厨房把某一天早餐、午餐、晚餐的份数排进计划之后,这里会列出今日菜单、还剩多少、过敏原,以及厨师推荐的搭配。过敏原来自每道菜的配方。扫盒盖上的码,就能进到这道菜自己的页面。
今日菜单
食堂今日菜单:按分类列出菜品、价格、热量、过敏原和剩余份数。这张也是本地用演示数据拍的
会员、结账和后面怎么走
会员用通行密钥注册和登录,不用记密码。进了账户之后,可以把在食堂吃过的餐记在一起,结账时出示会员码使用餐券和储值,也可以选择把餐次写进 Apple Health。另外还有一个食堂现场页:付过款的人会以匿名形象出现一段时间,也可以用昵称和头像走进当天的场景。

会员注册页:通行密钥开户,4Seas Pass 登录还在准备中
柜台上的 iPad 是一台扫描端。用餐的人把餐盘放上去,扫描端给托盘拍照,按盒盖上的二维码、画面识别或手工补录认出每一盒,马上在后台生成一条草稿订单,结账台也能看到。确认之后,如果餐券和储值够支付,订单会直接变成已支付;否则先进入待支付,再在柜台用现金、刷卡或转账结清。付款顺序是先用餐券(每单有上限),再扣储值,不够的部分到柜台补。会员可以用手机上的结账码,也可以拍已经绑定的 NFC 会员卡。
后面是一个 Cloudflare Worker:页面和接口都先经过它,数据放在 D1,托盘照片和菜品图放在对象存储里。公开菜单、菜品页、会员账户、员工工作台、iPad 扫描端、iPhone 上的会员 App / 工作台 App,以及给员工 API 密钥用的 MCP,走的是同一套接口。被移除超过 90 天的扫码记录和照片会定期清掉。
iPad 扫描端是原生 Swift 应用,这台 Linux 机器上跑不了,仓库里也没有界面截图,所以扫描界面没有放图。首页和注册页是直接打开线上公开页面拍的。
Tank Xu
Product Designer / Creator