fix: 修复 VoiceController Map.of 兼容性 + ExploreController 参数不匹配
- VoiceController: Map.of() -> Collections.singletonMap() 兼容 Java 8 - ExploreController: 补齐 takeoutService.roll() 缺失的 taste/priceRange/allergies 参数 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
83
doc/box.md
Normal file
83
doc/box.md
Normal file
@@ -0,0 +1,83 @@
|
||||
以下是“吃啥盲盒”开盒动效的详细分镜描述,覆盖从点击到展示结果的完整过程,可直接交付UI动效设计师和前端开发。
|
||||
|
||||
---
|
||||
|
||||
## 开盒动效分镜 · 吃啥盲盒
|
||||
|
||||
**整体时长**:约1.8-2.2秒
|
||||
**触发动作**:用户点击任一模式入口按钮(外卖盒/冰箱盒/附近盒)
|
||||
**核心情感曲线**:期待→悬念→惊喜→清晰
|
||||
**实现方式建议**:优先使用Lottie + CSS关键帧动画,兼容低端机型可降级为CSS动画序列
|
||||
|
||||
---
|
||||
|
||||
### 第一幕 · 震动蓄力(0ms – 400ms)
|
||||
**目标**:传达“盒子里有东西在动”,制造期待。
|
||||
|
||||
| 时间 | 元素 | 变化描述 | 缓动 |
|
||||
|------|------|----------|------|
|
||||
| 0ms | 点击的按钮/卡片 | 轻微缩放:scale 1.0 → 1.05 → 1.0 | ease-out |
|
||||
| 0ms | 整个盲盒入口 | 出现一圈橙色光晕从中心向外扩散后消失 | ease-out, opacity 1→0 |
|
||||
| 100ms | 盲盒图标(如🎁) | 开始高频微动:左右摇摆 ±3deg,频率先快后慢 | ease-in-out |
|
||||
| 0-400ms | 屏幕背景(盲盒大厅) | 逐渐变暗至亮度0.6,其余元素后退感 | 线性 |
|
||||
|
||||
**配套反馈**:手机轻微震动(调用`wx.vibrateShort` 15ms)
|
||||
|
||||
---
|
||||
|
||||
### 第二幕 · 盒盖开启(400ms – 1000ms)
|
||||
**目标**:视觉上呈现“盒子被打开”的结构变化。
|
||||
|
||||
| 时间 | 元素 | 变化描述 | 缓动 |
|
||||
|------|------|----------|------|
|
||||
| 400ms | 盲盒容器(方形盒子) | 盒盖部分分离,向上位移动画,Y轴偏移 -60rpx,同时opacity 1→0 | ease-in |
|
||||
| 450ms | 盒体内部 | 从缝隙中透出金色光芒,逐渐增强 | ease-out |
|
||||
| 500ms | 盒体本身 | 向下轻微压缩(scaleY 1→0.9→1),模拟受力反弹 | ease-out |
|
||||
| 600ms | 金色光芒 | 蔓延至整个屏幕,形成短暂的白屏过渡(白色遮罩从中心放射,opacity 0→0.8→0) | ease-in-out,持续400ms |
|
||||
| 700ms | 结果承载层(卡片/空状态) | 在光芒最亮时完成挂载,但此时仍被白色遮罩覆盖 | - |
|
||||
|
||||
**配套反馈**:第二次短震(10ms),强化“打开了”的触感。
|
||||
|
||||
---
|
||||
|
||||
### 第三幕 · 展示与定型(1000ms – 1800ms)
|
||||
**目标**:结果内容华丽登场,信息清晰呈现。
|
||||
|
||||
| 时间 | 元素 | 变化描述 | 缓动 |
|
||||
|------|------|----------|------|
|
||||
| 1000ms | 白色遮罩 | 开始淡出(opacity 0.8→0),持续300ms | ease-in |
|
||||
| 1000ms | 结果卡片(外卖/菜谱/店铺) | 从缩放0.85、Y轴+30rpx开始弹出 | ease-out-back(弹性动画) |
|
||||
| 1100ms | 卡片内商家图片 | 单独从模糊(blur 8px)变清晰(0px),持续200ms | ease-out |
|
||||
| 1200ms | 标题文字(“你抽到的外卖是…”) | 逐字或整行从上方飘入,opacity 0→1,Y -20→0 | ease-out |
|
||||
| 1300ms | 评分/距离等次要信息 | 阶梯式出现,每组延迟50ms | ease-out |
|
||||
| 1500ms | 底部操作按钮 | 从下方滑入,Y +40→0,opacity 0→1 | ease-out |
|
||||
| 1600ms | 彩带动效(可选) | 短暂彩色纸屑从卡片背后喷射,3-5片 | 物理抛物线,随机旋转 |
|
||||
|
||||
**配套反馈**:手机长震一次(`wx.vibrateLong`)或播放轻快“叮”音效(需音频资源)
|
||||
|
||||
---
|
||||
|
||||
### 各模式动效差异点
|
||||
|
||||
| 模式 | 第二幕盒内光芒颜色 | 第二幕溅射粒子 | 第四幕彩带 |
|
||||
|------|-------------------|---------------|-----------|
|
||||
| 外卖盲盒 | 橙色→暖黄 | 迷你外卖车图标飘出 | 外卖袋emoji纸屑 |
|
||||
| 冰箱盲盒 | 绿色→浅绿 | 蔬菜粒子(🥬🍅) | 餐具emoji纸屑 |
|
||||
| 探店盲盒 | 紫色→粉金 | 地图标记气泡冒起 | 星星emoji纸屑 |
|
||||
|
||||
---
|
||||
|
||||
### 降级策略(性能受限时)
|
||||
- 移除粒子与彩带,仅保留盒盖位移+光芒过渡+卡片弹性动画。
|
||||
- 所有动画时长缩短至1.2秒,弹性缓动改为普通ease-out。
|
||||
- 关闭震动序列(通过API判断手机性能或用户设置)。
|
||||
|
||||
---
|
||||
|
||||
### 开发关键参数
|
||||
- **Lottie JSON 尺寸**:控制在80KB以内,帧率30fps。
|
||||
- **CSS 动画**:使用`transform`和`opacity`,开启GPU加速(`will-change`)。
|
||||
- **遮罩过渡**:使用`page-mask`绝对定位覆盖,z-index分层。
|
||||
- **依赖资源**:音频文件(.mp3, 5KB以内),震动序列,图片预加载(结果卡片图提前加载)。
|
||||
|
||||
---
|
||||
169
doc/plan.md
Normal file
169
doc/plan.md
Normal file
@@ -0,0 +1,169 @@
|
||||
以下为“吃啥盲盒(ChowBox)”小程序的完整开发方案,整合了此前所有讨论并细化至可落地执行的程度。
|
||||
|
||||
---
|
||||
|
||||
# 吃啥盲盒(ChowBox)小程序 · 产品开发方案 v1.0
|
||||
|
||||
## 一、产品概况
|
||||
|
||||
**产品名称**:吃啥盲盒
|
||||
**英文名**:ChowBox
|
||||
**Slogan**:今天吃啥?开个盲盒。
|
||||
**产品定位**:一站式解决“今天吃什么”的轻决策工具,融合外卖盲盒、冰箱食材做菜、附近探店三种场景,用随机惊喜打破选择困难。
|
||||
**目标用户**:都市白领、学生、独居人群、年轻家庭,经常面临吃饭决策困难的群体。
|
||||
**平台形态**:微信小程序(便于传播及跳转外部平台)
|
||||
|
||||
---
|
||||
|
||||
## 二、核心功能模块
|
||||
|
||||
### 模式一:外卖盲盒(Takeout Box)
|
||||
- **一句话描述**:自动获取附近高质量外卖商家,随机推荐一家,一键跳转下单。
|
||||
- **用户流程**
|
||||
1. 授权地理位置。
|
||||
2. 系统以定位为中心,搜索1.5–3公里内外卖商家。
|
||||
3. 按评分≥4.5、月销量商圈前30%、配送≤40分钟、无严重差评等规则过滤高质量池。
|
||||
4. 加权随机选出1家展示:店名、评分、人均、距离、起送价/配送费、热销Top3、好评亮点。
|
||||
5. 用户点击“去下单”跳转美团/饿了么小程序对应商家页。
|
||||
6. 可点“换一家”重新随机(保证不重复上一次结果)。
|
||||
- **交互细节**:开盒动效(震动→发光→展开卡片),上方提示“你抽到的外卖是…”
|
||||
|
||||
### 模式二:冰箱盲盒(Fridge Box)
|
||||
- **一句话描述**:录入现有食材,智能推荐能做的菜并给出步骤,缺的调料自动提醒。
|
||||
- **用户流程**
|
||||
1. 输入食材(手动/语音/勾选常用),可自定义常备调料(油盐酱醋默认已有)。
|
||||
2. 系统从菜谱库中匹配:完全匹配(所有食材都具备)优先,其次为缺1–2种辅料的菜,标注“还差XX”。
|
||||
3. 随机展示3–5道菜,显示匹配度百分比及缺少食材。
|
||||
4. 点开详情:用料清单、步骤图文/视频、烹饪时长、难度星级。
|
||||
5. 支持一键添加缺少食材至购物清单,或分享菜谱。
|
||||
6. 结合时段推荐(早餐推快手菜,冬季推炖煮)。
|
||||
- **菜谱数据来源**:初始购买/爬取公开菜谱(合规授权),后期支持UGC上传+审核。
|
||||
|
||||
### 模式三:探店盲盒(Explore Box)
|
||||
- **一句话描述**:随机推荐附近一家高评价堂食好店,一键导航前往。
|
||||
- **用户流程**
|
||||
1. 授权定位。
|
||||
2. 搜索1–3公里内餐饮POI(地图API)。
|
||||
3. 按评分≥4.3、评论数≥50、结合用户口味偏好与价格设定过滤。
|
||||
4. 随机推荐1家:店名、菜系、人均、距离、推荐语(提炼用户评价)、招牌菜和环境图。
|
||||
5. 可“导航过去”(调起腾讯/高德地图)或查看详情页(跳转大众点评小程序)。
|
||||
6. 同样支持“换一家”。
|
||||
|
||||
---
|
||||
|
||||
## 三、品牌与UI风格
|
||||
|
||||
- **主色调**:活力橙(#FF6A3D)搭配暖黄,体现美食与惊喜感。
|
||||
- **辅助元素**:盲盒机、问号盒、食材图标等插画风;三个模式用统一“盒子”视觉容器,入口设计成盲盒机样式。
|
||||
- **动效**:开盒过程1.5秒震动→开盖→弹出结果卡片,增强仪式感。
|
||||
- **字体**:圆体或粗圆体,传达亲切年轻气质。
|
||||
- **底部导航**:首页(盲盒大厅)、记录、我的,极简结构。
|
||||
|
||||
---
|
||||
|
||||
## 四、技术架构
|
||||
|
||||
### 整体选型
|
||||
- **前端**:原生微信小程序(WXML + WXSS + JavaScript),使用微信官方开发工具,保证最佳性能和兼容性。
|
||||
- **后端**:Java 8 + Spring Boot 2.x,采用经典 MVC 架构,部署于云服务器或容器化环境。
|
||||
- **数据库**:
|
||||
- 主库:MySQL 5.7+(商家、菜谱、用户数据)
|
||||
- 缓存:Redis(热点POI数据、高频菜谱匹配结果、会话缓存)
|
||||
- **外部服务**:
|
||||
- 高德地图Web API(POI搜索、逆地理、路径规划)
|
||||
- 腾讯位置服务(备选)
|
||||
- 菜谱数据API(自建或合作方)
|
||||
- 微信开放能力(跳转外卖平台小程序、订阅消息、地理授权)
|
||||
|
||||
### 数据流
|
||||
```
|
||||
用户授权定位 → 后端获取经纬度 → 调用地图POI并缓存(按网格+时间)→ 业务规则过滤/加权→ 随机抽取 → 返回结果
|
||||
```
|
||||
|
||||
### 核心算法
|
||||
- **高质量池筛选**:SQL或内存运算完成评分、销量、配送时长过滤。
|
||||
- **随机推荐**:
|
||||
1. 确定当日候选集(离线定时刷新或实时计算)。
|
||||
2. 客户端请求时,服务端从候选集中用加权随机(如评分权重、用户偏好协同因子)抽取1条,同时记录已展示避免短时重复。
|
||||
- **菜谱匹配**:将用户食材列表与菜谱食材表求交集,计算匹配度 = 交集食材数 / 菜谱总食材数,降序排列随机取Top3。
|
||||
|
||||
---
|
||||
|
||||
## 五、数据策略与合规
|
||||
|
||||
| 数据需求 | 获取方式 | 更新频率 |
|
||||
|----------|----------|----------|
|
||||
| 附近餐饮POI(名称、坐标、评分、人均、电话、图片) | 高德/腾讯地图POI搜索API,含扩展信息 | 用户实时请求缓存1小时;后台热门区域每6小时预缓存 |
|
||||
| 外卖配送信息(起送价、配送费、时长) | 外卖开放平台(如有)或地图API中部分连锁商户信息 | 随POI一起 |
|
||||
| 用户评价提炼(推荐语) | 使用公开点评文本摘要(通过合法数据供应商)或高德评分+标签 | 每日更新 |
|
||||
| 菜谱数据 | 自建库+公开菜谱API合作 | 每周迭代 |
|
||||
| 用户偏好 | 本地存储+后台用户画像(可选) | 实时 |
|
||||
|
||||
**合规要点**:
|
||||
- 不使用网页爬虫抓取外卖/点评平台商业数据,所有商家信息源自地图开放API。
|
||||
- 用户定位需明确授权,可拒绝或手动选择位置。
|
||||
- 跳转外卖平台仅通过小程序URL Scheme合法跳转。
|
||||
|
||||
---
|
||||
|
||||
## 六、功能页面结构
|
||||
|
||||
1. **启动页**:Logo+“今天吃啥?开个盲盒”。
|
||||
2. **盲盒大厅(首页)**:三大模式入口(卡片+动效),每日一言。
|
||||
3. **外卖/探店员详情页**:商家大图、信息卡片、招牌菜横滑、吸底操作按钮。
|
||||
4. **冰箱盲盒-食材录入页**:输入框+标签+语音,我的常备调料编辑。
|
||||
5. **菜谱推荐列表页**:菜谱卡片+匹配度+缺少食材高亮。
|
||||
6. **菜谱详情页**:用料、步骤、计时器、购物车按钮。
|
||||
7. **记录页**:最近开盒历史、收藏的店/菜谱。
|
||||
8. **个人中心**:偏好设置(口味、忌口、价格区间)、关于我们。
|
||||
|
||||
---
|
||||
|
||||
## 七、开发路线图(MVP → 全功能)
|
||||
|
||||
**Phase 1:核心MVP(4–6周)**
|
||||
- 完成原生微信小程序项目搭建,实现定位授权。
|
||||
- 搭建 Java 8 + Spring Boot 后端项目,配置 MySQL 数据库连接。
|
||||
- 接入高德POI搜索,实现外卖盲盒基础推荐(过滤+随机)。
|
||||
- 设计 MySQL 数据库表结构,离线导入示例菜谱100道。
|
||||
- 完成冰箱盲盒基本匹配逻辑与详情展示。
|
||||
- UI盲盒开启动效1.0。
|
||||
|
||||
**Phase 2:双模式补全(3–4周)**
|
||||
- 探店盲盒功能上线。
|
||||
- 优化推荐权重,加入用户反馈(喜欢/踩)。
|
||||
- 菜谱库扩充至500+,支持语音录入食材。
|
||||
|
||||
**Phase 3:体验与运营(2–3周)**
|
||||
- 记忆用户偏好,协同过滤简单推荐。
|
||||
- 分享卡片、订阅消息(每日推荐通知)。
|
||||
- 性能优化,误触防护,无结果兜底。
|
||||
|
||||
**Phase 4:上线审核与迭代**
|
||||
- 小程序全功能测试,提交审核。
|
||||
- 数据监控与迭代,探索拍照识食材、多人开盒决策等创新功能。
|
||||
|
||||
---
|
||||
|
||||
## 八、预算与资源预估(最小可行)
|
||||
|
||||
- **研发人员**:1名全栈(或前后端各1兼职)
|
||||
- **设计**:1名UI(可外包关键页面)
|
||||
- **服务器**:初期微信云托管低配(约200–500元/月)
|
||||
- **API费用**:高德地图免费配额(日调用量<30万次)足够,菜谱API或数据购买(约1000–3000元一次性)
|
||||
- **时间**:MVP约2个月可上线测试
|
||||
|
||||
---
|
||||
|
||||
## 九、核心文案与传播素材
|
||||
|
||||
- **小程序简介**:外卖盲盒、冰箱做菜、附近探店,一键解决今天吃啥。
|
||||
- **分享文案**:
|
||||
“我又开出了宝藏店铺!你也来测测今天吃啥吧”
|
||||
“冰箱剩菜变盛宴,这个盲盒有点厉害”
|
||||
- **功能引导**:
|
||||
外卖盲盒页:不知道点什么?让我帮你决定。
|
||||
冰箱盲盒页:拍下你的食材,魔法就出现了。
|
||||
探店盲盒页:好店就在转角,敢不敢盲开一个?
|
||||
|
||||
---
|
||||
163
doc/ui.md
Normal file
163
doc/ui.md
Normal file
@@ -0,0 +1,163 @@
|
||||
下面以线框描述+关键标注的方式呈现“吃啥盲盒”核心页面的UI草图。整体采用**活力橙+暖黄**主色调,圆角卡片、盲盒机质感、轻拟物图标,营造“开盒惊喜”的氛围。
|
||||
|
||||
---
|
||||
|
||||
### 1. 盲盒大厅(首页)
|
||||
```
|
||||
┌──────────────────────────┐
|
||||
│ 上午 11:30 📍 定位 │ <-- 状态栏/定位按钮
|
||||
├──────────────────────────┤
|
||||
│ │
|
||||
│ 🎁 今天吃啥? │ <-- 大标题,圆体
|
||||
│ 开个盲盒 │
|
||||
│ │
|
||||
│ ┌─ 外卖盲盒 ────────┐ │
|
||||
│ │ 🛵 │ │
|
||||
│ │ 开个外卖盒 │ │ <-- 主按钮,带微动效
|
||||
│ │ 随机高质量外卖 │ │
|
||||
│ └──────────────────┘ │
|
||||
│ ┌─ 冰箱盲盒 ────────┐ │
|
||||
│ │ 🥬 │ │
|
||||
│ │ 开个冰箱盒 │ │
|
||||
│ │ 有啥食材做啥菜 │ │
|
||||
│ └──────────────────┘ │
|
||||
│ ┌─ 探店盲盒 ────────┐ │
|
||||
│ │ 🍜 │ │
|
||||
│ │ 开个附近盒 │ │
|
||||
│ │ 发现隐藏好店 │ │
|
||||
│ └──────────────────┘ │
|
||||
│ │
|
||||
│ “今天宜尝试酸辣口味” │ <-- 每日一言
|
||||
└──────────────────────────┘
|
||||
```
|
||||
**说明**:三个入口设计成盲盒机器视觉卡片,点击后触发开盒动效。上角定位按钮可手动切换位置。
|
||||
|
||||
---
|
||||
|
||||
### 2. 外卖盲盒结果页
|
||||
```
|
||||
┌──────────────────────────┐
|
||||
│ ← 返回 📤 分享 │
|
||||
├──────────────────────────┤
|
||||
│ 🎉 你抽到的外卖是… │
|
||||
│ │
|
||||
│ ┌────────────────────┐ │
|
||||
│ │ [商家头图] │ │
|
||||
│ │ 🌟 4.8 月销999+ │ │
|
||||
│ │ 川味小厨 │ │
|
||||
│ │ ¥32/人 · 1.2km │ │
|
||||
│ │ 30-40分钟送达 │ │
|
||||
│ │ “水煮鱼绝了!” │ │
|
||||
│ │ [招牌菜1][2][3] │ │
|
||||
│ └────────────────────┘ │
|
||||
│ │
|
||||
│ ┌─ 去美团下单 ──────┐ │
|
||||
│ └────────────────────┘ │
|
||||
│ 🔄 再开一个 │ <-- 换一家
|
||||
└──────────────────────────┘
|
||||
```
|
||||
**说明**:商家信息卡片居中,招牌菜可横滑。吸底按钮为主操作,弱化“换一家”防止无限循环。
|
||||
|
||||
---
|
||||
|
||||
### 3. 冰箱盲盒-食材录入页
|
||||
```
|
||||
┌──────────────────────────┐
|
||||
│ 冰箱里有什么? │
|
||||
│ │
|
||||
│ ┌──────────────────┐ │
|
||||
│ │ 🔍 输入食材名称 │ │ <-- 输入框,带语音icon
|
||||
│ └──────────────────┘ │
|
||||
│ 常用:🥚鸡蛋 🍅西红柿 🥩鸡胸 🧅洋葱 │
|
||||
│ ➕ 自定义 │
|
||||
│ │
|
||||
│ 📦 我的常备调料 │
|
||||
│ ✔️油 ✔️盐 ✔️酱油 ✔️醋 │
|
||||
│ ✔️料酒 ✔️生抽 ➕添加 │
|
||||
│ │
|
||||
│ ┌─── 开盒做饭!───┐ │
|
||||
│ └──────────────────┘ │
|
||||
└──────────────────────────┘
|
||||
```
|
||||
**说明**:标签化快速输入,可语音录入。常备调料默认勾选,减少重复输入。按钮文案呼应“开盒”。
|
||||
|
||||
---
|
||||
|
||||
### 4. 冰箱盲盒-菜谱推荐列表
|
||||
```
|
||||
┌──────────────────────────┐
|
||||
│ 为你找到3个菜谱 │
|
||||
│ │
|
||||
│ ┌─ 菜谱卡片 ────────┐ │
|
||||
│ │ 西红柿炒蛋 匹配度95%│ │
|
||||
│ │ 🥬 缺:小葱 │ │
|
||||
│ └──────────────────┘ │
|
||||
│ ┌─ 菜谱卡片 ────────┐ │
|
||||
│ │ 鸡肉沙拉 匹配度80%│ │
|
||||
│ │ 🥬 缺:生菜、沙拉酱 │ │
|
||||
│ └──────────────────┘ │
|
||||
│ ┌─ 菜谱卡片 ────────┐ │
|
||||
│ │ 煎鸡胸 匹配度90%│ │
|
||||
│ │ 🥬 缺:黑胡椒 │ │
|
||||
│ └──────────────────┘ │
|
||||
│ │
|
||||
│ 🔄 换一批菜谱 │
|
||||
└──────────────────────────┘
|
||||
```
|
||||
**说明**:卡片突出匹配度,用绿色高亮匹配,黄色标注缺失食材。优先展示全匹配菜谱。
|
||||
|
||||
---
|
||||
|
||||
### 5. 菜谱详情页
|
||||
```
|
||||
┌──────────────────────────┐
|
||||
│ [成品图] ⭐难度2 │
|
||||
│ 西红柿炒蛋 ⏱ 10分钟 │
|
||||
├──────────────────────────┤
|
||||
│ 🥚 用料 │
|
||||
│ 鸡蛋2个 西红柿2个 盐 糖 │
|
||||
│ 小葱(家里缺) → 加入购物单│
|
||||
│ │
|
||||
│ 📝 步骤 │
|
||||
│ 1. 鸡蛋打散,加盐搅匀 │
|
||||
│ 2. 西红柿切块备用 │
|
||||
│ 3. 热油炒蛋,盛出 │
|
||||
│ 4. 炒西红柿出汁… │
|
||||
│ │
|
||||
│ 🔖 计时器 📋 购物清单 │
|
||||
└──────────────────────────┘
|
||||
```
|
||||
**说明**:用料缺货高亮并支持一键加入购物清单。步骤清晰,可内置简单计时器。
|
||||
|
||||
---
|
||||
|
||||
### 6. 探店盲盒结果页
|
||||
```
|
||||
┌──────────────────────────┐
|
||||
│ 🎊 附近发现一家宝藏店 │
|
||||
│ │
|
||||
│ ┌────────────────────┐ │
|
||||
│ │ [店铺头图] │ │
|
||||
│ │ 🏮 藏巷·居酒屋 │ │
|
||||
│ │ ⭐4.6 · 2.3km │ │
|
||||
│ │ 人均 ¥120 │ │
|
||||
│ │ “三文鱼厚切超满足”│ │
|
||||
│ │ 🥘 招牌:鹅肝寿司 │ │
|
||||
│ └────────────────────┘ │
|
||||
│ │
|
||||
│ ┌── 导航过去 ───────┐ │
|
||||
│ └────────────────────┘ │
|
||||
│ 🗺 查看详细点评 │
|
||||
│ 🔄 再开一个 │
|
||||
└──────────────────────────┘
|
||||
```
|
||||
**说明**:强调推荐语和招牌菜,导航为主要操作,跳转外部地图;可查看详情跳大众点评。
|
||||
|
||||
---
|
||||
|
||||
### 全局元素
|
||||
- **颜色**:背景米白(#FFFBF4),主色橙(#FF6A3D),文字深灰(#333),高亮绿(#4CAF50)
|
||||
- **圆角**:卡片16px,按钮24px
|
||||
- **字体**:微信默认中文字体(苹方/雅黑),标题加粗,大小16-20px
|
||||
- **图标**:线性+面性结合,盲盒/食材使用自定义插画风
|
||||
- **错误兜底**:定位失败时显示“手动选择位置”,无商家时显示“附近喵星人占领了,换片区域试试?”
|
||||
Reference in New Issue
Block a user