change routes to update and create lib

This commit is contained in:
2021-01-11 03:19:47 -06:00
parent 30d93847a5
commit 2e8938f863
16 changed files with 176 additions and 148 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.4b287322.css rel=preload as=style><link href=css/chunk-vendors.138628b4.css rel=preload as=style><link href=js/app.67d6f3a9.js rel=preload as=script><link href=js/chunk-vendors.f7c3b5b9.js rel=preload as=script><link href=css/chunk-vendors.138628b4.css rel=stylesheet><link href=css/app.4b287322.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.f7c3b5b9.js></script><script src=js/app.67d6f3a9.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.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>
-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
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+8 -12
View File
@@ -86,8 +86,7 @@
<b-row class="mb-2"> <b-row class="mb-2">
<b-col> <b-col>
<b-form-file <b-form-file
id="pdf" id="pdfNuevo"
v-model="pdf"
placeholder="Seleccione el PDF o arrastre..." placeholder="Seleccione el PDF o arrastre..."
accept=".pdf" accept=".pdf"
></b-form-file> ></b-form-file>
@@ -95,10 +94,9 @@
<b-col> <b-col>
<b-form-file <b-form-file
id="imagen" id="imagenNuevo"
v-model="imagen"
placeholder="Seleccione la imagen o arrastre..." placeholder="Seleccione la imagen o arrastre..."
accept=".png" accept=".png, .jpg"
></b-form-file> ></b-form-file>
</b-col> </b-col>
</b-row> </b-row>
@@ -155,8 +153,6 @@ export default {
version:"", version:"",
descripcion:"", descripcion:"",
year:"", year:"",
imagen: null,
pdf: null
}; };
}, },
@@ -173,8 +169,8 @@ export default {
var formData = new FormData(); var formData = new FormData();
var imagen = document.querySelector('#imagen'); var imagen = document.querySelector('#imagenNuevo');
var pdf = document.querySelector('#pdf'); var pdf = document.querySelector('#pdfNuevo');
if(this.isbn !== "") formData.append("isbn", this.isbn); else return this.faltaCampo("ISBN"); if(this.isbn !== "") formData.append("isbn", this.isbn); else return this.faltaCampo("ISBN");
if(this.titulo !== "") formData.append("titulo", this.titulo); else return this.faltaCampo("Titulo"); if(this.titulo !== "") formData.append("titulo", this.titulo); else return this.faltaCampo("Titulo");
if(this.categoria !== "Categoria") formData.append("categoria", this.categoria); else return this.faltaCampo("Categoria"); if(this.categoria !== "Categoria") formData.append("categoria", this.categoria); else return this.faltaCampo("Categoria");
@@ -187,10 +183,10 @@ export default {
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");
if(pdf.files.length > 0) formData.append("pdf", pdf.files[0]); else return this.faltaCampo("Pdf"); if(pdf.files.length > 0) formData.append("pdf", pdf.files[0]); else return this.faltaCampo("Pdf");
formData.append("type", 'addLibro');
await axios.post( `${config.api}/agregarLibro`, 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 agregada con exito', 'Libro agregado con exito',
'', '',
'success' 'success'
); );
+8 -8
View File
@@ -9,7 +9,7 @@
id="nuevaImagenBanner" id="nuevaImagenBanner"
block block
placeholder="Seleccione la imagen o arrastre aqui..." placeholder="Seleccione la imagen o arrastre aqui..."
accept=".png" accept=".png, .jpg"
></b-form-file> ></b-form-file>
</b-col> </b-col>
<b-col> <b-col>
@@ -18,12 +18,12 @@
</b-row> </b-row>
</div> </div>
<h1 class="mb-4" style="text-align:left;">Eliminar Imagen</h1> <h1 class="mb-4" style="text-align:left;">Eliminar Imagen</h1>
<div class="divMaster row "> <div class=" row ">
<div class=" d-flex flex-wrap " style="justify-content: space-between;"> <div class="d-flex flex-wrap" style="justify-content: space-between;">
<div v-bind:key="libro.id" v-for="libro in imagenesBanner" > <div v-bind:key="imagenBanner.id" v-for="imagenBanner in imagenesBanner" >
<b-card class="mb-3" style="width: 28rem;"> <b-card class="m-3" style="width: 28rem;">
<b-card-img :src="libro.img" alt="Image" ></b-card-img> <b-card-img :src="imagenBanner.img" alt="Image" ></b-card-img>
<b-card-footer><b-button variant="danger" @click="eliminarImagen(libro.nombreImagen)">Eliminar</b-button></b-card-footer> <b-card-footer><b-button variant="danger" @click="eliminarImagen(imagenBanner.nombreImagen)">Eliminar</b-button></b-card-footer>
</b-card> </b-card>
</div> </div>
</div> </div>
@@ -40,7 +40,7 @@ export default {
data() { data() {
return { return {
imagenesBanner: [], imagenesBanner: [],
nuevaImagenBanner: "", nuevaImagenBanner: null,
}; };
}, },
methods:{ methods:{
+11 -15
View File
@@ -1,17 +1,17 @@
<template> <template>
<b-container class="mt-5"> <b-container class="mt-5">
<div class=" divMaster row row d-flex flex-wrap justify-content-center mb-3"> <div class=" divMaster row row d-flex flex-wrap justify-content-center mb-3">
<b-input-group class="mb-2"> <b-input-group class="mb-2">
<b-input-group-prepend is-text> <b-input-group-prepend is-text>
<b-icon icon="search"></b-icon> <b-icon icon="search"></b-icon>
</b-input-group-prepend> </b-input-group-prepend>
<b-form-input type="search" placeholder="Buscar" v-model="searchLibro" ></b-form-input> <b-form-input type="search" placeholder="Buscar" v-model="searchLibro" ></b-form-input>
</b-input-group> </b-input-group>
</div> </div>
<div class="divMaster row "> <div class="divMaster row ">
<div class=" d-flex flex-wrap " style="justify-content: space-between;"> <div class=" d-flex flex-wrap " style="justify-content: space-between;">
<div v-bind:key="libro.id" v-for="libro in listaLibroFiltrada" > <div v-bind:key="libro.id" v-for="libro in listaLibroFiltrada" >
<b-card class="mb-3" style="width: 14rem; height: 25rem;"> <b-card class="mb-3" style="width: 14rem; height: 25rem;">
<b-card-img :src="libro.img" alt="Image" style="max-width: 20rem; height: 15rem;" ></b-card-img> <b-card-img :src="libro.img" alt="Image" style="max-width: 20rem; height: 15rem;" ></b-card-img>
<p class="mt-1" style="text-align: left; font-size: 15px;">{{nombreLibro(libro.titulo)}}</p> <p class="mt-1" style="text-align: left; font-size: 15px;">{{nombreLibro(libro.titulo)}}</p>
<template #footer> <template #footer>
@@ -22,7 +22,7 @@
</div> </div>
</div> </div>
</div> </div>
<ModalEditar v-bind:libro="libroSelect" value="valueCampo" /> <ModalEditar v-bind:libro="libroSelect" />
</b-container> </b-container>
</template> </template>
@@ -88,11 +88,6 @@ export default {
return nombreLibro; return nombreLibro;
return `${nombreLibro.substring(0, maxLengthtitulo)}...`; return `${nombreLibro.substring(0, maxLengthtitulo)}...`;
},
async descripcion(idLibro) {
localStorage.clear();
window.localStorage.setItem("idLibro", idLibro);
this.$router.push("/desc");
} }
}, },
async created() { async created() {
@@ -107,9 +102,9 @@ export default {
responseType: "blob" responseType: "blob"
}; };
try { try {
axios(config).then(response => { axios(config).then( async response => {
let reader = new FileReader(); let reader = new FileReader();
reader.readAsDataURL(response.data); await reader.readAsDataURL(response.data);
reader.onload = () => { reader.onload = () => {
this.Libros.push({ this.Libros.push({
id: todosLibros[i].idLibro, id: todosLibros[i].idLibro,
@@ -128,6 +123,7 @@ export default {
}); });
}; };
}).catch(() =>{ }).catch(() =>{
this.Libros.push({ this.Libros.push({
id: todosLibros[i].idLibro, id: todosLibros[i].idLibro,
titulo: todosLibros[i].titulo, titulo: todosLibros[i].titulo,
+4 -6
View File
@@ -1,6 +1,6 @@
<template> <template>
<b-modal size="lg" id="modalEditarLibro" hide-footer title="Editar Libro"> <b-modal size="lg" id="modalEditarLibro" hide-footer title="Editar Libro">
<b-container fluid> <b-container fluid v-if="libro!=null">
<b-row class="mb-2"> <b-row class="mb-2">
<b-col > <b-col >
<h2 style="text-align:left;"> {{libro.titulo}}</h2> <h2 style="text-align:left;"> {{libro.titulo}}</h2>
@@ -183,9 +183,8 @@
</b-col> </b-col>
<b-col cols="6"> <b-col cols="6">
<b-form-file <b-form-file
placeholder="Seleccione la imagen o arrastre..." placeholder="Seleccione la imagen o arrastre..."
accept=".png" accept=".png, .jpg"
id="imagen" id="imagen"
></b-form-file> ></b-form-file>
</b-col> </b-col>
@@ -198,7 +197,6 @@
</b-col> </b-col>
<b-col cols="6"> <b-col cols="6">
<b-form-file <b-form-file
placeholder="Seleccione el PDF o arrastre..." placeholder="Seleccione el PDF o arrastre..."
id="pdf" id="pdf"
accept=".pdf" accept=".pdf"
@@ -225,7 +223,6 @@ import Swal from 'sweetalert2'
export default { export default {
props: { props: {
libro: Object, libro: Object,
value: String
}, },
data() { data() {
return { return {
@@ -279,7 +276,8 @@ export default {
if(this.isActiveDescripcion) formData.append("descripcion", this.descripcion); if(this.isActiveDescripcion) formData.append("descripcion", this.descripcion);
if(this.isActiveYear) formData.append("year", this.year); if(this.isActiveYear) formData.append("year", this.year);
formData.append("idLibro", idLibro); formData.append("idLibro", idLibro);
await axios.post( `${config.api}/actualizarLibro`, formData ,{ headers: { 'Content-Type': 'multipart/form-data' } }); formData.append("type", 'editarLibro');
await axios.post( `${config.api}/actualizarLibro`, formData ,{ headers: { 'Content-Type': 'multipart/form-data' } });
await Swal.fire( await Swal.fire(
'Libro actualizado con exito', 'Libro actualizado con exito',
'', '',
+27 -4
View File
@@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<Header /> <Header />
<h1 class="my-5">Inicia Sesion</h1> <h1 class="my-5">Inicia Sesión</h1>
<div class="row d-flex justify-content-center"> <div class="row d-flex justify-content-center">
<div class="col-12 col-md-8 col-lg-6 col-xl-6"> <div class="col-12 col-md-8 col-lg-6 col-xl-6">
<form class="row d-flex justify-content-center"> <form class="row d-flex justify-content-center">
@@ -35,7 +35,9 @@
<script> <script>
import Header from "./../components/header.vue"; import Header from "./../components/header.vue";
import axios from "axios";
import config from "../config/config.js";
import Swal from 'sweetalert2'
export default { export default {
data() { data() {
return { return {
@@ -47,12 +49,33 @@ export default {
}, },
methods: { methods: {
login() { login() {
alert(this.data.email); const data = {
usuario: this.email,
password: this.password
}
axios.post( `${config.api}/loginAdmin`, data ).then(async response =>{
localStorage.setItem('tokenPortal', response.data.token);
localStorage.setItem('userNamePortal', response.data.user);
await Swal.fire(
'Bienvenido',
'',
'success'
);
this.$router.replace('/portalAdmin');
}).catch(() =>{
Swal.fire({
icon: 'error',
title: 'El usuario o la contraseña es incorrecta',
text: `Intentalo de nuevo.`,
});
});
} }
}, },
components: { components: {
Header Header
} },
}; };
</script> </script>
+15
View File
@@ -30,6 +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 config from "../config/config.js";
import Swal from 'sweetalert2'*/
export default { export default {
name: "panelAdmin", name: "panelAdmin",
components: { components: {
@@ -40,6 +43,18 @@ export default {
EditarBanner, EditarBanner,
AgregarLibro AgregarLibro
}, },
/*beforeCreate(){
let token = localStorage.getItem('tokenPortal');
if(token === null) this.$router.replace('/login');
axios.post( `${config.api}/checkToken`, {token: token} ).catch(async () =>{
await Swal.fire({
icon: 'error',
title: 'La sesión ha expirado',
text: `Ingrese de nuevo.`,
});
this.$router.replace('/login')
});
}*/
}; };
</script> </script>