partCategory.ts 2.1 KB
import request from '@/config/axios'

/** 动作分类 - 新增/修改 Request VO */
export interface CategoriesSaveReqVO {
  id?: number
  name: string
  subCategoryIds?: number[]
}

/** 动作分类 - 响应 VO */
export interface CategoriesRespVO {
  id: number
  name: string
  subCategoryIds?: number[]
  createTime: string
}

/** 动作分类 API 集合 */
export const MotionCategoryApi = {
  createMotionCategory: async (data: any) => {
    return await request.post({
      url: `/motion/categories`,
      data
    })
  },

  /**
   * 更新动作分类
   */
  updateMotionCategory: async (data: any) => {
    return await request.put({
      url: `/motion/categories`,
      data
    })
  },

  /**
   * 获取动作分类详情
   */
  getMotionCategory: async (id: number) => {
    return await request.get({
      url: `/motion/categories/get`,
      params: { id }
    })
  },

  /**
   * 删除动作分类
   */
  deleteMotionCategory: async (id: number) => {
    return await request.delete({
      url: `/motion/categories`,
      params: { id }
    })
  },

  // ========== 分页 & 导出 ==========
  /**
   * 分页获取动作分类列表
   */
  getMotionCategoryPage: async (params: {
    pageNo: string
    pageSize: string
    name?: string
    createTime?: string
  }) => {
    return await request.get({
      url: `/motion/categories/page`,
      params
    })
  },

  /**
   * 导出动作分类 Excel
   */
  exportMotionCategoryExcel: async (params: {
    pageNo: string
    pageSize: string
    name?: string
    createTime?: string
  }) => {
    return await request.get({
      url: `/motion/categories/export-excel`,
      params,
      responseType: 'blob' // 用于文件下载
    })
  },

  // ========== 批量操作 ==========
  /**
   * 批量删除动作分类
   */
  deleteMotionCategoryBatch: async (ids: number[]) => {
    return await request.delete({
      url: `/motion/categories/delete-list`,
      params: { ids }
    })
  },
  // 获取部位/动作分类下拉列表
  getCategoriesList: async () => {
    return await request.get({
      url: `/motion/categories/simple-list`
    })
  }
}