# 功能实现状态 本文档列出项目中**已实现**与**未实现**的功能,便于开发与迭代时参考。 --- ## 已实现功能 ### 认证与用户 | 功能 | 说明 | |------|------| | 钱包登录 (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 获取,需鉴权 | | 分时图 | ECharts 渲染,时间粒度 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 图表 | ECharts 展示,**数据为 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 单完善