From bd1fdaa23416752be9924569f3fc0b7f236de596 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Thu, 29 May 2025 10:57:24 +0200 Subject: [PATCH 01/16] update models to backend changes --- src/enums/inspectionEnum.ts | 5 +++ .../{damageReport => }/damageReport.models.ts | 27 +++++++----- .../admin/unit/equipment/equipment.models.ts | 4 +- .../equipmentType.models.ts | 3 -- .../unit/inspection/inspection.models.ts | 4 +- .../inspectionPlan.models.ts | 13 +++--- .../admin/unit/maintenance.models.ts | 43 +++++++++++++++++++ .../respiratoryGear.models.ts | 0 .../respiratoryMission.models.ts | 0 .../respiratoryWearer.models.ts | 0 .../admin/unit/vehicle/vehicle.models.ts | 4 +- .../vehicleType.models.ts | 3 -- .../admin/unit/wearable/wearable.models.ts | 2 +- .../wearableType.models.ts | 0 14 files changed, 79 insertions(+), 29 deletions(-) create mode 100644 src/enums/inspectionEnum.ts rename src/viewmodels/admin/unit/{damageReport => }/damageReport.models.ts (56%) rename src/viewmodels/admin/unit/{equipmentType => equipment}/equipmentType.models.ts (67%) rename src/viewmodels/admin/unit/{inspectionPlan => inspection}/inspectionPlan.models.ts (76%) create mode 100644 src/viewmodels/admin/unit/maintenance.models.ts rename src/viewmodels/admin/unit/{respiratoryGear => respiratory}/respiratoryGear.models.ts (100%) rename src/viewmodels/admin/unit/{respiratoryMission => respiratory}/respiratoryMission.models.ts (100%) rename src/viewmodels/admin/unit/{respiratoryWearer => respiratory}/respiratoryWearer.models.ts (100%) rename src/viewmodels/admin/unit/{vehicleType => vehicle}/vehicleType.models.ts (67%) rename src/viewmodels/admin/unit/{wearableType => wearable}/wearableType.models.ts (100%) diff --git a/src/enums/inspectionEnum.ts b/src/enums/inspectionEnum.ts new file mode 100644 index 0000000..5c87e55 --- /dev/null +++ b/src/enums/inspectionEnum.ts @@ -0,0 +1,5 @@ +export enum InspectionPointEnum { + oknok = "oknok", + text = "text", + number = "number", +} diff --git a/src/viewmodels/admin/unit/damageReport/damageReport.models.ts b/src/viewmodels/admin/unit/damageReport.models.ts similarity index 56% rename from src/viewmodels/admin/unit/damageReport/damageReport.models.ts rename to src/viewmodels/admin/unit/damageReport.models.ts index e1d7075..44bf661 100644 --- a/src/viewmodels/admin/unit/damageReport/damageReport.models.ts +++ b/src/viewmodels/admin/unit/damageReport.models.ts @@ -1,14 +1,9 @@ -import type { EquipmentViewModel } from "../equipment/equipment.models"; -import type { VehicleViewModel } from "../vehicle/vehicle.models"; -import type { WearableViewModel } from "../wearable/wearable.models"; +import type { EquipmentViewModel } from "./equipment/equipment.models"; +import type { MaintenanceViewModel } from "./maintenance.models"; +import type { VehicleViewModel } from "./vehicle/vehicle.models"; +import type { WearableViewModel } from "./wearable/wearable.models"; -export type DamageReportViewModel = { - id: string; - reported: Date; - status: string; - done: boolean; - description: string; - providedImage: Array; +export type DamageReportAssigned = { relatedId: string; } & ( | { @@ -25,8 +20,20 @@ export type DamageReportViewModel = { } ); +export type DamageReportViewModel = { + id: string; + reportedAt: Date; + status: string; + done: boolean; + description: string; + imageCount: number; + reportedBy: string; + maintenance?: MaintenanceViewModel; +} & DamageReportAssigned; + export interface CreateDamageReportViewModel { description: string; + reportedBy: string; affectedId: string; affected: "equipment" | "vehicle" | "wearable"; } diff --git a/src/viewmodels/admin/unit/equipment/equipment.models.ts b/src/viewmodels/admin/unit/equipment/equipment.models.ts index dcd4cea..abbdee7 100644 --- a/src/viewmodels/admin/unit/equipment/equipment.models.ts +++ b/src/viewmodels/admin/unit/equipment/equipment.models.ts @@ -1,5 +1,4 @@ -import type { EquipmentTypeViewModel } from "../equipmentType/equipmentType.models"; -import type { InspectionViewModel } from "../inspection/inspection.models"; +import type { EquipmentTypeViewModel } from "./equipmentType.models"; export interface EquipmentViewModel { id: string; @@ -10,7 +9,6 @@ export interface EquipmentViewModel { decommissioned?: Date; equipmentTypeId: string; equipmentType: EquipmentTypeViewModel; - inspections: Array; } export interface CreateEquipmentViewModel { diff --git a/src/viewmodels/admin/unit/equipmentType/equipmentType.models.ts b/src/viewmodels/admin/unit/equipment/equipmentType.models.ts similarity index 67% rename from src/viewmodels/admin/unit/equipmentType/equipmentType.models.ts rename to src/viewmodels/admin/unit/equipment/equipmentType.models.ts index e3116c9..fcf47ee 100644 --- a/src/viewmodels/admin/unit/equipmentType/equipmentType.models.ts +++ b/src/viewmodels/admin/unit/equipment/equipmentType.models.ts @@ -1,10 +1,7 @@ -import type { InspectionPlanViewModel } from "../inspectionPlan/inspectionPlan.models"; - export interface EquipmentTypeViewModel { id: string; type: string; description: string; - inspectionPlans: Array; } export interface CreateEquipmentTypeViewModel { diff --git a/src/viewmodels/admin/unit/inspection/inspection.models.ts b/src/viewmodels/admin/unit/inspection/inspection.models.ts index 8cd2e5f..6565377 100644 --- a/src/viewmodels/admin/unit/inspection/inspection.models.ts +++ b/src/viewmodels/admin/unit/inspection/inspection.models.ts @@ -1,8 +1,9 @@ import type { EquipmentViewModel } from "../equipment/equipment.models"; import type { InspectionPlanViewModel, + InspectionPointViewModel, InspectionVersionedPlanViewModel, -} from "../inspectionPlan/inspectionPlan.models"; +} from "./inspectionPlan.models"; import type { VehicleViewModel } from "../vehicle/vehicle.models"; export type InspectionViewModel = { @@ -33,5 +34,6 @@ export interface InspectionPointResultViewModel { inspectionId: string; inspectionVersionedPlanId: string; inspectionPointId: string; + inspectionPoint: InspectionPointViewModel; value: string; } diff --git a/src/viewmodels/admin/unit/inspectionPlan/inspectionPlan.models.ts b/src/viewmodels/admin/unit/inspection/inspectionPlan.models.ts similarity index 76% rename from src/viewmodels/admin/unit/inspectionPlan/inspectionPlan.models.ts rename to src/viewmodels/admin/unit/inspection/inspectionPlan.models.ts index 5f2df34..c5b1043 100644 --- a/src/viewmodels/admin/unit/inspectionPlan/inspectionPlan.models.ts +++ b/src/viewmodels/admin/unit/inspection/inspectionPlan.models.ts @@ -1,5 +1,6 @@ -import type { EquipmentTypeViewModel } from "../equipmentType/equipmentType.models"; -import type { VehicleTypeViewModel } from "../vehicleType/vehicleType.models"; +import type { InspectionPointEnum } from "@/enums/inspectionEnum"; +import type { EquipmentViewModel } from "../equipment/equipment.models"; +import type { VehicleViewModel } from "../vehicle/vehicle.models"; export type PlanTimeDefinition = `${number}-${"d" | "m" | "y"}` | `${number}/${number | "*"}`; @@ -15,11 +16,11 @@ export type InspectionPlanViewModel = { } & ( | { assigned: "equipment"; - related: EquipmentTypeViewModel; + related: EquipmentViewModel; } | { assigned: "vehicle"; - related: VehicleTypeViewModel; + related: VehicleViewModel; } ); @@ -34,8 +35,10 @@ export interface InspectionPointViewModel { id: string; title: string; description: string; - type: "iO-niO" | "text" | "number"; + type: InspectionPointEnum; min?: number; + max?: number; + sort: number; } export interface CreateInspectionPlanViewModel { diff --git a/src/viewmodels/admin/unit/maintenance.models.ts b/src/viewmodels/admin/unit/maintenance.models.ts new file mode 100644 index 0000000..7ccd66e --- /dev/null +++ b/src/viewmodels/admin/unit/maintenance.models.ts @@ -0,0 +1,43 @@ +import type { DamageReportViewModel } from "./damageReport.models"; +import type { EquipmentViewModel } from "./equipment/equipment.models"; +import type { VehicleViewModel } from "./vehicle/vehicle.models"; +import type { WearableViewModel } from "./wearable/wearable.models"; + +export type MaintenanceAssigned = { + relatedId: string; +} & ( + | { + assigned: "equipment"; + related: EquipmentViewModel; + } + | { + assigned: "vehicle"; + related: VehicleViewModel; + } + | { + assigned: "wearable"; + related: WearableViewModel; + } +); + +export type MaintenanceViewModel = { + id: string; + createdAt: Date; + status: string; + done: boolean; + description: string; + reports: DamageReportViewModel[]; +} & MaintenanceAssigned; + +export interface CreateMaintenanceViewModel { + description: string; + reportedBy: string; + affectedId: string; + affected: "equipment" | "vehicle" | "wearable"; +} + +export interface UpdateMaintenanceViewModel { + id: string; + status: string; + done: boolean; +} diff --git a/src/viewmodels/admin/unit/respiratoryGear/respiratoryGear.models.ts b/src/viewmodels/admin/unit/respiratory/respiratoryGear.models.ts similarity index 100% rename from src/viewmodels/admin/unit/respiratoryGear/respiratoryGear.models.ts rename to src/viewmodels/admin/unit/respiratory/respiratoryGear.models.ts diff --git a/src/viewmodels/admin/unit/respiratoryMission/respiratoryMission.models.ts b/src/viewmodels/admin/unit/respiratory/respiratoryMission.models.ts similarity index 100% rename from src/viewmodels/admin/unit/respiratoryMission/respiratoryMission.models.ts rename to src/viewmodels/admin/unit/respiratory/respiratoryMission.models.ts diff --git a/src/viewmodels/admin/unit/respiratoryWearer/respiratoryWearer.models.ts b/src/viewmodels/admin/unit/respiratory/respiratoryWearer.models.ts similarity index 100% rename from src/viewmodels/admin/unit/respiratoryWearer/respiratoryWearer.models.ts rename to src/viewmodels/admin/unit/respiratory/respiratoryWearer.models.ts diff --git a/src/viewmodels/admin/unit/vehicle/vehicle.models.ts b/src/viewmodels/admin/unit/vehicle/vehicle.models.ts index 0bfccb6..4e273f6 100644 --- a/src/viewmodels/admin/unit/vehicle/vehicle.models.ts +++ b/src/viewmodels/admin/unit/vehicle/vehicle.models.ts @@ -1,5 +1,4 @@ -import type { InspectionViewModel } from "../inspection/inspection.models"; -import type { VehicleTypeViewModel } from "../vehicleType/vehicleType.models"; +import type { VehicleTypeViewModel } from "./vehicleType.models"; export interface VehicleViewModel { id: string; @@ -10,7 +9,6 @@ export interface VehicleViewModel { decommissioned?: Date; vehicleTypeId: string; vehicleType: VehicleTypeViewModel; - inspections: Array; } export interface CreateVehicleViewModel { diff --git a/src/viewmodels/admin/unit/vehicleType/vehicleType.models.ts b/src/viewmodels/admin/unit/vehicle/vehicleType.models.ts similarity index 67% rename from src/viewmodels/admin/unit/vehicleType/vehicleType.models.ts rename to src/viewmodels/admin/unit/vehicle/vehicleType.models.ts index 2de497f..ea6c7cf 100644 --- a/src/viewmodels/admin/unit/vehicleType/vehicleType.models.ts +++ b/src/viewmodels/admin/unit/vehicle/vehicleType.models.ts @@ -1,10 +1,7 @@ -import type { InspectionPlanViewModel } from "../inspectionPlan/inspectionPlan.models"; - export interface VehicleTypeViewModel { id: string; type: string; description: string; - inspectionPlans: Array; } export interface CreateVehicleTypeViewModel { diff --git a/src/viewmodels/admin/unit/wearable/wearable.models.ts b/src/viewmodels/admin/unit/wearable/wearable.models.ts index cec2ece..aef67ae 100644 --- a/src/viewmodels/admin/unit/wearable/wearable.models.ts +++ b/src/viewmodels/admin/unit/wearable/wearable.models.ts @@ -1,5 +1,5 @@ import type { MemberViewModel } from "@/viewmodels/admin/club/member/member.models"; -import type { WearableTypeViewModel } from "../wearableType/wearableType.models"; +import type { WearableTypeViewModel } from "./wearableType.models"; export interface WearableViewModel { id: string; diff --git a/src/viewmodels/admin/unit/wearableType/wearableType.models.ts b/src/viewmodels/admin/unit/wearable/wearableType.models.ts similarity index 100% rename from src/viewmodels/admin/unit/wearableType/wearableType.models.ts rename to src/viewmodels/admin/unit/wearable/wearableType.models.ts -- 2.47.3 From b280654f9215953f9f8ccfd7007977a398b93149 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Mon, 2 Jun 2025 13:14:24 +0200 Subject: [PATCH 02/16] change icon sizing --- src/views/admin/unit/equipment/DamageReport.vue | 2 +- src/views/admin/unit/vehicle/DamageReport.vue | 2 +- src/views/admin/unit/wearable/DamageReport.vue | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/admin/unit/equipment/DamageReport.vue b/src/views/admin/unit/equipment/DamageReport.vue index 5e5d887..3a1f043 100644 --- a/src/views/admin/unit/equipment/DamageReport.vue +++ b/src/views/admin/unit/equipment/DamageReport.vue @@ -11,7 +11,7 @@
- +

{{ row.reported }} - {{ row.status }}

diff --git a/src/views/admin/unit/vehicle/DamageReport.vue b/src/views/admin/unit/vehicle/DamageReport.vue index 09196c6..dd05bf6 100644 --- a/src/views/admin/unit/vehicle/DamageReport.vue +++ b/src/views/admin/unit/vehicle/DamageReport.vue @@ -11,7 +11,7 @@
- +

{{ row.reported }} - {{ row.status }}

diff --git a/src/views/admin/unit/wearable/DamageReport.vue b/src/views/admin/unit/wearable/DamageReport.vue index eb35ef2..78f1b3e 100644 --- a/src/views/admin/unit/wearable/DamageReport.vue +++ b/src/views/admin/unit/wearable/DamageReport.vue @@ -11,7 +11,7 @@
- +

{{ row.reported }} - {{ row.status }}

-- 2.47.3 From 6c8d57a7e5a443c1684fd3e4f4f1ebd1db3c251d Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Wed, 4 Jun 2025 12:49:42 +0200 Subject: [PATCH 03/16] update imports --- .../damageReport/DamageReportListItem.vue | 2 +- .../CreateEquipmentTypeModal.vue | 2 +- .../DeleteEquipmentTypeModal.vue | 2 +- .../equipmentType/EquipmentTypeListItem.vue | 2 +- .../admin/unit/inspection/OkNotOk.vue | 2 +- .../admin/unit/inspection/ResultInput.vue | 2 +- .../inspectionPlan/InspectionPlanListItem.vue | 2 +- .../TypeInspectionPlanListItem.vue | 2 +- .../RespiratoryGearListItem.vue | 2 +- .../RespiratoryMissionListItem.vue | 2 +- .../RespiratoryWearerListItem.vue | 2 +- .../vehicleType/CreateVehicleTypeModal.vue | 2 +- .../unit/vehicleType/VehicleTypeListItem.vue | 2 +- .../wearableType/CreateWearableTypeModal.vue | 2 +- .../wearableType/DeleteWearableTypeModal.vue | 2 +- .../wearableType/WearableTypeListItem.vue | 6 +- .../search/EquipmentTypeSearchSelect.vue | 2 +- .../search/InspectionPlanSearchSelect.vue | 2 +- .../search/VehicleTypeSearchSelect.vue | 2 +- .../search/WearableTypeSearchSelect.vue | 2 +- src/demodata/damageReport.ts | 30 ---- src/demodata/equipment.ts | 17 -- src/demodata/equipmentType.ts | 11 -- src/demodata/inspectionPlan.ts | 156 ------------------ src/demodata/respiratoryGear.ts | 10 -- src/demodata/respiratoryMission.ts | 11 -- src/demodata/respiratoryWearer.ts | 17 -- src/demodata/vehicle.ts | 27 --- src/demodata/vehicleType.ts | 16 -- src/demodata/wearable.ts | 25 --- src/demodata/wearableType.ts | 9 - .../admin/unit/damageReport/damageReport.ts | 4 +- .../admin/unit/equipment/damageReport.ts | 3 +- .../admin/unit/damageReport/DamageReport.vue | 2 +- .../admin/unit/equipment/DamageReport.vue | 2 +- .../unit/equipmentType/EquipmentType.vue | 2 +- .../equipmentType/UpdateEquipmentType.vue | 2 +- .../unit/inspection/InspectionExecute.vue | 1 + .../inspectionPlan/CreateInspectionPlan.vue | 4 +- .../unit/inspectionPlan/InspectionPlan.vue | 2 +- .../inspectionPlan/UpdateInspectionPlan.vue | 2 +- .../respiratoryGear/CreateRespiratoryGear.vue | 2 +- .../unit/respiratoryGear/RespiratoryGear.vue | 2 +- .../CreateRespiratoryMission.vue | 2 +- .../respiratoryMission/RespiratoryMission.vue | 2 +- .../CreateRespiratoryWearer.vue | 2 +- .../respiratoryWearer/RespiratoryWearer.vue | 2 +- src/views/admin/unit/vehicle/DamageReport.vue | 2 +- .../unit/vehicleType/UpdateVehicleType.vue | 2 +- .../admin/unit/vehicleType/VehicleType.vue | 2 +- .../admin/unit/wearable/DamageReport.vue | 2 +- .../unit/wearableType/UpdateWearableType.vue | 2 +- .../admin/unit/wearableType/WearableType.vue | 2 +- 53 files changed, 46 insertions(+), 375 deletions(-) delete mode 100644 src/demodata/damageReport.ts delete mode 100644 src/demodata/equipment.ts delete mode 100644 src/demodata/equipmentType.ts delete mode 100644 src/demodata/inspectionPlan.ts delete mode 100644 src/demodata/respiratoryGear.ts delete mode 100644 src/demodata/respiratoryMission.ts delete mode 100644 src/demodata/respiratoryWearer.ts delete mode 100644 src/demodata/vehicle.ts delete mode 100644 src/demodata/vehicleType.ts delete mode 100644 src/demodata/wearable.ts delete mode 100644 src/demodata/wearableType.ts diff --git a/src/components/admin/unit/damageReport/DamageReportListItem.vue b/src/components/admin/unit/damageReport/DamageReportListItem.vue index 82fd74b..a838973 100644 --- a/src/components/admin/unit/damageReport/DamageReportListItem.vue +++ b/src/components/admin/unit/damageReport/DamageReportListItem.vue @@ -16,7 +16,7 @@ import { defineComponent, type PropType } from "vue"; import { mapState, mapActions } from "pinia"; import { useAbilityStore } from "@/stores/ability"; -import type { DamageReportViewModel } from "@/viewmodels/admin/unit/damageReport/damageReport.models"; +import type { DamageReportViewModel } from "@/viewmodels/admin/unit/damageReport.models"; diff --git a/src/views/admin/unit/equipment/DamageReport.vue b/src/views/admin/unit/equipment/DamageReport.vue index 3a1f043..fbe0f8d 100644 --- a/src/views/admin/unit/equipment/DamageReport.vue +++ b/src/views/admin/unit/equipment/DamageReport.vue @@ -29,7 +29,7 @@ import { mapActions, mapState } from "pinia"; import { useAbilityStore } from "@/stores/ability"; import { useEquipmentDamageReportStore } from "@/stores/admin/unit/equipment/damageReport"; import Pagination from "@/components/Pagination.vue"; -import type { DamageReportViewModel } from "@/viewmodels/admin/unit/damageReport/damageReport.models"; +import type { DamageReportViewModel } from "@/viewmodels/admin/unit/damageReport.models"; import { PhotoIcon, PencilSquareIcon } from "@heroicons/vue/24/outline"; diff --git a/src/views/admin/unit/equipmentType/EquipmentType.vue b/src/views/admin/unit/equipmentType/EquipmentType.vue index 8403461..f7f3d6b 100644 --- a/src/views/admin/unit/equipmentType/EquipmentType.vue +++ b/src/views/admin/unit/equipmentType/EquipmentType.vue @@ -33,7 +33,7 @@ import { useEquipmentTypeStore } from "@/stores/admin/unit/equipmentType/equipme import { useModalStore } from "@/stores/modal"; import Pagination from "@/components/Pagination.vue"; import { useAbilityStore } from "@/stores/ability"; -import type { EquipmentTypeViewModel } from "@/viewmodels/admin/unit/equipmentType/equipmentType.models"; +import type { EquipmentTypeViewModel } from "@/viewmodels/admin/unit/equipment/equipmentType.models"; import EquipmentTypeListItem from "@/components/admin/unit/equipmentType/EquipmentTypeListItem.vue"; diff --git a/src/views/admin/unit/equipmentType/UpdateEquipmentType.vue b/src/views/admin/unit/equipmentType/UpdateEquipmentType.vue index eb372e7..5d1af44 100644 --- a/src/views/admin/unit/equipmentType/UpdateEquipmentType.vue +++ b/src/views/admin/unit/equipmentType/UpdateEquipmentType.vue @@ -37,7 +37,7 @@ import type { CreateEquipmentTypeViewModel, EquipmentTypeViewModel, UpdateEquipmentTypeViewModel, -} from "@/viewmodels/admin/unit/equipmentType/equipmentType.models"; +} from "@/viewmodels/admin/unit/equipment/equipmentType.models"; import Spinner from "@/components/Spinner.vue"; import SuccessCheckmark from "@/components/SuccessCheckmark.vue"; import FailureXMark from "@/components/FailureXMark.vue"; diff --git a/src/views/admin/unit/inspection/InspectionExecute.vue b/src/views/admin/unit/inspection/InspectionExecute.vue index 1c8bc08..322091f 100644 --- a/src/views/admin/unit/inspection/InspectionExecute.vue +++ b/src/views/admin/unit/inspection/InspectionExecute.vue @@ -56,6 +56,7 @@ import ResultInput from "@/components/admin/unit/inspection/ResultInput.vue"; import type { InspectionPointResultViewModel } from "@/viewmodels/admin/unit/inspection/inspection.models"; import cloneDeep from "lodash.clonedeep"; import isEqual from "lodash.isequal"; +import { InspectionPointEnum } from "@/enums/inspectionEnum"; diff --git a/src/views/admin/unit/inspectionPlan/UpdateInspectionPlan.vue b/src/views/admin/unit/inspectionPlan/UpdateInspectionPlan.vue index eaad622..4525b7c 100644 --- a/src/views/admin/unit/inspectionPlan/UpdateInspectionPlan.vue +++ b/src/views/admin/unit/inspectionPlan/UpdateInspectionPlan.vue @@ -37,7 +37,7 @@ import type { CreateInspectionPlanViewModel, InspectionPlanViewModel, UpdateInspectionPlanViewModel, -} from "@/viewmodels/admin/unit/inspectionPlan/inspectionPlan.models"; +} from "@/viewmodels/admin/unit/inspection/inspectionPlan.models"; import Spinner from "@/components/Spinner.vue"; import SuccessCheckmark from "@/components/SuccessCheckmark.vue"; import FailureXMark from "@/components/FailureXMark.vue"; diff --git a/src/views/admin/unit/respiratoryGear/CreateRespiratoryGear.vue b/src/views/admin/unit/respiratoryGear/CreateRespiratoryGear.vue index 3d84221..71f98f0 100644 --- a/src/views/admin/unit/respiratoryGear/CreateRespiratoryGear.vue +++ b/src/views/admin/unit/respiratoryGear/CreateRespiratoryGear.vue @@ -30,7 +30,7 @@ import { defineComponent } from "vue"; import { mapActions, mapState } from "pinia"; import MainTemplate from "@/templates/Main.vue"; import { useRespiratoryGearStore } from "@/stores/admin/unit/respiratoryGear/respiratoryGear"; -import type { CreateRespiratoryGearViewModel } from "@/viewmodels/admin/unit/respiratoryGear/respiratoryGear.models"; +import type { CreateRespiratoryGearViewModel } from "@/viewmodels/admin/unit/respiratory/respiratoryGear.models"; import Spinner from "@/components/Spinner.vue"; import SuccessCheckmark from "@/components/SuccessCheckmark.vue"; import FailureXMark from "@/components/FailureXMark.vue"; diff --git a/src/views/admin/unit/respiratoryGear/RespiratoryGear.vue b/src/views/admin/unit/respiratoryGear/RespiratoryGear.vue index c4f3a2c..211bd36 100644 --- a/src/views/admin/unit/respiratoryGear/RespiratoryGear.vue +++ b/src/views/admin/unit/respiratoryGear/RespiratoryGear.vue @@ -39,7 +39,7 @@ import { useRespiratoryGearStore } from "@/stores/admin/unit/respiratoryGear/res import { useModalStore } from "@/stores/modal"; import Pagination from "@/components/Pagination.vue"; import { useAbilityStore } from "@/stores/ability"; -import type { RespiratoryGearViewModel } from "@/viewmodels/admin/unit/respiratoryGear/respiratoryGear.models"; +import type { RespiratoryGearViewModel } from "@/viewmodels/admin/unit/respiratory/respiratoryGear.models"; import RespiratoryGearListItem from "@/components/admin/unit/respiratoryGear/RespiratoryGearListItem.vue"; diff --git a/src/views/admin/unit/respiratoryMission/CreateRespiratoryMission.vue b/src/views/admin/unit/respiratoryMission/CreateRespiratoryMission.vue index 6a422fd..3687b54 100644 --- a/src/views/admin/unit/respiratoryMission/CreateRespiratoryMission.vue +++ b/src/views/admin/unit/respiratoryMission/CreateRespiratoryMission.vue @@ -41,7 +41,7 @@ import { defineComponent } from "vue"; import { mapActions, mapState } from "pinia"; import MainTemplate from "@/templates/Main.vue"; import { useRespiratoryMissionStore } from "@/stores/admin/unit/respiratoryMission/respiratoryMission"; -import type { CreateRespiratoryMissionViewModel } from "@/viewmodels/admin/unit/respiratoryMission/respiratoryMission.models"; +import type { CreateRespiratoryMissionViewModel } from "@/viewmodels/admin/unit/respiratory/respiratoryMission.models"; import Spinner from "@/components/Spinner.vue"; import SuccessCheckmark from "@/components/SuccessCheckmark.vue"; import FailureXMark from "@/components/FailureXMark.vue"; diff --git a/src/views/admin/unit/respiratoryMission/RespiratoryMission.vue b/src/views/admin/unit/respiratoryMission/RespiratoryMission.vue index d7ecb22..c3f4834 100644 --- a/src/views/admin/unit/respiratoryMission/RespiratoryMission.vue +++ b/src/views/admin/unit/respiratoryMission/RespiratoryMission.vue @@ -39,7 +39,7 @@ import { useRespiratoryMissionStore } from "@/stores/admin/unit/respiratoryMissi import { useModalStore } from "@/stores/modal"; import Pagination from "@/components/Pagination.vue"; import { useAbilityStore } from "@/stores/ability"; -import type { RespiratoryMissionViewModel } from "@/viewmodels/admin/unit/respiratoryMission/respiratoryMission.models"; +import type { RespiratoryMissionViewModel } from "@/viewmodels/admin/unit/respiratory/respiratoryMission.models"; import RespiratoryMissionListItem from "@/components/admin/unit/respiratoryMission/RespiratoryMissionListItem.vue"; diff --git a/src/views/admin/unit/respiratoryWearer/CreateRespiratoryWearer.vue b/src/views/admin/unit/respiratoryWearer/CreateRespiratoryWearer.vue index 4c20abf..7334432 100644 --- a/src/views/admin/unit/respiratoryWearer/CreateRespiratoryWearer.vue +++ b/src/views/admin/unit/respiratoryWearer/CreateRespiratoryWearer.vue @@ -30,7 +30,7 @@ import { defineComponent } from "vue"; import { mapActions, mapState } from "pinia"; import MainTemplate from "@/templates/Main.vue"; import { useRespiratoryWearerStore } from "@/stores/admin/unit/respiratoryWearer/respiratoryWearer"; -import type { CreateRespiratoryWearerViewModel } from "@/viewmodels/admin/unit/respiratoryWearer/respiratoryWearer.models"; +import type { CreateRespiratoryWearerViewModel } from "@/viewmodels/admin/unit/respiratory/respiratoryWearer.models"; import Spinner from "@/components/Spinner.vue"; import SuccessCheckmark from "@/components/SuccessCheckmark.vue"; import FailureXMark from "@/components/FailureXMark.vue"; diff --git a/src/views/admin/unit/respiratoryWearer/RespiratoryWearer.vue b/src/views/admin/unit/respiratoryWearer/RespiratoryWearer.vue index 07c1ba0..58f664a 100644 --- a/src/views/admin/unit/respiratoryWearer/RespiratoryWearer.vue +++ b/src/views/admin/unit/respiratoryWearer/RespiratoryWearer.vue @@ -39,7 +39,7 @@ import { useRespiratoryWearerStore } from "@/stores/admin/unit/respiratoryWearer import { useModalStore } from "@/stores/modal"; import Pagination from "@/components/Pagination.vue"; import { useAbilityStore } from "@/stores/ability"; -import type { RespiratoryWearerViewModel } from "@/viewmodels/admin/unit/respiratoryWearer/respiratoryWearer.models"; +import type { RespiratoryWearerViewModel } from "@/viewmodels/admin/unit/respiratory/respiratoryWearer.models"; import RespiratoryWearerListItem from "@/components/admin/unit/respiratoryWearer/RespiratoryWearerListItem.vue"; diff --git a/src/views/admin/unit/vehicle/DamageReport.vue b/src/views/admin/unit/vehicle/DamageReport.vue index dd05bf6..04097f8 100644 --- a/src/views/admin/unit/vehicle/DamageReport.vue +++ b/src/views/admin/unit/vehicle/DamageReport.vue @@ -29,7 +29,7 @@ import { mapActions, mapState } from "pinia"; import { useAbilityStore } from "@/stores/ability"; import { useVehicleDamageReportStore } from "@/stores/admin/unit/vehicle/damageReport"; import Pagination from "@/components/Pagination.vue"; -import type { DamageReportViewModel } from "@/viewmodels/admin/unit/damageReport/damageReport.models"; +import type { DamageReportViewModel } from "@/viewmodels/admin/unit/damageReport.models"; import { PhotoIcon, PencilSquareIcon } from "@heroicons/vue/24/outline"; diff --git a/src/views/admin/unit/vehicleType/UpdateVehicleType.vue b/src/views/admin/unit/vehicleType/UpdateVehicleType.vue index 2262d00..57e1db1 100644 --- a/src/views/admin/unit/vehicleType/UpdateVehicleType.vue +++ b/src/views/admin/unit/vehicleType/UpdateVehicleType.vue @@ -37,7 +37,7 @@ import type { CreateVehicleTypeViewModel, VehicleTypeViewModel, UpdateVehicleTypeViewModel, -} from "@/viewmodels/admin/unit/vehicleType/vehicleType.models"; +} from "@/viewmodels/admin/unit/vehicle/vehicleType.models"; import Spinner from "@/components/Spinner.vue"; import SuccessCheckmark from "@/components/SuccessCheckmark.vue"; import FailureXMark from "@/components/FailureXMark.vue"; diff --git a/src/views/admin/unit/vehicleType/VehicleType.vue b/src/views/admin/unit/vehicleType/VehicleType.vue index a74082e..5dcb552 100644 --- a/src/views/admin/unit/vehicleType/VehicleType.vue +++ b/src/views/admin/unit/vehicleType/VehicleType.vue @@ -33,7 +33,7 @@ import { useVehicleTypeStore } from "@/stores/admin/unit/vehicleType/vehicleType import { useModalStore } from "@/stores/modal"; import Pagination from "@/components/Pagination.vue"; import { useAbilityStore } from "@/stores/ability"; -import type { VehicleTypeViewModel } from "@/viewmodels/admin/unit/vehicleType/vehicleType.models"; +import type { VehicleTypeViewModel } from "@/viewmodels/admin/unit/vehicle/vehicleType.models"; import VehicleTypeListItem from "@/components/admin/unit/vehicleType/VehicleTypeListItem.vue"; diff --git a/src/views/admin/unit/wearable/DamageReport.vue b/src/views/admin/unit/wearable/DamageReport.vue index 78f1b3e..555a273 100644 --- a/src/views/admin/unit/wearable/DamageReport.vue +++ b/src/views/admin/unit/wearable/DamageReport.vue @@ -29,7 +29,7 @@ import { mapActions, mapState } from "pinia"; import { useAbilityStore } from "@/stores/ability"; import { useWearableDamageReportStore } from "@/stores/admin/unit/wearable/damageReport"; import Pagination from "@/components/Pagination.vue"; -import type { DamageReportViewModel } from "@/viewmodels/admin/unit/damageReport/damageReport.models"; +import type { DamageReportViewModel } from "@/viewmodels/admin/unit/damageReport.models"; import { PhotoIcon, PencilSquareIcon } from "@heroicons/vue/24/outline"; diff --git a/src/views/admin/unit/wearableType/UpdateWearableType.vue b/src/views/admin/unit/wearableType/UpdateWearableType.vue index 62cd35a..4bc7344 100644 --- a/src/views/admin/unit/wearableType/UpdateWearableType.vue +++ b/src/views/admin/unit/wearableType/UpdateWearableType.vue @@ -37,7 +37,7 @@ import type { CreateWearableTypeViewModel, WearableTypeViewModel, UpdateWearableTypeViewModel, -} from "@/viewmodels/admin/unit/wearableType/wearableType.models"; +} from "@/viewmodels/admin/unit/wearable/wearableType.models"; import Spinner from "@/components/Spinner.vue"; import SuccessCheckmark from "@/components/SuccessCheckmark.vue"; import FailureXMark from "@/components/FailureXMark.vue"; diff --git a/src/views/admin/unit/wearableType/WearableType.vue b/src/views/admin/unit/wearableType/WearableType.vue index 33c18f0..0c1c45c 100644 --- a/src/views/admin/unit/wearableType/WearableType.vue +++ b/src/views/admin/unit/wearableType/WearableType.vue @@ -33,7 +33,7 @@ import { useWearableTypeStore } from "@/stores/admin/unit/wearableType/wearableT import { useModalStore } from "@/stores/modal"; import Pagination from "@/components/Pagination.vue"; import { useAbilityStore } from "@/stores/ability"; -import type { WearableTypeViewModel } from "@/viewmodels/admin/unit/wearableType/wearableType.models"; +import type { WearableTypeViewModel } from "@/viewmodels/admin/unit/wearable/wearableType.models"; import WearableTypeListItem from "@/components/admin/unit/wearableType/WearableTypeListItem.vue"; -- 2.47.3 From ddeac1aa26423c716726c111c1148e9fed0a97f5 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Wed, 4 Jun 2025 14:30:41 +0200 Subject: [PATCH 04/16] connect to backend --- .../equipmentType/EquipmentTypeListItem.vue | 6 ++ .../unit/vehicleType/VehicleTypeListItem.vue | 6 ++ .../wearableType/WearableTypeListItem.vue | 26 ++++++++ .../search/EquipmentSearchSelect.vue | 2 +- .../search/MemberSearchSelectSingle.vue | 4 +- src/components/search/VehicleSearchSelect.vue | 2 +- .../admin/unit/damageReport/damageReport.ts | 17 +---- .../admin/unit/equipment/damageReport.ts | 8 +-- src/stores/admin/unit/equipment/equipment.ts | 20 +++--- src/stores/admin/unit/equipment/inspection.ts | 13 +--- .../admin/unit/equipmentType/equipmentType.ts | 24 +++---- .../unit/equipmentType/inspectionPlan.ts | 15 +---- .../admin/unit/inspection/inspection.ts | 12 ++-- .../unit/inspectionPlan/inspectionPlan.ts | 31 +++------ .../unit/respiratoryGear/respiratoryGear.ts | 12 +--- .../respiratoryMission/respiratoryMission.ts | 12 +--- .../respiratoryWearer/respiratoryWearer.ts | 12 +--- src/stores/admin/unit/vehicle/damageReport.ts | 11 +--- src/stores/admin/unit/vehicle/inspection.ts | 9 +-- src/stores/admin/unit/vehicle/vehicle.ts | 20 +++--- .../admin/unit/vehicleType/inspectionPlan.ts | 15 +---- .../admin/unit/vehicleType/vehicleType.ts | 24 +++---- .../admin/unit/wearable/damageReport.ts | 11 +--- src/stores/admin/unit/wearable/wearable.ts | 22 ++++--- .../admin/unit/wearableType/wearableType.ts | 19 +++--- .../unit/inspection/inspection.models.ts | 2 +- .../unit/inspection/inspectionPlan.models.ts | 6 +- .../unit/damageReport/DamageReportRouting.vue | 7 -- .../admin/unit/equipment/DamageReport.vue | 5 +- .../equipmentType/UpdateEquipmentType.vue | 8 +-- .../unit/inspection/InspectionExecute.vue | 2 +- .../inspectionPlan/CreateInspectionPlan.vue | 4 +- .../admin/unit/inspectionPlan/Overview.vue | 3 +- .../inspectionPlan/UpdateInspectionPlan.vue | 25 +++++++- src/views/admin/unit/vehicle/DamageReport.vue | 5 +- .../unit/vehicleType/UpdateVehicleType.vue | 8 +-- .../admin/unit/vehicleType/VehicleType.vue | 2 +- .../admin/unit/wearable/DamageReport.vue | 5 +- .../admin/unit/wearable/UpdateWearable.vue | 11 ++-- .../unit/wearableType/UpdateWearableType.vue | 64 ++++++++++--------- .../admin/unit/wearableType/WearableType.vue | 2 +- 41 files changed, 221 insertions(+), 291 deletions(-) diff --git a/src/components/admin/unit/equipmentType/EquipmentTypeListItem.vue b/src/components/admin/unit/equipmentType/EquipmentTypeListItem.vue index f3f50a1..7859fe1 100644 --- a/src/components/admin/unit/equipmentType/EquipmentTypeListItem.vue +++ b/src/components/admin/unit/equipmentType/EquipmentTypeListItem.vue @@ -8,6 +8,12 @@ {{ equipmentType.type }}

+
+
+

Beschreibung:

+

{{ equipmentType.description }}

+
+
diff --git a/src/components/admin/unit/vehicleType/VehicleTypeListItem.vue b/src/components/admin/unit/vehicleType/VehicleTypeListItem.vue index b18a059..6b621ef 100644 --- a/src/components/admin/unit/vehicleType/VehicleTypeListItem.vue +++ b/src/components/admin/unit/vehicleType/VehicleTypeListItem.vue @@ -8,6 +8,12 @@ {{ vehicleType.type }}

+
+
+

Beschreibung:

+

{{ vehicleType.description }}

+
+
diff --git a/src/components/admin/unit/wearableType/WearableTypeListItem.vue b/src/components/admin/unit/wearableType/WearableTypeListItem.vue index ce86f5b..a6cb6b9 100644 --- a/src/components/admin/unit/wearableType/WearableTypeListItem.vue +++ b/src/components/admin/unit/wearableType/WearableTypeListItem.vue @@ -4,6 +4,23 @@

{{ wearableType.type }}

+
+ + + +
+ +
+
+
+
+
+

Beschreibung:

+

{{ wearableType.description }}

+
@@ -25,5 +42,14 @@ export default defineComponent({ computed: { ...mapState(useAbilityStore, ["can"]), }, + methods: { + ...mapActions(useModalStore, ["openModal"]), + openDeleteModal() { + this.openModal( + markRaw(defineAsyncComponent(() => import("@/components/admin/unit/wearableType/DeleteWearableTypeModal.vue"))), + this.wearableType.id + ); + }, + }, }); diff --git a/src/components/search/EquipmentSearchSelect.vue b/src/components/search/EquipmentSearchSelect.vue index 2f60486..6bd5683 100644 --- a/src/components/search/EquipmentSearchSelect.vue +++ b/src/components/search/EquipmentSearchSelect.vue @@ -59,7 +59,7 @@ }" > - {{ equipment.name }} + {{ equipment.name }} - Code: {{ equipment.code }} f.id == id); }, loadMemberInitial() { - if (this.modelValue == "") return; + if (this.modelValue == "" || this.modelValue == null) return; this.fetchMemberById(this.modelValue) .then((res) => { this.chosen = res.data; diff --git a/src/components/search/VehicleSearchSelect.vue b/src/components/search/VehicleSearchSelect.vue index 5f19211..21de173 100644 --- a/src/components/search/VehicleSearchSelect.vue +++ b/src/components/search/VehicleSearchSelect.vue @@ -59,7 +59,7 @@ }" > - {{ vehicle.name }} + {{ vehicle.name }} - Code: {{ vehicle.code }} ({ ...e, tab_pos: i })); - this.totalCount = this.damageReports.length; - this.loading = "fetched"; - return; if (clear) this.damageReports = []; this.loading = "loading"; + //TODO enable fetch of done reports http .get(`/admin/damageReport?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}`) .then((result) => { @@ -66,13 +63,6 @@ export const useDamageReportStore = defineStore("damageReport", { fetchDamageReportById(id: string) { return http.get(`/admin/damageReport/${id}`); }, - async createDamageReport(damageReport: CreateDamageReportViewModel): Promise> { - const result = await http.post(`/admin/damageReport`, { - // TODO: data - }); - this.fetchDamageReports(); - return result; - }, async updateDamageReport(damageReport: UpdateDamageReportViewModel): Promise> { const result = await http.patch(`/admin/damageReport/${damageReport.id}`, { // TODO: data @@ -80,10 +70,5 @@ export const useDamageReportStore = defineStore("damageReport", { this.fetchDamageReports(); return result; }, - async deleteDamageReport(damageReport: number): Promise> { - const result = await http.delete(`/admin/damageReport/${damageReport}`); - this.fetchDamageReports(); - return result; - }, }, }); diff --git a/src/stores/admin/unit/equipment/damageReport.ts b/src/stores/admin/unit/equipment/damageReport.ts index afda1e8..eabf261 100644 --- a/src/stores/admin/unit/equipment/damageReport.ts +++ b/src/stores/admin/unit/equipment/damageReport.ts @@ -14,17 +14,11 @@ export const useEquipmentDamageReportStore = defineStore("equipmentDamageReport" actions: { fetchDamageReportForEquipment(offset = 0, count = 25, search = "", clear = false) { const equipmentId = useEquipmentStore().activeEquipment; - this.damageReports = damageReportDemoData - .filter((drdd) => drdd.relatedId == equipmentId) - .map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.damageReports.length; - this.loading = "fetched"; - return; if (clear) this.damageReports = []; this.loading = "loading"; http .get( - `/admin/equipment/${equipmentId}/damageReport?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}` + `/admin/damagereport/equipment/${equipmentId}?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}` ) .then((result) => { this.totalCount = result.data.total; diff --git a/src/stores/admin/unit/equipment/equipment.ts b/src/stores/admin/unit/equipment/equipment.ts index 7550a23..67e92c0 100644 --- a/src/stores/admin/unit/equipment/equipment.ts +++ b/src/stores/admin/unit/equipment/equipment.ts @@ -6,7 +6,6 @@ import type { } from "@/viewmodels/admin/unit/equipment/equipment.models"; import { http } from "@/serverCom"; import type { AxiosResponse } from "axios"; -import { equipmentDemoData } from "@/demodata/equipment"; export const useEquipmentStore = defineStore("equipment", { state: () => { @@ -21,10 +20,6 @@ export const useEquipmentStore = defineStore("equipment", { }, actions: { fetchEquipments(offset = 0, count = 25, search = "", clear = false) { - this.equipments = equipmentDemoData.map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.equipments.length; - this.loading = "fetched"; - return; if (clear) this.equipments = []; this.loading = "loading"; http @@ -68,9 +63,6 @@ export const useEquipmentStore = defineStore("equipment", { }); }, fetchEquipmentByActiveId() { - this.activeEquipmentObj = equipmentDemoData.find((e) => e.id == this.activeEquipment) as EquipmentViewModel; - this.loadingActive = "fetched"; - return; this.loadingActive = "loading"; http .get(`/admin/equipment/${this.activeEquipment}`) @@ -87,14 +79,22 @@ export const useEquipmentStore = defineStore("equipment", { }, async createEquipment(equipment: CreateEquipmentViewModel): Promise> { const result = await http.post(`/admin/equipment`, { - // TODO: data + equipmentTypeId: equipment.equipmentTypeId, + name: equipment.name, + code: equipment.code, + location: equipment.location, + commissioned: equipment.commissioned, }); this.fetchEquipments(); return result; }, async updateActiveEquipment(equipment: UpdateEquipmentViewModel): Promise> { const result = await http.patch(`/admin/equipment/${equipment.id}`, { - // TODO: data + name: equipment.name, + code: equipment.code, + location: equipment.location, + commissioned: equipment.commissioned, + decommissioned: equipment.decommissioned, }); this.fetchEquipments(); return result; diff --git a/src/stores/admin/unit/equipment/inspection.ts b/src/stores/admin/unit/equipment/inspection.ts index 3a3e715..adbe911 100644 --- a/src/stores/admin/unit/equipment/inspection.ts +++ b/src/stores/admin/unit/equipment/inspection.ts @@ -1,7 +1,6 @@ import { defineStore } from "pinia"; import { http } from "@/serverCom"; import type { InspectionViewModel } from "@/viewmodels/admin/unit/inspection/inspection.models"; -import { inspectionDemoData } from "@/demodata/inspectionPlan"; import { useEquipmentStore } from "./equipment"; export const useEquipmentInspectionStore = defineStore("equipmentInspection", { @@ -13,20 +12,12 @@ export const useEquipmentInspectionStore = defineStore("equipmentInspection", { }; }, actions: { - fetchInspectionForEquipment(offset = 0, count = 25, search = "", clear = false) { + fetchInspectionForEquipment(offset = 0, count = 25, clear = false) { const equipmentId = useEquipmentStore().activeEquipment; - this.inspections = inspectionDemoData - .filter((idd) => idd.relatedId == equipmentId) - .map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.inspections.length; - this.loading = "fetched"; - return; if (clear) this.inspections = []; this.loading = "loading"; http - .get( - `/admin/equipment/${equipmentId}/inspection?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}` - ) + .get(`/admin/inspection/equipment/${equipmentId}?offset=${offset}&count=${count}`) .then((result) => { this.totalCount = result.data.total; result.data.inspections diff --git a/src/stores/admin/unit/equipmentType/equipmentType.ts b/src/stores/admin/unit/equipmentType/equipmentType.ts index c35b859..694e635 100644 --- a/src/stores/admin/unit/equipmentType/equipmentType.ts +++ b/src/stores/admin/unit/equipmentType/equipmentType.ts @@ -3,10 +3,9 @@ import type { EquipmentTypeViewModel, CreateEquipmentTypeViewModel, UpdateEquipmentTypeViewModel, -} from "@/viewmodels/admin/unit/equipmentType/equipmentType.models"; +} from "@/viewmodels/admin/unit/equipment/equipmentType.models"; import { http } from "@/serverCom"; import type { AxiosResponse } from "axios"; -import { equipmentTypeDemoData } from "@/demodata/equipmentType"; export const useEquipmentTypeStore = defineStore("equipmentType", { state: () => { @@ -21,17 +20,13 @@ export const useEquipmentTypeStore = defineStore("equipmentType", { }, actions: { fetchEquipmentTypes(offset = 0, count = 25, search = "", clear = false) { - this.equipmentTypes = equipmentTypeDemoData.map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.equipmentTypes.length; - this.loading = "fetched"; - return; if (clear) this.equipmentTypes = []; this.loading = "loading"; http .get(`/admin/equipmentType?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}`) .then((result) => { this.totalCount = result.data.total; - result.data.equipments + result.data.equipmentTypes .filter((elem: EquipmentTypeViewModel) => this.equipmentTypes.findIndex((m) => m.id == elem.id) == -1) .map((elem: EquipmentTypeViewModel, index: number): EquipmentTypeViewModel & { tab_pos: number } => { return { @@ -50,20 +45,15 @@ export const useEquipmentTypeStore = defineStore("equipmentType", { }, async getAllEquipmentTypes(): Promise> { return await http.get(`/admin/equipmentType?noLimit=true`).then((res) => { - return { ...res, data: res.data.equipments }; + return { ...res, data: res.data.equipmentTypes }; }); }, async searchEquipmentTypes(search: string): Promise> { return await http.get(`/admin/equipmentType?search=${search}&noLimit=true`).then((res) => { - return { ...res, data: res.data.equipments }; + return { ...res, data: res.data.equipmentTypes }; }); }, fetchEquipmentTypeByActiveId() { - this.activeEquipmentTypeObj = equipmentTypeDemoData.find( - (e) => e.id == this.activeEquipmentType - ) as EquipmentTypeViewModel; - this.loadingActive = "fetched"; - return; this.loadingActive = "loading"; http .get(`/admin/equipmentType/${this.activeEquipmentType}`) @@ -80,14 +70,16 @@ export const useEquipmentTypeStore = defineStore("equipmentType", { }, async createEquipmentType(equipmentType: CreateEquipmentTypeViewModel): Promise> { const result = await http.post(`/admin/equipmentType`, { - // TODO: data + type: equipmentType.type, + description: equipmentType.description, }); this.fetchEquipmentTypes(); return result; }, async updateActiveEquipmentType(equipmentType: UpdateEquipmentTypeViewModel): Promise> { const result = await http.patch(`/admin/equipmentType/${equipmentType.id}`, { - // TODO: data + type: equipmentType.type, + description: equipmentType.description, }); this.fetchEquipmentTypes(); return result; diff --git a/src/stores/admin/unit/equipmentType/inspectionPlan.ts b/src/stores/admin/unit/equipmentType/inspectionPlan.ts index c412056..dc3b31f 100644 --- a/src/stores/admin/unit/equipmentType/inspectionPlan.ts +++ b/src/stores/admin/unit/equipmentType/inspectionPlan.ts @@ -1,14 +1,6 @@ import { defineStore } from "pinia"; -import type { - EquipmentTypeViewModel, - CreateEquipmentTypeViewModel, - UpdateEquipmentTypeViewModel, -} from "@/viewmodels/admin/unit/equipmentType/equipmentType.models"; import { http } from "@/serverCom"; -import type { AxiosResponse } from "axios"; -import { equipmentTypeDemoData } from "@/demodata/equipmentType"; -import type { InspectionPlanViewModel } from "@/viewmodels/admin/unit/inspectionPlan/inspectionPlan.models"; -import { inspectionPlanDemoData } from "@/demodata/inspectionPlan"; +import type { InspectionPlanViewModel } from "@/viewmodels/admin/unit/inspection/inspectionPlan.models"; import { useEquipmentTypeStore } from "./equipmentType"; export const useEquipmentTypeInspectionPlanStore = defineStore("equipmentTypeInspectionPlan", { @@ -21,12 +13,9 @@ export const useEquipmentTypeInspectionPlanStore = defineStore("equipmentTypeIns actions: { fetchInspectionPlanForEquipmentType() { const equipmentTypeId = useEquipmentTypeStore().activeEquipmentType; - this.inspectionPlans = inspectionPlanDemoData.filter((ipdd) => ipdd.relatedId == equipmentTypeId); - this.loading = "fetched"; - return; this.loading = "loading"; http - .get(`/admin/equipmentType/${equipmentTypeId}/inspectionPlan`) + .get(`/admin/inspectionPlan/equipmentType/${equipmentTypeId}`) .then((result) => { this.inspectionPlans = result.data; this.loading = "fetched"; diff --git a/src/stores/admin/unit/inspection/inspection.ts b/src/stores/admin/unit/inspection/inspection.ts index 30b7b8b..abe1877 100644 --- a/src/stores/admin/unit/inspection/inspection.ts +++ b/src/stores/admin/unit/inspection/inspection.ts @@ -1,7 +1,6 @@ import { defineStore } from "pinia"; import { http } from "@/serverCom"; import type { AxiosResponse } from "axios"; -import { inspectionDemoData } from "@/demodata/inspectionPlan"; import type { InspectionViewModel } from "@/viewmodels/admin/unit/inspection/inspection.models"; export const useInspectionStore = defineStore("inspection", { @@ -14,10 +13,6 @@ export const useInspectionStore = defineStore("inspection", { }, actions: { fetchInspectionByActiveId() { - this.loadingActive = "loading"; - this.activeInspectionObj = inspectionDemoData.find((e) => e.id == this.activeInspection) as InspectionViewModel; - this.loadingActive = "fetched"; - return; this.loadingActive = "loading"; http .get(`/admin/inspection/${this.activeInspection}`) @@ -34,14 +29,17 @@ export const useInspectionStore = defineStore("inspection", { }, async createInspection(inspection: any): Promise> { const result = await http.post(`/admin/inspection`, { - // TODO: data + context: "", + inspectionPlanId: "", + relatedId: "", + assigned: "equipment|vehicle", }); this.fetchInspectionByActiveId(); return result; }, async updateActiveInspection(inspection: any): Promise> { const result = await http.patch(`/admin/inspection/${inspection.id}`, { - // TODO: data + context: "", }); this.fetchInspectionByActiveId(); return result; diff --git a/src/stores/admin/unit/inspectionPlan/inspectionPlan.ts b/src/stores/admin/unit/inspectionPlan/inspectionPlan.ts index 02ab39d..78f4d73 100644 --- a/src/stores/admin/unit/inspectionPlan/inspectionPlan.ts +++ b/src/stores/admin/unit/inspectionPlan/inspectionPlan.ts @@ -3,10 +3,9 @@ import type { InspectionPlanViewModel, CreateInspectionPlanViewModel, UpdateInspectionPlanViewModel, -} from "@/viewmodels/admin/unit/inspectionPlan/inspectionPlan.models"; +} from "@/viewmodels/admin/unit/inspection/inspectionPlan.models"; import { http } from "@/serverCom"; import type { AxiosResponse } from "axios"; -import { inspectionPlanDemoData } from "@/demodata/inspectionPlan"; export const useInspectionPlanStore = defineStore("inspectionPlan", { state: () => { @@ -21,10 +20,6 @@ export const useInspectionPlanStore = defineStore("inspectionPlan", { }, actions: { fetchInspectionPlans(offset = 0, count = 25, search = "", clear = false) { - this.inspectionPlans = inspectionPlanDemoData.map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.inspectionPlans.length; - this.loading = "fetched"; - return; if (clear) this.inspectionPlans = []; this.loading = "loading"; http @@ -53,26 +48,12 @@ export const useInspectionPlanStore = defineStore("inspectionPlan", { return { ...res, data: res.data.inspectionPlans }; }); }, - async getInspectionPlansByIds(ids: Array): Promise> { - return await http - .post(`/admin/inspectionPlan/ids`, { - ids, - }) - .then((res) => { - return { ...res, data: res.data.inspectionPlans }; - }); - }, async searchInspectionPlans(search: string): Promise> { return await http.get(`/admin/inspectionPlan?search=${search}&noLimit=true`).then((res) => { return { ...res, data: res.data.inspectionPlans }; }); }, fetchInspectionPlanByActiveId() { - this.activeInspectionPlanObj = inspectionPlanDemoData.find( - (e) => e.id == this.activeInspectionPlan - ) as InspectionPlanViewModel; - this.loadingActive = "fetched"; - return; this.loadingActive = "loading"; http .get(`/admin/inspectionPlan/${this.activeInspectionPlan}`) @@ -89,14 +70,20 @@ export const useInspectionPlanStore = defineStore("inspectionPlan", { }, async createInspectionPlan(inspectionPlan: CreateInspectionPlanViewModel): Promise> { const result = await http.post(`/admin/inspectionPlan`, { - // TODO: data + title: inspectionPlan.title, + inspectionInterval: inspectionPlan.inspectionInterval, + remindTime: inspectionPlan.remindTime, + relatedId: inspectionPlan.relatedId, + assigned: inspectionPlan.assigned, }); this.fetchInspectionPlans(); return result; }, async updateActiveInspectionPlan(inspectionPlan: UpdateInspectionPlanViewModel): Promise> { const result = await http.patch(`/admin/inspectionPlan/${inspectionPlan.id}`, { - // TODO: data + title: inspectionPlan.title, + inspectionInterval: inspectionPlan.inspectionInterval, + remindTime: inspectionPlan.remindTime, }); this.fetchInspectionPlans(); return result; diff --git a/src/stores/admin/unit/respiratoryGear/respiratoryGear.ts b/src/stores/admin/unit/respiratoryGear/respiratoryGear.ts index 2b2e548..a49110c 100644 --- a/src/stores/admin/unit/respiratoryGear/respiratoryGear.ts +++ b/src/stores/admin/unit/respiratoryGear/respiratoryGear.ts @@ -3,10 +3,9 @@ import type { RespiratoryGearViewModel, CreateRespiratoryGearViewModel, UpdateRespiratoryGearViewModel, -} from "@/viewmodels/admin/unit/respiratoryGear/respiratoryGear.models"; +} from "@/viewmodels/admin/unit/respiratory/respiratoryGear.models"; import { http } from "@/serverCom"; import type { AxiosResponse } from "axios"; -import { respiratoryGearDemoData } from "@/demodata/respiratoryGear"; export const useRespiratoryGearStore = defineStore("respiratoryGear", { state: () => { @@ -21,10 +20,6 @@ export const useRespiratoryGearStore = defineStore("respiratoryGear", { }, actions: { fetchRespiratoryGears(offset = 0, count = 25, search = "", clear = false) { - this.respiratoryGears = respiratoryGearDemoData.map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.respiratoryGears.length; - this.loading = "fetched"; - return; if (clear) this.respiratoryGears = []; this.loading = "loading"; http @@ -59,11 +54,6 @@ export const useRespiratoryGearStore = defineStore("respiratoryGear", { }); }, fetchRespiratoryGearByActiveId() { - this.activeRespiratoryGearObj = respiratoryGearDemoData.find( - (e) => e.id == this.activeRespiratoryGear - ) as RespiratoryGearViewModel; - this.loading = "fetched"; - return; this.loadingActive = "loading"; http .get(`/admin/respiratoryGear/${this.activeRespiratoryGear}`) diff --git a/src/stores/admin/unit/respiratoryMission/respiratoryMission.ts b/src/stores/admin/unit/respiratoryMission/respiratoryMission.ts index cc890ed..3b511fd 100644 --- a/src/stores/admin/unit/respiratoryMission/respiratoryMission.ts +++ b/src/stores/admin/unit/respiratoryMission/respiratoryMission.ts @@ -3,10 +3,9 @@ import type { RespiratoryMissionViewModel, CreateRespiratoryMissionViewModel, UpdateRespiratoryMissionViewModel, -} from "@/viewmodels/admin/unit/respiratoryMission/respiratoryMission.models"; +} from "@/viewmodels/admin/unit/respiratory/respiratoryMission.models"; import { http } from "@/serverCom"; import type { AxiosResponse } from "axios"; -import { respiratoryMissionDemoData } from "@/demodata/respiratoryMission"; export const useRespiratoryMissionStore = defineStore("respiratoryMission", { state: () => { @@ -21,10 +20,6 @@ export const useRespiratoryMissionStore = defineStore("respiratoryMission", { }, actions: { fetchRespiratoryMissions(offset = 0, count = 25, search = "", clear = false) { - this.respiratoryMissions = respiratoryMissionDemoData.map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.respiratoryMissions.length; - this.loading = "fetched"; - return; if (clear) this.respiratoryMissions = []; this.loading = "loading"; http @@ -63,11 +58,6 @@ export const useRespiratoryMissionStore = defineStore("respiratoryMission", { }); }, fetchRespiratoryMissionByActiveId() { - this.activeRespiratoryMissionObj = this.respiratoryMissions.find( - (e) => e.id == this.activeRespiratoryMission - ) as RespiratoryMissionViewModel; - this.loading = "fetched"; - return; this.loadingActive = "loading"; http .get(`/admin/respiratoryMission/${this.activeRespiratoryMission}`) diff --git a/src/stores/admin/unit/respiratoryWearer/respiratoryWearer.ts b/src/stores/admin/unit/respiratoryWearer/respiratoryWearer.ts index 6f17e98..cdf1181 100644 --- a/src/stores/admin/unit/respiratoryWearer/respiratoryWearer.ts +++ b/src/stores/admin/unit/respiratoryWearer/respiratoryWearer.ts @@ -3,10 +3,9 @@ import type { RespiratoryWearerViewModel, CreateRespiratoryWearerViewModel, UpdateRespiratoryWearerViewModel, -} from "@/viewmodels/admin/unit/respiratoryWearer/respiratoryWearer.models"; +} from "@/viewmodels/admin/unit/respiratory/respiratoryWearer.models"; import { http } from "@/serverCom"; import type { AxiosResponse } from "axios"; -import { respiratoryWearerDemoData } from "@/demodata/respiratoryWearer"; export const useRespiratoryWearerStore = defineStore("respiratoryWearer", { state: () => { @@ -21,10 +20,6 @@ export const useRespiratoryWearerStore = defineStore("respiratoryWearer", { }, actions: { fetchRespiratoryWearers(offset = 0, count = 25, search = "", clear = false) { - this.respiratoryWearers = respiratoryWearerDemoData.map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.respiratoryWearers.length; - this.loading = "fetched"; - return; if (clear) this.respiratoryWearers = []; this.loading = "loading"; http @@ -63,11 +58,6 @@ export const useRespiratoryWearerStore = defineStore("respiratoryWearer", { }); }, fetchRespiratoryWearerByActiveId() { - this.activeRespiratoryWearerObj = respiratoryWearerDemoData.find( - (e) => e.id == this.activeRespiratoryWearer - ) as RespiratoryWearerViewModel; - this.loading = "fetched"; - return; this.loadingActive = "loading"; http .get(`/admin/respiratoryWearer/${this.activeRespiratoryWearer}`) diff --git a/src/stores/admin/unit/vehicle/damageReport.ts b/src/stores/admin/unit/vehicle/damageReport.ts index 7774732..29a470d 100644 --- a/src/stores/admin/unit/vehicle/damageReport.ts +++ b/src/stores/admin/unit/vehicle/damageReport.ts @@ -1,8 +1,7 @@ import { defineStore } from "pinia"; import { http } from "@/serverCom"; import { useVehicleStore } from "./vehicle"; -import type { DamageReportViewModel } from "@/viewmodels/admin/unit/damageReport/damageReport.models"; -import { damageReportDemoData } from "@/demodata/damageReport"; +import type { DamageReportViewModel } from "@/viewmodels/admin/unit/damageReport.models"; export const useVehicleDamageReportStore = defineStore("vehicleDamageReport", { state: () => { @@ -15,17 +14,11 @@ export const useVehicleDamageReportStore = defineStore("vehicleDamageReport", { actions: { fetchDamageReportForVehicle(offset = 0, count = 25, search = "", clear = false) { const vehicleId = useVehicleStore().activeVehicle; - this.damageReports = damageReportDemoData - .filter((drdd) => drdd.relatedId == vehicleId) - .map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.damageReports.length; - this.loading = "fetched"; - return; if (clear) this.damageReports = []; this.loading = "loading"; http .get( - `/admin/vehicle/${vehicleId}/damageReport?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}` + `/admin/damagereport/vehicle/${vehicleId}?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}` ) .then((result) => { this.totalCount = result.data.total; diff --git a/src/stores/admin/unit/vehicle/inspection.ts b/src/stores/admin/unit/vehicle/inspection.ts index 00314f2..23885b9 100644 --- a/src/stores/admin/unit/vehicle/inspection.ts +++ b/src/stores/admin/unit/vehicle/inspection.ts @@ -1,7 +1,6 @@ import { defineStore } from "pinia"; import { http } from "@/serverCom"; import type { InspectionViewModel } from "@/viewmodels/admin/unit/inspection/inspection.models"; -import { inspectionDemoData } from "@/demodata/inspectionPlan"; import { useVehicleStore } from "./vehicle"; export const useVehicleInspectionStore = defineStore("vehicleInspection", { @@ -15,17 +14,11 @@ export const useVehicleInspectionStore = defineStore("vehicleInspection", { actions: { fetchInspectionForVehicle(offset = 0, count = 25, search = "", clear = false) { const vehicleId = useVehicleStore().activeVehicle; - this.inspections = inspectionDemoData - .filter((idd) => idd.relatedId == vehicleId) - .map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.inspections.length; - this.loading = "fetched"; - return; if (clear) this.inspections = []; this.loading = "loading"; http .get( - `/admin/vehicle/${vehicleId}/inspection?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}` + `/admin/inspection/vehicle/${vehicleId}?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}` ) .then((result) => { this.totalCount = result.data.total; diff --git a/src/stores/admin/unit/vehicle/vehicle.ts b/src/stores/admin/unit/vehicle/vehicle.ts index 75e54f6..7138cea 100644 --- a/src/stores/admin/unit/vehicle/vehicle.ts +++ b/src/stores/admin/unit/vehicle/vehicle.ts @@ -6,7 +6,6 @@ import type { } from "@/viewmodels/admin/unit/vehicle/vehicle.models"; import { http } from "@/serverCom"; import type { AxiosResponse } from "axios"; -import { vehicleDemoData } from "@/demodata/vehicle"; export const useVehicleStore = defineStore("vehicle", { state: () => { @@ -21,10 +20,6 @@ export const useVehicleStore = defineStore("vehicle", { }, actions: { fetchVehicles(offset = 0, count = 25, search = "", clear = false) { - this.vehicles = vehicleDemoData.map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.vehicles.length; - this.loading = "fetched"; - return; if (clear) this.vehicles = []; this.loading = "loading"; http @@ -68,9 +63,6 @@ export const useVehicleStore = defineStore("vehicle", { }); }, fetchVehicleByActiveId() { - this.activeVehicleObj = vehicleDemoData.find((e) => e.id == this.activeVehicle) as VehicleViewModel; - this.loadingActive = "fetched"; - return; this.loadingActive = "loading"; http .get(`/admin/vehicle/${this.activeVehicle}`) @@ -87,14 +79,22 @@ export const useVehicleStore = defineStore("vehicle", { }, async createVehicle(vehicle: CreateVehicleViewModel): Promise> { const result = await http.post(`/admin/vehicle`, { - // TODO: data + vehicleTypeId: vehicle.vehicleTypeId, + name: vehicle.name, + code: vehicle.code, + location: vehicle.location, + commissioned: vehicle.commissioned, }); this.fetchVehicles(); return result; }, async updateActiveVehicle(vehicle: UpdateVehicleViewModel): Promise> { const result = await http.patch(`/admin/vehicle/${vehicle.id}`, { - // TODO: data + name: vehicle.name, + code: vehicle.code, + location: vehicle.location, + commissioned: vehicle.commissioned, + decommissioned: vehicle.decommissioned, }); this.fetchVehicles(); return result; diff --git a/src/stores/admin/unit/vehicleType/inspectionPlan.ts b/src/stores/admin/unit/vehicleType/inspectionPlan.ts index 9b6aa27..6f1c1c6 100644 --- a/src/stores/admin/unit/vehicleType/inspectionPlan.ts +++ b/src/stores/admin/unit/vehicleType/inspectionPlan.ts @@ -1,14 +1,6 @@ import { defineStore } from "pinia"; -import type { - VehicleTypeViewModel, - CreateVehicleTypeViewModel, - UpdateVehicleTypeViewModel, -} from "@/viewmodels/admin/unit/vehicleType/vehicleType.models"; import { http } from "@/serverCom"; -import type { AxiosResponse } from "axios"; -import { vehicleTypeDemoData } from "@/demodata/vehicleType"; -import type { InspectionPlanViewModel } from "@/viewmodels/admin/unit/inspectionPlan/inspectionPlan.models"; -import { inspectionPlanDemoData } from "@/demodata/inspectionPlan"; +import type { InspectionPlanViewModel } from "@/viewmodels/admin/unit/inspection/inspectionPlan.models"; import { useVehicleTypeStore } from "./vehicleType"; export const useVehicleTypeInspectionPlanStore = defineStore("vehicleTypeInspectionPlan", { @@ -22,12 +14,9 @@ export const useVehicleTypeInspectionPlanStore = defineStore("vehicleTypeInspect actions: { fetchInspectionPlanForVehicleType() { const vehicleTypeId = useVehicleTypeStore().activeVehicleType; - this.inspectionPlans = inspectionPlanDemoData.filter((ipdd) => ipdd.relatedId == vehicleTypeId); - this.loading = "fetched"; - return; this.loading = "loading"; http - .get(`/admin/vehicleType/${vehicleTypeId}/inspectionPlan`) + .get(`/admin/inspectionPlan/vehicleType/${vehicleTypeId}`) .then((result) => { this.inspectionPlans = result.data; this.loading = "fetched"; diff --git a/src/stores/admin/unit/vehicleType/vehicleType.ts b/src/stores/admin/unit/vehicleType/vehicleType.ts index 257716f..9ec3904 100644 --- a/src/stores/admin/unit/vehicleType/vehicleType.ts +++ b/src/stores/admin/unit/vehicleType/vehicleType.ts @@ -3,10 +3,9 @@ import type { VehicleTypeViewModel, CreateVehicleTypeViewModel, UpdateVehicleTypeViewModel, -} from "@/viewmodels/admin/unit/vehicleType/vehicleType.models"; +} from "@/viewmodels/admin/unit/vehicle/vehicleType.models"; import { http } from "@/serverCom"; import type { AxiosResponse } from "axios"; -import { vehicleTypeDemoData } from "@/demodata/vehicleType"; export const useVehicleTypeStore = defineStore("vehicleType", { state: () => { @@ -21,17 +20,13 @@ export const useVehicleTypeStore = defineStore("vehicleType", { }, actions: { fetchVehicleTypes(offset = 0, count = 25, search = "", clear = false) { - this.vehicleTypes = vehicleTypeDemoData.map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.vehicleTypes.length; - this.loading = "fetched"; - return; if (clear) this.vehicleTypes = []; this.loading = "loading"; http .get(`/admin/vehicleType?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}`) .then((result) => { this.totalCount = result.data.total; - result.data.vehicles + result.data.vehicleTypes .filter((elem: VehicleTypeViewModel) => this.vehicleTypes.findIndex((m) => m.id == elem.id) == -1) .map((elem: VehicleTypeViewModel, index: number): VehicleTypeViewModel & { tab_pos: number } => { return { @@ -50,20 +45,15 @@ export const useVehicleTypeStore = defineStore("vehicleType", { }, async getAllVehicleTypes(): Promise> { return await http.get(`/admin/vehicleType?noLimit=true`).then((res) => { - return { ...res, data: res.data.vehicles }; + return { ...res, data: res.data.vehicleTypes }; }); }, async searchVehicleTypes(search: string): Promise> { return await http.get(`/admin/vehicleType?search=${search}&noLimit=true`).then((res) => { - return { ...res, data: res.data.vehicles }; + return { ...res, data: res.data.vehicleTypes }; }); }, fetchVehicleTypeByActiveId() { - this.activeVehicleTypeObj = vehicleTypeDemoData.find( - (e) => e.id == this.activeVehicleType - ) as VehicleTypeViewModel; - this.loadingActive = "fetched"; - return; this.loadingActive = "loading"; http .get(`/admin/vehicleType/${this.activeVehicleType}`) @@ -80,14 +70,16 @@ export const useVehicleTypeStore = defineStore("vehicleType", { }, async createVehicleType(vehicleType: CreateVehicleTypeViewModel): Promise> { const result = await http.post(`/admin/vehicleType`, { - // TODO: data + type: vehicleType.type, + description: vehicleType.description, }); this.fetchVehicleTypes(); return result; }, async updateActiveVehicleType(vehicleType: UpdateVehicleTypeViewModel): Promise> { const result = await http.patch(`/admin/vehicleType/${vehicleType.id}`, { - // TODO: data + type: vehicleType.type, + description: vehicleType.description, }); this.fetchVehicleTypes(); return result; diff --git a/src/stores/admin/unit/wearable/damageReport.ts b/src/stores/admin/unit/wearable/damageReport.ts index c4d067c..4cb2420 100644 --- a/src/stores/admin/unit/wearable/damageReport.ts +++ b/src/stores/admin/unit/wearable/damageReport.ts @@ -1,8 +1,7 @@ import { defineStore } from "pinia"; import { http } from "@/serverCom"; import { useWearableStore } from "./wearable"; -import type { DamageReportViewModel } from "@/viewmodels/admin/unit/damageReport/damageReport.models"; -import { damageReportDemoData } from "@/demodata/damageReport"; +import type { DamageReportViewModel } from "@/viewmodels/admin/unit/damageReport.models"; export const useWearableDamageReportStore = defineStore("wearableDamageReport", { state: () => { @@ -15,17 +14,11 @@ export const useWearableDamageReportStore = defineStore("wearableDamageReport", actions: { fetchDamageReportForWearable(offset = 0, count = 25, search = "", clear = false) { const wearableId = useWearableStore().activeWearable; - this.damageReports = damageReportDemoData - .filter((drdd) => drdd.relatedId == wearableId) - .map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.damageReports.length; - this.loading = "fetched"; - return; if (clear) this.damageReports = []; this.loading = "loading"; http .get( - `/admin/wearable/${wearableId}/damageReport?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}` + `/admin/damagereport/wearable/${wearableId}?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}` ) .then((result) => { this.totalCount = result.data.total; diff --git a/src/stores/admin/unit/wearable/wearable.ts b/src/stores/admin/unit/wearable/wearable.ts index 2b22f21..a25cc49 100644 --- a/src/stores/admin/unit/wearable/wearable.ts +++ b/src/stores/admin/unit/wearable/wearable.ts @@ -6,7 +6,6 @@ import type { } from "@/viewmodels/admin/unit/wearable/wearable.models"; import { http } from "@/serverCom"; import type { AxiosResponse } from "axios"; -import { wearableDemoData } from "@/demodata/wearable"; export const useWearableStore = defineStore("wearable", { state: () => { @@ -21,10 +20,6 @@ export const useWearableStore = defineStore("wearable", { }, actions: { fetchWearables(offset = 0, count = 25, search = "", clear = false) { - this.wearables = wearableDemoData.map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.wearables.length; - this.loading = "fetched"; - return; if (clear) this.wearables = []; this.loading = "loading"; http @@ -68,9 +63,6 @@ export const useWearableStore = defineStore("wearable", { }); }, fetchWearableByActiveId() { - this.activeWearableObj = wearableDemoData.find((e) => e.id == this.activeWearable) as WearableViewModel; - this.loadingActive = "fetched"; - return; this.loadingActive = "loading"; http .get(`/admin/wearable/${this.activeWearable}`) @@ -87,14 +79,24 @@ export const useWearableStore = defineStore("wearable", { }, async createWearable(wearable: CreateWearableViewModel): Promise> { const result = await http.post(`/admin/wearable`, { - // TODO: data + wearableTypeId: wearable.wearableTypeId, + name: wearable.name, + code: wearable.code, + location: wearable.location, + commissioned: wearable.commissioned, + wearerId: wearable.wearerId, }); this.fetchWearables(); return result; }, async updateActiveWearable(wearable: UpdateWearableViewModel): Promise> { const result = await http.patch(`/admin/wearable/${wearable.id}`, { - // TODO: data + name: wearable.name, + code: wearable.code, + location: wearable.location, + commissioned: wearable.commissioned, + decommissioned: wearable.decommissioned, + wearerId: wearable.wearerId, }); this.fetchWearables(); return result; diff --git a/src/stores/admin/unit/wearableType/wearableType.ts b/src/stores/admin/unit/wearableType/wearableType.ts index 884f532..06b73a1 100644 --- a/src/stores/admin/unit/wearableType/wearableType.ts +++ b/src/stores/admin/unit/wearableType/wearableType.ts @@ -3,10 +3,9 @@ import type { WearableTypeViewModel, CreateWearableTypeViewModel, UpdateWearableTypeViewModel, -} from "@/viewmodels/admin/unit/wearableType/wearableType.models"; +} from "@/viewmodels/admin/unit/wearable/wearableType.models"; import { http } from "@/serverCom"; import type { AxiosResponse } from "axios"; -import { wearableTypeDemoData } from "@/demodata/wearableType"; export const useWearableTypeStore = defineStore("wearableType", { state: () => { @@ -18,17 +17,13 @@ export const useWearableTypeStore = defineStore("wearableType", { }, actions: { fetchWearableTypes(offset = 0, count = 25, search = "", clear = false) { - this.wearableTypes = wearableTypeDemoData.map((e, i) => ({ ...e, tab_pos: i })); - this.totalCount = this.wearableTypes.length; - this.loading = "fetched"; - return; if (clear) this.wearableTypes = []; this.loading = "loading"; http .get(`/admin/wearableType?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}`) .then((result) => { this.totalCount = result.data.total; - result.data.wearables + result.data.wearableTypes .filter((elem: WearableTypeViewModel) => this.wearableTypes.findIndex((m) => m.id == elem.id) == -1) .map((elem: WearableTypeViewModel, index: number): WearableTypeViewModel & { tab_pos: number } => { return { @@ -47,12 +42,12 @@ export const useWearableTypeStore = defineStore("wearableType", { }, async getAllWearableTypes(): Promise> { return await http.get(`/admin/wearableType?noLimit=true`).then((res) => { - return { ...res, data: res.data.wearables }; + return { ...res, data: res.data.wearableTypes }; }); }, async searchWearableTypes(search: string): Promise> { return await http.get(`/admin/wearableType?search=${search}&noLimit=true`).then((res) => { - return { ...res, data: res.data.wearables }; + return { ...res, data: res.data.wearableTypes }; }); }, fetchWearableTypeById(id: string) { @@ -60,14 +55,16 @@ export const useWearableTypeStore = defineStore("wearableType", { }, async createWearableType(wearableType: CreateWearableTypeViewModel): Promise> { const result = await http.post(`/admin/wearableType`, { - // TODO: data + type: wearableType.type, + description: wearableType.description, }); this.fetchWearableTypes(); return result; }, async updateWearableType(wearableType: UpdateWearableTypeViewModel): Promise> { const result = await http.patch(`/admin/wearableType/${wearableType.id}`, { - // TODO: data + type: wearableType.type, + description: wearableType.description, }); this.fetchWearableTypes(); return result; diff --git a/src/viewmodels/admin/unit/inspection/inspection.models.ts b/src/viewmodels/admin/unit/inspection/inspection.models.ts index 6565377..3f65cad 100644 --- a/src/viewmodels/admin/unit/inspection/inspection.models.ts +++ b/src/viewmodels/admin/unit/inspection/inspection.models.ts @@ -34,6 +34,6 @@ export interface InspectionPointResultViewModel { inspectionId: string; inspectionVersionedPlanId: string; inspectionPointId: string; - inspectionPoint: InspectionPointViewModel; + inspectionPoint?: InspectionPointViewModel; value: string; } diff --git a/src/viewmodels/admin/unit/inspection/inspectionPlan.models.ts b/src/viewmodels/admin/unit/inspection/inspectionPlan.models.ts index c5b1043..4d7b9a9 100644 --- a/src/viewmodels/admin/unit/inspection/inspectionPlan.models.ts +++ b/src/viewmodels/admin/unit/inspection/inspectionPlan.models.ts @@ -1,6 +1,8 @@ import type { InspectionPointEnum } from "@/enums/inspectionEnum"; import type { EquipmentViewModel } from "../equipment/equipment.models"; import type { VehicleViewModel } from "../vehicle/vehicle.models"; +import type { EquipmentTypeViewModel } from "../equipment/equipmentType.models"; +import type { VehicleTypeViewModel } from "../vehicle/vehicleType.models"; export type PlanTimeDefinition = `${number}-${"d" | "m" | "y"}` | `${number}/${number | "*"}`; @@ -16,11 +18,11 @@ export type InspectionPlanViewModel = { } & ( | { assigned: "equipment"; - related: EquipmentViewModel; + related: EquipmentTypeViewModel; } | { assigned: "vehicle"; - related: VehicleViewModel; + related: VehicleTypeViewModel; } ); diff --git a/src/views/admin/unit/damageReport/DamageReportRouting.vue b/src/views/admin/unit/damageReport/DamageReportRouting.vue index 356e095..fdb9a49 100644 --- a/src/views/admin/unit/damageReport/DamageReportRouting.vue +++ b/src/views/admin/unit/damageReport/DamageReportRouting.vue @@ -51,14 +51,7 @@ export default defineComponent({ }; }, computed: { - ...mapState(useEquipmentStore, ["activeEquipmentObj"]), ...mapState(useAbilityStore, ["can"]), }, - mounted() { - this.fetchEquipmentByActiveId(); - }, - methods: { - ...mapActions(useEquipmentStore, ["fetchEquipmentByActiveId"]), - }, }); diff --git a/src/views/admin/unit/equipment/DamageReport.vue b/src/views/admin/unit/equipment/DamageReport.vue index fbe0f8d..aa2df0a 100644 --- a/src/views/admin/unit/equipment/DamageReport.vue +++ b/src/views/admin/unit/equipment/DamageReport.vue @@ -11,10 +11,11 @@
- -

{{ row.reported }} - {{ row.status }}

+ +

{{ row.reportedAt }} - {{ row.status }}

+

gemeldet von: {{ row.reportedBy }}

Beschreibung: {{ row.description }}

diff --git a/src/views/admin/unit/equipmentType/UpdateEquipmentType.vue b/src/views/admin/unit/equipmentType/UpdateEquipmentType.vue index 5d1af44..997e0be 100644 --- a/src/views/admin/unit/equipmentType/UpdateEquipmentType.vue +++ b/src/views/admin/unit/equipmentType/UpdateEquipmentType.vue @@ -9,12 +9,12 @@ >

Geräte-Typ bearbeiten

- - + +
- - + +
-

Prüfungspunkte

+

Prüfungspunkte:

+ keine Prüfpunkte enthalten
- - + + +
+
+ +
diff --git a/src/views/admin/unit/wearable/DamageReport.vue b/src/views/admin/unit/wearable/DamageReport.vue index 555a273..8f2600d 100644 --- a/src/views/admin/unit/wearable/DamageReport.vue +++ b/src/views/admin/unit/wearable/DamageReport.vue @@ -11,10 +11,11 @@
- -

{{ row.reported }} - {{ row.status }}

+ +

{{ row.reportedAt }} - {{ row.status }}

+

gemeldet von: {{ row.reportedBy }}

Beschreibung: {{ row.description }}

diff --git a/src/views/admin/unit/wearable/UpdateWearable.vue b/src/views/admin/unit/wearable/UpdateWearable.vue index 3811695..2bcccbf 100644 --- a/src/views/admin/unit/wearable/UpdateWearable.vue +++ b/src/views/admin/unit/wearable/UpdateWearable.vue @@ -17,7 +17,7 @@
- +
@@ -30,7 +30,9 @@ - + @@ -54,7 +56,7 @@ import FailureXMark from "@/components/FailureXMark.vue"; import ScanInput from "@/components/ScanInput.vue"; import isEqual from "lodash.isequal"; import cloneDeep from "lodash.clonedeep"; -import MemberSearchSelectMultiple from "@/components/search/MemberSearchSelectMultiple.vue"; +import MemberSearchSelectSingle from "@/components/search/MemberSearchSelectSingle.vue"; + + diff --git a/src/components/admin/unit/wearableType/WearableTypeListItem.vue b/src/components/admin/unit/wearableType/WearableTypeListItem.vue index a6cb6b9..09bdf96 100644 --- a/src/components/admin/unit/wearableType/WearableTypeListItem.vue +++ b/src/components/admin/unit/wearableType/WearableTypeListItem.vue @@ -1,20 +1,12 @@ + + diff --git a/src/router/index.ts b/src/router/index.ts index 40c5159..5f58c0a 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -19,6 +19,7 @@ import { resetWearableStores, setWearableId } from "./unit/wearable"; import { resetInspectionPlanStores, setInspectionPlanId } from "./unit/inspectionPlan"; import { setVehicleTypeId } from "./unit/vehicleType"; import { resetInspectionStores, setInspectionId } from "./unit/inspection"; +import { setWearableTypeId } from "./unit/wearableType"; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), @@ -498,6 +499,12 @@ const router = createRouter({ component: () => import("@/views/admin/ViewSelect.vue"), props: true, }, + { + path: "inspection", + name: "admin-unit-wearable-inspection", + component: () => import("@/views/admin/unit/wearable/Inspection.vue"), + props: true, + }, { path: "report", name: "admin-unit-wearable-damage_report", @@ -706,6 +713,25 @@ const router = createRouter({ }, ], }, + { + path: "maintenance", + name: "admin-unit-maintenance-route", + component: () => import("@/views/admin/unit/maintenance/MaintenanceRouting.vue"), + meta: { type: "read", section: "unit", module: "maintenance" }, + beforeEnter: [abilityAndNavUpdate], + children: [ + { + path: "", + name: "admin-unit-maintenance", + component: () => import("@/views/admin/unit/maintenance/Maintenance.vue"), + }, + { + path: "done", + name: "admin-unit-maintenance-done", + component: () => import("@/views/admin/unit/maintenance/Maintenance.vue"), + }, + ], + }, { path: "equipment-type", name: "admin-unit-equipment_type-route", @@ -806,12 +832,33 @@ const router = createRouter({ component: () => import("@/views/admin/unit/wearableType/WearableType.vue"), }, { - path: ":wearableTypeId/edit", - name: "admin-unit-wearable_type-edit", - component: () => import("@/views/admin/unit/wearableType/UpdateWearableType.vue"), - meta: { type: "update", section: "unit", module: "wearable_type" }, - beforeEnter: [abilityAndNavUpdate], + path: ":wearableTypeId", + name: "admin-unit-wearable_type-routing", + component: () => import("@/views/admin/unit/wearableType/WearableTypeRouting.vue"), + beforeEnter: [setWearableTypeId], props: true, + children: [ + { + path: "overview", + name: "admin-unit-wearable_type-overview", + component: () => import("@/views/admin/unit/wearableType/Overview.vue"), + props: true, + }, + { + path: "inspection-plan", + name: "admin-unit-wearable_type-inspection_plan", + component: () => import("@/views/admin/unit/wearableType/InspectionPlans.vue"), + props: true, + }, + { + path: "edit", + name: "admin-unit-wearable_type-edit", + component: () => import("@/views/admin/unit/wearableType/UpdateWearableType.vue"), + meta: { type: "update", section: "unit", module: "wearable_type" }, + beforeEnter: [abilityAndNavUpdate], + props: true, + }, + ], }, ], }, diff --git a/src/router/unit/wearableType.ts b/src/router/unit/wearableType.ts new file mode 100644 index 0000000..3b439ff --- /dev/null +++ b/src/router/unit/wearableType.ts @@ -0,0 +1,21 @@ +import { useWearableTypeStore } from "@/stores/admin/unit/wearableType/wearableType"; +import { useWearableTypeInspectionPlanStore } from "@/stores/admin/unit/wearableType/inspectionPlan"; + +export async function setWearableTypeId(to: any, from: any, next: any) { + const wearableTypeStore = useWearableTypeStore(); + wearableTypeStore.activeWearableType = to.params?.wearableTypeId ?? null; + + useWearableTypeInspectionPlanStore().$reset(); + + next(); +} + +export async function resetWearableTypeStores(to: any, from: any, next: any) { + const wearableTypeStore = useWearableTypeStore(); + wearableTypeStore.activeWearableType = null; + wearableTypeStore.activeWearableTypeObj = null; + + useWearableTypeInspectionPlanStore().$reset(); + + next(); +} diff --git a/src/stores/admin/navigation.ts b/src/stores/admin/navigation.ts index 59991b3..b5d1301 100644 --- a/src/stores/admin/navigation.ts +++ b/src/stores/admin/navigation.ts @@ -123,6 +123,9 @@ export const useNavigationStore = defineStore("navigation", { ...(abilityStore.can("read", "unit", "damage_report") ? [{ key: "damage_report", title: "Schadensmeldungen" }] : []), + ...(abilityStore.can("read", "unit", "maintenance") + ? [{ key: "maintenance", title: "Wartungen / Reparaturen" }] + : []), { key: "divider1", title: "Basisdaten" }, ...(abilityStore.can("read", "unit", "equipment_type") ? [{ key: "equipment_type", title: "Geräte-Typen" }] diff --git a/src/stores/admin/unit/maintenance/maintenance.ts b/src/stores/admin/unit/maintenance/maintenance.ts new file mode 100644 index 0000000..fd9fb79 --- /dev/null +++ b/src/stores/admin/unit/maintenance/maintenance.ts @@ -0,0 +1,74 @@ +import { defineStore } from "pinia"; +import type { + MaintenanceViewModel, + CreateMaintenanceViewModel, + UpdateMaintenanceViewModel, +} from "@/viewmodels/admin/unit/maintenance.models"; +import { http } from "@/serverCom"; +import type { AxiosResponse } from "axios"; + +export const useMaintenanceStore = defineStore("maintenance", { + state: () => { + return { + maintenances: [] as Array, + totalCount: 0 as number, + loading: "loading" as "loading" | "fetched" | "failed", + }; + }, + actions: { + fetchMaintenances(offset = 0, count = 25, search = "", clear = false) { + if (clear) this.maintenances = []; + this.loading = "loading"; + //TODO enable fetch of done reports + http + .get(`/admin/maintenance?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}`) + .then((result) => { + this.totalCount = result.data.total; + result.data.maintenances + .filter((elem: MaintenanceViewModel) => this.maintenances.findIndex((m) => m.id == elem.id) == -1) + .map((elem: MaintenanceViewModel, index: number): MaintenanceViewModel & { tab_pos: number } => { + return { + ...elem, + tab_pos: index + offset, + }; + }) + .forEach((elem: MaintenanceViewModel & { tab_pos: number }) => { + this.maintenances.push(elem); + }); + this.loading = "fetched"; + }) + .catch((err) => { + this.loading = "failed"; + }); + }, + async getAllMaintenances(): Promise> { + return await http.get(`/admin/maintenance?noLimit=true`).then((res) => { + return { ...res, data: res.data.maintenances }; + }); + }, + async getMaintenancesByIds(ids: Array): Promise> { + return await http + .post(`/admin/maintenance/ids`, { + ids, + }) + .then((res) => { + return { ...res, data: res.data.maintenances }; + }); + }, + async searchMaintenances(search: string): Promise> { + return await http.get(`/admin/maintenance?search=${search}&noLimit=true`).then((res) => { + return { ...res, data: res.data.maintenances }; + }); + }, + fetchMaintenanceById(id: string) { + return http.get(`/admin/maintenance/${id}`); + }, + async updateMaintenance(maintenance: UpdateMaintenanceViewModel): Promise> { + const result = await http.patch(`/admin/maintenance/${maintenance.id}`, { + // TODO: data + }); + this.fetchMaintenances(); + return result; + }, + }, +}); diff --git a/src/stores/admin/unit/wearable/inspection.ts b/src/stores/admin/unit/wearable/inspection.ts new file mode 100644 index 0000000..1596da6 --- /dev/null +++ b/src/stores/admin/unit/wearable/inspection.ts @@ -0,0 +1,43 @@ +import { defineStore } from "pinia"; +import { http } from "@/serverCom"; +import type { InspectionViewModel } from "@/viewmodels/admin/unit/inspection/inspection.models"; +import { useWearableStore } from "./wearable"; + +export const useWearableInspectionStore = defineStore("wearableInspection", { + state: () => { + return { + inspections: [] as Array, + totalCount: 0 as number, + loading: "loading" as "loading" | "fetched" | "failed", + }; + }, + actions: { + fetchInspectionForWearable(offset = 0, count = 25, search = "", clear = false) { + const wearableId = useWearableStore().activeWearable; + if (clear) this.inspections = []; + this.loading = "loading"; + http + .get( + `/admin/inspection/wearable/${wearableId}?offset=${offset}&count=${count}${search != "" ? "&search=" + search : ""}` + ) + .then((result) => { + this.totalCount = result.data.total; + result.data.inspections + .filter((elem: InspectionViewModel) => this.inspections.findIndex((m) => m.id == elem.id) == -1) + .map((elem: InspectionViewModel, index: number): InspectionViewModel & { tab_pos: number } => { + return { + ...elem, + tab_pos: index + offset, + }; + }) + .forEach((elem: InspectionViewModel & { tab_pos: number }) => { + this.inspections.push(elem); + }); + this.loading = "fetched"; + }) + .catch((err) => { + this.loading = "failed"; + }); + }, + }, +}); diff --git a/src/stores/admin/unit/wearableType/inspectionPlan.ts b/src/stores/admin/unit/wearableType/inspectionPlan.ts new file mode 100644 index 0000000..dbe2254 --- /dev/null +++ b/src/stores/admin/unit/wearableType/inspectionPlan.ts @@ -0,0 +1,29 @@ +import { defineStore } from "pinia"; +import { http } from "@/serverCom"; +import type { InspectionPlanViewModel } from "@/viewmodels/admin/unit/inspection/inspectionPlan.models"; +import { useWearableTypeStore } from "./wearableType"; + +export const useWearableTypeInspectionPlanStore = defineStore("wearableTypeInspectionPlan", { + state: () => { + return { + inspectionPlans: [] as Array, + totalCount: 0 as number, + loading: "loading" as "loading" | "fetched" | "failed", + }; + }, + actions: { + fetchInspectionPlanForWearableType() { + const wearableTypeId = useWearableTypeStore().activeWearableType; + this.loading = "loading"; + http + .get(`/admin/inspectionPlan/wearableType/${wearableTypeId}`) + .then((result) => { + this.inspectionPlans = result.data; + this.loading = "fetched"; + }) + .catch((err) => { + this.loading = "failed"; + }); + }, + }, +}); diff --git a/src/stores/admin/unit/wearableType/wearableType.ts b/src/stores/admin/unit/wearableType/wearableType.ts index 06b73a1..bba5113 100644 --- a/src/stores/admin/unit/wearableType/wearableType.ts +++ b/src/stores/admin/unit/wearableType/wearableType.ts @@ -13,6 +13,9 @@ export const useWearableTypeStore = defineStore("wearableType", { wearableTypes: [] as Array, totalCount: 0 as number, loading: "loading" as "loading" | "fetched" | "failed", + activeWearableType: null as string | null, + activeWearableTypeObj: null as WearableTypeViewModel | null, + loadingActive: "loading" as "loading" | "fetched" | "failed", }; }, actions: { @@ -50,6 +53,18 @@ export const useWearableTypeStore = defineStore("wearableType", { return { ...res, data: res.data.wearableTypes }; }); }, + fetchWearableTypeByActiveId() { + this.loadingActive = "loading"; + http + .get(`/admin/wearableType/${this.activeWearableType}`) + .then((res) => { + this.activeWearableTypeObj = res.data; + this.loadingActive = "fetched"; + }) + .catch((err) => { + this.loadingActive = "failed"; + }); + }, fetchWearableTypeById(id: string) { return http.get(`/admin/wearableType/${id}`); }, diff --git a/src/types/permissionTypes.ts b/src/types/permissionTypes.ts index f85a54f..2442d9f 100644 --- a/src/types/permissionTypes.ts +++ b/src/types/permissionTypes.ts @@ -21,6 +21,7 @@ export type PermissionModule = | "respiratory_wearer" | "respiratory_mission" | "damage_report" + | "maintenance" // configuration | "qualification" | "award" @@ -95,6 +96,7 @@ export const permissionModules: Array = [ "respiratory_wearer", "respiratory_mission", "damage_report", + "maintenance", // configuration "qualification", "award", @@ -131,6 +133,7 @@ export const sectionsAndModules: SectionsAndModulesObject = { "respiratory_wearer", "respiratory_mission", "damage_report", + "maintenance", ], configuration: [ "qualification", diff --git a/src/viewmodels/admin/unit/inspection/inspection.models.ts b/src/viewmodels/admin/unit/inspection/inspection.models.ts index 3f65cad..4f72a13 100644 --- a/src/viewmodels/admin/unit/inspection/inspection.models.ts +++ b/src/viewmodels/admin/unit/inspection/inspection.models.ts @@ -5,6 +5,7 @@ import type { InspectionVersionedPlanViewModel, } from "./inspectionPlan.models"; import type { VehicleViewModel } from "../vehicle/vehicle.models"; +import type { WearableViewModel } from "../wearable/wearable.models"; export type InspectionViewModel = { id: string; @@ -28,6 +29,10 @@ export type InspectionViewModel = { assigned: "vehicle"; related: VehicleViewModel; } + | { + assigned: "wearable"; + related: WearableViewModel; + } ); export interface InspectionPointResultViewModel { diff --git a/src/viewmodels/admin/unit/inspection/inspectionPlan.models.ts b/src/viewmodels/admin/unit/inspection/inspectionPlan.models.ts index 4d7b9a9..262f25e 100644 --- a/src/viewmodels/admin/unit/inspection/inspectionPlan.models.ts +++ b/src/viewmodels/admin/unit/inspection/inspectionPlan.models.ts @@ -3,6 +3,7 @@ import type { EquipmentViewModel } from "../equipment/equipment.models"; import type { VehicleViewModel } from "../vehicle/vehicle.models"; import type { EquipmentTypeViewModel } from "../equipment/equipmentType.models"; import type { VehicleTypeViewModel } from "../vehicle/vehicleType.models"; +import type { WearableTypeViewModel } from "../wearable/wearableType.models"; export type PlanTimeDefinition = `${number}-${"d" | "m" | "y"}` | `${number}/${number | "*"}`; @@ -24,6 +25,10 @@ export type InspectionPlanViewModel = { assigned: "vehicle"; related: VehicleTypeViewModel; } + | { + assigned: "wearable"; + related: WearableTypeViewModel; + } ); export interface InspectionVersionedPlanViewModel { @@ -48,7 +53,7 @@ export interface CreateInspectionPlanViewModel { inspectionInterval: PlanTimeDefinition; remindTime: PlanTimeDefinition; relatedId: string; - assigned: "vehicle" | "equipment"; + assigned: "vehicle" | "equipment" | "wearable"; } export interface UpdateInspectionPlanViewModel { diff --git a/src/views/admin/club/newsletter/NewsletterRecipients.vue b/src/views/admin/club/newsletter/NewsletterRecipients.vue index cad08c2..6fcdec5 100644 --- a/src/views/admin/club/newsletter/NewsletterRecipients.vue +++ b/src/views/admin/club/newsletter/NewsletterRecipients.vue @@ -74,9 +74,7 @@ import { useNewsletterRecipientsStore } from "@/stores/admin/club/newsletter/new import { useAbilityStore } from "@/stores/ability"; import { useQueryStoreStore } from "@/stores/admin/configuration/queryStore"; import { useQueryBuilderStore } from "@/stores/admin/club/queryBuilder"; -import cloneDeep from "lodash.clonedeep"; import MemberSearchSelectMultiple from "@/components/search/MemberSearchSelectMultiple.vue"; -import MemberSearchSelect from "@/components/search/MemberSearchSelect.vue"; import type { FieldType } from "@/types/dynamicQueries"; import DoubleConfirmClick from "@/components/DoubleConfirmClick.vue"; diff --git a/src/views/admin/unit/damageReport/DamageReportRouting.vue b/src/views/admin/unit/damageReport/DamageReportRouting.vue index fdb9a49..48d8b0f 100644 --- a/src/views/admin/unit/damageReport/DamageReportRouting.vue +++ b/src/views/admin/unit/damageReport/DamageReportRouting.vue @@ -39,9 +39,6 @@ import { useEquipmentStore } from "@/stores/admin/unit/equipment/equipment"; + + diff --git a/src/views/admin/unit/maintenance/MaintenanceRouting.vue b/src/views/admin/unit/maintenance/MaintenanceRouting.vue new file mode 100644 index 0000000..679740c --- /dev/null +++ b/src/views/admin/unit/maintenance/MaintenanceRouting.vue @@ -0,0 +1,54 @@ + + + + + diff --git a/src/views/admin/unit/vehicleType/VehicleTypeRouting.vue b/src/views/admin/unit/vehicleType/VehicleTypeRouting.vue index 46c3338..3c9a3d4 100644 --- a/src/views/admin/unit/vehicleType/VehicleTypeRouting.vue +++ b/src/views/admin/unit/vehicleType/VehicleTypeRouting.vue @@ -79,7 +79,7 @@ export default defineComponent({ ...mapActions(useModalStore, ["openModal"]), openDeleteModal() { this.openModal( - markRaw(defineAsyncComponent(() => import("@/components/admin/unit/vehicleType/CreateVehicleTypeModal.vue"))), + markRaw(defineAsyncComponent(() => import("@/components/admin/unit/vehicleType/DeleteVehicleTypeModal.vue"))), this.vehicleTypeId ?? "" ); }, diff --git a/src/views/admin/unit/wearable/Inspection.vue b/src/views/admin/unit/wearable/Inspection.vue new file mode 100644 index 0000000..bf71eff --- /dev/null +++ b/src/views/admin/unit/wearable/Inspection.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/src/views/admin/unit/wearable/WearableRouting.vue b/src/views/admin/unit/wearable/WearableRouting.vue index 1b35c5f..e1f9f88 100644 --- a/src/views/admin/unit/wearable/WearableRouting.vue +++ b/src/views/admin/unit/wearable/WearableRouting.vue @@ -55,7 +55,8 @@ export default defineComponent({ return { tabs: [ { route: "admin-unit-wearable-overview", title: "Übersicht" }, - { route: "admin-unit-wearable-maintenance", title: "Reparaturen" }, + { route: "admin-unit-wearable-maintenance", title: "Wartungen/Reparaturen" }, + { route: "admin-unit-wearable-inspection", title: "Prüfungen" }, { route: "admin-unit-wearable-damage_report", title: "Schadensmeldungen" }, ], }; diff --git a/src/views/admin/unit/wearableType/InspectionPlans.vue b/src/views/admin/unit/wearableType/InspectionPlans.vue new file mode 100644 index 0000000..5cc5c46 --- /dev/null +++ b/src/views/admin/unit/wearableType/InspectionPlans.vue @@ -0,0 +1,51 @@ + + + + + diff --git a/src/views/admin/unit/wearableType/Overview.vue b/src/views/admin/unit/wearableType/Overview.vue new file mode 100644 index 0000000..5e0444e --- /dev/null +++ b/src/views/admin/unit/wearableType/Overview.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/views/admin/unit/wearableType/UpdateWearableType.vue b/src/views/admin/unit/wearableType/UpdateWearableType.vue index 242301a..cf85991 100644 --- a/src/views/admin/unit/wearableType/UpdateWearableType.vue +++ b/src/views/admin/unit/wearableType/UpdateWearableType.vue @@ -1,43 +1,37 @@ + + -- 2.47.3 From fe0f31ce6b8c7607959ec6c68f199911005cb4fe Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Sat, 14 Jun 2025 13:39:34 +0200 Subject: [PATCH 06/16] search z-index --- src/components/search/EquipmentSearchSelect.vue | 2 +- src/components/search/EquipmentTypeSearchSelect.vue | 2 +- src/components/search/InspectionPlanSearchSelect.vue | 4 ++-- src/components/search/MemberSearchSelectMultiple.vue | 2 +- src/components/search/MemberSearchSelectSingle.vue | 2 +- src/components/search/VehicleSearchSelect.vue | 2 +- src/components/search/VehicleTypeSearchSelect.vue | 2 +- src/components/search/WearableTypeSearchSelect.vue | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/components/search/EquipmentSearchSelect.vue b/src/components/search/EquipmentSearchSelect.vue index 6bd5683..a1a7c08 100644 --- a/src/components/search/EquipmentSearchSelect.vue +++ b/src/components/search/EquipmentSearchSelect.vue @@ -24,7 +24,7 @@ @after-leave="query = ''" >
  • diff --git a/src/components/search/EquipmentTypeSearchSelect.vue b/src/components/search/EquipmentTypeSearchSelect.vue index 809b444..6f5f46b 100644 --- a/src/components/search/EquipmentTypeSearchSelect.vue +++ b/src/components/search/EquipmentTypeSearchSelect.vue @@ -18,7 +18,7 @@ @after-leave="query = ''" >
  • diff --git a/src/components/search/InspectionPlanSearchSelect.vue b/src/components/search/InspectionPlanSearchSelect.vue index 4580bd5..4ff6e62 100644 --- a/src/components/search/InspectionPlanSearchSelect.vue +++ b/src/components/search/InspectionPlanSearchSelect.vue @@ -18,7 +18,7 @@ @after-leave="query = ''" >
  • @@ -102,7 +102,7 @@ export default defineComponent({ default: false, }, type: { - type: String as PropType<"vehicle" | "equipment">, + type: String as PropType<"vehicle" | "equipment" | "wearable">, default: "equipment", }, }, diff --git a/src/components/search/MemberSearchSelectMultiple.vue b/src/components/search/MemberSearchSelectMultiple.vue index f244851..5b5c29a 100644 --- a/src/components/search/MemberSearchSelectMultiple.vue +++ b/src/components/search/MemberSearchSelectMultiple.vue @@ -18,7 +18,7 @@ @after-leave="query = ''" >
  • diff --git a/src/components/search/MemberSearchSelectSingle.vue b/src/components/search/MemberSearchSelectSingle.vue index 54be6d9..d81e2a4 100644 --- a/src/components/search/MemberSearchSelectSingle.vue +++ b/src/components/search/MemberSearchSelectSingle.vue @@ -18,7 +18,7 @@ @after-leave="query = ''" >
  • diff --git a/src/components/search/VehicleSearchSelect.vue b/src/components/search/VehicleSearchSelect.vue index 21de173..1fc9afa 100644 --- a/src/components/search/VehicleSearchSelect.vue +++ b/src/components/search/VehicleSearchSelect.vue @@ -24,7 +24,7 @@ @after-leave="query = ''" >
  • diff --git a/src/components/search/VehicleTypeSearchSelect.vue b/src/components/search/VehicleTypeSearchSelect.vue index 31d7752..53bde5f 100644 --- a/src/components/search/VehicleTypeSearchSelect.vue +++ b/src/components/search/VehicleTypeSearchSelect.vue @@ -18,7 +18,7 @@ @after-leave="query = ''" >
  • diff --git a/src/components/search/WearableTypeSearchSelect.vue b/src/components/search/WearableTypeSearchSelect.vue index 5267904..4cb96c8 100644 --- a/src/components/search/WearableTypeSearchSelect.vue +++ b/src/components/search/WearableTypeSearchSelect.vue @@ -18,7 +18,7 @@ @after-leave="query = ''" >
  • -- 2.47.3 From e7078960baaf55f5ebffab37b5d2e8c09711a72c Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Sun, 15 Jun 2025 22:04:41 +0200 Subject: [PATCH 07/16] search select component improvements --- .../search/EquipmentSearchSelect.vue | 24 +++++++++++++--- .../search/EquipmentTypeSearchSelect.vue | 24 +++++++++++++--- .../search/InspectionPlanSearchSelect.vue | 28 ++++++++++++++++--- src/components/search/VehicleSearchSelect.vue | 24 +++++++++++++--- .../search/VehicleTypeSearchSelect.vue | 24 +++++++++++++--- .../search/WearableSearchSelect.vue | 26 +++++++++++++---- .../search/WearableTypeSearchSelect.vue | 26 +++++++++++++---- 7 files changed, 146 insertions(+), 30 deletions(-) diff --git a/src/components/search/EquipmentSearchSelect.vue b/src/components/search/EquipmentSearchSelect.vue index a1a7c08..8feb26a 100644 --- a/src/components/search/EquipmentSearchSelect.vue +++ b/src/components/search/EquipmentSearchSelect.vue @@ -32,12 +32,12 @@ suche
  • - +
  • tippe, um zu suchen...
  • - +
  • Keine Auswahl gefunden.
  • @@ -45,7 +45,7 @@ , filtered: [] as Array, chosen: undefined as undefined | EquipmentViewModel, }; }, computed: { + available() { + return this.query == "" ? this.all : this.filtered; + }, selected: { get() { return this.modelValue; @@ -154,10 +158,22 @@ export default defineComponent({ }, mounted() { this.loadEquipmentInitial(); + this.preloadAll(); }, methods: { - ...mapActions(useEquipmentStore, ["searchEquipments", "fetchEquipmentById"]), + ...mapActions(useEquipmentStore, ["searchEquipments", "fetchEquipmentById", "getAllEquipments"]), ...mapActions(useModalStore, ["openModal"]), + preloadAll() { + this.loading = true; + this.getAllEquipments() + .then((res) => { + this.all = res.data; + }) + .catch((err) => {}) + .finally(() => { + this.loading = false; + }); + }, search() { this.filtered = []; if (this.query == "") return; diff --git a/src/components/search/EquipmentTypeSearchSelect.vue b/src/components/search/EquipmentTypeSearchSelect.vue index 6f5f46b..8d431cb 100644 --- a/src/components/search/EquipmentTypeSearchSelect.vue +++ b/src/components/search/EquipmentTypeSearchSelect.vue @@ -26,12 +26,12 @@ suche - +
  • tippe, um zu suchen...
  • - +
  • Keine Auswahl gefunden.
  • @@ -39,7 +39,7 @@ , filtered: [] as Array, chosen: undefined as undefined | EquipmentTypeViewModel, }; }, computed: { + available() { + return this.query == "" ? this.all : this.filtered; + }, selected: { get() { return this.modelValue; @@ -142,9 +146,21 @@ export default defineComponent({ }, mounted() { this.loadEquipmentTypeInitial(); + this.preloadAll(); }, methods: { - ...mapActions(useEquipmentTypeStore, ["searchEquipmentTypes", "fetchEquipmentTypeById"]), + ...mapActions(useEquipmentTypeStore, ["searchEquipmentTypes", "fetchEquipmentTypeById", "getAllEquipmentTypes"]), + preloadAll() { + this.loading = true; + this.getAllEquipmentTypes() + .then((res) => { + this.all = res.data; + }) + .catch((err) => {}) + .finally(() => { + this.loading = false; + }); + }, search() { this.filtered = []; if (this.query == "") return; diff --git a/src/components/search/InspectionPlanSearchSelect.vue b/src/components/search/InspectionPlanSearchSelect.vue index 4ff6e62..a328fb8 100644 --- a/src/components/search/InspectionPlanSearchSelect.vue +++ b/src/components/search/InspectionPlanSearchSelect.vue @@ -26,12 +26,12 @@ suche - +
  • tippe, um zu suchen...
  • - +
  • Keine Auswahl gefunden.
  • @@ -39,7 +39,7 @@ , filtered: [] as Array, chosen: undefined as undefined | InspectionPlanViewModel, }; }, computed: { + available() { + return this.query == "" ? this.all : this.filtered; + }, selected: { get() { return this.modelValue; @@ -146,9 +150,25 @@ export default defineComponent({ }, mounted() { this.loadInspectionPlanInitial(); + this.preloadAll(); }, methods: { - ...mapActions(useInspectionPlanStore, ["searchInspectionPlans", "fetchInspectionPlanById"]), + ...mapActions(useInspectionPlanStore, [ + "searchInspectionPlans", + "fetchInspectionPlanById", + "getAllInspectionPlans", + ]), + preloadAll() { + this.loading = true; + this.getAllInspectionPlans() + .then((res) => { + this.all = res.data; + }) + .catch((err) => {}) + .finally(() => { + this.loading = false; + }); + }, search() { this.filtered = []; if (this.query == "") return; diff --git a/src/components/search/VehicleSearchSelect.vue b/src/components/search/VehicleSearchSelect.vue index 1fc9afa..c3484db 100644 --- a/src/components/search/VehicleSearchSelect.vue +++ b/src/components/search/VehicleSearchSelect.vue @@ -32,12 +32,12 @@ suche - +
  • tippe, um zu suchen...
  • - +
  • Keine Auswahl gefunden.
  • @@ -45,7 +45,7 @@ , filtered: [] as Array, chosen: undefined as undefined | VehicleViewModel, }; }, computed: { + available() { + return this.query == "" ? this.all : this.filtered; + }, selected: { get() { return this.modelValue; @@ -154,10 +158,22 @@ export default defineComponent({ }, mounted() { this.loadVehicleInitial(); + this.preloadAll(); }, methods: { - ...mapActions(useVehicleStore, ["searchVehicles", "fetchVehicleById"]), + ...mapActions(useVehicleStore, ["searchVehicles", "fetchVehicleById", "getAllVehicles"]), ...mapActions(useModalStore, ["openModal"]), + preloadAll() { + this.loading = true; + this.getAllVehicles() + .then((res) => { + this.all = res.data; + }) + .catch((err) => {}) + .finally(() => { + this.loading = false; + }); + }, search() { this.filtered = []; if (this.query == "") return; diff --git a/src/components/search/VehicleTypeSearchSelect.vue b/src/components/search/VehicleTypeSearchSelect.vue index 53bde5f..c730dc5 100644 --- a/src/components/search/VehicleTypeSearchSelect.vue +++ b/src/components/search/VehicleTypeSearchSelect.vue @@ -26,12 +26,12 @@ suche - +
  • tippe, um zu suchen...
  • - +
  • Keine Auswahl gefunden.
  • @@ -39,7 +39,7 @@ , filtered: [] as Array, chosen: undefined as undefined | VehicleTypeViewModel, }; }, computed: { + available() { + return this.query == "" ? this.all : this.filtered; + }, selected: { get() { return this.modelValue; @@ -142,9 +146,21 @@ export default defineComponent({ }, mounted() { this.loadVehicleTypeInitial(); + this.preloadAll(); }, methods: { - ...mapActions(useVehicleTypeStore, ["searchVehicleTypes", "fetchVehicleTypeById"]), + ...mapActions(useVehicleTypeStore, ["searchVehicleTypes", "fetchVehicleTypeById", "getAllVehicleTypes"]), + preloadAll() { + this.loading = true; + this.getAllVehicleTypes() + .then((res) => { + this.all = res.data; + }) + .catch((err) => {}) + .finally(() => { + this.loading = false; + }); + }, search() { this.filtered = []; if (this.query == "") return; diff --git a/src/components/search/WearableSearchSelect.vue b/src/components/search/WearableSearchSelect.vue index 3248277..e282e72 100644 --- a/src/components/search/WearableSearchSelect.vue +++ b/src/components/search/WearableSearchSelect.vue @@ -32,12 +32,12 @@ suche - +
  • tippe, um zu suchen...
  • - +
  • Keine Auswahl gefunden.
  • @@ -45,7 +45,7 @@ , filtered: [] as Array, chosen: undefined as undefined | WearableViewModel, }; }, computed: { + available() { + return this.query == "" ? this.all : this.filtered; + }, selected: { get() { return this.modelValue; @@ -154,10 +158,22 @@ export default defineComponent({ }, mounted() { this.loadWearableInitial(); + this.preloadAll(); }, methods: { - ...mapActions(useWearableStore, ["searchWearables", "fetchWearableById"]), + ...mapActions(useWearableStore, ["searchWearables", "fetchWearableById", "getAllWearables"]), ...mapActions(useModalStore, ["openModal"]), + preloadAll() { + this.loading = true; + this.getAllWearables() + .then((res) => { + this.all = res.data; + }) + .catch((err) => {}) + .finally(() => { + this.loading = false; + }); + }, search() { this.filtered = []; if (this.query == "") return; @@ -172,7 +188,7 @@ export default defineComponent({ }); }, getWearableFromSearch(id: string) { - return this.filtered.find((f) => f.id == id); + return this.all.find((f) => f.id == id); }, loadWearableInitial() { if (this.modelValue == "") return; diff --git a/src/components/search/WearableTypeSearchSelect.vue b/src/components/search/WearableTypeSearchSelect.vue index 4cb96c8..15deee2 100644 --- a/src/components/search/WearableTypeSearchSelect.vue +++ b/src/components/search/WearableTypeSearchSelect.vue @@ -26,12 +26,12 @@ suche - +
  • tippe, um zu suchen...
  • - +
  • Keine Auswahl gefunden.
  • @@ -39,7 +39,7 @@ , filtered: [] as Array, chosen: undefined as undefined | WearableTypeViewModel, }; }, computed: { + available() { + return this.query == "" ? this.all : this.filtered; + }, selected: { get() { return this.modelValue; @@ -142,9 +146,21 @@ export default defineComponent({ }, mounted() { this.loadWearableTypeInitial(); + this.preloadAll(); }, methods: { - ...mapActions(useWearableTypeStore, ["searchWearableTypes", "fetchWearableTypeById"]), + ...mapActions(useWearableTypeStore, ["searchWearableTypes", "fetchWearableTypeById", "getAllWearableTypes"]), + preloadAll() { + this.loading = true; + this.getAllWearableTypes() + .then((res) => { + this.all = res.data; + }) + .catch((err) => {}) + .finally(() => { + this.loading = false; + }); + }, search() { this.filtered = []; if (this.query == "") return; @@ -159,7 +175,7 @@ export default defineComponent({ }); }, getWearableTypeFromSearch(id: string) { - return this.filtered.find((f) => f.id == id); + return this.all.find((f) => f.id == id); }, loadWearableTypeInitial() { if (this.modelValue == "") return; -- 2.47.3 From eb4d33858303890b729e46b408343a8a87e1b2f4 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Wed, 9 Jul 2025 12:58:12 +0200 Subject: [PATCH 08/16] inspection Point base form --- .../admin/unit/inspection/ResultInput.vue | 2 + .../InspectionPointListItem.vue | 96 +++++++++ .../admin/unit/vehicle/VehicleListItem.vue | 3 + src/enums/inspectionEnum.ts | 1 + src/router/index.ts | 32 ++- src/stores/admin/navigation.ts | 6 +- .../admin/unit/damageReport/DamageReport.vue | 2 +- src/views/admin/unit/equipment/Inspection.vue | 2 +- .../unit/inspection/InspectionRouting.vue | 54 +++++ ...InspectionPlan.vue => InspectionStart.vue} | 7 +- .../admin/unit/inspection/NextInspection.vue | 45 ++++ .../inspectionPlan/CreateInspectionPlan.vue | 2 +- .../inspectionPlan/InspectionPlanRouting.vue | 16 +- .../admin/unit/inspectionPlan/Overview.vue | 6 +- .../inspectionPlan/UpdateInspectionPlan.vue | 3 +- .../UpdateInspectionPlanPoints.vue | 199 ++++++++++++++++++ .../admin/unit/maintenance/Maintenance.vue | 2 +- src/views/admin/unit/vehicle/Inspection.vue | 2 +- src/views/admin/unit/wearable/Inspection.vue | 2 +- 19 files changed, 457 insertions(+), 25 deletions(-) create mode 100644 src/components/admin/unit/inspectionPlan/InspectionPointListItem.vue create mode 100644 src/views/admin/unit/inspection/InspectionRouting.vue rename src/views/admin/unit/inspection/{InspectionPlan.vue => InspectionStart.vue} (94%) create mode 100644 src/views/admin/unit/inspection/NextInspection.vue create mode 100644 src/views/admin/unit/inspectionPlan/UpdateInspectionPlanPoints.vue diff --git a/src/components/admin/unit/inspection/ResultInput.vue b/src/components/admin/unit/inspection/ResultInput.vue index 7ac023b..e4d9ffb 100644 --- a/src/components/admin/unit/inspection/ResultInput.vue +++ b/src/components/admin/unit/inspection/ResultInput.vue @@ -14,6 +14,8 @@ type="number" required v-model="value" + :min="inspectionPoint.min" + :max="inspectionPoint.max" /> +
    + + +
    +
    + + +
    +
    +
    + + + + + diff --git a/src/components/admin/unit/vehicle/VehicleListItem.vue b/src/components/admin/unit/vehicle/VehicleListItem.vue index 0d24b45..c4a9254 100644 --- a/src/components/admin/unit/vehicle/VehicleListItem.vue +++ b/src/components/admin/unit/vehicle/VehicleListItem.vue @@ -6,6 +6,9 @@

    {{ vehicle.name }}

    +
    +

    Code: {{ vehicle.code }}

    +
    diff --git a/src/enums/inspectionEnum.ts b/src/enums/inspectionEnum.ts index 5c87e55..58143e6 100644 --- a/src/enums/inspectionEnum.ts +++ b/src/enums/inspectionEnum.ts @@ -2,4 +2,5 @@ export enum InspectionPointEnum { oknok = "oknok", text = "text", number = "number", + file = "file", } diff --git a/src/router/index.ts b/src/router/index.ts index 5f58c0a..d17640f 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -898,7 +898,15 @@ const router = createRouter({ { path: "edit", name: "admin-unit-inspection_plan-edit", - component: () => import("@/views/admin/ViewSelect.vue"), + component: () => import("@/views/admin/unit/inspectionPlan/UpdateInspectionPlan.vue"), + meta: { type: "update", section: "unit", module: "inspection_plan" }, + beforeEnter: [abilityAndNavUpdate], + props: true, + }, + { + path: "pointedit", + name: "admin-unit-inspection_plan-pointedit", + component: () => import("@/views/admin/unit/inspectionPlan/UpdateInspectionPlanPoints.vue"), meta: { type: "update", section: "unit", module: "inspection_plan" }, beforeEnter: [abilityAndNavUpdate], props: true, @@ -916,13 +924,25 @@ const router = createRouter({ children: [ { path: "", - name: "admin-unit-inspection", - redirect: { name: "admin-unit-inspection-plan" }, + name: "admin-unit-inspection-routing", + component: () => import("@/views/admin/unit/inspection/InspectionRouting.vue"), + children: [ + { + path: "next", + name: "admin-unit-inspection", + component: () => import("@/views/admin/unit/inspection/NextInspection.vue"), + }, + { + path: "running", + name: "admin-unit-inspection-running", + component: () => import("@/views/admin/unit/inspection/NextInspection.vue"), + }, + ], }, { - path: "plan/:type?/:relatedId?/:inspectionPlanId?", - name: "admin-unit-inspection-plan", - component: () => import("@/views/admin/unit/inspection/InspectionPlan.vue"), + path: "start/:type?/:relatedId?/:inspectionPlanId?", + name: "admin-unit-inspection-start", + component: () => import("@/views/admin/unit/inspection/InspectionStart.vue"), beforeEnter: [], props: true, }, diff --git a/src/stores/admin/navigation.ts b/src/stores/admin/navigation.ts index b5d1301..67aa59c 100644 --- a/src/stores/admin/navigation.ts +++ b/src/stores/admin/navigation.ts @@ -110,13 +110,13 @@ export const useNavigationStore = defineStore("navigation", { ...(abilityStore.can("read", "unit", "equipment") ? [{ key: "equipment", title: "Gerätschaften" }] : []), ...(abilityStore.can("read", "unit", "vehicle") ? [{ key: "vehicle", title: "Fahrzeuge" }] : []), ...(abilityStore.can("read", "unit", "wearable") ? [{ key: "wearable", title: "Kleidung" }] : []), - ...(abilityStore.can("read", "unit", "respiratory_gear") + ...(false && abilityStore.can("read", "unit", "respiratory_gear") ? [{ key: "respiratory_gear", title: "Atemschutz-Geräte" }] : []), - ...(abilityStore.can("read", "unit", "respiratory_wearer") + ...(false && abilityStore.can("read", "unit", "respiratory_wearer") ? [{ key: "respiratory_wearer", title: "Atemschutz-Träger" }] : []), - ...(abilityStore.can("read", "unit", "respiratory_mission") + ...(false && abilityStore.can("read", "unit", "respiratory_mission") ? [{ key: "respiratory_mission", title: "Atemschutz-Einsätze" }] : []), ...(abilityStore.can("create", "unit", "inspection") ? [{ key: "inspection", title: "Prüfungen" }] : []), diff --git a/src/views/admin/unit/damageReport/DamageReport.vue b/src/views/admin/unit/damageReport/DamageReport.vue index cc4dd22..5d76742 100644 --- a/src/views/admin/unit/damageReport/DamageReport.vue +++ b/src/views/admin/unit/damageReport/DamageReport.vue @@ -1,5 +1,5 @@ + + + + diff --git a/src/views/admin/unit/inspection/InspectionPlan.vue b/src/views/admin/unit/inspection/InspectionStart.vue similarity index 94% rename from src/views/admin/unit/inspection/InspectionPlan.vue rename to src/views/admin/unit/inspection/InspectionStart.vue index 5e9fc32..9f86b88 100644 --- a/src/views/admin/unit/inspection/InspectionPlan.vue +++ b/src/views/admin/unit/inspection/InspectionStart.vue @@ -1,5 +1,5 @@ diff --git a/src/views/admin/unit/wearable/Inspection.vue b/src/views/admin/unit/wearable/Inspection.vue index a5045c0..d5e54be 100644 --- a/src/views/admin/unit/wearable/Inspection.vue +++ b/src/views/admin/unit/wearable/Inspection.vue @@ -14,9 +14,9 @@ >
    -

    {{ row.inspectionPlan.title }} - {{ row.finished }}

    +

    {{ row.inspectionPlan.title }} - {{ row.finished ?? "in Arbeit" }}

    -
    +

    Kontext: {{ row.context }}

    nächste Inspektion: {{ row.nextInspection }}

    @@ -30,9 +30,9 @@ button primary class="w-fit!" - @click="" - >Prüfung durchführen + Prüfung durchführen +
    -- 2.47.3 From adfe64d1f2e82fc6ebd1c8389ed1fc27c831cebe Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Fri, 11 Jul 2025 09:33:34 +0200 Subject: [PATCH 12/16] show instances to type --- .../admin/unit/equipmentType/EquipmentTypeListItem.vue | 4 ++++ src/components/admin/unit/vehicleType/VehicleTypeListItem.vue | 4 ++++ .../admin/unit/wearableType/WearableTypeListItem.vue | 4 ++++ src/viewmodels/admin/unit/equipment/equipmentType.models.ts | 1 + src/viewmodels/admin/unit/vehicle/vehicleType.models.ts | 1 + src/viewmodels/admin/unit/wearable/wearableType.models.ts | 1 + 6 files changed, 15 insertions(+) diff --git a/src/components/admin/unit/equipmentType/EquipmentTypeListItem.vue b/src/components/admin/unit/equipmentType/EquipmentTypeListItem.vue index 7859fe1..91e8e9b 100644 --- a/src/components/admin/unit/equipmentType/EquipmentTypeListItem.vue +++ b/src/components/admin/unit/equipmentType/EquipmentTypeListItem.vue @@ -10,6 +10,10 @@
    +

    Anzahl angelegter Geräte:

    +

    {{ equipmentType.equipmentCount }}

    +
    +

    Beschreibung:

    {{ equipmentType.description }}

    diff --git a/src/components/admin/unit/vehicleType/VehicleTypeListItem.vue b/src/components/admin/unit/vehicleType/VehicleTypeListItem.vue index 6b621ef..c3658b8 100644 --- a/src/components/admin/unit/vehicleType/VehicleTypeListItem.vue +++ b/src/components/admin/unit/vehicleType/VehicleTypeListItem.vue @@ -10,6 +10,10 @@
    +

    Anzahl angelegter Fahrzeuge:

    +

    {{ vehicleType.vehicleCount }}

    +
    +

    Beschreibung:

    {{ vehicleType.description }}

    diff --git a/src/components/admin/unit/wearableType/WearableTypeListItem.vue b/src/components/admin/unit/wearableType/WearableTypeListItem.vue index 09bdf96..3b9d0ed 100644 --- a/src/components/admin/unit/wearableType/WearableTypeListItem.vue +++ b/src/components/admin/unit/wearableType/WearableTypeListItem.vue @@ -10,6 +10,10 @@
    +

    Anzahl angelegter Kleidung:

    +

    {{ wearableType.wearableCount }}

    +
    +

    Beschreibung:

    {{ wearableType.description }}

    diff --git a/src/viewmodels/admin/unit/equipment/equipmentType.models.ts b/src/viewmodels/admin/unit/equipment/equipmentType.models.ts index fcf47ee..d7dfad9 100644 --- a/src/viewmodels/admin/unit/equipment/equipmentType.models.ts +++ b/src/viewmodels/admin/unit/equipment/equipmentType.models.ts @@ -2,6 +2,7 @@ export interface EquipmentTypeViewModel { id: string; type: string; description: string; + equipmentCount: number; } export interface CreateEquipmentTypeViewModel { diff --git a/src/viewmodels/admin/unit/vehicle/vehicleType.models.ts b/src/viewmodels/admin/unit/vehicle/vehicleType.models.ts index ea6c7cf..72e1203 100644 --- a/src/viewmodels/admin/unit/vehicle/vehicleType.models.ts +++ b/src/viewmodels/admin/unit/vehicle/vehicleType.models.ts @@ -2,6 +2,7 @@ export interface VehicleTypeViewModel { id: string; type: string; description: string; + vehicleCount: number; } export interface CreateVehicleTypeViewModel { diff --git a/src/viewmodels/admin/unit/wearable/wearableType.models.ts b/src/viewmodels/admin/unit/wearable/wearableType.models.ts index b3f49fc..d3c9c0e 100644 --- a/src/viewmodels/admin/unit/wearable/wearableType.models.ts +++ b/src/viewmodels/admin/unit/wearable/wearableType.models.ts @@ -2,6 +2,7 @@ export interface WearableTypeViewModel { id: string; type: string; description: string; + wearableCount: number; } export interface CreateWearableTypeViewModel { -- 2.47.3 From d96c73d5b109ba49bfcbac502f49f285f3d2de2e Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Fri, 11 Jul 2025 09:42:07 +0200 Subject: [PATCH 13/16] correct type inspectionPlans request --- src/router/unit/equipment.ts | 18 +++++++++++------- src/router/unit/inspection.ts | 10 +++++----- src/router/unit/inspectionPlan.ts | 10 +++++----- src/router/unit/respiratoryGear.ts | 10 +++++----- src/router/unit/respiratoryMission.ts | 10 +++++----- src/router/unit/respiratoryWearer.ts | 10 +++++----- src/router/unit/vehicle.ts | 18 +++++++++++------- src/router/unit/wearable.ts | 18 +++++++++++------- .../admin/unit/equipmentType/inspectionPlan.ts | 4 ++-- .../admin/unit/vehicleType/inspectionPlan.ts | 4 ++-- .../admin/unit/wearableType/inspectionPlan.ts | 4 ++-- 11 files changed, 64 insertions(+), 52 deletions(-) diff --git a/src/router/unit/equipment.ts b/src/router/unit/equipment.ts index cdb2efa..b8a3d7d 100644 --- a/src/router/unit/equipment.ts +++ b/src/router/unit/equipment.ts @@ -1,20 +1,24 @@ import { useEquipmentStore } from "@/stores/admin/unit/equipment/equipment"; +import { useEquipmentDamageReportStore } from "../../stores/admin/unit/equipment/damageReport"; +import { useEquipmentInspectionStore } from "../../stores/admin/unit/equipment/inspection"; export async function setEquipmentId(to: any, from: any, next: any) { - const EquipmentStore = useEquipmentStore(); - EquipmentStore.activeEquipment = to.params?.equipmentId ?? null; + const equipmentStore = useEquipmentStore(); + equipmentStore.activeEquipment = to.params?.equipmentId ?? null; - //useXYStore().$reset(); + useEquipmentDamageReportStore().$reset(); + useEquipmentInspectionStore().$reset(); next(); } export async function resetEquipmentStores(to: any, from: any, next: any) { - const EquipmentStore = useEquipmentStore(); - EquipmentStore.activeEquipment = null; - EquipmentStore.activeEquipmentObj = null; + const equipmentStore = useEquipmentStore(); + equipmentStore.activeEquipment = null; + equipmentStore.activeEquipmentObj = null; - //useXYStore().$reset(); + useEquipmentDamageReportStore().$reset(); + useEquipmentInspectionStore().$reset(); next(); } diff --git a/src/router/unit/inspection.ts b/src/router/unit/inspection.ts index 1232a42..3c1a30f 100644 --- a/src/router/unit/inspection.ts +++ b/src/router/unit/inspection.ts @@ -1,8 +1,8 @@ import { useInspectionStore } from "@/stores/admin/unit/inspection/inspection"; export async function setInspectionId(to: any, from: any, next: any) { - const InspectionStore = useInspectionStore(); - InspectionStore.activeInspection = to.params?.inspectionId ?? null; + const inspectionStore = useInspectionStore(); + inspectionStore.activeInspection = to.params?.inspectionId ?? null; //useXYStore().$reset(); @@ -10,9 +10,9 @@ export async function setInspectionId(to: any, from: any, next: any) { } export async function resetInspectionStores(to: any, from: any, next: any) { - const InspectionStore = useInspectionStore(); - InspectionStore.activeInspection = null; - InspectionStore.activeInspectionObj = null; + const inspectionStore = useInspectionStore(); + inspectionStore.activeInspection = null; + inspectionStore.activeInspectionObj = null; //useXYStore().$reset(); diff --git a/src/router/unit/inspectionPlan.ts b/src/router/unit/inspectionPlan.ts index 91b8c8e..95b9e7c 100644 --- a/src/router/unit/inspectionPlan.ts +++ b/src/router/unit/inspectionPlan.ts @@ -2,8 +2,8 @@ import { useInspectionPlanStore } from "@/stores/admin/unit/inspectionPlan/inspe import { useInspectionPointStore } from "../../stores/admin/unit/inspectionPlan/inspectionPoint"; export async function setInspectionPlanId(to: any, from: any, next: any) { - const InspectionPlanStore = useInspectionPlanStore(); - InspectionPlanStore.activeInspectionPlan = to.params?.inspectionPlanId ?? null; + const inspectionPlanStore = useInspectionPlanStore(); + inspectionPlanStore.activeInspectionPlan = to.params?.inspectionPlanId ?? null; useInspectionPointStore().$reset(); @@ -11,9 +11,9 @@ export async function setInspectionPlanId(to: any, from: any, next: any) { } export async function resetInspectionPlanStores(to: any, from: any, next: any) { - const InspectionPlanStore = useInspectionPlanStore(); - InspectionPlanStore.activeInspectionPlan = null; - InspectionPlanStore.activeInspectionPlanObj = null; + const inspectionPlanStore = useInspectionPlanStore(); + inspectionPlanStore.activeInspectionPlan = null; + inspectionPlanStore.activeInspectionPlanObj = null; useInspectionPointStore().$reset(); diff --git a/src/router/unit/respiratoryGear.ts b/src/router/unit/respiratoryGear.ts index 8059d2a..e681332 100644 --- a/src/router/unit/respiratoryGear.ts +++ b/src/router/unit/respiratoryGear.ts @@ -1,8 +1,8 @@ import { useRespiratoryGearStore } from "@/stores/admin/unit/respiratoryGear/respiratoryGear"; export async function setRespiratoryGearId(to: any, from: any, next: any) { - const RespiratoryGearStore = useRespiratoryGearStore(); - RespiratoryGearStore.activeRespiratoryGear = to.params?.respiratoryGearId ?? null; + const respiratoryGearStore = useRespiratoryGearStore(); + respiratoryGearStore.activeRespiratoryGear = to.params?.respiratoryGearId ?? null; //useXYStore().$reset(); @@ -10,9 +10,9 @@ export async function setRespiratoryGearId(to: any, from: any, next: any) { } export async function resetRespiratoryGearStores(to: any, from: any, next: any) { - const RespiratoryGearStore = useRespiratoryGearStore(); - RespiratoryGearStore.activeRespiratoryGear = null; - RespiratoryGearStore.activeRespiratoryGearObj = null; + const respiratoryGearStore = useRespiratoryGearStore(); + respiratoryGearStore.activeRespiratoryGear = null; + respiratoryGearStore.activeRespiratoryGearObj = null; //useXYStore().$reset(); diff --git a/src/router/unit/respiratoryMission.ts b/src/router/unit/respiratoryMission.ts index db85a2f..25272f5 100644 --- a/src/router/unit/respiratoryMission.ts +++ b/src/router/unit/respiratoryMission.ts @@ -1,8 +1,8 @@ import { useRespiratoryMissionStore } from "@/stores/admin/unit/respiratoryMission/respiratoryMission"; export async function setRespiratoryMissionId(to: any, from: any, next: any) { - const RespiratoryMissionStore = useRespiratoryMissionStore(); - RespiratoryMissionStore.activeRespiratoryMission = to.params?.respiratoryMissionId ?? null; + const respiratoryMissionStore = useRespiratoryMissionStore(); + respiratoryMissionStore.activeRespiratoryMission = to.params?.respiratoryMissionId ?? null; //useXYStore().$reset(); @@ -10,9 +10,9 @@ export async function setRespiratoryMissionId(to: any, from: any, next: any) { } export async function resetRespiratoryMissionStores(to: any, from: any, next: any) { - const RespiratoryMissionStore = useRespiratoryMissionStore(); - RespiratoryMissionStore.activeRespiratoryMission = null; - RespiratoryMissionStore.activeRespiratoryMissionObj = null; + const respiratoryMissionStore = useRespiratoryMissionStore(); + respiratoryMissionStore.activeRespiratoryMission = null; + respiratoryMissionStore.activeRespiratoryMissionObj = null; //useXYStore().$reset(); diff --git a/src/router/unit/respiratoryWearer.ts b/src/router/unit/respiratoryWearer.ts index 37a4499..6057ee5 100644 --- a/src/router/unit/respiratoryWearer.ts +++ b/src/router/unit/respiratoryWearer.ts @@ -1,8 +1,8 @@ import { useRespiratoryWearerStore } from "@/stores/admin/unit/respiratoryWearer/respiratoryWearer"; export async function setRespiratoryWearerId(to: any, from: any, next: any) { - const RespiratoryWearerStore = useRespiratoryWearerStore(); - RespiratoryWearerStore.activeRespiratoryWearer = to.params?.respiratoryWearerId ?? null; + const respiratoryWearerStore = useRespiratoryWearerStore(); + respiratoryWearerStore.activeRespiratoryWearer = to.params?.respiratoryWearerId ?? null; //useXYStore().$reset(); @@ -10,9 +10,9 @@ export async function setRespiratoryWearerId(to: any, from: any, next: any) { } export async function resetRespiratoryWearerStores(to: any, from: any, next: any) { - const RespiratoryWearerStore = useRespiratoryWearerStore(); - RespiratoryWearerStore.activeRespiratoryWearer = null; - RespiratoryWearerStore.activeRespiratoryWearerObj = null; + const respiratoryWearerStore = useRespiratoryWearerStore(); + respiratoryWearerStore.activeRespiratoryWearer = null; + respiratoryWearerStore.activeRespiratoryWearerObj = null; //useXYStore().$reset(); diff --git a/src/router/unit/vehicle.ts b/src/router/unit/vehicle.ts index c27c47c..210f5c4 100644 --- a/src/router/unit/vehicle.ts +++ b/src/router/unit/vehicle.ts @@ -1,20 +1,24 @@ import { useVehicleStore } from "@/stores/admin/unit/vehicle/vehicle"; +import { useVehicleDamageReportStore } from "../../stores/admin/unit/vehicle/damageReport"; +import { useVehicleInspectionStore } from "../../stores/admin/unit/vehicle/inspection"; export async function setVehicleId(to: any, from: any, next: any) { - const VehicleStore = useVehicleStore(); - VehicleStore.activeVehicle = to.params?.vehicleId ?? null; + const vehicleStore = useVehicleStore(); + vehicleStore.activeVehicle = to.params?.vehicleId ?? null; - //useXYStore().$reset(); + useVehicleDamageReportStore().$reset(); + useVehicleInspectionStore().$reset(); next(); } export async function resetVehicleStores(to: any, from: any, next: any) { - const VehicleStore = useVehicleStore(); - VehicleStore.activeVehicle = null; - VehicleStore.activeVehicleObj = null; + const vehicleStore = useVehicleStore(); + vehicleStore.activeVehicle = null; + vehicleStore.activeVehicleObj = null; - //useXYStore().$reset(); + useVehicleDamageReportStore().$reset(); + useVehicleInspectionStore().$reset(); next(); } diff --git a/src/router/unit/wearable.ts b/src/router/unit/wearable.ts index 1a0fb91..f294bbd 100644 --- a/src/router/unit/wearable.ts +++ b/src/router/unit/wearable.ts @@ -1,20 +1,24 @@ import { useWearableStore } from "@/stores/admin/unit/wearable/wearable"; +import { useWearableDamageReportStore } from "../../stores/admin/unit/wearable/damageReport"; +import { useWearableTypeInspectionPlanStore } from "../../stores/admin/unit/wearableType/inspectionPlan"; export async function setWearableId(to: any, from: any, next: any) { - const WearableStore = useWearableStore(); - WearableStore.activeWearable = to.params?.wearableId ?? null; + const wearableStore = useWearableStore(); + wearableStore.activeWearable = to.params?.wearableId ?? null; - //useXYStore().$reset(); + useWearableDamageReportStore().$reset(); + useWearableTypeInspectionPlanStore().$reset(); next(); } export async function resetWearableStores(to: any, from: any, next: any) { - const WearableStore = useWearableStore(); - WearableStore.activeWearable = null; - WearableStore.activeWearableObj = null; + const wearableStore = useWearableStore(); + wearableStore.activeWearable = null; + wearableStore.activeWearableObj = null; - //useXYStore().$reset(); + useWearableDamageReportStore().$reset(); + useWearableTypeInspectionPlanStore().$reset(); next(); } diff --git a/src/stores/admin/unit/equipmentType/inspectionPlan.ts b/src/stores/admin/unit/equipmentType/inspectionPlan.ts index dc3b31f..0496cd3 100644 --- a/src/stores/admin/unit/equipmentType/inspectionPlan.ts +++ b/src/stores/admin/unit/equipmentType/inspectionPlan.ts @@ -15,9 +15,9 @@ export const useEquipmentTypeInspectionPlanStore = defineStore("equipmentTypeIns const equipmentTypeId = useEquipmentTypeStore().activeEquipmentType; this.loading = "loading"; http - .get(`/admin/inspectionPlan/equipmentType/${equipmentTypeId}`) + .get(`/admin/inspectionPlan/equipmentType/${equipmentTypeId}?noLimit=true`) .then((result) => { - this.inspectionPlans = result.data; + this.inspectionPlans = result.data.inspectionPlans; this.loading = "fetched"; }) .catch((err) => { diff --git a/src/stores/admin/unit/vehicleType/inspectionPlan.ts b/src/stores/admin/unit/vehicleType/inspectionPlan.ts index 6f1c1c6..e7184ab 100644 --- a/src/stores/admin/unit/vehicleType/inspectionPlan.ts +++ b/src/stores/admin/unit/vehicleType/inspectionPlan.ts @@ -16,9 +16,9 @@ export const useVehicleTypeInspectionPlanStore = defineStore("vehicleTypeInspect const vehicleTypeId = useVehicleTypeStore().activeVehicleType; this.loading = "loading"; http - .get(`/admin/inspectionPlan/vehicleType/${vehicleTypeId}`) + .get(`/admin/inspectionPlan/vehicleType/${vehicleTypeId}?noLimit=true`) .then((result) => { - this.inspectionPlans = result.data; + this.inspectionPlans = result.data.inspectionPlans; this.loading = "fetched"; }) .catch((err) => { diff --git a/src/stores/admin/unit/wearableType/inspectionPlan.ts b/src/stores/admin/unit/wearableType/inspectionPlan.ts index dbe2254..3622c37 100644 --- a/src/stores/admin/unit/wearableType/inspectionPlan.ts +++ b/src/stores/admin/unit/wearableType/inspectionPlan.ts @@ -16,9 +16,9 @@ export const useWearableTypeInspectionPlanStore = defineStore("wearableTypeInspe const wearableTypeId = useWearableTypeStore().activeWearableType; this.loading = "loading"; http - .get(`/admin/inspectionPlan/wearableType/${wearableTypeId}`) + .get(`/admin/inspectionPlan/wearableType/${wearableTypeId}?noLimit=true`) .then((result) => { - this.inspectionPlans = result.data; + this.inspectionPlans = result.data.inspectionPlans; this.loading = "fetched"; }) .catch((err) => { -- 2.47.3 From 5d26885da3b117584b5c38efbf2dbb01f07d0bf7 Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Fri, 11 Jul 2025 14:02:39 +0200 Subject: [PATCH 14/16] inspection finish and print --- .../unit/InspectionTimeFormatExplainIcon.vue | 25 ++++++ .../unit/InspectionTimeFormatExplainModal.vue | 55 ++++++++++++ .../unit/inspection/DeleteInspectionModal.vue | 85 +++++++++++++++++++ .../unit/inspection/InspectionFinishModal.vue | 48 ++++++++++- .../unit/inspection/InspectionPrintModal.vue | 62 ++++++++++++++ .../TypeInspectionPlanListItem.vue | 7 +- .../InspectionPlanSearchSelectWithRelated.vue | 4 +- .../admin/unit/inspection/inspection.ts | 36 +++++++- .../unit/inspectionPlan/inspectionPlan.ts | 4 +- .../unit/inspection/inspection.models.ts | 5 ++ src/views/admin/unit/equipment/Inspection.vue | 3 +- .../unit/inspection/InspectionExecute.vue | 43 +++++++--- .../admin/unit/inspection/InspectionStart.vue | 8 +- .../inspectionPlan/CreateInspectionPlan.vue | 11 ++- 14 files changed, 367 insertions(+), 29 deletions(-) create mode 100644 src/components/admin/unit/InspectionTimeFormatExplainIcon.vue create mode 100644 src/components/admin/unit/InspectionTimeFormatExplainModal.vue create mode 100644 src/components/admin/unit/inspection/DeleteInspectionModal.vue create mode 100644 src/components/admin/unit/inspection/InspectionPrintModal.vue diff --git a/src/components/admin/unit/InspectionTimeFormatExplainIcon.vue b/src/components/admin/unit/InspectionTimeFormatExplainIcon.vue new file mode 100644 index 0000000..9f27541 --- /dev/null +++ b/src/components/admin/unit/InspectionTimeFormatExplainIcon.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/src/components/admin/unit/InspectionTimeFormatExplainModal.vue b/src/components/admin/unit/InspectionTimeFormatExplainModal.vue new file mode 100644 index 0000000..d0719c2 --- /dev/null +++ b/src/components/admin/unit/InspectionTimeFormatExplainModal.vue @@ -0,0 +1,55 @@ + + + + + diff --git a/src/components/admin/unit/inspection/DeleteInspectionModal.vue b/src/components/admin/unit/inspection/DeleteInspectionModal.vue new file mode 100644 index 0000000..334080c --- /dev/null +++ b/src/components/admin/unit/inspection/DeleteInspectionModal.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/components/admin/unit/inspection/InspectionFinishModal.vue b/src/components/admin/unit/inspection/InspectionFinishModal.vue index 33c9cd0..b2628e1 100644 --- a/src/components/admin/unit/inspection/InspectionFinishModal.vue +++ b/src/components/admin/unit/inspection/InspectionFinishModal.vue @@ -11,13 +11,22 @@ Es wird ein PDF ausgedruckt und ist dann zu dieser Prüfung verfügbar.


    - +
    + + + + +

    - +
    @@ -28,12 +37,47 @@ import { defineComponent } from "vue"; import { mapState, mapActions } from "pinia"; import { useModalStore } from "@/stores/modal"; import { InformationCircleIcon } from "@heroicons/vue/24/outline"; +import { useInspectionStore } from "@/stores/admin/unit/inspection/inspection"; +import Spinner from "@/components/Spinner.vue"; +import SuccessCheckmark from "@/components/SuccessCheckmark.vue"; +import FailureXMark from "@/components/FailureXMark.vue"; diff --git a/src/components/admin/unit/inspection/InspectionPrintModal.vue b/src/components/admin/unit/inspection/InspectionPrintModal.vue new file mode 100644 index 0000000..734ed64 --- /dev/null +++ b/src/components/admin/unit/inspection/InspectionPrintModal.vue @@ -0,0 +1,62 @@ +