From 6cb07aa9f81f210a4dccffc6a1b2cb5473ee5024 Mon Sep 17 00:00:00 2001 From: PascalMarchesseault <97350299+PascalMarchesseault@users.noreply.github.com> Date: Mon, 30 Dec 2024 23:32:30 -0500 Subject: [PATCH] =?UTF-8?q?Wip=20upload=20d'image=20pr=C3=A9sentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/creators/CreatorHome.vue | 79 ++++++++++++++++++------------ 1 file changed, 48 insertions(+), 31 deletions(-) diff --git a/src/views/creators/CreatorHome.vue b/src/views/creators/CreatorHome.vue index cbee2f1..b078cbb 100644 --- a/src/views/creators/CreatorHome.vue +++ b/src/views/creators/CreatorHome.vue @@ -420,24 +420,37 @@ function deleteImage(field) { } // Mettre à jour une image -function updateImage(index, event) { +function updateImage(field, event) { const file = event.target.files[0]; if (file) { - // Stocker le fichier pour l'enregistrement - editableImages.value[index] = file; - - // Générer une URL temporaire pour la prévisualisation - const previewUrl = URL.createObjectURL(file); - - // Mettre à jour la prévisualisation (remplacer dans l'interface utilisateur) - if (index === 0) image1Url.value = previewUrl; - else if (index === 1) image2Url.value = previewUrl; - else if (index === 2) image3Url.value = previewUrl; - else if (index === 3) image4Url.value = previewUrl; + // Stocker le fichier dans editableImages pour l'envoi + switch (field) { + case "mainImageUrl": + editableImages.value[0] = file; + mainImageUrl.value = URL.createObjectURL(file); + break; + case "image1Url": + editableImages.value[1] = file; + image1Url.value = URL.createObjectURL(file); + break; + case "image2Url": + editableImages.value[2] = file; + image2Url.value = URL.createObjectURL(file); + break; + case "image3Url": + editableImages.value[3] = file; + image3Url.value = URL.createObjectURL(file); + break; + case "image4Url": + editableImages.value[4] = file; + image4Url.value = URL.createObjectURL(file); + break; + } } } + // Charger les données au montage onMounted(() => { mainTitle.value = brandingStore.presentationInfos.title; @@ -467,31 +480,34 @@ async function saveChanges() { return; } - const payload = { - PhoneNumber: editablePhoneNumber.value, - Email: editableEmail.value, - Title: editableMainTitle.value, - MainImageText: editableMainImageText.value, - MainVideoText: editableMainVideoText.value, - ImagesSubtitle: editableImagesSubtitle.value, - ImagesText: editableImagesText.value, - VideoSubtitle: editableVideoSubtitle.value, - VideoSubtitleMain: editableVideoSubtitleMain.value, - VideoUrlMain: editableVideoUrlMain.value, - VideoUrl: editableVideoUrl.value, - VideoText: editableVideoText.value - }; + const formData = new FormData(); + // Ajout des champs textuels au payload + formData.append("PhoneNumber", editablePhoneNumber.value || ""); + formData.append("Email", editableEmail.value || ""); + formData.append("Title", editableMainTitle.value || ""); + formData.append("MainImageText", editableMainImageText.value || ""); + formData.append("MainVideoText", editableMainVideoText.value || ""); + formData.append("ImagesSubtitle", editableImagesSubtitle.value || ""); + formData.append("ImagesText", editableImagesText.value || ""); + formData.append("VideoSubtitle", editableVideoSubtitle.value || ""); + formData.append("VideoSubtitleMain", editableVideoSubtitleMain.value || ""); + formData.append("VideoUrlMain", editableVideoUrlMain.value || ""); + formData.append("VideoUrl", editableVideoUrl.value || ""); + formData.append("VideoText", editableVideoText.value || ""); - - - console.log("Payload envoyé :", payload); + // Ajout des fichiers au payload + if (editableImages.value[0]) formData.append("MainImage", editableImages.value[0]); + if (editableImages.value[1]) formData.append("Image1", editableImages.value[1]); + if (editableImages.value[2]) formData.append("Image2", editableImages.value[2]); + if (editableImages.value[3]) formData.append("Image3", editableImages.value[3]); + if (editableImages.value[4]) formData.append("Image4", editableImages.value[4]); try { const response = await client.post( `/api/creators/${creatorProfileStore.creator.id}/presentation-infos`, - payload, - { headers: { "Content-Type": "application/json" } } + formData, + { headers: { "Content-Type": "multipart/form-data" } } ); console.log("Données sauvegardées :", response.data); @@ -503,6 +519,7 @@ async function saveChanges() { } } + function cancelEdit() { // Restaurer les valeurs d'origine editableMainTitle.value = mainTitle.value;