@piveau/dpi 0.2.0-alpha.7 → 0.2.0-alpha.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/dpi.css +1 -1
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/AboutProject.vue.js +20 -17
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/DPIHome.vue.js +4 -4
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ProjectTable.vue.js +45 -44
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ActionCard.vue.js +1 -1
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ActionCard.vue2.js +24 -22
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/DataCollection/BasicInformationStep.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/DataCollection/BasicInformationStep.vue2.js +106 -134
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/DataProcessing/BasicInformationStep.vue.js +7 -0
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/DataProcessing/BasicInformationStep.vue2.js +180 -0
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/DpiModalBase.vue.js +3 -3
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Findability/DiscoverabilityStep.vue.js +11 -11
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/InputField/InputFieldFormKit.vue.js +25 -25
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/InputField.vue.js +1 -1
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/OptionalDataStep/OptionalDataStep.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/OptionalDataStep/OptionalDataStep.vue2.js +96 -93
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ProcessSteps/ProcessStepsOverviewStep.vue.js +12 -12
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Projektphasen/InitiierenStep.vue.js +31 -26
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Projektphasen/PlanenStep.vue.js +32 -26
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Projektphasen/ProjektPhasenOverviewStep.vue.js +7 -7
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Projektphasen/UmstezenStep.vue.js +30 -25
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/Projektphasen/WeiterdenkenStep.vue.js +29 -24
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ReviewStep/ReviewStep.vue.js +5 -932
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/ReviewStep/ReviewStep.vue2.js +1053 -2
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/StateTag.vue.js +17 -13
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/SummaryBox.vue.js +1 -1
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/SummaryBox.vue2.js +14 -10
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/TableRowV3.vue.js +84 -73
- package/dist/packages/dpi/src/data-provider-interface/HappyFlowComponents/ui/TextAreaV3.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/components/StepActionsSection.vue.js +1 -1
- package/dist/packages/dpi/src/data-provider-interface/components/StepActionsSection.vue2.js +16 -16
- package/dist/packages/dpi/src/data-provider-interface/components/TheCancelConfirmationDialog.vue.js +2 -2
- package/dist/packages/dpi/src/data-provider-interface/components/TheCancelConfirmationDialog.vue2.js +22 -22
- package/dist/packages/dpi/src/data-provider-interface/views/InputPageProject.vue.js +158 -156
- package/dist/packages/dpi/src/stories/components/LinkCard.vue.js +1 -1
- package/dist/packages/dpi/src/stories/components/LinkCard.vue2.js +10 -9
- package/dist/packages/dpi/src/stories/components/PartnerCard.vue.js +2 -2
- package/dist/packages/dpi/src/stories/components/PartnerCard.vue2.js +21 -16
- package/dist/packages/dpi/src/stories/components/ScreenshotCard.vue.js +2 -2
- package/dist/packages/dpi/src/stories/components/ScreenshotCard.vue2.js +8 -6
- package/package.json +1 -1
- package/dist/packages/dpi/src/stories/components/MethodsCard.vue.js +0 -7
- package/dist/packages/dpi/src/stories/components/MethodsCard.vue2.js +0 -45
|
@@ -1,64 +1,69 @@
|
|
|
1
|
-
import { reactive as
|
|
1
|
+
import { reactive as c, createElementBlock as h, openBlock as s, createElementVNode as i, createVNode as m, Fragment as g, renderList as p, unref as o, createBlock as b } from "vue";
|
|
2
2
|
import { FormKit as f } from "@formkit/vue";
|
|
3
|
-
import
|
|
3
|
+
import w from "../../../components/StepActionsSection.vue.js";
|
|
4
4
|
import k from "../TextArea/TextAreaDefinition.js";
|
|
5
5
|
/* empty css */
|
|
6
|
-
import
|
|
7
|
-
const
|
|
6
|
+
import z from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
7
|
+
const v = { class: "project-phasen-initiieren" }, B = { class: "project-phasen-initiieren-content" }, u = 1e3, S = {
|
|
8
8
|
__name: "InitiierenStep",
|
|
9
|
-
setup(
|
|
10
|
-
const n =
|
|
9
|
+
setup(j) {
|
|
10
|
+
const n = c({
|
|
11
11
|
questions: {
|
|
12
12
|
projectTriggers: {
|
|
13
|
-
question: "Was waren Auslöser für das
|
|
13
|
+
question: "Was waren Auslöser für das Projekt (z.B. rechtliche oder politische Vorgaben, intrinsische Motivation oder inspirierende Projekte aus anderen Kommunen)?",
|
|
14
|
+
placeholder: "Wir haben in den letzten Jahren immer häufiger mit Starkregenereignissen und den daraus resultierenden Überflutungen zu kämpfen gehabt. Darüber hinaus mussten wir bereits in der Vergangenheit im Rahmen der EU-Hochwasserrichtlinie Hochwassergefahren- und Risikokarten erstellen und regelmäßig aktualisieren. Beides hat uns verdeutlicht, dass wir in der Pflicht sind, Hochwasserschutz und Prävention aktiv weiterzuentwickeln. Beispiele aus anderen Kommunen haben zudem spürbare Vorteile durch vorausschauende Systeme aufgezeigt.",
|
|
14
15
|
answer: ""
|
|
15
16
|
},
|
|
16
17
|
involvedStakeholders: {
|
|
17
18
|
question: "Welche relevanten Akteure - innerhalb oder außerhalb Ihrer Organisation - haben Sie frühzeitig involviert (z.B. um politische Rückendeckung sicherzustellen)?",
|
|
19
|
+
placeholder: "Bereits zu Beginn des Projekts haben wir unser Umweltamt, das die Federführung übernommen hat, und das Bauamt, insbesondere wegen der Schnittstellen zur Stadtentwässerung und Flächenplanung, involviert. Darüber hinaus haben wir frühzeitig die Feuerwehr und das Amt für Informations- und Kommunikationstechnik eingebunden. Von politischer Seite waren der Bürgermeister und die zuständigen Ausschüsse (z. B. Umwelt- und Bauausschuss) von Anfang an informiert.",
|
|
18
20
|
answer: ""
|
|
19
21
|
},
|
|
20
22
|
dataCollectionMethod: {
|
|
21
23
|
question: "Wie haben Sie den Bestand vorhandener Daten erhoben?",
|
|
24
|
+
placeholder: "Wir haben zunächst eine bereichsübergreifende Arbeitsgruppe gegründet, die alle relevanten Fachabteilungen (u.a. Umweltamt, Katastrophenschutz, Tiefbau, IT) einbezogen hat. In gemeinsamen Workshops haben wir systematisch erfasst, welche hydrologischen, geografischen und technischen Daten bereits vorliegen und welche von externen Partnern (z.B. Wasserwirtschaftsämter, Wetterdienste, Landesämter) bezogen werden können. Wir haben die Daten dokumentiert und bewertet (z.B. Aktualität, Genauigkeit, Formatierung, Zugriffsrechte). So konnten wir identifizieren, dass wir für einige Bachläufe noch Messgeräte zur kontinuierlichen Datenerhebung benötigen.",
|
|
22
25
|
answer: ""
|
|
23
26
|
},
|
|
24
27
|
budgetPlanning: {
|
|
25
28
|
question: "Wie haben Sie das (erste) Budget berechnet und nachhaltig gesichert?",
|
|
29
|
+
placeholder: "Zu Beginn haben wir gemeinsam mit den beteiligten Ämtern eine Bedarfserhebung durchgeführt, um die voraussichtlichen Kosten möglichst realistisch einschätzen zu können. Wir haben außerdem andere Kommunen und Anbieter angefragt, um Erfahrungswerte und Angebote für vergleichbare Projekte einzuholen. Das Budget wurde größtenteils über ein Landesförderprogramm für kommunalen Hochwasserschutz gesichert. Schon vor Auslaufen der Förderung haben wir den weiteren Betrieb kalkuliert und technisch so aufgestellt, dass wir ihn langfristig finanzieren können.",
|
|
26
30
|
answer: ""
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
|
-
}), d = Object.keys(n.questions).map((
|
|
30
|
-
name:
|
|
31
|
-
text: n.questions[
|
|
33
|
+
}), d = Object.keys(n.questions).map((t) => ({
|
|
34
|
+
name: t,
|
|
35
|
+
text: n.questions[t].question
|
|
32
36
|
}));
|
|
33
|
-
function
|
|
34
|
-
n.questions[
|
|
37
|
+
function l(t, r) {
|
|
38
|
+
n.questions[t].answer = r.slice(0, u);
|
|
35
39
|
}
|
|
36
|
-
return (
|
|
37
|
-
|
|
40
|
+
return (t, r) => (s(), h("div", v, [
|
|
41
|
+
r[1] || (r[1] = i("div", { class: "project-phasen-initiieren-header" }, [
|
|
38
42
|
i("h4", null, "Initiieren")
|
|
39
43
|
], -1)),
|
|
40
|
-
i("div",
|
|
41
|
-
|
|
42
|
-
(
|
|
44
|
+
i("div", B, [
|
|
45
|
+
r[0] || (r[0] = i("p", { class: "project-phasen-initiieren-description" }, " Von der Projektidee bis zum Projektplan. ", -1)),
|
|
46
|
+
(s(!0), h(g, null, p(o(d), (e) => (s(), b(o(f), {
|
|
43
47
|
id: e.name,
|
|
44
48
|
key: e.name,
|
|
45
49
|
modelValue: n.questions[e.name].answer,
|
|
46
50
|
"onUpdate:modelValue": (a) => n.questions[e.name].answer = a,
|
|
51
|
+
placeholder: n.questions[e.name].placeholder,
|
|
47
52
|
label: e.text,
|
|
48
|
-
type:
|
|
53
|
+
type: o(k),
|
|
49
54
|
name: e.name,
|
|
50
55
|
validation: "length:0,1000",
|
|
51
56
|
hint: "true",
|
|
52
|
-
help: `${n.questions[e.name].answer.length || 0} von ${
|
|
57
|
+
help: `${n.questions[e.name].answer.length || 0} von ${u} Zeichen`,
|
|
53
58
|
"count-hint": !0,
|
|
54
|
-
maxlength:
|
|
55
|
-
onInput: (a) =>
|
|
56
|
-
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "label", "type", "name", "help", "onInput"]))), 128))
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
maxlength: u,
|
|
60
|
+
onInput: (a) => l(e.name, a)
|
|
61
|
+
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "placeholder", "label", "type", "name", "help", "onInput"]))), 128))
|
|
62
|
+
]),
|
|
63
|
+
m(w)
|
|
59
64
|
]));
|
|
60
65
|
}
|
|
61
|
-
},
|
|
66
|
+
}, x = /* @__PURE__ */ z(S, [["__scopeId", "data-v-16f687f3"]]);
|
|
62
67
|
export {
|
|
63
|
-
|
|
68
|
+
x as default
|
|
64
69
|
};
|
|
@@ -1,64 +1,70 @@
|
|
|
1
|
-
import { reactive as
|
|
2
|
-
import { FormKit as
|
|
1
|
+
import { reactive as c, createElementBlock as d, openBlock as s, createElementVNode as i, createVNode as m, Fragment as p, renderList as g, unref as l, createBlock as b } from "vue";
|
|
2
|
+
import { FormKit as f } from "@formkit/vue";
|
|
3
3
|
import w from "../../../components/StepActionsSection.vue.js";
|
|
4
|
-
import
|
|
4
|
+
import k from "../TextArea/TextAreaDefinition.js";
|
|
5
5
|
/* empty css */
|
|
6
|
-
import
|
|
7
|
-
const
|
|
6
|
+
import z from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
7
|
+
const x = { class: "project-phasen-planen" }, A = { class: "project-phasen-planen-content" }, u = 1e3, V = {
|
|
8
8
|
__name: "PlanenStep",
|
|
9
|
-
setup(
|
|
10
|
-
const n =
|
|
9
|
+
setup(S) {
|
|
10
|
+
const n = c({
|
|
11
11
|
questions: {
|
|
12
12
|
requirementsGatherings: {
|
|
13
13
|
question: "Wie haben Sie die Anforderungen erhoben und dokumentiert (z.B. durch Markterkundung, externe Berater oder Workshops)?",
|
|
14
|
+
placeholder: "Wir haben die Anforderungen in mehreren interdisziplinären Workshops gemeinsam mit allen betroffenen Fachämtern und externen Beteiligten erhoben. Zudem haben wir Interviews mit den späteren Nutzergruppen geführt, um Praxisbedarfe zu erfassen. Alle Ergebnisse haben wir strukturiert in einem Lastenheft dokumentiert, das als zentrale Arbeitsgrundlage für die Ausschreibung diente.",
|
|
14
15
|
answer: ""
|
|
15
16
|
},
|
|
16
17
|
tenderFormat: {
|
|
17
18
|
question: "Welche Ausschreibungsform haben Sie gewählt und warum? Gab es eine Vorlage oder Muster-Leistungsbeschreibung, die hilfreich war und die Sie teilen können?",
|
|
19
|
+
placeholder: `Wir haben uns für eine öffentliche, europaweite Ausschreibung (offenes Verfahren) entschieden, da die Schätzsumme für das Projekt über dem EU-Schwellenwert lag. Damit konnten wir ein möglichst breites Feld an Anbietern ansprechen und gleichzeitig die rechtlichen Vorgaben einhalten.
|
|
20
|
+
Wir haben uns an einer Muster-Leistungsbeschreibung einer Nachbarkommune orientiert, die bereits ein ähnliches System eingeführt hatte. Grundsätzlich empfehlen wir, auf bestehende Leitfäden von Fachverbänden oder Landesbehörden zurückzugreifen.`,
|
|
18
21
|
answer: ""
|
|
19
22
|
},
|
|
20
23
|
tenderTips: {
|
|
21
24
|
question: "Welche Tipps haben Sie für eine erfolgreiche Ausschreibung?",
|
|
25
|
+
placeholder: "Auf jeden Fall frühzeitig die Vergabeexperten einbinden. Die Zusammenarbeit mit unserer Vergabestelle bzw. externen Fachjuristen hat geholfen, die Ausschreibung rechtssicher und praxistauglich zu gestalten.",
|
|
22
26
|
answer: ""
|
|
23
27
|
},
|
|
24
28
|
resourcePlanning: {
|
|
25
29
|
question: "Wie haben Sie die Ressourcenplanung für die Entwicklung und den Betrieb Ihres Digitalen Zwillings gestaltet und gesichert?",
|
|
30
|
+
placeholder: "Wir haben zunächst die Aufgaben und den Personalbedarf analysiert und mit allen beteiligten Fachbereichen abgestimmt. Anschließend haben wir ein bereichsübergreifendes Projektteam gebildet und externe Unterstützung für spezielle IT-Themen eingeplant. Das Budget haben wir über eine Kombination aus Eigenmitteln und Fördergeldern gedeckt, und für den dauerhaften Betrieb eine feste Stelle sowie ein jährliches Wartungsbudget vorgesehen.",
|
|
26
31
|
answer: ""
|
|
27
32
|
}
|
|
28
33
|
}
|
|
29
|
-
}),
|
|
30
|
-
name:
|
|
31
|
-
text: n.questions[
|
|
34
|
+
}), o = Object.keys(n.questions).map((t) => ({
|
|
35
|
+
name: t,
|
|
36
|
+
text: n.questions[t].question
|
|
32
37
|
}));
|
|
33
|
-
function
|
|
34
|
-
n.questions[
|
|
38
|
+
function h(t, r) {
|
|
39
|
+
n.questions[t].answer = r.slice(0, u);
|
|
35
40
|
}
|
|
36
|
-
return (
|
|
37
|
-
|
|
38
|
-
|
|
41
|
+
return (t, r) => (s(), d("div", x, [
|
|
42
|
+
r[1] || (r[1] = i("div", { class: "project-phasen-planen-header" }, [
|
|
43
|
+
i("h4", null, "Planen")
|
|
39
44
|
], -1)),
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
(
|
|
45
|
+
i("div", A, [
|
|
46
|
+
r[0] || (r[0] = i("p", { class: "project-phasen-planen-description" }, " Von der Ausschreibung bis zur Vergabe. ", -1)),
|
|
47
|
+
(s(!0), d(p, null, g(l(o), (e) => (s(), b(l(f), {
|
|
43
48
|
key: e.name,
|
|
49
|
+
placeholder: n.questions[e.name].placeholder,
|
|
44
50
|
id: e.name,
|
|
45
51
|
modelValue: n.questions[e.name].answer,
|
|
46
52
|
"onUpdate:modelValue": (a) => n.questions[e.name].answer = a,
|
|
47
53
|
label: e.text,
|
|
48
|
-
type:
|
|
54
|
+
type: l(k),
|
|
49
55
|
name: e.name,
|
|
50
56
|
validation: "length:0,1000",
|
|
51
57
|
hint: "true",
|
|
52
|
-
help: `${n.questions[e.name].answer.length || 0} von ${
|
|
58
|
+
help: `${n.questions[e.name].answer.length || 0} von ${u} Zeichen`,
|
|
53
59
|
"count-hint": !0,
|
|
54
|
-
onInput: (a) =>
|
|
55
|
-
maxlength:
|
|
56
|
-
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "label", "type", "name", "help", "onInput"]))), 128))
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
onInput: (a) => h(e.name, a),
|
|
61
|
+
maxlength: u
|
|
62
|
+
}, null, 8, ["placeholder", "id", "modelValue", "onUpdate:modelValue", "label", "type", "name", "help", "onInput"]))), 128))
|
|
63
|
+
]),
|
|
64
|
+
m(w)
|
|
59
65
|
]));
|
|
60
66
|
}
|
|
61
|
-
}, P = /* @__PURE__ */
|
|
67
|
+
}, P = /* @__PURE__ */ z(V, [["__scopeId", "data-v-009303d2"]]);
|
|
62
68
|
export {
|
|
63
69
|
P as default
|
|
64
70
|
};
|
|
@@ -2,9 +2,9 @@ import { createElementBlock as t, openBlock as i, createElementVNode as e, creat
|
|
|
2
2
|
import u from "../../../components/StepActionsSection.vue.js";
|
|
3
3
|
/* empty css */
|
|
4
4
|
import h from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
5
|
-
const v = { class: "project-phasen-overview" }, m = { class: "project-phasen-overview-content" }, g = { class: "project-phasen-overview-content" },
|
|
5
|
+
const v = { class: "project-phasen-overview" }, m = { class: "project-phasen-overview-content" }, g = { class: "project-phasen-overview-content" }, b = {
|
|
6
6
|
__name: "ProjektPhasenOverviewStep",
|
|
7
|
-
setup(
|
|
7
|
+
setup(j) {
|
|
8
8
|
const o = [
|
|
9
9
|
{
|
|
10
10
|
title: "Initiieren",
|
|
@@ -23,7 +23,7 @@ const v = { class: "project-phasen-overview" }, m = { class: "project-phasen-ove
|
|
|
23
23
|
description: "Von den Learnings bis zur Skalierung der Projektergebnisse."
|
|
24
24
|
}
|
|
25
25
|
];
|
|
26
|
-
return (
|
|
26
|
+
return (k, n) => (i(), t("div", v, [
|
|
27
27
|
n[1] || (n[1] = e("div", { class: "project-phasen-overview-header" }, [
|
|
28
28
|
e("h4", null, "Geben Sie die Projektphasen Ihres Projekts an (optional)")
|
|
29
29
|
], -1)),
|
|
@@ -37,12 +37,12 @@ const v = { class: "project-phasen-overview" }, m = { class: "project-phasen-ove
|
|
|
37
37
|
l(s(r.title) + ": ", 1),
|
|
38
38
|
e("span", null, s(r.description), 1)
|
|
39
39
|
])), 64))
|
|
40
|
-
])
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
])
|
|
41
|
+
]),
|
|
42
|
+
p(u)
|
|
43
43
|
]));
|
|
44
44
|
}
|
|
45
|
-
}, w = /* @__PURE__ */ h(
|
|
45
|
+
}, w = /* @__PURE__ */ h(b, [["__scopeId", "data-v-fbba69a0"]]);
|
|
46
46
|
export {
|
|
47
47
|
w as default
|
|
48
48
|
};
|
|
@@ -1,64 +1,69 @@
|
|
|
1
|
-
import { reactive as c, createElementBlock as
|
|
1
|
+
import { reactive as c, createElementBlock as u, openBlock as i, createElementVNode as s, createVNode as m, Fragment as g, renderList as p, unref as o, createBlock as f } from "vue";
|
|
2
2
|
import { FormKit as w } from "@formkit/vue";
|
|
3
3
|
import b from "../../../components/StepActionsSection.vue.js";
|
|
4
|
-
import
|
|
4
|
+
import k from "../TextArea/TextAreaDefinition.js";
|
|
5
5
|
/* empty css */
|
|
6
|
-
import
|
|
7
|
-
const
|
|
6
|
+
import z from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
7
|
+
const S = { class: "project-phasen-umstezen" }, v = { class: "project-phasen-umstezen-content" }, d = 1e3, V = {
|
|
8
8
|
__name: "UmstezenStep",
|
|
9
|
-
setup(
|
|
9
|
+
setup(_) {
|
|
10
10
|
const n = c({
|
|
11
11
|
questions: {
|
|
12
12
|
projectTriggers: {
|
|
13
13
|
question: "Wie haben Sie die Zusammenarbeit mit den Dienstleistern organisiert und wie wurden relevante Stakeholder in Entscheidungsprozesse eingebunden (z.B. Meetingstruktur oder Frameworks)?",
|
|
14
|
+
placeholder: "Wir haben einen Projektplan erstellt, der u.a. eine Roadmap und die Projektstruktur mit klaren Verantwortlichkeiten und Ansprechpartnern auf beiden Seiten enthielt. Es gab regelmäßige Jour-Fixe-Termine, in denen wir den Projektfortschritt gemeinsam mit dem Dienstleister besprochen und offene Punkte adressiert haben. Meilensteine und wichtige Entscheidungen wurden mit den Stakeholdern abgestimmt und protokolliert.",
|
|
14
15
|
answer: ""
|
|
15
16
|
},
|
|
16
17
|
involvedStakeholders: {
|
|
17
18
|
question: "Gab es Verzögerungen und wenn ja, was waren die Gründe?",
|
|
19
|
+
placeholder: "Ja, im Projektverlauf kam es zu einigen Verzögerungen. Hauptursache war die zeitaufwändige Klärung von offenen technischen Fragen, insbesondere bei der Anbindung bestehender Fachsysteme und Datenquellen. Teilweise lagen Datenformate nicht wie erwartet vor oder es bestanden Datenschutzbedenken, die zunächst gelöst werden mussten. Dazu kamen z.B. europaweite Lieferengpässe bei den Sensoren, die wir verbaut haben.",
|
|
18
20
|
answer: ""
|
|
19
21
|
},
|
|
20
22
|
dataCollectionMethod: {
|
|
21
23
|
question: "Welche Schnittstellen wurden genutzt und traten technische Herausforderungen auf?",
|
|
24
|
+
placeholder: "Wir haben verschiedene Schnittstellen zu bestehenden Geoinformationssystemen (GIS), Wetterdaten- und Pegelstanddiensten sowie internen Verwaltungsdaten genutzt. Bei der Integration gab es Herausforderungen etwa durch unterschiedliche Datenformate, unklare Zugriffsbeschränkungen oder fehlende API-Standards.",
|
|
22
25
|
answer: ""
|
|
23
26
|
},
|
|
24
27
|
budgetPlanning: {
|
|
25
28
|
question: "Welche Überlegungen sind in Ihre Entscheidung für eine Open-Source-Lösung geflossen und welche Erfahrungen haben Sie bisher damit gemacht?",
|
|
29
|
+
placeholder: "Wir haben mit Open-Source-Lösungen gute Erfahrungen gemacht. Wir sind flexibel und können die Software an unsere Bedürfnisse anpassen. Die Kosten sind niedrig, dafür brauchen wir mehr eigenes technisches Know-how und Zeit für Wartung. Insgesamt überwiegen für uns die Vorteile, vor allem was Unabhängigkeit und Nachhaltigkeit angeht.",
|
|
26
30
|
answer: ""
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
|
-
}),
|
|
30
|
-
name:
|
|
31
|
-
text: n.questions[
|
|
33
|
+
}), l = Object.keys(n.questions).map((r) => ({
|
|
34
|
+
name: r,
|
|
35
|
+
text: n.questions[r].question
|
|
32
36
|
}));
|
|
33
|
-
function
|
|
34
|
-
n.questions[
|
|
37
|
+
function h(r, t) {
|
|
38
|
+
n.questions[r].answer = t.slice(0, d);
|
|
35
39
|
}
|
|
36
|
-
return (
|
|
37
|
-
t[1] || (t[1] =
|
|
38
|
-
|
|
40
|
+
return (r, t) => (i(), u("div", S, [
|
|
41
|
+
t[1] || (t[1] = s("div", { class: "project-phasen-umstezen-header" }, [
|
|
42
|
+
s("h4", null, "Umsetzen")
|
|
39
43
|
], -1)),
|
|
40
|
-
|
|
41
|
-
t[0] || (t[0] =
|
|
42
|
-
(
|
|
44
|
+
s("div", v, [
|
|
45
|
+
t[0] || (t[0] = s("p", { class: "project-phasen-umstezen-description" }, " Von der Dienstleistersteuerung bis zur Meilensteinerreichung. ", -1)),
|
|
46
|
+
(i(!0), u(g, null, p(o(l), (e) => (i(), f(o(w), {
|
|
43
47
|
id: e.name,
|
|
48
|
+
placeholder: n.questions[e.name].placeholder,
|
|
44
49
|
key: e.name,
|
|
45
50
|
modelValue: n.questions[e.name].answer,
|
|
46
51
|
"onUpdate:modelValue": (a) => n.questions[e.name].answer = a,
|
|
47
52
|
label: e.text,
|
|
48
|
-
type:
|
|
53
|
+
type: o(k),
|
|
49
54
|
name: e.name,
|
|
50
55
|
validation: "length:0,1000",
|
|
51
56
|
hint: "true",
|
|
52
|
-
help: `${n.questions[e.name].answer.length || 0} von ${
|
|
57
|
+
help: `${n.questions[e.name].answer.length || 0} von ${d} Zeichen`,
|
|
53
58
|
"count-hint": !0,
|
|
54
|
-
maxlength:
|
|
55
|
-
onInput: (a) =>
|
|
56
|
-
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "label", "type", "name", "help", "onInput"]))), 128))
|
|
57
|
-
|
|
58
|
-
|
|
59
|
+
maxlength: d,
|
|
60
|
+
onInput: (a) => h(e.name, a)
|
|
61
|
+
}, null, 8, ["id", "placeholder", "modelValue", "onUpdate:modelValue", "label", "type", "name", "help", "onInput"]))), 128))
|
|
62
|
+
]),
|
|
63
|
+
m(b)
|
|
59
64
|
]));
|
|
60
65
|
}
|
|
61
|
-
},
|
|
66
|
+
}, P = /* @__PURE__ */ z(V, [["__scopeId", "data-v-542ff3c4"]]);
|
|
62
67
|
export {
|
|
63
|
-
|
|
68
|
+
P as default
|
|
64
69
|
};
|
|
@@ -1,49 +1,54 @@
|
|
|
1
|
-
import { reactive as c, createElementBlock as
|
|
2
|
-
import { FormKit as
|
|
1
|
+
import { reactive as c, createElementBlock as u, openBlock as a, createElementVNode as i, createVNode as h, Fragment as g, renderList as p, unref as o, createBlock as w } from "vue";
|
|
2
|
+
import { FormKit as k } from "@formkit/vue";
|
|
3
3
|
import f from "../../../components/StepActionsSection.vue.js";
|
|
4
4
|
import b from "../TextArea/TextAreaDefinition.js";
|
|
5
5
|
/* empty css */
|
|
6
|
-
import
|
|
7
|
-
const
|
|
6
|
+
import z from "../../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
7
|
+
const S = { class: "project-phasen-weiterdenken" }, j = { class: "project-phasen-weiterdenken-content" }, d = 1e3, v = {
|
|
8
8
|
__name: "WeiterdenkenStep",
|
|
9
|
-
setup(
|
|
9
|
+
setup(W) {
|
|
10
10
|
const n = c({
|
|
11
11
|
questions: {
|
|
12
12
|
projectTriggers: {
|
|
13
13
|
question: "Was sind Ihre wichtigsten Learnings aus dem Projekt? Was würden Sie beim nächsten Use Case anders machen?",
|
|
14
|
+
placeholder: "Ein zentrales Learning war die Bedeutung einer klaren Projektstruktur und offener Kommunikation — intern wie extern. Bei Projekten mit vielen Beteiligten ist es wichtig, Zuständigkeiten und Kommunikationswege eindeutig zu definieren. Außerdem haben wir gelernt, technische Vorarbeiten, insbesondere bei Datenqualität und Schnittstellen, nicht zu unterschätzen.",
|
|
14
15
|
answer: ""
|
|
15
16
|
},
|
|
16
17
|
involvedStakeholders: {
|
|
17
18
|
question: "Wird die Wirksamkeit Ihres Projekts überwacht und wenn ja, wie? Ist der erwartete Nutzen eingetreten (z.B. ökologisch, sozial oder monetär)?",
|
|
19
|
+
placeholder: "Ja, die Wirksamkeit unseres Projekts wird regelmäßig überprüft. Wir haben Erfolgskriterien gemeinsam mit den nutzenden Stellen definiert – dazu zählen z.B. die Genauigkeit der Prognosen oder die Reaktionsgeschwindigkeit bei Hochwasserlagen. Einmal jährlich werten wir die Ergebnisse gemeinsam mit den beteiligten Fachbereichen aus. Erste Auswertungen und Praxistests zeigen, dass die Systeme bei Starkregenereignissen in den vergangenen Monaten bereits einen echten Mehrwert gebracht haben. Es konnten Schäden durch frühzeitige Warnungen verringert und Abläufe in der Gefahrenabwehr verbessert werden.",
|
|
18
20
|
answer: ""
|
|
19
21
|
},
|
|
20
22
|
dataCollectionMethod: {
|
|
21
23
|
question: "Gibt es Pläne für eine Skalierung oder Weiterentwicklung? Wenn ja, wie sichern Sie die Finanzierung dafür?",
|
|
24
|
+
placeholder: "Ja, wir planen, das System weiterzuentwickeln und auf weitere Anwendungsfälle (wie Sturzfluten oder Dürremanagement) auszuweiten. Dafür suchen wir die Zusammenarbeit mit benachbarten Kommunen und regionalen Partnern, um Ressourcen zu bündeln und Synergien zu schaffen. Durch regelmäßige Erfolgskontrolle und transparente Berichterstattung sichern wir die Akzeptanz und Bereitschaft zur weiteren Finanzierung.",
|
|
22
25
|
answer: ""
|
|
23
26
|
},
|
|
24
27
|
budgetPlanning: {
|
|
25
|
-
question: "
|
|
28
|
+
question: "Welche externen Unterstützungsangebote haben Ihnen geholfen oder auch gefehlt (z.B. Förderprogramme, Netzwerke, Austausch mit anderen Kommunen)?",
|
|
29
|
+
placeholder: "Besonders wichtig für uns waren Förderprogramme, wie das Landesprogramm zur Digitalisierung im Bevölkerungsschutz. Dadurch konnten wir einen Großteil der Kosten für Software, Sensorik und externe Beratung abdecken. Gefehlt haben uns regelmäßige, themenspezifische Austauschformate oder Workshops mit anderen Kommunen, um voneinander zu lernen und Synergien besser nutzen zu können.",
|
|
26
30
|
answer: ""
|
|
27
31
|
}
|
|
28
32
|
}
|
|
29
|
-
}),
|
|
30
|
-
name:
|
|
31
|
-
text: n.questions[
|
|
33
|
+
}), l = Object.keys(n.questions).map((t) => ({
|
|
34
|
+
name: t,
|
|
35
|
+
text: n.questions[t].question
|
|
32
36
|
}));
|
|
33
|
-
function m(
|
|
34
|
-
n.questions[
|
|
37
|
+
function m(t, r) {
|
|
38
|
+
n.questions[t].answer = r.slice(0, d);
|
|
35
39
|
}
|
|
36
|
-
return (
|
|
37
|
-
|
|
38
|
-
|
|
40
|
+
return (t, r) => (a(), u("div", S, [
|
|
41
|
+
r[1] || (r[1] = i("div", { class: "project-phasen-weiterdenken-header" }, [
|
|
42
|
+
i("h4", null, "Weiterdenken")
|
|
39
43
|
], -1)),
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
(a(!0),
|
|
44
|
+
i("div", j, [
|
|
45
|
+
r[0] || (r[0] = i("p", { class: "project-phasen-weiterdenken-description" }, " Von den Learnings bis zur Skalierung der Projektergebnisse. ", -1)),
|
|
46
|
+
(a(!0), u(g, null, p(o(l), (e) => (a(), w(o(k), {
|
|
43
47
|
key: e.name,
|
|
44
48
|
id: e.name,
|
|
49
|
+
placeholder: n.questions[e.name].placeholder,
|
|
45
50
|
modelValue: n.questions[e.name].answer,
|
|
46
|
-
"onUpdate:modelValue": (
|
|
51
|
+
"onUpdate:modelValue": (s) => n.questions[e.name].answer = s,
|
|
47
52
|
label: e.text,
|
|
48
53
|
type: o(b),
|
|
49
54
|
name: e.name,
|
|
@@ -51,14 +56,14 @@ const _ = { class: "project-phasen-weiterdenken" }, j = { class: "project-phasen
|
|
|
51
56
|
hint: "true",
|
|
52
57
|
help: `${n.questions[e.name].answer.length || 0} von ${d} Zeichen`,
|
|
53
58
|
"count-hint": !0,
|
|
54
|
-
onInput: (
|
|
59
|
+
onInput: (s) => m(e.name, s),
|
|
55
60
|
maxlength: d
|
|
56
|
-
}, null, 8, ["id", "modelValue", "onUpdate:modelValue", "label", "type", "name", "help", "onInput"]))), 128))
|
|
57
|
-
|
|
58
|
-
|
|
61
|
+
}, null, 8, ["id", "placeholder", "modelValue", "onUpdate:modelValue", "label", "type", "name", "help", "onInput"]))), 128))
|
|
62
|
+
]),
|
|
63
|
+
h(f, { "next-text": "Weiter zu den Technischen Prozessschritten" })
|
|
59
64
|
]));
|
|
60
65
|
}
|
|
61
|
-
},
|
|
66
|
+
}, A = /* @__PURE__ */ z(v, [["__scopeId", "data-v-fd1e8bc9"]]);
|
|
62
67
|
export {
|
|
63
|
-
|
|
68
|
+
A as default
|
|
64
69
|
};
|