front_foundation #5

Open
mohamed_maoulainine wants to merge 73 commits from front_foundation into main
3 changed files with 59 additions and 64 deletions
Showing only changes of commit 09e4b3262f - Show all commits

View File

@ -1,25 +1,40 @@
<template> <template>
Review

Il serait mieux d'afficher le contenu du lean canvas sans devoir clicker dessus, un peu comme sur ce lien.
De plus, ce n'est pas important d'afficher en gros le titre de la section, il devrait être plus discret.
https://cms.boardmix.com/images/articles/lean-canvas.png
En plus il y a des jolies couleur c'est sympa.

Il serait mieux d'afficher le contenu du lean canvas sans devoir clicker dessus, un peu comme sur ce lien. De plus, ce n'est pas important d'afficher en gros le titre de la section, il devrait être plus discret. https://cms.boardmix.com/images/articles/lean-canvas.png En plus il y a des jolies couleur c'est sympa.
<div :class="['cell', { expanded }]" @click="toggleExpand"> <div :class="['cell', { expanded }]"
@click="toggleExpand"
:style="{ justifyContent: expanded ? 'flex-start' : 'center' }"> <!-- Looking for finding a way
to make this style in the toggleExpand event -->
<h3>{{ title }}</h3> <h3>{{ title }}</h3>
<p>{{ description }}</p> <p>{{ currentDescription }}</p>
</div> </div>
</template> </template>
<script> <script>
mohamed_maoulainine marked this conversation as resolved Outdated
Outdated
Review

ce n'est pas de la composition API

ce n'est pas de la composition API
import { ref } from "vue";
export default { export default {
props: { props: {
mohamed_maoulainine marked this conversation as resolved Outdated
Outdated
Review

composition API

composition API
title: String, title: String,
description: String description: String
}, },
data() {
return { setup(props) {
expanded: false const expanded = ref(false);
const currentDescription = ref(props.description);
const toggleExpand = () => {
currentDescription.value = expanded.value
? "3 problèmes essentiels à résoudre pour le client"
: "FAKE DATA";
expanded.value = !expanded.value;
};
return {
expanded,
currentDescription,
toggleExpand
}; };
},
methods: {
toggleExpand() {
this.expanded = !this.expanded;
}
} }
}; };
</script> </script>
@ -29,14 +44,21 @@
.cell { .cell {
display: flex; display: flex;
flex-direction: column; /* Pour empiler le titre et la description */ flex-direction: column;
align-items: center; /* Centre horizontalement */ align-items: center;
justify-content: center; /* Centre verticalement */ justify-content: center;
text-align: center; /* Centre le texte */ text-align: center;
transition: all 0.3s ease; transition: all 0.3s ease;
cursor: pointer; cursor: pointer;
} }
.cell_Expanded {
display: flex;
flex-direction: column;
align-items: center;
transition: all 0.3s ease;
cursor: pointer;
}
.expanded { .expanded {
position: fixed; position: fixed;

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="LeanCanvas"> <div class="canvas">
<CanvasItem <CanvasItem
v-for="(item, index) in items" v-for="(item, index) in items"
:key="index" :key="index"
@ -11,60 +11,34 @@
</template> </template>
<script> <script>
mohamed_maoulainine marked this conversation as resolved Outdated
Outdated
Review

Ce n'est pas de la composition API

Ce n'est pas de la composition API
import CanvasItem from "./CanvasItem.vue"; import { ref } from "vue";
import CanvasItem from "@/components/canvas/CanvasItem.vue";
export default { export default {
components: { components: {
CanvasItem CanvasItem
}, },
data() { setup() {
return { const items = ref([
items: [ { title: "1. Problème", description: "3 problèmes essentiels à résoudre pour le client", class: "Probleme" },
{ title: "1. Problème", { title: "2. Segments", description: "Les segments de clientèle visés", class: "Segments" },
description: "3 problèmes essentiels à résoudre pour le client", { title: "3. Valeur", description: "La proposition de valeur", class: "Valeur" },
class: "Probleme" { title: "4. Solution", description: "Les solutions proposées", class: "Solution" },
}, { title: "5. Avantage", description: "Les avantages concurrentiels", class: "Avantage" },
{ title: "2. Segments", { title: "6. Canaux", description: "Les canaux de distribution", class: "Canaux" },
description: "Les segments de clientèle visés", { title: "7. Indicateurs", description: "Les indicateurs clés de performance", class: "Indicateurs" },
class: "Segments" { title: "8. Coûts", description: "Les coûts associés", class: "Couts" },
}, { title: "9. Revenus", description: "Les sources de revenus", class: "Revenus" }
{ title: "3. Valeur", ]);
description: "La proposition de valeur",
class: "Valeur" return { items };
},
{ title: "4. Solution",
description: "Les solutions proposées",
class: "Solution"
},
{ title: "5. Avantage",
description: "Les avantages concurrentiels",
class: "Avantage"
},
{ title: "6. Canaux",
description: "Les canaux de distribution",
class: "Canaux"
},
{ title: "7. Indicateurs",
description: "Les indicateurs clés de performance",
class: "Indicateurs"
},
{ title: "8. Coûts",
description: "Les coûts associés",
class: "Couts"
},
{ title: "9. Revenus",
description: "Les sources de revenus",
class: "Revenus"
}
]
};
} }
}; };
</script> </script>
<style scoped> <style scoped>
.LeanCanvas { .canvas {
display: grid; display: grid;
grid-template-columns: repeat(10, 1fr); grid-template-columns: repeat(10, 1fr);
grid-template-rows: repeat(6, 1fr); grid-template-rows: repeat(6, 1fr);

View File

@ -1,4 +1,3 @@
<!-- src/views/CanvasView.vue -->
<template> <template>
<div> <div>
<header> <header>