index.ts 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. // ── Vue Router meta 类型扩展 ───────────────────────────
  2. declare module "vue-router" {
  3. interface RouteMeta {
  4. title?: string;
  5. requiresAuth?: boolean;
  6. guestOnly?: boolean;
  7. }
  8. }
  9. // ── 用户 ──────────────────────────────────────────────
  10. export interface User {
  11. email: string;
  12. token: string;
  13. uid?: string;
  14. }
  15. // ── 行情 ──────────────────────────────────────────────
  16. export type MarketType = "futures" | "spot";
  17. export interface MarketItem {
  18. symbol: string; // e.g. "BTC/USDT"
  19. name: string; // e.g. "比特币"
  20. type: "futures" | "spot";
  21. icon: string; // coin icon url
  22. price: number;
  23. change24h: number; // 百分比,如 +21.26
  24. high24h: number;
  25. low24h: number;
  26. volume24h: number; // 成交量
  27. stockType: number; // 股票类型
  28. }
  29. export interface CoinDetail {
  30. symbol: string;
  31. name: string;
  32. icon: string;
  33. marketCap: string;
  34. circulatingSupply: string;
  35. totalSupply: string;
  36. allTimeHigh: number;
  37. currentPrice: number;
  38. priceChange: number;
  39. priceChangePct: number;
  40. stats: PeriodStat[];
  41. chartData: ChartPoint[];
  42. }
  43. export interface PeriodStat {
  44. label: string; // 近1年 / 3个月 / 30天 / 7天
  45. changePct: number;
  46. price: number;
  47. }
  48. export interface ChartPoint {
  49. time: string;
  50. price: number;
  51. }
  52. export type ChartRange = "24h" | "1w" | "1m" | "1y";
  53. // ── 公告 ──────────────────────────────────────────────
  54. export interface Announcement {
  55. id: string | number;
  56. title: string;
  57. content?: string;
  58. publishedAt: string; // ISO string
  59. author?: string;
  60. }
  61. // ── VIP 费率 ──────────────────────────────────────────
  62. export interface VipTier {
  63. level: string; // VIP1 ~ VIP5
  64. minHolding: number; // 最低持仓 USDT
  65. spotMaker: number;
  66. spotTaker: number;
  67. futuresMaker: number;
  68. futuresTaker: number;
  69. }
  70. // ── 导航 ──────────────────────────────────────────────
  71. export interface NavItem {
  72. label: string;
  73. to: string;
  74. }
  75. // ── 资产 ──────────────────────────────────────────────
  76. export interface AssetItem {
  77. coin: string; // e.g. "BTC"
  78. name: string; // e.g. "比特币"
  79. available: number; // 可用
  80. frozen: number; // 冻结
  81. usdtValue: number; // 折合 USDT
  82. }
  83. export interface AssetOverview {
  84. totalUsdt: number;
  85. totalCny: number;
  86. assets: AssetItem[];
  87. }
  88. export type TransferAccount = "fund" | "futures" | "copy";