Это тестовый сайт бренда ALEXSAB, BAIC, BELGEE, CHANGAN, CHERY, EVOLUTE, FORTHING, GAC, GEELY, HAVAL, HONDA, HYUNDAI, INFINITI, JAC, JAECOO, JETOUR, KAIYI, KIA, KNEWSTAR, LEXUS, LIVAN, MAZDA, OMODA, SOLARIS, SOUEAST, TANK, TENET, TOYOTA, VOLGA, VENUCIA, VGV, WEY, ваши заявки НЕ попадут к дилеру!

Таблица c “попапами”

ФотоМодельДвигательЦена
GAC GS3GAC GS31.5 AMT 170 л.с.от 2 490 000 ₽
Geely CoolrayGeely Coolray1.5 AMT 150 л.с.от 1 990 000 ₽
Haval JolionHaval Jolion1.5 AMT 143 л.с.от 2 190 000 ₽

Обычная таблица c “table-fixed”

GAC GS3от 2 490 000 ₽
Geely Coolrayот 1 990 000 ₽
Haval Jolionот 2 190 000 ₽

Table

Входные параметры

Принимает массив объектов data[…] с абсолютно любыми ключами

Зарезервированные ключи в объектах: name, title, image, img, photo, price

interface Props {
  data: any[];
  head?: string[];
  headClasses?: string;
  popupText?: string | HTMLElement;
  imageClasses?: string;
  imageWidth?: number;
  imageHeight?: number;
  tableLoyoutFixed?: boolean;
  lightbox?: boolean;
  lightboxId?: string;
}

Использование

---
import Table from '@/blocks/table/Table.astro';

const tableData = [
    {
        image: 'https://cdn.alexsab.ru/models/default-model-bg.webp',
        name: 'GAC GS3',
        engine: '1.5 AMT 170 л.с.',
        price: 'от 2 490 000 ₽',
    },
    {
        image: 'https://cdn.alexsab.ru/models/default-model-bg.webp',
        name: 'Geely Coolray',
        engine: '1.5 AMT 150 л.с.',
        price: 'от 1 990 000 ₽',
    }
];

const tableData2 = [
    {
        name: 'GAC GS3',
        price: 'от 2 490 000 ₽',
    },
    {
        name: 'Geely Coolray',
        price: 'от 1 990 000 ₽',
    },
    {
        name: 'Haval Jolion',
        price: 'от 2 190 000 ₽',
    }
];

const tableHead = ['Фото', 'Модель', 'Двигатель', 'Цена'];
---
<section>
    <div class="container">
        <h2 class="text-xl sm:text-4xl font-medium mb-14">Таблица c "попапами"</h2>

        <Table 
            data={tableData} 
            head={tableHead}
            lightbox={true}
            lightboxId="cars-gallery"
            popupText="Модель"
        />

        <h2 class="text-xl sm:text-4xl font-medium my-14">Обычная таблица c "table-fixed"</h2>

        <Table 
            data={tableData2}
            tableLoyoutFixed={true}
        />

    </div>
</section>
Имя параметраПо умолчаниюОписание
data*Массив объектов с данными для таблицы. Обязательный
head[]Массив строк для заголовков столбцов
headClassessm:sticky sm:-top-[1px] lg:top[49px] !bg-accent-500 text-white z-10CSS классы для заголовка таблицы
popupText-Текст для popup модального окна при клике на поля name или title
imageClassesmin-w-[50px] sm:min-w-0 max-w-[250px] mx-autoCSS классы для изображений
imageWidth250Ширина изображений в пикселях
imageHeight177Высота изображений в пикселях
tableLoyoutFixedfalseИспользовать фиксированную ширину столбцов (table-fixed)
lightboxfalseВключить lightbox галерею для изображений
lightboxIdgallery-idID для группировки изображений в lightbox

Особенности работы с данными

  • Поля с ключами name или title автоматически становятся ссылками для popup, если указан параметр popupText
  • Поля с ключами image, img или photo автоматически отображаются как изображения
  • При включенном lightbox изображения открываются в галерее
  • Для изображений в галерее используется alt из данных как заголовок и price как описание
вернуться обратно
x