2025-03-05 21:11:33 -06:00

58 lines
2.7 KiB
PHP

<x-vuexy-admin::table.bootstrap.manager :tagName="$tagName" :datatableConfig="$bt_datatable" :routes="$routes">
<x-slot name="tools">
<div class="mb-4 pr-2">
<x-vuexy-admin::button.index-off-canvas :label="$singularName" :tagName="$tagName" />
</div>
</x-slot>
<x-slot name="postTools">
<div class="mb-4 pr-2">
<x-vuexy-admin::file.dropzone id="user_doc_file" model="user_doc_file" message="Crear nuevo usuario" note="XML CFDI o PDF CSF" size="xs" />
</div>
</x-slot>
</x-vuexy-admin::table.bootstrap.manager>
@push('page-script')
<script>
// Evento para inicializar el formulario cuando se carga la página
document.addEventListener("DOMContentLoaded", function () {
let dropzone = new Dropzone("#dropzone_user_doc_file", {
url: "#",
autoProcessQueue: false,
acceptedFiles: ".pdf,.xml",
maxFiles: 1,
addRemoveLinks: true,
dictDefaultMessage: "Arrastra aquí tu PDF de Constancia de Situación Fiscal",
init: function () {
this.on("addedfile", function (file) {
let reader = new FileReader();
reader.onload = function () {
let input = document.querySelector("#user_doc_file");
let dataTransfer = new DataTransfer();
dataTransfer.items.add(new File([file], file.name, { type: file.type }));
// Asignamos solo un archivo, no un FileList
//input.files = dataTransfer.files;
// Livewire solo recibe archivos en forma de input, no como FileList
@this.upload('doc_file', dataTransfer.files[0],
(uploadedFile) => {
@this.call('processDocument');
},
(error) => {
console.error("Error al subir PDF:", error);
},
(progressEvent) => {
console.log("Progreso de subida:", progressEvent);
}
);
};
reader.readAsDataURL(file);
});
}
});
});
</script>
@endpush