add additional fields

This commit is contained in:
Julian Krauser 2025-05-21 09:10:41 +02:00
parent 43f46c0fad
commit b83b22d806
16 changed files with 97 additions and 3 deletions

View file

@ -8,6 +8,8 @@ export const equipmentDemoData: Array<EquipmentViewModel> = [
code: "0456984224498", code: "0456984224498",
name: "B-Schlauch", name: "B-Schlauch",
location: "HLF", location: "HLF",
commissioned: new Date(),
decommissioned: undefined,
equipmentTypeId: equipmentTypeDemoData[0].id, equipmentTypeId: equipmentTypeDemoData[0].id,
equipmentType: equipmentTypeDemoData[0], equipmentType: equipmentTypeDemoData[0],
inspections: [inspectionDemoData[0]], inspections: [inspectionDemoData[0]],

View file

@ -7,6 +7,8 @@ export const vehicleDemoData: Array<VehicleViewModel> = [
code: "", code: "",
name: "HLF", name: "HLF",
location: "Tor 1", location: "Tor 1",
commissioned: new Date(),
decommissioned: undefined,
vehicleTypeId: vehicleTypeDemoData[0].id, vehicleTypeId: vehicleTypeDemoData[0].id,
vehicleType: vehicleTypeDemoData[0], vehicleType: vehicleTypeDemoData[0],
inspections: [], inspections: [],
@ -16,6 +18,8 @@ export const vehicleDemoData: Array<VehicleViewModel> = [
code: "", code: "",
name: "LF", name: "LF",
location: "Tor 2", location: "Tor 2",
commissioned: new Date(),
decommissioned: undefined,
vehicleTypeId: vehicleTypeDemoData[1].id, vehicleTypeId: vehicleTypeDemoData[1].id,
vehicleType: vehicleTypeDemoData[1], vehicleType: vehicleTypeDemoData[1],
inspections: [], inspections: [],

View file

@ -7,6 +7,8 @@ export const wearableDemoData: Array<WearableViewModel> = [
code: "0456984224498", code: "0456984224498",
name: "Jacke", name: "Jacke",
location: "Spint", location: "Spint",
commissioned: new Date(),
decommissioned: undefined,
wearerId: "9469991d-fa22-4899-82ce-b1ba5de990dc", wearerId: "9469991d-fa22-4899-82ce-b1ba5de990dc",
wearer: { wearer: {
id: "9469991d-fa22-4899-82ce-b1ba5de990dc", id: "9469991d-fa22-4899-82ce-b1ba5de990dc",

View file

@ -6,6 +6,8 @@ export interface EquipmentViewModel {
code?: string; code?: string;
name: string; name: string;
location: string; location: string;
commissioned: Date;
decommissioned?: Date;
equipmentTypeId: string; equipmentTypeId: string;
equipmentType: EquipmentTypeViewModel; equipmentType: EquipmentTypeViewModel;
inspections: Array<InspectionViewModel>; inspections: Array<InspectionViewModel>;
@ -15,6 +17,7 @@ export interface CreateEquipmentViewModel {
code?: string; code?: string;
name: string; name: string;
location: string; location: string;
commissioned: Date;
equipmentTypeId: string; equipmentTypeId: string;
} }
@ -23,4 +26,6 @@ export interface UpdateEquipmentViewModel {
code?: string; code?: string;
name: string; name: string;
location: string; location: string;
commissioned: Date;
decommissioned?: Date;
} }

View file

@ -26,6 +26,7 @@ export interface InspectionPointViewModel {
title: string; title: string;
description: string; description: string;
type: "iO-niO" | "text" | "number"; type: "iO-niO" | "text" | "number";
min?: number;
} }
export interface InspectionPointResultViewModel { export interface InspectionPointResultViewModel {

View file

@ -6,6 +6,8 @@ export interface VehicleViewModel {
code?: string; code?: string;
name: string; name: string;
location: string; location: string;
commissioned: Date;
decommissioned?: Date;
vehicleTypeId: string; vehicleTypeId: string;
vehicleType: VehicleTypeViewModel; vehicleType: VehicleTypeViewModel;
inspections: Array<InspectionViewModel>; inspections: Array<InspectionViewModel>;
@ -15,6 +17,7 @@ export interface CreateVehicleViewModel {
code?: string; code?: string;
name: string; name: string;
location: string; location: string;
commissioned: Date;
vehicleTypeId: string; vehicleTypeId: string;
} }
@ -23,4 +26,6 @@ export interface UpdateVehicleViewModel {
code?: string; code?: string;
name: string; name: string;
location: string; location: string;
commissioned: Date;
decommissioned?: Date;
} }

View file

@ -5,7 +5,9 @@ export interface WearableViewModel {
id: string; id: string;
code?: string; code?: string;
name: string; name: string;
location?: string; location: string;
commissioned: Date;
decommissioned?: Date;
wearerId?: string; wearerId?: string;
wearer?: MemberViewModel; wearer?: MemberViewModel;
wearableTypeId: string; wearableTypeId: string;
@ -17,6 +19,7 @@ export interface CreateWearableViewModel {
name: string; name: string;
wearerId?: string; wearerId?: string;
location?: string; location?: string;
commissioned: Date;
wearableTypeId: string; wearableTypeId: string;
} }
@ -25,5 +28,7 @@ export interface UpdateWearableViewModel {
code?: string; code?: string;
name: string; name: string;
location?: string; location?: string;
commissioned: Date;
decommissioned?: Date;
wearerId?: string; wearerId?: string;
} }

View file

@ -14,6 +14,10 @@
<input type="text" id="name" required /> <input type="text" id="name" required />
</div> </div>
<ScanInput name="code" label="Code" :required="false" /> <ScanInput name="code" label="Code" :required="false" />
<div>
<label for="commissioned">In-Betrieb-Nahme</label>
<input type="date" id="commissioned" required />
</div>
<div> <div>
<label for="location">Verortung (optional)</label> <label for="location">Verortung (optional)</label>
<input type="text" id="location" /> <input type="text" id="location" />
@ -81,6 +85,7 @@ export default defineComponent({
name: formData.name.value, name: formData.name.value,
location: formData.location.value, location: formData.location.value,
equipmentTypeId: this.selectedType, equipmentTypeId: this.selectedType,
commissioned: formData.commissioned.value,
}; };
this.status = "loading"; this.status = "loading";
this.createEquipment(createEquipment) this.createEquipment(createEquipment)

View file

@ -17,6 +17,14 @@
<label for="location">Verortung</label> <label for="location">Verortung</label>
<input type="text" id="location" :value="activeEquipmentObj.location" readonly /> <input type="text" id="location" :value="activeEquipmentObj.location" readonly />
</div> </div>
<div>
<label for="commissioned">In-Betrieb-Nahme</label>
<input type="date" id="commissioned" :value="activeEquipmentObj.commissioned" readonly />
</div>
<div>
<label for="decommissioned">Außer-Betrieb-Nahme</label>
<input type="date" id="decommissioned" :value="activeEquipmentObj.decommissioned" readonly />
</div>
</div> </div>
<Spinner v-if="loadingActive == 'loading'" class="mx-auto" /> <Spinner v-if="loadingActive == 'loading'" class="mx-auto" />

View file

@ -17,6 +17,14 @@
<label for="location">Verortung (optional)</label> <label for="location">Verortung (optional)</label>
<input type="text" id="location" v-model="equipment.location" /> <input type="text" id="location" v-model="equipment.location" />
</div> </div>
<div>
<label for="commissioned">In-Betrieb-Nahme</label>
<input type="date" id="commissioned" required v-model="equipment.commissioned" />
</div>
<div>
<label for="decommissioned">Außer-Betrieb-Nahme (optional)</label>
<input type="date" id="decommissioned" v-model="equipment.decommissioned" />
</div>
<div class="flex flex-row justify-end gap-2"> <div class="flex flex-row justify-end gap-2">
<button primary-outline type="reset" class="w-fit!" :disabled="canSaveOrReset" @click="resetForm"> <button primary-outline type="reset" class="w-fit!" :disabled="canSaveOrReset" @click="resetForm">
abbrechen abbrechen
@ -98,6 +106,8 @@ export default defineComponent({
code: formData.code.value || null, code: formData.code.value || null,
name: formData.name.value, name: formData.name.value,
location: formData.location.value, location: formData.location.value,
commissioned: formData.commissioned.value,
decommissioned: formData.decommissioned.value ?? null,
}; };
this.status = "loading"; this.status = "loading";
this.updateActiveEquipment(updateEquipment) this.updateActiveEquipment(updateEquipment)

View file

@ -14,6 +14,10 @@
<input type="text" id="name" required /> <input type="text" id="name" required />
</div> </div>
<ScanInput name="code" label="Code" :required="false" /> <ScanInput name="code" label="Code" :required="false" />
<div>
<label for="commissioned">In-Betrieb-Nahme</label>
<input type="date" id="commissioned" required />
</div>
<div> <div>
<label for="location">Verortung (optional)</label> <label for="location">Verortung (optional)</label>
<input type="text" id="location" /> <input type="text" id="location" />
@ -80,6 +84,7 @@ export default defineComponent({
code: formData.code.value || null, code: formData.code.value || null,
location: formData.location.value, location: formData.location.value,
vehicleTypeId: this.selectedType, vehicleTypeId: this.selectedType,
commissioned: formData.commissioned.value,
}; };
this.status = "loading"; this.status = "loading";
this.createVehicle(createVehicle) this.createVehicle(createVehicle)

View file

@ -17,6 +17,14 @@
<label for="location">Verortung</label> <label for="location">Verortung</label>
<input type="text" id="location" :value="activeVehicleObj.location" readonly /> <input type="text" id="location" :value="activeVehicleObj.location" readonly />
</div> </div>
<div>
<label for="commissioned">In-Betrieb-Nahme</label>
<input type="date" id="commissioned" :value="activeVehicleObj.commissioned" readonly />
</div>
<div>
<label for="decommissioned">Außer-Betrieb-Nahme</label>
<input type="date" id="decommissioned" :value="activeVehicleObj.decommissioned" readonly />
</div>
</div> </div>
<Spinner v-if="loadingActive == 'loading'" class="mx-auto" /> <Spinner v-if="loadingActive == 'loading'" class="mx-auto" />

View file

@ -17,6 +17,14 @@
<label for="location">Verortung (optional)</label> <label for="location">Verortung (optional)</label>
<input type="text" id="location" /> <input type="text" id="location" />
</div> </div>
<div>
<label for="commissioned">In-Betrieb-Nahme</label>
<input type="date" id="commissioned" required v-model="vehicle.commissioned" />
</div>
<div>
<label for="decommissioned">Außer-Betrieb-Nahme (optional)</label>
<input type="date" id="decommissioned" v-model="vehicle.decommissioned" />
</div>
<div class="flex flex-row justify-end gap-2"> <div class="flex flex-row justify-end gap-2">
<RouterLink <RouterLink
:to="{ name: 'admin-unit-vehicle' }" :to="{ name: 'admin-unit-vehicle' }"
@ -100,6 +108,8 @@ export default defineComponent({
name: formData.name.value, name: formData.name.value,
code: formData.code.value || null, code: formData.code.value || null,
location: formData.location.value, location: formData.location.value,
commissioned: formData.commissioned.value,
decommissioned: formData.decommissioned.value ?? null,
}; };
this.status = "loading"; this.status = "loading";
this.updateActiveVehicle(updateVehicle) this.updateActiveVehicle(updateVehicle)

View file

@ -14,11 +14,15 @@
<input type="text" id="name" required /> <input type="text" id="name" required />
</div> </div>
<ScanInput name="code" label="Code" :required="false" /> <ScanInput name="code" label="Code" :required="false" />
<div>
<label for="commissioned">In-Betrieb-Nahme</label>
<input type="date" id="commissioned" required />
</div>
<div> <div>
<label for="location">Verortung (optional)</label> <label for="location">Verortung (optional)</label>
<input type="text" id="location" /> <input type="text" id="location" />
</div> </div>
<MemberSearchSelectSingle title="Träger (optional)" /> <MemberSearchSelectSingle title="Träger (optional)" v-model="wearer" />
<div class="flex flex-row justify-end gap-2"> <div class="flex flex-row justify-end gap-2">
<RouterLink <RouterLink
:to="{ name: 'admin-unit-wearable' }" :to="{ name: 'admin-unit-wearable' }"
@ -62,6 +66,7 @@ export default defineComponent({
status: null as null | "loading" | { status: "success" | "failed"; reason?: string }, status: null as null | "loading" | { status: "success" | "failed"; reason?: string },
timeout: null as any, timeout: null as any,
selectedType: "" as string, selectedType: "" as string,
wearer: "" as string,
}; };
}, },
computed: { computed: {
@ -82,8 +87,9 @@ export default defineComponent({
code: formData.code.value || null, code: formData.code.value || null,
name: formData.name.value, name: formData.name.value,
location: formData.location.value, location: formData.location.value,
wearerId: "", wearerId: this.wearer,
wearableTypeId: this.selectedType, wearableTypeId: this.selectedType,
commissioned: formData.commissioned.value,
}; };
this.status = "loading"; this.status = "loading";
this.createWearable(createWearable) this.createWearable(createWearable)

View file

@ -17,6 +17,14 @@
<label for="location">Verortung</label> <label for="location">Verortung</label>
<input type="text" id="location" :value="activeWearableObj.location" readonly /> <input type="text" id="location" :value="activeWearableObj.location" readonly />
</div> </div>
<div>
<label for="commissioned">In-Betrieb-Nahme</label>
<input type="date" id="commissioned" :value="activeWearableObj.commissioned" readonly />
</div>
<div>
<label for="decommissioned">Außer-Betrieb-Nahme</label>
<input type="date" id="decommissioned" :value="activeWearableObj.decommissioned" readonly />
</div>
<div> <div>
<label for="wearer">Träger</label> <label for="wearer">Träger</label>
<input <input

View file

@ -18,6 +18,14 @@
<input type="text" id="location" v-model="wearable.location" /> <input type="text" id="location" v-model="wearable.location" />
</div> </div>
<MemberSearchSelectMultiple title="Träger (optional)" /> <MemberSearchSelectMultiple title="Träger (optional)" />
<div>
<label for="commissioned">In-Betrieb-Nahme</label>
<input type="date" id="commissioned" required v-model="wearable.commissioned" />
</div>
<div>
<label for="decommissioned">Außer-Betrieb-Nahme (optional)</label>
<input type="date" id="decommissioned" v-model="wearable.decommissioned" />
</div>
<div class="flex flex-row justify-end gap-2"> <div class="flex flex-row justify-end gap-2">
<button primary-outline type="reset" class="w-fit!" :disabled="canSaveOrReset" @click="resetForm"> <button primary-outline type="reset" class="w-fit!" :disabled="canSaveOrReset" @click="resetForm">
abbrechen abbrechen
@ -100,6 +108,8 @@ export default defineComponent({
code: formData.code.value || null, code: formData.code.value || null,
name: formData.name.value, name: formData.name.value,
location: formData.location.value, location: formData.location.value,
commissioned: formData.commissioned.value,
decommissioned: formData.decommissioned.value ?? null,
}; };
this.status = "loading"; this.status = "loading";
this.updateActiveWearable(updateWearable) this.updateActiveWearable(updateWearable)