mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-26 09:04:28 +00:00
Merge branch 'feature-63443/Studierendenverwaltung_Tab_Abschlusspruefung_Finetuning' into demo-cis40
This commit is contained in:
+99
-53
@@ -259,14 +259,16 @@ export default {
|
||||
arrAkadGrad: [],
|
||||
arrNoten: [],
|
||||
selectedVorsitz: null,
|
||||
listeFilteredMitarbeiter: [],
|
||||
listeAllMitarbeiter: [],
|
||||
listeAllPersons: [],
|
||||
filteredMitarbeiter: [],
|
||||
filteredPersons: [],
|
||||
selectedPruefer1: null,
|
||||
selectedPruefer2: null,
|
||||
selectedPruefer3: null,
|
||||
listeFilteredPersons: [],
|
||||
stgInfo: { typ: '', oe_kurzbz: '' }
|
||||
stgInfo: { typ: '', oe_kurzbz: '' },
|
||||
abortController: {
|
||||
mitarbeiter: null,
|
||||
persons: null
|
||||
},
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@@ -306,23 +308,39 @@ export default {
|
||||
actionEditAbschlusspruefung(abschlusspruefung_id) {
|
||||
this.resetForm();
|
||||
this.statusNew = false;
|
||||
this.loadAbschlusspruefung(abschlusspruefung_id).then(() => {
|
||||
this.loadAbschlusspruefung(abschlusspruefung_id).then((result) => {
|
||||
//set selectedData to enable viewing label in primevue autocomplete fields
|
||||
this.selectedVorsitz = this.listeAllMitarbeiter.find(
|
||||
item => item.mitarbeiter_uid === this.formData.vorsitz
|
||||
);
|
||||
this.selectedPruefer1 = this.listeAllPersons.find(
|
||||
item => item.person_id === this.formData.pruefer1
|
||||
);
|
||||
this.selectedPruefer2= this.listeAllPersons.find(
|
||||
item => item.person_id === this.formData.pruefer2
|
||||
);
|
||||
this.selectedPruefer3= this.listeAllPersons.find(
|
||||
item => item.person_id === this.formData.pruefer3
|
||||
);
|
||||
const data = result.data;
|
||||
this.selectedVorsitz = {
|
||||
label: this.getPersonLabel(data.pv_titelpre, data.pv_nachname, data.pv_vorname, data.pv_titelpost, data.pv_uid),
|
||||
person_id: data.pv_person_id,
|
||||
mitarbeiter_uid: data.pv_uid
|
||||
};
|
||||
if (data.p1_person_id) {
|
||||
this.selectedPruefer1 = {
|
||||
label: this.getPersonLabel(data.p1_titelpre, data.p1_nachname, data.p1_vorname, data.p1_titelpost),
|
||||
person_id: data.p1_person_id
|
||||
};
|
||||
}
|
||||
if (data.p2_person_id) {
|
||||
this.selectedPruefer2 = {
|
||||
label: this.getPersonLabel(data.p2_titelpre, data.p2_nachname, data.p2_vorname, data.p2_titelpost),
|
||||
person_id: data.p2_person_id
|
||||
}
|
||||
};
|
||||
if (data.p3_person_id) {
|
||||
this.selectedPruefer3= {
|
||||
label: this.getPersonLabel(data.p3_titelpre, data.p3_nachname, data.p3_vorname, data.p3_titelpost),
|
||||
person_id: data.p3_person_id
|
||||
};
|
||||
}
|
||||
});
|
||||
this.$refs.finalexamModal.show();
|
||||
},
|
||||
getPersonLabel(titelpre, nachname, vorname, titelpost, uid) {
|
||||
return nachname + ' ' + vorname + (titelpre ? ' ' + titelpre : '') + (titelpost ? ' ' + titelpost : '') + (uid ? ' (' + uid + ')' : '');
|
||||
|
||||
},
|
||||
actionDeleteAbschlusspruefung(abschlusspruefung_id) {
|
||||
this.$fhcAlert
|
||||
.confirmDelete()
|
||||
@@ -438,22 +456,61 @@ export default {
|
||||
printDocument(link) {
|
||||
window.open(link, '_blank');
|
||||
},
|
||||
filterMitarbeiter(event){
|
||||
const query = event?.query?.toLowerCase()?.trim() || "";
|
||||
searchMitarbeiter(event) {
|
||||
if (this.abortController.mitarbeiter) {
|
||||
this.abortController.mitarbeiter.abort();
|
||||
}
|
||||
|
||||
this.listeFilteredMitarbeiter = this.listeAllMitarbeiter.filter(item => {
|
||||
const label = (item.label || "").toLowerCase();
|
||||
return label.includes(query);
|
||||
});
|
||||
this.abortController.mitarbeiter = new AbortController();
|
||||
|
||||
return this.$api
|
||||
.call(ApiStvAbschlusspruefung.getMitarbeiter(event.query))
|
||||
.then(result => {
|
||||
this.filteredMitarbeiter = [];
|
||||
for (let mitarbeiter of result.data.retval) {
|
||||
this.filteredMitarbeiter.push(
|
||||
{
|
||||
label: this.getPersonLabel(
|
||||
mitarbeiter.titelpre,
|
||||
mitarbeiter.nachname,
|
||||
mitarbeiter.vorname,
|
||||
mitarbeiter.titelpost,
|
||||
mitarbeiter.mitarbeiter_uid
|
||||
),
|
||||
person_id: mitarbeiter.person_id,
|
||||
mitarbeiter_uid: mitarbeiter.mitarbeiter_uid
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
filterPersons(event){
|
||||
const query = event?.query?.toLowerCase()?.trim() || "";
|
||||
searchPerson(event) {
|
||||
if (this.abortController.persons) {
|
||||
this.abortController.persons.abort();
|
||||
}
|
||||
|
||||
this.listeFilteredPersons = this.listeAllPersons.filter(item => {
|
||||
const label = (item.label || "").toLowerCase();
|
||||
return label.includes(query);
|
||||
});
|
||||
}
|
||||
this.abortController.persons = new AbortController();
|
||||
|
||||
return this.$api
|
||||
.call(ApiStvAbschlusspruefung.getPruefer(event.query))
|
||||
.then(result => {
|
||||
this.filteredPersons = [];
|
||||
for (let person of result.data.retval) {
|
||||
this.filteredPersons.push(
|
||||
{
|
||||
label: this.getPersonLabel(
|
||||
person.titelpre,
|
||||
person.nachname,
|
||||
person.vorname,
|
||||
person.titelpost,
|
||||
person.person_uid
|
||||
),
|
||||
person_id: person.person_id
|
||||
}
|
||||
);
|
||||
}
|
||||
});
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.$api
|
||||
@@ -491,20 +548,6 @@ export default {
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
|
||||
this.$api
|
||||
.call(ApiStvAbschlusspruefung.getAllMitarbeiter())
|
||||
.then(result => {
|
||||
this.listeAllMitarbeiter = result.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
|
||||
this.$api
|
||||
.call(ApiStvAbschlusspruefung.getAllPersons())
|
||||
.then(result => {
|
||||
this.listeAllPersons = result.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
|
||||
if (!this.student.length) {
|
||||
this.$api
|
||||
.call(ApiStudiengang.getStudiengangByKz(this.student.studiengang_kz))
|
||||
@@ -622,8 +665,8 @@ export default {
|
||||
optionValue="mitarbeiter_uid"
|
||||
dropdown
|
||||
forceSelection
|
||||
:suggestions="listeFilteredMitarbeiter"
|
||||
@complete="filterMitarbeiter"
|
||||
:suggestions="filteredMitarbeiter"
|
||||
@complete="searchMitarbeiter"
|
||||
:min-length="3"
|
||||
>
|
||||
</form-input>
|
||||
@@ -635,9 +678,10 @@ export default {
|
||||
v-model="selectedPruefer1"
|
||||
optionLabel="label"
|
||||
optionValue="person_id"
|
||||
dropdown
|
||||
forceSelection
|
||||
:suggestions="listeFilteredPersons"
|
||||
@complete="filterPersons"
|
||||
:suggestions="filteredPersons"
|
||||
@complete="searchPerson"
|
||||
:min-length="3"
|
||||
>
|
||||
</form-input>
|
||||
@@ -668,9 +712,10 @@ export default {
|
||||
v-model="selectedPruefer2"
|
||||
optionLabel="label"
|
||||
optionValue="person_id"
|
||||
dropdown
|
||||
forceSelection
|
||||
:suggestions="listeFilteredPersons"
|
||||
@complete="filterPersons"
|
||||
:suggestions="filteredPersons"
|
||||
@complete="searchPerson"
|
||||
:min-length="3"
|
||||
>
|
||||
</form-input>
|
||||
@@ -700,9 +745,10 @@ export default {
|
||||
v-model="selectedPruefer3"
|
||||
optionLabel="label"
|
||||
optionValue="person_id"
|
||||
dropdown
|
||||
forceSelection
|
||||
:suggestions="listeFilteredPersons"
|
||||
@complete="filterPersons"
|
||||
:suggestions="filteredPersons"
|
||||
@complete="searchPerson"
|
||||
:min-length="3"
|
||||
>
|
||||
</form-input>
|
||||
|
||||
Reference in New Issue
Block a user