0
0
Fork 0
This commit is contained in:
Alex Moreno 2024-06-25 13:33:23 +02:00
commit 10a663b400
5 changed files with 156 additions and 4 deletions

View File

@ -845,7 +845,7 @@ worker:
calendar: Calendar calendar: Calendar
timeControl: Time control timeControl: Time control
locker: Locker locker: Locker
formation: Formation
list: list:
name: Name name: Name
email: Email email: Email
@ -915,6 +915,16 @@ worker:
payMethods: Pay method payMethods: Pay method
iban: IBAN iban: IBAN
bankEntity: Swift / BIC bankEntity: Swift / BIC
formation:
tableVisibleColumns:
course: Curso
startDate: Fecha Inicio
endDate: Fecha Fin
center: Centro Formación
invoice: Factura
amount: Importe
remark: Bonficado
hasDiploma: Diploma
imageNotFound: Image not found imageNotFound: Image not found
wagon: wagon:
pageTitles: pageTitles:

View File

@ -841,6 +841,7 @@ worker:
calendar: Calendario calendar: Calendario
timeControl: Control de horario timeControl: Control de horario
locker: Taquilla locker: Taquilla
formation: Formación
list: list:
name: Nombre name: Nombre
email: Email email: Email
@ -901,6 +902,16 @@ worker:
payMethods: Método de pago payMethods: Método de pago
iban: IBAN iban: IBAN
bankEntity: Swift / BIC bankEntity: Swift / BIC
formation:
tableVisibleColumns:
course: Curso
startDate: Fecha Inicio
endDate: Fecha Fin
center: Centro Formación
invoice: Factura
amount: Importe
remark: Bonficado
hasDiploma: Diploma
imageNotFound: No se ha encontrado la imagen imageNotFound: No se ha encontrado la imagen
wagon: wagon:
pageTitles: pageTitles:

View File

@ -13,7 +13,7 @@ import useNotify from 'src/composables/useNotify.js';
import { toDate } from 'src/filters'; import { toDate } from 'src/filters';
import { downloadFile } from 'src/composables/downloadFile'; import { downloadFile } from 'src/composables/downloadFile';
const route = useRoute(); const {{id}} = useRoute();
const quasar = useQuasar(); const quasar = useQuasar();
const router = useRouter(); const router = useRouter();
const { t } = useI18n(); const { t } = useI18n();
@ -29,7 +29,7 @@ const thermographFilter = {
fields: ['id', 'name'], fields: ['id', 'name'],
}, },
}, },
where: { travelFk: route.params.id }, where: { travelFk: id },
order: ['created'], order: ['created'],
}; };
@ -137,7 +137,7 @@ const removeThermograph = async (id) => {
data-key="TravelThermographs" data-key="TravelThermographs"
url="TravelThermographs" url="TravelThermographs"
:filter="thermographFilter" :filter="thermographFilter"
:params="{ travelFk: route.params.id }" :params="{ travelFk: id }"
auto-load auto-load
> >
<template #body="{ rows }"> <template #body="{ rows }">

View File

@ -0,0 +1,121 @@
<script setup>
import { ref, computed } from 'vue';
import { useI18n } from 'vue-i18n';
import { useRoute } from 'vue-router';
import VnTable from 'components/VnTable/VnTable.vue';
const tableRef = ref();
const { t } = useI18n();
const route = useRoute();
const entityId = computed(() => route.params.id);
const courseFilter = {
include: [
{
relation: 'trainingCourseType',
scope: {
fields: ['id', 'name'],
},
},
{
relation: 'trainingCenter',
scope: {
fields: ['id', 'name'],
},
},
],
};
const columns = computed(() => [
{
align: 'left',
name: 'trainingCourseTypeFk',
label: t('worker.formation.tableVisibleColumns.course'),
isTitle: true,
create: true,
component: 'select',
attrs: {
url: 'TrainingCourseTypes',
fields: ['id', 'name'],
},
},
{
align: 'left',
name: 'started',
label: t('worker.formation.tableVisibleColumns.startDate'),
component: 'date',
field: 'started',
create: true,
cardVisible: true,
},
{
align: 'left',
name: 'ended',
label: t('worker.formation.tableVisibleColumns.endDate'),
component: 'date',
field: 'ended',
create: true,
},
{
align: 'left',
name: 'centerFk',
label: t('worker.formation.tableVisibleColumns.center'),
create: true,
component: 'select',
attrs: {
url: 'TrainingCenters',
fields: ['id', 'name'],
},
},
{
align: 'left',
name: 'invoice',
label: t('worker.formation.tableVisibleColumns.invoice'),
component: 'input',
field: 'invoice',
},
{
align: 'left',
name: 'amount',
label: t('worker.formation.tableVisibleColumns.amount'),
component: 'input',
field: 'amount',
create: true,
},
{
align: 'left',
name: 'remark',
label: t('worker.formation.tableVisibleColumns.remark'),
component: 'checkbox',
create: true,
},
{
align: 'left',
name: 'hasDiploma',
label: t('worker.formation.tableVisibleColumns.hasDiploma'),
create: true,
},
]);
</script>
<template>
<VnTable
ref="tableRef"
data-key="WorkerFormation"
:url="`Workers/${entityId}/trainingCourse`"
:url-create="`Workers/${entityId}/trainingCourse`"
save-url="TrainingCourses/crud"
:filter="courseFilter"
:create="{
urlCreate: 'trainingCourses',
title: 'Create trainingCourse',
onDataSaved: () => tableRef.reload(),
formInitialData: {
workerFk: entityId,
},
}"
order="id DESC"
:columns="columns"
default-mode="table"
auto-load
:right-search="false"
:is-editable="true"
:use-model="true"
/>
</template>

View File

@ -23,6 +23,7 @@ export default {
'WorkerDms', 'WorkerDms',
'WorkerTimeControl', 'WorkerTimeControl',
'WorkerLocker', 'WorkerLocker',
'WorkerFormation',
], ],
}, },
children: [ children: [
@ -176,6 +177,15 @@ export default {
}, },
component: () => import('src/pages/Worker/Card/WorkerLocker.vue'), component: () => import('src/pages/Worker/Card/WorkerLocker.vue'),
}, },
{
name: 'WorkerFormation',
path: 'formation',
meta: {
title: 'formation',
icon: 'clinical_notes',
},
component: () => import('src/pages/Worker/Card/WorkerFormation.vue'),
},
], ],
}, },
], ],