95 lines
4.6 KiB
PHP
95 lines
4.6 KiB
PHP
|
<div>
|
||
|
<x-vuexy-admin::offcanvas.basic :id="$offcanvasId" :tag-name="$tagName">
|
||
|
{{-- Dropzone Constancia de Situación Fiscal --}}
|
||
|
<x-vuexy-admin::file.dropzone :uid="$uniqueId" model="doc_file" message="CSF PDF o CFDI XML" note="Arrastra aquí un PDF de Constancia de Situación Fiscal o XML de CFDI para cargar los datos al fomulario" />
|
||
|
|
||
|
<x-vuexy-admin::form :uid="$uniqueId" :id="$formId" :mode="$mode" wireSubmit="onSubmit" actionPosition="both">
|
||
|
<x-slot name="actions">
|
||
|
<x-vuexy-admin::button.offcanvas-buttons :mode="$mode" :tagName="$tagName" />
|
||
|
</x-slot>
|
||
|
|
||
|
{{-- Selección de Sucursal --}}
|
||
|
<x-vuexy-admin::form.input :uid="$uniqueId" model="name" label="Nombre(s)" />
|
||
|
<x-vuexy-admin::form.input :uid="$uniqueId" model="last_name" label="Apellidos" />
|
||
|
|
||
|
<hr>
|
||
|
|
||
|
<div class="row">
|
||
|
<x-vuexy-admin::form.input :uid="$uniqueId" model="code" label="Código de usuario" icon="ti ti-tag" parent-class="col-md-8" autocomplete="off" />
|
||
|
</div>
|
||
|
|
||
|
{{-- Teléfonos y Correos --}}
|
||
|
<x-vuexy-admin::form.input type="email" :uid="$uniqueId" model="email" label="Correo electrónico" icon="ti ti-mail" autocomplete="email" inputmode="email" />
|
||
|
<x-vuexy-admin::form.input type="tel" :uid="$uniqueId" model="tel" label="Teléfono" icon="ti ti-phone" phoneMode="both" />
|
||
|
|
||
|
<hr>
|
||
|
|
||
|
<x-vuexy-admin::form.textarea :uid="$uniqueId" model="notes" label="Notas / Observaciones" />
|
||
|
|
||
|
<hr>
|
||
|
|
||
|
{{-- Estado del Centro de Trabajo --}}
|
||
|
<x-vuexy-admin::form.checkbox :uid="$uniqueId" model="is_partner" label="Es socio" switch />
|
||
|
<x-vuexy-admin::form.checkbox :uid="$uniqueId" model="is_employee" label="Es empleado" switch />
|
||
|
<x-vuexy-admin::form.checkbox :uid="$uniqueId" model="is_prospect" label="Es prospecto" switch />
|
||
|
<x-vuexy-admin::form.checkbox :uid="$uniqueId" model="is_customer" label="Es cliente" switch />
|
||
|
<x-vuexy-admin::form.checkbox :uid="$uniqueId" model="is_provider" label="Es proveedor" switch />
|
||
|
|
||
|
<hr>
|
||
|
|
||
|
</x-vuexy-admin::form>
|
||
|
</x-vuexy-admin::offcanvas.basic>
|
||
|
</div>
|
||
|
|
||
|
@push('page-script')
|
||
|
<script>
|
||
|
// Evento para inicializar el formulario cuando se carga la página
|
||
|
document.addEventListener("DOMContentLoaded", function () {
|
||
|
const initializeUserForm = () => {
|
||
|
let dropzone = new Dropzone("#dropzone_doc_file_{{ $uniqueId }}", {
|
||
|
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("#doc_file_{{ $uniqueId }}");
|
||
|
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);
|
||
|
});
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
var myOffcanvas = document.getElementById('{{ $offcanvasId }}');
|
||
|
myOffcanvas.addEventListener('show.bs.offcanvas', function () {
|
||
|
initializeUserForm();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
</script>
|
||
|
@endpush
|