wbDesign Wiki
Storybook
Angularorganism
Для этого компонента пока нет примера в опубликованном Storybook.

Карточка лота в списке тендеров (wbl-lot-card). Одна на все четыре подраздела (Магистраль, Последняя миля, Экспресс, Внешние заказчики) и на все три роли — состав правой колонки и действий переключается входом role.

Источник: мастер-компонент «🚛 lot», файл «Тендеры» (jwmCEMZZjn9cieKYqxI6FL), нода 17982:213662, вариант Property 1=Default (15063:28834).

Local component contract

  • Анатомия — пять ячеек, шириной 360 / 348 / 240 / 260 и колонка действий по контенту; внутри ячейки --space-400 padding и --space-200 между строками. Не грид с колоночными гэпами.

  • Характеристики маршрута и требования к ТС выводятся тегами (wbl-tag, size S), каждый пункт — свой тег. Не склеивать в одну строку.

  • Подписи колонок обязательны: «Направление», «Характеристики маршрута», «Требования к ТС» — они есть в макете (caption/cat, 11px medium, серые).

  • «Требуется экипаж» — wbl-badge appearance warning с иконкой people, рейтинг — wbl-badge appearance info с иконкой 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-badge orange (макет 18897:14220, A-009); в остальных подразделах — warning. Лиловый тег «N ТС» рядом с типом (vehiclesCount, wbl-tag accent-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-badge sky-secondary, рядом оранжевый таймер с иконкой time (statusTimer, «11 ч 59 мин»).
    • Действия на торгах: аукцион — «Перебить» с judge-hammer + закладка + «Покинуть тендер»; мультилот — закладка + «Покинуть тендер». «Покинуть тендер» — активная wbl-button secondary-danger с подсказкой снизу. В остальных подразделах прежняя матрица: крестик «Отказаться от участия» у аукциона неактивен.
  • Подсказки и цвет короны у внешних заказчиков (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-badge sky-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) — вторая группа выглядит как «Дополнительно» и в дефолтном варианте скрыта. Реализована одна группа; нужна ли вторая — вопрос.

WB Logistics · Design SystemСборка 91da5ae

Поиск по Wiki

Начните вводить название или текст