instituciones
This commit is contained in:
parent
60a4041d1f
commit
922a63c7c4
76
components/admin/ConfigInstitucion.vue
Normal file
76
components/admin/ConfigInstitucion.vue
Normal file
@ -0,0 +1,76 @@
|
||||
<template>
|
||||
<div class="columns">
|
||||
<div class="column mt-5 has-text-centered">
|
||||
<b-field>
|
||||
<b-button :type="type" @click="hasDominion = true"
|
||||
>Con Dominio</b-button
|
||||
>
|
||||
</b-field>
|
||||
<b-field>
|
||||
<b-button :type="typeTwo" @click="hasDominion = false"
|
||||
>Sin Dominio</b-button
|
||||
>
|
||||
</b-field>
|
||||
</div>
|
||||
|
||||
<div class="column has-text-centered pb-5">
|
||||
<b-field>
|
||||
<b-upload v-model="dropFiles" multiple drag-drop>
|
||||
<section class="section">
|
||||
<div class="content has-text-centered">
|
||||
<p>
|
||||
<b-icon icon="upload" size="is-large"> </b-icon>
|
||||
</p>
|
||||
<p>Adjunta el logo de la Institución</p>
|
||||
</div>
|
||||
</section>
|
||||
</b-upload>
|
||||
</b-field>
|
||||
|
||||
<div class="tags columns is-centered">
|
||||
<div class="column is-half">
|
||||
<span
|
||||
v-for="(file, index) in dropFiles"
|
||||
:key="index"
|
||||
class="tag is-info"
|
||||
>
|
||||
{{ file.name }}
|
||||
<button
|
||||
class="delete is-small"
|
||||
type="button"
|
||||
@click="deleteDropFile(index)"
|
||||
></button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
hasDominion: false,
|
||||
dropFiles: [],
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
deleteDropFile(index) {
|
||||
this.dropFiles.splice(index, 1)
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
type() {
|
||||
return {
|
||||
'is-info': this.hasDominion == true,
|
||||
}
|
||||
},
|
||||
typeTwo() {
|
||||
return {
|
||||
'is-info': this.hasDominion == false,
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
69
components/admin/HabilitarInstitucion.vue
Normal file
69
components/admin/HabilitarInstitucion.vue
Normal file
@ -0,0 +1,69 @@
|
||||
<template>
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<b-field label="Nombre de la Institución">
|
||||
<b-select v-model="idInstitucion" expanded>
|
||||
<option value="" disabled>Institución</option>
|
||||
<option
|
||||
v-for="institucion in instituciones"
|
||||
:value="institucion.id_institucion"
|
||||
:key="institucion.id_insitucion"
|
||||
>
|
||||
{{ institucion.institucion }}
|
||||
</option>
|
||||
</b-select>
|
||||
</b-field>
|
||||
|
||||
<b-field label="Dominio">
|
||||
<b-input v-model="dominio" />
|
||||
</b-field>
|
||||
</div>
|
||||
|
||||
<div class="column">
|
||||
<b-field label="Nombre del responsable">
|
||||
<b-input v-model="nombreResponsable" />
|
||||
</b-field>
|
||||
|
||||
<b-field label="Email">
|
||||
<b-input type="email" v-model="email" />
|
||||
</b-field>
|
||||
|
||||
<b-field label="Teléfono">
|
||||
<b-input type="number" v-model="telefono" />
|
||||
</b-field>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import axios from 'axios'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
instituciones: [],
|
||||
institucion: {},
|
||||
idInstitucion: '',
|
||||
|
||||
dominio: '',
|
||||
|
||||
nombreResponsable: '',
|
||||
email: '',
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
obtenerCatalogoInstitucion() {
|
||||
axios
|
||||
.get(`${process.env.api}/institucion`)
|
||||
.then((res) => {
|
||||
this.instituciones = res.data
|
||||
})
|
||||
.catch((err) => {
|
||||
this.imprimirError(err)
|
||||
})
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.obtenerCatalogoInstitucion()
|
||||
},
|
||||
}
|
||||
</script>
|
@ -189,6 +189,13 @@
|
||||
v-if="idTipoUsuario === 3"
|
||||
/>
|
||||
|
||||
<b-menu-item
|
||||
label="Instituciones"
|
||||
:icon="icono('/admin/instituciones')"
|
||||
:disabled="activo('/admin/instituciones')"
|
||||
@click="opcionMenu('/admin/instituciones')"
|
||||
/>
|
||||
|
||||
<b-menu-item
|
||||
label="Operadores"
|
||||
:icon="icono('/admin/operadores')"
|
||||
|
100
pages/admin/instituciones/index.vue
Normal file
100
pages/admin/instituciones/index.vue
Normal file
@ -0,0 +1,100 @@
|
||||
<template>
|
||||
<div>
|
||||
<Title title="Instituciones" :operador="admin" />
|
||||
|
||||
<HabilitarInstitucion v-if="admin.tipoUsuario.id_tipo_usuario === 2" />
|
||||
|
||||
<ConfigInstitucion v-if="admin.tipoUsuario.id_tipo_usuario === 3" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Title from '@/components/layouts/Title'
|
||||
import HabilitarInstitucion from '@/components/admin/HabilitarInstitucion'
|
||||
import ConfigInstitucion from '@/components/admin/ConfigInstitucion'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
Title,
|
||||
HabilitarInstitucion,
|
||||
ConfigInstitucion,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
admin: {},
|
||||
isLoading: false,
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
updateIsLoading(valorBooleano) {
|
||||
this.isLoading = valorBooleano
|
||||
},
|
||||
imprimirError(err = {}, title = '¡Hubo un error!', onConfirm = () => {}) {
|
||||
this.$buefy.dialog.alert({
|
||||
ariaRole: 'alertdialog',
|
||||
ariaModal: true,
|
||||
type: 'is-danger',
|
||||
title,
|
||||
message: err.message,
|
||||
confirmText: 'Entendido',
|
||||
hasIcon: true,
|
||||
iconPack: 'mdi',
|
||||
icon: 'alert-octagon',
|
||||
onConfirm,
|
||||
})
|
||||
if (err.err && err.err === 'token error') {
|
||||
localStorage.clear()
|
||||
this.$router.push('/')
|
||||
}
|
||||
},
|
||||
imprimirMensaje(message, onConfirm = () => {}, title = '¡Felicidades!') {
|
||||
this.$buefy.dialog.alert({
|
||||
ariaRole: 'alertdialog',
|
||||
ariaModal: true,
|
||||
type: 'is-success',
|
||||
title,
|
||||
message,
|
||||
confirmText: 'Ok',
|
||||
hasIcon: true,
|
||||
iconPack: 'mdi',
|
||||
icon: 'check-circle',
|
||||
onConfirm,
|
||||
})
|
||||
},
|
||||
imprimirWarning(
|
||||
message,
|
||||
onConfirm = () => {},
|
||||
title = '¡Espera un minuto!',
|
||||
onCancel = () => {}
|
||||
) {
|
||||
this.$buefy.dialog.alert({
|
||||
ariaRole: 'alertdialog',
|
||||
ariaModal: true,
|
||||
type: 'is-warning',
|
||||
title,
|
||||
message,
|
||||
confirmText: 'Confirmar',
|
||||
canCancel: true,
|
||||
cancelText: 'Cancelar',
|
||||
hasIcon: true,
|
||||
iconPack: 'mdi',
|
||||
icon: 'help-circle',
|
||||
onConfirm,
|
||||
onCancel,
|
||||
})
|
||||
},
|
||||
getLocalhostInfo() {
|
||||
const objeto = JSON.parse(localStorage.getItem('usuario'))
|
||||
this.admin = objeto.operador
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.getLocalhostInfo()
|
||||
if (
|
||||
this.admin.tipoUsuario.id_tipo_usuario != 2 &&
|
||||
this.admin.tipoUsuario.id_tipo_usuario != 3
|
||||
)
|
||||
this.$router.push('/operador/prestamo_devolucion')
|
||||
},
|
||||
}
|
||||
</script>
|
Loading…
Reference in New Issue
Block a user