{"version":3,"sources":["webpack:///./src/components/exportExcel/exportExcel.vue","webpack:///src/components/exportExcel/exportExcel.vue","webpack:///./src/components/exportExcel/exportExcel.vue?20e3","webpack:///./src/components/exportExcel/exportExcel.vue?e0f0","webpack:///./src/components/exportExcel/exportExcel.vue?e457","webpack:///./src/components/cardTable/CardTable.vue","webpack:///src/components/cardTable/CardTable.vue","webpack:///./src/components/cardTable/CardTable.vue?d1a9","webpack:///./src/components/cardTable/CardTable.vue?87e8","webpack:///./src/views/Helexium/EntregasApp/PuntosEntregaYRemisiones.vue","webpack:///src/views/Helexium/EntregasApp/PuntosEntregaYRemisiones.vue","webpack:///./src/views/Helexium/EntregasApp/PuntosEntregaYRemisiones.vue?15b8","webpack:///./src/views/Helexium/EntregasApp/PuntosEntregaYRemisiones.vue?cc43","webpack:///./src/components/exportExcel/exportExcel.vue?f016","webpack:///./src/views/Helexium/EntregasApp/PuntosEntregaYRemisiones.vue?bb55","webpack:///./src/components/cardTable/CardTable.vue?a98d"],"names":["render","_vm","this","_c","_self","scopedSlots","_u","key","fn","_v","proxy","attrs","on","$event","active","staticClass","isAnySelected","generateReport","model","value","callback","$$v","expression","fileName","items","_l","headers","item","index","valoresSeleccionados","_s","header","staticRenderFns","name","props","type","Array","required","data","computed","length","methods","keys","map","v","$store","dispatch","path","e","$message","error","watch","newVal","component","staticStyle","card","_card$sizeValue","style","boxShadow","activeCard","color","showCursorGlow","hideCursorGlow","event","handleMouseMove","toggleActive","showGlow","left","cursorX","top","cursorY","glowStyle","opacity","_e","class","width","height","backgroundColor","computeBorderRadius","tipo","iconName","computeAnimateIcon","animated","animatedState","shouldAnimateTitle","title","fontSize","sizeValue","evaluateValue","default","onActivate","onDeactivate","animationFrameId","beat","beatFade","bounce","fade","flip","shake","spin","spinReverse","spinPulse","tipoIcon","circle","squared","shield","water","mounted","onResize","window","addEventListener","beforeDestroy","removeEventListener","forEach","_","checkTitleLength","$nextTick","titleElement","$el","querySelectorAll","scrollWidth","clientWidth","$set","rect","currentTarget","getBoundingClientRect","targetX","clientX","targetY","clientY","cancelAnimationFrame","animate","startX","startY","dx","dy","Math","abs","requestAnimationFrame","loading","directives","rawName","filtros","fechaInicio","domProps","target","composing","fechaFin","busqueda","aplicarBusqueda","limpiarBusqueda","buscarPuntosEntrega","mostrarFiltrosAvanzados","estadoPuntoEntrega","$$selectedVal","prototype","filter","call","options","o","selected","val","_value","multiple","aplicarFiltrosAvanzados","estadoRuta","centroCosto","cliente","dataCards","listaPuntosEntrega","exportarRemisiones","paginacion","registrosPorPagina","cambiarRegistrosPorPagina","totalFiltrados","listaPuntosEntregaFiltrados","id","formatDateTime","fechaHoraInicio","fechaHoraEntrega","fechaHoraFin","lugarEntrega","nombreRuta","descripcionRuta","numeroDocumentoEntrega","nombreCliente","direccionPuntoEntrega","codigoSN","nombrePersonaCliente","contactoPersonaCliente","placa","nombreCompleto","getBadgeClass","paginaActual","totalPaginas","disabled","preventDefault","cambiarPagina","paginasVisibles","pagina","components","CardTable","exportExcel","persona","dataTableInstance","getFormattedDate","Date","from","i","aplicarFiltros","personaStr","localStorage","getItem","JSON","parse","date","toISOString","split","formatDateForBackend","dateString","empresa","empresaId","url","res","success","Id","EmpresaId","NumeroDocumentoEntrega","descripcionPuntoEntrega","DescripcionPuntoEntrega","NombreCliente","DireccionPuntoEntrega","CodigoSN","NombrePersonaCliente","ContactoPersonaCliente","distanciaRecorrida","DistanciaRecorrida","tiempoRecorrido","TiempoRecorrido","FechaHoraInicio","FechaHoraEntrega","FechaHoraFin","tiempoDescarga","TiempoDescarga","EstadoPuntoEntrega","plantillaRutasId","PlantillaRutasId","puntosEntregaGeneralesId","PuntosEntregaGeneralesId","LugarEntrega","latUbicacionEntrega","LatUbicacionEntrega","longUbicacionEntrega","LongUbicacionEntrega","fechaHoraInicioRuta","FechaHoraInicioRuta","NombreRuta","DescripcionRuta","Placa","distanciaTotalRecorrida","DistanciaTotalRecorrida","tiempoTotalRecorrido","TiempoTotalRecorrido","EstadoRuta","actualizarPaginacion","toLowerCase","trim","datosFiltrados","cumpleBusqueda","Object","values","some","undefined","toString","includes","cumpleEstadoPunto","cumpleEstadoRuta","cumpleCentroCosto","cumpleCliente","inicio","fin","slice","ceil","dateTimeStr","toLocaleString","year","month","day","hour","minute","estado"],"mappings":"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","file":"js/chunk-5712ee11.1e16d7d59b4b0b33f295.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',[_c('vs-tooltip',{scopedSlots:_vm._u([{key:\"tooltip\",fn:function(){return [_vm._v(\" Generar reporte \")]},proxy:true}])},[_c('vs-button',{attrs:{\"border\":\"\"},on:{\"click\":function($event){_vm.active = !_vm.active}}},[_c('i',{staticClass:\"fa-regular fa-file-excel\"})])],1)],1),_c('vs-dialog',{attrs:{\"width\":\"400px\"},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('span',{staticClass:\"not-margin h3\"},[_vm._v(\"EXPORTAR DATOS\")])]},proxy:true},{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"footer-container\"},[_c('vs-button',{attrs:{\"disabled\":_vm.isAnySelected,\"primary\":\"\"},on:{\"click\":_vm.generateReport}},[_c('i',{staticClass:\"bx bx-download mr-2\"}),_vm._v(\" Generar reporte \")]),_c('vs-button',{attrs:{\"danger\":\"\",\"transparent\":\"\"},on:{\"click\":function($event){_vm.active = false}}},[_vm._v(\" Cancelar \")])],1)]},proxy:true}]),model:{value:(_vm.active),callback:function ($$v) {_vm.active=$$v},expression:\"active\"}},[_c('div',{staticClass:\"con-content\"},[_c('vs-input',{staticClass:\"mb-4\",attrs:{\"placeholder\":\"Nombre del archivo\",\"border\":\"\"},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('i',{staticClass:\"fa-regular fa-file\"})]},proxy:true}]),model:{value:(_vm.fileName),callback:function ($$v) {_vm.fileName=$$v},expression:\"fileName\"}}),_c('div',{staticClass:\"checklist-container\"},[_c('h5',{staticClass:\"mb-3 text-gray-600\"},[_vm._v(\"Selecciona los campos a exportar:\")]),(_vm.items)?_c('div',{staticClass:\"checklist\"},_vm._l((_vm.headers),function(item,index){return _c('vs-checkbox',{key:index,staticClass:\"checklist-item\",attrs:{\"val\":item},model:{value:(_vm.valoresSeleccionados),callback:function ($$v) {_vm.valoresSeleccionados=$$v},expression:\"valoresSeleccionados\"}},[_c('div',{staticClass:\"checklist-content\"},[_c('span',{staticClass:\"checklist-label\"},[_vm._v(_vm._s(item.header))])])])}),1):_c('div',{staticClass:\"d-flex justify-content-center\"},[_c('span',{staticClass:\"checklist-label h4\"},[_vm._v(\"¡Sin valores!\")])])])],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <div>\r\n <vs-tooltip>\r\n <vs-button border @click=\"active = !active\">\r\n <i class=\"fa-regular fa-file-excel\"></i>\r\n </vs-button>\r\n <template #tooltip>\r\n Generar reporte\r\n </template>\r\n </vs-tooltip>\r\n </div>\r\n <vs-dialog width=\"400px\" v-model=\"active\">\r\n <template #header>\r\n <span class=\"not-margin h3\">EXPORTAR DATOS</span>\r\n </template>\r\n <div class=\"con-content \">\r\n <vs-input \r\n v-model=\"fileName\" \r\n placeholder=\"Nombre del archivo\"\r\n class=\"mb-4\"\r\n border\r\n >\r\n <template #icon>\r\n <i class=\"fa-regular fa-file\"></i>\r\n </template>\r\n </vs-input>\r\n <div class=\"checklist-container\">\r\n <h5 class=\"mb-3 text-gray-600\">Selecciona los campos a exportar:</h5>\r\n <div class=\"checklist\" v-if = \"items\">\r\n <vs-checkbox \r\n v-for=\"(item, index) in headers\"\r\n :key=\"index\"\r\n v-model=\"valoresSeleccionados\"\r\n :val=\"item\" \r\n class=\"checklist-item\"\r\n >\r\n <div class=\"checklist-content\">\r\n <span class=\"checklist-label\">{{ item.header }}</span>\r\n </div>\r\n </vs-checkbox>\r\n </div>\r\n <div v-else class=\"d-flex justify-content-center\">\r\n <span class=\"checklist-label h4\">¡Sin valores!</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <template #footer>\r\n <div class=\"footer-container\">\r\n <vs-button \r\n @click=\"generateReport\" \r\n :disabled=\"isAnySelected\"\r\n primary\r\n >\r\n <i class='bx bx-download mr-2'></i>\r\n Generar reporte\r\n </vs-button>\r\n <vs-button @click=\"active = false\" danger transparent>\r\n Cancelar\r\n </vs-button>\r\n </div>\r\n </template>\r\n </vs-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: \"exportExcel\",\r\n props: {\r\n items: {\r\n type: Array,\r\n required: true,\r\n },\r\n headers: {\r\n }\r\n \r\n },\r\n data() {\r\n return {\r\n active: false,\r\n valoresSeleccionados:[],\r\n fileName: \"\",\r\n };\r\n },\r\n computed: {\r\n isAnySelected() {\r\n return this.valoresSeleccionados.length === 0;\r\n }\r\n },\r\n methods: {\r\n async generateReport(){\r\n let keys = this.valoresSeleccionados.map(v => v.key)\r\n let headers = this.valoresSeleccionados.map(v => v.header)\r\n\r\n console.log(\"Valores para el informe\", this.valoresSeleccionados)\r\n console.log(\"Valores para el informe key\", keys)\r\n console.log(\"Valores para el informe headers\", headers)\r\n\r\n const data = {\r\n \"propiedades\": keys, \r\n \"headers\": headers, \r\n \"data\": this.items,\r\n \"nombreArchivo\": this.fileName\r\n };\r\n\r\n try {\r\n // Hacer la solicitud POST al endpoint\r\n const response = await this.$store.dispatch(\"hl_post_excelReport\", {\r\n path: \"ExcelReportes/generate-excelHL\",\r\n data: data,\r\n \r\n });\r\n console.log(response)\r\n \r\n }catch (e) {\r\n console.error(\"Error al generar el informe\", e);\r\n this.$message.error(\"Error al generar el informe\");\r\n }\r\n }\r\n },\r\n watch: {\r\n active(newVal) {\r\n if (!newVal) {\r\n // this.items = {},\r\n this.valoresSeleccionados = [],\r\n this.fileName = \"\"\r\n // this.headers = {}\r\n }\r\n },\r\n }\r\n};\r\n</script>\r\n\r\n<style>\r\n\r\n.con-footer {\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n}\r\n\r\n.con-footer .vs-button {\r\n margin: 0px;\r\n}\r\n\r\n.con-footer .vs-button .vs-button__content {\r\n padding: 10px 30px;\r\n}\r\n/* .con-footer .vs-button__content{\r\n background-color: rgb(191, 0, 34)\r\n} */\r\n.con-footer .vs-button ~ .vs-button {\r\n margin-left: 10px;\r\n}\r\n\r\n.not-margin {\r\n margin: 0px;\r\n font-weight: normal;\r\n padding: 10px;\r\n padding-bottom: 0px;\r\n}\r\n\r\n.con-content {\r\n width: 100%;\r\n}\r\n\r\n.con-content p {\r\n font-size: 0.8rem;\r\n padding: 0px 10px;\r\n}\r\n\r\n.con-content .vs-checkbox-label {\r\n font-size: 0.8rem;\r\n}\r\n\r\n.con-content .vs-input-parent {\r\n width: 100%;\r\n}\r\n\r\n.con-content .vs-input-content {\r\n margin: 10px 0px;\r\n width: calc(100%);\r\n}\r\n\r\n.con-content .vs-input-content .vs-input {\r\n width: 100%;\r\n}\r\n\r\n.footer-dialog {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-direction: column;\r\n width: calc(100%);\r\n}\r\n\r\n.footer-dialog .new {\r\n margin: 0px;\r\n margin-top: 20px;\r\n padding: 0px;\r\n font-size: 0.7rem;\r\n}\r\n\r\n.footer-dialog .new a {\r\n color: var(--primary-color) !important;\r\n margin-left: 6px;\r\n}\r\n\r\n.footer-dialog .new a:hover {\r\n text-decoration: underline;\r\n}\r\n\r\n.footer-dialog .vs-button {\r\n margin: 0px;\r\n}\r\n\r\n</style>\r\n\r\n<style scoped>\r\n.checklist-container {\r\n max-height: 300px;\r\n overflow-y: auto;\r\n padding-right: 8px;\r\n}\r\n\r\n.checklist {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 12px;\r\n}\r\n\r\n.checklist-item {\r\n padding: 8px;\r\n border-radius: 8px;\r\n transition: background-color 0.2s;\r\n}\r\n\r\n.checklist-item:hover {\r\n background-color: rgba(var(--vs-primary), 0.1);\r\n}\r\n\r\n.checklist-content {\r\n display: flex;\r\n flex-direction: column;\r\n margin-left: 8px;\r\n}\r\n\r\n.checklist-label {\r\n font-weight: 500;\r\n}\r\n\r\n.checklist-description {\r\n font-size: 0.875rem;\r\n}\r\n\r\n.footer-container {\r\n display: flex;\r\n justify-content: flex-end;\r\n gap: 12px;\r\n padding: 16px;\r\n}\r\n\r\n.checklist-container::-webkit-scrollbar {\r\n width: 6px;\r\n}\r\n\r\n.checklist-container::-webkit-scrollbar-track {\r\n background: #f1f1f1;\r\n border-radius: 3px;\r\n}\r\n\r\n.checklist-container::-webkit-scrollbar-thumb {\r\n background: #888;\r\n border-radius: 3px;\r\n}\r\n\r\n.checklist-container::-webkit-scrollbar-thumb:hover {\r\n background: #555;\r\n}\r\n</style>","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./exportExcel.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./exportExcel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./exportExcel.vue?vue&type=template&id=77d2f6e9&scoped=true\"\nimport script from \"./exportExcel.vue?vue&type=script&lang=js\"\nexport * from \"./exportExcel.vue?vue&type=script&lang=js\"\nimport style0 from \"./exportExcel.vue?vue&type=style&index=0&id=77d2f6e9&prod&lang=css\"\nimport style1 from \"./exportExcel.vue?vue&type=style&index=1&id=77d2f6e9&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"77d2f6e9\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./exportExcel.vue?vue&type=style&index=1&id=77d2f6e9&prod&scoped=true&lang=css\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"row justify-content-center\",staticStyle:{\"gap\":\"1rem\"}},_vm._l((_vm.data),function(card,index){return _c('div',{key:index,staticClass:\"col-12 col-sm-5 col-md d-flex justify-content-between align-items-center rounded p-2 glow-box bg-dark\",style:({\n boxShadow:\n _vm.activeCard === index ? `inset 0 0 0 2px ${card.color}` : 'none',\n }),on:{\"mouseenter\":function($event){return _vm.showCursorGlow(index)},\"mouseleave\":function($event){return _vm.hideCursorGlow(index)},\"mousemove\":(event) => _vm.handleMouseMove(event, index),\"click\":function($event){return _vm.toggleActive(index)}}},[(_vm.showGlow)?_c('div',{staticClass:\"cursor-glow\",style:({\n left: _vm.cursorX[index] + 'px',\n top: _vm.cursorY[index] + 'px',\n ..._vm.glowStyle(card.color),\n opacity: _vm.showGlow[index] ? '1' : '0',\n })}):_vm._e(),_c('div',{class:`d-flex align-items-center justify-content-center`,style:({\n width: '60px',\n height: '60px',\n backgroundColor: card.color,\n 'border-radius': _vm.computeBorderRadius(card.tipo),\n '-webkit-box-shadow': `0px -1px 33px -8px ${card.color}`,\n '-moz-box-shadow': `0px -1px 33px -8px ${card.color}`,\n 'box-shadow': `0px -1px 33px -8px ${card.color}`,\n })},[_c('i',{class:`fas fa-${card.iconName} ${_vm.computeAnimateIcon(\n card.animated,\n index\n )}`,staticStyle:{\"font-size\":\"1.5rem\"}})]),_c('div',{staticClass:\"d-flex flex-column align-items-center\",staticStyle:{\"flex-grow\":\"1\",\"max-width\":\"calc(100% - 60px)\"}},[_c('div',{class:`title-container`},[_c('span',{staticClass:\"font-weight-bold\",class:[\n _vm.showGlow[index] &&\n _vm.animatedState[index] &&\n _vm.shouldAnimateTitle[index]\n ? 'title-animate'\n : 'title-static',\n ]},[_vm._v(\" \"+_vm._s(card.title)+\" \")])]),_c('span',{staticClass:\"font-weight-bold\",style:({\n fontSize: `${card.sizeValue ?? 40}px`,\n })},[_vm._v(_vm._s(_vm.evaluateValue(card.value)))])])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!-- card table info -->\r\n<template>\r\n <div class=\"row justify-content-center\" style=\"gap: 1rem\">\r\n <div\r\n v-for=\"(card, index) in data\"\r\n :key=\"index\"\r\n class=\"col-12 col-sm-5 col-md d-flex justify-content-between align-items-center rounded p-2 glow-box bg-dark\"\r\n :style=\"{\r\n boxShadow:\r\n activeCard === index ? `inset 0 0 0 2px ${card.color}` : 'none',\r\n }\"\r\n @mouseenter=\"showCursorGlow(index)\"\r\n @mouseleave=\"hideCursorGlow(index)\"\r\n @mousemove=\"(event) => handleMouseMove(event, index)\"\r\n @click=\"toggleActive(index)\"\r\n >\r\n <!-- linar-style cursor glow -->\r\n <div\r\n v-if=\"showGlow\"\r\n class=\"cursor-glow\"\r\n :style=\"{\r\n left: cursorX[index] + 'px',\r\n top: cursorY[index] + 'px',\r\n ...glowStyle(card.color),\r\n opacity: showGlow[index] ? '1' : '0',\r\n }\"\r\n ></div>\r\n <div\r\n :class=\"`d-flex align-items-center justify-content-center`\"\r\n :style=\"{\r\n width: '60px',\r\n height: '60px',\r\n backgroundColor: card.color,\r\n 'border-radius': computeBorderRadius(card.tipo),\r\n '-webkit-box-shadow': `0px -1px 33px -8px ${card.color}`,\r\n '-moz-box-shadow': `0px -1px 33px -8px ${card.color}`,\r\n 'box-shadow': `0px -1px 33px -8px ${card.color}`,\r\n }\"\r\n >\r\n <i\r\n :class=\"`fas fa-${card.iconName} ${computeAnimateIcon(\r\n card.animated,\r\n index\r\n )}`\"\r\n style=\"font-size: 1.5rem\"\r\n ></i>\r\n </div>\r\n <div\r\n class=\"d-flex flex-column align-items-center\"\r\n style=\"flex-grow: 1; max-width: calc(100% - 60px)\"\r\n >\r\n <div :class=\"`title-container`\">\r\n <span\r\n :class=\"[\r\n showGlow[index] &&\r\n animatedState[index] &&\r\n shouldAnimateTitle[index]\r\n ? 'title-animate'\r\n : 'title-static',\r\n ]\"\r\n class=\"font-weight-bold\"\r\n >\r\n {{ card.title }}\r\n </span>\r\n </div>\r\n <span\r\n class=\"font-weight-bold\"\r\n :style=\"{\r\n fontSize: `${card.sizeValue ?? 40}px`,\r\n }\"\r\n >{{ evaluateValue(card.value) }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n // Documentación del componente CardTable.js\r\n\r\n /**\r\n * Este componente Vue.js se utiliza para renderizar un conjunto de tarjetas de información.\r\n * Cada tarjeta es interactiva y muestra diferentes tipos de datos y un Ãcono.\r\n *\r\n * Propiedades:\r\n * - data: Un array de objetos que contiene la información para renderizar cada tarjeta.\r\n *\r\n * Estado interno:\r\n * - showGlow: Un objeto que controla si el efecto de brillo debe mostrarse en cada tarjeta.\r\n * - cursorX: Un objeto que contiene la coordenada X del cursor para cada tarjeta.\r\n * - cursorY: Un objeto que contiene la coordenada Y del cursor para cada tarjeta.\r\n * - animationFrameId: Un objeto que guarda el ID de la solicitud de animación para cada tarjeta.\r\n * - animatedState: Un objeto que guarda el estado de animación para cada tarjeta.\r\n * - activeCard: Un número que indica el Ãndice de la tarjeta activa. Null si no hay ninguna tarjeta activa.\r\n * - shouldAnimateTitle: Un objeto que determina si el tÃtulo de la tarjeta debe animarse para cada tarjeta.\r\n *\r\n * Métodos:\r\n * - toggleActive: Cambia el estado activo de una tarjeta.\r\n * - computeBorderRadius: Calcula el radio del borde según el tipo de tarjeta.\r\n * - computeAnimateIcon: Devuelve la clase de animación apropiada para el Ãcono.\r\n * - evaluateValue: Evalúa el valor que debe mostrarse en la tarjeta.\r\n * - glowStyle: Devuelve el estilo CSS para el efecto de brillo del cursor.\r\n * - handleMouseMove: Maneja el movimiento del mouse para el efecto de brillo del cursor.\r\n * - showCursorGlow: Activa el efecto de brillo del cursor.\r\n * - hideCursorGlow: Desactiva el efecto de brillo del cursor.\r\n * - onResize: Maneja el evento de cambio de tamaño de la ventana.\r\n * - checkTitleLength: Verifica la longitud del tÃtulo para determinar si necesita animación.\r\n */\r\n\r\n props: {\r\n /*\r\n // Ejemplo de un objeto dentro del array 'data':\r\n {\r\n title: \"Finalizadas\",\r\n value: () => this.listaItems.filter((cap) => cap.estadoCap && cap.disponible).length,\r\n iconName: \"calendar-check\",\r\n color: \"rgba(22, 162, 117, 1)\",\r\n tipo: \"squared\",\r\n animated: \"shake\",\r\n onActivate: () => { console.log(\"Tarjeta activada\"); },\r\n onDeactivate: () => { console.log(\"Tarjeta desactivada\"); }\r\n },\r\n */\r\n data: {\r\n type: Array,\r\n default: () => [\r\n {\r\n title: \"TÃtulo\",\r\n value: 0,\r\n sizeValue: 40,\r\n iconName: \"crown\",\r\n color: \"rgba(223, 18, 46, 1)\",\r\n tipo: \"circle\",\r\n animated: \"shake\",\r\n onActivate: null,\r\n onDeactivate: null,\r\n },\r\n ],\r\n },\r\n },\r\n data() {\r\n return {\r\n showGlow: {},\r\n cursorX: {},\r\n cursorY: {},\r\n animationFrameId: {},\r\n animatedState: {},\r\n activeCard: null,\r\n shouldAnimateTitle: {},\r\n animated: {\r\n beat: \"fa-beat\",\r\n beatFade: \"fa-beat-fade\",\r\n bounce: \"fa-bounce\",\r\n fade: \"fa-fade\",\r\n flip: \"fa-flip\",\r\n shake: \"fa-shake\",\r\n spin: \"fa-spin\",\r\n spinReverse: \"fa-spin fa-spin-reverse\",\r\n spinPulse: \"fa-spin-pulse\",\r\n },\r\n tipoIcon: {\r\n circle: \"50%\",\r\n squared: \"20%\",\r\n shield: \"49% 51% 48% 52% / 29% 29% 71% 71%\",\r\n water: \"60% 40% 78% 22% / 73% 66% 34% 27%\",\r\n },\r\n };\r\n },\r\n /*\r\nEventos de Ciclo de Vida:\r\n- mounted: Se añade un escuchador para el evento de redimensionamiento de la ventana.\r\n- beforeDestroy: Se elimina el escuchador para el evento de redimensionamiento de la ventana.\r\n*/\r\n mounted() {\r\n this.onResize();\r\n window.addEventListener(\"resize\", this.onResize);\r\n },\r\n beforeDestroy() {\r\n window.removeEventListener(\"resize\", this.onResize);\r\n },\r\n methods: {\r\n onResize() {\r\n this.data.forEach((_, index) => {\r\n this.checkTitleLength(index);\r\n });\r\n },\r\n checkTitleLength(index) {\r\n this.$nextTick(() => {\r\n const titleElement = this.$el.querySelectorAll(\".title-container span\")[\r\n index\r\n ];\r\n if (titleElement) {\r\n // console.log(\"Client Width: \", titleElement.clientWidth);\r\n // console.log(\"Scroll Width: \", titleElement.scrollWidth);\r\n\r\n if (titleElement.scrollWidth > titleElement.clientWidth) {\r\n this.$set(this.shouldAnimateTitle, index, true);\r\n } else {\r\n this.$set(this.shouldAnimateTitle, index, false);\r\n }\r\n }\r\n });\r\n },\r\n toggleActive(index) {\r\n // Desactivar tarjeta anterior si es diferente de la actual\r\n if (this.activeCard !== null && this.activeCard !== index) {\r\n if (typeof this.data[this.activeCard].onDeactivate === \"function\") {\r\n this.data[this.activeCard].onDeactivate();\r\n }\r\n }\r\n\r\n // Cambiar la tarjeta activa\r\n this.activeCard = this.activeCard === index ? null : index;\r\n\r\n // Ejecutar la función de activación o desactivación correspondiente\r\n if (this.activeCard !== null) {\r\n if (typeof this.data[this.activeCard].onActivate === \"function\") {\r\n this.data[this.activeCard].onActivate();\r\n }\r\n } else {\r\n if (typeof this.data[index].onDeactivate === \"function\") {\r\n this.data[index].onDeactivate();\r\n }\r\n }\r\n },\r\n computeBorderRadius(tipo) {\r\n return this.tipoIcon[tipo] || \"20% 40% 20% 40%\";\r\n },\r\n computeAnimateIcon(tipo, index) {\r\n if (this.animatedState[index]) {\r\n return this.animated[tipo] || \"\";\r\n }\r\n },\r\n evaluateValue(value) {\r\n if (typeof value === \"function\") {\r\n return value();\r\n }\r\n return value;\r\n },\r\n glowStyle(color) {\r\n return {\r\n boxShadow: `0 0 40px 20px ${color}`,\r\n };\r\n },\r\n handleMouseMove(event, index) {\r\n const rect = event.currentTarget.getBoundingClientRect();\r\n const targetX = event.clientX - rect.left;\r\n const targetY = event.clientY - rect.top;\r\n\r\n // Cancelar la animación anterior si está en curso\r\n if (this.animationFrameId[index]) {\r\n cancelAnimationFrame(this.animationFrameId[index]);\r\n }\r\n\r\n // Iniciar una nueva animación\r\n const animate = () => {\r\n const startX = this.cursorX[index] || 0;\r\n const startY = this.cursorY[index] || 0;\r\n const dx = (targetX - startX) * 0.1; // Factor de suavizado\r\n const dy = (targetY - startY) * 0.1; // Factor de suavizado\r\n\r\n this.$set(this.cursorX, index, startX + dx);\r\n this.$set(this.cursorY, index, startY + dy);\r\n\r\n if (Math.abs(dx) > 0.1 || Math.abs(dy) > 0.1) {\r\n // Continuar la animación\r\n this.animationFrameId[index] = requestAnimationFrame(animate);\r\n }\r\n };\r\n\r\n // Iniciar la animación\r\n this.animationFrameId[index] = requestAnimationFrame(animate);\r\n },\r\n showCursorGlow(index) {\r\n this.$set(this.animatedState, index, true);\r\n this.$set(this.showGlow, index, true);\r\n },\r\n hideCursorGlow(index) {\r\n this.$set(this.animatedState, index, false);\r\n this.$set(this.showGlow, index, false);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n/*\r\nEstilos:\r\n- glow-box: Configuración base para el efecto de resplandor.\r\n- cursor-glow: Estilo para el resplandor del cursor.\r\n- title-container: Contenedor para el tÃtulo de la tarjeta.\r\n- title-animate: Animación para el tÃtulo de la tarjeta.\r\n- title-static: Estilo estático para el tÃtulo de la tarjeta.\r\n*/\r\n\r\n.glow-box {\r\n position: relative;\r\n overflow: hidden;\r\n transition: box-shadow 0.3s ease;\r\n cursor: default;\r\n}\r\n\r\n.cursor-glow {\r\n position: absolute;\r\n width: 0;\r\n height: 0;\r\n border-radius: 50%;\r\n pointer-events: none;\r\n transition: left 0.2s, top 0.2s, opacity 0.5s ease;\r\n}\r\n\r\n.title-container {\r\n max-width: calc(100% - 20px);\r\n overflow: hidden;\r\n height: 20px;\r\n}\r\n\r\n.title-animate {\r\n display: inline-block;\r\n white-space: nowrap;\r\n animation: marquee 5s linear infinite;\r\n transition: transform 0.3s ease;\r\n}\r\n\r\n.title-static {\r\n display: inline-block;\r\n max-width: 100%; /* Se ajusta al tamaño del contenedor */\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n}\r\n\r\n@keyframes marquee {\r\n from {\r\n transform: translateX(0%);\r\n }\r\n to {\r\n transform: translateX(-100%);\r\n }\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardTable.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardTable.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardTable.vue?vue&type=template&id=73483910&scoped=true\"\nimport script from \"./CardTable.vue?vue&type=script&lang=js\"\nexport * from \"./CardTable.vue?vue&type=script&lang=js\"\nimport style0 from \"./CardTable.vue?vue&type=style&index=0&id=73483910&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"73483910\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('HXContentCard',{attrs:{\"title\":\"Listado de Puntos de Entrega y Rutas\"}},[_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.loading)?_c('div',{staticClass:\"text-center\"},[_c('div',{},[_c('div',{staticClass:\"emoji-container\"},[_c('span',{staticClass:\"emoji\",attrs:{\"role\":\"img\",\"aria-label\":\"Truck\"}},[_vm._v(\"🚚\")]),_c('span',{staticClass:\"emoji\",attrs:{\"role\":\"img\",\"aria-label\":\"Hourglass\"}},[_vm._v(\"â³\")]),_c('span',{staticClass:\"emoji\",attrs:{\"role\":\"img\",\"aria-label\":\"Map\"}},[_vm._v(\"🗺ï¸\")])]),_c('span',{staticClass:\"h2 font-weight-bold\"},[_vm._v(\"Cargando datos...\")]),_c('p',{staticClass:\"loading-message\"},[_vm._v(\"Espere un momento mientras preparamos la información.\")])])]):_vm._e()]),(!_vm.loading)?_c('div',[_c('div',{staticClass:\"px-4 mt-3 mb-4\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"fechaInicio\"}},[_vm._v(\"Fecha de inicio:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filtros.fechaInicio),expression:\"filtros.fechaInicio\"}],staticClass:\"form-control\",attrs:{\"type\":\"date\",\"id\":\"fechaInicio\"},domProps:{\"value\":(_vm.filtros.fechaInicio)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.filtros, \"fechaInicio\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"fechaFin\"}},[_vm._v(\"Fecha de fin (opcional):\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filtros.fechaFin),expression:\"filtros.fechaFin\"}],staticClass:\"form-control\",attrs:{\"type\":\"date\",\"id\":\"fechaFin\"},domProps:{\"value\":(_vm.filtros.fechaFin)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.filtros, \"fechaFin\", $event.target.value)}}})])]),_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"busqueda\"}},[_vm._v(\"Búsqueda:\")]),_c('div',{staticClass:\"input-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filtros.busqueda),expression:\"filtros.busqueda\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"busqueda\",\"placeholder\":\"Buscar en todos los campos...\"},domProps:{\"value\":(_vm.filtros.busqueda)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.$set(_vm.filtros, \"busqueda\", $event.target.value)},_vm.aplicarBusqueda]}}),_c('div',{staticClass:\"input-group-append\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.limpiarBusqueda}},[_c('i',{staticClass:\"fas fa-times\"})])])])])]),_c('div',{staticClass:\"col-md-3 d-flex align-items-end\"},[_c('button',{staticClass:\"btn btn-primary w-100\",on:{\"click\":_vm.buscarPuntosEntrega}},[_c('i',{staticClass:\"fas fa-search mr-2\"}),_vm._v(\" Buscar \")])])]),_c('div',{staticClass:\"row mt-2\"},[_c('div',{staticClass:\"col-12\"},[_c('button',{staticClass:\"btn btn-sm btn-outline-secondary\",on:{\"click\":function($event){_vm.mostrarFiltrosAvanzados = !_vm.mostrarFiltrosAvanzados}}},[_c('i',{staticClass:\"fas\",class:_vm.mostrarFiltrosAvanzados ? 'fa-chevron-up' : 'fa-chevron-down'}),_vm._v(\" \"+_vm._s(_vm.mostrarFiltrosAvanzados ? 'Ocultar filtros avanzados' : 'Mostrar filtros avanzados')+\" \")])])]),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.mostrarFiltrosAvanzados)?_c('div',{staticClass:\"row mt-3\"},[_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"filtroEstadoPunto\"}},[_vm._v(\"Estado Punto Entrega:\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filtros.estadoPuntoEntrega),expression:\"filtros.estadoPuntoEntrega\"}],staticClass:\"form-control\",attrs:{\"id\":\"filtroEstadoPunto\"},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.filtros, \"estadoPuntoEntrega\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])},_vm.aplicarFiltrosAvanzados]}},[_c('option',{attrs:{\"value\":\"\"}},[_vm._v(\"Todos\")]),_c('option',{attrs:{\"value\":\"No ha iniciado\"}},[_vm._v(\"No ha iniciado\")]),_c('option',{attrs:{\"value\":\"En proceso\"}},[_vm._v(\"En proceso\")]),_c('option',{attrs:{\"value\":\"Completado\"}},[_vm._v(\"Completado\")]),_c('option',{attrs:{\"value\":\"Cancelado\"}},[_vm._v(\"Cancelado\")])])])]),_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"filtroEstadoRuta\"}},[_vm._v(\"Estado Ruta:\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filtros.estadoRuta),expression:\"filtros.estadoRuta\"}],staticClass:\"form-control\",attrs:{\"id\":\"filtroEstadoRuta\"},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.filtros, \"estadoRuta\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])},_vm.aplicarFiltrosAvanzados]}},[_c('option',{attrs:{\"value\":\"\"}},[_vm._v(\"Todos\")]),_c('option',{attrs:{\"value\":\"Pendiente\"}},[_vm._v(\"Pendiente\")]),_c('option',{attrs:{\"value\":\"Iniciada\"}},[_vm._v(\"Iniciada\")]),_c('option',{attrs:{\"value\":\"Finalizada\"}},[_vm._v(\"Finalizada\")])])])]),_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"filtroCentroCosto\"}},[_vm._v(\"Centro de Costo:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filtros.centroCosto),expression:\"filtros.centroCosto\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"filtroCentroCosto\"},domProps:{\"value\":(_vm.filtros.centroCosto)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.$set(_vm.filtros, \"centroCosto\", $event.target.value)},_vm.aplicarFiltrosAvanzados]}})])]),_c('div',{staticClass:\"col-md-3\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"filtroCliente\"}},[_vm._v(\"Cliente:\")]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filtros.cliente),expression:\"filtros.cliente\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"id\":\"filtroCliente\"},domProps:{\"value\":(_vm.filtros.cliente)},on:{\"input\":[function($event){if($event.target.composing)return;_vm.$set(_vm.filtros, \"cliente\", $event.target.value)},_vm.aplicarFiltrosAvanzados]}})])])]):_vm._e()])],1),_c('div',{staticClass:\"px-4 mt-3\"},[_c('CardTable',{attrs:{\"data\":_vm.dataCards}})],1),(_vm.listaPuntosEntrega.length > 0)?_c('exportExcel',{attrs:{\"headers\":_vm.exportarRemisiones,\"items\":_vm.listaPuntosEntrega}}):_vm._e(),_c('div',{staticClass:\"px-4 mt-3\"},[_c('div',{staticClass:\"table-responsive\"},[_c('div',{staticClass:\"mb-3 d-flex justify-content-between align-items-center\"},[_c('div',[_c('span',{staticClass:\"mr-2\"},[_vm._v(\"Mostrar\")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.paginacion.registrosPorPagina),expression:\"paginacion.registrosPorPagina\"}],staticClass:\"form-control form-control-sm d-inline-block\",staticStyle:{\"width\":\"auto\"},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.$set(_vm.paginacion, \"registrosPorPagina\", $event.target.multiple ? $$selectedVal : $$selectedVal[0])},_vm.cambiarRegistrosPorPagina]}},[_c('option',{attrs:{\"value\":\"10\"}},[_vm._v(\"10\")]),_c('option',{attrs:{\"value\":\"25\"}},[_vm._v(\"25\")]),_c('option',{attrs:{\"value\":\"50\"}},[_vm._v(\"50\")]),_c('option',{attrs:{\"value\":\"100\"}},[_vm._v(\"100\")])]),_c('span',{staticClass:\"ml-2\"},[_vm._v(\"registros\")])]),_c('div',[_c('span',[_vm._v(\"Mostrando \"+_vm._s(_vm.paginacion.totalFiltrados)+\" de \"+_vm._s(_vm.listaPuntosEntrega.length)+\" registros\")])])]),_c('table',{staticClass:\"table table-bordered table-responsive-md table-striped text-center\",attrs:{\"id\":\"datatable_puntosEntrega\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Fecha/Hora Inicio\")]),_c('th',[_vm._v(\"Fecha/Hora Entrega\")]),_c('th',[_vm._v(\"Fecha/Hora Fin\")]),_c('th',[_vm._v(\"Centro de Costo\")]),_c('th',[_vm._v(\"Nombre Ruta\")]),_c('th',[_vm._v(\"Descripción Ruta\")]),_c('th',[_vm._v(\"Número de Remisión\")]),_c('th',[_vm._v(\"Nombre del Cliente\")]),_c('th',[_vm._v(\"Dirección del Punto de Entrega\")]),_c('th',[_vm._v(\"Nit\")]),_c('th',[_vm._v(\"Persona Que recibió\")]),_c('th',[_vm._v(\"Contacto Persona Que recibió\")]),_c('th',[_vm._v(\"Placa\")]),_c('th',[_vm._v(\"Conductor asignado\")]),_c('th',[_vm._v(\"Estado Punto Entrega\")]),_c('th',[_vm._v(\"Estado Ruta\")])])]),_c('tbody',[_vm._l((_vm.listaPuntosEntregaFiltrados),function(item){return _c('tr',{key:item.id,staticClass:\"animated-row\"},[_c('td',[_vm._v(_vm._s(_vm.formatDateTime(item.fechaHoraInicio)))]),_c('td',[_vm._v(_vm._s(_vm.formatDateTime(item.fechaHoraEntrega)))]),_c('td',[_vm._v(_vm._s(_vm.formatDateTime(item.fechaHoraFin)))]),_c('td',[_vm._v(_vm._s(item.lugarEntrega ? item.lugarEntrega : \"No encontrado\"))]),_c('td',[_vm._v(_vm._s(item.nombreRuta ? item.nombreRuta : \"No encontrado\"))]),_c('td',[_vm._v(_vm._s(item.descripcionRuta ? item.descripcionRuta : \"No encontrado\"))]),_c('td',[_vm._v(_vm._s(item.numeroDocumentoEntrega ? item.numeroDocumentoEntrega : \"No encontrado\")+\" \")]),_c('td',[_vm._v(_vm._s(item.nombreCliente ? item.nombreCliente : \"No encontrado\"))]),_c('td',[_vm._v(_vm._s(item.direccionPuntoEntrega ? item.direccionPuntoEntrega : \"No encontrado\"))]),_c('td',[_vm._v(_vm._s(item.codigoSN ? item.codigoSN : \"No encontrado\"))]),_c('td',[_vm._v(_vm._s(item.nombrePersonaCliente ? item.nombrePersonaCliente : \"No encontrado\"))]),_c('td',[_vm._v(_vm._s(item.contactoPersonaCliente ? item.contactoPersonaCliente : \"No encontrado\")+\" \")]),_c('td',[_vm._v(_vm._s(item.placa ? item.placa : \"No encontrado\"))]),_c('td',[_vm._v(_vm._s(item.nombreCompleto ? item.nombreCompleto : \"No encontrado\"))]),_c('td',[_c('span',{staticClass:\"badge\",class:_vm.getBadgeClass(item.estadoPuntoEntrega)},[_vm._v(\" \"+_vm._s(item.estadoPuntoEntrega)+\" \")])]),_c('td',[_c('span',{staticClass:\"badge\",class:_vm.getBadgeClass(item.estadoRuta)},[_vm._v(\" \"+_vm._s(item.estadoRuta)+\" \")])])])}),(_vm.listaPuntosEntregaFiltrados.length === 0)?_c('tr',[_c('td',{staticClass:\"text-center\",attrs:{\"colspan\":\"15\"}},[_vm._v(\"No se encontraron registros que coincidan con los criterios de búsqueda\")])]):_vm._e()],2)]),_c('div',{staticClass:\"d-flex justify-content-between align-items-center mt-3\"},[_c('div',[_c('span',[_vm._v(\"Página \"+_vm._s(_vm.paginacion.paginaActual)+\" de \"+_vm._s(_vm.paginacion.totalPaginas))])]),_c('div',[_c('nav',{attrs:{\"aria-label\":\"Navegación de páginas\"}},[_c('ul',{staticClass:\"pagination justify-content-end mb-0\"},[_c('li',{staticClass:\"page-item\",class:{ disabled: _vm.paginacion.paginaActual === 1 }},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.cambiarPagina(1)}}},[_c('i',{staticClass:\"fas fa-angle-double-left\"})])]),_c('li',{staticClass:\"page-item\",class:{ disabled: _vm.paginacion.paginaActual === 1 }},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.cambiarPagina(_vm.paginacion.paginaActual - 1)}}},[_c('i',{staticClass:\"fas fa-angle-left\"})])]),_vm._l((_vm.paginasVisibles),function(pagina){return _c('li',{key:pagina,staticClass:\"page-item\",class:{ active: pagina === _vm.paginacion.paginaActual }},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.cambiarPagina(pagina)}}},[_vm._v(_vm._s(pagina))])])}),_c('li',{staticClass:\"page-item\",class:{ disabled: _vm.paginacion.paginaActual === _vm.paginacion.totalPaginas || _vm.paginacion.totalPaginas === 0 }},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.cambiarPagina(_vm.paginacion.paginaActual + 1)}}},[_c('i',{staticClass:\"fas fa-angle-right\"})])]),_c('li',{staticClass:\"page-item\",class:{ disabled: _vm.paginacion.paginaActual === _vm.paginacion.totalPaginas || _vm.paginacion.totalPaginas === 0 }},[_c('a',{staticClass:\"page-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.cambiarPagina(_vm.paginacion.totalPaginas)}}},[_c('i',{staticClass:\"fas fa-angle-double-right\"})])])],2)])])])])])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <HXContentCard title=\"Listado de Puntos de Entrega y Rutas\">\r\n <!-- Pantalla de carga -->\r\n <transition name=\"fade\">\r\n <div v-if=\"loading\" class=\"text-center\">\r\n <div class=\"\">\r\n <div class=\"emoji-container\">\r\n <span class=\"emoji\" role=\"img\" aria-label=\"Truck\">🚚</span>\r\n <span class=\"emoji\" role=\"img\" aria-label=\"Hourglass\">â³</span>\r\n <span class=\"emoji\" role=\"img\" aria-label=\"Map\">🗺ï¸</span>\r\n </div>\r\n <span class=\"h2 font-weight-bold\">Cargando datos...</span>\r\n <p class=\"loading-message\">Espere un momento mientras preparamos la información.</p>\r\n </div>\r\n </div>\r\n </transition>\r\n\r\n <!-- Contenido principal -->\r\n <div v-if=\"!loading\">\r\n <!-- Filtros de fecha -->\r\n <div class=\"px-4 mt-3 mb-4\">\r\n <div class=\"row\">\r\n <div class=\"col-md-3\">\r\n <div class=\"form-group\">\r\n <label for=\"fechaInicio\">Fecha de inicio:</label>\r\n <input type=\"date\" id=\"fechaInicio\" class=\"form-control\" v-model=\"filtros.fechaInicio\">\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"form-group\">\r\n <label for=\"fechaFin\">Fecha de fin (opcional):</label>\r\n <input type=\"date\" id=\"fechaFin\" class=\"form-control\" v-model=\"filtros.fechaFin\">\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"form-group\">\r\n <label for=\"busqueda\">Búsqueda:</label>\r\n <div class=\"input-group\">\r\n <input type=\"text\" id=\"busqueda\" class=\"form-control\"\r\n placeholder=\"Buscar en todos los campos...\" v-model=\"filtros.busqueda\"\r\n @input=\"aplicarBusqueda\">\r\n <div class=\"input-group-append\">\r\n <button class=\"btn btn-outline-secondary\" type=\"button\" @click=\"limpiarBusqueda\">\r\n <i class=\"fas fa-times\"></i>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3 d-flex align-items-end\">\r\n <button class=\"btn btn-primary w-100\" @click=\"buscarPuntosEntrega\">\r\n <i class=\"fas fa-search mr-2\"></i> Buscar\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <!-- Filtros avanzados -->\r\n <div class=\"row mt-2\">\r\n <div class=\"col-12\">\r\n <button class=\"btn btn-sm btn-outline-secondary\"\r\n @click=\"mostrarFiltrosAvanzados = !mostrarFiltrosAvanzados\">\r\n <i class=\"fas\" :class=\"mostrarFiltrosAvanzados ? 'fa-chevron-up' : 'fa-chevron-down'\"></i>\r\n {{ mostrarFiltrosAvanzados ? 'Ocultar filtros avanzados' : 'Mostrar filtros avanzados' }}\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <transition name=\"fade\">\r\n <div class=\"row mt-3\" v-if=\"mostrarFiltrosAvanzados\">\r\n <div class=\"col-md-3\">\r\n <div class=\"form-group\">\r\n <label for=\"filtroEstadoPunto\">Estado Punto Entrega:</label>\r\n <select id=\"filtroEstadoPunto\" class=\"form-control\" v-model=\"filtros.estadoPuntoEntrega\"\r\n @change=\"aplicarFiltrosAvanzados\">\r\n <option value=\"\">Todos</option>\r\n <option value=\"No ha iniciado\">No ha iniciado</option>\r\n <option value=\"En proceso\">En proceso</option>\r\n <option value=\"Completado\">Completado</option>\r\n <option value=\"Cancelado\">Cancelado</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"form-group\">\r\n <label for=\"filtroEstadoRuta\">Estado Ruta:</label>\r\n <select id=\"filtroEstadoRuta\" class=\"form-control\" v-model=\"filtros.estadoRuta\"\r\n @change=\"aplicarFiltrosAvanzados\">\r\n <option value=\"\">Todos</option>\r\n <option value=\"Pendiente\">Pendiente</option>\r\n <option value=\"Iniciada\">Iniciada</option>\r\n <option value=\"Finalizada\">Finalizada</option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"form-group\">\r\n <label for=\"filtroCentroCosto\">Centro de Costo:</label>\r\n <input type=\"text\" id=\"filtroCentroCosto\" class=\"form-control\"\r\n v-model=\"filtros.centroCosto\" @input=\"aplicarFiltrosAvanzados\">\r\n </div>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <div class=\"form-group\">\r\n <label for=\"filtroCliente\">Cliente:</label>\r\n <input type=\"text\" id=\"filtroCliente\" class=\"form-control\" v-model=\"filtros.cliente\"\r\n @input=\"aplicarFiltrosAvanzados\">\r\n </div>\r\n </div>\r\n </div>\r\n </transition>\r\n </div>\r\n\r\n <!-- Tarjetas de Resumen -->\r\n <div class=\"px-4 mt-3\">\r\n <CardTable :data=\"dataCards\" />\r\n </div>\r\n <exportExcel v-if=\"listaPuntosEntrega.length > 0\" :headers=\"exportarRemisiones\"\r\n :items=\"listaPuntosEntrega\" />\r\n\r\n <!-- Tabla de Puntos de Entrega -->\r\n <div class=\"px-4 mt-3\">\r\n <div class=\"table-responsive\">\r\n <div class=\"mb-3 d-flex justify-content-between align-items-center\">\r\n <div>\r\n <span class=\"mr-2\">Mostrar</span>\r\n <select v-model=\"paginacion.registrosPorPagina\"\r\n class=\"form-control form-control-sm d-inline-block\" style=\"width: auto\"\r\n @change=\"cambiarRegistrosPorPagina\">\r\n <option value=\"10\">10</option>\r\n <option value=\"25\">25</option>\r\n <option value=\"50\">50</option>\r\n <option value=\"100\">100</option>\r\n </select>\r\n <span class=\"ml-2\">registros</span>\r\n </div>\r\n <div>\r\n <span>Mostrando {{ paginacion.totalFiltrados }} de {{ listaPuntosEntrega.length }}\r\n registros</span>\r\n </div>\r\n </div>\r\n <table id=\"datatable_puntosEntrega\"\r\n class=\"table table-bordered table-responsive-md table-striped text-center\">\r\n <thead>\r\n <tr>\r\n <th>Fecha/Hora Inicio</th>\r\n <th>Fecha/Hora Entrega</th>\r\n <th>Fecha/Hora Fin</th>\r\n <th>Centro de Costo</th>\r\n <th>Nombre Ruta</th>\r\n <th>Descripción Ruta</th>\r\n <th>Número de Remisión</th>\r\n <th>Nombre del Cliente</th>\r\n <th>Dirección del Punto de Entrega</th>\r\n <th>Nit</th>\r\n <th>Persona Que recibió</th>\r\n <th>Contacto Persona Que recibió</th>\r\n <th>Placa</th>\r\n <th>Conductor asignado</th>\r\n <th>Estado Punto Entrega</th>\r\n <th>Estado Ruta</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr v-for=\"item in listaPuntosEntregaFiltrados\" :key=\"item.id\" class=\"animated-row\">\r\n <td>{{ formatDateTime(item.fechaHoraInicio) }}</td>\r\n <td>{{ formatDateTime(item.fechaHoraEntrega) }}</td>\r\n <td>{{ formatDateTime(item.fechaHoraFin) }}</td>\r\n <td>{{ item.lugarEntrega ? item.lugarEntrega : \"No encontrado\" }}</td>\r\n <td>{{ item.nombreRuta ? item.nombreRuta : \"No encontrado\" }}</td>\r\n <td>{{ item.descripcionRuta ? item.descripcionRuta : \"No encontrado\" }}</td>\r\n <td>{{ item.numeroDocumentoEntrega ? item.numeroDocumentoEntrega : \"No encontrado\" }}\r\n </td>\r\n <td>{{ item.nombreCliente ? item.nombreCliente : \"No encontrado\" }}</td>\r\n <td>{{ item.direccionPuntoEntrega ? item.direccionPuntoEntrega : \"No encontrado\" }}</td>\r\n <td>{{ item.codigoSN ? item.codigoSN : \"No encontrado\" }}</td>\r\n <td>{{ item.nombrePersonaCliente ? item.nombrePersonaCliente : \"No encontrado\" }}</td>\r\n <td>{{ item.contactoPersonaCliente ? item.contactoPersonaCliente : \"No encontrado\" }}\r\n </td>\r\n <td>{{ item.placa ? item.placa : \"No encontrado\" }}</td>\r\n <td>{{ item.nombreCompleto ? item.nombreCompleto : \"No encontrado\" }}</td>\r\n <td>\r\n <span class=\"badge\" :class=\"getBadgeClass(item.estadoPuntoEntrega)\">\r\n {{ item.estadoPuntoEntrega }}\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"badge\" :class=\"getBadgeClass(item.estadoRuta)\">\r\n {{ item.estadoRuta }}\r\n </span>\r\n </td>\r\n </tr>\r\n <tr v-if=\"listaPuntosEntregaFiltrados.length === 0\">\r\n <td colspan=\"15\" class=\"text-center\">No se encontraron registros que coincidan con los\r\n criterios de búsqueda</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n <!-- Paginación -->\r\n <div class=\"d-flex justify-content-between align-items-center mt-3\">\r\n <div>\r\n <span>Página {{ paginacion.paginaActual }} de {{ paginacion.totalPaginas }}</span>\r\n </div>\r\n <div>\r\n <nav aria-label=\"Navegación de páginas\">\r\n <ul class=\"pagination justify-content-end mb-0\">\r\n <li class=\"page-item\" :class=\"{ disabled: paginacion.paginaActual === 1 }\">\r\n <a class=\"page-link\" href=\"#\" @click.prevent=\"cambiarPagina(1)\">\r\n <i class=\"fas fa-angle-double-left\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\" :class=\"{ disabled: paginacion.paginaActual === 1 }\">\r\n <a class=\"page-link\" href=\"#\"\r\n @click.prevent=\"cambiarPagina(paginacion.paginaActual - 1)\">\r\n <i class=\"fas fa-angle-left\"></i>\r\n </a>\r\n </li>\r\n <li v-for=\"pagina in paginasVisibles\" :key=\"pagina\" class=\"page-item\"\r\n :class=\"{ active: pagina === paginacion.paginaActual }\">\r\n <a class=\"page-link\" href=\"#\" @click.prevent=\"cambiarPagina(pagina)\">{{ pagina\r\n }}</a>\r\n </li>\r\n <li class=\"page-item\"\r\n :class=\"{ disabled: paginacion.paginaActual === paginacion.totalPaginas || paginacion.totalPaginas === 0 }\">\r\n <a class=\"page-link\" href=\"#\"\r\n @click.prevent=\"cambiarPagina(paginacion.paginaActual + 1)\">\r\n <i class=\"fas fa-angle-right\"></i>\r\n </a>\r\n </li>\r\n <li class=\"page-item\"\r\n :class=\"{ disabled: paginacion.paginaActual === paginacion.totalPaginas || paginacion.totalPaginas === 0 }\">\r\n <a class=\"page-link\" href=\"#\"\r\n @click.prevent=\"cambiarPagina(paginacion.totalPaginas)\">\r\n <i class=\"fas fa-angle-double-right\"></i>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </HXContentCard>\r\n</template>\r\n\r\n<script>\r\nimport CardTable from \"../../../components/cardTable/CardTable.vue\";\r\nimport exportExcel from \"../../../components/exportExcel/exportExcel.vue\";\r\n\r\nexport default {\r\n name: \"DashboardPuntosEntrega\",\r\n components: {\r\n CardTable,\r\n exportExcel\r\n },\r\n data() {\r\n return {\r\n persona: null,\r\n listaPuntosEntrega: [],\r\n listaPuntosEntregaFiltrados: [],\r\n loading: false,\r\n error: null,\r\n dataTableInstance: null,\r\n mostrarFiltrosAvanzados: false,\r\n filtros: {\r\n fechaInicio: this.getFormattedDate(new Date()),\r\n fechaFin: null,\r\n busqueda: \"\",\r\n estadoPuntoEntrega: \"\",\r\n estadoRuta: \"\",\r\n centroCosto: \"\",\r\n cliente: \"\"\r\n },\r\n paginacion: {\r\n paginaActual: 1,\r\n registrosPorPagina: 10,\r\n totalPaginas: 0,\r\n totalFiltrados: 0\r\n },\r\n dataCards: [\r\n {\r\n title: \"Total de Puntos de Entrega\",\r\n value: () => this.listaPuntosEntrega.length,\r\n iconName: \"fas fa-map-marker-alt\",\r\n color: \"rgba(254, 114, 28, 1)\",\r\n tipo: \"squared\",\r\n animated: \"bounce\",\r\n },\r\n {\r\n title: \"Rutas Iniciadas\",\r\n value: () => this.listaPuntosEntrega.filter(item => item.estadoRuta === \"Iniciada\").length,\r\n iconName: \"fas fa-play-circle\",\r\n color: \"rgba(22, 162, 117, 1)\",\r\n tipo: \"squared\",\r\n animated: \"bounce\",\r\n },\r\n {\r\n title: \"Puntos No Iniciados\",\r\n value: () => this.listaPuntosEntrega.filter(item => item.estadoPuntoEntrega === \"No ha iniciado\").length,\r\n iconName: \"fas fa-hourglass-start\",\r\n color: \"rgba(71, 136, 255, 1)\",\r\n tipo: \"squared\",\r\n animated: \"bounce\",\r\n },\r\n {\r\n title: \"Puntos Completados\",\r\n value: () => this.listaPuntosEntrega.filter(item => item.estadoPuntoEntrega === \"Completado\").length,\r\n iconName: \"fas fa-check-circle\",\r\n color: \"rgba(255, 193, 7, 1)\",\r\n tipo: \"squared\",\r\n animated: \"bounce\",\r\n },\r\n ],\r\n\r\n exportarRemisiones: [\r\n { key: \"numeroDocumentoEntrega\", header: \"Número Documento Entrega\" },\r\n { key: \"descripcionPuntoEntrega\", header: \"Descripción Punto Entrega\" },\r\n { key: \"nombreCliente\", header: \"Nombre Cliente\" },\r\n { key: \"direccionPuntoEntrega\", header: \"Dirección Punto Entrega\" },\r\n { key: \"codigoSN\", header: \"Código SN\" },\r\n { key: \"nombrePersonaCliente\", header: \"Nombre Persona Cliente\" },\r\n { key: \"contactoPersonaCliente\", header: \"Contacto Persona Cliente\" },\r\n { key: \"distanciaRecorrida\", header: \"Distancia Recorrida\" },\r\n { key: \"tiempoRecorrido\", header: \"Tiempo Recorrido\" },\r\n { key: \"fechaHoraInicio\", header: \"Fecha Hora Inicio\" },\r\n { key: \"fechaHoraEntrega\", header: \"Fecha Hora Entrega\" },\r\n { key: \"fechaHoraFin\", header: \"Fecha Hora Fin\" },\r\n { key: \"tiempoDescarga\", header: \"Tiempo Descarga\" },\r\n { key: \"estadoPuntoEntrega\", header: \"Estado Punto Entrega\" },\r\n { key: \"plantillaRutasId\", header: \"Plantilla Rutas ID\" },\r\n { key: \"puntosEntregaGeneralesId\", header: \"Puntos Entrega Generales ID\" },\r\n { key: \"lugarEntrega\", header: \"Lugar Entrega\" },\r\n { key: \"latUbicacionEntrega\", header: \"Lat Ubicacion Entrega\" },\r\n { key: \"longUbicacionEntrega\", header: \"Long Ubicacion Entrega\" },\r\n { key: \"fechaHoraInicioRuta\", header: \"Fecha Hora Inicio Ruta\" },\r\n { key: \"nombreRuta\", header: \"Nombre Ruta\" },\r\n { key: \"descripcionRuta\", header: \"Descripción Ruta\" },\r\n { key: \"placa\", header: \"Placa\" },\r\n { key: \"nombreCompleto\", header: \"Nombre Completo\" },\r\n { key: \"distanciaTotalRecorrida\", header: \"Distancia Total Recorrida\" },\r\n { key: \"tiempoTotalRecorrido\", header: \"Tiempo Total Recorrido\" },\r\n { key: \"estadoRuta\", header: \"Estado Ruta\" }\r\n ],\r\n };\r\n },\r\n computed: {\r\n paginasVisibles() {\r\n const totalPaginas = this.paginacion.totalPaginas;\r\n const paginaActual = this.paginacion.paginaActual;\r\n\r\n if (totalPaginas <= 5) {\r\n return Array.from({ length: totalPaginas }, (_, i) => i + 1);\r\n }\r\n\r\n if (paginaActual <= 3) {\r\n return [1, 2, 3, 4, 5];\r\n }\r\n\r\n if (paginaActual >= totalPaginas - 2) {\r\n return [\r\n totalPaginas - 4,\r\n totalPaginas - 3,\r\n totalPaginas - 2,\r\n totalPaginas - 1,\r\n totalPaginas\r\n ];\r\n }\r\n\r\n return [\r\n paginaActual - 2,\r\n paginaActual - 1,\r\n paginaActual,\r\n paginaActual + 1,\r\n paginaActual + 2\r\n ];\r\n }\r\n },\r\n watch: {\r\n 'filtros.busqueda': function () {\r\n this.paginacion.paginaActual = 1;\r\n this.aplicarFiltros();\r\n }\r\n },\r\n async mounted() {\r\n try {\r\n const personaStr = localStorage.getItem(\"setPersonaAct\");\r\n if (personaStr) {\r\n this.persona = JSON.parse(personaStr);\r\n await this.buscarPuntosEntrega();\r\n } else {\r\n console.log(\"No se encontró información de la persona en localStorage\");\r\n }\r\n } catch (error) {\r\n console.error(\"Error al obtener la información de la persona:\", error);\r\n console.log(\"Error al obtener la información de la persona\");\r\n }\r\n },\r\n methods: {\r\n getFormattedDate(date) {\r\n return date.toISOString().split('T')[0];\r\n },\r\n\r\n formatDateForBackend(dateString) {\r\n if (!dateString) return null;\r\n const date = new Date(dateString);\r\n return date.toISOString();\r\n },\r\n\r\n async buscarPuntosEntrega() {\r\n if (!this.persona || !this.persona.empresa || !this.persona.empresa.id) {\r\n console.error(\"No se pudo obtener la información de la empresa\");\r\n this.error = \"Información de empresa no disponible\";\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.error = null;\r\n\r\n try {\r\n const fechaInicio = this.formatDateForBackend(this.filtros.fechaInicio);\r\n const fechaFin = this.formatDateForBackend(this.filtros.fechaFin);\r\n const empresaId = this.persona.empresa.id;\r\n\r\n console.log(\"Empresa ID:\", empresaId);\r\n console.log(\"Fecha inicio:\", fechaInicio);\r\n console.log(\"Fecha fin:\", fechaFin);\r\n\r\n let url = `EntregasApp/GetPuntosEntregaYRemisiones?EmpresaId=${empresaId}&fechaInicio=${fechaInicio}`;\r\n if (fechaFin) {\r\n url += `&fechaFin=${fechaFin}`;\r\n }\r\n\r\n console.log(\"URL completa:\", url);\r\n\r\n let res = await this.$store.dispatch(\"hl_get\", { path: url });\r\n console.log(\"Respuesta completa:\", res);\r\n\r\n if (res.success) {\r\n console.log(\"Datos recibidos:\", res.data);\r\n\r\n this.listaPuntosEntrega = res.data.map(item => ({\r\n id: item.Id || item.id,\r\n empresaId: item.EmpresaId || item.empresaId,\r\n\r\n numeroDocumentoEntrega: item.NumeroDocumentoEntrega || item.numeroDocumentoEntrega,\r\n descripcionPuntoEntrega: item.DescripcionPuntoEntrega || item.descripcionPuntoEntrega,\r\n nombreCliente: item.NombreCliente || item.nombreCliente,\r\n direccionPuntoEntrega: item.DireccionPuntoEntrega || item.direccionPuntoEntrega,\r\n codigoSN: item.CodigoSN || item.codigoSN,\r\n nombrePersonaCliente: item.NombrePersonaCliente || item.nombrePersonaCliente,\r\n contactoPersonaCliente: item.ContactoPersonaCliente || item.contactoPersonaCliente,\r\n\r\n distanciaRecorrida: item.DistanciaRecorrida || item.distanciaRecorrida,\r\n tiempoRecorrido: item.TiempoRecorrido || item.tiempoRecorrido,\r\n fechaHoraInicio: item.FechaHoraInicio || item.fechaHoraInicio,\r\n fechaHoraEntrega: item.FechaHoraEntrega || item.fechaHoraEntrega,\r\n fechaHoraFin: item.FechaHoraFin || item.fechaHoraFin,\r\n tiempoDescarga: item.TiempoDescarga || item.tiempoDescarga,\r\n estadoPuntoEntrega: item.EstadoPuntoEntrega || item.estadoPuntoEntrega,\r\n plantillaRutasId: item.PlantillaRutasId || item.plantillaRutasId,\r\n puntosEntregaGeneralesId: item.PuntosEntregaGeneralesId || item.puntosEntregaGeneralesId,\r\n lugarEntrega: item.LugarEntrega || item.lugarEntrega,\r\n latUbicacionEntrega: item.LatUbicacionEntrega || item.latUbicacionEntrega,\r\n longUbicacionEntrega: item.LongUbicacionEntrega || item.longUbicacionEntrega,\r\n fechaHoraInicioRuta: item.FechaHoraInicioRuta || item.fechaHoraInicioRuta,\r\n nombreRuta: item.NombreRuta || item.nombreRuta,\r\n descripcionRuta: item.DescripcionRuta || item.descripcionRuta,\r\n placa: item.Placa || item.placa,\r\n nombreCompleto: item.nombreCompleto || item.nombreCompleto,\r\n distanciaTotalRecorrida: item.DistanciaTotalRecorrida || item.distanciaTotalRecorrida,\r\n tiempoTotalRecorrido: item.TiempoTotalRecorrido || item.tiempoTotalRecorrido,\r\n estadoRuta: item.EstadoRuta || item.estadoRuta,\r\n }));\r\n\r\n this.aplicarFiltros();\r\n } else {\r\n console.warn(\"No se encontraron Puntos de Entrega\");\r\n this.listaPuntosEntrega = [];\r\n this.listaPuntosEntregaFiltrados = [];\r\n this.error = \"No se encontraron datos para los criterios especificados\";\r\n this.actualizarPaginacion();\r\n }\r\n } catch (error) {\r\n console.error(\"Error al obtener los datos:\", error);\r\n this.error = \"Ocurrió un error al obtener los datos. Por favor, intente nuevamente.\";\r\n this.listaPuntosEntrega = [];\r\n this.listaPuntosEntregaFiltrados = [];\r\n this.actualizarPaginacion();\r\n } finally {\r\n this.loading = false;\r\n }\r\n },\r\n\r\n aplicarBusqueda() {\r\n this.aplicarFiltros();\r\n },\r\n\r\n limpiarBusqueda() {\r\n this.filtros.busqueda = \"\";\r\n this.aplicarFiltros();\r\n },\r\n\r\n aplicarFiltrosAvanzados() {\r\n this.paginacion.paginaActual = 1;\r\n this.aplicarFiltros();\r\n },\r\n\r\n aplicarFiltros() {\r\n const busqueda = this.filtros.busqueda.toLowerCase().trim();\r\n const estadoPuntoEntrega = this.filtros.estadoPuntoEntrega;\r\n const estadoRuta = this.filtros.estadoRuta;\r\n const centroCosto = this.filtros.centroCosto.toLowerCase().trim();\r\n const cliente = this.filtros.cliente.toLowerCase().trim();\r\n\r\n // Aplicar todos los filtros\r\n const datosFiltrados = this.listaPuntosEntrega.filter(item => {\r\n // Filtro de búsqueda general\r\n const cumpleBusqueda = busqueda === \"\" ||\r\n Object.values(item).some(val =>\r\n val !== null &&\r\n val !== undefined &&\r\n val.toString().toLowerCase().includes(busqueda)\r\n );\r\n\r\n // Filtros avanzados\r\n const cumpleEstadoPunto = estadoPuntoEntrega === \"\" ||\r\n item.estadoPuntoEntrega === estadoPuntoEntrega;\r\n\r\n const cumpleEstadoRuta = estadoRuta === \"\" ||\r\n item.estadoRuta === estadoRuta;\r\n\r\n const cumpleCentroCosto = centroCosto === \"\" ||\r\n (item.lugarEntrega && item.lugarEntrega.toLowerCase().includes(centroCosto));\r\n\r\n const cumpleCliente = cliente === \"\" ||\r\n (item.nombreCliente && item.nombreCliente.toLowerCase().includes(cliente));\r\n\r\n return cumpleBusqueda && cumpleEstadoPunto && cumpleEstadoRuta &&\r\n cumpleCentroCosto && cumpleCliente;\r\n });\r\n\r\n // Actualizar datos filtrados y paginación\r\n this.paginacion.totalFiltrados = datosFiltrados.length;\r\n this.actualizarPaginacion();\r\n\r\n // Aplicar paginación\r\n const inicio = (this.paginacion.paginaActual - 1) * this.paginacion.registrosPorPagina;\r\n const fin = inicio + this.paginacion.registrosPorPagina;\r\n this.listaPuntosEntregaFiltrados = datosFiltrados.slice(inicio, fin);\r\n },\r\n\r\n actualizarPaginacion() {\r\n this.paginacion.totalPaginas = Math.ceil(this.paginacion.totalFiltrados / this.paginacion.registrosPorPagina) || 1;\r\n\r\n // Asegurarse de que la página actual no sea mayor que el total de páginas\r\n if (this.paginacion.paginaActual > this.paginacion.totalPaginas) {\r\n this.paginacion.paginaActual = this.paginacion.totalPaginas;\r\n }\r\n },\r\n\r\n cambiarPagina(pagina) {\r\n if (pagina < 1 || pagina > this.paginacion.totalPaginas) {\r\n return;\r\n }\r\n\r\n this.paginacion.paginaActual = pagina;\r\n this.aplicarFiltros();\r\n },\r\n\r\n cambiarRegistrosPorPagina() {\r\n this.paginacion.paginaActual = 1;\r\n this.aplicarFiltros();\r\n },\r\n\r\n formatDateTime(dateTimeStr) {\r\n if (!dateTimeStr) return 'Fecha no encontrada';\r\n\r\n const date = new Date(dateTimeStr);\r\n return date.toLocaleString('es-CO', {\r\n year: 'numeric',\r\n month: '2-digit',\r\n day: '2-digit',\r\n hour: '2-digit',\r\n minute: '2-digit'\r\n });\r\n },\r\n\r\n getBadgeClass(estado) {\r\n switch (estado.toLowerCase()) {\r\n case 'no ha iniciado':\r\n case 'pendiente':\r\n return 'badge-warning';\r\n case 'en proceso':\r\n case 'iniciada':\r\n return 'badge-info';\r\n case 'completado':\r\n case 'finalizada':\r\n return 'badge-success';\r\n case 'cancelado':\r\n return 'badge-danger';\r\n default:\r\n return 'badge-secondary';\r\n }\r\n },\r\n }\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n.error-message {\r\n color: red;\r\n margin-top: 10px;\r\n}\r\n\r\n.modal-content {\r\n background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);\r\n border-radius: 15px;\r\n padding: 30px;\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);\r\n}\r\n\r\n.modal-header {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.modal-title {\r\n font-size: 1.8rem;\r\n margin-left: 15px;\r\n color: #2c3e50;\r\n}\r\n\r\n.route-details {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 25px;\r\n}\r\n\r\n.detail-section {\r\n background-color: rgba(255, 255, 255, 0.5);\r\n border-radius: 12px;\r\n padding: 15px;\r\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);\r\n}\r\n\r\n.section-title {\r\n color: #2c3e50;\r\n border-bottom: 2px solid #3498db;\r\n padding-bottom: 8px;\r\n margin-bottom: 15px;\r\n}\r\n\r\n.detail-item {\r\n background-color: rgba(255, 255, 255, 0.7);\r\n padding: 15px;\r\n border-radius: 10px;\r\n margin-bottom: 15px;\r\n transition: all 0.3s ease;\r\n}\r\n\r\n.detail-item:hover {\r\n transform: translateY(-3px);\r\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.detail-item p {\r\n margin-bottom: 5px;\r\n}\r\n\r\n.animated {\r\n animation-duration: 0.5s;\r\n animation-fill-mode: both;\r\n}\r\n\r\n@keyframes fadeIn {\r\n from {\r\n opacity: 0;\r\n }\r\n\r\n to {\r\n opacity: 1;\r\n }\r\n}\r\n\r\n.fadeIn {\r\n animation-name: fadeIn;\r\n}\r\n\r\n.emoji-container {\r\n font-size: 2.5rem;\r\n margin-bottom: 20px;\r\n}\r\n\r\n.animated-row {\r\n transition: background-color 0.3s ease;\r\n}\r\n\r\n.animated-row:hover {\r\n background-color: rgba(0, 0, 0, 0.05);\r\n}\r\n\r\n.form-group label {\r\n font-weight: 600;\r\n color: #2c3e50;\r\n}\r\n\r\n.form-control {\r\n border-radius: 0, 0, 0.05;\r\n}\r\n\r\n.form-group label {\r\n font-weight: 600;\r\n color: #2c3e50;\r\n}\r\n\r\n.form-control {\r\n border-radius: 8px;\r\n border: 1px solid #ddd;\r\n padding: 8px 12px;\r\n transition: all 0.3s ease;\r\n}\r\n\r\n.form-control:focus {\r\n border-color: #3498db;\r\n box-shadow: 0 0 0 0.2rem rgba(52, 152, 219, 0.25);\r\n}\r\n\r\n.table-responsive {\r\n overflow-x: auto;\r\n}\r\n\r\n.badge {\r\n font-size: 0.85em;\r\n padding: 0.35em 0.65em;\r\n}\r\n\r\n.badge-warning {\r\n background-color: #ffc107;\r\n color: #212529;\r\n}\r\n\r\n.badge-info {\r\n background-color: #17a2b8;\r\n color: #fff;\r\n}\r\n\r\n.badge-success {\r\n background-color: #28a745;\r\n color: #fff;\r\n}\r\n\r\n.badge-danger {\r\n background-color: #dc3545;\r\n color: #fff;\r\n}\r\n\r\n.badge-secondary {\r\n background-color: #6c757d;\r\n color: #fff;\r\n}\r\n\r\n/* Estilos para la paginación */\r\n.pagination {\r\n margin-bottom: 0;\r\n}\r\n\r\n.page-link {\r\n color: #3498db;\r\n background-color: #fff;\r\n border: 1px solid #dee2e6;\r\n}\r\n\r\n.page-link:hover {\r\n color: #216a94;\r\n background-color: #e9ecef;\r\n border-color: #dee2e6;\r\n}\r\n\r\n.page-item.active .page-link {\r\n background-color: #3498db;\r\n border-color: #3498db;\r\n}\r\n\r\n.page-item.disabled .page-link {\r\n color: #6c757d;\r\n background-color: #fff;\r\n}\r\n\r\n/* Transiciones */\r\n.fade-enter-active,\r\n.fade-leave-active {\r\n transition: opacity 0.3s;\r\n}\r\n\r\n.fade-enter,\r\n.fade-leave-to {\r\n opacity: 0;\r\n}\r\n</style>","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PuntosEntregaYRemisiones.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/@vue/cli-plugin-babel/node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PuntosEntregaYRemisiones.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PuntosEntregaYRemisiones.vue?vue&type=template&id=2458fc1a&scoped=true\"\nimport script from \"./PuntosEntregaYRemisiones.vue?vue&type=script&lang=js\"\nexport * from \"./PuntosEntregaYRemisiones.vue?vue&type=script&lang=js\"\nimport style0 from \"./PuntosEntregaYRemisiones.vue?vue&type=style&index=0&id=2458fc1a&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2458fc1a\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./exportExcel.vue?vue&type=style&index=0&id=77d2f6e9&prod&lang=css\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PuntosEntregaYRemisiones.vue?vue&type=style&index=0&id=2458fc1a&prod&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CardTable.vue?vue&type=style&index=0&id=73483910&prod&scoped=true&lang=css\""],"sourceRoot":""}