本文档定义了前端页面所需的数据接口,旨在将前端硬编码(Hardcoded)的展示数据替换为后端动态配置数据。
所有接口均遵循统一的响应结构:
{
"code": 200, // 业务状态码,200表示成功
"msg": "success", // 提示信息
"data": { ... } // 业务数据
}用于渲染首页顶部的快捷功能导航(支持轮播分页)。
- 接口地址:
/home/shortcuts - 请求方式:
GET - 响应示例:
{
"code": 200,
"data": [
{
"id": 1,
"name": "地图找车",
"icon": "location-o",
"actionUrl": "/pages/map/map",
"sort": 10
},
{
"id": 2,
"name": "搜停车点",
"icon": "flag-o",
"actionUrl": "/pages/map/parking",
"sort": 20
}
// ... 更多数据
]
}用于渲染首页“购卡骑车更划算”区域的优惠卡片。
- 接口地址:
/home/promotions - 请求方式:
GET - 响应示例:
{
"code": 200,
"data": {
"title": "购卡骑车更划算",
"moreUrl": "/pages/card/list",
"cards": [
{
"id": 101,
"title": "单车30天卡起步0.99元",
"subTitle": "起步只要0.99元",
"subTitleColor": "#FF5252",
"price": 0.1,
"originalPrice": 45.0,
"unit": "元",
"btnText": "去购买",
"actionUrl": "/pages/package/buy?id=101"
},
{
"id": 102,
"title": "单车7天畅骑卡",
"subTitle": "低至0.98元/天",
"subTitleColor": "#FF5252",
"price": 6.8,
"originalPrice": 15.0,
"unit": "元",
"btnText": "去购买",
"actionUrl": "/pages/package/buy?id=102"
}
]
}
}用于渲染首页底部的“年度报告”、“骑行规范”等运营卡片。
- 接口地址:
/home/bottom-cards - 请求方式:
GET - 响应示例:
{
"code": 200,
"data": [
{
"id": 1,
"title": "2025年度报告",
"desc": "解锁你的骑行关键词",
"btnText": "去查看",
"icon": "medal-o",
"bgColor": "#FFD54F", // 背景色或图片类名
"actionUrl": "/pages/report/2025"
},
{
"id": 2,
"title": "骑行规范早知道",
"desc": "避免违停费",
"btnText": "去查看",
"icon": "orders-o",
"bgColor": "#4FC3F7",
"actionUrl": "/pages/guide/rules"
}
]
}(已存在接口,补充文档)
- 接口地址:
/charging/getNearbyVehicles - 请求方式:
POST - 请求参数:
{ "lat": 39.9045035, // 纬度 "lng": 116.408788, // 经度 "distance": 5000 // 搜索半径(米) } - 响应示例:
{ "code": 200, "data": { "records": [ { "vehicleId": "V8888", "latitude": 39.905, "longitude": 116.409, "battery": 80 } ] } }
用于个人中心展示余额、优惠券数量、套餐卡数量等。
- 接口地址:
/user/assets - 请求方式:
GET - 响应示例:
{
"code": 200,
"data": {
"balance": 12.50, // 钱包余额
"couponCount": 3, // 优惠券张数
"packageCount": 1, // 骑行套餐数
"points": 500 // 积分
}
}用于个人中心顶部展示的累计数据。
- 接口地址:
/user/stats - 请求方式:
GET - 响应示例:
{
"code": 200,
"data": {
"totalDistance": 149.5, // 骑行里程 (km)
"totalCalories": 8865.8, // 消耗热量 (kcal)
"carbonSaved": 7.6, // 减碳贡献 (kg)
"totalRides": 58 // 总骑行次数
}
}用于个人中心“进行中”或“最近完成”的订单展示。
- 接口地址:
/order/recent - 请求方式:
GET - 响应示例:
{
"code": 200,
"data": {
"orderId": "20260120102038",
"status": 1, // 1: 进行中, 2: 已完成
"statusText": "骑行中",
"startTime": "2026-01-20 10:20:38",
"duration": "15分钟",
"currentCost": 2.50,
"vehicleNo": "888123"
}
}用于个人中心点击“登录/注册”时,通过微信授权获取手机号进行登录。
- 接口地址:
/auth/wechat-login - 请求方式:
POST - 请求参数:
{ "code": "wechat_auth_code_xyz123" // 微信 getPhoneNumber 返回的 code } - 响应示例:
{ "code": 200, "data": { "token": "user_token_abc123", "phone": "138****8888", "userInfo": { "id": 1001, "nickname": "Wechat User" } } }
用于“优惠购卡”页面展示可购买的骑行卡列表。
- 接口地址:
/card/list - 请求方式:
GET - 响应示例:
{
"code": 200,
"data": {
"totalSavings": 38.0, // 累计节省金额
"hotCards": [ // 热门推荐
{
"id": 101,
"name": "单车7天畅骑卡",
"desc": "每单60分钟内免费 | 多区域可用 >",
"tag": "低至0.98元/天",
"price": 6.8,
"originalPrice": 15.0
}
],
"moreCards": [ ... ]
}
}用于“发现坏车”页面展示可选的故障类型。
- 接口地址:
/repair/fault-types - 请求方式:
GET - 响应示例:
{
"code": 200,
"data": [
{ "id": 1, "name": "车篮", "icon": "bag-o" },
{ "id": 2, "name": "车把", "icon": "wap-nav" },
// ...
]
}用于提交车辆故障信息。
- 接口地址:
/repair/submit - 请求方式:
POST - 请求参数:
{ "bikeNo": "888123", "faultIds": [1, 3], // 故障类型ID数组 "photoUrl": "https://..." // 上传的图片地址 } - 响应示例:
{ "code": 200, "msg": "提交成功" }
用于“计价规则”页面展示不同时段(平日/节假日)的收费标准。
- 接口地址:
/rule/pricing - 请求方式:
GET - 响应示例:
{
"code": 200,
"data": {
"city": "广州市",
"rules": {
"weekday": {
"basePrice": 1.8,
"baseDuration": 15, // 分钟
"timePrice": 1.0,
"timeUnit": 15 // 分钟
},
"holiday": {
// ... 节假日规则
}
},
"manageFees": [
{ "name": "运营区外还车调度费", "fee": "10元/单" },
{ "name": "禁停区内还车管理费", "fee": "5~10元/单" }
]
}
}