完成内容: ✅ 第一层保护: Git分支隔离 - 创建 v1.0-mock 标签 - 创建 feature/api-integration 分支 ✅ 第二层保护: 配置开关控制 - config/env.config.js (环境配置,支持Mock/API模式切换) ✅ 第三层保护: 代码架构分离 - utils/request.js (网络请求封装,支持Blade-Auth) - utils/dataAdapter.js (核心适配器,自动选择数据源) ✅ Mock数据模块 (4个文件): - mock/index.js (统一入口) - mock/login.js (登录Mock数据) - mock/athlete.js (选手Mock数据,含场地、项目) - mock/score.js (评分Mock数据,含扣分项、详情、修改) ✅ API接口模块 (4个文件): - api/index.js (统一入口) - api/auth.js (认证API,含后端接口规范) - api/athlete.js (选手API,含SQL示例) - api/score.js (评分API,含实现逻辑说明) 特性: - 通过修改 config/env.config.js 的 dataMode 即可切换Mock/API模式 - Mock模式: 完全离线,无需后端,UI功能完整 - API模式: 调用真实后端接口(需后端实现5个专用接口) - 零UI修改: 原有页面代码完全保护,仅替换数据源 下一步: - 修改5个页面使用 dataAdapter - 测试Mock模式功能 - 后端开发5个小程序专用接口 代码统计: - 新增11个文件 - 约1000行代码 - 完整的注释和使用说明
86 lines
1.5 KiB
JavaScript
86 lines
1.5 KiB
JavaScript
/**
|
|
* API接口 - 认证模块
|
|
* 真实后端接口调用(需要后端实现)
|
|
*/
|
|
|
|
import request from '@/utils/request.js'
|
|
|
|
/**
|
|
* 登录验证
|
|
* @param {Object} data
|
|
* @param {String} data.matchCode - 比赛编码
|
|
* @param {String} data.inviteCode - 邀请码
|
|
* @returns {Promise}
|
|
*
|
|
* 注意:此接口需要后端实现
|
|
* 建议路径: POST /api/mini/login
|
|
*/
|
|
export function login(data) {
|
|
return request({
|
|
url: '/api/mini/login',
|
|
method: 'POST',
|
|
data,
|
|
showLoading: true,
|
|
loadingText: '登录中...'
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 退出登录
|
|
* @returns {Promise}
|
|
*/
|
|
export function logout() {
|
|
return request({
|
|
url: '/api/mini/logout',
|
|
method: 'POST'
|
|
})
|
|
}
|
|
|
|
/**
|
|
* Token验证
|
|
* @returns {Promise}
|
|
*/
|
|
export function verifyToken() {
|
|
return request({
|
|
url: '/api/mini/verify',
|
|
method: 'GET'
|
|
})
|
|
}
|
|
|
|
export default {
|
|
login,
|
|
logout,
|
|
verifyToken
|
|
}
|
|
|
|
/**
|
|
* 后端接口规范(待实现):
|
|
*
|
|
* POST /api/mini/login
|
|
*
|
|
* 请求:
|
|
* {
|
|
* "matchCode": "123",
|
|
* "inviteCode": "pub"
|
|
* }
|
|
*
|
|
* 响应:
|
|
* {
|
|
* "code": 200,
|
|
* "success": true,
|
|
* "msg": "登录成功",
|
|
* "data": {
|
|
* "token": "xxx",
|
|
* "userRole": "pub",
|
|
* "matchId": "123",
|
|
* "matchName": "2025年全国武术散打锦标赛...",
|
|
* "matchTime": "2025年6月25日 9:00",
|
|
* "judgeId": "456",
|
|
* "judgeName": "欧阳丽娜",
|
|
* "venueId": "1",
|
|
* "venueName": "第一场地",
|
|
* "projects": ["女子组长拳", "男子组陈氏太极拳"]
|
|
* }
|
|
* }
|
|
*/
|