5.0 KiB
5.0 KiB
功能实现状态
本文档列出项目中已实现与未实现的功能,便于开发与迭代时参考。
已实现功能
认证与用户
| 功能 | 说明 |
|---|---|
| 钱包登录 (SIWE) | 通过 MetaMask 等钱包签名,调用 /base/walletLogin 获取 token,存入 userStore |
| 用户信息 | getUserInfo 获取头像、昵称等,登录后自动拉取 |
| USDC 余额 | getUsdcBalance 获取余额,除以 1_000_000 后展示 |
| 登出 | 清空 token、user,移除 localStorage |
首页 (Home)
| 功能 | 说明 |
|---|---|
| 分类 Tab | 调用 getPmTagMain 获取分类树,支持三层;接口失败时回退 MOCK_CATEGORY_TREE |
| 事件列表 | getPmEventPublic 分页获取,支持 keyword、tagSlug、tagId 等筛选 |
| 搜索 | 关键词搜索、搜索历史(localStorage,最多 10 条) |
| 下拉刷新 | VPullToRefresh 组件 |
| 无限滚动 | 滚动到底部加载更多 |
| 列表缓存 | 切换页面时复用 eventListCache,下拉刷新时清空 |
| 单一/多选项卡片 | MarketCard 支持 single(Yes/No)与 multi(轮播多选项) |
交易详情 (TradeDetail)
| 功能 | 说明 |
|---|---|
| 事件详情 | findPmEvent 按 id/slug 获取,需鉴权 |
| 分时图 | Lightweight Charts 渲染,时间粒度 1H/6H/1D/1W/1M/ALL,当前为本地生成 mock 数据 |
| 交易组件 | Buy/Sell、Market 模式、Merge、Split |
| 下单 | pmOrderPlace 调用 CLOB 下单接口 |
| Split | pmMarketSplit 用 USDC 兑换 Yes+No |
| Merge | pmMarketMerge 合并 Yes+No 得 USDC |
| 移动端适配 | 底部 Yes/No 栏 + 弹窗交易组件 |
| 多市场切换 | 支持 query.marketId 指定当前 market |
钱包 (Wallet)
| 功能 | 说明 |
|---|---|
| Portfolio 卡片 | 展示 userStore.balance |
| Deposit/Withdraw 弹窗 | UI 完整,Deposit 展示固定地址与二维码;Withdraw 支持金额、网络、目标地址选择 |
| 取消订单 | pmCancelOrder 调用真实接口,但 Positions/Open orders/History 数据为 mock |
| Profit/Loss 图表 | Lightweight Charts 展示,数据为 mock |
| Positions/Orders/History Tab | 表格与移动端列表,数据为 mock |
| 搜索、分页 | 对 mock 数据生效 |
事件市场列表 (EventMarkets)
| 功能 | 说明 |
|---|---|
| 事件详情 | findPmEvent 获取,失败时用 getMockEventById 兜底 |
| 市场列表 | 展示该 Event 下多个 Market,可点击跳转交易详情 |
API 层
| 模块 | 已实现 |
|---|---|
| request | get、post,支持 BASE_URL、自定义 headers |
| event | getPmEventPublic、findPmEvent、mapEventItemToCard、缓存 |
| category | getPmTagMain、enrichWithIcons、MOCK_CATEGORY_TREE |
| categoryIcons | resolveCategoryIcon、resolveCategoryIconColor |
| market | pmOrderPlace、pmCancelOrder、pmMarketSplit、pmMarketMerge |
| user | getUserInfo、getUsdcBalance、formatUsdcBalance |
| constants | OrderType、Side |
其他
| 功能 | 说明 |
|---|---|
| 路由 | 6 个页面,createWebHistory |
| Keep-alive | Home 页面缓存 |
| 多语言 | 当前中英混用,无 i18n |
未实现 / Mock 功能
认证
| 功能 | 状态 |
|---|---|
| 邮箱密码登录 | 仅前端校验,无真实 API 调用,直接跳转首页 |
首页
| 功能 | 状态 |
|---|---|
| 分类接口失败兜底 | 使用 MOCK_CATEGORY_TREE,非真实数据 |
交易详情
| 功能 | 状态 |
|---|---|
| 分时图数据 | 本地 generateData() 生成随机曲线,未对接 WebSocket 或历史接口 |
| Comments | 占位文案 "No comments yet." |
| Top Holders | 占位文案 "Top holders will appear here." |
| Activity | 使用硬编码 mock 数据,未对接交易活动接口 |
订单簿 (OrderBook)
| 功能 | 状态 |
|---|---|
| Asks/Bids | 硬编码 mock 数据,定时随机变化模拟 |
| Last/Spread | mock |
| 真实订单簿 | 需对接 CLOB 或 WebSocket |
钱包
| 功能 | 状态 |
|---|---|
| Positions | mock 数据 |
| Open orders | mock 数据,取消订单调用真实 API 但列表为 mock |
| History | mock 数据 |
| Profit/Loss 图表 | mock 数据 |
| Portfolio 余额 | 来自 userStore(真实),非 mock |
| Deposit 实际充值 | 仅展示地址与二维码,未对接链上或托管充值 |
| Withdraw 实际提现 | 仅 UI 流程,未对接提现接口 |
| Close Losses | TODO,未实现 |
| Export | TODO,未实现 |
| 筛选/排序 | 部分按钮为占位,未实现逻辑 |
其他
| 功能 | 状态 |
|---|---|
| 注册页 | 路由未配置,Login 中链接指向 /register |
| Limit 单 | TradeComponent 有 Limit 选项,下单逻辑以 Market 为主 |
| 订单簿点击下单 | 点击某行价格填入 TradeComponent 未实现 |
实现优先级建议
- 高:订单簿真实数据、分时图真实数据、Positions/Orders/History 真实接口
- 中:Comments、Top Holders、Activity 接口;Deposit/Withdraw 实际流程
- 低:邮箱密码登录、注册页、Limit 单完善