Files
ASINEA-FRONT/src/view/usuario.vue
T
2020-09-28 00:14:24 -05:00

750 lines
24 KiB
Vue

<template>
<div class="container">
<div style="width: 100%;"><div style="position: relative; padding-bottom: 15%; padding-top: 0; height: 0;"><img width="1500px" height="300px" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding-left: 20px; padding-right: 20px;" type="text/html" allowscriptaccess="always" allowfullscreen=true scrolling="yes" allownetworking="all" src="../assets/asinea.png" > </div> </div>
<div class="wrapper fadeInDown">
<div id="formContent">
<div class="container principal">
<!-- Tabs Titles -->
<!-- Icon -->
<div class="fadeIn first">
<h1>Bienvenido</h1>
</div>
<form>
<div class="row">
<h2>Nombre: {{nombre}}</h2>
</div>
<div class="row">
<h2>Curp: {{curp}}</h2>
</div>
<div class="row">
<h2>Total a pagar: ${{pago}}.00</h2>
</div>
<div class="row">
<div class="col">
<table class="table" style="margin-top: 3rem; margin-bottom: 3rem;">
<thead class="thead-dark">
<tr>
<th scope="col">Nombre</th>
<th scope="col">Tpo de evento</th>
</tr>
</thead>
<tbody >
<tr v-for="item in eventos" v-bind:key="item.idEvento">
<td >{{item.nombreEvento}}</td>
<td >{{item.tipoEvento}}</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="row" v-if="!fichaEnviada">
<h2>En breve se recibiras tu referencia bancaria</h2>
</div>
<div class="row" v-if="pagoEnviado">
<h2>Gracias por enviar tu ficha de pago estamos valdiando tu pago </h2>
</div>
<div v-if="fichaEnviada && !pagoEnviado">
<form>
<div class=" wrapperRow row">
<h2>Datos del comprobante de pago</h2>
</div>
<div class="row">
<div class="col">
<input type="text" class="fadeIn second" placeholder="Banco de procedencia" v-model="bancoProcedencia">
</div>
</div>
<div class="row">
<div class="col">
<div class="row">
<p>Fecha de la operación</p>
</div>
<div class="row">
<div class="col-md-4">
<input type="number" class="fadeIn second " placeholder="dia" v-model="dia">
</div>
<div class="col-md-4">
<input type="number" class="fadeIn second " placeholder="mes" v-model="mes">
</div>
<div class="col-md-4">
<input type="number" class="fadeIn second " placeholder="año" v-model="year">
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<input type="text" class="fadeIn second" placeholder="Clave de rastreo" v-model="claveRastreo">
</div>
</div>
<div class="row">
<div class="col-md-4">
<input type="text" class="fadeIn second" placeholder="Cuenta de retiro" v-model="cuentaRetiro">
</div>
<div class="col-md-4">
<input type="text" class="fadeIn second" placeholder="Cuenta de depósito " v-model="cuentaDeposito">
</div>
<div class="col-md-4">
<input type="text" class="fadeIn second" placeholder="Importe" v-model="importe">
</div>
</div>
</form>
<div class="row">
<p>Por favor adjunta tu comprobante de pago</p>
</div>
<div>
<b-form-file
v-model="file1"
id="file1"
:state="Boolean(file1)"
placeholder="Escoge la ficha de deposito"
drop-placeholder="Carga la ficha de deposito aqui"
accept=".pdf"
browseText= "Cargar"
></b-form-file>
</div>
<div class="row mar">
<b-form-checkbox
id="pedirFactura"
v-model="pedirFactura"
name="pedirFactura"
value= true
unchecked-value= false
>
Quiero Factura
</b-form-checkbox>
</div>
<div v-if="pedirFactura==='true'">
<div class="row">
<div class="col-md-4">
<input type="text" class="fadeIn second" placeholder="Nombre" v-model="nombrePersona">
</div>
<div class="col-md-4">
<input type="text" class="fadeIn second" placeholder="Apellido paterno" v-model="apellidoPaterno">
</div>
<div class="col-md-4">
<input type="text" class="fadeIn second" placeholder="Apellido Materno" v-model="apellidoMaterno">
</div>
</div>
<div class="row">
<div class="col">
<input type="text" class="fadeIn second" placeholder="RFC" v-model="rfc">
</div>
</div>
<div class="row">
<div class="col-md-8">
<input type="text" class="fadeIn second" placeholder="Correo" v-model="correoPersona">
</div>
<div class="col-md-4">
<input type="text" class="fadeIn second" placeholder="Telefono" v-model="telefono">
</div>
</div>
<div class="row">
<div class="col-md-4">
<input type="text" class="fadeIn second" placeholder="Calle" v-model="calle">
</div>
<div class="col-md-2">
<input type="text" class="fadeIn second" placeholder="No. Interior" v-model="noInterior">
</div>
<div class="col-md-2">
<input type="text" class="fadeIn second" placeholder="No. Exterior" v-model="noExterior">
</div>
<div class="col-md-4">
<input type="text" class="fadeIn second" placeholder="Colonia" v-model="colonia">
</div>
</div>
<div class="row">
<div class="col-md-4">
<input type="text" class="fadeIn second" placeholder="Municipio" v-model="municipio">
</div>
<div class="col-md-4">
<input type="text" class="fadeIn second" placeholder="Estado" v-model="estado">
</div>
<div class="col-md-4">
<input type="text" class="fadeIn second" placeholder="Codigo Postal" v-model="codigoPostal">
</div>
</div>
</div>
</div>
<router-link to="/">
<input type="button" class="fadeIn fourth " value="Salir" style="margin-top: 3rem; background-color: #A60101;">
</router-link>
<input type="button" class="fadeIn fourth" value="Enviar" style=" background-color: #47A601;" @click="enviarArchivo()" v-if="fichaEnviada && !pagoEnviado">
</form>
<div id="formFooter">
<a class="underlineHover" href="https://arquitectura.unam.mx/asinea-2020.html">Mas información</a> <br/>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import axios from "axios";
import config from "../config/config.js";
import Swal from "sweetalert2";
export default {
data() {
return {
fichaEnviada: false,
idPersona: 12,
nombre: "",
curp: "",
eventos: [],
pago: "",
file1: null,
file2: null,
correo: "",
password: "",
enviarPass: "",
enviando: false,
pedirFactura: false,
bancoProcedencia:"",
fechaOperacion: "",
claveRastreo: "",
cuentaRetiro:"",
cuentaDeposito: "",
importe:"",
dia:"",
mes:"",
year:"",
nombrePersona: "",
apellidoPaterno: "",
apellidoMaterno: "",
rfc: "",
correoPersona: "",
telefono: "",
calle: "",
noInterior: "",
noExterior: "",
colonia: "",
municipio: "",
estado: "",
codigoPostal: "",
pagoEnviado: false
};
},
methods: {
async menssajeWar(titulo){
await Swal.fire({
title: titulo,
icon: "warning"
});
},
async enviarArchivo() {
if(this.bancoProcedencia === "") return this.menssajeWar('Falta llenar banco de procedencia');
if(this.fechaOperacion === "") return this.menssajeWar('Falta escoger la fecha de en que se realizo la operacion');
if(this.claveRastreo === "") return this.menssajeWar('Falta llenar la clave de rastreo');
if(this.cuentaRetiro === "") return this.menssajeWar('Falta llenar la cuenta de retiro');
if(this.importe === "") return this.menssajeWar('Falta llenar el importe');
const data = {
bancoProcedencia: this.bancoProcedencia,
fechaOperacion: `${this.dia}-${this.mes}-${this.year}`,
claveRastreo: this.claveRastreo,
cuentaRetiro: this.cuentaRetiro,
importe: this.importe,
idPersona: this.idPersona,
cuentaDeposito: this.cuentaDeposito
}
if( `${this.pedirFactura}` === `true` ){
if(this.nombrePersona === "") return this.menssajeWar('Falta llenar el nombre de la persona a quien se le hara la factura');
if(this.apellidoPaterno === "") return this.menssajeWar('Falta llenar el apellido paterno de la persona a quien se le hara la factura');
if(this.apellidoMaterno === "") return this.menssajeWar('Falta llenar el apellido materno de la persona a quien se le hara la factura');
if(this.rfc === "") return this.menssajeWar('Falta llenar el RFC de la persona a quien se le hara la factura');
if(this.correoPersona === "") return this.menssajeWar('Falta llenar el correo de la persona a quien se le hara la factura');
if(this.telefono === "") return this.menssajeWar('Falta llenar el telefono de la persona a quien se le hara la factura');
if(this.calle === "") return this.menssajeWar('Falta llenar la calle de la persona a quien se le hara la factura');
if(this.noInterior === "") return this.menssajeWar('Falta llenar el numero interior de la persona a quien se le hara la factura');
if(this.noExterior === "") return this.menssajeWar('Falta llenar el numero exterior de la persona a quien se le hara la factura');
if(this.colonia === "") return this.menssajeWar('Falta llenar la colonia de la persona a quien se le hara la factura');
if(this.municipio === "") return this.menssajeWar('Falta llenar el municipio de la persona a quien se le hara la factura');
if(this.estado === "") return this.menssajeWar('Falta llenar el estado de la persona a quien se le hara la factura');
if(this.codigoPostal === "") return this.menssajeWar('Falta llenar el codigo postal de la persona a quien se le hara la factura');
data.factura = true;
data.nombrePersona = this.nombrePersona;
data.apellidoPaterno = this.apellidoPaterno;
data.apellidoMaterno = this.apellidoMaterno;
data.rfc = this.rfc;
data.correoPersona = this.correoPersona;
data.telefono = this.telefono;
data.calle = this.calle;
data.noInterior = this.noInterior;
data.noExterior = this.noExterior;
data.colonia = this.colonia;
data.municipio = this.municipio;
data.estado = this.estado;
data.codigoPostal = this.codigoPostal;
}
try{
this.enviando = true;
var formData = new FormData();
var fichaDeposito = document.querySelector('#file1');
console.log('esta es la ficha', fichaDeposito);
formData.append("reciboPago", fichaDeposito.files[0]);
for( let item in data )
formData.append(`${item}`, data[item]);
console.log(formData);
await axios.post(
`${config.api}/enviarFicha`, formData ,{
headers: {
'Content-Type': 'multipart/form-data'
}
}
);
this.enviando = false;
await Swal.fire({
title: "Exito",
text: 'Exito al enviar la factura',
icon: "success"
});
location.reload();
}
catch(error){
this.enviando = false;
console.log(error.response);
await Swal.fire({
title: "Error",
text: error.response.data.msj || 'Ocurrio un problema',
icon: "error"
});
location.reload();
}
}
},
async beforeCreate() {
if (!window.localStorage.getItem("idPersona")) this.$router.push("/");
this.idPersona = window.localStorage.getItem("idPersona");
let response = await axios.get(
`${config.api}/getPersona?idPersona=${this.idPersona}`
);
this.nombre = `${response.data.datos.nombre} ${response.data.datos.apellidoPaterno} ${response.data.datos.apellidoMaterno}`;
this.curp = response.data.datos.curp;
this.eventos = response.data.eventos;
this.pago = response.data.datos.totalPagar;
this.fichaEnviada = response.data.datos.referenciaEnviada;
this.idPersona = window.localStorage.getItem("idPersona");
this.pagoEnviado = response.data.datos.envioComprobante;
}
}
</script>
<style scoped>
.mar{
margin-left: 40px ;
margin-bottom: 12px;
}
tr:hover{
background-color: #BEBEBE;
}
.principal{
padding: 3rem;
}
.banner{
position: realtive;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
h1{
margin-top:1rem;
margin-bottom:1rem;
}
html {
background-color: #56baed;
}
body {
font-family: "Poppins", sans-serif;
height: 100vh;
}
a {
color: #92badd;
display:inline-block;
text-decoration: none;
font-weight: 400;
}
h2 {
text-align: left;
font-size: 16px;
font-weight: 600;
text-transform: uppercase;
display:inline-block;
margin-left: 40px ;
margin-bottom: 12px;
color: #cccccc;
}
p {
text-align: left;
font-size: 16px;
font-weight: 600;
margin-left: 40px;
margin-top: 10px;
}
/* STRUCTURE */
.wrapper {
display: flex;
align-items: center;
flex-direction: column;
justify-content: center;
width: 100%;
min-height: 100%;
padding: 20px;
}
.wrapperRow {
display: flex;
flex-direction: column;
justify-content: center;
width: 100%;
min-height: 100%;
margin-left: 1rem;
}
#formContent {
-webkit-border-radius: 10px 10px 10px 10px;
border-radius: 10px 10px 10px 10px;
background: #fff;
width: 100%;
position: relative;
padding: 0px;
-webkit-box-shadow: 0 30px 60px 0 rgba(0,0,0,0.3);
box-shadow: 0 30px 60px 0 rgba(0,0,0,0.3);
text-align: center;
}
#formFooter {
background-color: #f6f6f6;
border-top: 1px solid #dce8f1;
padding: 25px;
text-align: center;
-webkit-border-radius: 0 0 10px 10px;
border-radius: 0 0 10px 10px;
}
/* TABS */
h2.inactive {
color: #cccccc;
}
h2.active {
color: #0d0d0d;
border-bottom: 2px solid #5fbae9;
}
/* FORM TYPOGRAPHY*/
input[type=button], input[type=submit], input[type=reset] {
background-color: #56baed;
border: none;
color: white;
padding: 15px 80px;
text-align: center;
text-decoration: none;
display: inline-block;
text-transform: uppercase;
font-size: 13px;
-webkit-box-shadow: 0 10px 30px 0 rgba(0,0,0,0);
box-shadow: 0 10px 30px 0 rgba(0,0,0,0);
-webkit-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
margin: 5px 20px 40px 20px;
-webkit-transition: all 0.3s ease-in-out;
-moz-transition: all 0.3s ease-in-out;
-ms-transition: all 0.3s ease-in-out;
-o-transition: all 0.3s ease-in-out;
transition: all 0.3s ease-in-out;
}
input[type=button]:hover, input[type=submit]:hover, input[type=reset]:hover {
background-color: #000000;
}
input[type=button]:active, input[type=submit]:active, input[type=reset]:active {
-moz-transform: scale(0.95);
-webkit-transform: scale(0.95);
-o-transform: scale(0.95);
-ms-transform: scale(0.95);
transform: scale(0.95);
}
input[type=text], input[type=number], input[type=password]{
background-color: #f6f6f6;
border: none;
color: #0d0d0d;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 14px;
margin-top: 5px;
margin-bottom: 5px;
margin-left:1rem;
width: 100%;
border: 2px solid #f6f6f6;
-webkit-transition: all 0.5s ease-in-out;
-moz-transition: all 0.5s ease-in-out;
-ms-transition: all 0.5s ease-in-out;
-o-transition: all 0.5s ease-in-out;
transition: all 0.5s ease-in-out;
-webkit-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
}
select[type=text] {
background-color: #f6f6f6;
border: none;
color: #0d0d0d;
padding: 15px 32px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 14px;
margin-top: 5px;
margin-bottom: 5px;
margin-left:1rem;
width: 100%;
border: 2px solid #f6f6f6;
-webkit-transition: all 0.5s ease-in-out;
-moz-transition: all 0.5s ease-in-out;
-ms-transition: all 0.5s ease-in-out;
-o-transition: all 0.5s ease-in-out;
transition: all 0.5s ease-in-out;
-webkit-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
}
input[type=text]:focus, input[type=number]:focus {
background-color: #fff;
border-bottom: 2px solid #5fbae9;
}
input[type=text]:placeholder,input[type=number]:placeholder {
color: #cccccc;
}
/* ANIMATIONS */
/* Simple CSS3 Fade-in-down Animation */
.fadeInDown {
-webkit-animation-name: fadeInDown;
animation-name: fadeInDown;
-webkit-animation-duration: 1s;
animation-duration: 1s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
}
@-webkit-keyframes fadeInDown {
0% {
opacity: 0;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0);
}
100% {
opacity: 1;
-webkit-transform: none;
transform: none;
}
}
@keyframes fadeInDown {
0% {
opacity: 0;
-webkit-transform: translate3d(0, -100%, 0);
transform: translate3d(0, -100%, 0);
}
100% {
opacity: 1;
-webkit-transform: none;
transform: none;
}
}
/* Simple CSS3 Fade-in Animation */
@-webkit-keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
@-moz-keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
.fadeIn {
opacity:0;
-webkit-animation:fadeIn ease-in 1;
-moz-animation:fadeIn ease-in 1;
animation:fadeIn ease-in 1;
-webkit-animation-fill-mode:forwards;
-moz-animation-fill-mode:forwards;
animation-fill-mode:forwards;
-webkit-animation-duration:1s;
-moz-animation-duration:1s;
animation-duration:1s;
}
.fadeIn.first {
-webkit-animation-delay: 0.4s;
-moz-animation-delay: 0.4s;
animation-delay: 0.4s;
}
.fadeIn.second {
-webkit-animation-delay: 0.6s;
-moz-animation-delay: 0.6s;
animation-delay: 0.6s;
}
.fadeIn.third {
-webkit-animation-delay: 0.8s;
-moz-animation-delay: 0.8s;
animation-delay: 0.8s;
}
.fadeIn.fourth {
-webkit-animation-delay: 1s;
-moz-animation-delay: 1s;
animation-delay: 1s;
}
/* Simple CSS3 Fade-in Animation */
.underlineHover:after {
display: block;
left: 0;
bottom: -10px;
width: 0;
height: 2px;
background-color: #56baed;
content: "";
transition: width 0.2s;
}
.underlineHover:hover {
color: #0d0d0d;
}
.underlineHover:hover:after{
width: 100%;
}
/* OTHERS */
*:focus {
outline: none;
}
#icon {
width:60%;
}
.red{
background-color: #A60101;
}
</style>