This commit is contained in:
María
2025-10-23 14:59:38 +02:00
committed by María
parent 04fcc47a0d
commit ba4e01e10c
9 changed files with 106 additions and 2225 deletions

View File

@@ -12,7 +12,7 @@
:placeholder="placeholder[langcode]" :placeholder="placeholder[langcode]"
/> />
</div> </div>
<p v-if="error" class="mt-2 text-sm text-error dark:text-error">{{ error }}</p> <p v-if="error" class="mt-2 text-sm text-error dark:text-error">{{ error[langcode] }}</p>
</div> </div>
</template> </template>
@@ -44,7 +44,9 @@ export default {
updateEmail(email) { updateEmail(email) {
const pattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; const pattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
if (pattern.test(String(email).toLowerCase())) { if (pattern.test(String(email).toLowerCase())) {
this.$emit('input-value', email); //this.$emit('input-value', email);
this.$emit('input-value', { email: email })
} else { } else {
this.error = { this.error = {
es: 'Por favor, introduce una dirección de correo electrónico válida.', es: 'Por favor, introduce una dirección de correo electrónico válida.',

View File

@@ -30,6 +30,7 @@ import { mapGetters } from 'vuex';
export default { export default {
props: { props: {
id: { type: String, required: true },
type: { type: String, default: 'radio' }, type: { type: String, default: 'radio' },
label: { type: Object, default: () => ({}) }, label: { type: Object, default: () => ({}) },
options: { type: Array, default: () => [] }, options: { type: Array, default: () => [] },

View File

@@ -20,6 +20,10 @@
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
export default { export default {
props: { props: {
id: {
type: String,
required: true
},
label: { label: {
type: Object, type: Object,
default: () => ({}) default: () => ({})
@@ -43,7 +47,7 @@ export default {
}, },
methods: { methods: {
updateValue(event) { updateValue(event) {
this.$emit('input-value', event.target.value) this.$emit('input-value', { [this.id]: event.target.value });
} }
}, },
} }

View File

@@ -1,5 +1,6 @@
<template> <template>
<div id="pdf-content" class="space-y-4 bg-surface text-accent"> <div id="pdf-content" class="space-y-4 bg-surface text-accent">
<img src="../public/logo-bravio.png" alt="logo-bravio-blanco" class="h-12 md:h-14 object-cover hidden" />
<h2 class="text-3xl font-semibold text-center">{{ data.title[langcode] }}</h2> <h2 class="text-3xl font-semibold text-center">{{ data.title[langcode] }}</h2>
<p class="text-center text-muted">{{ data.subtitle[langcode] }}</p> <p class="text-center text-muted">{{ data.subtitle[langcode] }}</p>
<!-- <div class="text-center"> <!-- <div class="text-center">
@@ -114,44 +115,96 @@ export default {
}, },
reloadPage() { reloadPage() {
if (import.meta.client) { if (import.meta.client) {
localStorage.clear(); // Limpiar localStorage al cerrar el asistente
window.location.reload(); window.location.reload();
} }
}, },
async downloadPDF() { async downloadPDF() {
if (import.meta.client) { if (import.meta.client) {
const { jsPDF } = await import("jspdf") const { jsPDF } = await import("jspdf")
const html2canvas = (await import("html2canvas")).default
const content = document.getElementById("pdf-content") const content = document.getElementById("pdf-content")
if (!content) return
// // Parchear colores 'oklch' -> hex (html2canvas workaround) //Parchear colores 'oklch' -> hex (html2canvas workaround)
// content.querySelectorAll("*").forEach(el => { content.querySelectorAll("*").forEach(el => {
// const style = getComputedStyle(el) const style = getComputedStyle(el)
// if (style.color.includes("oklch")) el.style.color = "#DAB2F4" if (style.color.includes("oklch")) el.style.color = "#DAB2F4"
// if (style.backgroundColor.includes("oklch")) el.style.backgroundColor = "#eef2ff" if (style.backgroundColor.includes("oklch")) el.style.backgroundColor = "#FFFFFF"
// if (style.borderColor.includes("oklch")) el.style.borderColor = "#DAB2F4" if (style.borderColor.includes("oklch")) el.style.borderColor = "#DAB2F4"
// }) if (style.textDecorationColor.includes("oklch")) el.style.textDecorationColor = "#4F2773"
})
const canvas = await html2canvas(content, { scale: 2, backgroundColor: "#ffffff" }) const pdf = new jsPDF({
const imgData = canvas.toDataURL("image/png") unit: "pt",
format: "a4",
putOnlyUsedFonts: true
})
const pdf = new jsPDF("p", "mm", "a4") await pdf.html(content, {
const pageWidth = pdf.internal.pageSize.getWidth() callback: (pdf) => {
const pageHeight = pdf.internal.pageSize.getHeight() pdf.save("recomendaciones-bravioo.pdf")
},
// Definir márgenes (ejemplo: 20mm) x: 20,
const margin = 20 y: 20,
const pdfWidth = pageWidth - 2 * margin autoPaging: "text", //divide en varias páginas si hace falta
const pdfHeight = (canvas.height * pdfWidth) / canvas.width html2canvas: {
pdf.setFontSize(12) scale: 1,
useCORS: true
// Si el contenido es más alto que la página, ajustamos para que se pueda dividir en varias páginas }
pdf.addImage(imgData, "PNG", 20, 20, pdfWidth, pdfHeight) })
pdf.save("recomendaciones.pdf")
} }
} }
// async downloadPDF() {
// if (import.meta.client) {
// const { jsPDF } = await import("jspdf")
// const content = document.getElementById("pdf-content")
// if (!content) return
// // Clonamos el contenido para no alterar el DOM original
// const cloned = content // Otra opcion clonación nodo con: const cloned = content.cloneNode(true)
// // Aplicamos estilos globales antes de pasarlo a jsPDF
// cloned.querySelectorAll("*").forEach(el => {
// el.style.color = "#4F2773" // texto violeta
// el.style.backgroundColor = "#FFFFFF" // fondo blanco
// el.style.fontSize = "12px" // tamaño fuente
// el.style.lineHeight = "1.5"
// el.style.borderColor = "#4F2773"
// el.style.textDecorationColor = "#4F2773"
// })
// // También aseguramos que el contenedor tenga fondo blanco
// cloned.style.backgroundColor = "#FFFFFF"
// cloned.style.color = "#4F2773"
// cloned.style.fontSize = "12px"
// cloned.style.lineHeight = "1.5"
// // Crear PDF
// const pdf = new jsPDF({
// unit: "pt",
// format: "a4",
// putOnlyUsedFonts: true
// })
// // Renderizar HTML al PDF
// await pdf.html(cloned, {
// callback: (pdf) => {
// pdf.save("recomendaciones-bravioo.pdf")
// },
// x: 20,
// y: 20,
// autoPaging: "text", // divide si hace falta
// html2canvas: {
// scale: 1,
// useCORS: true,
// backgroundColor: "#FFFFFF" // asegura fondo blanco en el render
// }
// })
// }
// }
} }
} }
</script> </script>

View File

@@ -37,6 +37,7 @@
<component <component
:is="resolveComponent(input.type)" :is="resolveComponent(input.type)"
:id="data.id"
:key="data.id + '-' + input.label[langcode] + '-' + idx" :key="data.id + '-' + input.label[langcode] + '-' + idx"
v-bind="input" v-bind="input"
:required="input.required || false" :required="input.required || false"
@@ -124,6 +125,14 @@ export default {
}, },
}, },
watch: {
values(newVal) {
//console.log("Valores actuales en SliceQuestion →", newVal)
// comprobar si es válido
//console.log("isValid desde watch →", this.isValid)
}
},
methods: { methods: {
resolveComponent(type) { resolveComponent(type) {
switch (type) { switch (type) {

File diff suppressed because it is too large Load Diff

View File

@@ -129,6 +129,7 @@ export const surveyData = {
}, },
], ],
questionTotalPoints: 1, questionTotalPoints: 1,
//next: "end"
next: { "Honduras": "P1-F2-1", "Bolivia": "P1-F2-1", "Argentina": "P1-F2-1", "Chile": "P1-F2-1", "Otro": "P1-F2-2" } next: { "Honduras": "P1-F2-1", "Bolivia": "P1-F2-1", "Argentina": "P1-F2-1", "Chile": "P1-F2-1", "Otro": "P1-F2-2" }
}, },
// Feedbacks P1-F2-1 y P1-F2-2 // Feedbacks P1-F2-1 y P1-F2-2

View File

@@ -1,655 +0,0 @@
export const surveyData = {
title: "Formulario Demo",
slices: [
{
id: "welcome",
type: "welcome",
section: {
title: "Introducción",
description: ""
},
title: "Bienvenida a Iguales",
subtitle: "Cuestionario de evaluación",
button: "Comenzar",
next: "B0-01"
},
{
id: "B0-01",
type: "question",
section: {
id: "B0",
title: "1. Informativa",
description: "",
},
question: {
title: "a) Nº de trabajadores",
description: "Por favor, selecciona una opción",
recommendation: ""
},
input: {
type: "radio",
label: "Sector",
options: [
{ value: "<50", label: "Inferior a 50", score: 0},
{ value: ">50", label: "Superior a 50", score: 0},
],
},
questionTotalPoints: 1,
next: "B0-02"
},
{
id: "B0-02",
type: "question",
section: {
id: "B0",
title: "1. Informativa",
description: "",
},
question: {
title: "b) ¿Tiene plan de igualdad?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
{ value: "nsnc", label: "No sabe / No contesta", score: 0},
],
},
questionTotalPoints: 1,
next: "B1-01"
},
{
id: "B1-01",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "a) Cual es la proporción entre Hombres/Mujeres de toda la plantilla con vinculación laboral (no perfiles voluntarios)",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: ">60", label: "Más del 60% son mujeres", score: 0},
{ value: "<60", label: "Menos del 60% son mujeres", score: 0},
{ value: "60/40", label: "60% Hombres / 40% Mujeres", score: 1},
],
},
questionTotalPoints: 1,
next: "B1-02"
},
{
id: "B1-02",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "b) A la hora de incorporar nuevos perfiles en la entidad, ¿existe un proceso de selección y reclutamiento basados en principios de transparencia e igualdad, público y difundido interna y externamente con perspectiva de género?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
{ value: "nsnc", label: "No sabe / No contesta", score: 0},
],
},
questionTotalPoints: 1,
next: "B1-03"
},
{
id: "B1-03",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "c) ¿Existe algún puesto/ocupación en que solo hayan contratado hombres?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
{ value: "nsnc", label: "No sabe / No contesta", score: 0},
],
},
questionTotalPoints: 1,
next: "B1-04"
},
{
id: "B1-04",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "d) ¿Existe algún puesto/ocupación en que solo hayan contratado mujeres?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
{ value: "nsnc", label: "No sabe / No contesta", score: 0},
],
},
questionTotalPoints: 1,
next: "B1-05"
},
{
id: "B1-05",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "e) ¿Cuál es la retribución media salarial que predomina en vuestra entidad?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "igual", label: "La retribución media salarial mensual de los hombres es igual que la retribución media mensual de las mujeres", score: 1},
{ value: "menor-hombres", label: "La retribución media salarial mensual de los hombres es menor", score: 0},
{ value: "menor-mujeres", label: "La retribución media salarial mensual de las mujeres es menor", score: 0},
],
},
questionTotalPoints: 1,
next: "B1-06"
},
{
id: "B1-06",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "f) ¿Cuál es la proporción de Hombres/Mujeres en cargos/puestos en mandos intermedios?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: ">60-H", label: "Los mando intermedios están mayoritariamente ocupados por hombres (+ del 60%)", score: 0},
{ value: ">60-M", label: "Los mando intermedios están mayoritariamente ocupados por mujeres (+ del 60%)", score: 0},
{ value: "50/50", label: "Los mando intermedios están ocupados de manera igualitaria (50%-50%)", score: 1},
],
},
questionTotalPoints: 1,
next: "B1-07"
},
{
id: "B1-07",
type: "question",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: "",
},
question: {
title: "g) ¿Cuál es la proporción de Hombres/Mujeres en cargos directivos?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: ">60-H", label: "Los mando intermedios están mayoritariamente ocupados por hombres (+ del 60%)", score: 0},
{ value: ">60-M", label: "Los mando intermedios están mayoritariamente ocupados por mujeres (+ del 60%)", score: 0},
{ value: "50/50", label: "Los mando intermedios están ocupados de manera igualitaria (50%-50%)", score: 1},
],
},
questionTotalPoints: 1,
next: "F1-B1"
},
{
id: "F1-B1",
type: "feedback",
section: {
id: "B1",
title: "2. Brecha de género y salarial",
description: ""
},
title: "Resultados del bloque",
subtitle: "",
button: "Entendido · Continuar",
next: "B2-01"
},
{
id: "B2-01",
type: "question",
section: {
id: "B2",
title: "3. Formación y promoción",
description: "",
},
question: {
title: "a) El plan o acciones de formación se han comunicado de forma abierta con opciones flexibles de horario y perspectiva de género",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B2-02"
},
{
id: "B2-02",
type: "question",
section: {
id: "B2",
title: "3. Formación y promoción",
description: "",
},
question: {
title: "b) Se han realizado acciones formativas en habilidades de liderazgo o específicas de dirección de forma transversal para incentivar la promoción igualitaria?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B2-03"
},
{
id: "B2-03",
type: "question",
section: {
id: "B2",
title: "3. Formación y promoción",
description: "",
},
question: {
title: "c) ¿Existen alternativas flexibles de formación (online/presencial) transversal para toda la plantilla?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B2-04"
},
{
id: "B2-04",
type: "question",
section: {
id: "B2",
title: "3. Formación y promoción",
description: "",
},
question: {
title: "d) ¿Existen procesos de evaluación por objetivos y/o méritos formulados transversal e igualitariamente con perspectiva de género?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B2-05"
},
{
id: "B2-05",
type: "question",
section: {
id: "B2",
title: "3. Formación y promoción",
description: "",
},
question: {
title: "e) ¿Existen procesos de evaluación por objetivos y/o méritos formulados transversal e igualitariamente con perspectiva de género?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "F1-B2"
},
{
id: "F1-B2",
type: "feedback",
section: {
id: "B2",
title: "3. Formación y promoción",
description: ""
},
title: "Resultados del bloque",
subtitle: "",
button: "Entendido · Continuar",
next: "B3-01"
},
{
id: "B3-01",
type: "question",
section: {
id: "B301",
title: "4.1. Prevención y conciliación",
description: "",
},
question: {
title: "a) ¿Existen procesos para la gestión de teletrabajo/herramientas adecuadas (software/hardware) provistos por la organización?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "F1-B3-1"
},
{
id: "F1-B3-1",
type: "feedback",
section: {
id: "B301",
title: "4. Prevención y conciliación",
description: ""
},
title: "Resultados del subbloque",
subtitle: "",
button: "Entendido · Continuar",
next: "B3-02"
},
{
id: "B3-02",
type: "question",
section: {
id: "B302",
title: "4.2. Prevención y conciliación",
description: "",
},
question: {
title: "b) Existe la posibilidad de trabajo voluntario y/o flexibilidad laboral bajo políticas igualitarias",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B3-03"
},
{
id: "B3-03",
type: "question",
section: {
id: "B302",
title: "4.2. Prevención y conciliación",
description: "",
},
question: {
title: "c) ¿Existe un programa/politicas de conocimiento público sobre plan de conciliación laboral?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B3-04"
},
{
id: "B3-04",
type: "question",
section: {
id: "B302",
title: "4.2. Prevención y conciliación",
description: "",
},
question: {
title: "d) ¿Cuentan con beneficios/servicios sociales? (guarderías/beneficios/descuentos)",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B3-05"
},
{
id: "B3-05",
type: "question",
section: {
id: "B302",
title: "4.2. Prevención y conciliación",
description: "",
},
question: {
title: "e) ¿Se realizan campañas de sensibilización/divulgación sobre la corresponsabilidad de tareas domésticas/conciliación , cuidado de personas dependientes?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "F1-B3-2"
},
{
id: "F1-B3-2",
type: "feedback",
section: {
id: "B302",
title: "4.2. Prevención y conciliación",
description: ""
},
title: "Resultados del subbloque",
subtitle: "",
button: "Entendido · Continuar",
next: "B3-06"
},
{
id: "B3-06",
type: "question",
section: {
id: "B303",
title: "4.3. Prevención y conciliación",
description: "",
},
question: {
title: "f) Se ha realizado alguna campaña o acción de divulgación de información sobre los derechos de las mujeres victimas de violencia de género? (charlas en colaboración con organizaciones expertas en violencia de género)",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B3-07"
},
{
id: "B3-07",
type: "question",
section: {
id: "B303",
title: "4.3. Prevención y conciliación",
description: "",
},
question: {
title: "g) Acerca del protocolo de acoso (sexual o por sexo) y procedimientos específicos para la prevención del acoso, conocimiento de los procesos, causa de las denuncias y reclamaciones. Responde por favor las siguientes preguntas; ¿Existe código ético de conducta y/o protocolo de acoso con la descripción de procedimientos para lam prevención y actuación en caso de acoso (sexual o por sexo)?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B3-08"
},
{
id: "B3-08",
type: "question",
section: {
id: "B303",
title: "4.3. Prevención y conciliación",
description: "",
},
question: {
title: "h) ¿Existen formularios o plantillas de acceso público de denuncia por acoso sexual o por sexo?",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "B3-09"
},
{
id: "B3-09",
type: "question",
section: {
id: "B303",
title: "4.3. Prevención y conciliación",
description: "",
},
question: {
title: "i) El plan de PRL o normas de prevención laboral ¿Incluye(n) perspectiva de género para prevenir acoso sexual o por sexo? (disposición de los puestos de trabajo, acceso a servicios, herramientas y equipos de trabajo)",
description: "",
recommendation: ""
},
input: {
type: "radio",
label: "",
options: [
{ value: "si", label: "Si", score: 1},
{ value: "no", label: "No", score: 0},
],
},
questionTotalPoints: 1,
next: "F1-B3-3"
},
{
id: "F1-B3-3",
type: "feedback",
section: {
id: "B303",
title: "4. Prevención y conciliación",
description: ""
},
title: "Resultados del subbloque",
subtitle: "",
button: "Entendido · Continuar",
next: "end"
},
{
id: "end",
type: "end",
title: "¡Aquí están los resultados!",
subtitle: "Este es el diagnóstico de tu entidad en igualdad de género. Puedes leer cada bloque o descargar el informe completo en PDF. Para interpretar los resultados y planificar próximos pasos, sigue el curso IGUALES del Aula Virtual.",
}
],
rules: {
B1: (score) => score >= 6 ? "Vuestra entidad está comprometida con la eliminación de las brechas de género y salariales en base a género, y está haciendo las cosas bien. Ha conseguido acercarse a la proporción igualitaria en la plantilla y que las remuneraciones se hayan equiparado o estén cercanas a ello." : "Os animamos a continuar trabajando para la eliminación de las brechas de género y a conseguir la igualdad tanto en la proporción de hombres y mujeres en plantilla como la equiparación salarial. Queda camino pero conseguir una entidad igualitaria impacta positivamente en la sociedad.",
B2: (score) => score >= 3 ? "La formación y la promoción interna de vuestra entidad tiene perspectiva de género y muestra un compromiso con la igualdad de oportunidades para toda la plantilla. Os animamos a continuar así y (si no tienen Plan Igualdad) ha plasmar todas vuestras políticas en un plan de igualdad- (si tienen Plan de Igualdad) a comunicar vuestras políticas igualitarias a toda vuestra cadena de valor, colaboradores y entidades afines." : "Es importante que las entidades apliquen la perspectiva de género en materia formativa y de promoción de la plantilla. El compromiso de la entidad en este área reportará grandes beneficios a medio y largo plazo, teniendo una plantilla que integra la igualdad desde el conocimiento y naturaliza unos patrones sostenibles. No hay tiempo que perder, trabajemos en ello!",
B301: (score) => score >= 1 ? "La gestión del teletrabajo es una potente herramienta para la conciliación por lo que, el hecho de dotar de herramientas a la entidad ya es un simbolo del compromiso con la igualdad de oportunidades, enhorabuena." : "Es interesante incorporar medidas en las que el teletrabajo ayude a la conciliación y a la igualdad, no te quedes atrás y explora esa vía para fortalecer tu organización y la igualdad",
B302: (score) => score >= 2 ? "La conciliación y el poner los cuidados en el centro hacen de una entidad un lugar más lugar más amable e igualitario y no solo a nivel personal, sino también a nivel colectivo reporta grandes beneficios como el aumento de productividad, reducción del absentismo, fijación del talento y sostenibilidad de la plantilla. Un reconocimiento al buen hacer de la entidad integrando estas medidas de igualdad." : "La incorporación de medidas de conciliación pueden reportar grandes beneficios a vuestra entidad por lo que os impulsamos a incluir pequeños, pero firmes, pasos en el cuidado de la plantilla y la conciliación para tener un entorno laboral positivo y que el bienestar del equipo repercuta en un espacio más productivo y colaborativo. ",
B303: (score) => score >= 2 ? "Los protocolos de acoso y todas las medidas para frenar actitudes discriminatorias por razón de sexo o de cualquier otra índole que habéis incorporado en la entidad son imprescindibles para hacer un entorno más igualitario y sin duda alguna os han ayudado a crear un ambiente de trabajo sano e igualitario impactando positivamente en todos los aspectos de la organización. Esto os conviente en referentes de igualdad en vuestro sector y esperamos permee a toda vuestra cadena de valor!" : "Es imprescindible que la organización haga un esfuerzo y trabaje en la igualdad creando e implantando medidas que eviten el acoso y la discriminación por razón de sexo o de cualquier otra índole. Además tomar medidas y formar al equipo para dar visibilidad a la violencia de género ayuda no solo a un entorno de trabajo consciente y saludable sino también a una sociedad igualitaria y justa. Todos y todas somos necesarios para lograr la igualdad real."
}
}

View File

@@ -4,6 +4,7 @@
<transition name="fade" mode="out-in"> <transition name="fade" mode="out-in">
<component <component
:is="currentSliceComponent" :is="currentSliceComponent"
:id="currentSliceId"
:key="currentSliceId" :key="currentSliceId"
:data="currentSlice" :data="currentSlice"
:current-index="currentQuestionIndex" :current-index="currentQuestionIndex"
@@ -83,12 +84,12 @@ export default {
}, },
mounted() { mounted() {
// Al montar, escuchar el evento de recarga/cierre //Al montar, escuchar el evento de recarga/cierre
window.addEventListener("beforeunload", this.clearStorageOnReload) window.addEventListener("beforeunload", this.clearStorageOnReload)
}, },
beforeUnmount() { beforeUnmount() {
// Limpiar el listener al desmontar el componente //Limpiar el listener al desmontar el componente
window.removeEventListener("beforeunload", this.clearStorageOnReload) window.removeEventListener("beforeunload", this.clearStorageOnReload)
}, },
@@ -110,7 +111,7 @@ export default {
sectionId: this.currentSlice.section.id, sectionId: this.currentSlice.section.id,
sectionTitle: this.currentSlice.section.title, sectionTitle: this.currentSlice.section.title,
sliceId: this.currentSlice.id, sliceId: this.currentSlice.id,
value: event.value, value: event.value || event,
score: event.score, score: event.score,
questionTotalPoints: this.currentSlice.questionTotalPoints || 0, questionTotalPoints: this.currentSlice.questionTotalPoints || 0,
} }
@@ -169,7 +170,7 @@ export default {
saveAnswer(payload) { saveAnswer(payload) {
// payload: { id: "question1", value: "Si" } // payload: { id: "question1", value: "Si" }
////console.log("Guardando respuesta:", payload) //console.log("Guardando respuesta - Payload:", payload)
let el; let el;
if (typeof payload !== "object") { if (typeof payload !== "object") {
el = { el = {
@@ -180,7 +181,7 @@ export default {
} else { } else {
el = payload el = payload
} }
////console.log("Guardando respuesta:", el) //console.log("Guardando respuesta - Final:", el)
this.answers.push(el) this.answers.push(el)
localStorage.setItem("answers", JSON.stringify(this.answers)) localStorage.setItem("answers", JSON.stringify(this.answers))
}, },
@@ -212,9 +213,7 @@ export default {
} }
}, },
calculateFinalScore() { calculateFinalScore() {
const results = JSON.parse(localStorage.getItem('results')) const results = JSON.parse(localStorage.getItem('results'))
if (results && results.length > 0) { if (results && results.length > 0) {