Yayaw
Documentation
Recettes

Catalogue produits

Créer un catalogue avec filtres, cartes et export CSV.

Ce que vous allez construire

Construisez un catalogue interrogeable, puis passez des lignes aux cartes illustrées sans perdre la requête.

Partez de l’installation React ou Vue. Assemblez les fichiers complets ci-dessous et les modules partagés. Le stockage mémoire se réinitialise au rechargement ; une API doit conserver les mêmes contrats.

Fichiers nécessaires : shared/products.ts, product-config.ts, list-records.ts, product-actions.ts, catalog-config.ts, recipe-catalog.

Utilisez les actions en lecture seule du démarrage. Cette recette ajoute une configuration d’affichage et un composant d’entrée. Le stockage des mutations n’est pas nécessaire.

catalog-config.ts

catalog-config.ts
import { defineTableConfig } from "@/components/ui/yayaw-table/config/helpers";
import { productConfig } from "./product-config";

export const catalogConfig = defineTableConfig({
  ...productConfig,
  table: {
    ...productConfig.table,
    layoutPreset: "catalog",
    displayModes: ["table", "gallery"],
    defaultDisplayMode: "gallery",
    export: true,
    enableColumnFilters: true,
    enableAdvancedFilters: true,
    showFilterBar: true,
    filterBarColumns: ["status"],
    coloredTags: false,
    gallery: {
      imageColumn: "image",
      titleColumn: "name",
      cardColumnIds: ["price", "stock", "status"],
      aspectRatio: "square",
      imageFit: "cover",
      cardSize: "medium",
      previewSize: "medium",
      showCardLabels: false,
      media: { enabled: true },
    },
  },
});
catalog-config.ts
import { defineTableConfig } from "@/components/ui/yayaw-table-vue/config";
import { productConfig } from "./product-config";

export const catalogConfig = defineTableConfig({
  ...productConfig,
  table: {
    ...productConfig.table,
    layoutPreset: "catalog",
    displayModes: ["table", "gallery"],
    defaultDisplayMode: "gallery",
    export: true,
    enableColumnFilters: true,
    enableAdvancedFilters: true,
    showFilterBar: true,
    filterBarColumns: ["status"],
    coloredTags: false,
    gallery: {
      imageColumn: "image",
      titleColumn: "name",
      cardColumnIds: ["price", "stock", "status"],
      aspectRatio: "square",
      imageFit: "cover",
      cardSize: "medium",
      previewSize: "medium",
      showCardLabels: false,
      media: { enabled: true },
    },
  },
});

Composant d’entrée

Agrandir ↗

Données de démonstration. Les modifications restent dans cet aperçu.

Agrandir ↗

Données de démonstration. Les modifications restent dans cet aperçu.

Vérifier le résultat

  1. Ouvrez la galerie : Oak desk, Desk lamp et Studio chair apparaissent.

  2. Filtrez le statut sur Active : deux produits restent.

  3. Cherchez « desk » : seul Oak desk reste.

  4. Passez en tableau : le filtre reste actif.

  5. Exportez : le CSV contient les valeurs du produit filtré.

  6. Effacez les filtres et exportez : les trois fiches sont incluses.

Utilisez le playground existant pour explorer les contrôles de la bibliothèque.

Vérifier le résultat pas à pas

ActionRésultat attendu
Recherchez 65.Seule Desk lamp reste : la recherche inclut les champs numériques.
Filtrez Statut sur Active, puis cherchez desk.Seul Oak desk reste ; le total est égal à un.
Passez de Galerie à Tableau.Les mêmes résultats filtrés apparaissent.
Effacez recherche et filtres, puis exportez en CSV.Les trois produits sont exportés avec leurs valeurs typées.

Sur mobile, utilisez les Réglages de la vue pour la présentation, le menu Données pour l’export, et le bouton de recherche de la barre d’outils. Réinitialiser une vue n’annule pas les écritures. Testez aussi le clavier.