Files
portal/app/resources/js/components/common/ResponsiveTable.vue
T
Дмитрий 73a5096f6f feat(портал-мобилка): ResponsiveTable + карточки «Сделок» на телефоне
Обёртка ResponsiveTable (таблица на десктопе/планшете, карточки на телефоне
по ярусу useLayoutTier). Применена к реестру лидов «Сделки»: на телефоне —
карточки лида (чекбокс выбора, телефон, статус-плашка, источник·город,
комментарий, дата), тап открывает карточку сделки; на десктопе прежняя
v-data-table без изменений.

Тесты: ResponsiveTable.spec (2), «Сделки» 58/58 зелёные. Проверено на 390 и 1440px.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 19:17:01 +03:00

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>