Files
PortaFront/src/components/agregarLibro.vue
T

205 lines
8.2 KiB
Vue
Raw Normal View History

2021-01-05 18:32:07 -06:00
<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
2021-01-07 23:58:49 -06:00
id="isbn"
2021-01-05 18:32:07 -06:00
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="ISBN"
2021-01-07 23:58:49 -06:00
v-model="isbn"
2021-01-05 18:32:07 -06:00
></b-form-input>
</b-col>
<b-col>
<b-form-input
2021-01-07 23:58:49 -06:00
id="titulo"
2021-01-05 18:32:07 -06:00
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Titulo"
2021-01-07 23:58:49 -06:00
v-model="titulo"
2021-01-05 18:32:07 -06:00
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
2021-01-07 23:58:49 -06:00
<b-dropdown v-model="categoria" v-bind:text="categoria" block split split-variant="outline-primary" variant="primary" class="m-2">
2021-01-05 18:32:07 -06:00
<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
2021-01-07 23:58:49 -06:00
id="autor"
2021-01-05 18:32:07 -06:00
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Autor"
2021-01-07 23:58:49 -06:00
v-model="autor"
2021-01-05 18:32:07 -06:00
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-input
2021-01-07 23:58:49 -06:00
id="paginas"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Numero de paginas"
v-model="paginas"
type="number"
2021-01-05 18:32:07 -06:00
></b-form-input>
</b-col>
<b-col>
<b-form-input
2021-01-07 23:58:49 -06:00
id="precio"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Precio"
v-model="precio"
2021-01-05 18:32:07 -06:00
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
2021-01-11 23:21:59 -06:00
<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>
2021-01-05 18:32:07 -06:00
</b-col>
<b-col>
<b-form-input
2021-01-07 23:58:49 -06:00
id="year"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Año de publicación"
v-model="year"
type="number"
2021-01-05 18:32:07 -06:00
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-file
2021-01-11 03:19:47 -06:00
id="pdfNuevo"
2021-01-05 18:32:07 -06:00
placeholder="Seleccione el PDF o arrastre..."
accept=".pdf"
></b-form-file>
</b-col>
<b-col>
<b-form-file
2021-01-11 03:19:47 -06:00
id="imagenNuevo"
2021-01-05 18:32:07 -06:00
placeholder="Seleccione la imagen o arrastre..."
2021-01-11 03:19:47 -06:00
accept=".png, .jpg"
2021-01-05 18:32:07 -06:00
></b-form-file>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-textarea
2021-01-07 23:58:49 -06:00
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"
2021-01-05 18:32:07 -06:00
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;">
2021-01-07 23:58:49 -06:00
<b-button block variant="success" @click="agregarLibro()">Agregar</b-button>
2021-01-05 18:32:07 -06:00
</div>
</b-col>
</b-row>
</b-container>
</template>
<script>
2021-01-07 23:58:49 -06:00
import axios from "axios";
import config from "../config/config.js";
import Swal from 'sweetalert2'
2021-01-05 18:32:07 -06:00
export default {
props: {
nombreLibro: String,
value: String
},
data() {
return {
2021-01-07 23:58:49 -06:00
isbn: "",
2021-01-05 18:32:07 -06:00
titulo: "",
categoria:"Categoria",
autor:"",
paginas:"",
impresion:"",
precio:"",
2021-01-11 23:21:59 -06:00
version:"Versión",
2021-01-05 18:32:07 -06:00
descripcion:"",
2021-01-07 23:58:49 -06:00
year:"",
2021-01-05 18:32:07 -06:00
};
},
2021-01-07 23:58:49 -06:00
methods:{
faltaCampo(campo){
Swal.fire(
`Te falta por llenar el campo de ${campo}`,
'',
'warning'
)
},
async agregarLibro(){
try{
var formData = new FormData();
2021-01-11 03:19:47 -06:00
var imagen = document.querySelector('#imagenNuevo');
var pdf = document.querySelector('#pdfNuevo');
2021-01-07 23:58:49 -06:00
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.categoria !== "Categoria") formData.append("categoria", this.categoria); else return this.faltaCampo("Categoria");
if(this.autor !== "") formData.append("autor", this.autor); else return this.faltaCampo("Autor");
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.precio !== "") formData.append("precio", this.precio); else return this.faltaCampo("Precio");
2021-01-11 23:21:59 -06:00
if(this.version !== "Versión") formData.append("version", this.version); else return this.faltaCampo("Versión");
2021-01-07 23:58:49 -06:00
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");
2021-01-11 03:19:47 -06:00
formData.append("type", 'addLibro');
await axios.post( `${config.api}/actualizarLibro`, formData ,{ headers: { 'Content-Type': 'multipart/form-data' } });
2021-01-07 23:58:49 -06:00
await Swal.fire(
2021-01-11 23:21:59 -06:00
'Libro agregado con éxito',
2021-01-07 23:58:49 -06:00
'',
'success'
);
location.reload();
2021-01-11 03:19:47 -06:00
}
2021-01-07 23:58:49 -06:00
catch(error){
console.log(error);
Swal.fire({
icon: 'error',
2021-01-11 23:21:59 -06:00
title: 'El libro no pudo ser agregado',
2021-01-07 23:58:49 -06:00
text: `Algo salio mal, ${error}`,
});
}
}
}
2021-01-05 18:32:07 -06:00
}
2021-01-07 23:58:49 -06:00
</script>