Untitled
unknown
plain_text
a year ago
2.8 kB
8
Indexable
<template> <div class="pt-6"> <!-- Drag and Drop Component --> <DragDropUpload ref="dragDropUpload" @files-added="handleFilesAdded" /> <!-- File Cards Grid --> <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 mt-4"> <div v-if="files.length" v-for="(file, index) in files" :key="file.id" class="border rounded-lg p-4 shadow"> <h3 class="font-bold text-lg">{{ file.file_name }}</h3> <p class="text-gray-500">Uploaded on: {{ file.created_at }}</p> <p class="text-gray-500">Uploaded by: {{ file.uploader }}</p> <div class="flex justify-between mt-4"> <Button icon="pi pi-download" label="Download" class="bg-green-500 text-white py-1 px-2 rounded" @click="downloadFile(file)"/> <Button icon="pi pi-trash" label="Delete" class="bg-red-500 text-white py-1 px-2 rounded" @click="deleteFile(index)"/> </div> </div> <div v-else class="text-center text-gray-500">No files found</div> </div> </div> </template> <script> import { ref, onMounted } from 'vue'; import DragDropUpload from '../../components/AdminPortal/DragDropUpload.vue'; import Button from 'primevue/button'; import UserService from "@/services/user.service.ts"; import ResourcesService from "@/services/resources.service.ts"; export default { name: 'Resources', components: { DragDropUpload, Button }, setup() { const dragDropUpload = ref(null); const files = ref([]); const handleFilesAdded = (newFiles) => { newFiles.forEach(file => { UserService.uploadDocument(file, 1) // 1 for Resources .then(response => { console.log('File uploaded successfully:', response); getResourcesDocs(); // Refresh the list after uploading }) .catch(error => { console.error('Error uploading file:', error); }); }); }; const getResourcesDocs = () => { ResourcesService.getResourcesDocuments() .then(response => { console.log('API response:', response.data); files.value = response.data; console.log('Files array updated:', files.value); }) .catch(error => { console.error('Error fetching resources:', error); }); }; const downloadFile = (file) => { // Implement file download logic console.log('Downloading file:', file); }; const deleteFile = (index) => { files.value.splice(index, 1); }; onMounted(() => { getResourcesDocs(); }); return { dragDropUpload, files, handleFilesAdded, downloadFile, deleteFile }; } }; </script> <style> @import 'tailwindcss/tailwind.css'; </style>
Editor is loading...
Leave a Comment