Commit bd8d9956da7cebf322ace7d369fa3e4b3fa7c3fd
1 parent
cfbb92b6f6
Exists in
master
Cambio en seteo de informacion al sidebar.
Showing
4 changed files
with
29 additions
and
16 deletions
Show diff stats
src/app/components/busqueda-productos/busqueda-productos.component.html
| ... | ... | @@ -83,7 +83,7 @@ |
| 83 | 83 | type="button" |
| 84 | 84 | class="btn btn-light btn-lg shadow-sm" |
| 85 | 85 | [routerLink]="['/inicio']"> |
| 86 | - <span class="font-weight-normal h6">Volver </span> | |
| 86 | + <span class="font-weight-normal h6 pr-2">Volver</span> | |
| 87 | 87 | <i class="fa fa-undo text-warning" aria-hidden="true"></i> |
| 88 | 88 | </button> |
| 89 | 89 | </div> |
src/app/components/busqueda-productos/busqueda-productos.component.ts
| 1 | -import { Component, OnInit, Input, ViewChild, AfterViewInit } from '@angular/core'; | |
| 1 | +import { Component, OnInit } from '@angular/core'; | |
| 2 | 2 | import { ProductoService } from 'src/app/services/producto.service'; |
| 3 | 3 | import { Producto } from 'src/app/wrappers/producto'; |
| 4 | 4 | import { appSettings } from 'src/etc/AppSettings'; |
| 5 | -import { SidebarComponent } from '../sidebar/sidebar.component'; | |
| 6 | 5 | |
| 7 | 6 | @Component({ |
| 8 | 7 | selector: 'app-busqueda-productos', |
| ... | ... | @@ -18,14 +17,9 @@ export class BusquedaProductosComponent implements OnInit { |
| 18 | 17 | private categoria: Categorias = Categorias.todos; |
| 19 | 18 | private apiUrl: string = appSettings.apiUrl; |
| 20 | 19 | |
| 21 | - productosParaCarrito : Producto[] = []; | |
| 22 | 20 | |
| 23 | 21 | constructor(private productoService: ProductoService) { } |
| 24 | 22 | |
| 25 | - // ngAfterViewInit() { | |
| 26 | - // this.sideBar.productos = []; | |
| 27 | - // } | |
| 28 | - | |
| 29 | 23 | ngOnInit() { |
| 30 | 24 | |
| 31 | 25 | this.productoService.getAll() |
| ... | ... | @@ -39,14 +33,15 @@ export class BusquedaProductosComponent implements OnInit { |
| 39 | 33 | } |
| 40 | 34 | |
| 41 | 35 | filterItems() { |
| 36 | + | |
| 42 | 37 | this.auxProductos = this.productos.filter(x => { |
| 43 | 38 | return x.DetArt.toLowerCase().includes(this.searchTerm.toLowerCase()) |
| 44 | 39 | }); |
| 45 | 40 | } |
| 46 | 41 | |
| 47 | 42 | agregarAlCarrito(producto: Producto) { |
| 48 | - producto.cantidad = 1; | |
| 49 | - this.productosParaCarrito.push(producto); | |
| 43 | + | |
| 44 | + this.productoService.setProductos(producto); | |
| 50 | 45 | } |
| 51 | 46 | |
| 52 | 47 | } |
src/app/components/sidebar/sidebar.component.ts
| 1 | -import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; | |
| 1 | +import { Component, OnInit } from '@angular/core'; | |
| 2 | 2 | import { Producto } from 'src/app/wrappers/producto'; |
| 3 | 3 | import { appSettings } from 'src/etc/AppSettings'; |
| 4 | +import { ProductoService } from 'src/app/services/producto.service'; | |
| 4 | 5 | |
| 5 | 6 | |
| 6 | 7 | @Component({ |
| 7 | 8 | selector: 'app-sidebar', |
| 8 | 9 | templateUrl: './sidebar.component.html', |
| 9 | 10 | styleUrls: ['./sidebar.component.scss'], |
| 10 | - inputs: ['productosCarrito'] | |
| 11 | 11 | }) |
| 12 | 12 | export class SidebarComponent implements OnInit { |
| 13 | 13 | |
| ... | ... | @@ -19,9 +19,15 @@ export class SidebarComponent implements OnInit { |
| 19 | 19 | |
| 20 | 20 | public productosCarrito: Producto[] = []; |
| 21 | 21 | |
| 22 | - constructor() { } | |
| 22 | + constructor(private productoService: ProductoService) { } | |
| 23 | 23 | |
| 24 | - ngOnInit() { } | |
| 24 | + ngOnInit() { | |
| 25 | + | |
| 26 | + this.productoService.productosEvent | |
| 27 | + .subscribe((data: Producto[]) => { | |
| 28 | + this.productosCarrito = data; | |
| 29 | + }, (error) => { console.error(error); }) | |
| 30 | + } | |
| 25 | 31 | |
| 26 | 32 | getCantidadProductos() { |
| 27 | 33 | |
| ... | ... | @@ -57,7 +63,7 @@ export class SidebarComponent implements OnInit { |
| 57 | 63 | decrementarContador(index) { |
| 58 | 64 | |
| 59 | 65 | for (let i = 0; i < this.productosCarrito.length; i++) { |
| 60 | - if (i === index && this.productosCarrito[i].cantidad > 1) { | |
| 66 | + if (i === index && this.productosCarrito[i].cantidad > this.min) { | |
| 61 | 67 | this.productosCarrito[i].cantidad--; |
| 62 | 68 | this.cont--; |
| 63 | 69 | break; |
| ... | ... | @@ -75,7 +81,7 @@ export class SidebarComponent implements OnInit { |
| 75 | 81 | } |
| 76 | 82 | } |
| 77 | 83 | |
| 78 | - deleteProducto(index) { | |
| 84 | + deleteProducto(index: number) { | |
| 79 | 85 | |
| 80 | 86 | for (let i = 0; i < this.productosCarrito.length; i++) { |
| 81 | 87 | if (i === index) { |
src/app/services/producto.service.ts
| ... | ... | @@ -2,16 +2,28 @@ import { Injectable } from '@angular/core'; |
| 2 | 2 | import { HttpClient } from '@angular/common/http'; |
| 3 | 3 | import { Observable } from 'rxjs'; |
| 4 | 4 | import { appSettings } from 'src/etc/AppSettings'; |
| 5 | +import { Producto } from '../wrappers/producto'; | |
| 6 | +import { EventEmitter } from '@angular/core'; | |
| 5 | 7 | |
| 6 | 8 | @Injectable({ |
| 7 | 9 | providedIn: 'root' |
| 8 | 10 | }) |
| 9 | 11 | export class ProductoService { |
| 10 | 12 | |
| 13 | + productos : Producto[] = []; | |
| 14 | + productosEvent: EventEmitter<Producto[]> = new EventEmitter(); | |
| 15 | + | |
| 11 | 16 | constructor(private http: HttpClient) { } |
| 12 | 17 | |
| 13 | 18 | getAll(): Observable<any> { |
| 19 | + | |
| 14 | 20 | return this.http.get(`${appSettings.apiUrl}/articulos`); |
| 15 | 21 | } |
| 16 | 22 | |
| 23 | + setProductos(producto){ | |
| 24 | + | |
| 25 | + this.productos.push(producto); | |
| 26 | + this.productosEvent.emit(this.productos); | |
| 27 | + } | |
| 28 | + | |
| 17 | 29 | } |