Важный фикс
Забыл добавить управление отделами :)
This commit is contained in:
@@ -596,6 +596,71 @@ export const useProjectsStore = defineStore('projects', () => {
|
||||
return result
|
||||
}
|
||||
|
||||
// ==================== CRUD ОТДЕЛОВ ====================
|
||||
|
||||
// Добавление отдела
|
||||
const addDepartment = async (name, color = '#6366f1') => {
|
||||
if (!currentProjectId.value) return { success: false }
|
||||
|
||||
const result = await projectsApi.addDepartment(currentProjectId.value, name, color)
|
||||
if (result.success) {
|
||||
departments.value.push(result.department)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
// Обновление отдела
|
||||
const updateDepartment = async (id, name, color) => {
|
||||
const result = await projectsApi.updateDepartment(id, name, color)
|
||||
if (result.success) {
|
||||
const department = departments.value.find(d => d.id === id)
|
||||
if (department) {
|
||||
if (name !== null && name !== undefined) department.name_departments = name
|
||||
if (color !== null && color !== undefined) department.color = color
|
||||
}
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
// Получение количества задач в отделе
|
||||
const getDepartmentTasksCount = async (id) => {
|
||||
const result = await projectsApi.getDepartmentTasksCount(id)
|
||||
return result.success ? result.count : 0
|
||||
}
|
||||
|
||||
// Удаление отдела
|
||||
const deleteDepartment = async (id) => {
|
||||
const result = await projectsApi.deleteDepartment(id)
|
||||
if (result.success) {
|
||||
const index = departments.value.findIndex(d => d.id === id)
|
||||
if (index !== -1) {
|
||||
departments.value.splice(index, 1)
|
||||
}
|
||||
// Обнуляем id_department у карточек этого отдела
|
||||
cards.value.forEach(card => {
|
||||
if (card.id_department === id) {
|
||||
card.id_department = null
|
||||
}
|
||||
})
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
// Обновление порядка отделов
|
||||
const reorderDepartments = async (ids) => {
|
||||
if (!currentProjectId.value) return
|
||||
|
||||
// Оптимистичное обновление
|
||||
const reordered = ids.map((id, index) => {
|
||||
const department = departments.value.find(d => d.id === id)
|
||||
return { ...department, order_id: index + 1 }
|
||||
})
|
||||
departments.value = reordered
|
||||
|
||||
// Отправляем на сервер
|
||||
await projectsApi.updateDepartmentsOrder(currentProjectId.value, ids)
|
||||
}
|
||||
|
||||
return {
|
||||
// Состояние
|
||||
projects,
|
||||
@@ -646,6 +711,12 @@ export const useProjectsStore = defineStore('projects', () => {
|
||||
getColumnTasksCount,
|
||||
deleteColumn,
|
||||
reorderColumns,
|
||||
setReadyColumn
|
||||
setReadyColumn,
|
||||
// CRUD отделов
|
||||
addDepartment,
|
||||
updateDepartment,
|
||||
getDepartmentTasksCount,
|
||||
deleteDepartment,
|
||||
reorderDepartments
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user