feat: implemented workpalcesetup form
This commit is contained in:
@@ -9,14 +9,16 @@
|
||||
// (напр. ?id= он трактует как навигацию к элементу → «Элемент не существует»),
|
||||
// поэтому используем собственные, неконфликтные имена параметров.
|
||||
|
||||
export type PortalMode = 'submit' | 'approve';
|
||||
export type PortalMode = 'submit' | 'approve' | 'create';
|
||||
|
||||
export interface IRoute {
|
||||
mode: PortalMode;
|
||||
/** Ключ формы (тип заявки) — только для mode='approve'. */
|
||||
/** Ключ формы (тип заявки) — для 'approve' и 'create'. */
|
||||
formKey?: string;
|
||||
/** Id заявки в списке данных — только для mode='approve'. */
|
||||
/** Id заявки в списке данных — для 'approve'. */
|
||||
itemId?: number;
|
||||
/** Id исходной заявки для предзаполнения — для 'create' (напр. орг. места на основе прием). */
|
||||
sourceId?: number;
|
||||
}
|
||||
|
||||
/** Разобрать строку запроса (по умолчанию — из адреса страницы) в маршрут. */
|
||||
@@ -26,10 +28,16 @@ export function parseRoute(search: string = window.location.search): IRoute {
|
||||
const formKey = params.get('rptype') ?? undefined;
|
||||
const idRaw = params.get('rpid');
|
||||
const itemId = idRaw ? Number(idRaw) : undefined;
|
||||
const sourceRaw = params.get('rpsource');
|
||||
const sourceId = sourceRaw ? Number(sourceRaw) : undefined;
|
||||
|
||||
// Режим согласующего валиден только при полном наборе параметров.
|
||||
// Режим согласующего — при полном наборе параметров.
|
||||
if (mode === 'approve' && formKey && itemId && !isNaN(itemId)) {
|
||||
return { mode: 'approve', formKey, itemId };
|
||||
}
|
||||
// Создание производной заявки с предзаполнением из исходной.
|
||||
if (formKey && sourceId && !isNaN(sourceId)) {
|
||||
return { mode: 'create', formKey, sourceId };
|
||||
}
|
||||
return { mode: 'submit' };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user