produccion

This commit is contained in:
Andres2908
2022-03-21 23:15:26 -06:00
16 changed files with 769 additions and 211 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 129 KiB

+25 -9
View File
@@ -3,11 +3,10 @@
<form class="box">
<div class="has-text-centered">
<h2 class="is-size-4">
<strong>Inscripción del servicio </strong>
</h2>
<h2 class="is-size-4">
<strong>Mesa para dispositivos móviles.</strong>
<strong>Inscripción a servicios de CeDeTec</strong>
</h2>
<h2 class="is-size-4"><strong>período 2022-2</strong></h2>
</div>
<b-field label="Número de cuenta" :type="error">
@@ -19,11 +18,7 @@
/>
</b-field>
<b-field
label="Contraseña"
message="Recuerda que tu contraseña es tu NIP de escolares"
:type="error"
>
<b-field label="Contraseña" :type="error">
<b-input
type="password"
placeholder="NIP de escolares"
@@ -32,6 +27,12 @@
password-reveal
/>
</b-field>
<p class="font" :class="colorSize">
Si no recuerdas tu NIP de escolares, ingresa:
<a href="https://sistemas.acatlan.unam.mx/recuperanip/" target="_blanc"
>aquí</a
>
</p>
<div class="has-text-centered">
<b-button
@@ -80,6 +81,7 @@ export default {
localStorage.setItem('token', res.data.token)
localStorage.setItem('idUsuario', info.idUsuario)
localStorage.setItem('nombre', info.nombre)
localStorage.setItem('generacion', info.generacion)
localStorage.setItem('usuario', info.numeroCuenta)
localStorage.setItem('idCarrera', info.idCarrera)
localStorage.setItem('carrera', info.carrera)
@@ -103,10 +105,24 @@ export default {
if (this.error) this.error = ''
},
},
computed: {
colorSize() {
return { fontColor: this.error == 'is-danger' }
},
},
}
</script>
<style scoped>
.font {
font-size: 12px;
padding-bottom: 10px;
}
.fontColor {
color: red;
}
.full-h {
height: 75vh;
}
+148
View File
@@ -0,0 +1,148 @@
<template>
<div class="box">
<p class="pb-2"><b>Número de cuenta: </b> {{ numeroCuenta }}</p>
<b-field label="Ticket" horizontal grouped>
<b-input v-model="folioA" :disabled="switchFolio" maxlength="6"></b-input>
<p class="control">
<b-button
type="is-primary"
icon-left="pencil"
@click="habilitar('folio')"
>
</b-button>
</p>
</b-field>
<b-field label="Cantidad" horizontal>
<b-input v-model="montoA" :disabled="switchMonto" maxlength="5"></b-input>
<p class="control">
<b-button
type="is-primary"
icon-left="pencil"
@click="habilitar('monto')"
>
</b-button>
</p>
</b-field>
<b-field label="Fecha del ticket" horizontal>
<b-datepicker
v-model="fechaTicketA"
:disabled="switchFecha"
:max-date="maxDate"
icon="calendar-today"
>
</b-datepicker>
<p class="control">
<b-button
type="is-primary"
icon-left="pencil"
@click="habilitar('fecha')"
>
</b-button>
</p>
</b-field>
<div class="has-text-centered pb-2">
<b-button
type="is-success"
@click="
imprimirWarning(
'¿Estas seguro de querer actualizar esta información?',
actualizarTicket
)
"
>Actualizar datos</b-button
>
</div>
</div>
</template>
<script>
import axios from 'axios'
export default {
props: {
imprimirMensaje: { type: Function, require: true },
imprimirError: { type: Function, require: true },
imprimirWarning: { type: Function, required: true },
updateIsLoading: { type: Function, require: true },
folio: { type: String, require: true },
monto: { type: String, require: true },
token: { type: Object, require: true },
fechaTicket: { type: Date, require: true },
},
data() {
return {
numeroCuenta: localStorage.getItem('noCuenta'),
switchFolio: true,
switchMonto: true,
switchFecha: true,
folioA: '',
montoA: '',
fechaTicketA: null,
maxDate: new Date(),
}
},
methods: {
habilitar(tipo) {
tipo == 'folio' && this.switchFolio == true
? (this.switchFolio = false)
: (this.switchFolio = true)
tipo == 'monto' && this.switchMonto == true
? (this.switchMonto = false)
: (this.switchMonto = true)
tipo == 'fecha' && this.switchFecha == true
? (this.switchFecha = false)
: (this.switchFecha = true)
},
actualizarTicket() {
const data = {
idInscripcion: Number(localStorage.getItem('inscripcion')),
folio: this.folioA,
monto: this.montoA,
fechaTicket: this.fechaTicketA,
}
this.updateIsLoading(true)
axios
.put(`${process.env.api}/admin/actualizar_ticket`, data, this.token)
.then((res) => {
this.updateIsLoading(false)
this.imprimirMensaje(res.data.message)
this.bloquearBotones()
localStorage.setItem('monto', this.montoA)
localStorage.setItem('folio', this.folioA)
localStorage.setItem('fechaTicket', this.fechaTicketA)
this.$emit('actualizarFolio')
})
.catch((err) => {
this.updateIsLoading(false)
this.imprimirError(err.response.data)
})
},
bloquearBotones() {
this.switchFolio = true
this.switchMonto = true
this.switchFecha = true
},
diaMin(today) {
return new Date(
today.getFullYear(),
today.getMonth(),
today.getDate() - today.getDate() + 1
)
},
},
created() {
;(this.folioA = this.folio),
(this.montoA = this.monto),
(this.fechaTicketA = this.fechaTicket)
},
}
</script>
+36
View File
@@ -0,0 +1,36 @@
<template>
<div class="block pt-5" v-if="motivo">
<div class="has-text-centered pb-4">
<b-tag type="is-danger" size="is-medium">Ticket declinado</b-tag>
</div>
<p class="box"><b>Motivo: </b>{{ motivo }}</p>
</div>
</template>
<script>
import axios from 'axios'
export default {
props: {
folio: { type: String, require: true },
token: { type: Object, require: true },
},
data() {
return {
motivo: '',
}
},
methods: {
traerMotivo() {
axios
.get(`${process.env.api}/admin/motivo?folio=${this.folio}`, this.token)
.then((res) => {
this.motivo = res.data.motivo
})
.catch((err) => {})
},
},
created() {
this.traerMotivo()
},
}
</script>
+73
View File
@@ -0,0 +1,73 @@
<template>
<form class="modal-card">
<header class="modal-card-head">
<h5 class="modal-card-title">
¿Estás seguro de querer declinar este ticket?
</h5>
</header>
<section class="modal-card-body">
<b-field label="Motivo por el cual vas a declinar el ticket">
<b-input type="textarea" maxlength="100" v-model="motivo" expanded />
</b-field>
</section>
<footer
class="modal-card-foot"
style="display: flex; justify-content: space-between"
>
<b-button type="is-danger" @click="$emit('close')"> Cancelar </b-button>
<b-button
type="is-success"
@click="multaPrestamo(), $emit('close')"
:disabled="!motivo"
>
Enviar
</b-button>
</footer>
</form>
</template>
<script>
import axios from 'axios'
export default {
props: {
token: { type: Object, require: true },
folio: { type: String, require: true },
imprimirError: { type: Function, required: true },
imprimirMensaje: { type: Function, required: true },
updateIsLoading: { type: Function, require: true },
},
data() {
return {
motivo: '',
}
},
methods: {
multaPrestamo() {
const data = {
folio: this.folio,
validacion: 0,
motivo: this.motivo,
}
this.updateIsLoading(true)
axios
.put(`${process.env.api}/admin/validar`, data, this.token)
.then((res) => {
this.updateIsLoading(false)
this.imprimirMensaje(res.data.message)
})
.catch((err) => {
this.updateIsLoading(false)
this.imprimirError(err.response.data)
})
.finally(() => {
this.$router.go(-1)
})
},
},
}
</script>
+2 -3
View File
@@ -37,7 +37,6 @@ import fileDownload from 'js-file-download'
export default {
props: {
updateIsLoading: { type: Function, require: true },
tipo: { type: String, require: true },
},
data() {
return {
@@ -57,11 +56,11 @@ export default {
this.updateIsLoading(true)
axios
.get(
`${process.env.api}/admin/reporte?inicio=${this.inicio}&fin=${this.fin}&tipo=${this.tipo}`,
`${process.env.api}/admin/reporte?inicio=${this.inicio}&fin=${this.fin}`,
this.token
)
.then((res) => {
fileDownload(res.data, `reporte.csv`)
fileDownload(res.data, `inscripcionesCEDETEC.csv`)
this.updateIsLoading(false)
})
.catch((err) => {
+60 -21
View File
@@ -39,7 +39,7 @@
{{ props.row.Usuario.numeroCuenta }}
</b-table-column>
<b-table-column field="folio" label="Folio" centered v-slot="props"
<b-table-column field="ticket" label="Ticket" centered v-slot="props"
>{{ props.row.folio }}
</b-table-column>
@@ -47,14 +47,12 @@
{{ props.row.monto }}
</b-table-column>
<b-table-column field="ticket" label="Ticket" centered v-slot="props">
<b-button
type="is-info"
v-if="props.row.folio"
@click="verTicket(props.row)"
>Ver ticket</b-button
>
<b-table-column
field="inscripcion"
label="Inscripción"
centered
v-slot="props"
>
<b-button
type="is-success"
v-if="!props.row.folio && !props.row.monto && !props.row.fechaTicket"
@@ -71,6 +69,29 @@
>Validar</b-button
>
</b-table-column>
<b-table-column centered v-slot="props">
<b-button
type="is-danger"
@click="
inscripcion(props.row.idInscripcion),
imprimirWarning(
'¿Estas seguro de querer cancelar esta inscripción ?',
cancelarInscripcion
)
"
>Cancelar</b-button
>
</b-table-column>
<b-table-column centered v-slot="props">
<b-button
type="is-info"
v-if="props.row.folio"
@click="verTicket(props.row)"
>Ver ticket</b-button
>
</b-table-column>
</b-table>
</div>
</template>
@@ -92,6 +113,7 @@ export default {
perPage: 5,
data: {},
dataIns: {},
validacion: '2',
numeroCuenta: '',
}
@@ -113,15 +135,16 @@ export default {
})
},
verTicket(value) {
this.$router.push({
path: '/admin/ticket/',
query: {
folio: value.folio,
monto: value.monto,
fecha: value.fechaTicket,
},
})
this.$router.push('/admin/ticket')
localStorage.setItem('monto', value.monto)
localStorage.setItem('folio', value.folio)
localStorage.setItem('fechaTicket', value.fechaTicket)
localStorage.setItem('noCuenta', value.Usuario.numeroCuenta)
localStorage.setItem('inscripcion', value.idInscripcion)
},
usuario(noCuenta, usuario) {
this.data.numeroCuenta = noCuenta
this.data.idUsuario = usuario
},
validarSinTicket() {
this.updateIsLoading(true)
@@ -140,11 +163,27 @@ export default {
this.updateIsLoading(false)
})
},
usuario(noCuenta, usuario) {
this.data.numeroCuenta = noCuenta
this.data.idUsuario = usuario
inscripcion(inscripcion) {
this.dataIns.idInscripcion = inscripcion
},
cancelarInscripcion() {
this.updateIsLoading(true)
axios
.put(
`${process.env.api}/admin/cancelar_inscripcion`,
this.dataIns,
this.token
)
.then((res) => {
this.imprimirMensaje(res.data.message)
this.updateIsLoading(false)
this.todasInscripciones()
})
.catch((err) => {
this.imprimirError(err.response.data)
this.updateIsLoading(false)
})
},
imprimirError(err = {}, title = '¡Hubo un error!', onConfirm = () => {}) {
this.$buefy.dialog.alert({
ariaRole: 'alertdialog',
+61 -43
View File
@@ -3,8 +3,6 @@
<div class="column is-one-third py-5">
<figure class="containerImg">
<b-image class="zoom" :src="urlTicket" alt="Imagen del ticket">
<b-loading :is-full-page="isFullPage" v-model="isLoading">
</b-loading>
</b-image>
</figure>
</div>
@@ -14,42 +12,36 @@
<div class="column mt-6">
<p>
Administrador por favor revisa que todos los datos sean correctos, en
caso de ser así valida el ticket.
</p>
<p>
Recuerda que al validar el ticket también se confirma la inscripción del
alumno.
caso de ser así valida el ticket y la inscripción.
</p>
<div class="box">
<p><b>Número de cuenta</b> {{ numeroCuenta }}</p>
<p><b>Folio:</b> {{ $route.query.folio }}</p>
<p><b>Cantidad: </b> {{ $route.query.monto }}</p>
<p><b>Fecha del ticket:</b> {{ fecha($route.query.fecha) }}</p>
</div>
<IsCancelacion :folio="folio" :token="token" />
<DatosTicket
:imprimirMensaje="imprimirMensaje"
:imprimirError="imprimirError"
:imprimirWarning="imprimirWarning"
:updateIsLoading="updateIsLoading"
:folio="folio"
:monto="monto"
:fechaTicket="fechaTicket"
:token="token"
@actualizarFolio="actualizarFolio"
/>
<div class="has-text-centered pb-5">
<b-button
type="is-success"
@click="
validacion(1),
imprimirWarning(
'¿ Estas seguro que los datos son correctos y quieres validar este ticket ?',
validar
)
imprimirWarning(
'¿ Estas seguro que los datos son correctos y quieres validar este ticket ?',
validar
)
"
>Validar</b-button
>
<b-button
type="is-danger"
@click="
validacion(0),
imprimirWarning(
'¿ Estas seguro que los datos son incorrectos y quieres declinar el ticket ?',
validar
)
"
>Denegar</b-button
>
<b-button label="Declinar" type="is-danger" @click="declinarTicket()" />
<b-button type="is-info" @click="regresar()">Regresar</b-button>
</div>
</div>
@@ -58,9 +50,16 @@
<script>
import axios from 'axios'
import moment from 'moment'
import DatosTicket from './datosTicket.vue'
import ModalCancelar from './modalCancelar.vue'
import IsCancelacion from './isCancelacion.vue'
export default {
components: {
DatosTicket,
ModalCancelar,
IsCancelacion,
},
props: {
imprimirMensaje: { type: Function, require: true },
imprimirError: { type: Function, require: true },
@@ -71,10 +70,13 @@ export default {
return {
token: '',
isImageModalActive: false,
isLoading: true,
fechaTicket: new Date(localStorage.getItem('fechaTicket')),
folio: localStorage.getItem('folio'),
monto: localStorage.getItem('monto'),
isFullPage: true,
urlTicket: '',
validado: null,
numeroCuenta: localStorage.getItem('noCuenta'),
@@ -82,24 +84,22 @@ export default {
},
methods: {
traerTicket() {
this.updateIsLoading(true)
axios
.get(`${process.env.api}/admin/ticket?folio=${this.$route.query.folio}`)
.get(`${process.env.api}/admin/ticket?folio=${this.folio}`)
.then((res) => {
this.isLoading = false
this.updateIsLoading(false)
this.urlTicket = res.config.url
})
.catch((err) => {
this.isLoading = false
this.updateIsLoading(false)
this.imprimirError(err.response.data)
})
},
validacion(value) {
this.validado = value
},
validar() {
const data = {
folio: this.$route.query.folio,
validacion: this.validado,
folio: this.folio,
validacion: 1,
}
this.updateIsLoading(true)
@@ -117,11 +117,29 @@ export default {
this.$router.go(-1)
})
},
fecha(fecha) {
return moment(fecha).format('L')
declinarTicket() {
const modalProps = {
token: this.token,
folio: this.folio,
imprimirError: this.imprimirError,
imprimirMensaje: this.imprimirMensaje,
updateIsLoading: this.updateIsLoading,
}
this.$buefy.modal.open({
props: modalProps,
parent: this,
component: ModalCancelar,
hasModalCard: true,
customClass: 'custom-class custom-class-2',
trapFocus: true,
})
},
actualizarFolio() {
this.folio = localStorage.getItem('folio')
},
regresar() {
this.$router.go(-1)
this.$router.push('/admin')
},
},
created() {
+20
View File
@@ -0,0 +1,20 @@
<template>
<div>
<b-table :data="data" :columns="columns"></b-table>
</div>
</template>
<script>
export default {
props: { data: { type: Array, required: true } },
data() {
return {
columns: [
{ field: 'color', label: 'Color' },
{ field: 'tamaño', label: 'Tamaño' },
{ field: 'costo', label: 'Costo' },
],
}
},
}
</script>
+1 -2
View File
@@ -1,10 +1,9 @@
<template>
<section>
<!-- <div class="container is-flex is-justify-content-flex-end"> -->
<div
class="container is-flex is-justify-content-space-between is-align-items-center"
>
<h2 class="m-2 has-text-white"><b>Hola,</b> {{ usuario }}</h2>
<h2 class="m-2 has-text-white">{{ usuario }}</h2>
<b-button
type="is-danger"
+45 -24
View File
@@ -12,13 +12,35 @@
CEDETEC
</p>
<div class="block">
<b-radio v-model="idArea" v-if="area1" native-value="1"
><b-icon icon="microsoft-windows" size="is-small"></b-icon>
Windows</b-radio
>
<b-radio v-model="idArea" v-if="areaMac && area2" native-value="2"
><b-icon icon="apple" size="is-small"></b-icon> Mac</b-radio
>
<b-radio v-model="idArea" v-if="area3" native-value="3"
><b-icon icon="linux" size="is-small"></b-icon> Linux</b-radio
>
</div>
<p class="pb-5">
Por favor captura los siguientes datos que se encuentran en tu ticket que
se te entrego en cajas
</p>
<div class="columns">
<b-image
class="column mx-2"
:src="require('@/assets/ticket.jpeg')"
alt="Ticket Acatlán"
ratio="16by10"
></b-image>
<div class="column pr-5">
<b-field label="Ticket">
<b-input type="text" maxlength="10" v-model="folio"></b-input>
</b-field>
<b-field label="Monto">
<b-input v-model="monto" type="number" maxlength="5"></b-input>
<b-input v-model="monto" type="number"></b-input>
</b-field>
<b-field label="Fecha">
<b-datepicker
@@ -30,6 +52,9 @@
>
</b-datepicker>
</b-field>
<b-field label="Ticket">
<b-input maxlength="6" v-model="folio"></b-input>
</b-field>
<b-field>
<b-upload
@@ -65,13 +90,6 @@
</span>
</div>
</div>
<b-image
class="column mx-2"
:src="require('@/assets/ticket.jpeg')"
alt="Ticket Acatlán"
ratio="16by10"
></b-image>
</div>
<b-field>
@@ -86,7 +104,7 @@
:disabled="!(idArea !== '' && terminos)"
@click="
imprimirWarning(
'¿Los datos para la inscripción al servicio de mesa para dispositivos móviles personales son correctos?',
'¿Los datos para la inscripción a CEDETEC son correctos?',
inscribir
)
"
@@ -113,15 +131,14 @@ export default {
data() {
const today = new Date()
return {
idArea: '',
areaMac: false,
area1: true,
area2: true,
area3: true,
area4: true,
error: false,
idArea: '4',
folio: '',
monto: '',
fechaTicket: null,
@@ -129,6 +146,8 @@ export default {
terminos: false,
idCarrera: '',
usuario: '',
generacion: 0,
token: '',
minDate: this.diaMin(today),
@@ -150,17 +169,14 @@ export default {
}
}
if (
this.monto &&
this.monto <= 20 &&
this.inscripcionesUsuario.length > 0
)
if (this.monto && this.monto < 20 && this.inscripcionesUsuario.length > 0)
this.error = true
else this.error = false
let formData = new FormData()
if (this.error === false) {
formData.append('idUsuario', this.idUsuario)
formData.append('numeroCuenta', this.usuario)
formData.append('folio', this.folio)
if (this.monto === '') this.monto = 0
formData.append('monto', this.monto)
@@ -176,8 +192,8 @@ export default {
this.token
)
.then((res) => {
this.$emit('pedirInscripciones')
this.updateIsLoading(false)
this.$emit('pedirInscripciones')
this.imprimirMensaje(res.data.message)
this.clear()
})
@@ -192,14 +208,16 @@ export default {
}
},
areaPermitida() {
if (this.idCarrera === 11122 || this.idCarrera === 20226)
if (
(this.idCarrera === 20425 || this.idCarrera === 20226) &&
this.generacion < 2022
)
this.areaMac = true
for (let i = 0; i < this.inscripcionesUsuario.length; i++) {
if (this.inscripcionesUsuario[i].idArea === 1) this.area1 = false
if (this.inscripcionesUsuario[i].idArea === 2) this.area2 = false
if (this.inscripcionesUsuario[i].idArea === 3) this.area3 = false
if (this.inscripcionesUsuario[i].idArea === 4) this.area4 = false
}
},
diaMin(today) {
@@ -213,8 +231,7 @@ export default {
this.idArea = ''
this.folio = ''
this.monto = ''
this.fechaTicket = ''
this.terminos = false
;(this.fechaTicket = null), (this.terminos = false)
this.dropFiles = []
},
deleteDropFile(index) {
@@ -232,6 +249,7 @@ export default {
watch: {
inscripcionesUsuario(value) {
if (value.length > 0) this.idArea = ''
this.areaPermitida()
},
dropFiles(value) {
@@ -239,7 +257,10 @@ export default {
},
},
created() {
this.usuario = localStorage.getItem('usuario')
this.generacion = localStorage.getItem('generacion')
this.getLocalhostInfo()
this.areaPermitida()
},
}
</script>
+1 -1
View File
@@ -43,7 +43,7 @@ export default {
methods: {
icono(idArea) {
if (idArea === 1) return 'microsoft-windows'
if (idArea === 2) return 'mac'
if (idArea === 2) return 'apple'
return idArea === 3 ? 'linux' : 'laptop'
},
confirmacion(status) {
+1 -1
View File
@@ -9,7 +9,7 @@
<p class="title is-5">
Selecciona el periodo del que quieres obtener un reporte.
</p>
<Reporte :updateIsLoading="updateIsLoading" :tipo="'reporte'" />
<Reporte :updateIsLoading="updateIsLoading" />
</b-tab-item>
</b-tabs>
</div>
+10 -2
View File
@@ -6,6 +6,8 @@
:imprimirWarning="imprimirWarning"
:updateIsLoading="updateIsLoading"
/>
<b-loading :is-full-page="true" v-model="isLoading" :can-cancel="false" />
</div>
</template>
@@ -17,7 +19,9 @@ export default {
Ticket,
},
data() {
return {}
return {
isLoading: false,
}
},
methods: {
updateIsLoading(booleanValue) {
@@ -41,7 +45,11 @@ export default {
this.$router.push('/')
}
},
imprimirMensaje(message, title = '¡Felicidades!', onConfirm = () => {}) {
imprimirMensaje(
message,
title = '¡Acción confirmada!',
onConfirm = () => {}
) {
this.$buefy.dialog.alert({
ariaRole: 'alertdialog',
ariaModal: true,
+283 -105
View File
@@ -1,126 +1,298 @@
<template>
<div class="container py-2 px-2">
<h2 class="title is-3">
Indicaciones sobre el servicio de mesas para dispositivos móviles
</h2>
<ul>
<li class="pb-2">
1. Servicio solo disponible para estudiantes de licenciatura con
inscripción vigente al momento de solicitarlo.
</li>
<li class="pb-2">
2. Este servicio requiere de una aportación voluntaria que podrás
realizar en cajas (ventanillas de la planta baja del edificio A4).
</li>
<li class="pb-2">
3. La solicitud de este servicio te otorga 60 hrs. de uso del espacio,
en caso de acabarse, podrás adquirir más tiempo realizando nuevamente
una aportación voluntaria. Las horas son intransferibles y de uso
exclusivamente personal.
</li>
<li class="pb-2">
4. Este servicio y su inscripción válida, es para hacer uso de una mesa
a la vez dentro del CEDETEC, en el área indicada en el Departamento de Servicios
de Cómputo (DSC), donde podrás
trabajar con tus dispositivos móviles personales y solo para realizar
actividades académicas.
</li>
<li class="pb-2">
5. Los horarios de servicio son de lunes a viernes de 9:00 a 19:45 hrs
</li>
<li class="pb-2">
6. El servicio se realiza de la siguiente manera:
<ul class="pl-5">
<li class="pb-2">
a. Ingresar al Departamento de Servicios de para verificar la
disponibilidad de espacio que se muestra en la pantalla que se
encuentra en la entrada
</li>
<li class="pb-2">
b. Si existe disponibilidad, dirigirse al Departamento de Servicios
de Cómputo (DSC), en la planta baja del CEDETEC.
</li>
<li class="pb-2">
c. Cumplir con el protocolo sanitario de desinfección de manos y uso
de cubrebocas antes de utilizar los equipos para la solicitud del
servicio.
</li>
<li class="pb-2">
d. Indicar en el sistema
<ul class="pl-5">
<li class="pb-2">l. Número de cuenta</li>
<li class="pb-2">ll. Elegir mesa para laptop</li>
<li class="pb-2">
lll. Elegir tiempo (15, 30, 45, 60, 90, 120 min)
<div class="container px-2">
<section>
<p class="title is-3 has-text-centered color">
Los servicios que ofrece el Centro de Desarrollo Tecnológico (CeDeTec)
son:
</p>
<ul class="pb-5">
<li class="pl-3">a) Préstamo de equipo de cómputo</li>
<li class="pl-3">b) Préstamo de mesas para dispositivos móviles</li>
<li class="pl-3">c) Impresión</li>
<li class="pl-3">d) Ploteo</li>
<li class="pl-3">e) Escaneo</li>
</ul>
<b-collapse
class="card"
animation="slide"
:open="isOpen == 1"
@open="isOpen = index1"
:aria-id="'contentIdForA11y5-' + index1"
>
<template #trigger="props">
<div
class="card-header"
role="button"
:aria-controls="'contentIdForA11y5-' + index1"
:aria-expanded="props.open"
>
<p class="card-header-title">
Servicios que requieren inscripción y confirmación
</p>
<a class="card-header-icon">
<b-icon :icon="props.open ? 'menu-down' : 'menu-up'"> </b-icon>
</a>
</div>
</template>
<div class="card-content">
<div class="content">
<ol>
<li class="pl-3">
<b>Préstamo de equipos de cómputo:</b> Con Sistemas Operativos
Windows, MacOS, Linux y el software sugerido por la
licenciatura.
</li>
<li class="pb-2">
lV. El sistema te indicará la mesa a utilizar
<li class="pl-3">
<b>Mesas para trabajar con dispositivos móviles:</b> Los
dispositivos deberán estar configurados a la red de pcpuma.
</li>
<li class="pb-2">
V. En caso de terminar tu tiempo y deseas renovar, tendrás que
ir solicitarlo nuevamente en los equipos de solicitud del
servicio para asignarte nuevamente tiempo.
</ol>
<p class="pt-5">
<b
>Para hacer uso de estos servicios es necesario hacer los
siguientes pasos:</b
>
</p>
<p class="pt-5"><b>Paso 1: Registro</b></p>
<p>
Solo podran ingresar alumnos vigentes de licenciatura al sitio
<a href="https://inscripcion-cedetec.acatlan.unam.mx/">
https://inscripcion-cedetec.acatlan.unam.mx/</a
>
con su numero de cuenta y NIP de escolares para:
</p>
<ul>
<li class="pl-3">
Elegir área (PCNET, Macintosh o Linux) según la carrera y el
semestre
</li>
<li class="pl-3">
Agregar datos (monto, fecha, número de ticket de la aportación
voluntaria que hiciste en cajas).
</li>
</ul>
</li>
</ul>
</li>
<li class="pb-2">
7. El servicio está sujeto a lineamientos de uso que todos los usuarios
deben conocer y seguir, que son:
<ul class="pl-5">
<li class="pb-2">a. Traer su propio cargador</li>
<li class="pb-2">b. No permite mover mobiliario o multicontactos</li>
<li class="pb-2">
c. La red de PCPUMA del equipo personal deberá estar previamente
configurada
</li>
<li class="pb-2">d. Solo podrá estar una persona por mesa</li>
<li class="pb-2">e. Deberás portar todo el tiempo el cubrebocas</li>
<li class="pb-2">
f. No podrás ingresar e ingerir alimentos o bebidas
</li>
<li class="pb-2">g. Deberás permanecer en orden y en silencio</li>
<li class="pb-2">
h. El espacio deberá estar limpio al terminar el tiempo asignado
</li>
<li class="pb-2">
i. Las mesas no podrán utilizarse para actividades de recortes,
armado, pegado de piezas o apuntes
</li>
</ul>
</li>
</ul>
<p class="pt-5"><b>Paso 2 Confirmación</b></p>
<p class="py-4">
Nota: En caso de no respetar estos lineamientos básicos será suspendida su
inscripción a este servicio
</p>
<p>
Es indispensable ingresar al sitio
<a
href=" https://kalinga.acatlan.unam.mx/cedetec/"
target="_blanc"
>
https://kalinga.acatlan.unam.mx/cedetec/
</a>
para conocer:
</p>
<b-field>
<b-checkbox v-model="lineamientos">
He leído, entiendo y estoy de acuerdo con el tipo de servicio y
lineamientos de uso.
</b-checkbox>
</b-field>
<ul>
<li class="pl-3">La forma de usar los servicios</li>
<li class="pl-3">Lineamientos y sanciones</li>
</ul>
<div class="has-text-centered pb-5">
<b-button
:disabled="!lineamientos"
@click="pushRegistro"
type="is-success"
>Aceptar</b-button
<p class="pt-5">
Después de haber visto los videos y leído los lineamientos y
sanciones, tendrás que aceptar que has leído y entendido los
puntos anteriores al ingresar tu número de cuenta y correo
institucional(pcpuma).
</p>
<p class="pt-5"><b>Notas:</b></p>
<ul class="pt-5">
<li class="pl-3">Cupo limitado</li>
<li class="pl-3">
El aforo dependerá del color del semáforo de riesgo epidémico.
</li>
<li class="pl-3">
Solo podrás hacer uso de los servicios si realizas la
confirmación
</li>
<li class="pl-3">
La inscripción te habilita 60 hrs. para ambos servicios, que
podrás hacer uso de lunes a viernes en el horario de 9:00 a
19:45 En caso de terminarse las horas asignadas, podrás
renovarse realizando una aportación voluntaria e ingresar al
sitio:
<a href="https://inscripcion-cedetec.acatlan.unam.mx"
>https://inscripcion-cedetec.acatlan.unam.mx</a
>
</li>
</ul>
</div>
</div>
</b-collapse>
<b-collapse
class="card"
animation="slide"
:open="isOpen == 1"
@open="isOpen = index1"
:aria-id="'contentIdForA11y5-' + index1"
>
<template #trigger="props">
<div
class="card-header"
role="button"
:aria-controls="'contentIdForA11y5-' + index1"
:aria-expanded="props.open"
>
<p class="card-header-title">Ingreso al CeDeTec:</p>
<a class="card-header-icon">
<b-icon :icon="props.open ? 'menu-down' : 'menu-up'"> </b-icon>
</a>
</div>
</template>
<div class="card-content">
<div class="content">
<ul>
<li class="pl-3">
Revisar la <b>disponibilidad</b> de equipos de cómputo y mesas
para dispositivos,
<b>en la pantalla ubicada en la entrada principal.</b> Es
importante este punto para evitar aglomeraciones y respetar el
aforo.
</li>
<li class="pl-3">
Dirigirse a los equipos de asignación de tiempo para hacer la
solicitud de equipo o mesa para dispositivos móviles.
</li>
</ul>
</div>
</div>
</b-collapse>
<b-collapse
class="card"
animation="slide"
:open="isOpen == 1"
@open="isOpen = index1"
:aria-id="'contentIdForA11y5-' + index1"
>
<template #trigger="props">
<div
class="card-header"
role="button"
:aria-controls="'contentIdForA11y5-' + index1"
:aria-expanded="props.open"
>
<p class="card-header-title">
Servicios que NO requieren inscripción y confirmación
</p>
<a class="card-header-icon">
<b-icon :icon="props.open ? 'menu-down' : 'menu-up'"> </b-icon>
</a>
</div>
</template>
<div class="card-content">
<div class="content">
<ul>
<li class="pl-3">
Los servicios de impresión, escaneo y ploteo
<b>requieren de un pago que se realiza en cajas</b> (planta baja
edificio A4).
</li>
<p class="pl-3 pt-4">
Al realizar el pago en cajas indicar pago a CEDETEC y monto.
</p>
<p class="pl-3">
Solo se permiten ticket cuyo concepto sea CEDETEC.
</p>
<p class="pl-3">
El ticket debe ser del mes en que se realiza la impresión.
</p>
</ul>
<p class="subtitle is-2 pt-5">Impresión</p>
<p>De acuerdo al tamaño y color se tienen los siguientes costos</p>
<Tabla :data="dataImpresion" />
<p class="subtitle is-2">Ploteo</p>
<p>De acuerdo al tamaño y color se tienen los siguientes costos</p>
<Tabla :data="dataPloteo" />
<p class="subtitle is-2">Escaneo:</p>
<p>Precio por tamaño:</p>
<ul class="pb-5">
<li class="pl-3">Carta y oficio <b>$ 1.00</b></li>
<li class="pl-3">Doble Carta <b>$ 2.00</b></li>
<li class="pl-3">60 x 45 cms. ó 90 x 60 cms. <b>$ 5.00</b></li>
<li class="pl-3">Trae USB</li>
</ul>
</div>
</div>
</b-collapse>
</section>
<p class="subtitle is-4 has-text-centered pt-5">
¿Desear continuar con la inscripción ?
</p>
<div class="has-text-centered pb-5">
<b-button type="is-info" @click="pushRegistro">Continuar</b-button>
</div>
</div>
</template>
<script>
import Tabla from '@/components/informacion/tablaCostos.vue'
export default {
components: {
Tabla,
},
data() {
return {
lineamientos: false,
isOpen: 0,
index1: 0,
index2: 1,
index3: 2,
dataImpresion: [
{
color: 'Negro',
tamaño: 'carta/oficio',
costo: '$ 1.00 por cada página',
},
{
color: 'Negro',
tamaño: 'doble carta',
costo: '$ 2.00 por cada página',
},
{
color: 'Color',
tamaño: 'diferentes tamaños',
costo:
'1) El usuario presenta el archivo en el área de impresión (planta baja del CeDeTec) para que el operador le indique el costo <br/> 2) Ir cajas a pagar <br/> 3) Regresar a CeDeTec para entregar ticket y hacer la impresión',
},
],
dataPloteo: [
{
color: 'Negro',
tamaño: '60x45 cm',
costo: '$14.00',
},
{
color: 'Negro',
tamaño: '90x60 cm',
costo: '$16.50',
},
{
color: 'Color',
tamaño: '60x45 cm o 90x60 cm',
costo:
'1) El usuario presenta el archivo en el área de impresión (planta baja del CeDeTec) para que el operador le indique el costo. <br /> 2) Ir cajas a pagar <br/> 3) Regresar a CeDeTec para entregar ticket y hacer la impresión',
},
],
}
},
methods: {
@@ -130,3 +302,9 @@ export default {
},
}
</script>
<style scoped>
.color {
color: #1d3d6f;
}
</style>
+3
View File
@@ -21,6 +21,8 @@
:idUsuario="idUsuario"
@pedirInscripciones="pedirInscripciones"
/>
<b-loading :is-full-page="true" v-model="isLoading" :can-cancel="false" />
</div>
</template>
@@ -41,6 +43,7 @@ export default {
return {
idUsuario: '',
inscripcionesUsuario: [],
isLoading: false,
}
},
methods: {