Files
martial-admin-mini/api/auth.js
宅房 7ec9a77c2a feat: 添加Mock版本保护机制 - 基础架构完成
完成内容:
 第一层保护: 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行代码
- 完整的注释和使用说明
2025-12-11 14:06:03 +08:00

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": ["女子组长拳", "男子组陈氏太极拳"]
* }
* }
*/