diff --git a/front/MyINPulse-front/src/components/canvas/CanvasItem.vue b/front/MyINPulse-front/src/components/canvas/CanvasItem.vue
index 73eb952..e4cdc22 100755
--- a/front/MyINPulse-front/src/components/canvas/CanvasItem.vue
+++ b/front/MyINPulse-front/src/components/canvas/CanvasItem.vue
@@ -2,67 +2,72 @@
{{ titleText }}
-
-
+
{{ description }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Cliquez n'importe où pour quitter le canvas
-
+
+
+ {{ description }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cliquez n'importe où pour quitter le canvas (terminez d'abord vos modifications)
+
+
+
@@ -165,24 +170,72 @@ const mockFetch = async (projectId: number, title: number, date: string) => {
`Mock fetch pour projectId: ${projectId}, title: ${title}, date: ${date}`
);
+ const leanCanvasData: Record
= {
+ 1: [
+ "Les clients ont du mal à trouver des produits écoresponsables abordables.",
+ "Le processus d'achat en ligne est trop complexe.",
+ "Manque de transparence sur l’origine des produits.",
+ "Peu d’alternatives locales et durables sur le marché."
+ ],
+ 2: [
+ "Jeunes urbains engagés dans la cause écologique.",
+ "Familles à revenu moyen voulant consommer responsable.",
+ "Entreprises soucieuses de leur empreinte carbone."
+ ],
+ 3: [
+ "Une plateforme centralisée avec des produits écologiques certifiés.",
+ "Un service client humain et réactif.",
+ "Livraison éco-responsable avec suivi."
+ ],
+ 4: [
+ "Application intuitive avec suggestions personnalisées.",
+ "Emballages recyclables et réutilisables.",
+ ],
+ 5: [
+ "Algorithme exclusif de recommandations durables.",
+ "Forte communauté engagée sur les réseaux.",
+ ],
+ 6: [
+ "Canaux digitaux : réseaux sociaux, SEO.",
+ "Partenariats avec influenceurs écoresponsables.",
+ "Boutique physique en pop-up stores."
+ ],
+ 7: [
+ "Taux de rétention client mensuel.",
+ "Taux de satisfaction utilisateur (NPS)."
+ ],
+ 8: [
+ "Coût du développement logiciel initial.",
+ "Campagnes publicitaires et communication.",
+ "Frais logistiques (emballages, transport)."
+ ],
+ 9: [
+ "Ventes directes sur la plateforme.",
+ "Abonnement mensuel premium pour livraison gratuite.",
+ "Revenus via partenariats de marque."
+ ]
+ };
+
+ // On extrait les descriptions pour la section demandée
+ const section = leanCanvasData[title] || ["Aucune donnée disponible."];
+
+ // On garde tous les éléments, dans l'ordre
+ const result = section.map((txt) => ({ txt }));
+
return new Promise<{ txt: string }[]>((resolve) => {
- setTimeout(() => {
- resolve([
- { txt: "Ceci est une description 1 pour tester le front." },
- { txt: "Deuxième description." },
- { txt: "Troisième description." },
- ]);
- }, 500); // Simule un délai réseau de 500ms
+ setTimeout(() => resolve(result), 500);
});
};
+
+
// Utilisation du mock dans handleClick pour tester sans serveur
const handleClick = async () => {
if (!expanded.value) {
await fetchData(props.projectId, props.title, "NaN", IS_MOCK_MODE);
} else if (!isEditing.value.includes(true)) {
// Réinitialiser les descriptions si aucune édition n'est en cours
- currentDescriptions.value = [props.description];
+ //currentDescriptions.value = [props.description];
editedDescriptions.value = [props.description];
}
@@ -256,6 +309,20 @@ const cancelEdit = (index: number) => {
editedDescriptions.value[index] = currentDescriptions.value[index];
isEditing.value[index] = false;
};
+
+const randomStyle = () => {
+ const offsetX = Math.floor(Math.random() * 20) - 10; // entre -10 et +10px
+ const offsetY = Math.floor(Math.random() * 20) - 10;
+ return {
+ transform: `translate(${offsetX}px, ${offsetY}px)`,
+ transition: 'transform 0.3s ease',
+ };
+};
+
+const styleClasses = ['float-up', 'float-left', 'float-right', 'wiggle', 'tilt'];
+const getRandomClass = () => {
+ return styleClasses[Math.floor(Math.random() * styleClasses.length)];
+};
diff --git a/front/MyINPulse-front/src/components/canvas/HeaderCanvas.vue b/front/MyINPulse-front/src/components/canvas/HeaderCanvas.vue
index 8c53221..afb0659 100644
--- a/front/MyINPulse-front/src/components/canvas/HeaderCanvas.vue
+++ b/front/MyINPulse-front/src/components/canvas/HeaderCanvas.vue
@@ -1,6 +1,14 @@