医学道
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
video/src/api/manage.ts

123 lines
3.1 KiB

import {request} from "@/api/request";
export interface Student {
company_id:number
avatar: string
dep_ids: number[]
email: string
id_card: string
name: string
password: string
phone_number: string
}
interface UserInfoData {
dep_ids: number[]
user: Student
}
interface setRoleTypeData {
/** 当前超级管理员ID */
auth_id: number
/** 管理员权限,0 为员工,1为管理员,2为超级管理员 */
role_type: number
}
type DepList = Record<number, Manage[]>
export interface AddDepProps {
id?: number | null
name: string
parent_id: number
company_id: number
sort: number
}
interface DepCurData {
data: Curriculum[]
total: number
}
export interface depCurProps {
page: number
size: number
id: number
}
interface AddCurProps {
course_id: number[]
dep_id: number[]
is_required: 1 | 0
}
export interface CurLearningRecord {
course: Curriculum
data: User[]
/** 部门 */
departments: Record<number, string>
/** 第一次记录 */
user_course_hour_user_first_at: Record<string, unknown>
/** 学习记录 */
user_course_records: Record<string, LearnRecord>
/** 学员部门 */
user_dep_ids: Record<number, number[]>
total: number
}
export const ManageApi = {
/** 添加学员 */
addUser(data: Student) {
return request('/api/v1/user/create', "POST", data)
},
userInfo(id: number) {
return request<UserInfoData>(`/api/v1/user/${id}`, "GET")
},
putUser(id: number, data: Student) {
return request(`/api/v1/user/front/${id}`, "PUT", data)
},
del(id: number) {
return request(`/api/v1/user/${id}`, "DELETE")
},
/** 修改学员类型 */
setRoleType(id: number, data: setRoleTypeData) {
return request(`/api/v1/user/${id}`, "PUT", data)
},
/** 部门 */
depList() {
return request<DepList>('/api/v1/department/index', "GET")
},
addDep(data: AddDepProps) {
return request('/api/v1/department/save', "POST", data)
},
putDep(data: AddDepProps) {
return request(`/api/v1/department/${data.id}`, "PUT", data)
},
delDep(id: number) {
return request(`/api/v1/department/${id}`, "DELETE")
},
/** 部门课程 */
depCur(data: depCurProps) {
return request<DepCurData>(`/api/v1/department/${data.id}/courses?page=${data.page}&size=${data.size}`, "GET")
},
/** 未添加课程 */
optionalCur(dep_id: number, category_id: number) {
return request<Curriculum[]>(`/api/v1/department/${dep_id}/optional?category_id=${category_id}`, "GET")
},
addCur(data: AddCurProps) {
return request('/api/v1/course/user', "POST", data)
},
buyAll() {
return request<Curriculum[]>('/api/v1/course/buy/all', "GET")
},
buy(data_list: number[]) {
return request(`/api/v1/course/buy?data_list=${data_list}`, "POST")
},
/** 课程绑定部门 */
bingDep(dep_id: number) {
return request<Curriculum & { department: Department[] }>(`/api/v1/course/all/bind/${dep_id}`, "GET")
},
/** 课程学员学习记录 */
curLearningRecord(cur_id: number | string,data:{page:number,size:number}) {
return request<CurLearningRecord>(`/api/v1/course/${cur_id}/user/index`, "GET", data)
}
}