This commit is contained in:
2026-08-20 18:29:27 +05:00
parent 010f78b138
commit 51339b3f9a
8 changed files with 177 additions and 83 deletions
+40 -3
View File
@@ -19,11 +19,24 @@ export interface IFeedbackData {
}
/**
* Список компаний. ПРЕДПОЛОЖЕНИЕ: в исходной форме была видна только
* «ТОО АСТЕЛ-К»; остальные значения нужно уточнить у заказчика формы.
* Компании группы. В value — реальный Id из справочника, а не slug: именно его
* ждёт бэкенд, когда появится отправка. Порядок как в источнике (по алфавиту).
*/
export const COMPANY_OPTIONS: ISelectOption[] = [
{ value: 'astel-k', label: 'ТОО АСТЕЛ-К' }
{ value: '8028abac-ac23-8fd8-11ef-cb57631a9ab0', label: 'ТОО AFL Engineering' },
{ value: '9de064a4-44c8-88ef-11ec-831c058b1141', label: 'ТОО CL MANAGEMENT' },
{ value: '9de064a4-44c8-88ef-11ec-8287fb7737a2', label: 'ТОО KazPromService' },
{ value: 'ec3c78a7-29ef-4725-11ed-a6d8fcd0911d', label: 'ТОО QAZGEOMAX' },
{ value: '15009595-005d-00fa-11ef-11309f5e395d', label: 'ТОО Selin Invest' },
{ value: '03f4deac-f543-e8cf-11f1-84eb25329fc3', label: 'ТОО Selin Studio' },
{ value: '9de064a4-44c8-88ef-11ec-8284930fad96', label: 'ТОО TANSU Construction' },
{ value: '9de064a4-44c8-88ef-11ec-8285925d83d2', label: 'ТОО АСТЕЛ-К' },
{ value: '15009595-005d-00fa-11ef-0b8bb5ec1a88', label: 'ТОО ГеоТрек' },
{ value: '15009595-005d-00fa-11ef-0b8714483372', label: 'ТОО Монтажник-Т' },
{ value: '8028beac-ac23-8fd8-11f0-5351706e5996', label: 'ТОО ОСН Беркут' },
{ value: '8028b0ac-ac23-8fd8-11ef-dcdb24b82e02', label: 'ТОО СТ Global' },
{ value: '15009595-005d-00fa-11ef-1131801d9f3e', label: 'ТОО ТехЛаб' },
{ value: '03f4deac-f543-e8cf-11f1-84f51483f59e', label: 'Частная компания Seline Holding Ltd' }
];
export const KIND_OPTIONS: ISelectOption[] = [
@@ -32,6 +45,30 @@ export const KIND_OPTIONS: ISelectOption[] = [
{ value: 'other', label: 'Другое' }
];
/** Какие текстовые поля показываем для выбранного вида обращения. */
export interface IVisibleAppealFields {
situation: boolean;
suggestion: boolean;
}
/**
* Состав полей зависит от вида обращения:
* жалоба — что случилось и что предлагаете изменить;
* предложение — только само предложение, «ситуации» ещё нет;
* другое — свободное описание, без предложения.
* Одно правило на форму и на валидацию, чтобы они не разошлись.
*/
export function getVisibleAppealFields(kind: AppealKind): IVisibleAppealFields {
switch (kind) {
case 'complaint':
return { situation: true, suggestion: true };
case 'suggestion':
return { situation: false, suggestion: true };
case 'other':
return { situation: true, suggestion: false };
}
}
export const EMPTY_FEEDBACK: IFeedbackData = {
company: '',
isAnonymous: false,