тип заявок
This commit is contained in:
154
public/ui.js
154
public/ui.js
@@ -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';
|
||||
}
|
||||
Reference in New Issue
Block a user