{"version":3,"sources":["webpack:///./src/components/AdminComponents/MapaDePedidos.vue?68d4","webpack:///src/components/AdminComponents/MapaDePedidos.vue","webpack:///./src/components/AdminComponents/MapaDePedidos.vue?ba2f","webpack:///./src/components/AdminComponents/MapaDePedidos.vue","webpack:///./src/components/AdminComponents/MapaDePedidos.vue?4c04"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","ref","staticStyle","staticRenderFns","name","mixins","Helpers","data","pedidosService","direccionesService","map","google","mapConfig","center","lat","lng","zoom","streetViewControl","restriction","puntos","pedidosUbicacion","bounds","poligonoCobertura","created","methods","fetchAreaCobertura","getItemsForList","initializeMap","maps","Map","mapContainer","addZonaDeCobertura","objectPoligonoCobertura","Polygon","paths","strokeColor","strokeOpacity","strokeWeight","fillColor","fillOpacity","setMap","addMarker","content","contentString","position","cy","cx","draggable","title","codigo_pedido","animation","Animation","DROP","objectMarcador","addListener","infowindow","open","anchor","shouldFocus","push","pintarPuntos","forEach","ajustarmapa","getBoundFromPoligon","getBoundFromPuntos","item","getPosition","ubicaciones","fitBounds","component"],"mappings":"0HAAA,IAAIA,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,MAAM,CAACG,IAAI,YAAYD,YAAY,aAAaE,YAAY,CAAC,OAAS,aAChNC,EAAkB,G,uICWtB,GACEC,KAAM,cACNC,OAAQ,CAACC,EAAX,MACEC,KAHF,WAII,MAAO,CACLC,eAAgB,KAChBC,mBAAN,KACMC,IAAK,KACLC,OAAQ,KACRC,UAAW,CACTC,OAAQ,CACNC,IAAK,kBACLC,KAAM,mBAERC,KAAM,EACNC,mBAAmB,EACnBC,YAAa,MAEfL,OAAQ,CACNC,IAAK,kBACLC,KAAM,mBAERI,OAAQ,GACRC,iBAAkB,GAClBC,OAAQ,KACRC,kBAAmB,KAGvBC,QA5BF,WA6BI5B,KAAKa,eAAiB,IAAI,EAA9B,KACIb,KAAKc,mBAAqB,IAAI,EAAlC,MAEE,QAhCF,WAgCA,qKACA,uBADA,SAEA,KACA,mDAHA,OAEA,EAFA,OAKA,WACA,wCACA,kBAPA,8CASEe,QAAS,CACPC,mBADJ,WAEM9B,KAAK2B,kBAAX,4DAEII,gBAJJ,WAIA,WACM/B,KAAKa,eACX,aACA,kBACQ,EAAR,8CACU,OAAV,KAEQ,EAAR,kBAEA,kBACQ,EAAR,4BACU,MAAV,QACU,QAAV,SACU,QAAV,6CAIImB,cArBJ,WAsBM,IAAN,uBACMhC,KAAKe,IAAM,IAAIf,KAAKgB,OAAOiB,KAAKC,IAAIC,EAAcnC,KAAKiB,WACvDjB,KAAKoC,qBACLpC,KAAK+B,mBAEPK,mBA3BJ,WA4BMpC,KAAKqC,wBAA0B,IAAIrC,KAAKgB,OAAOiB,KAAKK,QAAQ,CAC1DC,MAAOvC,KAAK2B,kBACZa,YAAa,UACbC,cAAe,GACfC,aAAc,EACdC,UAAW,UACXC,YAAa,KAEf5C,KAAKqC,wBAAwBQ,OAAO7C,KAAKe,MAE3C+B,UAtCJ,SAsCA,cACA,4FAEA,gBAFA,gFAGA,QAHA,eAGA,gCAHA,cAGA,6BAHA,gFAIA,YAJA,2FAKA,gBALA,uBAKA,YALA,gFAMA,gBANA,gFAOA,kBAPA,4HAUM,EAAN,+BACQ,GAAR,mKAEM,GAAN,iCAGM,IAAN,mCACQC,QAASC,IAGjB,+BACQC,SAAU,CACR9B,IAAKP,EAAKsC,GACV9B,IAAKR,EAAKuC,IAEZpC,IAAKf,KAAKe,IACVqC,WAAW,EACXC,MAAOzC,EAAK0C,cACZC,UAAWvD,KAAKgB,OAAOiB,KAAKuB,UAAUC,OAGxCC,EAAeC,YAAY,SAAS,WAClCC,EAAWC,KAAK,CACdC,OAAQJ,EACR3C,IAAK,EAAf,IACUgD,aAAa,OAIjB/D,KAAKwB,OAAOwC,KAAKN,IAEnBO,aAhFJ,WAgFA,WACMjE,KAAKwB,OAAS,GACdxB,KAAKyB,iBAAiByC,SAAQ,SAApC,GACQ,EAAR,gBAEMlE,KAAKmE,eAEPC,oBAvFJ,WAuFA,WACM,OAAOpE,KAAK2B,kBAAkBZ,KAAI,SAAxC,GACQ,OAAO,IAAI,EAAnB,oCAGIsD,mBA5FJ,WA6FM,OAAOrE,KAAKwB,OAAOT,KAAI,SAA7B,GACQ,OAAOuD,EAAKC,kBAGhBJ,YAjGJ,WAiGA,WACA,6BAEMK,EAAYN,SAAQ,SAA1B,GACQ,EAAR,oBAEMlE,KAAKe,IAAI0D,UAAUzE,KAAK0B,WC5JwU,I,wBCQlWgD,EAAY,eACd,EACA5E,EACAU,GACA,EACA,KACA,WACA,MAIa,aAAAkE,E,oECnBf","file":"js/chunk-5be90450.860bd55f.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container-cental\"},[_c('div',{ref:\"googleMap\",staticClass:\"google-map\",staticStyle:{\"height\":\"100%\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div class=\"container-cental\">\r\n <div class=\"google-map\" ref=\"googleMap\" style=\"height: 100%\"></div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport GoogleMapsApiLoader from \"google-maps-api-loader\";\r\nimport DireccionesService from \"@/services/direcciones.service\";\r\nimport PedidosService from \"@/services/pedidos.service\";\r\nimport EventBus from \"@/services/eventBus.js\";\r\nimport { Helpers } from \"@/mixins/Helpers\";\r\nexport default {\r\n name: \"MapaPedidos\",\r\n mixins: [Helpers],\r\n data() {\r\n return {\r\n pedidosService: null,\r\n direccionesService:null,\r\n map: null,\r\n google: null,\r\n mapConfig: {\r\n center: {\r\n lat: 4.683359696392844,\r\n lng: -74.08041937443866,\r\n },\r\n zoom: 8,\r\n streetViewControl: false,\r\n restriction: null,\r\n },\r\n center: {\r\n lat: 4.683359696392844,\r\n lng: -74.08041937443866,\r\n },\r\n puntos: [],\r\n pedidosUbicacion: [],\r\n bounds: null,\r\n poligonoCobertura: [],\r\n };\r\n },\r\n created() {\r\n this.pedidosService = new PedidosService();\r\n this.direccionesService = new DireccionesService();\r\n },\r\n async mounted() {\r\n this.fetchAreaCobertura();\r\n const googleMapApi = await GoogleMapsApiLoader({\r\n apiKey: \"AIzaSyCFnBjvp7-DXvPyohgfyFPUmRFH4o1CEUM\",\r\n });\r\n this.google = googleMapApi;\r\n this.bounds = new this.google.maps.LatLngBounds();\r\n this.initializeMap();\r\n },\r\n methods: {\r\n fetchAreaCobertura(){\r\n this.poligonoCobertura=[...this.direccionesService.getAreaCobertura()]\r\n },\r\n getItemsForList() {\r\n this.pedidosService\r\n .pedidosAll()\r\n .then((result) => {\r\n this.pedidosUbicacion = result.data.data.map((item) => {\r\n return item;\r\n });\r\n this.pintarPuntos();\r\n })\r\n .catch(() => {\r\n EventBus.$emit(\"MOSTRAR_TOAST\", {\r\n title: \"Error\",\r\n variant: \"danger\",\r\n message: \"Error al recuperar items de la lista\",\r\n });\r\n });\r\n },\r\n initializeMap() {\r\n const mapContainer = this.$refs.googleMap;\r\n this.map = new this.google.maps.Map(mapContainer, this.mapConfig);\r\n this.addZonaDeCobertura();\r\n this.getItemsForList();\r\n },\r\n addZonaDeCobertura() {\r\n this.objectPoligonoCobertura = new this.google.maps.Polygon({\r\n paths: this.poligonoCobertura,\r\n strokeColor: \"#FF0000\",\r\n strokeOpacity: 0.8,\r\n strokeWeight: 2,\r\n fillColor: \"#FF0000\",\r\n fillOpacity: 0.1,\r\n });\r\n this.objectPoligonoCobertura.setMap(this.map);\r\n },\r\n addMarker(data) {\r\n let contentString = `\r\n <div>\r\n <p style=\"padding:0px; margin:0px;margin-top:2px;\">${data.codigo_pedido}</p>\r\n <p style=\"padding:0px; margin:0px;margin-top:2px;\">${data.fecha} de ${this.secondsToHM(data.hora_inicio)} a ${this.secondsToHM(data.hora_fin)}</p>\r\n <p style=\"padding:0px; margin:0px;margin-top:2px;\">${data.direccion}</p>\r\n <p style=\"padding:0px; margin:0px;margin-top:2px;\">torre/mnz: ${data.torre_manzana} apto/casa: ${data.apto_casa}</p>\r\n <p style=\"padding:0px; margin:0px;margin-top:2px;\">${data.nombre_recibe}</p>\r\n <p style=\"padding:0px; margin:0px;margin-top:2px;\">${data.telefono_recibe}</p>\r\n <div>\r\n <p style=\"padding:0px; margin:0px;margin-top:2px;font-weight:600\">Productos</p>`\r\n data.productos.forEach((item)=>{\r\n contentString+= `<p style=\"padding:0px; margin:0px;\">${item.cantidad} ${item.producto} - ${item.presentacion} ${item.es_adicion==1?'(adición)':''}</p>`\r\n }) \r\n contentString+= `</div>\r\n </div>\r\n `;\r\n const infowindow = new this.google.maps.InfoWindow({\r\n content: contentString,\r\n });\r\n\r\n const objectMarcador = new this.google.maps.Marker({\r\n position: {\r\n lat: data.cy,\r\n lng: data.cx,\r\n },\r\n map: this.map,\r\n draggable: false,\r\n title: data.codigo_pedido,\r\n animation: this.google.maps.Animation.DROP,\r\n });\r\n\r\n objectMarcador.addListener(\"click\", () => {\r\n infowindow.open({\r\n anchor: objectMarcador,\r\n map: this.map,\r\n shouldFocus: false,\r\n });\r\n });\r\n\r\n this.puntos.push(objectMarcador);\r\n },\r\n pintarPuntos() {\r\n this.puntos = [];\r\n this.pedidosUbicacion.forEach((item) => {\r\n this.addMarker(item);\r\n });\r\n this.ajustarmapa();\r\n },\r\n getBoundFromPoligon() {\r\n return this.poligonoCobertura.map((item) => {\r\n return new this.google.maps.LatLng(item.lat, item.lng);\r\n });\r\n },\r\n getBoundFromPuntos() {\r\n return this.puntos.map((item) => {\r\n return item.getPosition();\r\n });\r\n },\r\n ajustarmapa() {\r\n const ubicaciones = this.getBoundFromPoligon();\r\n //const ubicaciones = this.getBoundFromPuntos();\r\n ubicaciones.forEach((item) => {\r\n this.bounds.extend(item);\r\n });\r\n this.map.fitBounds(this.bounds);\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.container-cental {\r\n width: 100%;\r\n height: calc(100vh - 55px);\r\n padding: 0px;\r\n}\r\n</style>\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapaDePedidos.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapaDePedidos.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MapaDePedidos.vue?vue&type=template&id=17c1da64&scoped=true&\"\nimport script from \"./MapaDePedidos.vue?vue&type=script&lang=js&\"\nexport * from \"./MapaDePedidos.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MapaDePedidos.vue?vue&type=style&index=0&id=17c1da64&lang=scss&scoped=true&\"\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 \"17c1da64\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MapaDePedidos.vue?vue&type=style&index=0&id=17c1da64&lang=scss&scoped=true&\""],"sourceRoot":""}