pcpuma_unam_operador/components/admin/CrearInstiProgra.vue

124 lines
3.0 KiB
Vue
Raw Normal View History

2022-07-04 06:06:28 +00:00
<template>
2022-07-04 06:25:48 +00:00
<div class="box">
<dir class="columns is-align-items-flex-end pl-0 pb-4">
2022-07-11 16:56:17 +00:00
<b-field class="column mb-0 pb-0" label="Programa">
2022-07-04 06:25:48 +00:00
<b-input
type="text"
placeholder="Nombre del programa"
v-model="programa"
rounded
@keyup.enter.native="
2022-07-11 14:15:10 +00:00
$alertsGenericos.imprimirWarning(
$buefy,
2022-07-04 06:25:48 +00:00
'¿Está segur@ de querer crear este programa?',
2022-07-04 06:06:28 +00:00
crearInstitucionPrograma
)
"
2022-07-04 06:25:48 +00:00
/>
</b-field>
<b-button
type="is-info"
2022-07-11 16:56:17 +00:00
class="column is-4"
2022-07-04 06:25:48 +00:00
@click="
2022-07-11 14:15:10 +00:00
$alertsGenericos.imprimirWarning(
$buefy,
2022-07-11 16:56:17 +00:00
'¿Esta segur@ de querer crear este programa?',
2022-07-04 06:25:48 +00:00
crearInstitucionPrograma
)
"
:disabled="!programa"
expanded
rounded
>
Crear
</b-button>
</dir>
<b-collapse
aria-id="contentIdForA11y3"
class="card"
animation="slide"
v-model="active"
>
<template #trigger>
<div
class="card-header"
role="button"
aria-controls="contentIdForA11y3"
:aria-expanded="active"
>
<p class="card-header-title">Tabla de programas</p>
<a class="card-header-icon">
<b-icon :icon="active ? 'menu-down' : 'menu-up'"> </b-icon>
</a>
</div>
</template>
<TablaOpcionesCreadas
v-if="active"
:data="programas"
:columnaPrograma="true"
/>
</b-collapse>
2022-07-04 06:06:28 +00:00
</div>
</template>
<script>
import axios from 'axios'
import TablaOpcionesCreadas from '@/components/admin/TablaOpcionesCreadas'
2022-07-04 06:06:28 +00:00
export default {
components: {
TablaOpcionesCreadas,
},
2022-07-04 06:06:28 +00:00
props: {
admin: { type: Object, require: true },
updateIsLoading: { type: Function, required: true },
},
data() {
return {
active: false,
programas: [],
2022-07-04 06:06:28 +00:00
programa: '',
}
},
methods: {
obtenerCatalogoProgramas() {
axios
.get(`${process.env.api}/institucion-programa/`, this.$getToken.token())
.then((res) => {
this.programas = res.data
})
.catch((err) => {
this.$alertsGenericos.imprimirError(this.$buefy, err.response.data)
})
},
2022-07-04 06:06:28 +00:00
crearInstitucionPrograma() {
const data = {
programa: this.programa,
}
this.updateIsLoading(true)
axios
2022-07-19 16:41:33 +00:00
.post(
`${process.env.api}/institucion-programa/`,
data,
this.$getToken.token()
)
2022-07-04 06:06:28 +00:00
.then((res) => {
this.updateIsLoading(false)
2022-07-11 14:15:10 +00:00
this.$alertsGenericos.imprimirMensaje(this.$buefy, res.data.message)
2022-07-21 18:07:37 +00:00
this.obtenerCatalogoProgramas()
2022-07-04 06:06:28 +00:00
this.programa = ''
})
.catch((err) => {
this.updateIsLoading(false)
2022-07-11 14:15:10 +00:00
this.$alertsGenericos.imprimirError(this.$buefy, err.response.data)
2022-07-04 06:06:28 +00:00
})
},
},
created() {
this.obtenerCatalogoProgramas()
},
2022-07-04 06:06:28 +00:00
}
</script>