diff --git a/docs/mockup_assembler.html b/docs/mockup_assembler.html index c5259af..65de1d9 100644 --- a/docs/mockup_assembler.html +++ b/docs/mockup_assembler.html @@ -309,10 +309,11 @@ const SCREENS = { extra_done: 'Акт подписан', reclamation: 'Акт рекламации', photo_report: 'Фото-отчёт', - profile: 'Профиль', - availability: 'Доступность', - notifications: 'Уведомления', - rate_team: 'Оценить команду', + profile: 'Профиль', + my_questionnaire: 'Моя анкета', + availability: 'Доступность', + notifications: 'Уведомления', + rate_team: 'Оценить команду', }; /* ─── SVG ICON LIBRARY ─── */ @@ -437,7 +438,8 @@ function render(id) { case 'extra_done': return screenExtraDone(); case 'reclamation': return screenReclamation(); case 'photo_report': return screenPhotoReport(); - case 'profile': return screenProfile(); + case 'profile': return screenProfile(); + case 'my_questionnaire': return screenMyQuestionnaire(); case 'availability': return screenAvailability(); case 'notifications': return screenNotifications(); case 'rate_team': return screenRateTeam(); @@ -1547,6 +1549,35 @@ function screenProfile() { + +
+
+
+ Кат.А + Присвоена 12.01.2026 +
+ +
+
+
+
85%
+
загрузка
+
+
+
2 500 ₽
+
ставка
+
+
+
3/д
+
макс. заказов
+
+
+
+
+
+
Кат.А ≥ Кат.Б · Средняя Кат.Б: 54% ✓
+
+
@@ -1841,6 +1872,102 @@ function screenRateTeam() { ${nav('home')}
`; } +/* ─── MY QUESTIONNAIRE (Assembler) ─── */ +function screenMyQuestionnaire() { + if (!window._qSaved) window._qSaved = false; + if (!window._qCar) window._qCar = 'yes'; + if (!window._qTools) window._qTools = {drill:true,jigsaw:true,miter:false,plunge:false,hammer:false,grinder:false,router:false,vacuum:true}; + if (!window._qFurn) window._qFurn = {corpus:true,upholstered:false,kitchen:true,office:true,premium:false}; + if (!window._qZones) window._qZones = {center:true,north:true,south:false,east:false,west:false}; + + function chk(key, store, label, note) { + var on = window[store][key]; + return ''; + } + + var saved = window._qSaved; + + return '
' + +'' + +'
' + + // Info banner + +'
' + +'' + +'
Данные видны директору. При изменениях (новый инструмент, зона, тип мебели) — директор получит уведомление.
' + +'
' + + // Instruments + +'
' + +'
Инструменты
' + +'
Отметьте что есть в наличии
' + + chk('drill', '_qTools', 'Дрель / шуруповёрт', null) + + chk('jigsaw', '_qTools', 'Лобзик', null) + + chk('miter', '_qTools', 'Торцовочная пила', 'для точных угловых срезов') + + chk('plunge', '_qTools', 'Погружная пила', 'для раскроя панелей и столешниц') + + chk('hammer', '_qTools', 'Перфоратор', null) + + chk('grinder', '_qTools', 'Болгарка', null) + + chk('router', '_qTools', 'Фрезер', 'для кромки и пазов') + + chk('vacuum', '_qTools', 'Строительный пылесос', null) + +'
' + + // Furniture types + +'
' + +'
Типы мебели
' + + chk('corpus', '_qFurn', 'Корпусная (шкафы, стеллажи, комоды)', null) + + chk('upholstered', '_qFurn', 'Мягкая (диваны, кресла)', null) + + chk('kitchen', '_qFurn', 'Кухонные гарнитуры', null) + + chk('office', '_qFurn', 'Офисная мебель', null) + + chk('premium', '_qFurn', 'Премиальная / итальянская', 'влияет на категорию Кат.А') + +'
' + + // Transport + +'
' + +'
Личный автомобиль
' + +'
' + +'' + +'' + +'
' + +'
' + + // Work zones + +'
' + +'
Зона работы
' + +'
Комфортные районы
' + + chk('center', '_qZones', 'Центр города', null) + + chk('north', '_qZones', 'Север', null) + + chk('south', '_qZones', 'Юг', null) + + chk('east', '_qZones', 'Восток', null) + + chk('west', '_qZones', 'Запад / ЗАД', null) + +'
' + + // Save button + +(saved + ? '
✓ Сохранено · Директор уведомлён
' + : '' + ) + +'
Последнее обновление: 22.05.2026 · 10:14
' + +'
' + + nav('profile') + +'
'; +} + /* ─── AVAILABILITY ─── */ function screenAvailability() { const requests = [ diff --git a/docs/mockup_measurer.html b/docs/mockup_measurer.html index b3e7635..ab9a7b1 100644 --- a/docs/mockup_measurer.html +++ b/docs/mockup_measurer.html @@ -194,9 +194,10 @@ const SCREENS = { report_send: 'Отправка менеджеру', report_done: 'Успех отправки', history: 'История замеров', - profile: 'Профиль замерщика', - schedule: 'Расписание', - accept_job: 'Входящая заявка', + profile: 'Профиль замерщика', + my_questionnaire: 'Моя анкета', + schedule: 'Расписание', + accept_job: 'Входящая заявка', }; let cur = 'home'; @@ -268,7 +269,8 @@ function render(id) { case 'report_send': return screenReportSend(); case 'report_done': return screenReportDone(); case 'history': return screenHistory(); - case 'profile': return screenProfile(); + case 'profile': return screenProfile(); + case 'my_questionnaire': return screenMyQuestionnaire(); case 'accept_job': return screenAcceptJob(); case 'schedule': return screenSchedule(); default: return '
Экран в разработке
'; @@ -919,6 +921,34 @@ function screenProfile() {
+ +
+
+
+ Кат.А + Присвоена 15.01.2026 +
+ +
+
+
+
79%
+
загрузка
+
+
+
600 ₽
+
ставка/замер
+
+
+
4/д
+
макс. замеров
+
+
+
+
+
+
+
@@ -958,6 +988,100 @@ function screenProfile() { ${nav('profile')}
`; } +/* ─── MY QUESTIONNAIRE (Measurer) ─── */ +function screenMyQuestionnaire() { + if (!window._qSaved) window._qSaved = false; + if (!window._qCar) window._qCar = 'yes'; + if (!window._qEquip) window._qEquip = {laser:true,tape:true,level:true,digital:false,theodolite:false,photo360:false}; + if (!window._qTypes) window._qTypes = {flat:true,house:false,office:true,commercial:false,newbuild:true}; + if (!window._qZones) window._qZones = {center:true,north:true,south:false,east:false,west:false}; + + function chk(key, store, label, note) { + var on = window[store][key]; + return ''; + } + + var saved = window._qSaved; + + return '
' + +'' + +'
' + + // Info banner + +'
' + +'' + +'
Данные видны директору. При изменениях (новое оборудование, зона, тип объекта) — директор получит уведомление.
' + +'
' + + // Equipment + +'
' + +'
Измерительное оборудование
' + +'
Что есть в наличии
' + + chk('laser', '_qEquip', 'Лазерный дальномер', 'основной инструмент') + + chk('tape', '_qEquip', 'Рулетка 5–10 м', null) + + chk('level', '_qEquip', 'Нивелир / уровень', null) + + chk('digital', '_qEquip', 'Цифровой угломер', 'для нестандартных углов') + + chk('theodolite', '_qEquip', 'Теодолит / тахеометр', 'для больших объектов') + + chk('photo360', '_qEquip', '360° камера', 'для фиксации помещения') + +'
' + + // Object types + +'
' + +'
Типы объектов
' + + chk('flat', '_qTypes', 'Квартиры', null) + + chk('house', '_qTypes', 'Частные дома / коттеджи', null) + + chk('office', '_qTypes', 'Офисы', null) + + chk('commercial', '_qTypes', 'Коммерция (магазины, кафе)', null) + + chk('newbuild', '_qTypes', 'Новостройки (без отделки)', 'сложные объекты') + +'
' + + // Transport + +'
' + +'
Личный автомобиль
' + +'
' + +'' + +'' + +'
' + +'
' + + // Work zones + +'
' + +'
Зона работы
' + +'
Комфортные районы
' + + chk('center', '_qZones', 'Центр города', null) + + chk('north', '_qZones', 'Север', null) + + chk('south', '_qZones', 'Юг', null) + + chk('east', '_qZones', 'Восток', null) + + chk('west', '_qZones', 'Запад / ЗАД', null) + +'
' + + // Save + +(saved + ? '
✓ Сохранено · Директор уведомлён
' + : '' + ) + +'
Последнее обновление: 20.05.2026 · 09:30
' + +'
' + + nav('profile') + +'
'; +} + /* ─── ACCEPT JOB ─── */ function screenAcceptJob() { const bk = '';