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.
86 lines
2.1 KiB
86 lines
2.1 KiB
import {request} from "./request";
|
|
|
|
interface Code {
|
|
image: string
|
|
}
|
|
|
|
export interface LoginData {
|
|
access_token: string
|
|
code?: Code
|
|
company: Company
|
|
token: string
|
|
user: User
|
|
catch_key: string
|
|
}
|
|
|
|
interface CheckoutBody {
|
|
catch_key: string
|
|
code: string
|
|
phone_number: string
|
|
}
|
|
|
|
interface CheckoutData {
|
|
token: string
|
|
phone_number: string
|
|
user: User
|
|
company: Company
|
|
}
|
|
|
|
interface DepListData {
|
|
departments: Department[]
|
|
user: User
|
|
}
|
|
|
|
interface LearningRecord {
|
|
user_course_records: LearnRecord[]
|
|
}
|
|
|
|
interface CourseRecord {
|
|
course: Curriculum
|
|
data: Record<number, userRecord>
|
|
}
|
|
|
|
interface HourCourse {
|
|
courseHour: Record<number, Hour>,
|
|
date: Record<number, { start: number, end: number }>
|
|
duration: Record<number, number>
|
|
}
|
|
|
|
export const userApi = {
|
|
login(code: string) {
|
|
return request<LoginData>('/api/v1/auth/login/wechat', 'POST', {code})
|
|
},
|
|
checkout(data: CheckoutBody) {
|
|
return request<CheckoutData>('/api/v1/auth/login/checkout', 'POST', data)
|
|
},
|
|
unbind(id: number) {
|
|
return request(`/api/v1/auth/login/unbind/${id}`, "PUT")
|
|
},
|
|
putName(id: number, name: string) {
|
|
return request<User>(`/api/v1/auth/login/${id}`, "PUT", {name})
|
|
},
|
|
/** 所属部门 */
|
|
depList() {
|
|
return request<DepListData>(`/api/v1/user/detail`, "GET")
|
|
},
|
|
code(catch_key: string) {
|
|
return request<{ code: Code }>(`/api/v1/auth/login/code`, "POST", {openid: catch_key})
|
|
},
|
|
learningRecord(courseId?: number) {
|
|
return request<LearningRecord>(`/api/v1/user/record/course`, "GET", courseId ? {courseId} : {})
|
|
},
|
|
/** 学习记录 */
|
|
record(category_id: number) {
|
|
return request<Record<number, userRecord>>(`/api/v1/course/${category_id}/record`, "GET")
|
|
},
|
|
courseRecord(course_id: number) {
|
|
return request<CourseRecord>(`/api/v1/course/${course_id}/info`, "GET")
|
|
},
|
|
hourCourse(course_id: number, unique_ident: number) {
|
|
return request<HourCourse>(`/api/v1/course/${course_id}/info/${unique_ident}`, "GET")
|
|
},
|
|
meetingSave(data: any) {
|
|
return request<LoginData>(`/api/v1/user/meeting/save`, "POST", data)
|
|
}
|
|
|
|
}
|
|
|