- number-поля теперь рендерятся как text + inputMode=numeric, чтобы браузер не округлял значения через input type=number - пробелы при вставке в number-поля удаляются - бэкенд нормализует значения number-полей в строку перед сохранением - добавлен хелпер normalizeFieldValueForStorage Closes: искажение расчётного счёта и других длинных числовых полей
3.8 KiB
3.8 KiB
Заметки по сессии — 15.05.2026
1. Geo-поле (Адрес с координатами)
- Статус: ✅ Реализовано и задеплоено
- Компонент:
client/src/components/GeoField.tsx - API:
/api/dadata/suggest/address,/api/dadata/geolocate - Формат данных:
{ address: string, lat: number | string, lng: number | string } - Особенности: совмещённое поле координат ("55.707339, 52.315169"), подсказки DaData, обратное геокодирование
2. Исправление ошибки создания задач (bad_request)
- Причина:
drizzle-zod@0.7.0создаётstrict()схемы.insertTaskSchemaне ожидалcustomFields, и zod отклонял запрос. - Фикс: добавлено
customFields: z.record(z.any()).optional()вshared/schema.ts - Файл:
shared/schema.ts,insertTaskSchema
3. UI поля "Связь с формой" (task)
- Проблема: непонятные подписи "Родительская/дочерняя задача"
- Решение: переименовано в "Роль связанной задачи" + добавлены поясняющие описания под каждым вариантом
- Файл:
client/src/pages/FormEditor.tsx
4. Очистка Docker
- Освобождено: ~4 GB
- До: 49 GB, 42 GB использовано (86%)
- После: 49 GB, 24 GB использовано (50%)
- Удалено: dangling образы iistwin (crm-app-builder, crm-app старые), postgres:16-alpine, build cache
5. Удаление заглушек из блока "Финансы"
- Удалены файлы:
client/src/pages/finance/profitability.tsxclient/src/pages/finance/debt.tsxclient/src/pages/finance/calculations.tsxclient/src/pages/finance/planning.tsxclient/src/pages/finance/audit.tsxclient/src/pages/finance/heatmap.tsx
- Убраны: импорты из
App.tsx, роуты, экспорты изindex.ts - FinanceSidebar: оставлены только реальные страницы (Дашборд, Доходы, Расходы, Зарплата, Настройки)
- FinanceNav: убраны дубли (Доходы, Расходы, Зарплата, Настройки), оставлены Обзор + Категории доходов/расходов
6. Настройка SSH для git на сервере
- Сгенерирован ключ:
/root/.ssh/id_ed25519(ed25519) - Добавлен в GitHub: Settings → SSH keys
- Git remote:
git@github.com:iisultanov/iistwin.git - Результат:
git pullработает автоматически без пароля
Кастомизации сервера (НЕ коммитить в GitHub)
| Файл | Изменения |
|---|---|
docker-compose.yml |
Traefik-метки, APP_HTTPS_PROXY=true, сеть n8n_proxy |
server/index.ts |
contentSecurityPolicy: false, hsts: false, conditional HSTS |
docker-entrypoint.sh |
echo "y" | npx drizzle-kit push + CREATE EXTENSION vector |
.env |
Секреты, ALLOW_PRIVATE_RAG_URLS=true, API_KEY_HMAC_SECRET |
Команды деплоя
ssh root@82.202.130.22
cd /opt/crm
git pull origin main
docker compose up -d --build
Проверка статуса
curl -s https://iistwin.ru/api/health
Доступы
- SSH:
root@82.202.130.22(ключ:C:\Users\User\Yandex.Disk\1kimi\срм\.ssh_id_ed25519_crm) - iistwin: https://iistwin.ru
- GitHub: https://github.com/iisultanov/iistwin
- MinIO: http://82.202.130.22:9001