|
|
import { reactive } from '@nuxtjs/composition-api'
export const useTeacherList = (service: any) => { const state = reactive({ teacherList: [] })
const getTeacherList = async( projectId: string, exampleId: number ) => { state.teacherList = await service.list(projectId, exampleId) }
const removeTeacher = async( projectId: string, exampleId: number, teacherId: number ) => { await service.delete(projectId, exampleId, teacherId) await getTeacherList(projectId, exampleId) }
const annotateLabel = async( projectId: string, exampleId: number, labelId: number ) => { await service.create(projectId, exampleId, labelId) await getTeacherList(projectId, exampleId) }
const clearTeacherList = async( projectId: string, exampleId: number ) => { await service.clear(projectId, exampleId) await getTeacherList(projectId, exampleId) }
const autoLabel = async( projectId: string, exampleId: number ) => { await service.autoLabel(projectId, exampleId) await getTeacherList(projectId, exampleId) }
const annotateOrRemoveLabel = async( projectId: string, exampleId: number, srcKey: string ) => { const labelId = parseInt(srcKey, 10) // @ts-ignore
const annotation = state.teacherList.find(item => item.label === labelId) if (annotation) { // @ts-ignore
await removeTeacher(projectId, exampleId, annotation.id) } else { await annotateLabel(projectId, exampleId, labelId) } }
return { state, getTeacherList, annotateLabel, annotateOrRemoveLabel, removeTeacher, clearTeacherList, autoLabel, } }
|