[#312] Création d'une page d'administration listing des fournisseurs #16

Merged
Matteo merged 8 commits from feat/312-creation-d-une-page-d-administration-listing-des-fournisseurs into develop 2026-02-09 12:32:09 +00:00
3 changed files with 111 additions and 21 deletions
Showing only changes of commit 615d3d526c - Show all commits

55
.idea/workspace.xml generated
View File

@@ -4,10 +4,11 @@
<option name="autoReloadType" value="SELECTIVE" />
</component>
<component name="ChangeListManager">
<list default="true" id="7c107abe-5995-4428-8429-b146aaca8386" name="Changes" comment="feat : ajout du responsive sur la navbar et la page d'accueil">
<list default="true" id="7c107abe-5995-4428-8429-b146aaca8386" name="Changes" comment="fix : suppression code mort sur la navbar">
<change afterPath="$PROJECT_DIR$/frontend/pages/admin/supplierList.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/config/reference.php" beforeDir="false" afterPath="$PROJECT_DIR$/config/reference.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/frontend/layouts/default.vue" beforeDir="false" afterPath="$PROJECT_DIR$/frontend/layouts/default.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/frontend/layouts/admin.vue" beforeDir="false" afterPath="$PROJECT_DIR$/frontend/layouts/admin.vue" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -21,6 +22,7 @@
<component name="CopilotPersistence">
<persistenceIdMap>
<entry key="_//wsl.localhost/Ubuntu-24.04/home/kevin/Stage/Ferme" value="381AhnCm9yPeOiWgMObKHhtgv2C" />
<entry key="_//wsl.localhost/Ubuntu-24.04/home/matte/Ferme" value="39QGG8hGN52IW0kjhmS0rLvVr56" />
</persistenceIdMap>
</component>
<component name="EmbeddingIndexingInfo">
@@ -30,15 +32,15 @@
<component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES">
<list>
<option value="Vue Composition API Component" />
<option value="TypeScript File" />
<option value="Vue Composition API Component" />
</list>
</option>
</component>
<component name="Git.Settings">
<option name="RECENT_BRANCH_BY_REPOSITORY">
<map>
<entry key="$PROJECT_DIR$" value="feat/256-reception-etape-3-bovin" />
<entry key="$PROJECT_DIR$" value="develop" />
</map>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
@@ -56,7 +58,7 @@
</server>
</servers>
</component>
<component name="PhpWorkspaceProjectConfiguration" interpreter_name="C:/php-8.4.3/php.exe">
<component name="PhpWorkspaceProjectConfiguration" interpreter_name="C:/php/php.exe">
<include_path>
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/psr/event-dispatcher" />
@@ -226,14 +228,17 @@
"RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
"RunOnceActivity.git.unshallow": "true",
"RunOnceActivity.typescript.service.memoryLimit.init": "true",
"git-widget-placeholder": "develop",
"com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
"git-widget-placeholder": "feat/312-creation-d-une-page-d-administration-listing-des-fournisseurs",
"junie.onboarding.icon.badge.shown": "true",
"last_opened_file_path": "/home/sroy/Documents/test/Ferme",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
"node.js.selected.package.tslint": "(autodetect)",
"nodejs_package_manager_path": "npm",
"settings.editor.selected.configurable": "configurable.tailwindcss",
"settings.editor.selected.configurable": "proofread",
"to.speed.mode.migration.done": "true",
"ts.external.directory.path": "/opt/phpstorm/plugins/javascript-plugin/jsLanguageServicesImpl/external",
"vue.rearranger.settings.migration": "true"
},
@@ -295,14 +300,7 @@
<workItem from="1770195718952" duration="215000" />
<workItem from="1770195959162" duration="18915000" />
<workItem from="1770274844804" duration="3940000" />
</task>
<task id="LOCAL-00003" summary="feat : Ajout d'un composable pour la pesée qui sera réutilisable pour l'expédition, ajout de contrainte sur les entity de reception et weight pour plus de robustesse et correction de la class active des liens dans la nav">
<option name="closed" value="true" />
<created>1768316835575</created>
<option name="number" value="00003" />
<option name="presentableId" value="LOCAL-00003" />
<option name="project" value="LOCAL" />
<updated>1768316835575</updated>
<workItem from="1770620780923" duration="7163000" />
</task>
<task id="LOCAL-00004" summary="feat : update du fichier AGENTS.md">
<option name="closed" value="true" />
@@ -688,7 +686,15 @@
<option name="project" value="LOCAL" />
<updated>1770308927948</updated>
</task>
<option name="localTasksCounter" value="52" />
<task id="LOCAL-00052" summary="fix : suppression code mort sur la navbar">
<option name="closed" value="true" />
<created>1770366040426</created>
<option name="number" value="00052" />
<option name="presentableId" value="LOCAL-00052" />
<option name="project" value="LOCAL" />
<updated>1770366040426</updated>
</task>
<option name="localTasksCounter" value="53" />
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
@@ -738,7 +744,6 @@
</option>
</component>
<component name="VcsManagerConfiguration">
<MESSAGE value="feat : Ajout du bundle Monolog pour la gestion des logs" />
<MESSAGE value="fix : affiche plus détail dans les logs en recette/prod" />
<MESSAGE value="fix : modification du script de déploiement pour corriger le problème d'écriture des logs de prod" />
<MESSAGE value="fix : doc de déploiement" />
@@ -763,7 +768,19 @@
<MESSAGE value="feat : mise à jour du bon de réception" />
<MESSAGE value="feat : Ajout de la sélection des bovins étape 3 d'une réception (WIP)" />
<MESSAGE value="feat : ajout du responsive sur la navbar et la page d'accueil" />
<option name="LAST_COMMIT_MESSAGE" value="feat : ajout du responsive sur la navbar et la page d'accueil" />
<MESSAGE value="fix : suppression code mort sur la navbar" />
<option name="LAST_COMMIT_MESSAGE" value="fix : suppression code mort sur la navbar" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="php">
<url>file://$PROJECT_DIR$/src/Entity/ReceptionPelletBuilding.php</url>
<line>6</line>
<option name="timeStamp" value="3" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
<component name="XSLT-Support.FileAssociations.UIState">
<expand />
@@ -777,4 +794,4 @@
<option value=".github/prompts" />
</promptFileLocations>
</component>
</project>
</project>

View File

@@ -22,11 +22,16 @@
<div class="grid grid-cols-[16rem,1fr] h-[calc(100vh-85px)] min-h-0">
<aside class="bg-primary-500 text-white min-h-0 grid grid-rows-[auto,1fr,auto]">
<div class="p-4 font-semibold">Tableau de bord</div>
<a href="/admin/dashboard">
<div class="p-4 font-semibold">Tableau de bord</div>
</a>
<div class="overflow-y-auto min-h-0 p-4 space-y-3">
<!-- Liste des liens à ajouter ci-dessous -->
<a href="/admin/supplierList">
Fournisseur
</a>
</div>
<div class="p-4">

View File

@@ -0,0 +1,68 @@
<template>
<div class="flex items-center justify-between p-4">
<h1 class="text-xl font-fullbold uppercase"> Fournisseurs </h1>
<a href=""

Change la balise a par un NuxLink avec l'url => /admin/supplier

Rename la page en supplier-list.vue

Change la balise a par un NuxLink avec l'url => /admin/supplier Rename la page en supplier-list.vue
class="flex items-center justify-center uppercase text-xl bg-primary-500 text-white h-[50px] w-[272px]"
role="button"
>
Ajouter </a>
</div>
<div class="mt-6 border border-slate-200 mb-16">
<div
class="grid grid-cols-6 gap-4 bg-slate-100 px-4 py-3 text-sm font-semibold uppercase tracking-wide"
>
<div>Nom</div>
<div>Mail</div>
<div>Rue</div>
<div>Complément</div>
<div>Code Postal</div>
<div>Ville</div>
</div>
<div v-for="supplier in supplierList" :key="supplier.id">
<template v-if="supplier.addresses?.length">
<div v-for="addr in supplier.addresses" :key="addr.id" class="grid grid-cols-6 gap-4 px-4 py-2 ">
<div class="truncate">
{{ supplier.name }}
</div>
<div class="truncate">
{{ supplier.email }}
</div>
<div class="truncate">
{{ addr.street }}
</div>
<div class="truncate">
{{ addr.street2 }}
</div>
<div>{{ addr.postalCode }}</div>
<div class="uppercase truncate">
{{ addr.city }}
</div>
</div>
</template>
</div>
</div>
</template>
<script setup lang="ts">
import type {SupplierData} from "~/services/dto/supplier-data"
import {getSupplierList} from "~/services/supplier"
definePageMeta({layout: "admin"})
const supplierList = ref<SupplierData[]>([])
const router = useRouter()
const editSupplier = (id: number) => {
router.push(`/admin/supplier/${id}`)
}
const deleteSupplier = (id: number) => {
}

Supprimer le deitSupplier pas utile

Supprimer le deitSupplier pas utile
onMounted(async () => {
supplierList.value = (await getSupplierList(false)) ?? []
})
</script>