<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Consulta de Pólizas</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <style> :root { --primary-color: #4361ee; --secondary-color: #3a0ca3; --accent-color: #4cc9f0; --light-color: #f8f9fa; --dark-color: #212529; --success-color: #2ec4b6; --border-radius: 6px; --box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); --transition: all 0.3s ease; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } body { background: linear-gradient(135deg, #f5f7fa 0%, #e4e8f0 100%); height: 100vh; display: flex; justify-content: center; align-items: center; } .container { background: white; border-radius: var(--border-radius); box-shadow: var(--box-shadow); width: 466px; max-width: 382px; overflow: hidden; } .header { background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%); color: white; padding: 10px; text-align: center; } .header h1 { font-size: 18px; font-weight: 600; margin-bottom: 2px; } .header p { font-size: 12px; opacity: 0.9; } .form-container { padding: 12px; } .form-group { margin-bottom: 10px; } .form-group label { display: block; margin-bottom: 4px; font-weight: 500; color: var(--dark-color); font-size: 13px; } .form-control { width: 100%; padding: 6px 10px; border: 1px solid #ddd; border-radius: var(--border-radius); font-size: 14px; transition: var(--transition); background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%); } .form-control:focus { border-color: var(--primary-color); box-shadow: 0 0 0 2px rgba(67, 97, 238, 0.15); outline: none; background: white; } .form-control:hover { border-color: var(--primary-color); box-shadow: 0 0 5px rgba(67, 97, 238, 0.1); } .radio-group { display: flex; gap: 10px; margin-bottom: 8px; } .radio-container { display: flex; align-items: center; cursor: pointer; font-size: 13px; } .radio-container input[type="radio"] { margin-right: 4px; accent-color: var(--primary-color); } .checkbox-container { display: flex; align-items: center; cursor: pointer; margin-top: 2px; font-size: 13px; } .checkbox-container input[type="checkbox"] { margin-right: 4px; accent-color: var(--primary-color); width: 14px; height: 14px; } .btn { background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%); color: white; border: none; padding: 8px 15px; border-radius: var(--border-radius); font-size: 14px; font-weight: 500; cursor: pointer; transition: var(--transition); margin-top: 8px; animation: fadeIn 0.5s ease-out; } .btn-primary { width: 100%; } .btn-secondary { background: linear-gradient(135deg, #6c757d 0%, #495057 100%); } .btn-row { display: flex; gap: 10px; } .btn:hover { transform: translateY(-1px); box-shadow: 0 3px 6px rgba(0, 0, 0, 0.15); } .btn:active { transform: translateY(0); animation: pulse 0.3s ease-out; } .close-btn { position: absolute; top: 10px; right: 10px; background: linear-gradient(135deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.3) 100%); border: none; color: white; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 16px; cursor: pointer; transition: var(--transition); box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); } .close-btn:hover { background: linear-gradient(135deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0.5) 100%); transform: rotate(90deg); box-shadow: 0 0 10px rgba(255, 255, 255, 0.5); } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(0.95); } 100% { transform: scale(1); } } @keyframes slideIn { from { transform: translateX(-20px); opacity: 0; } to { transform: translateX(0); opacity: 1; } } .form-group { margin-bottom: 10px; animation: slideIn 0.3s ease-out; animation-fill-mode: both; padding: 5px; border-radius: var(--border-radius); transition: var(--transition); } .form-group:hover { background: linear-gradient(135deg, rgba(67, 97, 238, 0.03) 0%, rgba(76, 201, 240, 0.03) 100%); box-shadow: 0 0 10px rgba(67, 97, 238, 0.1); } .form-group:nth-child(1) { animation-delay: 0.1s; } .form-group:nth-child(2) { animation-delay: 0.2s; } .form-group:nth-child(3) { animation-delay: 0.3s; } .form-group:nth-child(4) { animation-delay: 0.4s; } .form-group:nth-child(5) { animation-delay: 0.5s; } .container { background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%); border-radius: var(--border-radius); box-shadow: var(--box-shadow); width: 100%; max-width: 380px; overflow: hidden; animation: fadeIn 0.5s ease-out; transition: var(--transition); position: relative; } .container:hover { box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2); background: linear-gradient(135deg, #ffffff 0%, #f0f2f5 100%); } </style> </head> <body> <div class="container"> <div class="header"> <h1>Consulta de Pólizas</h1> <p>Ingrese los datos para realizar la búsqueda</p> <button class="close-btn" id="closeBtn"><i class="fas fa-times"></i></button> </div> <div class="form-container"> <form id="polizaForm"> <div class="form-group"> <label>Tipo de consulta:</label> <div class="radio-group"> <label class="radio-container"> <input type="radio" name="tipoConsulta" value="poliza" checked> Nro. Póliza </label> <label class="radio-container"> <input type="radio" name="tipoConsulta" value="propuesta"> Propuesta </label> </div> </div> <div class="form-group"> <label for="numeroConsulta">Número:</label> <input type="text" class="form-control" id="numeroConsulta" placeholder="Ingrese número" pattern="^[0-9]+$" inputmode="numeric"> </div> <div class="form-group"> <label for="apellidoRazon">Apellido/Razón Social:</label> <input type="text" class="form-control" id="apellidoRazon" placeholder="Ingrese apellido o razón social"> </div> <div class="form-group"> <label for="patente">Interés Asegurable (Patente):</label> <input type="text" class="form-control" id="patente" placeholder="Ingrese patente"> </div> <div class="form-group"> <label class="checkbox-container"> <input type="checkbox" id="soloVigentes" checked> Solo Vigentes </label> </div> <div class="btn-row"> <button type="submit" class="btn btn-primary">Buscar</button> <button type="button" class="btn btn-secondary" id="limpiarBtn">Limpiar</button> </div> </form> </div> </div> <script> // Mantener la funcionalidad original async function saludar() { obj = await window.chrome.webview.hostObjects.ahk; obj.func('call from edge\n' + (await obj.str)); } async function buscar() { // Obtener los valores del formulario const numeroConsulta = document.getElementById('numeroConsulta').value; const esPoliza = document.querySelector('input[name="tipoConsulta"][value="poliza"]').checked; const apellidoRazon = document.getElementById('apellidoRazon').value; const patente = document.getElementById('patente').value; const soloVigentes = document.getElementById('soloVigentes').checked; // Obtener el objeto host y pasar los valores como parámetros obj = await window.chrome.webview.hostObjects.buscar; obj.func(numeroConsulta, esPoliza, apellidoRazon, patente, soloVigentes); } // Validación para el campo numérico document.getElementById('numeroConsulta').addEventListener('input', function (e) { // Eliminar cualquier carácter que no sea número this.value = this.value.replace(/[^0-9]/g, ''); }); document.getElementById('numeroConsulta').addEventListener('keypress', function (e) { // Prevenir entrada de caracteres no numéricos if (!/^\d$/.test(e.key)) { e.preventDefault(); } }); // Agregar funcionalidad al formulario document.getElementById('polizaForm').addEventListener('submit', function (e) { e.preventDefault(); // Aquí se puede agregar la lógica para procesar el formulario // Por ahora, solo llamamos a la función original buscar(); }); // Funcionalidad para el botón Limpiar document.getElementById('limpiarBtn').addEventListener('click', function () { // Resetear el formulario document.getElementById('polizaForm').reset(); // Asegurarse que el radio button de póliza esté seleccionado document.querySelector('input[name="tipoConsulta"][value="poliza"]').checked = true; // Asegurarse que el checkbox de Solo Vigentes esté marcado document.getElementById('soloVigentes').checked = true; }); // Funcionalidad para el botón de cerrar document.getElementById('closeBtn').addEventListener('click', async function () { obj = await window.chrome.webview.hostObjects.hide; obj.func(); }); </script> </body> </html>