mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-19 16:02:15 +00:00
- fix error with Event 'multiActionPrintHonorarvertrag'
- Naming components Vertragsverwaltung, MitarbeiterHeader, CoreListMitarbeiter - link to Vorgesetzter, show Vorgesetzter without postTitel - Foto: if foto_sperre: show foto with lock
This commit is contained in:
@@ -37,6 +37,7 @@ class Config extends FHCAPI_Controller
|
||||
public function printDocument()
|
||||
{
|
||||
$params = [];
|
||||
$menu = [];
|
||||
|
||||
Events::trigger(
|
||||
'multiActionPrintHonorarvertrag',
|
||||
@@ -47,7 +48,15 @@ class Config extends FHCAPI_Controller
|
||||
$params
|
||||
);
|
||||
|
||||
//TODO(Manu) check warning
|
||||
$this->terminateWithSuccess($menu[0]);
|
||||
if (is_array($menu) && isset($menu[0]))
|
||||
{
|
||||
$this->terminateWithSuccess($menu[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
// $this->terminateWithError('Error with Event 'multiActionPrintHonorarvertrag');
|
||||
$this->terminateWithSuccess();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,12 +22,6 @@ export default {
|
||||
url: 'api/frontend/v1/vertraege/Vertraege/getAllVertraege/' + person_id
|
||||
};
|
||||
},
|
||||
/* getAllContractsNotAssigned2(person_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/vertraege/Vertraege/getAllContractsNotAssigned/' + person_id
|
||||
};
|
||||
},*/
|
||||
getAllContractsNotAssigned(person_id) {
|
||||
return {
|
||||
method: 'get',
|
||||
@@ -134,25 +128,32 @@ export default {
|
||||
},
|
||||
getMitarbeiter(){
|
||||
return {
|
||||
method: 'post',
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/vertraege/vertraege/getMitarbeiter/',
|
||||
};
|
||||
//return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/getMitarbeiter/');
|
||||
},
|
||||
getHeader(person_id){
|
||||
return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/getHeader/' + person_id);
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/vertraege/vertraege/getHeader/' + person_id,
|
||||
};
|
||||
},
|
||||
getPersonAbteilung(person_id){
|
||||
return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/getPersonAbteilung/' + person_id);
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/vertraege/vertraege/getPersonAbteilung/' + person_id,
|
||||
};
|
||||
},
|
||||
getLeitungOrg(oekurzbz){
|
||||
return this.$fhcApi.post('api/frontend/v1/vertraege/vertraege/getLeitungOrg/' + oekurzbz);
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/vertraege/vertraege/getLeitungOrg/' + oekurzbz,
|
||||
};
|
||||
},
|
||||
getMitarbeiterUid(person_id){
|
||||
return {
|
||||
method: 'get',
|
||||
url: 'api/frontend/v1/vertraege/vertraege/getMitarbeiterUid/' + person_id
|
||||
};
|
||||
// return this.$fhcApi.get('api/frontend/v1/vertraege/vertraege/getMitarbeiterUid/' + person_id);
|
||||
},
|
||||
};
|
||||
@@ -1,9 +1,21 @@
|
||||
import ApiCoreVertraege from "../../api/factory/vertraege/vertraege.js";
|
||||
|
||||
export default {
|
||||
name: 'DetailHeader',
|
||||
inject: {
|
||||
domain: {
|
||||
from: 'configDomain',
|
||||
default: 'technikum-wien.at'
|
||||
},
|
||||
},
|
||||
props: {
|
||||
headerData: {
|
||||
type: Object,
|
||||
required: true
|
||||
required: false
|
||||
},
|
||||
person_id: {
|
||||
type: Number,
|
||||
required: false
|
||||
},
|
||||
typeHeader: {
|
||||
type: String,
|
||||
@@ -20,87 +32,177 @@ export default {
|
||||
appRoot() {
|
||||
return FHC_JS_DATA_STORAGE_OBJECT.app_root;
|
||||
},
|
||||
validatedHeaderData() {
|
||||
if (this.typeHeader === 'student') return this.headerData;
|
||||
if (this.typeHeader === 'mitarbeiter') return this.person_id;
|
||||
return null;
|
||||
}
|
||||
},
|
||||
created(){
|
||||
if(this.person_id) {
|
||||
this.getHeader(this.person_id);
|
||||
|
||||
this.loadDepartmentData(this.person_id)
|
||||
.then(() => {
|
||||
// Call getLeitungOrg only after departmentData is loaded
|
||||
this.getLeitungOrg(this.departmentData.oe_kurzbz);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("Error loading department data:", error);
|
||||
});
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
person_id: {
|
||||
handler(newVal) {
|
||||
if (newVal) {
|
||||
this.getHeader(this.person_id);
|
||||
this.loadDepartmentData(this.person_id).
|
||||
then(() => {
|
||||
this.getLeitungOrg(this.departmentData.oe_kurzbz);
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
data(){
|
||||
return{};
|
||||
return{
|
||||
headerDataMa: {},
|
||||
departmentData: {},
|
||||
leitungData: {},
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
//TODO(Manu) finish for Vertragsverwaltung
|
||||
getVorgesetzer(){},
|
||||
getHeader(person_id) {
|
||||
return this.$api
|
||||
.call(ApiCoreVertraege.getHeader(person_id))
|
||||
.then(result => {
|
||||
this.headerDataMa = result.data;
|
||||
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
loadDepartmentData(person_id) {
|
||||
return this.$api
|
||||
.call(ApiCoreVertraege.getPersonAbteilung(person_id))
|
||||
.then(result => {
|
||||
this.departmentData = result.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
getLeitungOrg(oekurzbz){
|
||||
return this.$api
|
||||
.call(ApiCoreVertraege.getLeitungOrg(oekurzbz))
|
||||
.then(result => {
|
||||
this.leitungData = result.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
redirectToLeitung(){
|
||||
this.$emit('redirectToLeitung', {
|
||||
person_id: this.leitungData.person_id});
|
||||
}
|
||||
},
|
||||
template: `
|
||||
<div class="core-header d-flex justify-content-start align-items-center w-100 overflow-auto pb-3 gap-3" style="max-height:9rem; min-width: 37.5rem;">
|
||||
<template v-if="typeHeader==='student'">
|
||||
<div
|
||||
v-for="person in headerData"
|
||||
:key="person.person_id"
|
||||
class="d-flex flex-column align-items-center h-100"
|
||||
class="position-relative d-inline-block"
|
||||
>
|
||||
<img
|
||||
class="d-block h-100 rounded"
|
||||
alt="Profilbild"
|
||||
:src="'data:image/jpeg;base64,' + person.foto"
|
||||
/>
|
||||
|
||||
<div
|
||||
v-for="person in headerData"
|
||||
:key="person.person_id"
|
||||
class="d-flex flex-column align-items-center h-100"
|
||||
class="position-relative d-inline-block"
|
||||
>
|
||||
<img
|
||||
class="d-block h-100 rounded"
|
||||
alt="Profilbild"
|
||||
:src="'data:image/jpeg;base64,' + person.foto"
|
||||
/>
|
||||
<template v-if="person.foto_sperre">
|
||||
<i
|
||||
class=" fa fa-lock text-secondary bg-light rounded d-flex justify-content-center align-items-center position-absolute top-0 end-0"
|
||||
style="z-index: 1; font-size: 1rem; width: 1.25rem; height: 1.25rem;"
|
||||
></i>
|
||||
</template>
|
||||
<small class="text-muted">{{person.uid}}</small>
|
||||
</div>
|
||||
|
||||
<template v-if="person.foto_sperre">
|
||||
<i
|
||||
class=" fa fa-lock text-secondary bg-light rounded d-flex justify-content-center align-items-center position-absolute top-0 end-0"
|
||||
style="z-index: 1; font-size: 1rem; width: 1.25rem; height: 1.25rem;"
|
||||
></i>
|
||||
</template>
|
||||
<small class="text-muted">{{person.uid}}</small>
|
||||
</div>
|
||||
<div v-if="headerData.length == 1">
|
||||
<h2 class="h4">
|
||||
{{headerData[0].titelpre}}
|
||||
{{headerData[0].vorname}}
|
||||
{{headerData[0].nachname}},
|
||||
{{headerData[0].titelpost}}
|
||||
</h2>
|
||||
|
||||
<div v-if="headerData.length == 1">
|
||||
<h2 class="h4">
|
||||
{{headerData[0].titelpre}}
|
||||
{{headerData[0].vorname}}
|
||||
{{headerData[0].nachname}}
|
||||
{{headerData[0].titelpost}}
|
||||
</h2>
|
||||
<h5 class="h6">
|
||||
<strong class="text-muted">Person ID </strong>
|
||||
{{headerData[0].person_id}}
|
||||
<strong class="text-muted">| {{$p.t('lehre', 'studiengang')}} </strong>
|
||||
{{headerData[0].stg_bezeichnung}} ({{headerData[0].studiengang}})
|
||||
<strong v-if="headerData[0].semester" class="text-muted"> | {{$p.t('lehre', 'semester')}} </strong>
|
||||
{{headerData[0].semester}}
|
||||
<strong v-if="headerData[0].verband" class="text-muted"> | {{$p.t('lehre', 'verband')}}</strong>
|
||||
{{headerData[0].verband}}
|
||||
<strong v-if="headerData[0].gruppe" class="text-muted"> | {{$p.t('lehre', 'gruppe')}} </strong>
|
||||
{{headerData[0].gruppe}}
|
||||
</h5>
|
||||
|
||||
<h5 v-if="typeHeader==='student'" class="h6">
|
||||
<strong class="text-muted">Person ID </strong>
|
||||
{{headerData[0].person_id}}
|
||||
<strong class="text-muted">| {{$p.t('lehre', 'studiengang')}} </strong>
|
||||
{{headerData[0].stg_bezeichnung}} ({{headerData[0].studiengang}})
|
||||
<strong v-if="headerData[0].semester" class="text-muted"> | {{$p.t('lehre', 'semester')}} </strong>
|
||||
{{headerData[0].semester}}
|
||||
<strong v-if="headerData[0].verband" class="text-muted"> | {{$p.t('lehre', 'verband')}}</strong>
|
||||
{{headerData[0].verband}}
|
||||
<strong v-if="headerData[0].gruppe" class="text-muted"> | {{$p.t('lehre', 'gruppe')}} </strong>
|
||||
{{headerData[0].gruppe}}
|
||||
</h5>
|
||||
<h5 v-if="typeHeader==='mitarbeiter'" class="h6">
|
||||
<strong class="text-muted">Team / {{$p.t('lehre', 'kompetenzfeld')}}</strong>
|
||||
{{headerData[0].studiengang}}
|
||||
<strong v-if="headerData[0].semester" class="text-muted"> | Vorgesetzte*r </strong>
|
||||
{{headerData[0].semester}}
|
||||
</h5>
|
||||
<h5 class="h6">
|
||||
<strong class="text-muted">Email </strong>
|
||||
<span>
|
||||
<a :href="'mailto:'+headerData[0]?.mail_intern">{{headerData[0].mail_intern}}</a>
|
||||
</span>
|
||||
<strong class="text-muted"> | Status </strong>
|
||||
{{headerData[0].status}}
|
||||
<strong class="text-muted"> | {{$p.t('person', 'matrikelnummer')}} </strong>
|
||||
{{headerData[0].matr_nr}}
|
||||
</h5>
|
||||
|
||||
<h5 v-if="typeHeader==='student'" class="h6">
|
||||
<strong class="text-muted">Email </strong>
|
||||
<span>
|
||||
<a :href="'mailto:'+headerData[0]?.mail_intern">{{headerData[0].mail_intern}}</a>
|
||||
</span>
|
||||
<strong class="text-muted"> | Status </strong>
|
||||
{{headerData[0].status}}
|
||||
<strong class="text-muted"> | {{$p.t('person', 'matrikelnummer')}} </strong>
|
||||
{{headerData[0].matr_nr}}
|
||||
</h5>
|
||||
<h5 v-if="typeHeader==='mitarbeiter'" class="h6">
|
||||
<strong class="text-muted">Email </strong>
|
||||
<span>
|
||||
<a :href="'mailto:'+headerData[0]?.mail_intern">{{headerData[0].mail_intern}}</a>
|
||||
</span>
|
||||
<strong class="text-muted"> | {{$p.t('kvp', 'op.label.phone')}} </strong>
|
||||
{{headerData[0].status}}
|
||||
</h5>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<template v-if="typeHeader==='mitarbeiter'">
|
||||
<div class="row">
|
||||
<div class="col-md-2 d-flex justify-content-start align-items-center w-30 pb-3 gap-3 position-relative"
|
||||
style="max-height: 8rem; max-width: 6rem; overflow: hidden;">
|
||||
<img
|
||||
class="d-block h-100 rounded"
|
||||
alt="Profilbild"
|
||||
:src="'data:image/jpeg;base64,' + headerDataMa.foto"
|
||||
/>
|
||||
<template v-if="headerDataMa.foto_sperre">
|
||||
<i
|
||||
class=" fa fa-lock text-secondary bg-light rounded d-flex justify-content-center align-items-center position-absolute top-0 end-0"
|
||||
style="z-index: 1; font-size: 1rem; width: 1.25rem; height: 1.25rem;"
|
||||
></i>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<!--show Ma-Details-->
|
||||
<div class="col-md-10">
|
||||
<h5>{{headerDataMa.titelpre}} {{headerDataMa.vorname}} {{headerDataMa.nachname}}<span v-if="headerDataMa?.titelpost">, </span> {{headerDataMa.titelpost}}
|
||||
</h5>
|
||||
<strong class="text-muted">{{departmentData.organisationseinheittyp_kurzbz}}</strong>
|
||||
{{departmentData.bezeichnung}}
|
||||
<span v-if="leitungData.uid"> | </span>
|
||||
<strong v-if="leitungData.uid" class="text-muted">Vorgesetzte*r </strong>
|
||||
<a href="#" @click.prevent="redirectToLeitung">
|
||||
{{leitungData.titelpre}} {{leitungData.vorname}} {{leitungData.nachname}}
|
||||
</a>
|
||||
<p>
|
||||
<strong class="text-muted">Email </strong>
|
||||
<span v-if="!headerDataMa?.alias">
|
||||
<a :href="'mailto:'+headerDataMa?.uid+'@'+domain">{{headerDataMa.uid}}@{{domain}}</a>
|
||||
</span>
|
||||
<span v-if="headerDataMa?.alias">
|
||||
<a :href="'mailto:'+headerDataMa?.alias+'@'+domain">{{headerDataMa.alias}}@{{domain}}</a>
|
||||
</span>
|
||||
<span v-if="headerDataMa?.telefonklappe" class="mb-2"> | <strong class="text-muted">DW </strong>{{headerDataMa?.telefonklappe}}</span>
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
`
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,110 +0,0 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
headerData: {},
|
||||
departmentData: {},
|
||||
leitungData: {},
|
||||
};
|
||||
},
|
||||
inject: {
|
||||
domain: {
|
||||
from: 'configDomain',
|
||||
default: 'technikum-wien.at'
|
||||
},
|
||||
},
|
||||
props: {
|
||||
person_id: Number
|
||||
},
|
||||
computed: {
|
||||
appRoot() {
|
||||
return FHC_JS_DATA_STORAGE_OBJECT.app_root;
|
||||
},
|
||||
},
|
||||
created(){
|
||||
this.getHeader(this.person_id);
|
||||
|
||||
// Ensure loadDepartmentData is awaited
|
||||
this.loadDepartmentData(this.person_id)
|
||||
.then(() => {
|
||||
// Call getLeitungOrg only after departmentData is loaded
|
||||
this.getLeitungOrg(this.departmentData.oe_kurzbz);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("Error loading department data:", error);
|
||||
});
|
||||
},
|
||||
watch: {
|
||||
person_id: {
|
||||
handler(newVal) {
|
||||
if (newVal) {
|
||||
this.getHeader(this.person_id);
|
||||
this.loadDepartmentData(this.person_id).
|
||||
then(() => {
|
||||
this.getLeitungOrg(this.departmentData.oe_kurzbz);
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
getHeader(person_id) {
|
||||
return this.$fhcApi.factory.vertraege.person
|
||||
.getHeader(person_id)
|
||||
.then(result => {
|
||||
this.headerData = result.data;
|
||||
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
loadDepartmentData(person_id) {
|
||||
return this.$fhcApi.factory.vertraege.person
|
||||
.getPersonAbteilung(person_id)
|
||||
.then(result => {
|
||||
this.departmentData = result.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
getLeitungOrg(oekurzbz){
|
||||
return this.$fhcApi.factory.vertraege.person
|
||||
.getLeitungOrg(oekurzbz)
|
||||
.then(result => {
|
||||
this.leitungData = result.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
}
|
||||
},
|
||||
template: `
|
||||
<div class="core-mitarbeiter-details">
|
||||
<!--show Picture-->
|
||||
<div class="row">
|
||||
<div class="col-md-2 d-flex justify-content-start align-items-center w-30 pb-3 gap-3"
|
||||
style="max-height: 8rem; max-width: 6rem; overflow: hidden;">
|
||||
<img
|
||||
class="d-block h-100 rounded"
|
||||
alt="profilepicture"
|
||||
style="object-fit: cover; max-width: 100%;"
|
||||
:src="appRoot + 'cis/public/bild.php?src=person&person_id=' + person_id">
|
||||
</div>
|
||||
|
||||
<!--show Ma-Details-->
|
||||
<div class="col-md-10">
|
||||
<h5>{{headerData.titelpre}} {{headerData.vorname}} {{headerData.nachname}} {{headerData.titelpost}} </h5>
|
||||
<strong class="text-muted">{{departmentData.organisationseinheittyp_kurzbz}}</strong> {{departmentData.bezeichnung}} <span v-if="leitungData.uid"> | </span><strong v-if="leitungData.uid" class="text-muted">Vorgesetzte/e </strong>{{leitungData.titelpre}} {{leitungData.vorname}} {{leitungData.nachname}} {{leitungData.titelpost}}
|
||||
<p>
|
||||
<strong class="text-muted">Email </strong>
|
||||
<span v-if="!headerData?.alias">
|
||||
<a :href="'mailto:'+headerData?.uid+'@'+domain">{{headerData.uid}}@{{domain}}</a>
|
||||
</span>
|
||||
<span v-if="headerData?.alias">
|
||||
<a :href="'mailto:'+headerData?.alias+'@'+domain">{{headerData.alias}}@{{domain}}</a>
|
||||
</span>
|
||||
<span v-if="headerData?.telefonklappe" class="mb-2"> | <strong class="text-muted">DW </strong>{{headerData?.telefonklappe}}</span>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
`
|
||||
};
|
||||
@@ -2,15 +2,11 @@ import {CoreFilterCmpt} from "../filter/Filter.js";
|
||||
import FormInput from '../Form/Input.js';
|
||||
|
||||
export default {
|
||||
name: 'CoreListMitarbeiter',
|
||||
components: {
|
||||
CoreFilterCmpt,
|
||||
FormInput
|
||||
},
|
||||
/* inject: {
|
||||
cisRoot: {
|
||||
from: 'cisRoot'
|
||||
},
|
||||
},*/
|
||||
emits: [
|
||||
"selectedPerson"
|
||||
],
|
||||
@@ -19,27 +15,6 @@ export default {
|
||||
type: Object,
|
||||
required: true
|
||||
},
|
||||
// maybe later nur fixe oder alle Mitarbeiter: gleich funktionsaufruf
|
||||
//oder Mitarbeiter mit Verträgen
|
||||
/* filterMa: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: function () {
|
||||
return {
|
||||
active: true,
|
||||
hasVertraege: false
|
||||
};
|
||||
},
|
||||
},*/
|
||||
/* vertragsarten: {
|
||||
type: Array,
|
||||
required: false,
|
||||
default: function (){
|
||||
return {
|
||||
['echterdv']
|
||||
}
|
||||
}
|
||||
}*/
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
@@ -9,6 +9,7 @@ import ContractStati from './List/Status.js';
|
||||
|
||||
|
||||
export default {
|
||||
name:'CoreVertraege',
|
||||
components: {
|
||||
CoreFilterCmpt,
|
||||
BsModal,
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
import MitarbeiterHeader from "./MitarbeiterHeader.js";
|
||||
import MitarbeiterDetails from "./MitarbeiterDetails.js";
|
||||
import FhcHeader from "../DetailHeader/DetailHeader.js";
|
||||
import VertraegeMitarbeiter from "./Vertraege.js";
|
||||
import VerticalSplit from "../verticalsplit/verticalsplit.js";
|
||||
import ApiCoreVertraege from '../../api/factory/vertraege/vertraege.js';
|
||||
|
||||
|
||||
export default {
|
||||
name: 'Vertragsverwaltung',
|
||||
components: {
|
||||
VerticalSplit,
|
||||
MitarbeiterHeader,
|
||||
MitarbeiterDetails,
|
||||
FhcHeader,
|
||||
VertraegeMitarbeiter
|
||||
},
|
||||
props: {
|
||||
@@ -26,11 +27,15 @@ export default {
|
||||
return {
|
||||
person_id: null,
|
||||
endpoint: ApiCoreVertraege
|
||||
//<mitarbeiter-details-old :person_id="person_id"></mitarbeiter-details-old>
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
selectPerson(selected){
|
||||
this.person_id = selected;
|
||||
},
|
||||
redirectToLeitung(leitung){
|
||||
this.person_id = leitung.person_id;
|
||||
}
|
||||
},
|
||||
template: `
|
||||
@@ -40,12 +45,18 @@ export default {
|
||||
<vertical-split ref="vsplit">
|
||||
<template #top>
|
||||
<div class="d-flex flex-column" style="height: 100%;">
|
||||
<mitarbeiter-header :endpoint="endpoint" @selectedPerson="selectPerson" />
|
||||
<mitarbeiter-header
|
||||
:endpoint="endpoint"
|
||||
@selectedPerson="selectPerson"/>
|
||||
</div>
|
||||
</template>
|
||||
<template #bottom>
|
||||
<div class="col" v-if="person_id!=null">
|
||||
<mitarbeiter-details :person_id="person_id"></mitarbeiter-details>
|
||||
<fhc-header
|
||||
:person_id="person_id"
|
||||
typeHeader="mitarbeiter"
|
||||
@redirectToLeitung="redirectToLeitung"
|
||||
></fhc-header>
|
||||
<vertraege-mitarbeiter :endpoint="endpoint" :person_id="this.person_id"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user