mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-11 17:19:29 +00:00
Betriebsmittel: Form as Modal
This commit is contained in:
@@ -115,7 +115,7 @@ class Betriebsmittelperson_model extends DB_Model
|
||||
|
||||
$query = "
|
||||
SELECT
|
||||
bm.nummer, bmp.person_id, bm.betriebsmitteltyp, bmp.anmerkung as anmerkung, bmp.retouram, TO_CHAR(bmp.retouram::timestamp, 'DD.MM.YYYY') AS format_retour, bmp.ausgegebenam, TO_CHAR(bmp.ausgegebenam::timestamp, 'DD.MM.YYYY') AS format_ausgabe, bm.beschreibung, bmp.uid, bmp.kaution, bm.betriebsmittel_id, bmp.betriebsmittelperson_id, bm.inventarnummer
|
||||
bm.nummer, bmp.person_id, bm.betriebsmitteltyp, bmp.anmerkung as anmerkung, bmp.retouram, TO_CHAR(bmp.retouram::timestamp, 'DD.MM.YYYY') AS format_retour, bmp.ausgegebenam, TO_CHAR(bmp.ausgegebenam::timestamp, 'DD.MM.YYYY') AS format_ausgabe, bm.beschreibung, bmp.uid, bmp.kaution, bm.betriebsmittel_id, bmp.betriebsmittelperson_id, bm.inventarnummer, bm.nummer2
|
||||
FROM
|
||||
wawi.tbl_betriebsmittelperson bmp
|
||||
JOIN
|
||||
|
||||
@@ -46,15 +46,15 @@ export default {
|
||||
},
|
||||
ajaxResponse: (url, params, response) => response.data,
|
||||
columns: [
|
||||
{title: "Nummer", field: "nummer"},
|
||||
{title: "Nummer", field: "nummer", width: 150},
|
||||
{title: "PersonId", field: "person_id", visible: false},
|
||||
{title: "Typ", field: "betriebsmitteltyp"},
|
||||
{title: "Typ", field: "betriebsmitteltyp", width: 125},
|
||||
{title: "Anmerkung", field: "anmerkung", visible: false},
|
||||
{title: "Retourdatum", field: "format_retour", visible: false},
|
||||
{title: "Retourdatum", field: "format_retour", width: 128},
|
||||
{title: "Beschreibung", field: "beschreibung"},
|
||||
{title: "Uid", field: "uid", visible: false},
|
||||
{title: "Uid", field: "uid", width: 87},
|
||||
{title: "Kaution", field: "kaution", visible: false},
|
||||
{title: "Ausgabedatum", field: "format_ausgabe"},
|
||||
{title: "Ausgabedatum", field: "format_ausgabe", width: 144},
|
||||
{title: "Betriebsmittel_id", field: "betriebsmittel_id", visible: false},
|
||||
{title: "Betriebsmittelperson_id", field: "betriebsmittelperson_id", visible: false},
|
||||
{
|
||||
@@ -161,9 +161,11 @@ export default {
|
||||
actionEditBetriebsmittel(betriebsmittelperson_id) {
|
||||
this.statusNew = false;
|
||||
this.loadBetriebsmittel(betriebsmittelperson_id);
|
||||
this.$refs.betriebsmittelModal.show();
|
||||
},
|
||||
actionNewBetriebsmittel() {
|
||||
this.resetModal();
|
||||
this.$refs.betriebsmittelModal.show();
|
||||
this.statusNew = true;
|
||||
this.formData.ausgegebenam = this.getDefaultDate();
|
||||
this.reload();
|
||||
@@ -179,6 +181,7 @@ export default {
|
||||
return this.endpoint.addNewBetriebsmittel(this.id, this.formData)
|
||||
.then(response => {
|
||||
this.$fhcAlert.alertSuccess(this.$p.t('ui', 'successSave'));
|
||||
this.hideModal('betriebsmittelModal');
|
||||
this.resetModal();
|
||||
}).catch(this.$fhcAlert.handleSystemError)
|
||||
.finally(() => {
|
||||
@@ -205,6 +208,7 @@ export default {
|
||||
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(() => {
|
||||
@@ -263,195 +267,179 @@ export default {
|
||||
},
|
||||
template: `
|
||||
<div class="core-betriebsmittel">
|
||||
|
||||
|
||||
|
||||
<!--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 #default><p>{{$p.t('ui', 'betriebsmittel_confirm_delete')}}</p></template>
|
||||
<template #footer>
|
||||
<!-- <button type="button" class="btn btn-secondary" data-bs-dismiss="modal" @click="resetModal">Abbrechen</button>-->
|
||||
<button ref="Close" type="button" class="btn btn-primary" @click="deleteBetriebsmittel(formData.betriebsmittelperson_id)">OK</button>
|
||||
</template>
|
||||
</BsModal>
|
||||
|
||||
|
||||
<div class="row col-12">
|
||||
<div class="col-6">
|
||||
<div class="row col-12">
|
||||
<core-filter-cmpt
|
||||
ref="table"
|
||||
:tabulator-options="tabulatorOptions"
|
||||
:tabulator-events="tabulatorEvents"
|
||||
table-only
|
||||
:side-menu="false"
|
||||
reload
|
||||
new-btn-show
|
||||
new-btn-label="Betriebsmittel"
|
||||
@click:new="actionNewBetriebsmittel"
|
||||
>
|
||||
</core-filter-cmpt>
|
||||
|
||||
<core-filter-cmpt
|
||||
ref="table"
|
||||
:tabulator-options="tabulatorOptions"
|
||||
:tabulator-events="tabulatorEvents"
|
||||
table-only
|
||||
:side-menu="false"
|
||||
reload
|
||||
new-btn-show
|
||||
new-btn-label="Betriebsmittel"
|
||||
@click:new="actionNewBetriebsmittel"
|
||||
>
|
||||
</core-filter-cmpt>
|
||||
<!--Modal: betriebsmittelModal-->
|
||||
<bs-modal ref="betriebsmittelModal">
|
||||
<template #title>
|
||||
<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>
|
||||
|
||||
</div>
|
||||
|
||||
<form-form class="row g-3 col-6" ref="betriebsmittelData">
|
||||
<legend>Details</legend>
|
||||
|
||||
<div class="row mb-3">
|
||||
<div class="col-sm-7">
|
||||
<p v-if="statusNew" class="fw-bold">{{$p.t('ui', 'add_betriebsmittel')}}</p>
|
||||
<p v-else class="fw-bold">{{$p.t('ui', 'edit_betriebsmittel')}}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="typ" class="form-label col-sm-4">{{$p.t('global', 'typ')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="select"
|
||||
name="typ"
|
||||
v-model="formData.betriebsmitteltyp"
|
||||
:disabled="!statusNew"
|
||||
>
|
||||
<option
|
||||
v-for="entry in listBetriebsmitteltyp"
|
||||
:key="entry.betriebsmitteltyp"
|
||||
:value="entry.betriebsmitteltyp"
|
||||
>
|
||||
{{entry.beschreibung}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp == 'Inventar'" class="row mb-3">
|
||||
<label for="inventarnummer" class="form-label col-sm-4">{{$p.t('wawi', 'inventarnummer')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<PvAutoComplete v-model="formData['inventarData']" optionLabel="dropdowntext" :suggestions="filteredInventar" @complete="searchInventar" minLength="3"/>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="formData.inventarnummer" class="row mb-3">
|
||||
<label for="inventarnummer" class="form-label col-sm-4">{{$p.t('wawi', 'inventarnummer')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="inventarnummer" v-model="formData.inventarnummer" :disabled="!statusNew">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp!='Inventar' && !formData.inventarnummer" class="row mb-3">
|
||||
<label for="nummer" class="form-label col-sm-4">{{$p.t('wawi', 'nummer')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="text"
|
||||
name="nummer"
|
||||
v-model="formData['nummer']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp!='Inventar' && !formData.inventarnummer" class="row mb-3">
|
||||
<label for="nummer2" class="form-label col-sm-4">{{$p.t('wawi', 'nummer')}} 2</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="text"
|
||||
name="nummer2"
|
||||
v-model="formData['nummer2']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp!='Inventar'" class="row mb-3">
|
||||
<label for="beschreibung" class="form-label col-sm-4">{{$p.t('global', 'beschreibung')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="textarea"
|
||||
name="beschreibung"
|
||||
v-model="formData['beschreibung']"
|
||||
:disabled="formData.inventarnummer"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="kaution" class="form-label col-sm-4">{{$p.t('infocenter', 'kaution')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="text"
|
||||
name="kaution"
|
||||
v-model="formData['kaution']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="anmerkung" class="form-label col-sm-4">{{$p.t('global', 'anmerkung')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="textarea"
|
||||
name="anmerkung"
|
||||
v-model="formData['anmerkung']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="ausgegebenam" class="form-label col-sm-4">{{$p.t('wawi', 'ausgegebenam')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
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>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="retouram" class="form-label col-sm-4">{{$p.t('wawi', 'retouram')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
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>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row mb-3">
|
||||
<label class="form-label col-sm-8"></label>
|
||||
<div v-if="statusNew" class="col-sm-4">
|
||||
<button ref="Close" type="button" class="btn btn-primary" @click="addNewBetriebsmittel()">{{$p.t('ui', 'speichern')}}</button>
|
||||
</div>
|
||||
<div v-else class="col-sm-4">
|
||||
<button ref="Close" type="button" class="btn btn-primary" @click="updateBetriebsmittel(formData.betriebsmittelperson_id)">{{$p.t('ui', 'speichern')}}</button>
|
||||
</div>
|
||||
<form-form class="row g-3" ref="betriebsmittelData">
|
||||
<legend>Details</legend>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="typ" class="form-label col-sm-4">{{$p.t('global', 'typ')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="select"
|
||||
name="typ"
|
||||
v-model="formData.betriebsmitteltyp"
|
||||
:disabled="!statusNew"
|
||||
>
|
||||
<option
|
||||
v-for="entry in listBetriebsmitteltyp"
|
||||
:key="entry.betriebsmitteltyp"
|
||||
:value="entry.betriebsmitteltyp"
|
||||
>
|
||||
{{entry.beschreibung}}
|
||||
</option>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form-form>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp == 'Inventar'" class="row mb-3">
|
||||
<label for="inventarnummer" class="form-label col-sm-4">{{$p.t('wawi', 'inventarnummer')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<PvAutoComplete v-model="formData['inventarData']" optionLabel="dropdowntext" :suggestions="filteredInventar" @complete="searchInventar" minLength="3"/>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else-if="formData.inventarnummer" class="row mb-3">
|
||||
<label for="inventarnummer" class="form-label col-sm-4">{{$p.t('wawi', 'inventarnummer')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<input type="text" class="form-control" id="inventarnummer" v-model="formData.inventarnummer" :disabled="!statusNew">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp!='Inventar' && !formData.inventarnummer" class="row mb-3">
|
||||
<label for="nummer" class="form-label col-sm-4">{{$p.t('wawi', 'nummer')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="text"
|
||||
name="nummer"
|
||||
v-model="formData['nummer']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp!='Inventar' && !formData.inventarnummer" class="row mb-3">
|
||||
<label for="nummer2" class="form-label col-sm-4">{{$p.t('wawi', 'nummer')}} 2</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="text"
|
||||
name="nummer2"
|
||||
v-model="formData['nummer2']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="formData.betriebsmitteltyp!='Inventar'" class="row mb-3">
|
||||
<label for="beschreibung" class="form-label col-sm-4">{{$p.t('global', 'beschreibung')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="textarea"
|
||||
name="beschreibung"
|
||||
v-model="formData['beschreibung']"
|
||||
:disabled="formData.inventarnummer"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="kaution" class="form-label col-sm-4">{{$p.t('infocenter', 'kaution')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="text"
|
||||
name="kaution"
|
||||
v-model="formData['kaution']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="anmerkung" class="form-label col-sm-4">{{$p.t('global', 'anmerkung')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="textarea"
|
||||
name="anmerkung"
|
||||
v-model="formData['anmerkung']"
|
||||
>
|
||||
</form-input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="ausgegebenam" class="form-label col-sm-4">{{$p.t('wawi', 'ausgegebenam')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
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>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label for="retouram" class="form-label col-sm-4">{{$p.t('wawi', 'retouram')}}</label>
|
||||
<div class="col-sm-6">
|
||||
<form-input
|
||||
type="DatePicker"
|
||||
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>
|
||||
</div>
|
||||
</form-form>
|
||||
|
||||
<template #footer>
|
||||
<div v-if="statusNew" class="col-sm-4">
|
||||
<button ref="Close" type="button" class="btn btn-primary" @click="addNewBetriebsmittel()">{{$p.t('ui', 'speichern')}}</button>
|
||||
</div>
|
||||
<div v-else class="col-sm-4">
|
||||
<button ref="Close" type="button" class="btn btn-primary" @click="updateBetriebsmittel(formData.betriebsmittelperson_id)">{{$p.t('ui', 'speichern')}}</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
</bs-modal>
|
||||
|
||||
</div>
|
||||
</div>`
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user