290 lines
6.6 KiB
Vue
290 lines
6.6 KiB
Vue
<template>
|
|
<div>
|
|
<b-table
|
|
:data="data"
|
|
:total="total"
|
|
:current-page="page"
|
|
:per-page="perPage"
|
|
:loading="isLoading"
|
|
:selected.sync="servicioSelected"
|
|
:row-class="(row, index) => addPointer()"
|
|
@page-change="onPageChange"
|
|
hoverable
|
|
striped
|
|
paginated
|
|
backend-pagination
|
|
>
|
|
<b-table-column
|
|
field="fechaCreado"
|
|
label="Fecha Registro"
|
|
v-slot="props"
|
|
v-if="columnaFechaCreado"
|
|
centered
|
|
>
|
|
<span>{{ fecha(props.row.createdAt) }}</span>
|
|
<!-- <span>{{ props.row }}</span> -->
|
|
</b-table-column>
|
|
|
|
<b-table-column
|
|
field="numeroCuenta"
|
|
label="Número de Cuenta"
|
|
v-slot="props"
|
|
centered
|
|
>
|
|
<span>{{ props.row.Usuario.usuario }}</span>
|
|
</b-table-column>
|
|
|
|
<b-table-column field="nombre" label="Nombre" v-slot="props" centered>
|
|
<span>{{ props.row.Usuario.nombre }}</span>
|
|
</b-table-column>
|
|
|
|
<b-table-column field="carrera" label="Carrera" v-slot="props" centered>
|
|
<span>{{ props.row.Carrera.carrera }}</span>
|
|
</b-table-column>
|
|
|
|
<b-table-column
|
|
field="fechaInicio"
|
|
label="Fecha Inicio"
|
|
v-slot="props"
|
|
v-if="columnaFechaInicio"
|
|
centered
|
|
>
|
|
<span>{{ fecha(props.row.fechaInicio) }}</span>
|
|
</b-table-column>
|
|
|
|
<b-table-column
|
|
field="fechaFin"
|
|
label="Fecha Fin"
|
|
v-slot="props"
|
|
v-if="columnaFechaFin"
|
|
centered
|
|
>
|
|
<span>{{ fecha(props.row.fechaFin) }}</span>
|
|
</b-table-column>
|
|
|
|
<b-table-column field="status" label="Status" v-slot="props" centered>
|
|
<b-button
|
|
type="is-danger"
|
|
size="is-small"
|
|
class="tag"
|
|
@click="responsableUpdate(props.row, 'carta_aceptacion')"
|
|
v-if="columnasResponsable && props.row.Status.idStatus === 7"
|
|
>
|
|
Carta Aceptación Rechazada
|
|
</b-button>
|
|
|
|
<span :class="types(props.row.Status.idStatus)" v-else>
|
|
{{ props.row.Status.status }}
|
|
</span>
|
|
</b-table-column>
|
|
|
|
<b-table-column
|
|
field="cartaTermino"
|
|
label="Carta Término"
|
|
v-slot="props"
|
|
v-if="columnasResponsable"
|
|
centered
|
|
>
|
|
<div
|
|
v-if="
|
|
props.row.Status.idStatus >= 4 &&
|
|
props.row.Status.idStatus != 7 &&
|
|
props.row.Status.idStatus != 10
|
|
"
|
|
>
|
|
<b-icon
|
|
class="tag is-success"
|
|
icon="check"
|
|
v-if="props.row.cartaTermino"
|
|
/>
|
|
|
|
<b-button
|
|
type="is-link is-light"
|
|
class="tag"
|
|
@click="responsableUpdate(props.row, 'carta_termino')"
|
|
v-else
|
|
>
|
|
Carta Término
|
|
</b-button>
|
|
</div>
|
|
</b-table-column>
|
|
|
|
<b-table-column
|
|
field="cuestionarioP"
|
|
label="Cuestionario"
|
|
v-slot="props"
|
|
v-if="columnasResponsable"
|
|
centered
|
|
>
|
|
<div
|
|
v-if="
|
|
props.row.Status.idStatus >= 4 &&
|
|
props.row.Status.idStatus != 7 &&
|
|
props.row.Status.idStatus != 10
|
|
"
|
|
>
|
|
<b-icon
|
|
class="tag is-success"
|
|
icon="check"
|
|
v-if="props.row.idCuestionarioPrograma"
|
|
/>
|
|
|
|
<b-button
|
|
type="is-link is-light"
|
|
class="tag"
|
|
@click="responsableUpdate(props.row, 'cuestionario')"
|
|
v-else
|
|
>
|
|
Cuestionario
|
|
</b-button>
|
|
</div>
|
|
</b-table-column>
|
|
</b-table>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import moment from 'moment'
|
|
|
|
export default {
|
|
props: {
|
|
columnaFechaCreado: {
|
|
type: Boolean,
|
|
required: false,
|
|
default: true,
|
|
},
|
|
columnaFechaFin: {
|
|
type: Boolean,
|
|
required: false,
|
|
default: true,
|
|
},
|
|
columnaFechaInicio: {
|
|
type: Boolean,
|
|
required: false,
|
|
default: true,
|
|
},
|
|
columnasResponsable: {
|
|
type: Boolean,
|
|
required: false,
|
|
default: false,
|
|
},
|
|
isLoading: {
|
|
type: Boolean,
|
|
required: true,
|
|
},
|
|
path: {
|
|
type: String,
|
|
required: false,
|
|
},
|
|
idTipoUsuario: {
|
|
type: Number,
|
|
required: true,
|
|
},
|
|
page: {
|
|
type: Number,
|
|
required: true,
|
|
},
|
|
total: {
|
|
type: Number,
|
|
required: true,
|
|
},
|
|
data: {
|
|
type: Array,
|
|
required: true,
|
|
},
|
|
onPageChange: {
|
|
type: Function,
|
|
require: true,
|
|
},
|
|
},
|
|
data() {
|
|
return {
|
|
servicioSelected: {},
|
|
perPage: 25,
|
|
}
|
|
},
|
|
methods: {
|
|
fecha(date) {
|
|
const fecha = moment(date)
|
|
|
|
if (date) return `${fecha.date()}/${fecha.month() + 1}/${fecha.year()}`
|
|
return ''
|
|
},
|
|
types(idStatus) {
|
|
let style = 'tag'
|
|
|
|
switch (idStatus) {
|
|
case 1:
|
|
style += ' is-dark'
|
|
break
|
|
case 2:
|
|
style += ' is-info'
|
|
break
|
|
case 3:
|
|
style += ' is-warning'
|
|
break
|
|
case 4:
|
|
style += ' is-link'
|
|
break
|
|
case 5:
|
|
style += ' is-success'
|
|
break
|
|
case 6:
|
|
style += ' is-success is-light'
|
|
break
|
|
case 7:
|
|
case 8:
|
|
case 9:
|
|
case 10:
|
|
style += ' is-danger'
|
|
break
|
|
case 11:
|
|
style += ' is-link is-light'
|
|
break
|
|
case 12:
|
|
style += ' is-info is-light'
|
|
break
|
|
case 13:
|
|
case 14:
|
|
style += ' is-success is-light'
|
|
break
|
|
}
|
|
return style
|
|
},
|
|
addPointer() {
|
|
return this.idTipoUsuario === 1 ? 'pointer' : ''
|
|
},
|
|
responsableUpdate(servicio, path) {
|
|
/*pendiente*/
|
|
localStorage.setItem('idServicio', servicio.idServicio)
|
|
localStorage.setItem(
|
|
// 'idCuestionarioPrograma',
|
|
'cuestionario',
|
|
servicio.idCuestionarioPrograma
|
|
)
|
|
this.$router.push(`/responsable/${path}`)
|
|
},
|
|
},
|
|
watch: {
|
|
servicioSelected() {
|
|
if (this.idTipoUsuario === 1) {
|
|
if (this.servicioSelected.idServicio)
|
|
localStorage.setItem('idServicio', this.servicioSelected.idServicio)
|
|
if (this.servicioSelected.idCasoEspecial)
|
|
localStorage.setItem(
|
|
'idCasoEspecial',
|
|
this.servicioSelected.idCasoEspecial
|
|
)
|
|
this.$router.push(this.path)
|
|
} else if (
|
|
this.servicioSelected.idServicio ||
|
|
this.servicioSelected.idCasoEspecial
|
|
)
|
|
this.servicioSelected = {}
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
|
|
<style scoped></style>
|