pose.ts 2.35 KB
import request from '@/config/axios'

// 动作VO类型定义(对应接口返回的动作数据结构)
export interface ExercisesVO {
  id: number
  name: string
  categoryId: number
  categoryName?: string //部位名称
  equipmentId: number
  equipmentName?: string //用具名称
  exerciseType: number
  urlImage?: string
  url3dAnimation: string
  urlRealPerson: string
  urlTutorial: string
  stepDescription: string
  primaryMuscles: string
  secondaryMuscles: string
  createTime: string
  updateTime?: string
}

// 创建/更新动作的请求参数结构
export interface ExercisesSaveReqVO {
  id?: number
  name?: string
  categoryId?: number
  equipmentId?: number
  exerciseType?: number
  urlImage?: string
  url3dAnimation?: string
  urlRealPerson?: string
  urlTutorial?: string
  stepDescription?: string
  primaryMuscles?: string[]
  secondaryMuscles?: string[]
}

// 分页/导出查询参数
export interface PageParam {
  pageNo: number
  pageSize: number
  name?: string
  categoryId?: number
  equipmentId?: number
  exerciseType?: number
  createTime?: string
}

// 动作(Exercises)API 封装对象(和ClassroomApi架构完全一致)
export const ExercisesApi = {
  // 1. 获得动作分页
  getExercisesPage: (params: PageParam) => {
    return request.get({ url: '/motion/exercises/page', params })
  },

  // 2. 获得动作详情
  getExercises: (id: number) => {
    return request.get({ url: '/motion/exercises/get', params: { id } })
  },

  // 3. 创建动作
  addExercises: (data: Omit<ExercisesSaveReqVO, 'id'>) => {
    return request.post({ url: '/motion/exercises/create', data })
  },

  // 4. 更新动作
  updateExercises: (data: ExercisesSaveReqVO) => {
    return request.put({ url: '/motion/exercises/update', data })
  },

  // 5. 删除动作(单个)
  deleteExercises: (id: number) => {
    return request.delete({ url: '/motion/exercises/delete', params: { id } })
  },

  // 6. 批量删除动作
  deleteExercisesList: (ids: number[]) => {
    return request.delete({ url: '/motion/exercises/delete-list', params: { ids } })
  },

  // 7. 导出动作Excel
  exportExercises: (params: PageParam) => {
    return request.download({
      url: '/motion/exercises/export-excel',
      params
    })
  },
  // 获取动作分类下拉列表
  getExercisesList: () => {
    return request.get({ url: '/motion/supersets/simple-list' })
  }
}