front temrinado

This commit is contained in:
2021-01-05 18:32:07 -06:00
parent 3322b667ee
commit 4e10a9015f
20 changed files with 632 additions and 158 deletions
-1
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
+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.ce68868a.css rel=preload as=style><link href=css/chunk-vendors.138628b4.css rel=preload as=style><link href=js/app.8ace1eb0.js rel=preload as=script><link href=js/chunk-vendors.97a56a87.js rel=preload as=script><link href=css/chunk-vendors.138628b4.css rel=stylesheet><link href=css/app.ce68868a.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.97a56a87.js></script><script src=js/app.8ace1eb0.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.e8103fb3.css rel=preload as=style><link href=css/chunk-vendors.138628b4.css rel=preload as=style><link href=js/app.454faa38.js rel=preload as=script><link href=js/chunk-vendors.812e0cf9.js rel=preload as=script><link href=css/chunk-vendors.138628b4.css rel=stylesheet><link href=css/app.e8103fb3.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.812e0cf9.js></script><script src=js/app.454faa38.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
+5
View File
@@ -10833,6 +10833,11 @@
"integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==",
"dev": true
},
"vuex": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.0.tgz",
"integrity": "sha512-W74OO2vCJPs9/YjNjW8lLbj+jzT24waTo2KShI8jLvJW8OaIkgb3wuAMA7D+ZiUxDOx3ubwSZTaJBip9G8a3aQ=="
},
"watchpack": {
"version": "1.7.4",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz",
+3 -2
View File
@@ -16,7 +16,8 @@
"popper.js": "^1.16.1",
"sweetalert2": "^10.5.1",
"vue": "^2.6.11",
"vue-router": "^3.3.4"
"vue-router": "^3.3.4",
"vuex": "^3.6.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.4.0",
@@ -27,7 +28,7 @@
"eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.1.3",
"eslint-plugin-vue": "^6.2.2",
"prettier": "^1.19.1",
"prettier": "1.19.1",
"vue-template-compiler": "^2.6.11"
}
}
+142
View File
@@ -0,0 +1,142 @@
<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="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="ISBN"
></b-form-input>
</b-col>
<b-col>
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Titulo"
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-dropdown 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="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Autor"
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Numero de paginas"
></b-form-input>
</b-col>
<b-col>
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Precio"
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Versión"
></b-form-input>
</b-col>
<b-col>
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Año de publicación"
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-file
v-model="file1"
placeholder="Seleccione el PDF o arrastre..."
accept=".pdf"
></b-form-file>
</b-col>
<b-col>
<b-form-file
v-model="file1"
placeholder="Seleccione la imagen o arrastre..."
accept=".png"
></b-form-file>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-textarea
id="textarea"
v-model="text"
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">Agregar</b-button>
</div>
</b-col>
</b-row>
</b-container>
</template>
<script>
export default {
props: {
nombreLibro: String,
value: String
},
data() {
return {
isbn: "example asa12",
titulo: "",
categoria:"Categoria",
autor:"",
paginas:"",
impresion:"",
precio:"",
version:"",
descripcion:"",
year:""
};
},
}
</script>
<style scoped>
b{
text-align: left;
}
</style>
+78
View File
@@ -0,0 +1,78 @@
<template>
<b-container class="mt-5">
<div class="mb-5">
<h1 class="mb-4" style="text-align:left;">Agregar Imagen</h1>
<b-row>
<b-col class="p-0" cols="8">
<b-form-file
v-model="file1"
block
placeholder="Seleccione la imagen o arrastre aqui..."
accept=".png"
></b-form-file>
</b-col>
<b-col>
<b-button block variant="success">Agregar</b-button>
</b-col>
</b-row>
</div>
<h1 class="mb-4" style="text-align:left;">Eliminar Imagen</h1>
<div class="divMaster row ">
<div class=" d-flex flex-wrap " style="justify-content: space-between;">
<div v-bind:key="libro.id" v-for="(libro, idx) in Libros" :class="{ active: idx == 0 }">
<b-card class="mb-3" style="width: 28rem;">
<b-card-img :src="libro.img" alt="Image" ></b-card-img>
<b-card-footer><b-button variant="danger">Eliminar</b-button></b-card-footer>
</b-card>
</div>
</div>
</div>
</b-container>
</template>
<script>
import axios from "axios";
import config from "../config/config.js";
export default {
name: "editarBanner",
data() {
return {
Libros: [],
};
},
async created() {
try {
let path = `${config.api}/imagenCarrusel?nombre=`;
let nombres = await axios.get(`${config.api}/nombreCarrusel`);
nombres = nombres.data.data;
for (let i = 0; i < nombres.length; i++) {
//console.log(path);
let config = {
// example url
url: `${path}${nombres[i]}`,
method: "GET",
responseType: "blob"
};
await axios(config).then(response => {
let reader = new FileReader();
reader.readAsDataURL(response.data);
reader.onload = () => {
this.Libros.push({ id: i, img: reader.result });
};
});
}
} catch (error) {
console.log(`Ocurrio un error msj: ${error}`);
}
}
};
</script>
<style scoped>
.divMaster {
height: auto;
}
</style>
+10 -5
View File
@@ -1,6 +1,6 @@
<template>
<div>
<div class=" divMaster row row d-flex flex-wrap justify-content-center">
<b-container class="mt-5">
<div class=" divMaster row row d-flex flex-wrap justify-content-center mb-3">
<b-input-group class="mb-2">
<b-input-group-prepend is-text>
<b-icon icon="search"></b-icon>
@@ -14,21 +14,26 @@
<b-card class="mb-3" style="width: 14rem; height: 22rem;">
<b-card-img :src="libro.img" alt="Image" style="max-width: 20rem; height: 15rem;" no-body ></b-card-img>
<template #footer>
<b-button variant="outline-warning" class="float-left">Editar</b-button>
<b-button variant="outline-danger" class="float-right">Eliminar</b-button>
<b-button variant="outline-warning" class="float-left" v-b-modal.modalEditarLibro>Editar</b-button>
<b-button variant="outline-danger" class="float-right" >Eliminar</b-button>
</template>
</b-card>
</div>
</div>
</div>
</div>
<ModalEditar nombreLibro="uno" value="valueCampo" />
</b-container>
</template>
<script>
import axios from "axios";
import config from "../config/config.js";
import ModalEditar from './modalEditar.vue'
export default {
components: {
ModalEditar,
},
data() {
return {
Libros: []
+210
View File
@@ -0,0 +1,210 @@
<template>
<b-modal size="lg" id="modalEditarLibro" hide-footer title="Editar Libro">
<b-container fluid>
<b-row class="mb-2">
<b-col >
<h1 style="text-align:center;">Editar {{nombreLibro}}</h1>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-checkbox v-model="checked" name="check-button" switch><b>ISBN:</b></b-form-checkbox>
</b-col>
<b-col>
<label class="mr-sm-2">{{isbn}}</label>
</b-col>
<b-col cols="6">
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Editar"
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-checkbox v-model="checked" name="check-button" switch><b>Titulo:</b></b-form-checkbox>
</b-col>
<b-col>
<label class="mr-sm-2">{{titulo}}</label>
</b-col>
<b-col cols="6">
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Editar"
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-checkbox v-model="checked" name="check-button" switch><b>Categoria:</b></b-form-checkbox>
</b-col>
<b-col>
<label class="mr-sm-2">{{categoria}}</label>
</b-col>
<b-col cols="6">
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Editar"
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-checkbox v-model="checked" name="check-button" switch><b>Autor:</b></b-form-checkbox>
</b-col>
<b-col>
<label class="mr-sm-2">{{autor}}</label>
</b-col>
<b-col cols="6">
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Editar"
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-checkbox v-model="checked" name="check-button" switch><b>Numero de paginas:</b></b-form-checkbox>
</b-col>
<b-col>
<label class="mr-sm-2">{{paginas}}</label>
</b-col>
<b-col cols="6">
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Editar"
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-checkbox v-model="checked" name="check-button" switch><b>Precio:</b></b-form-checkbox>
</b-col>
<b-col>
<label class="mr-sm-2">{{precio}}</label>
</b-col>
<b-col cols="6">
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Editar"
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-checkbox v-model="checked" name="check-button" switch><b>Versión:</b></b-form-checkbox>
</b-col>
<b-col>
<label class="mr-sm-2">{{version}}</label>
</b-col>
<b-col cols="6">
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Editar"
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-checkbox v-model="checked" name="check-button" switch><b>Año de publicación:</b></b-form-checkbox>
</b-col>
<b-col>
<label class="mr-sm-2">{{year}}</label>
</b-col>
<b-col cols="6">
<b-form-input
id="inline-form-input-name"
class="mb-2 mr-sm-2 mb-sm-0"
placeholder="Editar"
></b-form-input>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-checkbox v-model="checked" name="check-button" switch><b>Descrpción:</b></b-form-checkbox>
</b-col>
<b-col>
<label class="mr-sm-2">{{descripcion}}</label>
</b-col>
<b-col cols="6">
<b-form-textarea
id="textarea"
v-model="text"
placeholder="Enter something..."
rows="3"
max-rows="6"
></b-form-textarea>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-checkbox v-model="checked" name="check-button" switch><b>Imagen</b></b-form-checkbox>
</b-col>
<b-col>
</b-col>
<b-col cols="6">
<b-form-file
v-model="file1"
placeholder="Seleccione la imagen o arrastre..."
accept=".png"
></b-form-file>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<b-form-checkbox v-model="checked" name="check-button" switch><b>PDF Visualización</b></b-form-checkbox>
</b-col>
<b-col>
</b-col>
<b-col cols="6">
<b-form-file
v-model="file1"
placeholder="Seleccione el PDF o arrastre..."
accept=".pdf"
></b-form-file>
</b-col>
</b-row>
<b-row class="mb-2">
<b-col>
<div style="margin-top: 2rem;">
<b-button class="btn btn-outline-success float-right" @click="enviarFicha()" style="width: 30%; ">Enviar</b-button>
<b-button @click="$bvModal.hide('modalEditarLibro')" variant="outline-danger" class="btn float-left" style="width: 30%; ">Cancelar</b-button>
</div>
</b-col>
</b-row>
</b-container>
</b-modal>
</template>
<script>
export default {
props: {
nombreLibro: String,
value: String
},
data() {
return {
isbn: "example asa12",
titulo: "",
categoria:"",
autor:"",
paginas:"",
impresion:"",
precio:"",
version:"",
descripcion:"",
year:""
};
},
}
</script>
+48
View File
@@ -0,0 +1,48 @@
<template>
<div>
<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.banner @click="$store.commit('cambiarNav','EditarBanner')" class="p-1 azulUnam">Banner principal</b-button>
</b-card-header>
<b-collapse id="banner" accordion="my-accordion" role="tabpanel">
<b-card-body>
</b-card-body>
</b-collapse>
</b-card>
</div>
</b-nav-item>
<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.libros class="p-1 azulUnam">Libros</b-button>
</b-card-header>
<b-collapse id="libros" accordion="my-accordion" role="tabpanel">
<b-card-body>
<b-button block variant="light" class="p-1 m-0" @click="$store.commit('cambiarNav','EditarLibro')">Editar</b-button>
<b-button block variant="light" class="p-1 m-0" @click="$store.commit('cambiarNav','AgregarLibro')">Agregar</b-button>
</b-card-body>
</b-collapse>
</b-card>
</div>
</b-nav-item>
</b-nav>
</div>
</template>
<style scoped>
* {
margin: 0;
padding: 0;
}
.azulUnam {
background-color: #1e3c70;
}
</style>
+16 -4
View File
@@ -2,14 +2,13 @@ import Vue from "vue";
import App from "./App.vue";
import "bootstrap";
import "bootstrap/dist/css/bootstrap.min.css";
import { BootstrapVue, IconsPlugin } from 'bootstrap-vue'
import Vuex from 'vuex'
import VueRouter from "vue-router";
import { routes } from "./routes";
Vue.config.productionTip = false;
Vue.use(Vuex)
Vue.use(BootstrapVue);
Vue.use(IconsPlugin);
Vue.use(VueRouter);
@@ -17,8 +16,21 @@ const router = new VueRouter({
routes
});
const store = new Vuex.Store({
state: {
selectNav: "EditarLibro",
},
mutations: {
cambiarNav (state, selectNav) {
state.selectNav = selectNav
}
}
})
new Vue({
el: "#app",
render: h => h(App),
router
router,
store: store,
});
+18 -68
View File
@@ -1,49 +1,24 @@
<template>
<div>
<Header />
<b-container fluid class="bv-example-row ml-0">
<b-row>
<b-col cols="3" style="background:red;">
<div>
<b-nav vertical class="w-25">
<b-nav-item active>Active</b-nav-item>
<b-nav-item>Link</b-nav-item>
<b-nav-item>Another Link</b-nav-item>
<b-nav-item disabled>Disabled</b-nav-item>
</b-nav>
<b-col cols="2" style="background-color: #bb8800;" class="p-0 m-0">
<div class="p-0 m-0">
<NavAdmin />
</div>
</b-col>
<b-col cols="9">
<b-row>
<div>
<b-nav tabs fill>
<b-nav-item active>Editar</b-nav-item>
<b-nav-item>Agregar</b-nav-item>
</b-nav>
</div>
<b-col cols="10">
<b-row v-if="this.$store.state.selectNav=='EditarBanner'">
<EditarBanner />
</b-row>
<b-row>
<div class="divMaster row ">
<div class=" d-flex flex-wrap " style="justify-content: space-between;">
<div v-bind:key="libro.id" v-for="(libro, idx) in Libros" :class="{ active: idx == 0 }">
<b-card class="mb-3" style="width: 28rem;">
<b-card-img :src="libro.img" alt="Image" ></b-card-img>
<b-card-footer><b-button variant="danger">Eliminar</b-button></b-card-footer>
</b-card>
</div>
</div>
</div>
</b-row>
<b-row>
<b-row v-if="this.$store.state.selectNav=='EditarLibro'">
<EditarLibro />
</b-row>
</b-row>
<b-row v-if="this.$store.state.selectNav=='AgregarLibro'">
<AgregarLibro />
</b-row>
</b-col>
</b-row>
</b-container>
<Footer />
</div>
</template>
@@ -51,46 +26,21 @@
<script>
import Header from "./../components/header.vue";
import Footer from "./../components/footer.vue";
import axios from "axios";
import config from "../config/config.js";
import EditarLibro from './../components/editarLibro.vue';
import EditarBanner from './../components/editarBanner.vue';
import AgregarLibro from './../components/agregarLibro.vue';
import NavAdmin from './../components/navAdmin.vue';
export default {
name: "panelAdmin",
components: {
Header,
Footer,
EditarLibro,
NavAdmin,
EditarBanner,
AgregarLibro
},
data() {
return {
Libros: []
};
},
async created() {
try {
let path = `${config.api}/imagenCarrusel?nombre=`;
let nombres = await axios.get(`${config.api}/nombreCarrusel`);
nombres = nombres.data.data;
for (let i = 0; i < nombres.length; i++) {
//console.log(path);
let config = {
// example url
url: `${path}${nombres[i]}`,
method: "GET",
responseType: "blob"
};
await axios(config).then(response => {
let reader = new FileReader();
reader.readAsDataURL(response.data);
reader.onload = () => {
this.Libros.push({ id: i, img: reader.result });
};
});
}
} catch (error) {
console.log(`Ocurrio un error msj: ${error}`);
}
}
};
</script>