mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 18:02:18 +00:00
Betriebsmittel: stabilized
This commit is contained in:
@@ -2,16 +2,16 @@ export default {
|
||||
getAllBetriebsmittel(url, config, params){
|
||||
return this.$fhcApi.get('api/frontend/v1/betriebsmittel/betriebsmittelP/getAllBetriebsmittel/' + params.type + '/' + params.id);
|
||||
},
|
||||
addNewBetriebsmittel(person_id, formData) {
|
||||
return this.$fhcApi.post('api/frontend/v1/betriebsmittel/betriebsmittelP/addNewBetriebsmittel/' +
|
||||
addNewBetriebsmittel(form, person_id, formData) {
|
||||
return this.$fhcApi.post(form, 'api/frontend/v1/betriebsmittel/betriebsmittelP/addNewBetriebsmittel/' +
|
||||
person_id, formData
|
||||
);
|
||||
},
|
||||
loadBetriebsmittel(betriebsmittelperson_id){
|
||||
return this.$fhcApi.post('api/frontend/v1/betriebsmittel/betriebsmittelP/loadBetriebsmittel/' + betriebsmittelperson_id);
|
||||
},
|
||||
updateBetriebsmittel(betriebsmittelperson_id, formData) {
|
||||
return this.$fhcApi.post('api/frontend/v1/betriebsmittel/betriebsmittelP/updateBetriebsmittel/' + betriebsmittelperson_id,
|
||||
updateBetriebsmittel(form, betriebsmittelperson_id, formData) {
|
||||
return this.$fhcApi.post(form, 'api/frontend/v1/betriebsmittel/betriebsmittelP/updateBetriebsmittel/' + betriebsmittelperson_id,
|
||||
formData);
|
||||
},
|
||||
deleteBetriebsmittel(betriebsmittelperson_id){
|
||||
@@ -21,7 +21,6 @@ export default {
|
||||
return this.$fhcApi.get('api/frontend/v1/betriebsmittel/betriebsmittelP/getTypenBetriebsmittel/');
|
||||
},
|
||||
loadInventarliste(query){
|
||||
console.log(query);
|
||||
return this.$fhcApi.get('api/frontend/v1/betriebsmittel/betriebsmittelP/loadInventarliste/' + query);
|
||||
}
|
||||
}
|
||||
@@ -1,19 +1,15 @@
|
||||
import VueDatePicker from '../vueDatepicker.js.php';
|
||||
import {CoreFilterCmpt} from "../filter/Filter.js";
|
||||
import PvAutoComplete from "../../../../index.ci.php/public/js/components/primevue/autocomplete/autocomplete.esm.min.js";
|
||||
|
||||
import BsModal from "../Bootstrap/Modal.js";
|
||||
import FormForm from '../Form/Form.js';
|
||||
import CoreForm from '../Form/Form.js';
|
||||
import FormInput from '../Form/Input.js';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
CoreFilterCmpt,
|
||||
VueDatePicker,
|
||||
BsModal,
|
||||
FormForm,
|
||||
FormInput,
|
||||
PvAutoComplete
|
||||
CoreForm,
|
||||
FormInput
|
||||
},
|
||||
inject: {
|
||||
cisRoot: {
|
||||
@@ -52,11 +48,11 @@ export default {
|
||||
{title: "Anmerkung", field: "anmerkung", visible: false},
|
||||
{title: "Retourdatum", field: "format_retour", width: 128},
|
||||
{title: "Beschreibung", field: "beschreibung"},
|
||||
{title: "Uid", field: "uid", width: 87},
|
||||
{title: "UID", field: "uid", width: 87},
|
||||
{title: "Kaution", field: "kaution", visible: false},
|
||||
{title: "Ausgabedatum", field: "format_ausgabe", width: 144},
|
||||
{title: "Betriebsmittel_id", field: "betriebsmittel_id", visible: false},
|
||||
{title: "Betriebsmittelperson_id", field: "betriebsmittelperson_id", visible: false},
|
||||
{title: "Ausgabedatum", field: "format_ausgabe", width: 144, visible: false},
|
||||
{title: "Betriebsmittel ID", field: "betriebsmittel_id", visible: false},
|
||||
{title: "Betriebsmittelperson ID", field: "betriebsmittelperson_id", visible: false},
|
||||
{
|
||||
title: 'Aktionen', field: 'actions',
|
||||
minWidth: 150, // Ensures Action-buttons will be always fully displayed
|
||||
@@ -142,11 +138,9 @@ export default {
|
||||
}
|
||||
}
|
||||
],
|
||||
betriebsmittelData: {},
|
||||
betriebsmittelperson_id : null,
|
||||
listBetriebsmitteltyp: [],
|
||||
formData: {
|
||||
ausgegebenam : this.getDefaultDate(),
|
||||
ausgegebenam : new Date(),
|
||||
betriebsmitteltyp: 'Zutrittskarte'
|
||||
},
|
||||
statusNew: true,
|
||||
@@ -154,95 +148,89 @@ export default {
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
uid() {
|
||||
this.$refs.table.tabulator.setData(this.endpoint.getAllBetriebsmittel + '/' + this.typeId + '/' + this.id);
|
||||
id() {
|
||||
this.$refs.table.tabulator.setData('dummy', {type: this.typeId, id: this.id});
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
actionEditBetriebsmittel(betriebsmittelperson_id) {
|
||||
this.statusNew = false;
|
||||
this.loadBetriebsmittel(betriebsmittelperson_id);
|
||||
this.$refs.betriebsmittelModal.show();
|
||||
this
|
||||
.loadBetriebsmittel(betriebsmittelperson_id)
|
||||
.then(this.$refs.betriebsmittelModal.show);
|
||||
},
|
||||
actionNewBetriebsmittel() {
|
||||
this.resetModal();
|
||||
this.$refs.betriebsmittelModal.show();
|
||||
this.statusNew = true;
|
||||
this.formData.ausgegebenam = this.getDefaultDate();
|
||||
this.reload();
|
||||
},
|
||||
actionDeleteBetriebsmittel(betriebsmittelperson_id) {
|
||||
this.loadBetriebsmittel(betriebsmittelperson_id).then(() => {
|
||||
this.$refs.deleteBetriebsmittelModal.show();
|
||||
});
|
||||
this.$fhcAlert
|
||||
.confirmDelete()
|
||||
.then(result => result
|
||||
? betriebsmittelperson_id
|
||||
: Promise.reject({handled: true}))
|
||||
.then(this.endpoint.deleteBetriebsmittel)
|
||||
.then(result => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
|
||||
window.scrollTo(0, 0);
|
||||
this.reload();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
addNewBetriebsmittel() {
|
||||
//just append uid to formdata
|
||||
this.formData.uid = this.uid;
|
||||
return this.endpoint.addNewBetriebsmittel(this.id, this.formData)
|
||||
if (this.formData.betriebsmitteltyp == 'Inventar')
|
||||
this.formData.betriebsmittel_id = this.formData.inventarData?.betriebsmittel_id;
|
||||
return this.endpoint
|
||||
.addNewBetriebsmittel(this.$refs.betriebsmittelData, this.id, this.formData)
|
||||
.then(response => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
this.hideModal('betriebsmittelModal');
|
||||
this.$refs.betriebsmittelModal.hide();
|
||||
this.resetModal();
|
||||
}).catch(this.$fhcAlert.handleSystemError)
|
||||
.finally(() => {
|
||||
window.scrollTo(0, 0);
|
||||
this.reload();
|
||||
});
|
||||
},
|
||||
deleteBetriebsmittel(betriebsmittelperson_id) {
|
||||
return this.endpoint.deleteBetriebsmittel(betriebsmittelperson_id)
|
||||
.then(
|
||||
result => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successDelete'));
|
||||
this.hideModal('deleteBetriebsmittelModal');
|
||||
this.resetModal();
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError)
|
||||
.finally(() => {
|
||||
window.scrollTo(0, 0);
|
||||
this.reload();
|
||||
});
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
updateBetriebsmittel(betriebsmittelperson_id) {
|
||||
this.formData.uid = this.uid;
|
||||
return this.endpoint.updateBetriebsmittel(betriebsmittelperson_id, this.formData)
|
||||
.then(response => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
this.hideModal('betriebsmittelModal');
|
||||
this.resetModal();
|
||||
}).catch(this.$fhcAlert.handleSystemError)
|
||||
.finally(() => {
|
||||
if (this.formData.betriebsmitteltyp == 'Inventar')
|
||||
this.formData.betriebsmittel_id = this.formData.inventarData?.betriebsmittel_id;
|
||||
return this.endpoint
|
||||
.updateBetriebsmittel(this.$refs.betriebsmittelData, betriebsmittelperson_id, this.formData)
|
||||
.then(response => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
this.$refs.betriebsmittelModal.hide();
|
||||
this.resetModal();
|
||||
window.scrollTo(0, 0);
|
||||
this.reload();
|
||||
});
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
loadBetriebsmittel(betriebsmittelperson_id) {
|
||||
this.resetModal();
|
||||
this.statusNew = false;
|
||||
return this.endpoint.loadBetriebsmittel(betriebsmittelperson_id)
|
||||
.then(result => result.data)
|
||||
return this.endpoint
|
||||
.loadBetriebsmittel(betriebsmittelperson_id)
|
||||
.then(result => {
|
||||
this.formData = result;
|
||||
this.formData = result.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
searchInventar(event) {
|
||||
const encodedQuery = encodeURIComponent(event.query);
|
||||
return this.endpoint.loadInventarliste(encodedQuery)
|
||||
return this.endpoint
|
||||
.loadInventarliste(encodedQuery)
|
||||
.then(result => {
|
||||
this.filteredInventar = result.data.retval;
|
||||
this.filteredInventar = result.data;
|
||||
});
|
||||
},
|
||||
reload() {
|
||||
this.$refs.table.reloadTable();
|
||||
},
|
||||
hideModal(modalRef) {
|
||||
this.$refs[modalRef].hide();
|
||||
},
|
||||
resetModal() {
|
||||
this.formData = {};
|
||||
this.formData.ausgegebenam = this.getDefaultDate();
|
||||
this.formData.ausgegebenam = new Date();
|
||||
this.formData.retouram = null;
|
||||
this.formData.betriebsmitteltyp = null;
|
||||
this.formData.nummer = null;
|
||||
@@ -250,34 +238,19 @@ export default {
|
||||
this.formData.kaution = null;
|
||||
this.formData.anmerkung = null;
|
||||
this.formData.beschreibung = null;
|
||||
this.betriebsmittelperson_id = {};
|
||||
this.statusNew = true;
|
||||
},
|
||||
getDefaultDate() {
|
||||
const today = new Date();
|
||||
return today;
|
||||
}
|
||||
},
|
||||
created(){
|
||||
return this.endpoint.getTypenBetriebsmittel()
|
||||
.then(result => result.data)
|
||||
created() {
|
||||
return this.endpoint
|
||||
.getTypenBetriebsmittel()
|
||||
.then(result => {
|
||||
this.listBetriebsmitteltyp = result;
|
||||
this.listBetriebsmitteltyp = result.data;
|
||||
})
|
||||
.catch(this.$fhcAlert.handleSystemError);
|
||||
},
|
||||
template: `
|
||||
<div class="core-betriebsmittel h-100 d-flex flex-column">
|
||||
|
||||
<!--Modal: deleteBetriebsmittelModal-->
|
||||
<BsModal ref="deleteBetriebsmittelModal">
|
||||
<template #title>{{$p.t('ui', 'betriebsmittel_delete')}}</template>
|
||||
<template #default><p>{{$p.t('ui', 'betriebsmittel_confirm_delete')}}</p></template>
|
||||
<template #footer>
|
||||
<button ref="Close" type="button" class="btn btn-primary" @click="deleteBetriebsmittel(formData.betriebsmittelperson_id)">OK</button>
|
||||
</template>
|
||||
</BsModal>
|
||||
|
||||
<core-filter-cmpt
|
||||
ref="table"
|
||||
:tabulator-options="tabulatorOptions"
|
||||
@@ -297,12 +270,11 @@ export default {
|
||||
<p v-if="statusNew" class="fw-bold mt-3">{{$p.t('ui', 'add_betriebsmittel')}}</p>
|
||||
<p v-else class="fw-bold mt-3">{{$p.t('ui', 'edit_betriebsmittel')}}</p>
|
||||
</template>
|
||||
|
||||
<form-form class="row g-3" ref="betriebsmittelData">
|
||||
|
||||
<core-form class="row g-3" ref="betriebsmittelData">
|
||||
<legend>Details</legend>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="select"
|
||||
:label="$p.t('global/typ')"
|
||||
name="typ"
|
||||
@@ -316,121 +288,119 @@ export default {
|
||||
>
|
||||
{{entry.beschreibung}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp == 'Inventar'" class="row mb-3">
|
||||
<form-input
|
||||
type="autocomplete"
|
||||
:label="$p.t('wawi/inventarnummer')"
|
||||
name="betriebsmittel_id"
|
||||
v-model="formData.inventarData"
|
||||
option-label="dropdowntext"
|
||||
:suggestions="filteredInventar"
|
||||
@complete="searchInventar"
|
||||
:min-length="3"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div v-else-if="formData.inventarnummer" class="row mb-3">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('wawi/inventarnummer')"
|
||||
name="inventarnummer"
|
||||
v-model="formData.inventarnummer"
|
||||
:disabled="!statusNew"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp == 'Inventar'" class="row mb-3">
|
||||
<form-input
|
||||
type="autocomplete"
|
||||
:label="$p.t('wawi/inventarnummer')"
|
||||
name="inventarnummer"
|
||||
v-model="formData.inventarData"
|
||||
optionLabel="dropdowntext"
|
||||
:suggestions="filteredInventar"
|
||||
@complete="searchInventar"
|
||||
minLength="3"
|
||||
<div v-if="formData.betriebsmitteltyp!='Inventar' && !formData.inventarnummer" class="row mb-3">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('wawi/nummer')"
|
||||
name="nummer"
|
||||
v-model="formData['nummer']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
<div v-else-if="formData.inventarnummer" class="row mb-3">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('wawi/inventarnummer')"
|
||||
name="inventarnummer"
|
||||
v-model="formData.inventarnummer"
|
||||
:disabled="!statusNew"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp!='Inventar' && !formData.inventarnummer" class="row mb-3">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('wawi/nummer')"
|
||||
name="nummer"
|
||||
v-model="formData['nummer']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp!='Inventar' && !formData.inventarnummer" class="row mb-3">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('wawi/nummer') + ' 2'"
|
||||
name="nummer2"
|
||||
v-model="formData['nummer2']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp!='Inventar'" class="row mb-3">
|
||||
<form-input
|
||||
type="textarea"
|
||||
:label="$p.t('global/beschreibung')"
|
||||
name="beschreibung"
|
||||
v-model="formData['beschreibung']"
|
||||
:disabled="formData.inventarnummer"
|
||||
<div v-if="formData.betriebsmitteltyp!='Inventar' && !formData.inventarnummer" class="row mb-3">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('wawi/nummer') + ' 2'"
|
||||
name="nummer2"
|
||||
v-model="formData['nummer2']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('infocenter/kaution')"
|
||||
name="kaution"
|
||||
v-model="formData['kaution']"
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp!='Inventar'" class="row mb-3">
|
||||
<form-input
|
||||
type="textarea"
|
||||
:label="$p.t('global/beschreibung')"
|
||||
name="beschreibung"
|
||||
v-model="formData['beschreibung']"
|
||||
:disabled="formData.inventarnummer"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="textarea"
|
||||
:label="$p.t('global/anmerkung')"
|
||||
name="anmerkung"
|
||||
v-model="formData['anmerkung']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
:label="$p.t('wawi/ausgegebenam')"
|
||||
name="datum"
|
||||
v-model="formData['ausgegebenam']"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
format="dd.MM.yyyy"
|
||||
preview-format="dd.MM.yyyy"
|
||||
:teleport="true"
|
||||
></form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
:label="$p.t('wawi/retouram')"
|
||||
name="datum"
|
||||
v-model="formData['retouram']"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
format="dd.MM.yyyy"
|
||||
preview-format="dd.MM.yyyy"
|
||||
:teleport="true"
|
||||
></form-input>
|
||||
</div>
|
||||
</form-form>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<button v-if="statusNew" ref="Close" type="button" class="btn btn-primary" @click="addNewBetriebsmittel()">{{$p.t('ui', 'speichern')}}</button>
|
||||
|
||||
<button v-else ref="Close" type="button" class="btn btn-primary" @click="updateBetriebsmittel(formData.betriebsmittelperson_id)">{{$p.t('ui', 'speichern')}}</button>
|
||||
</template>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="text"
|
||||
:label="$p.t('infocenter/kaution')"
|
||||
name="kaution"
|
||||
v-model="formData['kaution']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="textarea"
|
||||
:label="$p.t('global/anmerkung')"
|
||||
name="anmerkung"
|
||||
v-model="formData['anmerkung']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
:label="$p.t('wawi/ausgegebenam')"
|
||||
name="datum"
|
||||
v-model="formData['ausgegebenam']"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
format="dd.MM.yyyy"
|
||||
preview-format="dd.MM.yyyy"
|
||||
:teleport="true"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
:label="$p.t('wawi/retouram')"
|
||||
name="datum"
|
||||
v-model="formData['retouram']"
|
||||
auto-apply
|
||||
:enable-time-picker="false"
|
||||
format="dd.MM.yyyy"
|
||||
preview-format="dd.MM.yyyy"
|
||||
:teleport="true"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</core-form>
|
||||
|
||||
<template #footer>
|
||||
<button type="button" class="btn btn-primary" @click="statusNew ? addNewBetriebsmittel() : updateBetriebsmittel(formData.betriebsmittelperson_id)">{{$p.t('ui', 'speichern')}}</button>
|
||||
</template>
|
||||
</bs-modal>
|
||||
|
||||
</div>`
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user