Commit 9259d189a957e44d2caa344cfcfaa99a552c90ac
1 parent
f5f122fef2
Exists in
master
and in
2 other branches
Agregado scroll horizontal en la seccion de articulos en el carrito
Showing
2 changed files
with
29 additions
and
24 deletions
Show diff stats
src/app/modules/seleccion-productos/seleccion-productos.component.html
1 | <div class="h-92 bg-white"> | 1 | <div class="h-92 bg-white"> |
2 | <!-- PUBLICIDADES --> | 2 | <!-- PUBLICIDADES --> |
3 | <div class="row mx-0 h-10"> | 3 | <div class="row mx-0 h-10"> |
4 | <div class="col-12 p-3 h-100"> | 4 | <div class="col-12 p-3 h-100"> |
5 | <div class="bg-dark h-100"></div> | 5 | <div class="bg-dark h-100"></div> |
6 | </div> | 6 | </div> |
7 | </div> | 7 | </div> |
8 | <div class="h-90"> | 8 | <div class="h-90"> |
9 | <!-- CABECERA --> | 9 | <!-- CABECERA --> |
10 | <div class="row mx-4 h-auto border border-primary rounded-sm"> | 10 | <div class="row mx-4 h-auto border border-primary rounded-sm"> |
11 | <div class="col-12 p-2 align-self-center"> | 11 | <div class="col-12 p-2 align-self-center"> |
12 | <div class="px-3"> | 12 | <div class="px-3"> |
13 | <p class="h6 text-truncate">SELECCIONÁ TÚ COMIDA Y/O BEBIDA</p> | 13 | <p class="h6 text-truncate">SELECCIONÁ TÚ COMIDA Y/O BEBIDA</p> |
14 | </div> | 14 | </div> |
15 | </div> | 15 | </div> |
16 | </div> | 16 | </div> |
17 | <!-- CUERPO --> | 17 | <!-- CUERPO --> |
18 | <div class="row mr-4 h-70"> | 18 | <div class="row mr-4 h-70"> |
19 | <div class="col-12 h-100 px-0 py-3"> | 19 | <div class="col-12 h-100 px-0 py-3"> |
20 | <div class="row mx-0 h-100"> | 20 | <div class="row mx-0 h-100"> |
21 | <!-- FILTRO CATEGORIAS --> | 21 | <!-- FILTRO CATEGORIAS --> |
22 | <div class="col-5 col-sm-3 col-xl-2 h-100"> | 22 | <div class="col-5 col-sm-3 col-xl-2 h-100"> |
23 | <p class="h6 h-6 m-0 text-center"><small>CATEGORÍAS</small></p> | 23 | <p class="h6 h-6 m-0 text-center"><small>CATEGORÍAS</small></p> |
24 | <div class="row mx-0 h-94 align-items-center"> | 24 | <div class="row mx-0 h-94 align-items-center"> |
25 | <div class="col-12 h-5"> | 25 | <div class="col-12 h-5"> |
26 | <img | 26 | <img |
27 | draggable="false" | 27 | draggable="false" |
28 | ondragstart="return false;" | 28 | ondragstart="return false;" |
29 | (contextmenu)="false" | 29 | (contextmenu)="false" |
30 | class="h-100 d-block mx-auto rotate-90-neg" | 30 | class="h-100 d-block mx-auto rotate-90-neg" |
31 | src="assets/img/ir-color.svg" | 31 | src="assets/img/ir-color.svg" |
32 | (mousedown)="scroll(templateCategorias, -80)" | 32 | (mousedown)="scrollY(templateCategorias, -80)" |
33 | (mouseup)="mouseup()" | 33 | (mouseup)="mouseup()" |
34 | (mouseleave)="mouseup()"> | 34 | (mouseleave)="mouseup()"> |
35 | </div> | 35 | </div> |
36 | <!-- CATEGORIAS --> | 36 | <!-- CATEGORIAS --> |
37 | <div | 37 | <div |
38 | #templateCategorias | 38 | #templateCategorias |
39 | class="col-12 px-0 box-categorias border border-primary border-left-0 rounded-right scroll-y"> | 39 | class="col-12 px-0 box-categorias border border-primary border-left-0 rounded-right scroll-y"> |
40 | <div | 40 | <div |
41 | class="row mx-4 mb-2 h-32 justify-content-center tab" | 41 | class="row mx-4 mb-2 h-32 justify-content-center tab" |
42 | [ngClass]="{ 'active': categoria.selected, 'border-bottom-effect': !categoria.selected }" | 42 | [ngClass]="{ 'active': categoria.selected, 'border-bottom-effect': !categoria.selected }" |
43 | (click)="selectCategoria(i)" | 43 | (click)="selectCategoria(i)" |
44 | *ngFor="let categoria of categorias; let i = index;"> | 44 | *ngFor="let categoria of categorias; let i = index;"> |
45 | <img | 45 | <img |
46 | class="col-12 h-50 align-self-end d-none d-sm-block" | 46 | class="col-12 h-50 align-self-end d-none d-sm-block" |
47 | src="assets/img/ir-color.svg"> | 47 | src="assets/img/ir-color.svg"> |
48 | <small class="col-10 my-1 h-25 align-self-end text-center">{{categoria.id}}</small> | 48 | <small class="col-10 my-1 h-25 align-self-end text-center">{{categoria.id}}</small> |
49 | </div> | 49 | </div> |
50 | </div> | 50 | </div> |
51 | <div class="col-12 h-5"> | 51 | <div class="col-12 h-5"> |
52 | <img | 52 | <img |
53 | draggable="false" | 53 | draggable="false" |
54 | ondragstart="return false;" | 54 | ondragstart="return false;" |
55 | (contextmenu)="false" | 55 | (contextmenu)="false" |
56 | class="h-100 d-block mx-auto rotate-90" | 56 | class="h-100 d-block mx-auto rotate-90" |
57 | src="assets/img/ir-color.svg" | 57 | src="assets/img/ir-color.svg" |
58 | (mousedown)="scroll(templateCategorias, 80)" | 58 | (mousedown)="scrollY(templateCategorias, 80)" |
59 | (mouseup)="mouseup()" | 59 | (mouseup)="mouseup()" |
60 | (mouseleave)="mouseup()"> | 60 | (mouseleave)="mouseup()"> |
61 | </div> | 61 | </div> |
62 | </div> | 62 | </div> |
63 | </div> | 63 | </div> |
64 | <!-- LISTA DE ARTICULOS --> | 64 | <!-- LISTA DE ARTICULOS --> |
65 | <div class="col-7 col-sm-9 col-xl-10 pb-3 h-80 align-self-center scroll-y"> | 65 | <div class="col-7 col-sm-9 col-xl-10 pb-3 h-80 align-self-center scroll-y"> |
66 | <div class="row row-cols-1 row-cols-sm-3 row-cols-xl-6 h-100"> | 66 | <div class="row row-cols-1 row-cols-sm-3 row-cols-xl-6 h-100"> |
67 | <!-- ARTICULO --> | 67 | <!-- ARTICULO --> |
68 | <div class="col px-2 my-1 my-md-3 h-auto" *ngFor="let lala of [{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]"> | 68 | <div class="col px-2 my-1 my-md-3 h-auto" *ngFor="let lala of [{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]"> |
69 | <div class="card h-100"> | 69 | <div class="card h-100"> |
70 | <img src="assets/img/ir-color.svg" class="card-img-top h-55"> | 70 | <img src="assets/img/ir-color.svg" class="card-img-top h-55"> |
71 | <div class="row mx-0 py-1 h-auto justify-content-center"> | 71 | <div class="row mx-0 py-1 h-auto justify-content-center"> |
72 | <p class="col-12 px-1 h6 h-auto text-primary text-center">{{'CORTADO'}}</p> | 72 | <p class="col-12 px-1 h6 h-auto text-primary text-center">{{'CORTADO'}}</p> |
73 | <p class="col-12 px-1 h-auto text-center"><small>{{'Café con un poco de leche'}}</small></p> | 73 | <p class="col-12 px-1 h-auto text-center"><small>{{'Café con un poco de leche'}}</small></p> |
74 | <div class="col-12 px-1 align-self-end btn-effect h-auto"> | 74 | <div class="col-12 px-1 align-self-end btn-effect h-auto"> |
75 | <div class="row mx-0 justify-content-between bg-primary badge-pill"> | 75 | <div class="row mx-0 justify-content-between bg-primary badge-pill"> |
76 | <div class="col px-0 align-self-center text-white text-right"> | 76 | <div class="col px-0 align-self-center text-white text-right"> |
77 | {{55 | currency}} | 77 | {{55 | currency}} |
78 | </div> | 78 | </div> |
79 | <div class="col-5 px-0"> | 79 | <div class="col-5 px-0"> |
80 | <img class="d-block ml-auto py-1 img-ir" src="assets/img/ir.svg"> | 80 | <img class="d-block ml-auto py-1 img-ir" src="assets/img/ir.svg"> |
81 | </div> | 81 | </div> |
82 | </div> | 82 | </div> |
83 | </div> | 83 | </div> |
84 | </div> | 84 | </div> |
85 | </div> | 85 | </div> |
86 | </div> | 86 | </div> |
87 | </div> | 87 | </div> |
88 | </div> | 88 | </div> |
89 | </div> | 89 | </div> |
90 | </div> | 90 | </div> |
91 | </div> | 91 | </div> |
92 | <div class="row mx-0 h-20 justify-content-center"> | 92 | <div class="row mx-0 h-20 justify-content-center"> |
93 | <div class="col-11 h-100 px-0 border border-primary rounded"> | 93 | <div class="col-11 h-100 px-0 border border-primary rounded"> |
94 | <div class="row mx-0 h-15 border-bottom border-primary"> | 94 | <div class="row mx-0 h-15 border-bottom border-primary"> |
95 | <p class="col align-self-center"><small>PRODUCTOS EN TÚ CARRITO DE COMPRAS</small></p> | 95 | <p class="col align-self-center text-truncate"><small>PRODUCTOS EN TÚ CARRITO DE COMPRAS</small></p> |
96 | </div> | 96 | </div> |
97 | <div class="row h-85 mx-auto"> | 97 | <div class="row h-85 mx-0 justify-content-between"> |
98 | <div class="col-auto h-20 align-self-center"> | 98 | <div class="col-auto h-20 align-self-center"> |
99 | <img | 99 | <img |
100 | draggable="false" | 100 | draggable="false" |
101 | ondragstart="return false;" | 101 | ondragstart="return false;" |
102 | (contextmenu)="false" | 102 | (contextmenu)="false" |
103 | class="img-ir rotate-180-neg" | 103 | class="img-ir rotate-180-neg" |
104 | src="assets/img/ir-fondo-color.svg" | 104 | src="assets/img/ir-fondo-color.svg" |
105 | (mousedown)="scroll(templateCarrito, -80)" | 105 | (mousedown)="scrollX(templateCarrito, -100)" |
106 | (mouseup)="mouseup()" | 106 | (mouseup)="mouseup()" |
107 | (mouseleave)="mouseup()"> | 107 | (mouseleave)="mouseup()"> |
108 | </div> | 108 | </div> |
109 | <div class="col h-100"> | 109 | <div class="col-6 col-sm-8 col-md-9 col-lg-10 h-100"> |
110 | <div #templateCarrito class="row h-100 mx-0 scroll-x"> | 110 | <div #templateCarrito class="row flex-row flex-nowrap h-100 mx-0 scroll-x"> |
111 | <div | 111 | <div |
112 | class="col-12 col-md-3 col-xl-2 p-2 h-100" | 112 | class="col-10 col-sm-4 col-lg-2 col-xl-auto px-2 px-xl-4 h-auto align-self-center border-right border-primary" |
113 | (click)="selectCategoria(i)" | 113 | (click)="selectCategoria(i)" |
114 | *ngFor="let categoria of [{},{},{},{},{},{},{}]; let i = index;"> | 114 | *ngFor="let categoria of [{},{},{},{},{},{},{},{},{},{},{},{},{},{}]; let i = index;"> |
115 | <img | 115 | <img |
116 | class="h-55 mx-auto" | 116 | class="d-block h-55 mx-auto" |
117 | src="assets/img/ir-color.svg"> | 117 | src="assets/img/ir-color.svg"> |
118 | <p class="mt-1 text-center text-primary"><small>{{'lala'}}</small></p> | 118 | <p class="d-block mt-auto text-center text-primary"><small>{{'lala'}}</small></p> |
119 | </div> | 119 | </div> |
120 | </div> | 120 | </div> |
121 | </div> | 121 | </div> |
122 | <div class="col-auto h-20 align-self-center"> | 122 | <div class="col-auto h-20 align-self-center"> |
123 | <img | 123 | <img |
124 | draggable="false" | 124 | draggable="false" |
125 | ondragstart="return false;" | 125 | ondragstart="return false;" |
126 | (contextmenu)="false" | 126 | (contextmenu)="false" |
127 | class="img-ir" | 127 | class="img-ir" |
128 | src="assets/img/ir-fondo-color.svg" | 128 | src="assets/img/ir-fondo-color.svg" |
129 | (mousedown)="scroll(templateCarrito, -80)" | 129 | (mousedown)="scrollX(templateCarrito, 100)" |
130 | (mouseup)="mouseup()" | 130 | (mouseup)="mouseup()" |
131 | (mouseleave)="mouseup()"> | 131 | (mouseleave)="mouseup()"> |
132 | </div> | 132 | </div> |
133 | </div> | 133 | </div> |
134 | </div> | 134 | </div> |
135 | </div> | 135 | </div> |
136 | </div> | 136 | </div> |
137 | 137 | ||
138 | </div> | ||
138 | </div> |
src/app/modules/seleccion-productos/seleccion-productos.component.ts
1 | import { Component, OnInit } from '@angular/core'; | 1 | import { Component, OnInit } from "@angular/core"; |
2 | 2 | ||
3 | @Component({ | 3 | @Component({ |
4 | selector: 'app-seleccion-productos', | 4 | selector: "app-seleccion-productos", |
5 | templateUrl: './seleccion-productos.component.html', | 5 | templateUrl: "./seleccion-productos.component.html", |
6 | styleUrls: ['./seleccion-productos.component.scss'] | 6 | styleUrls: ["./seleccion-productos.component.scss"] |
7 | }) | 7 | }) |
8 | export class SeleccionProductosComponent implements OnInit { | 8 | export class SeleccionProductosComponent implements OnInit { |
9 | timeoutHandler: any; | 9 | timeoutHandler: any; |
10 | categorias = [ | 10 | categorias = [ |
11 | { id: 1, selected: false }, | 11 | { id: 1, selected: false }, |
12 | { id: 2, selected: false }, | 12 | { id: 2, selected: false }, |
13 | { id: 3, selected: false }, | 13 | { id: 3, selected: false } |
14 | ]; | 14 | ]; |
15 | 15 | ||
16 | constructor() { } | 16 | constructor() {} |
17 | 17 | ||
18 | ngOnInit() { | 18 | ngOnInit() {} |
19 | } | ||
20 | 19 | ||
21 | selectCategoria(index: number) { | 20 | selectCategoria(index: number) { |
22 | this.categorias.forEach((categoria, i) => { | 21 | this.categorias.forEach((categoria, i) => { |
23 | categoria.selected = index === i ? true : false; | 22 | categoria.selected = index === i ? true : false; |
24 | }); | 23 | }); |
25 | } | 24 | } |
26 | 25 | ||
27 | mouseup() { | 26 | mouseup() { |
28 | if (!this.timeoutHandler) return; | 27 | if (!this.timeoutHandler) return; |
29 | clearInterval(this.timeoutHandler); | 28 | clearInterval(this.timeoutHandler); |
30 | } | 29 | } |
31 | 30 | ||
32 | scroll(el: HTMLElement, value) { | 31 | scrollY(el: HTMLElement, value) { |
33 | el.scroll({ behavior: 'smooth', top: (value + el.scrollTop) }); | 32 | el.scroll({ behavior: "smooth", top: value + el.scrollTop }); |
34 | this.timeoutHandler = setInterval(() => { | 33 | this.timeoutHandler = setInterval(() => { |
35 | el.scroll({ behavior: 'smooth', top: (value + el.scrollTop) }); | 34 | el.scroll({ behavior: "smooth", top: value + el.scrollTop }); |
36 | }, 500); | 35 | }, 500); |
37 | } | 36 | } |
38 | 37 | ||
38 | scrollX(el: HTMLElement, value) { | ||
39 | el.scroll({ behavior: "smooth", left: value + el.scrollLeft }); | ||
40 | this.timeoutHandler = setInterval(() => { | ||
41 | el.scroll({ behavior: "smooth", left: value + el.scrollLeft }); | ||
42 | }, 500); | ||
43 | } | ||
39 | } | 44 | } |