mirror of https://github.com/doccano/doccano.git
pythonannotation-tooldatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learning
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.
53 lines
1.6 KiB
53 lines
1.6 KiB
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
|
|
}
|
|
}
|