comal-pagos/src/components/App/DiscountSection.vue
2025-11-11 16:35:40 -06:00

213 lines
5.1 KiB
Vue

<script setup>
import { ref } from "vue";
import Input from "@Holos/Form/Input.vue";
/** Eventos */
const emit = defineEmits(['discount-authorized']);
/** Refs */
const searchForm = ref({
fineNumber: "",
placa: "",
curp: ""
});
const discountData = ref({
fecha: "",
placa: "",
vin: "",
licencia: "",
tarjeta: "",
rfc: "",
nombre: "",
montoOriginal: "",
pagoMinimo: "",
nuevoMonto: ""
});
/** Métodos */
const handleSearch = () => {
if (!searchForm.value.fineNumber && !searchForm.value.placa && !searchForm.value.curp) {
alert("Por favor ingresa al menos un criterio de búsqueda");
return;
}
console.log("Buscando multa:", searchForm.value);
// Simular datos encontrados (temporal)
discountData.value = {
fecha: "2025-11-11",
placa: "ABC-123-DEF",
vin: "1HGBH41JXMN109186",
licencia: "LIC123456",
tarjeta: "TC987654",
rfc: "XAXX010101000",
nombre: "Juan Pérez García",
montoOriginal: "$1,500.00",
pagoMinimo: "$750.00",
nuevoMonto: ""
};
};
const handleAuthorize = () => {
if (!discountData.value.nuevoMonto) {
alert("Por favor ingresa el nuevo monto autorizado");
return;
}
console.log("Autorizando descuento:", discountData.value);
emit('discount-authorized', discountData.value);
};
</script>
<template>
<div class="p-6">
<!-- Formulario de búsqueda -->
<div class="bg-white rounded-xl p-6 m-3 max-w-auto shadow-lg mb-6">
<h3 class="text-xl font-semibold mb-6 text-gray-800">
Buscar Multa para Autorización
</h3>
<form @submit.prevent="handleSearch">
<div class="grid grid-cols-1 md:grid-cols-4 gap-4 items-end">
<!-- Número de Multa -->
<Input
v-model="searchForm.fineNumber"
id="Número de Multa"
type="text"
placeholder=""
/>
<!-- Placa -->
<Input
v-model="searchForm.placa"
id="Placa"
type="text"
placeholder=""
/>
<!-- CURP -->
<Input
v-model="searchForm.curp"
id="CURP"
type="text"
placeholder=""
/>
<!-- Botón Buscar -->
<button
type="submit"
class="py-3 px-8 rounded-lg transition-colors h-[42px] bg-[#7a0b3a] hover:bg-[#68082e] text-white font-medium"
>
Buscar
</button>
</div>
</form>
</div>
<!-- Detalles para Autorización -->
<div class="bg-white rounded-xl p-6 m-3 max-w-auto shadow-lg">
<h3 class="text-xl font-semibold mb-6 text-gray-800">
Detalles para Autorización
</h3>
<form @submit.prevent="handleAuthorize">
<!-- Fecha y Placa -->
<div class="grid grid-cols-2 gap-4 mb-5">
<Input
v-model="discountData.fecha"
id="Fecha de Multa"
type="text"
disabled
/>
<Input
v-model="discountData.placa"
id="Placa"
type="text"
disabled
/>
</div>
<!-- VIN y Licencia -->
<div class="grid grid-cols-2 gap-4 mb-5">
<Input
v-model="discountData.vin"
id="VIN"
type="text"
disabled
/>
<Input
v-model="discountData.licencia"
id="Licencia"
type="text"
disabled
/>
</div>
<!-- Tarjeta de Circulación y RFC -->
<div class="grid grid-cols-2 gap-4 mb-5">
<Input
v-model="discountData.tarjeta"
id="Tarjeta de Circulación"
type="text"
disabled
/>
<Input
v-model="discountData.rfc"
id="RFC"
type="text"
disabled
/>
</div>
<!-- Nombre -->
<div class="mb-5">
<Input
v-model="discountData.nombre"
id="Nombre"
type="text"
disabled
/>
</div>
<!-- Línea separadora -->
<hr class="my-6 border-gray-300" />
<!-- Monto Original y Pago Mínimo -->
<div class="grid grid-cols-2 gap-4 mb-5">
<Input
v-model="discountData.montoOriginal"
id="Monto a Pagar (Original)"
type="text"
disabled
/>
<Input
v-model="discountData.pagoMinimo"
id="Pago Mínimo"
type="text"
disabled
/>
</div>
<!-- Nuevo Monto a Cobrar (editable) -->
<div class="mb-6">
<Input
v-model="discountData.nuevoMonto"
id="Nuevo Monto a Cobrar (Autorizado)"
type="text"
placeholder="Ingrese el nuevo monto autorizado"
/>
</div>
<!-- Botón Autorizar -->
<button
type="submit"
class="w-full bg-green-700 hover:bg-green-600 text-white font-medium py-3.5 rounded-lg transition-colors"
>
Autorizar descuento
</button>
</form>
</div>
</div>
</template>