// Variables para almacenar las opciones de Select2 let nivel1Options = []; let nivel2Options = []; let nivel3Options = []; let nivel4Options = []; let nivel5Options = []; let nivel6Options = []; let nivel7Options = []; let tcuentaOptions = []; let naturalezaOptions = []; let csatOptions = []; let creportOptions = []; // Bandera para marcar si los datos ya se cargaron let selectDataLoaded = false; // Función para cargar los datos para Select2 en paralelo async function loadSelect2Data() { try { const [ nivel1Data, nivel2Data, nivel3Data, nivel4Data, nivel5Data, nivel6Data, nivel7Data, tcuentaData, naturalezaData, csatData, creportData ] = await Promise.all([ nivel1(), // Carga los datos usando la función nivel1() nivel2(), // Carga los datos usando la función nivel2() nivel3(), nivel4(), nivel5(), nivel6(), nivel7(), tcuenta(), naturaleza(), cuentaSat(), catReports() ]); // Asignar los resultados a las variables de opciones nivel1Options = nivel1Data; nivel2Options = nivel2Data; nivel3Options = nivel3Data; nivel4Options = nivel4Data; nivel5Options = nivel5Data; nivel6Options = nivel6Data; nivel7Options = nivel7Data; tcuentaOptions = tcuentaData; naturalezaOptions = naturalezaData; csatOptions = csatData; creportOptions = creportData; selectDataLoaded = true; // Marca que los datos se han cargado console.log('Datos para Select2 cargados correctamente'); } catch (error) { console.error('Error al cargar los datos para Select2:', error); } } // Función para inicializar Select2 con las opciones cargadas function initializeSelect2(selector, getOptions) { $(selector).select2({ data: getOptions(), placeholder: 'Seleccione una opción', width: '100%', allowClear: true // Permite que el usuario elimine la selección para volver a ver el placeholder }).val('').trigger('change'); } function initializeSelect2Up(selector, optionsFunction, selectedValue) { $(selector).select2({ data: optionsFunction(), placeholder: 'Selecciona una opción', allowClear: true }); if (selectedValue) { $(selector).val(selectedValue).trigger('change'); } } // Cargar los datos para Select2 cuando se carga el archivo loadSelect2Data();