login create and change version

This commit is contained in:
2021-01-11 23:21:59 -06:00
parent 2e8938f863
commit 76537e91b2
10 changed files with 76 additions and 34 deletions
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" type=image/png href=assets/icono.png><title>Portal Editorial Acatlán</title><link href=css/app.5e1fdc87.css rel=preload as=style><link href=css/chunk-vendors.138628b4.css rel=preload as=style><link href=js/app.9ff39dfe.js rel=preload as=script><link href=js/chunk-vendors.67046eec.js rel=preload as=script><link href=css/chunk-vendors.138628b4.css rel=stylesheet><link href=css/app.5e1fdc87.css rel=stylesheet></head><body><noscript><strong>We're sorry but portal doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=js/chunk-vendors.67046eec.js></script><script src=js/app.9ff39dfe.js></script></body></html> <!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel="shortcut icon" type=image/png href=assets/icono.png><title>Portal Editorial Acatlán</title><link href=css/app.477deb9f.css rel=preload as=style><link href=css/chunk-vendors.138628b4.css rel=preload as=style><link href=js/app.fc7b6a75.js rel=preload as=script><link href=js/chunk-vendors.67046eec.js rel=preload as=script><link href=css/chunk-vendors.138628b4.css rel=stylesheet><link href=css/app.477deb9f.css rel=stylesheet></head><body><noscript><strong>We're sorry but portal doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=js/chunk-vendors.67046eec.js></script><script src=js/app.fc7b6a75.js></script></body></html>
-2
View File
File diff suppressed because one or more lines are too long
-1
View File
File diff suppressed because one or more lines are too long
+2
View File
File diff suppressed because one or more lines are too long
+1
View File
File diff suppressed because one or more lines are too long
+8 -10
View File
@@ -66,12 +66,10 @@
</b-row> </b-row>
<b-row class="mb-2"> <b-row class="mb-2">
<b-col> <b-col>
<b-form-input <b-dropdown v-model="version" v-bind:text="version" block split split-variant="outline-primary" variant="primary" class="m-2">
id="version" <b-dropdown-item @click="version='Impresa'" >Impresa</b-dropdown-item>
class="mb-2 mr-sm-2 mb-sm-0" <b-dropdown-item @click="version='Digital'" >Digital</b-dropdown-item>
placeholder="Versión" </b-dropdown>
v-model="version"
></b-form-input>
</b-col> </b-col>
<b-col> <b-col>
<b-form-input <b-form-input
@@ -150,7 +148,7 @@ export default {
paginas:"", paginas:"",
impresion:"", impresion:"",
precio:"", precio:"",
version:"", version:"Versión",
descripcion:"", descripcion:"",
year:"", year:"",
@@ -178,7 +176,7 @@ export default {
if(this.paginas !== "") formData.append("paginas", this.paginas); else return this.faltaCampo("Paginas"); if(this.paginas !== "") formData.append("paginas", this.paginas); else return this.faltaCampo("Paginas");
if(this.impresion !== "") formData.append("edicion", this.impresion); else return this.faltaCampo("Edición"); if(this.impresion !== "") formData.append("edicion", this.impresion); else return this.faltaCampo("Edición");
if(this.precio !== "") formData.append("precio", this.precio); else return this.faltaCampo("Precio"); if(this.precio !== "") formData.append("precio", this.precio); else return this.faltaCampo("Precio");
if(this.version !== "") formData.append("version", this.version); else return this.faltaCampo("Versión"); if(this.version !== "Versión") formData.append("version", this.version); else return this.faltaCampo("Versión");
if(this.descripcion !== "") formData.append("descripcion", this.descripcion); else return this.faltaCampo("Descripción"); if(this.descripcion !== "") formData.append("descripcion", this.descripcion); else return this.faltaCampo("Descripción");
if(this.year !== "") formData.append("year", this.year); else return this.faltaCampo("Año de publicación"); if(this.year !== "") formData.append("year", this.year); else return this.faltaCampo("Año de publicación");
if(imagen.files.length > 0) formData.append("imagen", imagen.files[0]); else return this.faltaCampo("Imagen"); if(imagen.files.length > 0) formData.append("imagen", imagen.files[0]); else return this.faltaCampo("Imagen");
@@ -186,7 +184,7 @@ export default {
formData.append("type", 'addLibro'); formData.append("type", 'addLibro');
await axios.post( `${config.api}/actualizarLibro`, formData ,{ headers: { 'Content-Type': 'multipart/form-data' } }); await axios.post( `${config.api}/actualizarLibro`, formData ,{ headers: { 'Content-Type': 'multipart/form-data' } });
await Swal.fire( await Swal.fire(
'Libro agregado con exito', 'Libro agregado con éxito',
'', '',
'success' 'success'
); );
@@ -196,7 +194,7 @@ export default {
console.log(error); console.log(error);
Swal.fire({ Swal.fire({
icon: 'error', icon: 'error',
title: 'El libro no pudo ser agregada', title: 'El libro no pudo ser agregado',
text: `Algo salio mal, ${error}`, text: `Algo salio mal, ${error}`,
}); });
} }
+35 -1
View File
@@ -1,6 +1,24 @@
<template> <template>
<div> <div>
<b-nav vertical class="mt-3"> <b-nav vertical class="mt-3">
<b-nav-item class="m-2">
<div class="accordion" role="tablist">
<b-card no-body >
<b-card-header header-tag="header" role="tab">
<b-button block squared v-b-toggle.user class="p-1 azulUnam">
<b-icon icon="person-fill" style="margin-bottom: 4px;"></b-icon>
{{user}}
</b-button>
</b-card-header>
<b-collapse id="user" accordion="my-accordion" role="tabpanel">
<b-card-body>
<b-button block variant="light" class="p-1 m-0 rojo" @click="cerrarSesion()">Cerrar sesión</b-button>
</b-card-body>
</b-collapse>
</b-card>
</div>
</b-nav-item>
<b-nav-item class="m-2"> <b-nav-item class="m-2">
<div class="accordion" role="tablist"> <div class="accordion" role="tablist">
<b-card no-body > <b-card no-body >
@@ -32,6 +50,19 @@
</b-nav> </b-nav>
</div> </div>
</template> </template>
<script>
export default {
props:{
user: String
},
methods:{
cerrarSesion(){
localStorage.clear();
this.$router.replace('/login')
}
}
}
</script>
<style scoped> <style scoped>
@@ -43,6 +74,9 @@
.azulUnam { .azulUnam {
background-color: #1e3c70; background-color: #1e3c70;
} }
.rojo:hover{
background-color: #CA230C;
color: white;
}
</style> </style>
+8 -12
View File
@@ -7,16 +7,14 @@
<form class="row d-flex justify-content-center"> <form class="row d-flex justify-content-center">
<input <input
type="text" type="text"
v-model="data.email" v-model="email"
id="login"
class="form-control col-8" class="form-control col-8"
name="login" name="login"
placeholder="Usuario" placeholder="Usuario"
/> />
<input <input
type="password" type="password"
v-model="data.password" v-model="password"
id="password"
class="form-control col-8 my-3" class="form-control col-8 my-3"
name="login" name="login"
placeholder="Contraseña" placeholder="Contraseña"
@@ -41,27 +39,25 @@ import Swal from 'sweetalert2'
export default { export default {
data() { data() {
return { return {
data: { email: "",
email: "", password: ""
password: ""
}
}; };
}, },
methods: { methods: {
login() { login() {
const data = { const datos = {
usuario: this.email, usuario: this.email,
password: this.password password: this.password
} }
axios.post( `${config.api}/loginAdmin`, data ).then(async response =>{ axios.post( `${config.api}/loginAdmin`, datos ).then(async response =>{
localStorage.setItem('tokenPortal', response.data.token); localStorage.setItem('tokenPortal', response.data.token);
localStorage.setItem('userNamePortal', response.data.user);
await Swal.fire( await Swal.fire(
'Bienvenido', 'Bienvenido',
'', '',
'success' 'success'
); );
this.$router.replace('/portalAdmin'); this.$router.replace('/panelAdmin');
}).catch(() =>{ }).catch(() =>{
Swal.fire({ Swal.fire({
+20 -6
View File
@@ -4,7 +4,7 @@
<b-row> <b-row>
<b-col cols="2" style="background-color: #bb8800;" class="p-0 m-0"> <b-col cols="2" style="background-color: #bb8800;" class="p-0 m-0">
<div class="p-0 m-0"> <div class="p-0 m-0">
<NavAdmin /> <NavAdmin v-bind:user="usuario"/>
</div> </div>
</b-col> </b-col>
<b-col cols="10"> <b-col cols="10">
@@ -30,9 +30,9 @@ import EditarLibro from './../components/editarLibro.vue';
import EditarBanner from './../components/editarBanner.vue'; import EditarBanner from './../components/editarBanner.vue';
import AgregarLibro from './../components/agregarLibro.vue'; import AgregarLibro from './../components/agregarLibro.vue';
import NavAdmin from './../components/navAdmin.vue'; import NavAdmin from './../components/navAdmin.vue';
/*import axios from "axios"; import axios from "axios";
import config from "../config/config.js"; import config from "../config/config.js";
import Swal from 'sweetalert2'*/ import Swal from 'sweetalert2'
export default { export default {
name: "panelAdmin", name: "panelAdmin",
components: { components: {
@@ -43,10 +43,24 @@ export default {
EditarBanner, EditarBanner,
AgregarLibro AgregarLibro
}, },
/*beforeCreate(){ data() {
return {
usuario: ""
};
},
beforeCreate(){
let token = localStorage.getItem('tokenPortal'); let token = localStorage.getItem('tokenPortal');
console.log(token);
if(token === null) this.$router.replace('/login'); if(token === null) this.$router.replace('/login');
axios.post( `${config.api}/checkToken`, {token: token} ).catch(async () =>{ axios.post( `${config.api}/checkToken`, {token: token}, {
headers: {
authorization: 'Bearer ' + token,
}}).then(async response =>{
console.log('lo que responde', response.data.datos.user.user);
this.usuario = response.data.datos.user.user;
}).catch(async (error) =>{
console.log(error);
await Swal.fire({ await Swal.fire({
icon: 'error', icon: 'error',
title: 'La sesión ha expirado', title: 'La sesión ha expirado',
@@ -54,7 +68,7 @@ export default {
}); });
this.$router.replace('/login') this.$router.replace('/login')
}); });
}*/ }
}; };
</script> </script>