Commit 686e52a717cf0ebb1df1be4f70dc73c93af7d0a3
1 parent
5f5417202b
Exists in
master
and in
2 other branches
Arreglos en el archivo de routing y terminado filtro basice categorias
Showing
11 changed files
with
193 additions
and
15 deletions
Show diff stats
package.json
... | ... | @@ -6,12 +6,12 @@ |
6 | 6 | "ng": "ng", |
7 | 7 | "start": "ng serve --port 4206 --host 0.0.0.0 --disableHostCheck", |
8 | 8 | "build": "ng build", |
9 | - "build-prod": "ng build --prod", | |
9 | + "build-prod": "ng build --prod --aot=true --build--optimizer=true", | |
10 | 10 | "test": "ng test", |
11 | 11 | "lint": "ng lint", |
12 | 12 | "e2e": "ng e2e", |
13 | 13 | "electron": "electron .", |
14 | - "electron-build": "ng build --prod && electron .", | |
14 | + "electron-build": "ng build --prod --aot=true --build--optimizer=true && electron .", | |
15 | 15 | "build-exe": "electron-packager . --platform=win32 --arch=x64 --asar" |
16 | 16 | }, |
17 | 17 | "private": true, |
src/app/app-routing.module.ts
... | ... | @@ -2,8 +2,6 @@ import { NgModule } from '@angular/core'; |
2 | 2 | import { Routes, RouterModule } from '@angular/router'; |
3 | 3 | import { SplashScreenComponent } from './modules/splash-screen/splash-screen.component'; |
4 | 4 | import { AdminComponent } from './modules/admin/admin.component'; |
5 | -import { FormasPagoModule } from './modules/formas-pago/formas-pago.module'; | |
6 | -import { OpcionPedidoModule } from './modules/opcion-pedido/opcion-pedido.module'; | |
7 | 5 | |
8 | 6 | const routes: Routes = [ |
9 | 7 | { path: '', component: SplashScreenComponent }, |
... | ... | @@ -11,15 +9,25 @@ const routes: Routes = [ |
11 | 9 | path: '', |
12 | 10 | component: AdminComponent, |
13 | 11 | children: [ |
14 | - { path: 'formas-pago', loadChildren: () => FormasPagoModule }, | |
15 | - { path: 'opcion-pedido', loadChildren: () => OpcionPedidoModule }, | |
12 | + { | |
13 | + path: 'formas-pago', | |
14 | + loadChildren: () => import('./modules/formas-pago/formas-pago.module').then(m => m.FormasPagoModule) | |
15 | + }, | |
16 | + { | |
17 | + path: 'opcion-pedido', | |
18 | + loadChildren: () => import('./modules/opcion-pedido/opcion-pedido.module').then(m => m.OpcionPedidoModule) | |
19 | + }, | |
20 | + { | |
21 | + path: 'seleccion-productos', | |
22 | + loadChildren: () => import('./modules/seleccion-productos/seleccion-productos.module').then(m => m.SeleccionProductosModule) | |
23 | + }, | |
16 | 24 | ] |
17 | 25 | }, |
18 | 26 | { path: '**', redirectTo: '', pathMatch: 'full' }, |
19 | 27 | ]; |
20 | 28 | |
21 | 29 | @NgModule({ |
22 | - imports: [RouterModule.forRoot(routes)], | |
30 | + imports: [RouterModule.forRoot(routes, { useHash: true })], | |
23 | 31 | exports: [RouterModule] |
24 | 32 | }) |
25 | 33 | export class AppRoutingModule { } |
src/app/modules/opcion-pedido/opcion-pedido.component.html
... | ... | @@ -14,7 +14,7 @@ |
14 | 14 | <div class="col-auto px-0 h-auto align-self-start"> |
15 | 15 | <div |
16 | 16 | class="btn-effect col-auto align-self-center px-0 bg-white" |
17 | - (click)="goBack()"> | |
17 | + (click)="goTo('/seleccion-productos')"> | |
18 | 18 | <div class="row mx-0 bg-primary badge-pill"> |
19 | 19 | <div class="col-auto p-0"> |
20 | 20 | <img class="p-1 img-plato" src="assets/img/icono-plato.svg"> |
... | ... | @@ -31,7 +31,7 @@ |
31 | 31 | <div class="col-auto px-0 h-auto align-self-start"> |
32 | 32 | <div |
33 | 33 | class="btn-effect col-auto align-self-center px-0 bg-white" |
34 | - (click)="goBack()"> | |
34 | + (click)="goTo('/seleccion-productos')"> | |
35 | 35 | <div class="row mx-0 bg-primary badge-pill"> |
36 | 36 | <div class="col-auto p-0"> |
37 | 37 | <img class="p-1 img-plato" src="assets/img/icono-take-away.svg"> |
src/app/modules/opcion-pedido/opcion-pedido.component.ts
1 | 1 | import { Component, OnInit } from '@angular/core'; |
2 | +import { Router } from '@angular/router'; | |
2 | 3 | |
3 | 4 | @Component({ |
4 | 5 | selector: 'app-opcion-pedido', |
... | ... | @@ -7,9 +8,15 @@ import { Component, OnInit } from '@angular/core'; |
7 | 8 | }) |
8 | 9 | export class OpcionPedidoComponent implements OnInit { |
9 | 10 | |
10 | - constructor() { } | |
11 | + constructor( | |
12 | + private router: Router, | |
13 | + ) { } | |
11 | 14 | |
12 | 15 | ngOnInit() { |
13 | 16 | } |
14 | 17 | |
18 | + goTo(path) { | |
19 | + this.router.navigate([path]); | |
20 | + } | |
21 | + | |
15 | 22 | } |
src/app/modules/seleccion-productos/seleccion-productos-routing.module.ts
1 | 1 | import { NgModule } from '@angular/core'; |
2 | 2 | import { Routes, RouterModule } from '@angular/router'; |
3 | +import { SeleccionProductosComponent } from './seleccion-productos.component'; | |
3 | 4 | |
4 | - | |
5 | -const routes: Routes = []; | |
5 | +const routes: Routes = [ | |
6 | + { path: '', component: SeleccionProductosComponent } | |
7 | +]; | |
6 | 8 | |
7 | 9 | @NgModule({ |
8 | 10 | imports: [RouterModule.forChild(routes)], |
src/app/modules/seleccion-productos/seleccion-productos.component.html
1 | -<p>seleccion-productos works!</p> | |
1 | +<div class="h-92 bg-white"> | |
2 | + <!-- PUBLICIDADES --> | |
3 | + <div class="row mx-0 h-10"> | |
4 | + <div class="col-12 p-3 h-100"> | |
5 | + <div class="bg-dark h-100"></div> | |
6 | + </div> | |
7 | + </div> | |
8 | + <div class="h-90"> | |
9 | + <!-- CABECERA --> | |
10 | + <div class="row mx-4 h-auto border border-primary rounded-sm"> | |
11 | + <div class="col-12 p-2 align-self-center"> | |
12 | + <div class="px-3"> | |
13 | + <span class="">SELECCIONร Tร COMIDA Y/O BEBIDA</span> | |
14 | + </div> | |
15 | + </div> | |
16 | + </div> | |
17 | + <!-- CUERPO --> | |
18 | + <div class="row mr-4 h-75"> | |
19 | + <div class="col-12 h-100 px-0 py-3"> | |
20 | + <div class="row mx-0 h-100"> | |
21 | + <!-- FILTRO CATEGORIAS --> | |
22 | + <div class="col-md-3 col-xl-2 h-100"> | |
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"> | |
25 | + <div class="col-12 h-5"> | |
26 | + <img | |
27 | + draggable="false" | |
28 | + ondragstart="return false;" | |
29 | + (contextmenu)="false" | |
30 | + class="h-100 d-block mx-auto rotate-90-neg" | |
31 | + src="assets/img/ir-color.svg" | |
32 | + (mousedown)="scroll(elem, -80)" (mouseup)="mouseup()" (mouseleave)="mouseup()"> | |
33 | + </div> | |
34 | + <div #elem class="col-12 px-0 box-categorias border border-primary border-left-0 rounded-right scroll-y"> | |
35 | + <div | |
36 | + class="row mx-4 mb-2 h-32 justify-content-center tab" | |
37 | + [ngClass]="{ 'active': categoria.selected, 'border-bottom-effect': !categoria.selected }" | |
38 | + (click)="selectCategoria(i)" | |
39 | + *ngFor="let categoria of categorias; let i = index;"> | |
40 | + <img class="col-12 h-50 align-self-end" src="assets/img/ir-color.svg"> | |
41 | + <small | |
42 | + class="col-10 my-1 h-25 align-self-end text-center">{{categoria.id}} | |
43 | + </small> | |
44 | + </div> | |
45 | + </div> | |
46 | + <div class="col-12 h-5"> | |
47 | + <img | |
48 | + draggable="false" | |
49 | + ondragstart="return false;" | |
50 | + (contextmenu)="false" | |
51 | + class="h-100 d-block mx-auto rotate-90" | |
52 | + src="assets/img/ir-color.svg" | |
53 | + (mousedown)="scroll(elem, 80)" (mouseup)="mouseup()" (mouseleave)="mouseup()"> | |
54 | + </div> | |
55 | + </div> | |
56 | + </div> | |
57 | + <div class="col-md-9 col-xl-10 bg-danger"> | |
58 | + </div> | |
59 | + </div> | |
60 | + </div> | |
61 | + </div> | |
62 | + <div class="row mx-0 h-20 bg-primary"> | |
63 | + | |
64 | + </div> | |
65 | + </div> | |
66 | + | |
67 | +</div> |
src/app/modules/seleccion-productos/seleccion-productos.component.scss
... | ... | @@ -0,0 +1,37 @@ |
1 | +$primary: #aa006b; | |
2 | + | |
3 | +.rounded-right { | |
4 | + border-top-right-radius: 1.5rem !important; | |
5 | + border-bottom-right-radius: 1.5rem !important; | |
6 | +} | |
7 | + | |
8 | +.box-categorias { | |
9 | + height: calc(100% - 100px) !important; | |
10 | +} | |
11 | + | |
12 | +.active { | |
13 | + background-color: white; | |
14 | + border-bottom: 3px solid $primary !important; | |
15 | +} | |
16 | + | |
17 | +.border-bottom-effect { | |
18 | + border: none; | |
19 | + position: relative; | |
20 | + &:hover { | |
21 | + border: none; | |
22 | + } | |
23 | + &::after { | |
24 | + content: ""; | |
25 | + position: absolute; | |
26 | + width: 0px; | |
27 | + height: 3px; | |
28 | + left: 50%; | |
29 | + bottom: 0; | |
30 | + background-color: $primary; | |
31 | + transition: all ease-in-out 0.2s; | |
32 | + } | |
33 | + &:hover::after { | |
34 | + width: 100%; | |
35 | + left: 0; | |
36 | + } | |
37 | +} |
src/app/modules/seleccion-productos/seleccion-productos.component.ts
... | ... | @@ -6,10 +6,34 @@ import { Component, OnInit } from '@angular/core'; |
6 | 6 | styleUrls: ['./seleccion-productos.component.scss'] |
7 | 7 | }) |
8 | 8 | export class SeleccionProductosComponent implements OnInit { |
9 | + timeoutHandler: any; | |
10 | + categorias = [ | |
11 | + { id: 1, selected: false }, | |
12 | + { id: 2, selected: false }, | |
13 | + { id: 3, selected: false }, | |
14 | + ]; | |
9 | 15 | |
10 | 16 | constructor() { } |
11 | 17 | |
12 | 18 | ngOnInit() { |
13 | 19 | } |
14 | 20 | |
21 | + selectCategoria(index: number) { | |
22 | + this.categorias.forEach((categoria, i) => { | |
23 | + categoria.selected = index === i ? true : false; | |
24 | + }); | |
25 | + } | |
26 | + | |
27 | + mouseup() { | |
28 | + if (!this.timeoutHandler) return; | |
29 | + clearInterval(this.timeoutHandler); | |
30 | + } | |
31 | + | |
32 | + scroll(el: HTMLElement, value) { | |
33 | + el.scroll({ behavior: 'smooth', top: (value + el.scrollTop) }); | |
34 | + this.timeoutHandler = setInterval(() => { | |
35 | + el.scroll({ behavior: 'smooth', top: (value + el.scrollTop) }); | |
36 | + }, 500); | |
37 | + } | |
38 | + | |
15 | 39 | } |
src/assets/img/ir-color.svg
... | ... | @@ -0,0 +1,18 @@ |
1 | +<?xml version="1.0" encoding="UTF-8"?> | |
2 | +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | |
3 | +<!-- Creator: CorelDRAW X7 --> | |
4 | +<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="19.8306mm" height="19.8306mm" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" | |
5 | +viewBox="0 0 523 523" | |
6 | + xmlns:xlink="http://www.w3.org/1999/xlink"> | |
7 | + <defs> | |
8 | + <style type="text/css"> | |
9 | + <![CDATA[ | |
10 | + .fil0 {fill:#AA006B;fill-rule:nonzero} | |
11 | + ]]> | |
12 | + </style> | |
13 | + </defs> | |
14 | + <g id="Capa_x0020_1"> | |
15 | + <metadata id="CorelCorpID_0Corel-Layer"/> | |
16 | + <path class="fil0" d="M262 0c72,0 137,29 185,77 47,47 76,112 76,185 0,72 -29,137 -76,185 -48,47 -113,76 -185,76 -73,0 -138,-29 -185,-76 -48,-48 -77,-113 -77,-185 0,-73 29,-138 77,-185 47,-48 112,-77 185,-77zm169 92c-43,-43 -103,-70 -169,-70 -66,0 -126,27 -170,70 -43,44 -70,104 -70,170 0,66 27,126 70,169 44,43 104,70 170,70 66,0 126,-27 169,-70 43,-43 70,-103 70,-169 0,-66 -27,-126 -70,-170zm-202 32l110 138 -110 137 -16 -16 95 -121 -95 -122 16 -16z"/> | |
17 | + </g> | |
18 | +</svg> |
src/styles.scss
... | ... | @@ -26,7 +26,7 @@ body { |
26 | 26 | transition: all 0.3s; |
27 | 27 | &:hover { |
28 | 28 | cursor: pointer; |
29 | - opacity: 0.8; | |
29 | + opacity: 0.7; | |
30 | 30 | } |
31 | 31 | &:active { |
32 | 32 | transform: scale(1.02); |
... | ... | @@ -57,3 +57,19 @@ p { |
57 | 57 | -webkit-transform: translateX(-50%); |
58 | 58 | transform: translateX(-50%); |
59 | 59 | } |
60 | + | |
61 | +.rotate-90 { | |
62 | + transform: rotate(90deg); | |
63 | +} | |
64 | + | |
65 | +.rotate-90-neg { | |
66 | + transform: rotate(-90deg); | |
67 | +} | |
68 | + | |
69 | +.scroll-y { | |
70 | + overflow-y: auto; | |
71 | + scrollbar-width: none; | |
72 | + &::-webkit-scrollbar { | |
73 | + display: none; | |
74 | + } | |
75 | +} |