Карточка лота в списке тендеров (wbl-lot-card). Одна на все четыре подраздела
(Магистраль, Последняя миля, Экспресс, Внешние заказчики) и на все три роли —
состав правой колонки и действий переключается входом role.
Источник: мастер-компонент «🚛 lot», файл «Тендеры» (jwmCEMZZjn9cieKYqxI6FL),
нода 17982:213662, вариант Property 1=Default (15063:28834).
Local component contract
Анатомия — пять ячеек, шириной 360 / 348 / 240 / 260 и колонка действий по контенту; внутри ячейки
--space-400padding и--space-200между строками. Не грид с колоночными гэпами.Характеристики маршрута и требования к ТС выводятся тегами (
wbl-tag, size S), каждый пункт — свой тег. Не склеивать в одну строку.Подписи колонок обязательны: «Направление», «Характеристики маршрута», «Требования к ТС» — они есть в макете (
caption/cat, 11px medium, серые).«Требуется экипаж» —
wbl-badgeappearancewarningс иконкойpeople, рейтинг —wbl-badgeappearanceinfoс иконкойstar. Не обычный текст.Тип тендера — один
wbl-tagс полным текстом («Аукцион · Без начальной ставки» — единый тег, не два элемента).Ставка по ролям:
logist/carrierвидят «Текущая ставка» (или «Пока нет») и ниже «Начальная ставка», если она есть у типа;participantвместо этого видит «Ваша ставка» с короной при лидерстве. Логисту дополнительно показывается имя лидирующего перевозчика ссылкой.Действия задаются матрицей роль × этап (
lotActionsFor), строго по компонент-сету_actions(18015:229501). Этап — не статус: на несколько статусов приходится один набор кнопок (actionStageForStatus), при необходимости переопределяется входомactionStage.Роль Этап Кнопки Логист ВБ ожидание три точки Логист ВБ сбор заявок «Отметить допуск» + три точки Перевозчик сбор заявок «Подать заявку» + закладка + три точки Перевозчик торги закладка + три точки Перевозчик ожидание / завершён закладка Участник ожидание закладка + три точки Участник торги «Перебить» + закладка + крестик (задизейблен) Участник торги, мультилот закладка + крестик (danger, активный) Участник завершён закладка Раскладка везде одна: основная кнопка сверху, иконки строкой под ней, по правому краю. Состав НЕ зависит от подраздела — «Отметить допуск» принадлежит этапу сбора заявок, а не Внешним заказчикам.
Ховер по карточке подсвечивает обводку в
--color-stroke-accent.Круговой маршрут рисует ⇄ вместо → в обеих строках маршрута — кроме Внешних заказчиков, где круговых маршрутов не бывает и признак игнорируется (
sectionAllowsRoundTrip).Строка маршрута:
{routeNumber} – {from} → {to}; номер опционален (у Внешних заказчиков его нет). Если есть промежуточные точки (route.viaCount), между стартом и финишем встаёт тег «+N»: «Москва → +2 → Краснодар» (макет 18307:72451).Когда направлений несколько (
direction.count > 1), вместо «A → B» выводится «N направлений» — тот же title3, подчёркнутый серым пунктиром, кликабельный (directionsClicked), не акцентная ссылка (17988:217746).
Отличия подразделов
Подписи задаются SECTION_COPY по входу section, не хардкодом в шаблоне:
| Магистраль / Экспресс / Внешние | Последняя миля | |
|---|---|---|
| Колонка направления | «Направление» | «Округ» |
| Текущая ставка | «Текущая ставка» | «Текущее предложение» |
| Начальная ставка | «Начальная ставка» | «Начальное предложение» |
| Тарификация | ₽/км, ₽/л·км | ₽/маршрут |
Начальной ставки не существует у мультилота, многоэтапного мультилота и
аукциона без начальной ставки — блок не рендерится вообще (hasStartingBid),
а не показывается пустым. Многоэтапный мультилот в Последней миле отсутствует
как тип.
Внешние заказчики (макет 17988:219208 / 18262:117332)
Подраздел добавляет блоки, которых нет в остальных:
- ID маршрута — отдельная строка под маршрутом (
routeId). - «Участники: n» — счётчик участников виден (
participantsCount). В Магистрали этот счётчик перевозчику не показывается — здесь показывается. - Формат доставки — тег под характеристиками маршрута (
deliveryFormat). - Доп. требования — бейджи под требованиями к ТС
(
additionalRequirements), в макете группа подписана «Дополнительно», подпись скрыта. - «Отметить допуск» — primary-действие, появляется только когда
canApproveAccess(статус проверки участников); при этом колонка действий переключается в вертикальную раскладку, как в макете_actions. - Подписи «Направление» и «Характеристики маршрута» скрыты — проверено
по макету (
Container hidden=trueу18262:117348и18373:72959). Подпись «Требования к ТС» при этом остаётся видимой, как и в остальных подразделах. Управляется флагамиshowDirectionCaption/showRouteDetailsCaptionвSECTION_COPY, не хардкодом.
Список логиста по макету 18897:14220 (A-002)
Текущий экран внешних заказчиков собран по макету «Внешние заказчики / логист»
(18897:14220, карточки «🚛 lot-customer»). Входы ниже есть только у этого
подраздела; остальные подразделы их не передают и выглядят по-прежнему.
- Заказчик — строка под маршрутом (
customerName), description 13px. - Отсчёт — подпись зависит от этапа (
countdownLabel: «До начала приёма заявок:», «До окончания приёма:», «До начала торгов:», «До окончания торгов:»), значение всегда с минутами: «1д 23ч 59мин». В остальных подразделах подпись по умолчанию «До окончания:» и прежний формат. - «Заявок: n · Допущено: m» (
applicationsCount,admittedCount); «Участники: n» — тем же 13px стилем. - Направление переносится: «→ Куда» уходит на вторую строку, каждая строка обрезается многоточием.
- Виды транспорта — теги-иконки под характеристиками (
transportModes: автоcar, мореanchor, авиаflight, контейнерное судноship-container, паромship-ferry; две последние иконки взяты из макета). Подпись вида — доступное имя тега. Вместо иконок может стоять формат доставки тегом (deliveryFormat, например «АВТО FTL»). - Требования — после бейджей доп. требований тег «+N»
(
moreRequirementsCount). - «Исп. обязательств» у внешних заказчиков не выводится
(
SECTION_COPY.showObligationPeriod = false). ID маршрута экран больше не передаёт — в этом макете его нет. - Ставка: блок «Текущая ставка» можно скрыть (
showCurrentBid, у созданного лота в макете только «Начальная ставка»); «Ставок: n» (bidsCount) заменяет «Пока нет», логисту рядом ссылка на лидера; мультилот показывает «Тарификация»: одна единица текстом (tarifficationLabel, «₽/км») или «Тарификаций: N» (tarifficationsCount, подпись по макету19223:178823; в макете логиста было «2 тарификации»). У мультилота начальной ставки нет никогда (hasStartingBid). - Перевозчик (макет
19223:178823, A-003). Статус «Сбор заявок» у внешних заказчиков называется «Сбор заявок на участие» и оранжевый (SECTION_COPY['outer-customer'].statusOverrides), для обеих ролей. «Проверка участников» у внешних заказчиков — залитый оранжевыйwbl-badgeorange(макет18897:14220, A-009); в остальных подразделах —warning. Лиловый тег «N ТС» рядом с типом (vehiclesCount,wbl-tagaccent-secondary); тем же видом у внешних заказчиков рисуется «+N» в маршруте. Требования к ТС можно передать списком (vehicleTags: «Рефрижератор x 2», «Тент x 2»). У аукциона на несколько ТС под «Начальная ставка» — ссылка «Ставок: n» (startingBidsCount, событиеbidsClicked). Начальная ставка у перевозчика до торгов (без блока «Текущая ставка») основным цветом (вариант «_bid/До ставки»); рядом с «Текущей ставкой» и у логиста — вторичным. - «Мои заявки» перевозчика (макет
19223:178822, A-003). Строка «Заявка от: дата» под отсчётом (applicationDate). Отсчёт без дней — часы двумя цифрами («01ч 59мин»), срочность (<2ч — красный, ≤24ч — оранжевый) сохраняется и в 13px-строке. «Требуется экипаж», доп. требования и «+N» у внешних заказчиков — одной строкой тегов. - «Ставок: n» и «Тарификаций: n» — пунктирные ссылки, как «N направлений»
(
bidsClicked,tarifficationsClicked). Что по ним открывается (запланирован сайддровер) — пока не реализовано. - Внутри уведомления (
grouped) карточка теряет свою рамку и скругления: их держит группа «lot-notification» (макет 19587:92588) — радиусm, рамка--color-stroke-danger; по ховеру рамка группы — как у обычной карточки,--color-stroke-accent(A-003, для всех групп с уведомлением). - Колонка действий одной ширины во всём списке (A-003): у логиста —
с «Отметить допуск», у перевозчика и участника — по двум кнопкам-иконкам
«закладка + меню» (16 · 32 · 12 · 32 · 16 = 108, макет 19223:178822);
более широкое содержимое («Подать заявку») раздвигает колонку. В ней лежит
невидимый образец кнопки (
aria-hidden,inert), поэтому ширина не прыгает между карточками с кнопкой и без. У участника образец — «Перебить» (макет 19223:178821). - Участник у внешних заказчиков («Я участник» перевозчика, макет
19223:178821, A-003).- «Ваша ставка» + ставка или «Ставок: n» ссылкой; корона у выигранного
лота (
isLeading); зелёный бейдж «Лидируете» соstatistics-up(participantBidState: 'leading'). - «Перебили» (
participantBidState: 'outbid'): «Текущая ставка» + ставка (или «Ставок: n») + красный бейдж соstatistics-down, ниже суммы или «Перебито: 3 из 7» (outbidProgress) и серым «Ваша ставка: …». - «Вы победили» —
wbl-badgesky-secondary, рядом оранжевый таймер с иконкойtime(statusTimer, «11 ч 59 мин»). - Действия на торгах: аукцион — «Перебить» с
judge-hammer+ закладка + «Покинуть тендер»; мультилот — закладка + «Покинуть тендер». «Покинуть тендер» — активнаяwbl-buttonsecondary-dangerс подсказкой снизу. В остальных подразделах прежняя матрица: крестик «Отказаться от участия» у аукциона неактивен.
- «Ваша ставка» + ставка или «Ставок: n» ссылкой; корона у выигранного
лота (
- Подсказки и цвет короны у внешних заказчиков (A-003). Закладка —
«Сохранить направление» (подпись и подсказка снизу). Крестик по роли:
логист — «Отменить лот», перевозчик — «Не участвовать», участник («Я
участник») — «Покинуть тендер». По текущей матрице
_actionsкрестик виден только участнику; подписи для логиста и перевозчика заданы на случай, когда он у них появится. Корона лидера —--color-text-icon-primary(в остальных подразделах прежний оранжевый).
Открытые вопросы
Решено (A-003): тег «N ТС» и составные требования к ТС реализованы (
vehiclesCount,vehicleTags).Решено (A-002): у мультилота начальной ставки нет, поэтому «Ставок: 7» стоит под «Текущая ставка», а не под «Начальная ставка», как в одном месте макета.
Иконки
ship-containerиship-ferryвзяты из макета без имён слоёв; названия дал прототип.Решено (A-003): действия перевозчика и участника у внешних заказчиков собраны по макетам
19223:178823,19223:178822,19223:178821.Решено (A-003, A-009): «Вы победили» —
wbl-badgesky-secondary(content-bg/sky#d8f2fd, текстcontent/sky-pressed#006999) во всех подразделах; цвет задан в общей таблице статусов, а не в переопределении Внешних заказчиков.Отсчёт без дней: в «Моих заявках» — «01ч 59мин», в «Я участник» — «0ч 59мин». В прототипе единый вид с двумя цифрами часов; нужно выбрать.
Мультилот и Многоэтапный мультилот собраны по описанию постановки (тег типа, признак этапа), но без сверки с профильными макетами — их node-id не передавались. Требуют проверки.
Тарификация Последней мили: в макете (
15810:8640) единица подписана «₽/маршрут», в постановке прозвучало «за рейс». Реализовано по макету — если верна постановка, поменятьTARIFF_UNIT['per-route'].В макете lot-PM требования к ТС встречаются дважды (ячейка 2, y=128 и ячейка 3) — вторая группа выглядит как «Дополнительно» и в дефолтном варианте скрыта. Реализована одна группа; нужна ли вторая — вопрос.