23 Commits

Author SHA1 Message Date
Arturo 95e8190954 eliminar 2020-03-12 17:10:50 -06:00
arturo 69342e397c npm run build 2020-03-02 12:30:37 -06:00
arturo d9868a936e arreglo 2020-03-02 12:07:11 -06:00
Arturo 55b52aa4a2 npm run build 2020-02-28 18:09:22 -06:00
Arturo 29616c7bf2 npm run build 2020-02-28 17:44:31 -06:00
arturo Guerrero 7620221c0c npm run build 2019-10-21 20:09:26 +00:00
arturo Guerrero 608f47269e hora de entrega arquitectura 2019-10-21 20:06:44 +00:00
arturo Guerrero ace17efc0a cambios pcpuma mal arqui hora 2019-10-15 15:57:41 -05:00
arturo Guerrero 5425b8d772 cambios de ip pcpuma mal arqui 2019-10-15 15:51:11 -05:00
arturo Guerrero 3289307eb8 cambios de ip pcpuma 2019-10-15 15:49:20 -05:00
arturo Guerrero d7d5bba358 npm run buil arqui 2019-10-15 15:42:13 -05:00
arturo Guerrero 50510dfbc9 cambios panel por kiokso arqui 2019-10-15 15:41:09 -05:00
arturo Guerrero d95713388c npm run build 2019-09-10 15:32:56 -05:00
arturo Guerrero ecd542f485 fix quitar huella , add borrar multa , fix actualizar equipo 2019-09-10 15:24:16 -05:00
arturo guerrero 15a11e2f83 -npm run build arqui 2019-09-04 16:19:38 -05:00
arturo guerrero 1103e4a080 -arreglo de devolucion 2019-09-04 16:18:47 -05:00
arturo guerrero 4c3851847c npm run buil arqui 2019-09-04 14:35:56 -05:00
arturo guerrero 4cc5762a1a npm run build arqui 2019-09-04 13:50:58 -05:00
arturo guerrero e569d7cdfa forzar y borrar huella 2019-09-04 12:55:24 -05:00
arturo guerrero 89f72f5da2 npm run build 2019-09-02 10:43:16 -05:00
arturo guerrero 395932e710 arreglo de el contador y actualizacion de equipos 2019-09-02 10:41:13 -05:00
arturo guerrero 53608cc049 cuenta de equipos 2019-08-22 16:46:35 -05:00
arturo guerrero 198d9ad582 hora a las 8 okay 2019-08-21 18:58:29 -05:00
30 changed files with 4904 additions and 3929 deletions
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

+3
View File
File diff suppressed because one or more lines are too long
-5
View File
File diff suppressed because one or more lines are too long
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=icon href=/favicon.ico><title>PC Puma</title><link href=/css/app.c3f538f1.css rel=preload as=style><link href=/css/chunk-vendors.3c3429cd.css rel=preload as=style><link href=/js/app.bd269eaf.js rel=preload as=script><link href=/js/chunk-vendors.e50360cf.js rel=preload as=script><link href=/css/chunk-vendors.3c3429cd.css rel=stylesheet><link href=/css/app.c3f538f1.css rel=stylesheet></head><body><noscript><strong>We're sorry but pcpuma-front doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/js/chunk-vendors.e50360cf.js></script><script src=/js/app.bd269eaf.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=icon href=/favicon.ico><title>PC Puma</title><link href=/css/app.8ceb5ff7.css rel=preload as=style><link href=/css/chunk-vendors.186c47a3.css rel=preload as=style><link href=/js/app.d37a0421.js rel=preload as=script><link href=/js/chunk-vendors.f2010bb3.js rel=preload as=script><link href=/css/chunk-vendors.186c47a3.css rel=stylesheet><link href=/css/app.8ceb5ff7.css rel=stylesheet></head><body><noscript><strong>We're sorry but pcpuma-front doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id=app></div><script src=/js/chunk-vendors.f2010bb3.js></script><script src=/js/app.d37a0421.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
+4509 -3732
View File
File diff suppressed because it is too large Load Diff
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

+2 -1
View File
@@ -12,7 +12,8 @@
<body>
<noscript>
<strong>We're sorry but pcpuma-front doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
<strong>We're sorry but pcpuma-front doesn't work properly without JavaScript enabled. Please enable it to
continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
+7 -8
View File
@@ -1,21 +1,20 @@
<template lang="pug">
#app
um-header(v-if="!['login'].includes($route.name)")
um-header(v-if="!['login','blacklist'].includes($route.name)")
transition(name="router-anim" enter-active-class="animated slideInLeft")
router-view
</template>
<script>
import UmFooter from './layout/Footer.vue'
import UmHeader from './layout/Header.vue'
require('vue2-animate/dist/vue2-animate.min.css')
import UmFooter from "./layout/Footer.vue";
import UmHeader from "./layout/Header.vue";
require("vue2-animate/dist/vue2-animate.min.css");
export default {
name: 'app',
name: "app",
components: { UmHeader, UmFooter }
}
};
</script>
<style lang="scss">
@import './scss/main.scss';
@import "./scss/main.scss";
</style>
Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

+9 -8
View File
@@ -25,7 +25,7 @@
button.button.is-success(v-on:click="SaveMultar()") Guardar
button.button(v-on:click="toggleModal()") Cancelar
p.has-text-centered
span.is-size-6.space(v-for="s in status") {{` ${s.equipo.toUpperCase()} : ${s.prestadas} / ${s.total}`}}
span.is-size-6.space(v-for="s in status") {{` ${s.Tipo.nombre.toUpperCase()} : ${s.cuenta}`}}
br
.columns
.column.is-3
@@ -88,9 +88,9 @@ export default {
}
})
.then(response => {
console.log(response.data)
this.prestamo = response.data
this.status = response.data.data.status
this.prestamo = response.data.info
this.status = response.data.status
console.log(this.prestamo)
})
.catch(error => {
swal('Error', error.response.data.err, 'error')
@@ -172,7 +172,7 @@ export default {
dt.setHours(dt.getHours() + 2)
dt.setMinutes(dt.getMinutes() + 15)
let cierre = new Date()
cierre.setHours(19, 45, 0)
cierre.setHours(20, 0, 0)
if (dt > cierre) {
return cierre.toLocaleString('en-US',options)
}
@@ -193,14 +193,15 @@ export default {
})
.then(res => {
swal('Exito', 'Peticion exitosa ', 'success')
axios.get(api.url + '/prestamo', {
axios.get(api.url + '/prestamo?kiosko=' + this.$store.getters.kiosko, {
headers: {
'token': this.$store.getters.token
}
})
.then(response => {
this.prestamo = response.data
this.status = response.data.data.status
this.prestamo = response.data.info
this.status = response.data.status
console.log(this.prestamo)
})
.catch(error => {
swal('Error', error.response.data.err, 'error')
+17 -39
View File
@@ -2,9 +2,9 @@
section
.columns
.column.is-12
p.is-size-3 Devolución
p.is-size-3 Devolución
label.checkbox
input(v-model="multa" type="checkbox")
input(v-model="multa" type="checkbox" v-if="permiso")
span Multar
br
br
@@ -15,18 +15,18 @@
th Equipo
th Tipo
th No Inventario
th Multa
th Regresar
th(v-if="permiso") Multa
th(v-if="permiso") Regresar
tbody
tr(v-for="p in prestamo")
td {{p.detalles[0].equipo.carrito.nombre}}
td {{p.detalles[0].equipo.equipo_carrito}}
td {{p.equipo}}
td {{p.detalles[0].equipo.no_inventario}}
td
td {{p.Equipo.Carrito.alias}}
td {{p.Equipo.equipo_carrito}}
td {{p.Equipo.Tipo.nombre}}
td {{p.Equipo.no_inventario}}
td(v-if="permiso")
datepicker(v-model="dateBan")
td
a.button.is-link.is-outlined(v-on:click="regresar(p.idUsuario,p.id)")
td(v-if="permiso")
a.button.is-link.is-outlined(v-on:click="regresar(p.idPrestamo)" v-if="permiso")
span.icon.is-small
font-awesome-icon(icon="undo")
</template>
@@ -37,62 +37,40 @@ import Datepicker from 'vuejs-datepicker'
const axios = require('axios')
export default {
components: { Datepicker },
props: ['usuario'],
// eslint-disable-next-line vue/require-prop-types
props: ['usuario', 'prestamo', 'permiso'],
data () {
return {
prestamo: {},
dateBan: new Date(),
multa: false
}
},
mounted () {
axios.get(api.url + '/prestamo/' + this.usuario, {
headers: {
'token': window.sessionStorage.pcpumaT
}
})
.then(response => {
console.log(response)
this.prestamo = response.data.data
})
.catch(error => {
swal('Error', error.response.data.err, 'error')
})
},
watch: {
usuario: function () {
this.date = new Date()
}
},
methods: {
regresar: function (usr, pre) {
regresar: function (pre) {
axios({
method: 'put',
url: api.url + '/forzarDevolucion',
data: {
idUsuario: usr,
id: pre,
idPrestamo: pre,
multa: this.multa,
dateBan: this.dateBan
},
headers: {
'token': window.sessionStorage.pcpumaT
'token': this.$store.getters.token
}
})
.then(res => {
swal('Exito', 'Peticion exitosa ', 'success')
})
.catch(err => {
swal('Error', err.response.data.err, 'error')
swal('Error', 'Error al devolver', 'error')
})
}
},
computed: {
niceDate () {
if (this.date) {
return this.date.toLocaleDateString()
}
}
}
}
</script>
+143
View File
@@ -0,0 +1,143 @@
<template lang="pug">
div
.columns
.column.is-10.is-offset-1
br
br
br
br
p.is-size-3 Blacklist
.field
.control
input.input(type="text" placeholder="Nombre" v-model="nombre")
.field
.control
input.input(type="text" placeholder="Cuenta" v-model="cuenta")
.field
.control
input.input(type="text" placeholder="Nacimiento" v-model="nacimiento")
.field
.control
input.input(type="text" placeholder="Motivo" v-model="motivo")
.field
.control
input.input(type="text" placeholder="Folio" v-model="folio")
.field
.control
button.button.is-info(v-on:click="registro") Enviar
.columns
.column.is-10.is-offset-1
table.table
thead
tr
td Nombre
td Cuenta
td Nacimiento
td Motivo
td Folio
tbody
tr(v-for="i in data")
td {{i.nombre}}
td {{i.cuenta}}
td {{i.nacimiento}}
td {{i.motivo}}
td
.field
.control
input.input(type="text" placeholder="Folio" v-model="i.folio")
td
button.button.is-info( v-on:click="update(i.idBlacklist,i.folio)") Guardar
td
button.button.is-danger( v-on:click="destroy(i.idBlacklist)") Borrar
</template>
<script>
import axios from "axios";
import api from "../api";
import swal from 'sweetalert';
export default {
data() {
return {
data: "",
nombre: "",
cuenta: "",
nacimiento: "",
motivo: "",
folio: ""
};
},
methods: {
destroy(id){
axios({
method: 'delete',
url: `${api.url}/blacklist`,
data:{
idBlacklist:id
}
})
.then(res=>{
console.log(res,api.url)
swal('Exito', 'Usuario borrado' , 'success')
this.trae();
})
.catch(err=>{
console.log(err)
})
},
update: function(id, folio) {
console.log(id, folio);
let body = {
idBlacklist: id,
folio
};
axios
.put(api.url + "/blacklist", body)
.then(res => {
console.log(res.data);
this.trae();
})
.catch(err => {
console.log(err);
});
},
registro: function() {
let body = {
nombre: this.nombre,
cuenta: this.cuenta,
nacimiento: this.nacimiento,
motivo: this.motivo,
folio: this.folio
};
console.log(body);
axios
.post(api.url + "/blacklist", body)
.then(res => {
console.log(res.data);
swal('Exito', 'Usuario agregado' , 'success')
this.trae();
})
.catch(err => {
console.log(err);
});
},
trae: function() {
axios
.get(api.url + "/blacklist")
.then(res => {
console.log(res.data);
this.data = res.data;
})
.catch(err => {
console.log(err);
});
}
},
created() {
this.trae();
}
};
</script>
<style>
</style>
+49
View File
@@ -0,0 +1,49 @@
<template lang="pug">
.columns
.column.is-10.is-offset-1
br
br
p.is-size-3 Blacklist
table.table
thead
tr
td Nombre
td Cuenta
td Nacimiento
td Motivo
td Folio
tbody
tr(v-for="i in data")
td {{i.nombre}}
td {{i.cuenta}}
td {{i.nacimiento}}
td {{i.motivo}}
td {{i.folio}}
</template>
<script>
import axios from "axios";
import api from "../api";
export default {
data() {
return {
data: ""
};
},
created() {
axios
.get(api.url + "/blacklist")
.then(res => {
console.log(res.data);
this.data = res.data;
})
.catch(err => {
console.log(err);
});
}
};
</script>
<style>
</style>
+1 -1
View File
@@ -71,7 +71,7 @@ export default {
}
},
mounted () {
axios.get(api.url + '/carrito?kiosko=1', {
axios.get(api.url + '/carrito?kiosko=' + this.$store.getters.kiosko, {
headers: {
'token': this.$store.getters.token
}
+2 -2
View File
@@ -187,14 +187,14 @@ export default {
})
.then(response => {
swal('Exito', 'Se actualizo', 'success')
axios.get(api.url + '/equipo', {
axios.get(api.url + '/equipo?kiosko=' + this.$store.getters.kiosko, {
headers: {
'token': this.$store.getters.token
}
})
.then(response => {
// console.log(response)
this.data = response.data.data
this.data = response.data
swal('Exito', 'Se actualizarón los datos', 'success')
})
.catch(error => {
+17 -23
View File
@@ -9,8 +9,10 @@
router-link.navbar-item(to="/carrito") Carrito
router-link.navbar-item(to="/usuario") Usuarios
router-link.navbar-item(to="/multa") Multas
router-link.navbar-item(v-if="$store.getters.permiso" to="/bans") Blacklist
.navbar-end
.navbar-item
p {{`Bienvenido : ${this.usuario}`}}
span.tag.is-danger.is-medium(v-if=" env === 'development' ") Localhost
span.tag.is-danger.is-medium(v-else-if=" env === 'TEST' ") Test
.navbar-item
@@ -19,34 +21,26 @@
</template>
<script>
export default {
data () {
data() {
return {
env: process.env.NODE_ENV
}
env: process.env.NODE_ENV,
usuario: this.$store.getters.usuario
};
},
methods: {
salir: function () {
this.$store.commit('close')
this.$router.push('login')
}
},
computed: {
login: function () {
if (window.sessionStorage.pcpumaT) {
return true
}
return false
salir: function() {
this.$store.commit("close");
this.$router.push("login");
}
}
}
};
</script>
<style lang="scss" scoped>
.navbar{
width: 100%;
border-bottom: #B08100 solid 5px;
box-shadow: 0px 13px 21px 2px rgba(0,0,0,0.21);
position:fixed;
top:0;
}
.navbar {
width: 100%;
border-bottom: #b08100 solid 5px;
box-shadow: 0px 13px 21px 2px rgba(0, 0, 0, 0.21);
position: fixed;
top: 0;
}
</style>
+28 -27
View File
@@ -17,8 +17,8 @@
.select
select(v-model="kiosko" require)
option(disabled) selecciona el kiosko
option(selected) 1
option 2
option(value="1") 1
option(value="2") 2
.field
p.control.has-icons-left
input.input.is-link(placeholder="Usuario" v-model="user")
@@ -36,51 +36,52 @@
</template>
<script>
import UnNotification from '../components/general/Notificacion.vue'
import api from '../api'
const axios = require('axios')
import UnNotification from "../components/general/Notificacion.vue";
import api from "../api";
const axios = require("axios");
export default {
components: {
UnNotification
},
data () {
data() {
return {
user: '',
pass: '',
err: '',
user: "",
pass: "",
err: "",
status: false,
kiosko: ''
}
kiosko: ""
};
},
methods: {
Login: function (event) {
if (event) event.preventDefault()
Login: function(event) {
if (event) event.preventDefault();
axios({
method: 'post',
url: api.url + '/login',
method: "post",
url: api.url + "/login",
data: {
usuario: this.user,
pass: this.pass
}
})
.then(response => {
console.log(response.data)
this.$store.commit('login', response.data)
this.$store.commit('kiosko', this.kiosko)
this.$router.push('/')
console.log(response.data);
console.log("kiosko", this.kiosko);
this.$store.commit("login", response.data);
this.$store.commit("kiosko", this.kiosko);
this.$router.push("/");
})
.catch(error => {
this.err = error.response.data.err
this.status = !error.response.data.status
})
this.err = error.response.data.err;
this.status = !error.response.data.status;
});
}
}
}
};
</script>
<style lang="css" scoped>
.navbar{
border-bottom: #B08100 solid 5px;
box-shadow: 0px 13px 21px 2px rgba(0,0,0,0.21);
}
.navbar {
border-bottom: #b08100 solid 5px;
box-shadow: 0px 13px 21px 2px rgba(0, 0, 0, 0.21);
}
</style>
+48 -3
View File
@@ -28,11 +28,15 @@
.field
input#switch.switch.is-info(type="checkbox" v-model="data.ban" v-on:click="ban()")
label(for="switch") Baneado
.field
button.button.is-danger( v-if="permiso" v-on:click="huella()") Borrar Huella
.field
button.button.is-danger( v-if="permiso" v-on:click="quitarMulta()") Borrar Multa
.column.is-7
div(v-if="prest.length == 0")
prestamo(v-bind:usuario="buscar")
div(v-else)
devolucion(v-bind:usuario="buscar")
devolucion(v-bind:usuario="buscar" v-bind:prestamo="prest" v-bind:permiso="permiso")
</template>
@@ -50,7 +54,8 @@ export default {
return {
buscar: '',
data: {},
prest: ''
prest: '',
permiso: this.$store.getters.permiso
}
},
methods: {
@@ -64,7 +69,7 @@ export default {
.then(res1 => {
// console.log(response)
this.data = res1.data
return axios.get(api.url + '/prestamo/' + this.buscar, {
return axios.get(api.url + '/prestamo?usuario=' + this.buscar, {
headers: {
'token': this.$store.getters.token
}
@@ -104,6 +109,46 @@ export default {
.catch(error => {
console.log(error)
})
},
huella: function () {
axios({
method: 'put',
url: api.url + '/usuario/' + this.data.idUsuario,
data: {
huella: null
},
headers: {
'token': this.$store.getters.token
}
})
.then(res => {
console.log(res)
this.data = res.data
swal('Exito','Huella borrada' , 'success')
})
.catch(error => {
console.log(error)
})
},
quitarMulta: function () {
axios({
method: 'put',
url: api.url + '/usuario/' + this.data.idUsuario,
data: {
multa: null
},
headers: {
'token': this.$store.getters.token
}
})
.then(res => {
console.log(res)
this.data = res.data
swal('Exito','Huella borrada' , 'success')
})
.catch(error => {
console.log(error)
})
}
}
}
+34 -27
View File
@@ -1,39 +1,46 @@
import Vue from 'vue'
import store from './store.js'
import VueRouter from 'vue-router'
import Carrito from './layout/Carrito.vue'
import Inicio from './layout/Inicio.vue'
import Login from './layout/Login.vue'
import Usuario from './layout/Usuario.vue'
import Equipo from './layout/Equipo.vue'
import Multa from './layout/Multa.vue'
import Vue from "vue";
import store from "./store.js";
import VueRouter from "vue-router";
import Carrito from "./layout/Carrito.vue";
import Inicio from "./layout/Inicio.vue";
import Login from "./layout/Login.vue";
import Usuario from "./layout/Usuario.vue";
import Equipo from "./layout/Equipo.vue";
import Multa from "./layout/Multa.vue";
import Blacklist from "./layout/Blacklist.vue";
import Bans from "./layout/Bans.vue";
const routes = [
{ path: '/', component: Inicio, name: 'inicio' },
{ path: '/login', component: Login, name: 'login', meta: { isPublic: true } },
{ path: '/carrito', component: Carrito, name: 'carrito' },
{ path: '/usuario', component: Usuario, name: 'usuario' },
{ path: '/equipo/', component: Equipo, name: 'equipo' },
{ path: '/multa', component: Multa, name: 'multa' }
]
Vue.use(VueRouter)
{ path: "/", component: Inicio, name: "inicio" },
{ path: "/login", component: Login, name: "login", meta: { isPublic: true } },
{ path: "/carrito", component: Carrito, name: "carrito" },
{ path: "/usuario", component: Usuario, name: "usuario" },
{ path: "/equipo/", component: Equipo, name: "equipo" },
{ path: "/multa", component: Multa, name: "multa" },
{ path: "/blacklist", component: Blacklist, name: "blacklist" },
{ path: "/bans", component: Bans, name: "bans" }
];
Vue.use(VueRouter);
const router = new VueRouter({ mode: 'history', routes })
const router = new VueRouter({ routes });
const isAuthenticated = function () {
return store.getters.isLoggedIn
}
const isAuthenticated = function() {
return store.getters.isLoggedIn;
};
router.beforeEach((to, from, next) => {
if (to.name === "blacklist") {
return next();
}
if (!to.meta.isPublic && !isAuthenticated()) {
return next({ name: 'login' })
return next({ name: "login" });
}
if (to.name === 'login' && isAuthenticated()) {
return next({ name: 'home' })
if (to.name === "login" && isAuthenticated()) {
return next({ name: "home" });
}
return next()
})
return next();
});
export default router
export default router;
+3 -1
View File
@@ -12,7 +12,9 @@ const store = new Vuex.Store({
isLoggedIn: state => !!state.session.token,
token: state => state.session.token,
kiosko: state => state.kiosko,
operador : state => state.session.idOperador
operador : state => state.session.idOperador,
permiso : state => state.session.permiso,
usuario : state => state.session.usuario
},
mutations: {
login (state, payload = {}) {