Liste des tâches

Stockage des tâches

Pour commencer, nous allons créer un tableau d'objets tâches (id, nom, terminée) dans les données de la page des tâches.

Résultat

  • 10-26 : Création du tableau des tâches

    • Chaque tâche possède les propriétés suivantes :

      • id : (Number) identifiant unique d'une tâche

      • nom : (String) nom de la tâche

      • terminee : (Boolean) indique si la tâche est terminée ou non.

pages/PageTaches.vue
<template>
  <q-page padding>
    <h1>Taches</h1>
  </q-page>
</template>

<script setup lang="ts">
import { ref } from 'vue'

const taches = ref([
  {
    id: 1,
    nom: 'Acheter des oranges',
    terminee: false
  },
  {
    id: 2,
    nom: 'Manger des oranges',
    terminee: false
  },
  {
    id: 3,
    nom: 'Digérer des oranges',
    terminee: false
  }
])
</script>

<style scoped lang="scss">

</style>

Affichage des tâches

Pour afficher les tâches nous utiliserons un liste Quasar <q-list> avec cases à cocher <q-checkbox />

Code d'exemple Quasar

Nous allons retirer tout ce qui n'est pas nécessaire :

  • attribut padding de <q-list>

  • attribut tag="label" dans <q-item>

  • Le 2e composant <q-item-label caption>

Prochaines opérations :

  • Répéter le composant <q-item> pour chaque taches du tableau avec v-for et :key

  • Injecter le nom de la tâche parcourue {{ tache.nom }} dans <q-item-label>

  • Lier la case à cocher <q-checkbox /> avec la propriété "terminee" de la tâche : v-model="tache.terminee"

Si l'on clique sur la case à cocher, et qu'on inspecter le tableau des tâches avec Vue DevTools, on remarque que la valeur de la propriété "terminee" passe de flase à true.

Problème de la portée du clic

Pour l'instant il faut cliquer sur la case à cocher <q-checkbox /> pour valider la tâche.

Nous allons ajouter un événement @click à <q-item>, ainsi on pourra cliquer sur toute la tâche pour changer son état.

Pour rendre un élément <q-item> cliquable, il faut lui ajouter l'attribut clickable.

Résultat

Date et heure de fin des tâches

Nous allons ajouter et afficher une date et une heure d'échéance aux tâches : dateFin, heureFin

Ajout dans les données

Affichage dans <q-item>

Nous allons nous inspirer de cet exemple pour afficher la date et l'heure à droite du <q-item>.

Code d'exemple Quasar

Nous utiliserons le <q-item-label> pour y afficher la date et ajouterons et un deuxième <q-item-label> pour l'heure, en la mettant dans un élément <small> pour la rendre plus petite.

Pour terminer, nous ajouterons une icône à droite de la date et de l'heure.

Ce qui donne le résultat suivant :

Nous allons corriger l'affichage en :

Résultat

Un peu de style

  • Ajouter un séparateur aux éléments de la liste avec l'attribut separator : <q-list separator>

  • Ajout d'un fond vert aux tâches terminées, et orange aux autres en utilisant :class , l'opérateur ternaire et les "helpers" bg-green-1 et bg-orange-1.

  • Barré le nom de la tâche si terminée

    • Créer une classe CSS .text-barre

    • Utiliser :class pour attribuer la classe CSS

Résultat

Télécharger le code complet du chapitre

  • Télécharger et extraire l'archive (zip)

  • Depuis le terminal :

    • Aller dans le dossier du projet

    • Taper la commande : npm install

    • Taper la commande : quasar dev

file-archive
294KB

Mis à jour

Ce contenu vous a-t-il été utile ?