Commit 111ec4b8a31c877f3f9bdf71bafb862103968232

Authored by Marcelo Puebla
1 parent 10f7e2aa3d
Exists in master and in 1 other branch validar_pve

Agregado componente para cancelar la compra del carrito.

src/app/app-routing.module.ts
1 import { NgModule } from '@angular/core'; 1 import { NgModule } from '@angular/core';
2 import { Routes, RouterModule } from '@angular/router'; 2 import { Routes, RouterModule } from '@angular/router';
3 import { HomeComponent } from './components/home/home.component'; 3 import { HomeComponent } from './components/home/home.component';
4 import { InicioComponent } from './components/inicio/inicio.component'; 4 import { InicioComponent } from './components/inicio/inicio.component';
5 import { BusquedaProductosComponent } from './components/busqueda-productos/busqueda-productos.component'; 5 import { BusquedaProductosComponent } from './components/busqueda-productos/busqueda-productos.component';
6 import { ConfirmacionCarritoComponent } from './components/confirmacion-carrito/confirmacion-carrito.component'; 6 import { ConfirmacionCarritoComponent } from './components/confirmacion-carrito/confirmacion-carrito.component';
7 import { MasterComponent } from './components/master/master.component'; 7 import { MasterComponent } from './components/master/master.component';
8 import { AmbImagenesComponent } from './components/amb-imagenes/amb-imagenes.component'; 8 import { AmbImagenesComponent } from './components/amb-imagenes/amb-imagenes.component';
9 import { PagoComponent } from './components/pago/pago.component'; 9 import { PagoComponent } from './components/pago/pago.component';
10 import { CancelarCompraComponent } from './components/cancelar-compra/cancelar-compra.component';
10 11
11 const routes: Routes = [ 12 const routes: Routes = [
12 { path: '', component: HomeComponent }, 13 { path: '', component: HomeComponent },
13 { path: 'home', component: HomeComponent }, 14 { path: 'home', component: HomeComponent },
14 { path: 'abm-imagenes', component: AmbImagenesComponent }, 15 { path: 'abm-imagenes', component: AmbImagenesComponent },
15 { path: 'confirmacion-carrito', component: ConfirmacionCarritoComponent }, 16 { path: 'confirmacion-carrito', component: ConfirmacionCarritoComponent },
17 { path: 'cancelar-compra', component: CancelarCompraComponent },
16 { 18 {
17 path: '', 19 path: '',
18 component: MasterComponent, 20 component: MasterComponent,
19 children: [ 21 children: [
20 { path: 'inicio', component: InicioComponent }, 22 { path: 'inicio', component: InicioComponent },
21 { path: 'busqueda-productos', component: BusquedaProductosComponent }, 23 { path: 'busqueda-productos', component: BusquedaProductosComponent },
22 { path: 'pago', component: PagoComponent } 24 { path: 'pago', component: PagoComponent }
23 ] 25 ]
24 }, 26 },
25 { path: '**', redirectTo: '/home', pathMatch: 'full' }, 27 { path: '**', redirectTo: '/home', pathMatch: 'full' },
26 ]; 28 ];
27 29
28 @NgModule({ 30 @NgModule({
29 imports: [RouterModule.forRoot(routes)], 31 imports: [RouterModule.forRoot(routes)],
30 exports: [RouterModule] 32 exports: [RouterModule]
31 }) 33 })
32 34
33 export class AppRoutingModule { } 35 export class AppRoutingModule { }
34 36
src/app/app.module.ts
1 //#region MODULES 1 //#region MODULES
2 import { BrowserModule } from '@angular/platform-browser'; 2 import { BrowserModule } from '@angular/platform-browser';
3 import { NgModule } from '@angular/core'; 3 import { NgModule } from '@angular/core';
4 import { AppRoutingModule } from './app-routing.module'; 4 import { AppRoutingModule } from './app-routing.module';
5 import { HttpClientModule } from '@angular/common/http'; 5 import { HttpClientModule } from '@angular/common/http';
6 import { FormsModule, ReactiveFormsModule } from '@angular/forms'; 6 import { FormsModule, ReactiveFormsModule } from '@angular/forms';
7 import { TooltipModule } from 'ngx-bootstrap/tooltip'; 7 import { TooltipModule } from 'ngx-bootstrap/tooltip';
8 import { PopoverModule } from 'ngx-bootstrap/popover'; 8 import { PopoverModule } from 'ngx-bootstrap/popover';
9 //#endregion 9 //#endregion
10 10
11 //#region COMPONENTS 11 //#region COMPONENTS
12 import { AppComponent } from './app.component'; 12 import { AppComponent } from './app.component';
13 import { HeaderComponent } from './components/header/header.component'; 13 import { HeaderComponent } from './components/header/header.component';
14 import { SidebarComponent } from './components/sidebar/sidebar.component'; 14 import { SidebarComponent } from './components/sidebar/sidebar.component';
15 import { HomeComponent } from './components/home/home.component'; 15 import { HomeComponent } from './components/home/home.component';
16 import { InicioComponent } from './components/inicio/inicio.component'; 16 import { InicioComponent } from './components/inicio/inicio.component';
17 import { BusquedaProductosComponent } from './components/busqueda-productos/busqueda-productos.component'; 17 import { BusquedaProductosComponent } from './components/busqueda-productos/busqueda-productos.component';
18 import { ConfirmacionCarritoComponent } from './components/confirmacion-carrito/confirmacion-carrito.component'; 18 import { ConfirmacionCarritoComponent } from './components/confirmacion-carrito/confirmacion-carrito.component';
19 import { MasterComponent } from './components/master/master.component'; 19 import { MasterComponent } from './components/master/master.component';
20 import { PopoverPromosComponent } from './components/popover-promos/popover-promos.component'; 20 import { PopoverPromosComponent } from './components/popover-promos/popover-promos.component';
21 import { PopoverSinonimosComponent } from './components/popover-sinonimos/popover-sinonimos.component'; 21 import { PopoverSinonimosComponent } from './components/popover-sinonimos/popover-sinonimos.component';
22 import { AmbImagenesComponent } from './components/amb-imagenes/amb-imagenes.component'; 22 import { AmbImagenesComponent } from './components/amb-imagenes/amb-imagenes.component';
23 import { PagoComponent } from './components/pago/pago.component'; 23 import { PagoComponent } from './components/pago/pago.component';
24 import { CancelarCompraComponent } from './components/cancelar-compra/cancelar-compra.component';
24 //#endregion 25 //#endregion
25 26
26 @NgModule({ 27 @NgModule({
27 declarations: [ 28 declarations: [
28 AppComponent, 29 AppComponent,
29 HeaderComponent, 30 HeaderComponent,
30 SidebarComponent, 31 SidebarComponent,
31 HomeComponent, 32 HomeComponent,
32 InicioComponent, 33 InicioComponent,
33 BusquedaProductosComponent, 34 BusquedaProductosComponent,
34 ConfirmacionCarritoComponent, 35 ConfirmacionCarritoComponent,
35 MasterComponent, 36 MasterComponent,
36 PopoverPromosComponent, 37 PopoverPromosComponent,
37 PopoverSinonimosComponent, 38 PopoverSinonimosComponent,
38 AmbImagenesComponent, 39 AmbImagenesComponent,
39 PagoComponent 40 PagoComponent,
41 CancelarCompraComponent
40 ], 42 ],
41 imports: [ 43 imports: [
42 BrowserModule, 44 BrowserModule,
43 AppRoutingModule, 45 AppRoutingModule,
44 HttpClientModule, 46 HttpClientModule,
45 FormsModule, 47 FormsModule,
46 ReactiveFormsModule, 48 ReactiveFormsModule,
47 ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: 'never' }), 49 ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: 'never' }),
48 TooltipModule.forRoot(), 50 TooltipModule.forRoot(),
49 PopoverModule.forRoot() 51 PopoverModule.forRoot()
50 ], 52 ],
51 providers: [], 53 providers: [],
52 bootstrap: [AppComponent] 54 bootstrap: [AppComponent]
53 }) 55 })
54 export class AppModule { } 56 export class AppModule { }
55 57
src/app/components/cancelar-compra/cancelar-compra.component.html
File was created 1 <div class="container-fluid background-image">
2 <div class="row">
3 <div class="col p-0">
4 <div class="vh-100 d-flex align-content-strech flex-wrap disable-user-select">
5
6 <!-- HEADER -->
7 <div class="row m-0 w-100 bg-primary-gradient-horizontal">
8 <div class="col-6 bg-white rounded-bottom-right">
9 <div class="row h-100">
10 <div class="col d-flex align-items-center">
11 <img class="w-25 mx-auto d-block" src="{{apiUrl}}/imagenes/logoaxion.png">
12 </div>
13 </div>
14 </div>
15 </div>
16
17 <!-- INFO DE BIENVENIDA -->
18 <div class="row w-100">
19 <div class="col-4 offset-2">
20 <div class="row h-100">
21 <div class="col-12 py-4">
22 <div class="card h-100 rounded">
23 <img src="{{apiUrl}}/imagenes/atencion.svg" class="w-50 mx-auto my-auto">
24 <div class="my-auto">
25 <p class="display-3 card-text text-center font-weight-bold">
26 Atención
27 </p>
28 </div>
29 </div>
30 </div>
31 </div>
32 </div>
33 <div class="col-6 text-center text-white my-auto">
34 <p class="display-3 font-weight-bold mb-5">
35 Usted esta a punto<br>de cancelar su compra
36 </p>
37 <p class="display-4 m-0">
38 Perderá los datos y<br>productos ya ingresados
39 </p>
40 <div class="d-flex justify-content-center mt-2">
41 <button type="button" class="btn btn-lg btn-light shadow mr-4">
42 <span class="pr-2">Volver a mi compra</span>
43 <i class="fa fa-undo text-warning"></i>
44 </button>
45 <button type="button" class="btn btn-lg btn-light shadow ml-4">
46 <span class="pr-2">Si, terminar</span>
47 <i class="fa fa-times text-danger"></i>
48 </button>
49 </div>
50 </div>
51 </div>
52
53 <!-- FOOTER -->
54 <div class="row m-0 w-100 bg-gray">
55 <div class="col-6 bg-white offset-6 rounded-top-left">
56 <div class="row h-100">
57 <div class="col d-flex align-items-center">
58 <img class="w-25 mx-auto d-block" src="{{apiUrl}}/imagenes/logodebo.png">
59 </div>
60 </div>
61 </div>
62 </div>
63
64 </div>
65 </div>
66 </div>
67 </div>
68
src/app/components/cancelar-compra/cancelar-compra.component.scss
src/app/components/cancelar-compra/cancelar-compra.component.spec.ts
File was created 1 import { async, ComponentFixture, TestBed } from '@angular/core/testing';
2
3 import { CancelarCompraComponent } from './cancelar-compra.component';
4
5 describe('CancelarCompraComponent', () => {
6 let component: CancelarCompraComponent;
7 let fixture: ComponentFixture<CancelarCompraComponent>;
8
9 beforeEach(async(() => {
10 TestBed.configureTestingModule({
11 declarations: [ CancelarCompraComponent ]
12 })
13 .compileComponents();
14 }));
15
16 beforeEach(() => {
17 fixture = TestBed.createComponent(CancelarCompraComponent);
18 component = fixture.componentInstance;
19 fixture.detectChanges();
20 });
21
22 it('should create', () => {
23 expect(component).toBeTruthy();
24 });
25 });
26
src/app/components/cancelar-compra/cancelar-compra.component.ts
File was created 1 import { Component, OnInit } from '@angular/core';
2 import { appSettings } from 'src/etc/AppSettings';
3
4 @Component({
5 selector: 'app-cancelar-compra',
6 templateUrl: './cancelar-compra.component.html',
7 styleUrls: ['./cancelar-compra.component.scss']
8 })
9 export class CancelarCompraComponent implements OnInit {
10
11 private apiUrl: string = appSettings.apiUrl;
12
13 constructor() { }
14
15 ngOnInit() {
16 }
17
18 }
19
src/app/components/home/home.component.scss
1 .background-image {
2 background-image: url(http://10.231.45.117:4705/autoservicio/imagenes/homeBackground.jpg);
3 background-repeat: no-repeat;
4 background-size: cover;
5 }
6
7 .w-20 {
8 width: 20% !important;
9 }
10
11 .rounded-bottom-right {
12 border-bottom-right-radius: 10rem;
13 &:before {
14 border-radius: 0 40px 40px 0;
15 background-color: #fff;
16 }
17 }
18
19 .rounded-top-left {
20 border-top-left-radius: 10rem;
21 }
22
23 .bg-gray {
24 background-color: #cccccc;
25 }
26
1 @import "./assets/scss/animation.scss"; 1 @import "./assets/scss/animation.scss";
2 @import "./assets/scss/bootstrap-override.scss"; 2 @import "./assets/scss/bootstrap-override.scss";
3 @import "../node_modules/bootstrap/scss/_variables.scss"; 3 @import "../node_modules/bootstrap/scss/_variables.scss";
4 4
5 html, 5 html,
6 body { 6 body {
7 background-color: #f0f0f0; 7 background-color: #f0f0f0;
8 font-family: bahnschrift; 8 font-family: bahnschrift;
9 } 9 }
10 10
11 .blur { 11 .blur {
12 filter: blur(10px); 12 filter: blur(10px);
13 -webkit-filter: blur(10px); 13 -webkit-filter: blur(10px);
14 } 14 }
15 15
16 .disable-user-select { 16 .disable-user-select {
17 -webkit-user-select: none; 17 -webkit-user-select: none;
18 -moz-user-select: none; 18 -moz-user-select: none;
19 -ms-user-select: none; 19 -ms-user-select: none;
20 user-select: none; 20 user-select: none;
21 } 21 }
22 22
23 .blue-gradient { 23 .blue-gradient {
24 background: linear-gradient(0deg, #ffffff00, $white); 24 background: linear-gradient(0deg, #ffffff00, $white);
25 } 25 }
26 26
27 .rounded { 27 .rounded {
28 border-radius: 1.5rem !important; 28 border-radius: 1.5rem !important;
29 } 29 }
30 30
31 .rounded-top-sm { 31 .rounded-top-sm {
32 border-top-left-radius: 0.75rem !important; 32 border-top-left-radius: 0.75rem !important;
33 border-top-right-radius: 0.75rem !important; 33 border-top-right-radius: 0.75rem !important;
34 } 34 }
35 35
36 .rounded-sm { 36 .rounded-sm {
37 border-radius: 0.75rem !important; 37 border-radius: 0.75rem !important;
38 } 38 }
39 39
40 .card-effect { 40 .card-effect {
41 &:active { 41 &:active {
42 background-color: #c9c9c9b3 !important; 42 background-color: #c9c9c9b3 !important;
43 transition: background-color 0.5s; 43 transition: background-color 0.5s;
44 } 44 }
45 &:focus { 45 &:focus {
46 background-color: #c9c9c9b3 !important; 46 background-color: #c9c9c9b3 !important;
47 transition: background-color 0.5s; 47 transition: background-color 0.5s;
48 } 48 }
49 } 49 }
50 50
51 .overflow-scroll { 51 .overflow-scroll {
52 overflow-y: auto !important; 52 overflow-y: auto !important;
53 overflow-x: hidden !important; 53 overflow-x: hidden !important;
54 &::-webkit-scrollbar { 54 &::-webkit-scrollbar {
55 width: 0.5em; 55 width: 0.5em;
56 } 56 }
57 &::-webkit-scrollbar-track { 57 &::-webkit-scrollbar-track {
58 border-radius: 10px; 58 border-radius: 10px;
59 box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.4); 59 box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.4);
60 -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.4); 60 -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.4);
61 background-color: $white; 61 background-color: $white;
62 } 62 }
63 &::-webkit-scrollbar-thumb { 63 &::-webkit-scrollbar-thumb {
64 box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.7); 64 box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.7);
65 -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.7); 65 -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.7);
66 outline: 1px solid slategrey; 66 outline: 1px solid slategrey;
67 border-radius: 10px; 67 border-radius: 10px;
68 height: 12px; 68 height: 12px;
69 &:active { 69 &:active {
70 box-shadow: inset 0 0 8px $primary; 70 box-shadow: inset 0 0 8px $primary;
71 -webkit-box-shadow: inset 0 0 8px $primary; 71 -webkit-box-shadow: inset 0 0 8px $primary;
72 } 72 }
73 } 73 }
74 &::-webkit-scrollbar-corner { 74 &::-webkit-scrollbar-corner {
75 border-radius: 10px; 75 border-radius: 10px;
76 } 76 }
77 } 77 }
78 78
79 .bg-gray { 79 .bg-gray {
80 background-color: #e6e6e6; 80 background-color: #e6e6e6;
81 } 81 }
82 82
83 .bg-primary-gradient { 83 .bg-primary-gradient {
84 background: linear-gradient(135deg, rgba(40, 112, 175, 1) 0%, rgba(0, 32, 66, 1) 100%); 84 background: linear-gradient(135deg, rgba(40, 112, 175, 1) 0%, rgba(0, 32, 66, 1) 100%);
85 } 85 }
86 86
87 .bg-primary-gradient-horizontal { 87 .bg-primary-gradient-horizontal {
88 background: linear-gradient(90deg, rgba(40, 112, 175, 1) 0%, rgba(0, 32, 66, 1) 100%); 88 background: linear-gradient(90deg, rgba(40, 112, 175, 1) 0%, rgba(0, 32, 66, 1) 100%);
89 } 89 }
90 90
91 .icon-dim { 91 .icon-dim {
92 height: 40px !important; 92 height: 40px !important;
93 width: auto !important; 93 width: auto !important;
94 background-color: white !important; 94 background-color: white !important;
95 } 95 }
96 96
97 .text-purple { 97 .text-purple {
98 color: $purple; 98 color: $purple;
99 } 99 }
100 100
101 .vh-70 { 101 .vh-70 {
102 min-height: auto !important; 102 min-height: auto !important;
103 max-height: 70vh !important; 103 max-height: 70vh !important;
104 } 104 }
105 105
106 .vh-60 { 106 .vh-60 {
107 min-height: auto !important; 107 min-height: auto !important;
108 max-height: 60vh !important; 108 max-height: 60vh !important;
109 } 109 }
110 110
111 .spinner-lg { 111 .spinner-lg {
112 width: 3rem !important; 112 width: 3rem !important;
113 height: 3rem !important; 113 height: 3rem !important;
114 } 114 }
115 115
116 .sidebar { 116 .sidebar {
117 right: 0; 117 right: 0;
118 } 118 }
119
120 .background-image {
121 background-image: url(http://10.231.45.117:4705/autoservicio/imagenes/homeBackground.jpg);
122 background-repeat: no-repeat;
123 background-size: cover;
124 }
125
126 .rounded-bottom-right {
127 border-bottom-right-radius: 10rem;
128 &:before {
129 border-radius: 0 40px 40px 0;
130 background-color: #fff;
131 }
132 }
133
134 .rounded-top-left {
135 border-top-left-radius: 10rem;
136 }
137
138 .bg-gray {
139 background-color: #cccccc;
140 }
119 141