feat: added app routing

This commit is contained in:
Тимур Городецкий
2026-08-03 17:58:24 +05:00
parent e6203e7093
commit dc60d2dbee
22 changed files with 460 additions and 61 deletions
+8 -1
View File
@@ -58,7 +58,8 @@ SharePoint; у части заявок есть **согласование** (м
Согласующий приходит **по ссылке из потока Power Automate** (не ищет заявку сам).
Контракт ссылки (портал — одностраничник, поэтому нужен и тип формы):
`…/СтраницаПортала.aspx?mode=approve&type=<форма>&id=<RowID>`
`…/СтраницаПортала.aspx?rpmode=approve&rptype=<форма>&rpid=<RowID>`
(префикс `rp`: имена `id/mode/type` зарезервированы SharePoint и ломают страницу)
- [x] `readOnly` у примитивов формы
- [x] Скелет маршрутизации: `shared/routing.ts` (parseRoute) + ветка в оболочке →
@@ -136,6 +137,12 @@ SharePoint; у части заявок есть **согласование** (м
5. **Плитка:** уже есть в `data/requests.ts` (id совпадает с реестром).
6. **Проверка:** `heft build` → тест на hosted workbench сайта `/sites/requests`.
### Обязательные примитивы под тип поля (единообразие во ВСЕХ формах)
- **Телефон** → `PhoneInput` (маска `+7 (XXX) XXX-XX-XX`). Не `TextInput`.
- **Сумма/деньги/оклад/ставка** → `MoneyInput` (разделитель тысяч, в модели — чистые цифры). Не `TextInput type=number`.
- Пользователь(и) → `PeopleField` / `PeopleFieldMulti`; дата → `TextInput type=date`; да/нет → `Toggle`; выбор → `Select`.
- **Вложения** (если у формы есть файлы): секция с `FileDropzone` (состояние `File[]`); при сабмите — `uploadAttachments(листДанных, id, files)` ПОСЛЕ создания элемента; в режиме согласующего — `AttachmentList` из `getAttachments(...)`. Хранятся как вложения элемента списка (`AttachmentFiles`), без отдельной библиотеки.
---
## 7. Открытые вопросы (решить по ходу)