mirror of https://github.com/doccano/doccano.git
pythondatasetnatural-language-processingdata-labelingmachine-learningannotation-tooldatasetsactive-learningtext-annotation
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.
106 lines
2.5 KiB
106 lines
2.5 KiB
import ProjectService from '@/services/project.service'
|
|
|
|
export const state = () => ({
|
|
projects: [],
|
|
selected: [],
|
|
current: null,
|
|
loading: false
|
|
})
|
|
|
|
export const getters = {
|
|
isProjectSelected(state) {
|
|
return state.selected.length > 0
|
|
}
|
|
}
|
|
|
|
export const mutations = {
|
|
setProjectList(state, payload) {
|
|
state.projects = payload
|
|
},
|
|
createProject(state, project) {
|
|
state.projects.unshift(project)
|
|
},
|
|
updateProject(state, project) {
|
|
const item = state.projects.find(item => item.id === project.id)
|
|
Object.assign(item, project)
|
|
},
|
|
deleteProject(state, projectId) {
|
|
state.projects = state.projects.filter(item => item.id !== projectId)
|
|
},
|
|
updateSelected(state, selected) {
|
|
state.selected = selected
|
|
},
|
|
resetSelected(state) {
|
|
state.selected = []
|
|
},
|
|
setLoading(state, payload) {
|
|
state.loading = payload
|
|
},
|
|
setCurrent(state, payload) {
|
|
state.current = payload
|
|
}
|
|
}
|
|
|
|
export const actions = {
|
|
getProjectList({ commit }, config) {
|
|
commit('setLoading', true)
|
|
ProjectService.getProjectList()
|
|
.then((response) => {
|
|
commit('setProjectList', response)
|
|
})
|
|
.catch((error) => {
|
|
alert(error)
|
|
})
|
|
.finally(() => {
|
|
commit('setLoading', false)
|
|
})
|
|
},
|
|
createProject({ commit }, project) {
|
|
ProjectService.createProject(project)
|
|
.then((response) => {
|
|
commit('createProject', response)
|
|
})
|
|
.catch((error) => {
|
|
alert(error)
|
|
})
|
|
},
|
|
updateProject({ commit }, data) {
|
|
ProjectService.updateProject(data.projectId, data)
|
|
.then((response) => {
|
|
commit('updateProject', response)
|
|
})
|
|
.catch((error) => {
|
|
alert(error)
|
|
})
|
|
},
|
|
deleteProject({ commit, state }, config) {
|
|
for (const project of state.selected) {
|
|
ProjectService.deleteProject(project.id)
|
|
.then((response) => {
|
|
commit('deleteProject', project.id)
|
|
})
|
|
.catch((error) => {
|
|
alert(error)
|
|
})
|
|
}
|
|
commit('resetSelected')
|
|
},
|
|
setCurrentProject({ commit }, projectId) {
|
|
return ProjectService.fetchProjectById(projectId)
|
|
.then((response) => {
|
|
commit('setCurrent', response)
|
|
})
|
|
.catch((error) => {
|
|
alert(error)
|
|
})
|
|
},
|
|
updateCurrentProject({ commit }, data) {
|
|
ProjectService.updateProject(data.projectId, data)
|
|
.then((response) => {
|
|
commit('setCurrent', response)
|
|
})
|
|
.catch((error) => {
|
|
alert(error)
|
|
})
|
|
}
|
|
}
|