- Nuevo componente Tienda que lista los productos
- Cambios menores
This commit is contained in:
parent
a30437941f
commit
3ba30efacc
2
dist/css/base.css
vendored
2
dist/css/base.css
vendored
File diff suppressed because one or more lines are too long
51
index.php
51
index.php
@ -40,6 +40,10 @@ const headerMin = {
|
|||||||
template: `<?php include "./src/componentes/headerMin.vue" ?>`
|
template: `<?php include "./src/componentes/headerMin.vue" ?>`
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const headerMini = {
|
||||||
|
template: `<?php include "./src/componentes/header-mini.vue"?>`
|
||||||
|
};
|
||||||
|
|
||||||
const inicio = {
|
const inicio = {
|
||||||
template: `<?php include "./src/componentes/inicio.vue" ?>`,
|
template: `<?php include "./src/componentes/inicio.vue" ?>`,
|
||||||
components: {
|
components: {
|
||||||
@ -49,11 +53,53 @@ const inicio = {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const tienda = function (resolve, reject) {
|
||||||
|
const ajax1 = new XMLHttpRequest();
|
||||||
|
const ajax2 = new XMLHttpRequest();
|
||||||
|
|
||||||
|
ajax1.onreadystatechange = ajax2.onreadystatechange = () => {
|
||||||
|
if (ajax1.status === 200 && ajax1.readyState === 4 && ajax2.status === 200 && ajax2.readyState === 4) {
|
||||||
|
const platosD = JSON.parse(ajax2.responseText);
|
||||||
|
resolve({
|
||||||
|
template: `${ajax1.responseText}`,
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
platos: platosD,
|
||||||
|
itemActual: 1
|
||||||
|
};
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
'mi-footer': footer,
|
||||||
|
'header-mini': headerMini,
|
||||||
|
'nav-bar': navBar
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
cambiarContador: function () {
|
||||||
|
if (this.itemActual === 1 || this.itemActual === 2){
|
||||||
|
this.itemActual++;
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
this.itemActual = 1;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
ajax1.open("GET","/ihc/src/componentes/tienda.vue",true);
|
||||||
|
ajax1.send();
|
||||||
|
|
||||||
|
ajax2.open("GET","/ihc/src/data/platos.json");
|
||||||
|
ajax2.send();
|
||||||
|
};
|
||||||
|
|
||||||
const carrito = {
|
const carrito = {
|
||||||
template: `<?php include "./src/componentes/carrito.vue"?>`,
|
template: `<?php include "./src/componentes/carrito.vue"?>`,
|
||||||
components: {
|
components: {
|
||||||
'mi-footer': footer,
|
'mi-footer': footer,
|
||||||
'header-min': headerMin,
|
'header-mini': headerMini,
|
||||||
'nav-bar': navBar
|
'nav-bar': navBar
|
||||||
},
|
},
|
||||||
data: function () {
|
data: function () {
|
||||||
@ -105,7 +151,8 @@ const carrito = {
|
|||||||
|
|
||||||
const routes = [
|
const routes = [
|
||||||
{path: '/ihc/',component: inicio},
|
{path: '/ihc/',component: inicio},
|
||||||
{path: '/ihc/carrito/', component: carrito}
|
{path: '/ihc/carrito/', component: carrito},
|
||||||
|
{path: '/ihc/tienda/', component: tienda}
|
||||||
];
|
];
|
||||||
|
|
||||||
const router = new VueRouter({
|
const router = new VueRouter({
|
||||||
|
@ -5,7 +5,8 @@
|
|||||||
"main": "index.php",
|
"main": "index.php",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"uglify": "uglifyjs src/js/*.js -m -c -o dist/js/app.js",
|
"uglify": "uglifyjs src/js/*.js -m -c -o dist/js/app.js",
|
||||||
"sass": "sass -s compressed src/sass:dist/css"
|
"sass": "sass -s compressed src/sass:dist/css",
|
||||||
|
"compile": "npm run uglify && npm run sass"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<div>
|
<div>
|
||||||
<header-min></header-min>
|
<header-mini></header-mini>
|
||||||
|
|
||||||
<nav-bar></nav-bar>
|
<nav-bar></nav-bar>
|
||||||
|
|
||||||
|
7
src/componentes/header-mini.vue
Normal file
7
src/componentes/header-mini.vue
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<header id="header">
|
||||||
|
<div class="contenedor">
|
||||||
|
<div id="tituloP" class="center tituloP--mini">
|
||||||
|
<router-link to="/ihc/" class="titulo--link">L'Assiette</router-link>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
@ -1,10 +0,0 @@
|
|||||||
<header id="header">
|
|
||||||
<div class="contenedor">
|
|
||||||
<div id="tituloP" class="center">
|
|
||||||
<a href="./#" style="color: white; text-decoration: none">Le goût</a>
|
|
||||||
<div id="tituloP--descripcion">
|
|
||||||
Descubre un nuevo sabor
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
@ -1,7 +1,7 @@
|
|||||||
<header id="header">
|
<header id="header">
|
||||||
<div class="contenedor">
|
<div class="contenedor">
|
||||||
<div id="tituloP" class="center">
|
<div id="tituloP" class="center">
|
||||||
<a href="./#" style="color: white; text-decoration: none">L'Assiette</a>
|
<router-link to="/ihc/" class="titulo--link">L'Assiette</router-link>
|
||||||
<div id="tituloP--descripcion">
|
<div id="tituloP--descripcion">
|
||||||
Descubre un nuevo sabor
|
Descubre un nuevo sabor
|
||||||
</div>
|
</div>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<div class="contenedor">
|
<div class="contenedor">
|
||||||
Cocina Francesa.<br/>
|
Cocina Francesa.<br/>
|
||||||
Una Single Page Application para el curso de IHC, UNSA, 2018.<br/>
|
Una Single Page Application para el curso de IHC, UNSA, 2018.<br/>
|
||||||
Se utilizaron: Vue.js, BEM, Sass, npm, y PHP.<br>
|
Se utilizaron: Vue.js, BEM, Sass, npm, y nodejs.<br>
|
||||||
<br/>
|
<br/>
|
||||||
Desarrollado por Fernando Araoz, 20173373.
|
Desarrollado por Fernando Araoz, 20173373.
|
||||||
</div>
|
</div>
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<nav id="navBar" class="mySeccion" data-collapsed="true">
|
<nav id="navBar" class="mySeccion" data-collapsed="true">
|
||||||
<ul class="linksNavBar">
|
<ul class="linksNavBar">
|
||||||
<li><router-link to="/ihc/">Inicio</router-link></li>
|
<li><router-link to="/ihc/">Inicio</router-link></li>
|
||||||
<li><router-link to="/ihc/usuarios/">Comprar</router-link></li>
|
<li><router-link to="/ihc/tienda/">Comprar</router-link></li>
|
||||||
<li><router-link to="/ihc/usuarios/mi-cuenta">Mi cuenta</router-link></li>
|
<li><router-link to="/ihc/usuarios/mi-cuenta">Mi cuenta</router-link></li>
|
||||||
<li><router-link to="/ihc/carrito/">Carrito</router-link></li>
|
<li><router-link to="/ihc/carrito/">Carrito</router-link></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
48
src/componentes/tienda.vue
Normal file
48
src/componentes/tienda.vue
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<div>
|
||||||
|
<header-mini></header-mini>
|
||||||
|
|
||||||
|
<nav-bar></nav-bar>
|
||||||
|
|
||||||
|
<section class="tienda contenedor mySeccion" data-collapsed="false">
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<div class="tienda--titulo">Tienda</div>
|
||||||
|
<br>
|
||||||
|
Ver mi cuenta | Ver mi carrito
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<template v-for="item in platos">
|
||||||
|
<div class="row tienda--tarjeta">
|
||||||
|
<div class="col-4">
|
||||||
|
<img class="responsive-image" :src="item.imgUrl"/>
|
||||||
|
</div>
|
||||||
|
<div class="col-8">
|
||||||
|
<div class="tienda--tarjeta--titulo">
|
||||||
|
{{ item.nombre }}
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="tienda--tarjeta--descripcion">
|
||||||
|
{{ item.descripcion }}
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="tienda--tarjeta--precio">
|
||||||
|
{{ item.precio }}
|
||||||
|
</div>
|
||||||
|
<br>
|
||||||
|
<div class="tienda--tarjeta--cantidad">
|
||||||
|
1
|
||||||
|
<i class='material-icons plato--Cantidad--Icon'>add</i>
|
||||||
|
</div>
|
||||||
|
<br/>
|
||||||
|
<button class="tienda--tarjeta--botonComprar">
|
||||||
|
<i class='material-icons'>add_shopping_cart</i> Añadir al carrito
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<mi-footer></mi-footer>
|
||||||
|
</div>
|
50
src/data/platos.json
Normal file
50
src/data/platos.json
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"nombre": "Soupe à l'oignon",
|
||||||
|
"descripcion": "Sopa tradicional hecha con cebolla y carne.",
|
||||||
|
"imgUrl": "https://www.expatica.com/media/upload/714571.jpg",
|
||||||
|
"precio": 20
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nombre": "Coq au vin",
|
||||||
|
"descripcion": "Pollo cocinado con vino, hongos, carne de cerdo y ajo",
|
||||||
|
"imgUrl": "https://www.expatica.com/media/upload/714572.jpg",
|
||||||
|
"precio": 50
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nombre": "Beef bourguignon",
|
||||||
|
"descripcion": "Filete cocinado en vino, sasonado con especias",
|
||||||
|
"imgUrl": "https://www.expatica.com/media/upload/714573.jpg",
|
||||||
|
"precio": 30
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nombre": "Cassoulet",
|
||||||
|
"descripcion": "Guiso parecido a las habichuelas típicas españolas que se hace con alubias blancas o frijoles acompañadas de carne de diferentes animales",
|
||||||
|
"imgUrl": "https://www.viajejet.com/wp-content/viajes/Cassoulet-570x320.jpg",
|
||||||
|
"precio": 22
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nombre": "Fondue de queso",
|
||||||
|
"descripcion": "Crema que se puede tomar bien como acompañante de otros ingredientes o bien mojando trozos de pan en él.",
|
||||||
|
"imgUrl": "https://www.viajejet.com/wp-content/viajes/Fondue-570x321.jpg",
|
||||||
|
"precio": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nombre": "Ratatouille",
|
||||||
|
"descripcion": "Elaborado con diversas hortalizas, es un plato natural de Niza y la región de Provenza, al sureste de Francia.",
|
||||||
|
"imgUrl": "https://www.viajejet.com/wp-content/viajes/Ratatouille-570x320.jpg",
|
||||||
|
"precio": 35
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nombre": "Magret de canard",
|
||||||
|
"descripcion": "Un filete de carne magra, que suele provenir de un ganso o pato cebado",
|
||||||
|
"imgUrl": "https://www.viajejet.com/wp-content/viajes/Magret-de-Canard-570x320.jpg",
|
||||||
|
"precio": 17
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nombre": "Merluza al beurre blanc",
|
||||||
|
"descripcion": "Este plato consiste en troncos o lomos de merluza que se sirven en salsa beurre blanc.",
|
||||||
|
"imgUrl": "https://www.viajejet.com/wp-content/viajes/Merluza-a-la-beurre-blanc-570x320.jpg",
|
||||||
|
"precio": 22
|
||||||
|
}
|
||||||
|
]
|
@ -3,6 +3,8 @@
|
|||||||
$fuenteTitulos: 'Muli'
|
$fuenteTitulos: 'Muli'
|
||||||
$fuentePrincipal: 'Open Sans'
|
$fuentePrincipal: 'Open Sans'
|
||||||
|
|
||||||
|
$colorPrincipalOscuro: #3d3d7c
|
||||||
|
|
||||||
*
|
*
|
||||||
box-sizing: border-box
|
box-sizing: border-box
|
||||||
|
|
||||||
@ -95,6 +97,15 @@ footer
|
|||||||
size: large
|
size: large
|
||||||
family: $fuentePrincipal
|
family: $fuentePrincipal
|
||||||
|
|
||||||
|
.tituloP--mini
|
||||||
|
padding: 10px !important
|
||||||
|
font:
|
||||||
|
size: 40px !important
|
||||||
|
|
||||||
|
.titulo--link
|
||||||
|
color: white
|
||||||
|
text-decoration: none
|
||||||
|
|
||||||
.center
|
.center
|
||||||
text-align: center
|
text-align: center
|
||||||
|
|
||||||
@ -363,4 +374,56 @@ input
|
|||||||
weight: 900
|
weight: 900
|
||||||
margin: 10px 0
|
margin: 10px 0
|
||||||
|
|
||||||
|
.responsive-image
|
||||||
|
padding: 0 20px
|
||||||
|
width: 100%
|
||||||
|
height: auto
|
||||||
|
|
||||||
|
|
||||||
|
.tienda--titulo
|
||||||
|
text-align: center
|
||||||
|
font:
|
||||||
|
family: $fuenteTitulos, sans-serif
|
||||||
|
size: xx-large
|
||||||
|
weight: 900
|
||||||
|
margin: 10px 0
|
||||||
|
|
||||||
|
.tienda--tarjeta
|
||||||
|
padding: 10px
|
||||||
|
margin: 10px 5px
|
||||||
|
border-radius: 3px
|
||||||
|
box-shadow: 2px 2px 5px gray
|
||||||
|
|
||||||
|
.tienda--tarjeta--titulo
|
||||||
|
font:
|
||||||
|
size: x-large
|
||||||
|
family: $fuenteTitulos, sans-serif
|
||||||
|
color: $colorPrincipalOscuro
|
||||||
|
|
||||||
|
.tienda--tarjeta--descripcion
|
||||||
|
|
||||||
|
.tienda--tarjeta--precio
|
||||||
|
&:before
|
||||||
|
content: "Precio unitario: "
|
||||||
|
color: green
|
||||||
|
&:after
|
||||||
|
content: " S/."
|
||||||
|
|
||||||
|
.tienda--tarjeta--cantidad
|
||||||
|
&:before
|
||||||
|
content: "Cantidad <i class='material-icons plato--Cantidad--Icon'>remove</i> "
|
||||||
|
|
||||||
|
.tienda--tarjeta--botonComprar
|
||||||
|
background-color: white
|
||||||
|
color: $colorPrincipalOscuro
|
||||||
|
padding: 10px
|
||||||
|
cursor: pointer
|
||||||
|
border-radius: 3px
|
||||||
|
transition: color 100ms, background-color 100ms
|
||||||
|
font:
|
||||||
|
size: large
|
||||||
|
weight: bold
|
||||||
|
family: $fuenteTitulos
|
||||||
|
&:hover
|
||||||
|
background-color: $colorPrincipalOscuro
|
||||||
|
color: white
|
@ -1,13 +0,0 @@
|
|||||||
<br />
|
|
||||||
<br />
|
|
||||||
<div class="center">
|
|
||||||
Personal<br />
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
<a href="./#usuarios/">Volver a la carta</a>
|
|
||||||
<br />
|
|
||||||
<br />
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<br />
|
|
||||||
<br />
|
|
Loading…
Reference in New Issue
Block a user