144 lines
5.0 KiB
Markdown
144 lines
5.0 KiB
Markdown
# 功能实现状态
|
||
|
||
本文档列出项目中**已实现**与**未实现**的功能,便于开发与迭代时参考。
|
||
|
||
---
|
||
|
||
## 已实现功能
|
||
|
||
### 认证与用户
|
||
|
||
| 功能 | 说明 |
|
||
|------|------|
|
||
| 钱包登录 (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 未实现 |
|
||
|
||
---
|
||
|
||
## 实现优先级建议
|
||
|
||
1. **高**:订单簿真实数据、分时图真实数据、Positions/Orders/History 真实接口
|
||
2. **中**:Comments、Top Holders、Activity 接口;Deposit/Withdraw 实际流程
|
||
3. **低**:邮箱密码登录、注册页、Limit 单完善
|