тип заявок

This commit is contained in:
2026-02-03 00:07:57 +05:00
parent 1b4b65cc37
commit 858d1802e6
4 changed files with 442 additions and 0 deletions

View File

@@ -641,4 +641,158 @@ async function loadTaskFiles(taskId) {
} catch (error) {
console.error('Ошибка загрузки файлов:', error);
}
}
// Функция для выбора типа задачи
function selectTaskType(type) {
// Убираем активный класс со всех кнопок
document.querySelectorAll('.task-type-btn').forEach(btn => {
btn.classList.remove('active');
});
// Добавляем активный класс выбранной кнопке
document.querySelector(`.task-type-btn[data-type="${type}"]`).classList.add('active');
// Устанавливаем значение в скрытое поле
document.getElementById('task-type').value = type;
// Можем добавить дополнительную логику в зависимости от типа
updateTaskFormBasedOnType(type);
// Предлагаем заголовок по умолчанию
suggestDefaultTitle(type);
}
// Функция для предложения заголовка по умолчанию
function suggestDefaultTitle(type) {
const titleField = document.getElementById('title');
if (!titleField) return;
// Если поле уже заполнено, не меняем
if (titleField.value.trim() !== '') return;
const defaultTitles = {
'regular': '',
'document': 'Согласование документа: ',
'it': 'Заявка в ИТ отдел: ',
'ahch': 'Заявка в АХЧ: ',
'psychologist': 'Заявка к психологу: ',
'speech_therapist': 'Заявка к логопеду: ',
'hr': 'Заявка в кадры: ',
'certificate': 'Заявка на получение справки: ',
'e_journal': 'Заявка на доступ в электронный журнал: '
};
const defaultTitle = defaultTitles[type] || '';
titleField.placeholder = `${defaultTitle}укажите детали...`;
}
// Функция для обновления формы в зависимости от типа задачи
function updateTaskFormBasedOnType(type) {
const userSearchField = document.getElementById('user-search');
// Устанавливаем заголовки placeholder для поиска исполнителей
const defaultPlaceholders = {
'regular': 'Поиск исполнителей...',
'document': 'Поиск секретарей/администрации...',
'it': 'Поиск ИТ специалистов...',
'ahch': 'Поиск АХЧ сотрудников...',
'psychologist': 'Поиск психологов...',
'speech_therapist': 'Поиск логопедов...',
'hr': 'Поиск сотрудников кадровой службы...',
'certificate': 'Поиск секретаря/завуча...',
'e_journal': 'Поиск администратора электронного журнала...'
};
// Обновляем placeholder поля поиска исполнителей
if (userSearchField) {
userSearchField.placeholder = defaultPlaceholders[type] || 'Поиск исполнителей...';
}
// Показываем/скрываем дополнительные поля в зависимости от типа
showAdditionalFieldsForType(type);
}
// Функция для показа дополнительных полей
function showAdditionalFieldsForType(type) {
// Пока скрываем все дополнительные поля (если они есть)
hideAllAdditionalFields();
// Показываем поля в зависимости от типа
switch(type) {
case 'certificate':
showCertificateFields();
break;
case 'e_journal':
showEJournalFields();
break;
case 'psychologist':
case 'speech_therapist':
showSpecialistFields(type);
break;
// Можно добавить другие типы
}
}
// Функции для управления дополнительными полями
function hideAllAdditionalFields() {
// Если есть дополнительные поля, скрываем их
// Пока оставляем пустым, можно добавить позже
}
function showCertificateFields() {
// Можно добавить поля для справок
// Например: тип справки, для кого, срок действия
}
function showEJournalFields() {
// Можно добавить поля для доступа к электронному журналу
// Например: логин, класс, предметы
}
function showSpecialistFields(type) {
// Можно добавить поля для специалистов
// Например: ученик, класс, причина обращения
}
// Вспомогательная функция для получения названия типа задачи
function getTaskTypeName(type) {
const typeNames = {
'regular': 'задачу',
'document': 'название документа',
'it': 'описание проблемы',
'ahch': 'описание заявки',
'psychologist': 'повод для обращения к психологу',
'speech_therapist': 'повод для обращения к логопеду',
'hr': 'вопрос к кадровой службе',
'certificate': 'тип необходимой справки',
'e_journal': 'информацию для доступа к журналу'
};
return typeNames[type] || 'задачу';
}
// Функция для получения отображаемого имени типа задачи
function getTaskTypeDisplayName(type) {
const typeNames = {
'regular': 'Задача',
'document': 'Документ',
'it': 'ИТ',
'ahch': 'АХЧ',
'psychologist': 'Психолог',
'speech_therapist': 'Логопед',
'hr': 'Кадры',
'certificate': 'Справка',
'e_journal': 'Эл. журнал'
};
return typeNames[type] || type;
}
// Функция для получения иконки типа задачи
function getTaskTypeIcon(type) {
const icons = {
'regular': 'fas fa-tasks',
'document': 'fas fa-file-signature',
'it': 'fas fa-desktop',
'ahch': 'fas fa-tools',
'psychologist': 'fas fa-brain',
'speech_therapist': 'fas fa-comment-medical',
'hr': 'fas fa-users',
'certificate': 'fas fa-file-certificate',
'e_journal': 'fas fa-book'
};
return icons[type] || 'fas fa-tasks';
}