73a5096f6f
Обёртка ResponsiveTable (таблица на десктопе/планшете, карточки на телефоне по ярусу useLayoutTier). Применена к реестру лидов «Сделки»: на телефоне — карточки лида (чекбокс выбора, телефон, статус-плашка, источник·город, комментарий, дата), тап открывает карточку сделки; на десктопе прежняя v-data-table без изменений. Тесты: ResponsiveTable.spec (2), «Сделки» 58/58 зелёные. Проверено на 390 и 1440px. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
23 lines
769 B
Vue
23 lines
769 B
Vue
<script setup lang="ts">
|
|
/**
|
|
* Обёртка: десктоп/планшет — слот #table (обычный v-data-table),
|
|
* телефон — слот #card (список карточек по каждому item).
|
|
* Данные прокидываются через слот-пропсы, чтобы вызывающий сам рисовал карточку.
|
|
*/
|
|
import { useLayoutTier } from '../../composables/useLayoutTier';
|
|
|
|
defineProps<{ items: unknown[] }>();
|
|
const { isPhone } = useLayoutTier();
|
|
</script>
|
|
|
|
<template>
|
|
<div>
|
|
<template v-if="isPhone">
|
|
<slot name="card" :items="items" />
|
|
</template>
|
|
<template v-else>
|
|
<slot name="table" :items="items" />
|
|
</template>
|
|
</div>
|
|
</template>
|