- LockScreen component with PIN pad - SecuritySettings for setup - Biometric (WebAuthn) support - PIN fallback (6 digits) - Auto-lock after 30s in background - Lock on app start if enabled - Settings page integration
366 lines
16 KiB
JavaScript
366 lines
16 KiB
JavaScript
import{d as K,c as a,a as n,e as w,b as C,v as F,F as A,x,t as r,r as f,k as m,o as s}from"./index-OvQoqblD.js";const G={class:"space-y-6"},E={class:"flex items-center justify-between"},V={class:"flex items-center gap-3"},W={class:"relative"},N={key:0,class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4"},$=["onClick"],Z={class:"text-3xl mb-3"},I={class:"text-lg font-semibold mb-1 text-gray-900 dark:text-white"},L={class:"text-sm text-gray-500 dark:text-gray-400"},T={class:"text-xs text-gray-400 mt-2"},H={key:1,class:"space-y-4"},O={class:"card bg-gray-50 dark:bg-gray-800"},R={class:"flex items-center gap-3"},q={class:"text-3xl"},j={class:"text-xl font-semibold text-gray-900 dark:text-white"},U={class:"text-sm text-gray-500 dark:text-gray-400"},J={class:"grid gap-3"},Q=["onClick"],X={class:"text-2xl"},Y={class:"font-medium text-gray-900 dark:text-white"},ee={key:2,class:"card"},ne={class:"flex items-center gap-3 mb-6 pb-4 border-b dark:border-gray-700"},te={class:"text-3xl"},ie={class:"text-xl font-semibold text-gray-900 dark:text-white"},re=["innerHTML"],le=K({__name:"HelpView",setup(ae){const l=f(""),u=f(null),o=f(null),g=[{id:"getting-started",name:"Erste Schritte",icon:"🚀",description:"Grundlagen und Einrichtung",articles:[{id:"overview",title:"Übersicht",icon:"📋",content:`
|
||
## Was ist SeCu?
|
||
|
||
SeCu ist eine modulare Mitarbeiterverwaltung speziell für Sicherheitsunternehmen. Die Software hilft Ihnen bei:
|
||
|
||
- **Mitarbeiterverwaltung** – Alle Mitarbeiter zentral verwalten
|
||
- **Auftragsverwaltung** – Aufträge erstellen und zuweisen
|
||
- **Stundenzettel** – Arbeitszeiten erfassen und genehmigen
|
||
- **Verfügbarkeiten** – Wer ist wann einsetzbar?
|
||
- **Partnerschaften** – Zusammenarbeit mit Subunternehmern
|
||
|
||
### Rollen im System
|
||
|
||
**Chef** – Vollzugriff auf alle Funktionen, kann Disponenten und Mitarbeiter anlegen
|
||
|
||
**Disponent** – Kann Mitarbeiter anlegen, Aufträge erstellen, Stundenzettel einsehen
|
||
|
||
**Mitarbeiter** – Kann eigene Aufträge sehen, Verfügbarkeit melden, Stundenzettel hochladen
|
||
`},{id:"first-login",title:"Erster Login",icon:"🔐",content:`
|
||
## Erster Login
|
||
|
||
Nach der Registrierung Ihrer Organisation erhalten Sie Zugangsdaten per E-Mail.
|
||
|
||
### Anmeldung
|
||
|
||
1. Öffnen Sie die SeCu-Webseite
|
||
2. Geben Sie Ihre E-Mail-Adresse ein
|
||
3. Geben Sie Ihr Passwort ein
|
||
4. Klicken Sie auf "Anmelden"
|
||
|
||
### Passwort ändern
|
||
|
||
Wir empfehlen, Ihr Passwort nach dem ersten Login zu ändern:
|
||
|
||
1. Gehen Sie zu **Einstellungen**
|
||
2. Scrollen Sie zu "Passwort ändern"
|
||
3. Geben Sie Ihr aktuelles Passwort ein
|
||
4. Geben Sie ein neues Passwort ein (mind. 8 Zeichen)
|
||
5. Bestätigen Sie das neue Passwort
|
||
6. Klicken Sie auf "Passwort ändern"
|
||
`}]},{id:"users",name:"Benutzerverwaltung",icon:"👥",description:"Mitarbeiter und Disponenten verwalten",articles:[{id:"create-user",title:"Benutzer anlegen",icon:"➕",content:`
|
||
## Neuen Benutzer anlegen
|
||
|
||
**Berechtigung:** Chef oder Disponent
|
||
|
||
### Schritt für Schritt
|
||
|
||
1. Navigieren Sie zu **Benutzer** im Menü
|
||
2. Klicken Sie auf **"+ Neuer Benutzer"**
|
||
3. Füllen Sie das Formular aus:
|
||
- **Vorname** und **Nachname**
|
||
- **E-Mail-Adresse** (wird für Login verwendet)
|
||
- **Passwort** (mind. 8 Zeichen)
|
||
- **Rolle** auswählen (Disponent oder Mitarbeiter)
|
||
4. Klicken Sie auf **"Erstellen"**
|
||
|
||
### Rollen-Unterschiede
|
||
|
||
- **Disponent**: Kann selbst Mitarbeiter anlegen und Aufträge verwalten
|
||
- **Mitarbeiter**: Kann nur eigene Daten sehen und bearbeiten
|
||
|
||
> **Hinweis:** Als Disponent können Sie nur Mitarbeiter anlegen, keine weiteren Disponenten.
|
||
`},{id:"edit-user",title:"Benutzer bearbeiten",icon:"✏️",content:`
|
||
## Benutzer bearbeiten
|
||
|
||
### Benutzerdaten ändern
|
||
|
||
1. Gehen Sie zu **Benutzer**
|
||
2. Klicken Sie auf den Namen des Benutzers
|
||
3. Ändern Sie die gewünschten Felder
|
||
4. Klicken Sie auf **"Speichern"**
|
||
|
||
### Benutzer deaktivieren
|
||
|
||
Statt einen Benutzer zu löschen, können Sie ihn deaktivieren:
|
||
|
||
1. Öffnen Sie das Benutzerprofil
|
||
2. Setzen Sie den Status auf **"Inaktiv"**
|
||
3. Der Benutzer kann sich nicht mehr anmelden
|
||
|
||
> **Tipp:** Deaktivierte Benutzer bleiben in der Historie erhalten.
|
||
`}]},{id:"orders",name:"Auftragsverwaltung",icon:"📋",description:"Aufträge erstellen und verwalten",articles:[{id:"create-order",title:"Auftrag erstellen",icon:"➕",content:`
|
||
## Neuen Auftrag erstellen
|
||
|
||
**Berechtigung:** Chef oder Disponent
|
||
|
||
### Auftrag anlegen
|
||
|
||
1. Navigieren Sie zu **Aufträge**
|
||
2. Klicken Sie auf **"+ Neuer Auftrag"**
|
||
3. Füllen Sie die Pflichtfelder aus:
|
||
- **Titel** – Kurze Beschreibung des Auftrags
|
||
- **Kunde** – Name des Auftraggebers
|
||
- **Standort** – Einsatzort
|
||
- **Datum/Zeit** – Wann findet der Einsatz statt?
|
||
4. Optional: Beschreibung hinzufügen
|
||
5. Klicken Sie auf **"Erstellen"**
|
||
|
||
### Mitarbeiter zuweisen
|
||
|
||
Nach dem Erstellen können Sie Mitarbeiter zuweisen:
|
||
|
||
1. Öffnen Sie den Auftrag
|
||
2. Klicken Sie auf **"Mitarbeiter zuweisen"**
|
||
3. Wählen Sie verfügbare Mitarbeiter aus
|
||
4. Bestätigen Sie die Zuweisung
|
||
`},{id:"order-status",title:"Auftragsstatus",icon:"🔄",content:`
|
||
## Auftragsstatus verstehen
|
||
|
||
Jeder Auftrag durchläuft verschiedene Status:
|
||
|
||
🟡 **Offen** – Auftrag erstellt, noch nicht begonnen
|
||
|
||
🔵 **In Bearbeitung** – Auftrag läuft aktuell
|
||
|
||
🟢 **Abgeschlossen** – Auftrag erfolgreich beendet
|
||
|
||
🔴 **Storniert** – Auftrag wurde abgebrochen
|
||
|
||
### Status ändern
|
||
|
||
1. Öffnen Sie den Auftrag
|
||
2. Klicken Sie auf den aktuellen Status
|
||
3. Wählen Sie den neuen Status
|
||
4. Optional: Kommentar hinzufügen
|
||
`}]},{id:"timesheets",name:"Stundenzettel",icon:"⏱️",description:"Arbeitszeiten erfassen und verwalten",articles:[{id:"submit-timesheet",title:"Stundenzettel einreichen",icon:"📤",content:`
|
||
## Stundenzettel einreichen
|
||
|
||
**Für Mitarbeiter**
|
||
|
||
### Arbeitszeit erfassen
|
||
|
||
1. Gehen Sie zu **Stundenzettel**
|
||
2. Klicken Sie auf **"+ Neue Erfassung"**
|
||
3. Wählen Sie den **Auftrag** aus
|
||
4. Geben Sie ein:
|
||
- **Startzeit** und **Endzeit**
|
||
- **Pausenzeit** (falls vorhanden)
|
||
5. Optional: Foto des Stundenzettels hochladen
|
||
6. Klicken Sie auf **"Einreichen"**
|
||
|
||
### Foto hochladen
|
||
|
||
Sie können ein Foto Ihres handschriftlichen Stundenzettels anhängen:
|
||
|
||
1. Klicken Sie auf **"Foto hinzufügen"**
|
||
2. Wählen Sie das Foto aus oder machen Sie ein neues
|
||
3. Das Foto wird automatisch hochgeladen
|
||
|
||
> **Tipp:** Stellen Sie sicher, dass das Foto gut lesbar ist.
|
||
`},{id:"approve-timesheet",title:"Stundenzettel genehmigen",icon:"✅",content:`
|
||
## Stundenzettel genehmigen
|
||
|
||
**Für Disponenten und Chefs**
|
||
|
||
### Übersicht
|
||
|
||
Offene Stundenzettel werden im Dashboard angezeigt. Sie können diese genehmigen oder ablehnen.
|
||
|
||
### Genehmigungsprozess
|
||
|
||
1. Gehen Sie zu **Stundenzettel**
|
||
2. Filtern Sie nach **"Ausstehend"**
|
||
3. Prüfen Sie die Einträge:
|
||
- Stimmen die Zeiten mit dem Auftrag überein?
|
||
- Ist das hochgeladene Foto lesbar?
|
||
4. Klicken Sie auf **✓ Genehmigen** oder **✗ Ablehnen**
|
||
5. Bei Ablehnung: Grund angeben
|
||
|
||
### Massenbearbeitung
|
||
|
||
Sie können mehrere Stundenzettel gleichzeitig bearbeiten:
|
||
|
||
1. Aktivieren Sie die Checkboxen
|
||
2. Klicken Sie auf **"Ausgewählte genehmigen"**
|
||
`}]},{id:"availability",name:"Verfügbarkeiten",icon:"📅",description:"Einsatzbereitschaft verwalten",articles:[{id:"set-availability",title:"Verfügbarkeit melden",icon:"🗓️",content:`
|
||
## Verfügbarkeit melden
|
||
|
||
**Für Mitarbeiter**
|
||
|
||
### Warum Verfügbarkeit melden?
|
||
|
||
Damit Disponenten wissen, wann Sie einsetzbar sind, sollten Sie Ihre Verfügbarkeit regelmäßig aktualisieren.
|
||
|
||
### Verfügbarkeit eintragen
|
||
|
||
1. Gehen Sie zu **Verfügbarkeit**
|
||
2. Klicken Sie auf einen Tag im Kalender
|
||
3. Wählen Sie:
|
||
- ✅ **Verfügbar** – Sie können eingesetzt werden
|
||
- ❌ **Nicht verfügbar** – Sie sind verhindert
|
||
- 🕐 **Teilweise** – Nur zu bestimmten Zeiten
|
||
4. Bei "Teilweise": Zeitfenster angeben
|
||
5. Speichern Sie die Eingabe
|
||
|
||
### Regelmäßige Muster
|
||
|
||
Sie können wiederkehrende Verfügbarkeiten einrichten:
|
||
|
||
1. Klicken Sie auf **"Muster erstellen"**
|
||
2. Wählen Sie die Wochentage
|
||
3. Geben Sie die Zeiten ein
|
||
4. Das Muster wird automatisch angewendet
|
||
`},{id:"view-availability",title:"Verfügbarkeiten einsehen",icon:"👁️",content:`
|
||
## Verfügbarkeiten einsehen
|
||
|
||
**Für Disponenten und Chefs**
|
||
|
||
### Team-Übersicht
|
||
|
||
1. Gehen Sie zu **Verfügbarkeit**
|
||
2. Wählen Sie **"Team-Ansicht"**
|
||
3. Sie sehen alle Mitarbeiter im Kalender
|
||
|
||
### Nach Datum filtern
|
||
|
||
- Klicken Sie auf ein Datum, um zu sehen, wer verfügbar ist
|
||
- Grün = verfügbar, Rot = nicht verfügbar, Gelb = teilweise
|
||
|
||
### Für Auftrag nutzen
|
||
|
||
Beim Erstellen eines Auftrags werden automatisch nur verfügbare Mitarbeiter vorgeschlagen.
|
||
`}]},{id:"partnerships",name:"Partnerschaften",icon:"🤝",description:"Zusammenarbeit mit Subunternehmern",articles:[{id:"partnership-overview",title:"Übersicht",icon:"📋",content:`
|
||
## Partnerschaften in SeCu
|
||
|
||
Das Partnerschaftsmodul ermöglicht die Zusammenarbeit mit anderen Sicherheitsunternehmen.
|
||
|
||
### Anwendungsfälle
|
||
|
||
- **Subunternehmer einsetzen** – Personal bei Partnerfirmen anfordern
|
||
- **Personal verleihen** – Eigene Mitarbeiter an Partner ausleihen
|
||
- **Abrechnung** – Stundenzettel und Rechnungen austauschen
|
||
|
||
### Beziehungsarten
|
||
|
||
**Auftraggeber** – Sie beauftragen den Partner (Subunternehmer)
|
||
|
||
**Subunternehmer** – Sie werden vom Partner beauftragt
|
||
|
||
**Bilateral** – Beide Seiten können Aufträge teilen
|
||
|
||
### Voraussetzungen
|
||
|
||
- Beide Unternehmen müssen in SeCu registriert sein
|
||
- Partnerschaftsmodul muss aktiviert sein
|
||
`},{id:"create-partnership",title:"Partnerschaft anfragen",icon:"➕",content:`
|
||
## Partnerschaft anfragen
|
||
|
||
**Berechtigung:** Chef
|
||
|
||
### Neue Partnerschaft
|
||
|
||
1. Gehen Sie zu **Partnerschaften**
|
||
2. Klicken Sie auf **"+ Neue Partnerschaft"**
|
||
3. Suchen Sie das Partnerunternehmen
|
||
4. Wählen Sie die **Beziehungsart**:
|
||
- Auftraggeber (Sie beauftragen)
|
||
- Subunternehmer (Sie werden beauftragt)
|
||
- Bilateral (beidseitig)
|
||
5. Klicken Sie auf **"Anfrage senden"**
|
||
|
||
### Anfrage annehmen
|
||
|
||
Wenn Sie eine Anfrage erhalten:
|
||
|
||
1. Sie sehen eine Benachrichtigung
|
||
2. Prüfen Sie die Details
|
||
3. Klicken Sie auf **"Annehmen"** oder **"Ablehnen"**
|
||
|
||
> **Hinweis:** Nach Annahme können beide Seiten Aufträge teilen.
|
||
`},{id:"share-orders",title:"Aufträge teilen",icon:"📤",content:`
|
||
## Aufträge mit Partnern teilen
|
||
|
||
### Auftrag an Subunternehmer
|
||
|
||
1. Erstellen oder öffnen Sie einen Auftrag
|
||
2. Klicken Sie auf **"Mit Partner teilen"**
|
||
3. Wählen Sie den **Partner** aus
|
||
4. Geben Sie Details an:
|
||
- Benötigte Mitarbeiteranzahl
|
||
- Stundensatz (falls vereinbart)
|
||
5. Partner erhält Benachrichtigung
|
||
|
||
### Geteilte Aufträge verwalten
|
||
|
||
Geteilte Aufträge werden mit einem 🤝 Symbol markiert.
|
||
|
||
- **Blau**: Von Ihnen geteilt
|
||
- **Orange**: An Sie geteilt
|
||
|
||
### Stundenzettel vom Partner
|
||
|
||
Wenn der Partner Stundenzettel einreicht:
|
||
|
||
1. Sie erhalten eine Benachrichtigung
|
||
2. Prüfen Sie die Zeiten
|
||
3. Genehmigen oder lehnen Sie ab
|
||
4. Genehmigte Zeiten fließen in die Abrechnung
|
||
`}]},{id:"modules",name:"Module",icon:"🧩",description:"Funktionen aktivieren/deaktivieren",articles:[{id:"module-overview",title:"Module verwalten",icon:"⚙️",content:`
|
||
## Module in SeCu
|
||
|
||
SeCu ist modular aufgebaut. Sie können Funktionen nach Bedarf aktivieren oder deaktivieren.
|
||
|
||
### Verfügbare Module
|
||
|
||
**Stundenzettel** – Arbeitszeiterfassung
|
||
|
||
**Verfügbarkeit** – Einsatzplanung
|
||
|
||
**Dokumente** – Dateiverwaltung
|
||
|
||
**Partnerschaften** – Subunternehmer-Management
|
||
|
||
**Abrechnung** – Rechnungserstellung
|
||
|
||
### Modul aktivieren
|
||
|
||
1. Gehen Sie zu **Module** (nur für Chefs)
|
||
2. Finden Sie das gewünschte Modul
|
||
3. Klicken Sie auf den Schalter
|
||
4. Das Modul ist sofort verfügbar
|
||
|
||
### Modul deaktivieren
|
||
|
||
> **Achtung:** Beim Deaktivieren werden keine Daten gelöscht, aber die Funktionen sind nicht mehr zugänglich.
|
||
|
||
1. Klicken Sie auf den Schalter des aktiven Moduls
|
||
2. Bestätigen Sie die Deaktivierung
|
||
`}]},{id:"faq",name:"Häufige Fragen",icon:"❓",description:"Antworten auf häufige Fragen",articles:[{id:"faq-general",title:"Allgemeine Fragen",icon:"💬",content:`
|
||
## Häufige Fragen
|
||
|
||
### Ich habe mein Passwort vergessen
|
||
|
||
1. Klicken Sie auf der Login-Seite auf **"Passwort vergessen"**
|
||
2. Geben Sie Ihre E-Mail-Adresse ein
|
||
3. Sie erhalten einen Link zum Zurücksetzen
|
||
|
||
---
|
||
|
||
### Kann ich mehrere Organisationen haben?
|
||
|
||
Nein, jeder Benutzer gehört zu genau einer Organisation. Für die Zusammenarbeit nutzen Sie das Partnerschaftsmodul.
|
||
|
||
---
|
||
|
||
### Werden meine Daten gesichert?
|
||
|
||
Ja, es werden regelmäßig automatische Backups erstellt. Bei Datenverlust kontaktieren Sie den Support.
|
||
|
||
---
|
||
|
||
### Wie kann ich Support kontaktieren?
|
||
|
||
- **E-Mail:** support@kronos-soulution.de
|
||
- **Telefon:** Siehe Ihre Vertragsdaten
|
||
|
||
---
|
||
|
||
### Gibt es eine Mobile App?
|
||
|
||
SeCu ist als Web-App optimiert und funktioniert auf allen Geräten. Eine native App ist in Planung.
|
||
`}]}];function y(t){return t.replace(/^### (.+)$/gm,'<h3 class="text-lg font-semibold mt-6 mb-2 text-gray-900 dark:text-white">$1</h3>').replace(/^## (.+)$/gm,'<h2 class="text-xl font-bold mt-8 mb-4 text-gray-900 dark:text-white">$1</h2>').replace(/\*\*(.+?)\*\*/g,'<strong class="font-semibold">$1</strong>').replace(/\*(.+?)\*/g,"<em>$1</em>").replace(/`(.+?)`/g,'<code class="bg-gray-100 dark:bg-gray-700 px-1.5 py-0.5 rounded text-sm">$1</code>').replace(/^> (.+)$/gm,'<blockquote class="border-l-4 border-blue-500 pl-4 italic text-gray-600 dark:text-gray-400 my-4 bg-blue-50 dark:bg-blue-900/20 py-2 pr-4 rounded-r">$1</blockquote>').replace(/^---$/gm,'<hr class="my-6 border-gray-200 dark:border-gray-700">').replace(/^(\d+)\. (.+)$/gm,'<li class="ml-6 list-decimal my-1 text-gray-700 dark:text-gray-300">$2</li>').replace(/^- (.+)$/gm,'<li class="ml-6 list-disc my-1 text-gray-700 dark:text-gray-300">$1</li>').replace(/(<li class="ml-6 list-decimal[^>]*>.*<\/li>\n?)+/g,e=>`<ol class="my-4">${e}</ol>`).replace(/(<li class="ml-6 list-disc[^>]*>.*<\/li>\n?)+/g,e=>`<ul class="my-4">${e}</ul>`).split(`
|
||
|
||
`).map(e=>(e=e.trim(),e?e.startsWith("<")?e:`<p class="my-3 text-gray-700 dark:text-gray-300">${e}</p>`:"")).join(`
|
||
`)}const _=m(()=>{if(!l.value)return g;const t=l.value.toLowerCase();return g.map(e=>({...e,articles:e.articles.filter(c=>c.title.toLowerCase().includes(t)||c.content.toLowerCase().includes(t))})).filter(e=>e.articles.length>0)});function M(t){u.value=t,o.value=null}function B(t,e){u.value=t,o.value=e}function P(){o.value?o.value=null:u.value=null}const d=m(()=>g.find(t=>t.id===u.value)),h=m(()=>{var t;return(t=d.value)==null?void 0:t.articles.find(e=>e.id===o.value)});return(t,e)=>{var c,b,S,k,v,p,z;return s(),a("div",G,[n("div",E,[n("div",V,[u.value?(s(),a("button",{key:0,onClick:P,class:"p-2 hover:bg-gray-100 dark:hover:bg-gray-700 rounded-lg transition-colors text-xl"}," ← ")):w("",!0),e[2]||(e[2]=n("h1",{class:"text-2xl font-bold text-gray-900 dark:text-white"}," 📚 Hilfe & Dokumentation ",-1))])]),n("div",W,[C(n("input",{"onUpdate:modelValue":e[0]||(e[0]=i=>l.value=i),type:"text",placeholder:"🔍 Suche in der Dokumentation...",class:"input pl-4 pr-10 w-full"},null,512),[[F,l.value]]),l.value?(s(),a("span",{key:0,onClick:e[1]||(e[1]=i=>l.value=""),class:"absolute right-3 top-1/2 -translate-y-1/2 cursor-pointer text-gray-400 hover:text-gray-600 text-lg"}," ✕ ")):w("",!0)]),u.value?o.value?(s(),a("div",ee,[n("div",ne,[n("span",te,r((v=h.value)==null?void 0:v.icon),1),n("h2",ie,r((p=h.value)==null?void 0:p.title),1)]),n("div",{class:"prose dark:prose-invert max-w-none",innerHTML:y(((z=h.value)==null?void 0:z.content)||"")},null,8,re)])):(s(),a("div",H,[n("div",O,[n("div",R,[n("span",q,r((c=d.value)==null?void 0:c.icon),1),n("div",null,[n("h2",j,r((b=d.value)==null?void 0:b.name),1),n("p",U,r((S=d.value)==null?void 0:S.description),1)])])]),n("div",J,[(s(!0),a(A,null,x((k=d.value)==null?void 0:k.articles,i=>(s(),a("div",{key:i.id,onClick:D=>B(d.value.id,i.id),class:"card cursor-pointer hover:shadow-md transition-all flex items-center gap-3 hover:bg-gray-50 dark:hover:bg-gray-700"},[n("span",X,r(i.icon),1),n("span",Y,r(i.title),1),e[3]||(e[3]=n("span",{class:"ml-auto text-gray-400"},"→",-1))],8,Q))),128))])])):(s(),a("div",N,[(s(!0),a(A,null,x(_.value,i=>(s(),a("div",{key:i.id,onClick:D=>M(i.id),class:"card cursor-pointer hover:shadow-lg transition-all hover:scale-[1.02] border-2 border-transparent hover:border-blue-500"},[n("div",Z,r(i.icon),1),n("h3",I,r(i.name),1),n("p",L,r(i.description),1),n("p",T,r(i.articles.length)+" Artikel",1)],8,$))),128))]))])}}});export{le as default};
|