diff --git a/src/components/admin/unit/inspection/FileInput.vue b/src/components/admin/unit/inspection/FileInput.vue
new file mode 100644
index 0000000..7ade43d
--- /dev/null
+++ b/src/components/admin/unit/inspection/FileInput.vue
@@ -0,0 +1,76 @@
+
+
+
+
{{ inspectionPoint.title }}
+
+
+
Beschreibung: {{ inspectionPoint.description }}
+
+
{{ inspectionPoint.others == "pdf" ? "PDF" : "Bild" }}-Datei
+
+ Datei wählen Datei gewählt
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/admin/unit/inspection/InspectionFinishModal.vue b/src/components/admin/unit/inspection/InspectionFinishModal.vue
new file mode 100644
index 0000000..33c9cd0
--- /dev/null
+++ b/src/components/admin/unit/inspection/InspectionFinishModal.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+ Nach abschluss der Prüfung können keine Änderung mehr an
+ dieser vorgenommen werden.
+ Es wird ein PDF ausgedruckt und ist dann zu dieser Prüfung verfügbar.
+
+
+
Prüfung abschließen
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/admin/unit/inspection/NumberInput.vue b/src/components/admin/unit/inspection/NumberInput.vue
new file mode 100644
index 0000000..eb3cc4d
--- /dev/null
+++ b/src/components/admin/unit/inspection/NumberInput.vue
@@ -0,0 +1,75 @@
+
+
+
+
{{ inspectionPoint.title }}
+
+
+
Beschreibung: {{ inspectionPoint.description }}
+
+
+ Zahl {{ restrictedRange }}
+
+
+
+
+
+
+
+
+
diff --git a/src/components/admin/unit/inspection/OkNotOk.vue b/src/components/admin/unit/inspection/OkNotOk.vue
index 861e6fa..4394ba8 100644
--- a/src/components/admin/unit/inspection/OkNotOk.vue
+++ b/src/components/admin/unit/inspection/OkNotOk.vue
@@ -36,8 +36,8 @@ export default defineComponent({
required: true,
},
modelValue: {
- type: String as PropType<"true" | "false">,
- default: "false",
+ type: String as PropType<"true" | "false" | "">,
+ default: "",
},
},
emits: ["update:model-value"],
@@ -59,5 +59,8 @@ export default defineComponent({
},
},
},
+ mounted() {
+ if (this.value == "") this.value = "false";
+ },
});
diff --git a/src/components/admin/unit/inspection/ResultInput.vue b/src/components/admin/unit/inspection/TextInput.vue
similarity index 75%
rename from src/components/admin/unit/inspection/ResultInput.vue
rename to src/components/admin/unit/inspection/TextInput.vue
index e4d9ffb..4ff65c4 100644
--- a/src/components/admin/unit/inspection/ResultInput.vue
+++ b/src/components/admin/unit/inspection/TextInput.vue
@@ -6,18 +6,14 @@
Beschreibung: {{ inspectionPoint.description }}
-
{{ inspectionPoint.type == "number" ? "Zahl" : "Freitext" }}
-
Freitext
+
-
+ >
diff --git a/src/components/admin/unit/inspectionPlan/InspectionPointListItem.vue b/src/components/admin/unit/inspectionPlan/InspectionPointListItem.vue
index a7591d6..46a359d 100644
--- a/src/components/admin/unit/inspectionPlan/InspectionPointListItem.vue
+++ b/src/components/admin/unit/inspectionPlan/InspectionPointListItem.vue
@@ -6,7 +6,7 @@
-
+
@@ -26,13 +26,17 @@
Maximal
-
+
Dateiart
- Bild
- PDF
+
+ Bild
+
+
+ PDF
+
@@ -87,7 +91,7 @@ export default defineComponent({
return this.modelValue.min;
},
set(val: string) {
- this.$emit("update:model-value", { ...this.modelValue, min: val == "" ? null : val });
+ this.$emit("update:model-value", { ...this.modelValue, min: String(val) == "" ? null : String(val) });
},
},
max: {
@@ -95,7 +99,7 @@ export default defineComponent({
return this.modelValue.max;
},
set(val: string) {
- this.$emit("update:model-value", { ...this.modelValue, max: val == "" ? null : val });
+ this.$emit("update:model-value", { ...this.modelValue, max: String(val) == "" ? null : String(val) });
},
},
others: {
@@ -107,5 +111,10 @@ export default defineComponent({
},
},
},
+ mounted() {
+ if (this.modelValue.type == InspectionPointEnum.file && !this.others) {
+ this.others = "img";
+ }
+ },
});
diff --git a/src/stores/admin/unit/inspection/inspection.ts b/src/stores/admin/unit/inspection/inspection.ts
index abe1877..a0fcd11 100644
--- a/src/stores/admin/unit/inspection/inspection.ts
+++ b/src/stores/admin/unit/inspection/inspection.ts
@@ -1,7 +1,11 @@
import { defineStore } from "pinia";
import { http } from "@/serverCom";
import type { AxiosResponse } from "axios";
-import type { InspectionViewModel } from "@/viewmodels/admin/unit/inspection/inspection.models";
+import type {
+ CreateInspectionViewModel,
+ InspectionViewModel,
+ UpdateInspectionViewModel,
+} from "@/viewmodels/admin/unit/inspection/inspection.models";
export const useInspectionStore = defineStore("inspection", {
state: () => {
@@ -27,19 +31,20 @@ export const useInspectionStore = defineStore("inspection", {
fetchInspectionById(id: string) {
return http.get(`/admin/inspection/${id}`);
},
- async createInspection(inspection: any): Promise> {
+ async createInspection(inspection: CreateInspectionViewModel): Promise> {
const result = await http.post(`/admin/inspection`, {
- context: "",
- inspectionPlanId: "",
- relatedId: "",
- assigned: "equipment|vehicle",
+ assigned: inspection.assigned,
+ relatedId: inspection.relatedId,
+ inspectionPlanId: inspection.inspectionPlanId,
+ nextInspection: inspection.nextInspection,
+ context: inspection.context,
});
- this.fetchInspectionByActiveId();
return result;
},
- async updateActiveInspection(inspection: any): Promise> {
+ async updateActiveInspection(inspection: UpdateInspectionViewModel): Promise> {
const result = await http.patch(`/admin/inspection/${inspection.id}`, {
- context: "",
+ nextInspection: inspection.nextInspection,
+ context: inspection.context,
});
this.fetchInspectionByActiveId();
return result;
diff --git a/src/viewmodels/admin/unit/inspection/inspection.models.ts b/src/viewmodels/admin/unit/inspection/inspection.models.ts
index 4f72a13..0ffde9c 100644
--- a/src/viewmodels/admin/unit/inspection/inspection.models.ts
+++ b/src/viewmodels/admin/unit/inspection/inspection.models.ts
@@ -37,8 +37,21 @@ export type InspectionViewModel = {
export interface InspectionPointResultViewModel {
inspectionId: string;
- inspectionVersionedPlanId: string;
inspectionPointId: string;
inspectionPoint?: InspectionPointViewModel;
value: string;
}
+
+export type CreateInspectionViewModel = {
+ assigned: "equipment" | "vehicle" | "wearable";
+ relatedId: string;
+ inspectionPlanId: string;
+ nextInspection?: Date;
+ context?: string;
+};
+
+export type UpdateInspectionViewModel = {
+ id: string;
+ nextInspection?: Date;
+ context?: string;
+};
diff --git a/src/views/admin/unit/inspection/InspectionExecute.vue b/src/views/admin/unit/inspection/InspectionExecute.vue
index a9f565d..c12dec8 100644
--- a/src/views/admin/unit/inspection/InspectionExecute.vue
+++ b/src/views/admin/unit/inspection/InspectionExecute.vue
@@ -2,49 +2,80 @@
- Prüfung durchführen: {{ activeInspectionObj?.related.name }} - {{ activeInspectionObj?.inspectionPlan.title }}
+ Prüfung durchführen: {{ activeInspectionObj?.related.name }}
+ ({{ activeInspectionObj?.related.code }}) -
+ {{ activeInspectionObj?.inspectionPlan.title }}
laden fehlgeschlagen
-