281 lines
22 KiB
HTML
281 lines
22 KiB
HTML
<!doctype html>
|
||
<html lang="es">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
<title>Acta de diagnóstico en campo — HBOX</title>
|
||
<link rel="stylesheet" href="acta.css">
|
||
</head>
|
||
<body>
|
||
<div id="acta"></div>
|
||
<script src="flota.js"></script>
|
||
<script src="acta.js"></script>
|
||
<script>
|
||
const led = v => String(v.led || '');
|
||
const abrio = v => String(v.abrir || '').startsWith('S');
|
||
const conUsb = v => String(v.usb || '').startsWith('S');
|
||
|
||
Acta.render({
|
||
tipo: 'diagnostico-campo',
|
||
repetible: true,
|
||
tecnicoDesdeUsuario: true,
|
||
nombres: { alan: 'Alan', daniel: 'Daniel', leo: 'Leo Rodríguez' },
|
||
unidades: window.FLOTA,
|
||
etiquetaSerie: 'Unidad que vas a revisar',
|
||
titulo: 'Acta de diagnóstico en campo — HBOX',
|
||
subtitulo: 'Helgen Technologies · llénala EN LA MÁQUINA, mientras revisas. No la llenes de memoria después.',
|
||
textoOK: 'QUEDA OPERATIVA',
|
||
intro: '<b>Para qué sirve esta acta.</b> Nadie espera que tú encuentres la causa de la falla: eso se '
|
||
+ 'determina en el banco de Querétaro. Lo que sí depende de ti es que la evidencia llegue completa. '
|
||
+ 'Una unidad mal diagnosticada se puede volver a revisar; una unidad que reiniciaste antes de mirarla '
|
||
+ '<b>ya no se puede diagnosticar nunca</b>, porque el estado en que la encontraste se borró.',
|
||
secciones: [
|
||
|
||
{ titulo: '⚠ Reglas de oro — léelas antes de tocar la unidad',
|
||
items: [
|
||
{ tipo:'nota', txt:'<div class="peligro"><b>1 · No reinicies, no desconectes, no abras nada hasta el paso 3.</b> '
|
||
+ 'El estado en que encontraste la unidad <b>es la evidencia</b>. Cortarle la energía borra la temperatura '
|
||
+ 'máxima, la cuenta de reinicios y la causa del último arranque — justo lo que necesitamos.</div>' },
|
||
{ tipo:'nota', txt:'<div class="peligro"><b>2 · Seguridad de la máquina primero.</b> No trabajes sobre un RTG o '
|
||
+ 'un equipo energizado sin el permiso y el bloqueo (LOTO) del terminal. Si el equipo está operando, '
|
||
+ '<b>no subas</b>: agenda con el supervisor de ICAVE y regresa.</div>' },
|
||
{ tipo:'nota', txt:'<div class="peligro"><b>3 · Batería.</b> Si ves la batería <b>hinchada</b>, si <b>quema</b> al '
|
||
+ 'tacto o si huele a quemado: no sigas desarmando, no la perfores, sepárala de la electrónica, tómale foto '
|
||
+ 'y avisa de inmediato. Una batería de litio hinchada <b>no viaja en avión</b>.</div>' },
|
||
{ tipo:'nota', txt:'<div class="peligro"><b>4 · Si está lloviendo o el gabinete está mojado, no lo abras.</b> '
|
||
+ 'Anótalo y regresa en seco.</div>' },
|
||
{ tipo:'check', clave:'reglas', req:true, txt:'<b>Leí las cuatro reglas</b> y voy a seguir el procedimiento en orden.' },
|
||
] },
|
||
|
||
{ titulo: '0 · Permiso de acceso y máquina — antes de subirte a nada',
|
||
sub:'En ICAVE el equipo no se identifica por el HBOX sino por la MÁQUINA, y no se sube a una máquina sin autorización por escrito.',
|
||
items: [
|
||
{ tipo:'nota', txt:'<b>Cómo funciona.</b> Operaciones (Adriana) manda a ICAVE un correo pidiendo acceso a la '
|
||
+ '<b>máquina</b> por su número, nombrando a los técnicos que van a subir. Hasta que ICAVE contesta y se acuerda '
|
||
+ 'el horario, no hay visita. Si llegaste sin ese correo contestado, <b>no subas</b>: avisa y reagenda.' },
|
||
{ tipo:'fecha', clave:'fecha', req:true, guardaEn:'fecha', txt:'Fecha de la revisión',
|
||
ayuda:'Arranca con la de hoy. Cámbiala si estás capturando una visita de otro día.' },
|
||
{ tipo:'texto', clave:'maquina_id', req:true, guardaEn:'maquina_id', rows:'1',
|
||
txt:'Número de la máquina donde está instalado el HBOX, tal como lo nombra ICAVE',
|
||
ph:'FL-JUN-060 · RT-ZPMC-20 · HS-WES-62' },
|
||
{ tipo:'radio', clave:'coincide', req:true, txt:'¿Coincide con la máquina que aparece arriba, junto a la unidad que elegiste?',
|
||
opciones:['Sí, es la misma','No — la unidad está en otra máquina (explícalo abajo)','La lista no dice la máquina'],
|
||
aviso:'Si NO coincide, avisa a ingeniería: el registro de qué unidad está en qué máquina quedó mal y hay que corregirlo.' },
|
||
{ tipo:'radio', clave:'permiso', req:true, guardaEn:'permiso',
|
||
txt:'¿Hay autorización de acceso a esa máquina?',
|
||
opciones:['Sí, autorizada por correo','Sí, autorizada en sitio por el supervisor','No — solo la reviso desde afuera, sin subir','No aplica — la unidad ya está en el taller'] },
|
||
{ tipo:'texto', clave:'permiso_quien', si:v=>String(v.permiso||'').startsWith('Sí'), rows:'1',
|
||
txt:'¿Quién autorizó y a qué hora?', ph:'Abraham (ICAVE) — correo del 18-sep, acceso 09:40' },
|
||
{ tipo:'check', clave:'loto', si:v=>String(v.permiso||'').startsWith('Sí'),
|
||
txt:'La máquina está <b>detenida y bloqueada (LOTO)</b>, o el supervisor confirmó que es seguro trabajar en ella.' },
|
||
{ tipo:'nota', si:v=>String(v.permiso||'').startsWith('No —'),
|
||
txt:'<div class="peligro"><b>Sin autorización no te subas al equipo.</b> Haz lo que se pueda desde el piso '
|
||
+ '(fotos de lejos, patrón del LED si se alcanza a ver) y déjalo anotado. Una revisión incompleta '
|
||
+ 'es aceptable; un accidente no.</div>' },
|
||
{ tipo:'texto', clave:'operador', rows:'1', txt:'¿Quién te acompañó o te dio acceso? (operador o supervisor)' },
|
||
] },
|
||
|
||
{ titulo: '1 · Por qué vienes a esta unidad',
|
||
sub:'Contesta con lo que te dijeron, aunque suene vago. La versión del operador vale.',
|
||
items: [
|
||
{ tipo:'radio', clave:'motivo', req:true, guardaEn:'motivo', txt:'Motivo de la visita',
|
||
opciones:['Dejó de reportar','Reporta pero con posición mala o saltos','Nunca ha reportado desde que se instaló',
|
||
'La máquina se quedó sin la unidad / se desmontó','Revisión preventiva','Otro (explícalo abajo)'] },
|
||
{ tipo:'texto', clave:'reporte', rows:'2', txt:'¿Quién avisó y qué dijo exactamente?',
|
||
ph:'Ej.: el operador del montacargas dice que ayer en la tarde dejó de verse en el sistema.' },
|
||
{ tipo:'texto', clave:'ultima_vez', txt:'¿Cuándo se vio reportando por última vez? (fecha y hora aproximadas)',
|
||
ph:'17-sep, como a las 3 de la tarde' },
|
||
{ tipo:'radio', clave:'estado_maquina', txt:'¿Cómo está la máquina ahora?',
|
||
opciones:['Trabajando normal','Encendida pero parada','Apagada','En taller / fuera de servicio','No sé'] },
|
||
] },
|
||
|
||
{ titulo: '2 · Antes de abrir nada — cómo la encontraste',
|
||
sub:'Todo este paso se hace con el gabinete CERRADO y sin cortar la energía.',
|
||
items: [
|
||
{ tipo:'foto', clave:'f_maquina', req:true, etiqueta:'maquina',
|
||
txt:'La máquina completa, de lejos, donde se vea dónde está montado el gabinete.',
|
||
ayuda:'Sirve para saber qué sol le pega y a qué altura está. Una sola foto basta.' },
|
||
{ tipo:'foto', clave:'f_gabinete', req:true, etiqueta:'gabinete-cerrado',
|
||
txt:'El gabinete cerrado, de cerca, tal como lo encontraste.' },
|
||
{ tipo:'foto', clave:'f_antenas', req:true, etiqueta:'antenas',
|
||
txt:'Las antenas (la de GPS y las dos de celular) con su cable.',
|
||
ayuda:'Acércate al conector: buscamos cables pellizcados, conectores flojos, antenas rotas o faltantes.' },
|
||
{ tipo:'check', clave:'ext_golpes', txt:'Revisé el exterior: <b>golpes, tapas flojas, tornillos faltantes, prensaestopas sueltos</b>.' },
|
||
{ tipo:'radio', clave:'ext_estado', txt:'¿El gabinete por fuera está…?',
|
||
opciones:['Bien, sin daños','Golpeado','Con agua o marcas de agua','Con la tapa mal cerrada','Falta alguna antena'] },
|
||
{ tipo:'radio', clave:'sol', txt:'¿Le pega el sol directo a esa hora?', opciones:['Sí, de lleno','Parcial','No, está en sombra'] },
|
||
{ tipo:'medida', clave:'hora_revision', txt:'Hora a la que estás haciendo esta revisión', ph:'14:30', modo:'text' },
|
||
] },
|
||
|
||
{ titulo: '3 · El LED de estado — el dato más importante de toda la visita',
|
||
sub:'La unidad te está diciendo qué le pasa con el parpadeo del LED. Todavía SIN cortarle la energía.',
|
||
items: [
|
||
{ tipo:'nota', txt:'<b>Cómo se hace bien:</b> mira el LED <b>10 segundos completos</b> con el reloj y '
|
||
+ '<b>cuenta cuántas veces prende</b>. No lo adivines: 5 veces en 10 s y 10 veces en 10 s significan '
|
||
+ 'cosas <b>opuestas</b> (una es que la máquina no le da corriente, la otra es que no tiene enlace).' },
|
||
{ tipo:'medida', clave:'destellos', txt:'¿Cuántas veces prendió el LED en 10 segundos?', ph:'5', u:'destellos' },
|
||
{ tipo:'radio', clave:'led', req:true, txt:'¿Cuál de estos patrones es? (elige el que más se parezca)',
|
||
opciones:[
|
||
'A · Apagado — no prende ni una vez en 30 segundos',
|
||
'B · Fijo encendido, sin parpadear',
|
||
'C · Un destello muy cortito cada 4 segundos',
|
||
'D · Prende 1 seg y apaga 1 seg — latido lento (5 en 10 s)',
|
||
'E · Parpadeo parejo, 1 por segundo (10 en 10 s)',
|
||
'F · Dos destellos juntos, pausa, y se repite',
|
||
'G · Parpadeo rápido continuo, no alcanzo a contarlo',
|
||
'H · No puedo ver el LED desde afuera' ] },
|
||
{ tipo:'foto', clave:'f_led', etiqueta:'led', txt:'Opcional pero muy útil: foto del LED encendido.' },
|
||
] },
|
||
|
||
{ titulo: '🔴 Lectura A — la unidad está muerta o sin corriente', si:v=>led(v).startsWith('A'),
|
||
sub:'El LED apagado significa una de dos: no le llega energía, o el HBOX ya no enciende. El multímetro lo decide.',
|
||
items: [
|
||
{ tipo:'nota', txt:'Abre el gabinete (máquina apagada) y mide <b>en este orden</b>. Si en algún punto ya no hay voltaje, ahí está el corte.' },
|
||
{ tipo:'medida', clave:'v_maquina', txt:'1) Voltaje que entrega la máquina al gabinete', esperado:'12 V o 24 V según el equipo', u:'V' },
|
||
{ tipo:'radio', clave:'breaker', txt:'2) Breaker / fusible del gabinete', opciones:['Cerrado y con continuidad','Botado (disparado)','Fusible abierto (quemado)','No pude revisarlo'] },
|
||
{ tipo:'radio', clave:'meanwell_led', txt:'3) LED verde de la fuente Mean Well', opciones:['Encendido','Apagado','No tiene / no se ve'] },
|
||
{ tipo:'medida', clave:'v_meanwell', txt:'4) Salida de la fuente Mean Well', esperado:'23 – 26 V', u:'V' },
|
||
{ tipo:'medida', clave:'v_gx16', txt:'5) En el conector GX16 del HBOX, pines 1-2', esperado:'23 – 26 V', u:'V',
|
||
aviso:'Esta es la medida que parte el diagnóstico en dos: <b>con 24 V aquí y el LED apagado, la falla es del HBOX</b>. Sin 24 V aquí, la falla es del gabinete o de la máquina.' },
|
||
{ tipo:'medida', clave:'v_ign', txt:'6) GX16 pin 3 (ignición), con la máquina encendida', esperado:'12 – 24 V con ignición', u:'V' },
|
||
{ tipo:'foto', clave:'f_interior_a', req:true, etiqueta:'interior', txt:'Interior del gabinete completo, antes de mover cables.' },
|
||
] },
|
||
|
||
{ titulo: '🟡 Lectura D — el HBOX vive, pero la máquina no le está dando corriente', si:v=>led(v).startsWith('D'),
|
||
sub:'Latido lento = el equipo está funcionando con su propia batería. Aguanta poco: por eso "dejó de reportar".',
|
||
items: [
|
||
{ tipo:'nota', txt:'La falla <b>no está en el HBOX</b>, está aguas arriba: breaker, fusible, fuente, cable o ignición.' },
|
||
{ tipo:'medida', clave:'v_maquina_d', txt:'Voltaje que entrega la máquina al gabinete', esperado:'12 V o 24 V', u:'V' },
|
||
{ tipo:'radio', clave:'breaker_d', txt:'Breaker / fusible del gabinete', opciones:['Cerrado y con continuidad','Botado (disparado)','Fusible abierto (quemado)','No pude revisarlo'] },
|
||
{ tipo:'medida', clave:'v_gx16_d', txt:'GX16 pines 1-2 (lo que llega al HBOX)', esperado:'23 – 26 V', u:'V' },
|
||
{ tipo:'texto', clave:'nota_d', txt:'¿Encontraste el punto donde se corta?', ph:'Ej.: hay 24 V a la salida de la fuente pero 0 V en el GX16 → cable o conector.' },
|
||
{ tipo:'foto', clave:'f_interior_d', req:true, etiqueta:'interior', txt:'Interior del gabinete y el punto donde se corta el voltaje.' },
|
||
] },
|
||
|
||
{ titulo: '🟠 Lectura E / F / G — el HBOX vive pero no tiene enlace', si:v=>/^[EFG]/.test(led(v)),
|
||
sub:'Parpadeo de 1 por segundo, doble destello o parpadeo rápido continuo = está buscando o perdiendo el enlace de datos.',
|
||
items: [
|
||
{ tipo:'nota', txt:'Las correcciones y los datos viajan por el <b>módem 4G</b>, no por el GPS. Revisa la cadena del celular.' },
|
||
{ tipo:'check', clave:'ant_lte', txt:'Las <b>dos antenas de celular</b> están atornilladas y firmes (no flojas, no rotas).' },
|
||
{ tipo:'check', clave:'ant_gnss', txt:'La antena de <b>GPS</b> está firme, con vista al cielo y el cable sin aplastar.' },
|
||
{ tipo:'radio', clave:'senal_tel', txt:'Con tu teléfono, parado junto a la máquina, ¿cuánta señal Telcel hay?',
|
||
opciones:['Llena','Media','Una rayita','Nada'] },
|
||
{ tipo:'texto', clave:'nota_efg', txt:'¿Algo cambió cerca? (estructura metálica nueva, contenedores apilados, el gabinete se movió)' },
|
||
{ tipo:'foto', clave:'f_ant_cerca', req:true, etiqueta:'antenas-detalle', txt:'Detalle de los conectores de antena, bien de cerca.' },
|
||
{ tipo:'nota', txt:'Si el parpadeo era <b>rápido y continuo</b> (patrón G), puede ser que la unidad se esté '
|
||
+ 'reiniciando sola una y otra vez. Eso <b>solo</b> se confirma con la captura por USB del paso 5: hazla sí o sí.' },
|
||
] },
|
||
|
||
{ titulo: '🔵 Lectura B — la unidad se ve sana', si:v=>led(v).startsWith('B'),
|
||
sub:'LED fijo = está trabajando, con corriente de la máquina y con enlace. Entonces el problema no está aquí.',
|
||
items: [
|
||
{ tipo:'nota', txt:'<b>No la desmontes.</b> Si el sistema no la ve pero el equipo está sano, lo más probable es que el '
|
||
+ 'problema esté en el servidor, en la SIM o en la plataforma. Haz la captura por USB del paso 5 y avisa a ingeniería.' },
|
||
{ tipo:'check', clave:'b_aviso', txt:'Entendido: la dejo instalada y reporto a ingeniería.' },
|
||
] },
|
||
|
||
{ titulo: '🟣 Lectura C — la unidad está dormida por batería agotada', si:v=>led(v).startsWith('C'),
|
||
sub:'Destello cortito cada 4 s = se durmió para no dañar la batería. Casi siempre es consecuencia, no causa: lleva tiempo sin corriente de la máquina.',
|
||
items: [
|
||
{ tipo:'medida', clave:'v_gx16_c', txt:'GX16 pines 1-2 (lo que llega al HBOX)', esperado:'23 – 26 V', u:'V' },
|
||
{ tipo:'medida', clave:'v_ign_c', txt:'GX16 pin 3 (ignición), máquina encendida', esperado:'12 – 24 V', u:'V' },
|
||
{ tipo:'foto', clave:'f_interior_c', req:true, etiqueta:'interior', txt:'Interior del gabinete.' },
|
||
] },
|
||
|
||
{ titulo: '⚪ No se ve el LED', si:v=>led(v).startsWith('H'),
|
||
items: [
|
||
{ tipo:'nota', txt:'Sin el LED no hay atajo: el paso 5 (captura por USB con la laptop) pasa de recomendado a <b>obligatorio</b>.' },
|
||
] },
|
||
|
||
{ titulo: '4 · Por dentro — temperatura, olor y batería',
|
||
sub:'Solo si ya abriste el gabinete y la máquina está apagada.',
|
||
items: [
|
||
{ tipo:'radio', clave:'abrir', req:true, txt:'¿Abriste el gabinete?', opciones:['Sí','No — no fue posible (explica al final)'] },
|
||
{ tipo:'radio', clave:'tacto', si:abrio, txt:'Con el <b>dorso</b> de la mano, la caja del HBOX se siente…',
|
||
opciones:['Fría o al tiempo','Tibia','Caliente pero se aguanta','Quema — no se puede tocar'] },
|
||
{ tipo:'medida', clave:'t_ir', si:abrio, txt:'Si traes termómetro infrarrojo: temperatura dentro del gabinete', esperado:'anota también la del aire afuera', u:'°C' },
|
||
{ tipo:'medida', clave:'t_amb', si:abrio, txt:'Temperatura ambiente a la sombra', u:'°C' },
|
||
{ tipo:'radio', clave:'olor', si:abrio, req:true, txt:'¿Huele a quemado o a plástico derretido?', opciones:['No','Sí, leve','Sí, fuerte'] },
|
||
{ tipo:'radio', clave:'agua', si:abrio, txt:'¿Hay agua, humedad o condensación adentro?', opciones:['No','Gotas o empañado','Encharcado'] },
|
||
{ tipo:'radio', clave:'bateria', si:abrio, req:true, txt:'La batería se ve…',
|
||
opciones:['Normal','Hinchada o abombada','Con manchas cafés o negras','Con líquido o fuga','Caliente','No tiene batería / no la vi'],
|
||
aviso:'Si marcaste hinchada, con fuga o caliente: <b>deja de desarmar</b>, sepárala de la electrónica, no la perfores y avisa hoy mismo.' },
|
||
{ tipo:'foto', clave:'f_bateria', etiqueta:'bateria',
|
||
si:v=>['Hinchada','Con manchas','Con líquido','Caliente'].some(t=>String(v.bateria||'').startsWith(t)),
|
||
req:true, txt:'Foto de la batería desde dos ángulos.' },
|
||
{ tipo:'foto', clave:'f_quemado', etiqueta:'dano', si:v=>String(v.olor||'').startsWith('Sí'),
|
||
req:true, txt:'Foto de lo que se ve quemado, oscurecido o derretido.' },
|
||
{ tipo:'check', clave:'wiggle', si:abrio, txt:'Prueba de meneo: moví <b>suavemente</b> cada conector y cable. Anoto abajo si alguno estaba flojo.' },
|
||
{ tipo:'texto', clave:'nota_interior', si:abrio, rows:'2', txt:'¿Qué encontraste flojo, quemado, mojado o fuera de lugar?' },
|
||
] },
|
||
|
||
{ titulo: '5 · Captura por USB — lo que la unidad tiene guardado',
|
||
sub:'Este paso vale más que todos los demás juntos: la unidad guarda su temperatura máxima, cuántas veces se reinició y por qué arrancó la última vez. Eso se pierde al cortarle la corriente.',
|
||
items: [
|
||
{ tipo:'nota', txt:'<b>Cómo:</b> conecta el cable USB del Blackpill a la laptop → abre el puerto serie nuevo a '
|
||
+ '<b>115200</b> baudios → <b>guarda a archivo</b> → déjalo correr <b>3 minutos</b> → después presiona RESET y '
|
||
+ 'graba también el arranque. Al final guarda el archivo y pega abajo las dos últimas líneas.' },
|
||
{ tipo:'radio', clave:'usb', req:true, txt:'¿Pudiste hacer la captura?',
|
||
opciones:['Sí, con archivo guardado','Sí, pero solo pude ver la pantalla','No traía laptop','No, la unidad no enciende','No, no hay acceso físico al USB'] },
|
||
{ tipo:'texto', clave:'linea_boot', si:conUsb, rows:'2',
|
||
txt:'Pega la línea que empieza con BOOT,', ph:'BOOT,1234,fw=3.0.3,reset=…' },
|
||
{ tipo:'texto', clave:'linea_tlm', si:conUsb, rows:'3',
|
||
txt:'Pega la última línea que empieza con TLM,', ph:'TLM,…,RUN,OK,4,14,…' },
|
||
{ tipo:'nota', si:conUsb,
|
||
txt:'Si no puedes copiar y pegar, no importa: llena a mano los cuatro datos de abajo, que son los que más nos dicen.' },
|
||
{ tipo:'medida', clave:'tlm_tmax', si:conUsb, txt:'Campo <code>tmax</code> (temperatura máxima que ha visto)', u:'°C' },
|
||
{ tipo:'medida', clave:'tlm_rec', si:conUsb, txt:'Campo <code>rec</code> (veces que se ha tenido que recuperar)' },
|
||
{ tipo:'medida', clave:'tlm_vbat', si:conUsb, txt:'Campo <code>vbat</code> (voltaje de la batería)', u:'V' },
|
||
{ tipo:'medida', clave:'tlm_veh', si:conUsb, txt:'Campo <code>veh</code> (1 = le llega corriente de la máquina, 0 = no)' },
|
||
{ tipo:'archivo', clave:'log_blackpill', etiqueta:'captura-blackpill',
|
||
si:v=>String(v.usb||'').startsWith('Sí, con archivo'), req:true,
|
||
txt:'Sube aquí el archivo de la captura del Blackpill',
|
||
ayuda:'El .txt o .log que guardó PuTTY / TeraTerm. Es el registro más valioso de la visita: '
|
||
+ 'súbelo aunque no hayas entendido lo que dice.' },
|
||
{ tipo:'foto', clave:'f_pantalla', etiqueta:'captura-usb', si:conUsb,
|
||
txt:'Foto de la pantalla de la laptop con las líneas visibles (respaldo por si falla el copiado).' },
|
||
] },
|
||
|
||
{ titulo: '6 · Reinicio controlado — hasta ahora sí puedes cortar la energía',
|
||
sub:'Solo cuando ya terminaste los pasos 2 al 5. Antes no.',
|
||
items: [
|
||
{ tipo:'check', clave:'evidencia_lista', req:true, txt:'Ya tomé las fotos y (si se pudo) la captura por USB. <b>La evidencia está completa.</b>' },
|
||
{ tipo:'radio', clave:'reinicio', txt:'Corté la energía 30 segundos, la volví a dar y esperé 2 minutos. ¿Qué pasó?',
|
||
opciones:['Revivió y quedó con LED fijo','Revivió pero volvió a fallar','Sigue igual','No lo intenté'] },
|
||
] },
|
||
|
||
{ titulo: '7 · Cómo la dejas y qué crees que tiene',
|
||
sub:'Elige lo que observaste, no lo que supones. "No está claro" es una respuesta válida y útil.',
|
||
items: [
|
||
{ tipo:'radio', clave:'clasificacion', req:true, guardaEn:'clasificacion', txt:'Clasificación de la falla',
|
||
opciones:[
|
||
'Sin corriente desde la máquina o el gabinete',
|
||
'El HBOX no enciende aunque le llega 24 V',
|
||
'Enlace 4G: no hay datos ni correcciones',
|
||
'Antena suelta, rota o faltante',
|
||
'Batería dañada (hinchada, caliente o con fuga)',
|
||
'Daño por calor (quemado, derretido, decolorado)',
|
||
'Agua adentro del gabinete',
|
||
'Daño mecánico o golpe',
|
||
'La unidad se ve sana — el problema parece ser del servidor',
|
||
'No está claro — se necesita banco' ] },
|
||
{ tipo:'radio', clave:'accion', req:true, guardaEn:'accion', txt:'¿Cómo queda la unidad al terminar tu visita?',
|
||
opciones:[
|
||
'Instalada y reportando',
|
||
'Instalada, pero sin resolver — pendiente de ingeniería',
|
||
'Desmontada y guardada en el taller, etiquetada',
|
||
'Desmontada y enviada a Querétaro',
|
||
'Reemplazada por otra unidad (anota cuál abajo)' ] },
|
||
{ tipo:'texto', clave:'unidad_repuesto', si:v=>String(v.accion||'').startsWith('Reemplazada'),
|
||
txt:'Número de serie de la unidad que quedó instalada' },
|
||
{ tipo:'texto', clave:'observaciones', rows:'4', req:true,
|
||
txt:'Cuenta con tus palabras qué viste y qué hiciste',
|
||
ph:'Escribe como se lo contarías a un compañero. Lo que aquí escribas es lo que va a leer ingeniería.' },
|
||
{ tipo:'foto', clave:'f_final', etiqueta:'final', txt:'Foto de cómo quedó al terminar (instalada o empacada).' },
|
||
] },
|
||
]
|
||
});
|
||
</script>
|
||
</body>
|
||
</html>
|