add status of new libry
This commit is contained in:
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -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.16705f33.css rel=preload as=style><link href=css/chunk-vendors.138628b4.css rel=preload as=style><link href=js/app.e4a7f717.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.16705f33.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.e4a7f717.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.afa3884b.css rel=preload as=style><link href=css/chunk-vendors.138628b4.css rel=preload as=style><link href=js/app.a9f376b1.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.afa3884b.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.a9f376b1.js></script></body></html>
|
||||
Vendored
+2
File diff suppressed because one or more lines are too long
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
-2
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
+180
-124
@@ -1,140 +1,148 @@
|
||||
<template>
|
||||
<b-container fluid>
|
||||
<b-row class="mb-2">
|
||||
<b-col class="mt-5 mb-3">
|
||||
<h1 style="text-align:center;">Agregar Libro</h1>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col>
|
||||
<b-form-input
|
||||
id="isbn"
|
||||
class="mb-2 mr-sm-2 mb-sm-0"
|
||||
placeholder="ISBN"
|
||||
v-model="isbn"
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
<b-col>
|
||||
<b-form-input
|
||||
id="titulo"
|
||||
class="mb-2 mr-sm-2 mb-sm-0"
|
||||
placeholder="Titulo"
|
||||
v-model="titulo"
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
|
||||
</b-row>
|
||||
<div v-if="!cargando">
|
||||
<b-row class="mb-2">
|
||||
<b-col class="mt-5 mb-3">
|
||||
<h1 style="text-align:center;">Agregar Libro</h1>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col>
|
||||
<b-dropdown v-model="categoria" v-bind:text="categoria" block split split-variant="outline-primary" variant="primary" class="m-2">
|
||||
<b-dropdown-item @click="categoria='Ciencias Socioeconómicas'" >Ciencias Socioeconómicas</b-dropdown-item>
|
||||
<b-dropdown-item @click="categoria='Diseño y Edificación'" >Diseño y Edificación</b-dropdown-item>
|
||||
<b-dropdown-item @click="categoria='Enseñanza de Idiomas'" >Enseñanza de Idiomas</b-dropdown-item>
|
||||
<b-dropdown-item @click="categoria='Estudios de Posgrado'" >Estudios de Posgrado</b-dropdown-item>
|
||||
<b-dropdown-item @click="categoria='Humanidades'" >Humanidades</b-dropdown-item>
|
||||
<b-dropdown-item @click="categoria='Matemáticas e Ingenieria'" >Matemáticas e Ingenieria</b-dropdown-item>
|
||||
<b-dropdown-item @click="categoria='Universidad Abierta y Educación a Distancia'" >Universidad Abierta y Educación a Distancia</b-dropdown-item>
|
||||
</b-dropdown>
|
||||
<b-form-input
|
||||
id="isbn"
|
||||
class="mb-2 mr-sm-2 mb-sm-0"
|
||||
placeholder="ISBN"
|
||||
v-model="isbn"
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
<b-col>
|
||||
<b-form-input
|
||||
id="autor"
|
||||
id="titulo"
|
||||
class="mb-2 mr-sm-2 mb-sm-0"
|
||||
placeholder="Autor"
|
||||
v-model="autor"
|
||||
placeholder="Titulo"
|
||||
v-model="titulo"
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
</b-row>
|
||||
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col>
|
||||
<b-dropdown v-model="categoria" v-bind:text="categoria" block split split-variant="outline-primary" variant="primary" class="m-2">
|
||||
<b-dropdown-item @click="categoria='Ciencias Socioeconómicas'" >Ciencias Socioeconómicas</b-dropdown-item>
|
||||
<b-dropdown-item @click="categoria='Diseño y Edificación'" >Diseño y Edificación</b-dropdown-item>
|
||||
<b-dropdown-item @click="categoria='Enseñanza de Idiomas'" >Enseñanza de Idiomas</b-dropdown-item>
|
||||
<b-dropdown-item @click="categoria='Estudios de Posgrado'" >Estudios de Posgrado</b-dropdown-item>
|
||||
<b-dropdown-item @click="categoria='Humanidades'" >Humanidades</b-dropdown-item>
|
||||
<b-dropdown-item @click="categoria='Matemáticas e Ingenieria'" >Matemáticas e Ingenieria</b-dropdown-item>
|
||||
<b-dropdown-item @click="categoria='Universidad Abierta y Educación a Distancia'" >Universidad Abierta y Educación a Distancia</b-dropdown-item>
|
||||
</b-dropdown>
|
||||
</b-col>
|
||||
<b-col>
|
||||
<b-form-input
|
||||
id="autor"
|
||||
class="mb-2 mr-sm-2 mb-sm-0"
|
||||
placeholder="Autor"
|
||||
v-model="autor"
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col>
|
||||
<b-form-input
|
||||
id="paginas"
|
||||
class="mb-2 mr-sm-2 mb-sm-0"
|
||||
placeholder="Numero de paginas"
|
||||
v-model="paginas"
|
||||
type="number"
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
<b-col>
|
||||
<b-form-input
|
||||
id="precio"
|
||||
class="mb-2 mr-sm-2 mb-sm-0"
|
||||
placeholder="Precio"
|
||||
v-model="precio"
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col>
|
||||
<b-dropdown v-model="version" v-bind:text="version" block split split-variant="outline-primary" variant="primary" class="m-2">
|
||||
<b-dropdown-item @click="version='Impresa'" >Impresa</b-dropdown-item>
|
||||
<b-dropdown-item @click="version='Digital'" >Digital</b-dropdown-item>
|
||||
</b-dropdown>
|
||||
</b-col>
|
||||
<b-col>
|
||||
<b-form-input
|
||||
id="year"
|
||||
class="mb-2 mr-sm-2 mb-sm-0"
|
||||
placeholder="Año de publicación"
|
||||
v-model="year"
|
||||
type="number"
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col>
|
||||
<b-form-file
|
||||
id="pdfNuevo"
|
||||
placeholder="Seleccione el PDF o arrastre..."
|
||||
accept=".pdf"
|
||||
></b-form-file>
|
||||
</b-col>
|
||||
|
||||
<b-col>
|
||||
<b-form-file
|
||||
id="imagenNuevo"
|
||||
placeholder="Seleccione la imagen o arrastre..."
|
||||
accept=".png, .jpg"
|
||||
></b-form-file>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col>
|
||||
<b-form-input
|
||||
id="paginas"
|
||||
class="mb-2 mr-sm-2 mb-sm-0"
|
||||
placeholder="Numero de paginas"
|
||||
v-model="paginas"
|
||||
type="number"
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
<b-form-textarea
|
||||
id="descripcion"
|
||||
v-model="impresion"
|
||||
placeholder="Ediciones (Primera edición: 2016)"
|
||||
rows="3"
|
||||
max-rows="6"
|
||||
></b-form-textarea>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col>
|
||||
<b-form-input
|
||||
id="precio"
|
||||
class="mb-2 mr-sm-2 mb-sm-0"
|
||||
placeholder="Precio"
|
||||
v-model="precio"
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col>
|
||||
<b-dropdown v-model="version" v-bind:text="version" block split split-variant="outline-primary" variant="primary" class="m-2">
|
||||
<b-dropdown-item @click="version='Impresa'" >Impresa</b-dropdown-item>
|
||||
<b-dropdown-item @click="version='Digital'" >Digital</b-dropdown-item>
|
||||
</b-dropdown>
|
||||
</b-col>
|
||||
<b-col>
|
||||
<b-form-input
|
||||
id="year"
|
||||
class="mb-2 mr-sm-2 mb-sm-0"
|
||||
placeholder="Año de publicación"
|
||||
v-model="year"
|
||||
type="number"
|
||||
></b-form-input>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col>
|
||||
<b-form-file
|
||||
id="pdfNuevo"
|
||||
placeholder="Seleccione el PDF o arrastre..."
|
||||
accept=".pdf"
|
||||
></b-form-file>
|
||||
</b-col>
|
||||
|
||||
<b-col>
|
||||
<b-form-file
|
||||
id="imagenNuevo"
|
||||
placeholder="Seleccione la imagen o arrastre..."
|
||||
accept=".png, .jpg"
|
||||
></b-form-file>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col>
|
||||
<b-form-textarea
|
||||
id="descripcion"
|
||||
v-model="impresion"
|
||||
placeholder="Ediciones (Primera edición: 2016)"
|
||||
rows="3"
|
||||
max-rows="6"
|
||||
></b-form-textarea>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col>
|
||||
<b-form-textarea
|
||||
id="descripcion"
|
||||
v-model="descripcion"
|
||||
placeholder="Descripción"
|
||||
rows="3"
|
||||
max-rows="6"
|
||||
></b-form-textarea>
|
||||
</b-col>
|
||||
</b-row>
|
||||
|
||||
<b-row class="mb-2">
|
||||
<b-col class="mb-5">
|
||||
<div style="margin-top: 2rem;">
|
||||
<b-button block variant="success" @click="agregarLibro()">Agregar</b-button>
|
||||
</div>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-form-textarea
|
||||
id="descripcion"
|
||||
v-model="descripcion"
|
||||
placeholder="Descripción"
|
||||
rows="3"
|
||||
max-rows="6"
|
||||
></b-form-textarea>
|
||||
</b-col>
|
||||
</b-row>
|
||||
<b-row class="mb-2">
|
||||
<b-col class="mb-5">
|
||||
<div style="margin-top: 2rem;">
|
||||
<b-button block variant="success" @click="agregarLibro()">Agregar</b-button>
|
||||
</div>
|
||||
</b-col>
|
||||
</b-row>
|
||||
</div>
|
||||
<div v-else>
|
||||
<CargandoLibro v-bind:imageLoading="imageLoading" v-bind:pdfLoading="pdfLoading" v-bind:dataLoading="dataLoading" v-bind:imageSaved="imageSaved" v-bind:pdfSaved="pdfSaved" v-bind:dataSaved="dataSaved" />
|
||||
</div>
|
||||
</b-container>
|
||||
</template>
|
||||
<script>
|
||||
import axios from "axios";
|
||||
import config from "../config/config.js";
|
||||
import Swal from 'sweetalert2'
|
||||
import CargandoLibro from './cargandoDatos.vue';
|
||||
export default {
|
||||
components: {
|
||||
CargandoLibro
|
||||
},
|
||||
props: {
|
||||
nombreLibro: String,
|
||||
value: String
|
||||
@@ -151,7 +159,13 @@ export default {
|
||||
version:"Versión",
|
||||
descripcion:"",
|
||||
year:"",
|
||||
|
||||
cargando: false,
|
||||
imageLoading: true,
|
||||
pdfLoading: true,
|
||||
dataLoading: true,
|
||||
imageSaved: false,
|
||||
pdfSaved: false,
|
||||
dataSaved: false
|
||||
};
|
||||
},
|
||||
methods:{
|
||||
@@ -179,15 +193,57 @@ export default {
|
||||
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.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(pdf.files.length > 0) formData.append("pdf", pdf.files[0]); else return this.faltaCampo("Pdf");
|
||||
if(imagen.files.length === 0) return this.faltaCampo("Imagen");
|
||||
if(pdf.files.length === 0) return this.faltaCampo("Pdf");
|
||||
formData.append("type", 'addLibro');
|
||||
await axios.post( `${config.api}/actualizarLibro`, formData ,{ headers: { 'Content-Type': 'multipart/form-data' } });
|
||||
formData.append("seccion", 'datos');
|
||||
this.cargando = true;
|
||||
let idLibro = null;
|
||||
let textoFinal = ``;
|
||||
await axios.post( `${config.api}/actualizarLibro`, formData ,{ headers: { 'Content-Type': 'multipart/form-data' } }).then(response =>{
|
||||
console.log('lo que responde datos:', response);
|
||||
idLibro = response.data.idLibro;
|
||||
this.dataLoading= false;
|
||||
this.dataSaved = true;
|
||||
}).catch(async () =>{
|
||||
this.dataLoading= false
|
||||
await Swal.fire({
|
||||
icon: 'error',
|
||||
title: 'No se pudieron guardar los datos',
|
||||
text: `No se pudieron guardar los datos en la base de datos, intentelo en un otro momento`,
|
||||
});
|
||||
location.reload();
|
||||
return;
|
||||
});
|
||||
formData.delete('seccion');
|
||||
formData.append("seccion", 'imagen');
|
||||
formData.append("idLibro", idLibro);
|
||||
formData.append("imagen", imagen.files[0]);
|
||||
await axios.post( `${config.api}/actualizarLibro`, formData ,{ headers: { 'Content-Type': 'multipart/form-data' } }).then(() =>{
|
||||
this.imageLoading= false;
|
||||
this.imageSaved = true;
|
||||
}).catch(() => {
|
||||
this.imageLoading= false;
|
||||
textoFinal += `No su pudo guardar la imagen`;
|
||||
});
|
||||
formData.delete('seccion');
|
||||
formData.delete('imagen');
|
||||
formData.append("seccion", 'pdf');
|
||||
formData.append("pdf", pdf.files[0]);
|
||||
await axios.post( `${config.api}/actualizarLibro`, formData ,{ headers: { 'Content-Type': 'multipart/form-data' } }).then(() =>{
|
||||
this.pdfLoading= false;
|
||||
this.pdfSaved = true;
|
||||
}).catch(() =>{
|
||||
this.pdfLoading= false;
|
||||
textoFinal += `y tampoco se pude guardar el pdf`;
|
||||
});
|
||||
if(textoFinal!== ``)
|
||||
textoFinal += ` actualize los datos editando el libro`
|
||||
await Swal.fire(
|
||||
'Libro agregado con éxito',
|
||||
'',
|
||||
'Se termino de subir los datos',
|
||||
textoFinal,
|
||||
'success'
|
||||
);
|
||||
);
|
||||
location.reload();
|
||||
}
|
||||
catch(error){
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
<template>
|
||||
<div class="container" style="margin-top: 3rem; margin-bottom: 3rem;">
|
||||
<div class="d-flex justify-content-center" >
|
||||
<b-card class="text-left " style="width: 20rem; margin-top: .8rem;" >
|
||||
<b-container v-if="dataLoading">
|
||||
<b-row>
|
||||
<b-col cols="3">
|
||||
<b-spinner variant="primary" label="Spinning"></b-spinner>
|
||||
</b-col>
|
||||
<b-col >
|
||||
<b-card-text block>
|
||||
Guardando Datos...
|
||||
</b-card-text>
|
||||
</b-col>
|
||||
</b-row>
|
||||
</b-container>
|
||||
<b-alert v-else-if="dataSaved" variant="success" show style="margin: 0rem">Datos Guardados</b-alert>
|
||||
<b-alert v-else show variant="danger">Los datos no se pudieron guardar</b-alert>
|
||||
</b-card>
|
||||
</div>
|
||||
<div class="d-flex justify-content-center">
|
||||
|
||||
<b-card class="text-left" style="width: 20rem; margin-top: .8rem;" >
|
||||
<b-container v-if="imageLoading">
|
||||
<b-row>
|
||||
<b-col cols="3">
|
||||
<b-spinner variant="primary" label="Spinning"></b-spinner>
|
||||
</b-col>
|
||||
<b-col >
|
||||
<b-card-text block>
|
||||
Guardando Imagen...
|
||||
</b-card-text>
|
||||
</b-col>
|
||||
|
||||
</b-row>
|
||||
</b-container>
|
||||
<b-alert v-else-if="imageSaved" variant="success" show style="margin: 0rem">Imagen Guardada</b-alert>
|
||||
<b-alert v-else show variant="danger">La imagen no se pudo guardar</b-alert>
|
||||
</b-card>
|
||||
</div>
|
||||
<div class="d-flex justify-content-center">
|
||||
<b-card class="text-left" style="width: 20rem; margin-top: .8rem;" >
|
||||
<b-container v-if="pdfLoading">
|
||||
<b-row>
|
||||
<b-col cols="3">
|
||||
<b-spinner variant="primary" label="Spinning"></b-spinner>
|
||||
</b-col>
|
||||
<b-col >
|
||||
<b-card-text block>
|
||||
Guardando PDF...
|
||||
</b-card-text>
|
||||
</b-col>
|
||||
|
||||
</b-row>
|
||||
</b-container>
|
||||
<b-alert v-else-if="pdfSaved" variant="success" show style="margin: 0rem">PDF Guardado</b-alert>
|
||||
<b-alert v-else show variant="danger">El pdf no se pudo guardar</b-alert>
|
||||
</b-card>
|
||||
</div>
|
||||
<h3 style="margin-top: 2rem;"><strong>Cargando...</strong></h3>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
imageLoading: Boolean,
|
||||
pdfLoading: Boolean,
|
||||
dataLoading: Boolean,
|
||||
imageSaved: Boolean,
|
||||
pdfSaved: Boolean,
|
||||
dataSaved: Boolean,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
}}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
@@ -2,7 +2,7 @@
|
||||
<b-container class="mt-2">
|
||||
<div style="margin-bottom: 2rem">
|
||||
<h4 style="text-align:left">Libros cargados </h4>
|
||||
<b-progress :max="librosTotales" height="1.5rem" variant="success" :striped="Libros.length != librosTotales" :animated="Libros.length != librosTotales" >
|
||||
<b-progress :max="librosTotales" height="1.5rem" >
|
||||
<b-progress-bar :value="Libros.length">
|
||||
<span>Cargados: <strong>{{ Libros.length }} / {{ librosTotales }}</strong></span>
|
||||
</b-progress-bar>
|
||||
@@ -30,7 +30,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<ModalEditar v-bind:libro="libroSelect" />
|
||||
<ModalEditar v-bind:libro="libroSelect" />
|
||||
</b-container>
|
||||
</template>
|
||||
|
||||
@@ -48,7 +48,7 @@ export default {
|
||||
Libros: [],
|
||||
searchLibro: "",
|
||||
libroSelect: null,
|
||||
librosCargados: 0,
|
||||
librosTotales: 0,
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -7,6 +7,7 @@ import Vuex from 'vuex'
|
||||
import VueRouter from "vue-router";
|
||||
import { routes } from "./routes";
|
||||
|
||||
|
||||
Vue.config.productionTip = false;
|
||||
Vue.use(Vuex)
|
||||
Vue.use(BootstrapVue);
|
||||
|
||||
Reference in New Issue
Block a user