trabajando en el resumen de cubierta

This commit is contained in:
Jaime Jiménez
2025-08-31 22:06:50 +02:00
parent 6b883ffab2
commit ea1c485c80
9 changed files with 239 additions and 55 deletions

View File

@ -20,6 +20,7 @@ class imagen_presupuesto {
for (const [key, value] of Object.entries(this.extraData)) {
contenedor.attr(`data-${key}`, value);
}
contenedor.attr("data-summary-text", this.texto); // Para el resumen
const input = $('<input>', {
type: 'radio',

View File

@ -1,6 +1,7 @@
import imagen_presupuesto from "./imagen-presupuesto.js";
import ServiceOptionCard from "./service-option-card.js";
import TiradaCard from "./tirada-price-card.js";
import * as Summary from "./summary.js";
class PresupuestoCliente {
@ -122,22 +123,25 @@ class PresupuestoCliente {
// pestaña extras
this.divExtras = $('#div-extras');
// resumen
this.summaryTableInterior = $('#summary-interior');
}
init() {
const stored = sessionStorage.getItem("formData");
this.#initDatosGenerales();
this.#initCubierta();
if (stored) {
this.formData = JSON.parse(stored);
this.#loadDatosGeneralesData();
this.#loadCubiertaData();
}
this.#initInterior();
this.#initSeleccionTirada();
this.#initExtras();
@ -157,10 +161,6 @@ class PresupuestoCliente {
}
});
$('.custom-nav .nav-link').on('click', function (e) {
e.preventDefault();
e.stopImmediatePropagation(); // frena el handler de Bootstrap
});
}
#cacheFormData() {
@ -241,7 +241,7 @@ class PresupuestoCliente {
});
$('.paginas').on('change', () => {
this.paginas.val(parseInt(this.paginasNegro.val()) + parseInt(this.paginasColor.val()));
$('#paginas').val(parseInt(this.paginasNegro.val()) + parseInt(this.paginasColor.val()));
if (parseInt(this.paginasColor.val()) == 0) {
this.divPosicionPaginasColor.addClass('d-none');
this.posicionPaginasColor.val("");
@ -249,7 +249,8 @@ class PresupuestoCliente {
else {
this.divPosicionPaginasColor.removeClass('d-none');
}
this.paginas = parseInt(this.paginasNegro.val()) + parseInt(this.paginasColor.val());
$('#paginas').val(parseInt(this.paginasNegro.val()) + parseInt(this.paginasColor.val()));
Summary.updatePaginas();
this.#updateTipoEncuadernacion();
});
@ -262,11 +263,31 @@ class PresupuestoCliente {
this.divFormatoPersonalizado.addClass('d-none');
this.divFormato.removeClass('d-none');
}
Summary.updateFormato();
});
this.btn_next_datos_generales.on('click', () => {
this.#nextDatosGenerales();
});
// Eventos para el resumen
$(document).on('change', 'input[name="tipoEncuadernacion"]', (e) => {
if ($(e.target).is(':checked')) {
// Actualizar el resumen
Summary.updateEncuadernacion();
}
});
this.formato.on('change', () => {
Summary.updateFormato();
});
this.ancho.on('change', () => {
Summary.updateFormato();
});
this.alto.on('change', () => {
Summary.updateFormato();
});
}
#nextDatosGenerales() {
@ -382,11 +403,17 @@ class PresupuestoCliente {
this.posicionPaginasColor.val(this.formData.datosGenerales.posicionPaginasColor);
this.formatoPersonalizado.prop('checked', this.formData.datosGenerales.formatoPersonalizado);
if( this.formData.datosGenerales.formatoPersonalizado ) {
this.ancho.val(this.formData.datosGenerales.ancho);
this.alto.val(this.formData.datosGenerales.alto);
}
$('.tipo-libro').removeClass('selected');
$('.image-container#' + this.formData.datosGenerales.tipoEncuadernacion).trigger('click');
this.#updateTipoEncuadernacion();
this.formatoPersonalizado.prop('checked', this.formData.datosGenerales.formatoPersonalizado).trigger('change');
this.formatoPersonalizado.trigger('change');
$('.paginas').trigger('change');
@ -426,7 +453,7 @@ class PresupuestoCliente {
#updateTipoEncuadernacion() {
const paginas = parseInt(this.paginas.val());
const paginas = parseInt($('#paginas').val());
const selectedTipo = $('.tipo-libro.selected').attr('id');
$('.tipo-libro').removeClass('selected');
@ -466,6 +493,7 @@ class PresupuestoCliente {
if ($('.tipo-libro.selected').length > 0) {
this.formData.datosGenerales.tipoEncuadernacion = $('.tipo-libro.selected').attr('id');
Summary.updateEncuadernacion();
}
else {
this.formData.datosGenerales.tipoEncuadernacion = '';
@ -492,6 +520,7 @@ class PresupuestoCliente {
$(document).on('click', '.opcion-color', (e) => {
const data = this.#getPresupuestoData();
Summary.updateTipoImpresion();
this.divPapelInterior.empty();
this.divGramajeInterior.empty();
@ -528,6 +557,9 @@ class PresupuestoCliente {
});
this.#addGramajesInterior(gramajes);
Summary.updatePapelInterior();
Summary.updateGramajeInterior();
},
error: (xhr, status, error) => {
@ -540,6 +572,8 @@ class PresupuestoCliente {
const data = this.#getPresupuestoData();
Summary.updatePapelInterior();
this.divGramajeInterior.removeClass('animate-fadeInUpBounce');
this.divGramajeInterior.empty();
@ -562,6 +596,7 @@ class PresupuestoCliente {
const dataInterior = this.#getInteriorData();
this.#updateInteriorData(dataInterior);
this.#cacheFormData();
Summary.updateGramajeInterior();
}).fail((xhr, status, error) => {
console.error("Error al obtener los gramajes de interior: ", xhr.responseText);
@ -589,6 +624,8 @@ class PresupuestoCliente {
return textoActual.replace(/\d+/, maxSolapas);
});
Summary.updateGramajeInterior();
}).fail((xhr, status, error) => {
console.error("Error al obtener los gramajes de interior: ", xhr.responseText);
});
@ -605,7 +642,7 @@ class PresupuestoCliente {
data: data,
success: (data) => {
if (id === 'btn-prev-interior') {
this.summaryTableInterior.addClass('d-none');
this.#changeTab('pills-general-data');
} else {
const maxSolapas = data.solapas ?? 120;
@ -667,6 +704,8 @@ class PresupuestoCliente {
#loadInteriorData(data) {
this.summaryTableInterior.removeClass('d-none');
this.divOpcionesColor.empty();
this.divPapelInterior.empty();
this.divGramajeInterior.empty();
@ -702,6 +741,10 @@ class PresupuestoCliente {
const dataInterior = this.#getInteriorData();
this.#updateInteriorData(dataInterior);
this.#cacheFormData();
Summary.updateTipoImpresion();
Summary.updatePapelInterior();
Summary.updateGramajeInterior();
}
#addGramajesInterior(gramajes) {

View File

@ -0,0 +1,70 @@
export function updateEncuadernacion() {
const $selected = $('.tipo-libro.selected');
if ($selected.length > 0) {
const resumen = $selected.data('summary-text') || $selected.attr('id');
$('#summary-encuadernacion').text(resumen);
}
}
export function updateFormato(){
if($('#formato-personalizado').is(':checked')) {
$('#summary-formato').text($('#ancho').val() + 'x' + $('#alto').val() + ' mm');
} else {
const $selected = $('#formato option:selected');
const resumen = $selected.data('summary-text') || $selected.val();
$('#summary-formato').text(resumen + ' mm');
}
}
export function updatePaginas() {
const paginas = $('#paginas').val();
$('#summary-paginas').text(paginas );
const paginasColor = $('#paginas-color').val();
$('#summary-paginas-color').text(paginasColor );
const paginasNegro = $('#paginas-negro').val();
$('#summary-paginas-negro').text(paginasNegro );
}
export function updateTipoImpresion() {
const $selected = $('.opcion-color.selected');
if ($selected.length > 0) {
const resumen = $selected.data('summary-text') || $selected.attr('id');
$('#summary-tipo-interior').text(resumen);
}
}
export function updatePapelInterior() {
const $selected = $('.papel-interior.selected');
if ($selected.length > 0) {
const resumen = $selected.data('summary-text') || $selected.val();
$('#summary-papel-interior').text(resumen);
}
}
export function updateGramajeInterior() {
const gramaje = $('input[name="gramaje-interior"]:checked');
if(gramaje.length > 0) {
$('#summary-gramaje-interior').text(gramaje.data('gramaje'));
}
}
export function updateTapaCubierta(){
const $selected = $('.tipo-cubierta.selected');
if ($selected.length > 0) {
const resumen = $selected.data('summary-text') || $selected.attr('id');
$('#summary-tapa-cubierta').text(resumen);
}
if($selected.attr('id') === 'tapaBlanda') {
$('#summary-cubierta').removeClass('d-none');
$('#summary-cubierta .table-responsive').removeClass('d-none');
}
}