2.2 KiB
2.2 KiB
Search.vue
路径:src/views/Search.vue
路由:/search,name: search
功能用途
搜索页独立实现,按 Pencil 设计稿同文件实现双态页面:
p4Kcp:搜索页(搜索框、搜索记录、推荐标签)mN9t2:搜索结果页(顶部搜索框 + 结果卡片列表)- 页面容器改为移动端自适应宽度(
width: 100%),不再固定402px
使用方式
- 访问路由
/search - 在搜索输入框中输入关键词后,手机键盘回车键会显示为“搜索”(
enterkeyhint="search") - 输入停止一小段时间后会自动发起请求
GET /PmEvent/getPmEventPublic(入参q),并将关键词写入本地搜索历史;当展示搜索结果时会隐藏搜索记录 - 文案国际化:页面文案与推荐标签使用
vue-i18n键searchPage.*(zh-CN/zh-TW/en/ko/ja) - 无结果:接口成功但列表为空时展示
searchPage.noResults,不使用示例假数据;请求失败或业务错误码时展示searchPage.errorFailed或接口返回的msg - 搜索前展示
p4Kcp结构:- 顶部标题、占位、记录/推荐标题等取自 i18n
- 搜索记录卡:从本地真实读取的搜索历史(最多 10 条),每行右侧带关闭图标
- 推荐标签卡:三项标签文案同样走 i18n
- 搜索后切换到
mN9t2结构:- 顶部同样保留标题与搜索框
- 下方展示结果卡片列表(图标、标题、百分比、时间);无结果时展示空状态文案
- 切换结果态时不会因滚动条变化导致顶部/底部导航轻微位移
- 点击某条结果:
mapEventItemToCard后按与MarketCard相同规则跳转——多 market 进/event/:id/markets(可带slugquery);单 market 进/trade-detail/:id(query 含title、marketInfo、chance、marketId、slug等与首页一致)
扩展方式
- 结果跳转:已与
MarketCard对齐;若后端字段变化可只调mapEventItemToCard - 标签联动搜索:点击标签触发关键词搜索并跳转到结果页。
- 响应式优化:可按断点进一步细分字号与间距,但保持 1:1 视觉层级。