Unterschriftenservice als echter Auftrag: signature-order (Seiten-SVGs schreiben + Auftrag anlegen), Kundenmail-Feld + 'Auftrag anlegen'-Button, Output-Mount schreibbar
This commit is contained in:
1 parent
aef08dbbff
commit
1b600ba150
3 files changed
+113
-3
No files matched your search
@@ -58,7 +58,7 @@ const NeuAuftrag = defineComponent({
|
||||
const sig = reactive({
|
||||
modus: 'auftrag', // 'auftrag' (aus Auftrag laden) oder 'manuell' (direkt hochladen)
|
||||
orderNr: '', order: null, docs: [], docId: null, docName: '', signaturen: [],
|
||||
laden: false, pdf: '', msg: '', err: '',
|
||||
customerEmail: '', laden: false, pdf: '', msg: '', err: '',
|
||||
});
|
||||
// Datei nach Directus hochladen (liefert die Datei-ID).
|
||||
async function sigUpload(file) {
|
||||
@@ -646,6 +646,18 @@ const NeuAuftrag = defineComponent({
|
||||
sig.msg = 'ZIP heruntergeladen – A4-Signaturen an den Plotter geben.';
|
||||
} catch (e) { sig.err = e?.response?.data?.detail || e?.response?.data?.error || e?.message || 'Erzeugung fehlgeschlagen.'; sig.msg = ''; }
|
||||
}
|
||||
// Legt einen echten Auftrag an: erzeugt je PDF-Seite eine A4-SVG (leer wo kein
|
||||
// Marker) und schreibt sie als Schriftstück. Danach im Produktions-Board unter
|
||||
// „Neu" → dort Drucken → Plotter (wie ein normaler Auftrag).
|
||||
async function sigAuftrag() {
|
||||
if (!sig.docId) { sig.err = 'Bitte ein Dokument wählen/hochladen.'; return; }
|
||||
if (!sigAktive().length) { sig.err = 'Mindestens eine Unterschrift aktivieren.'; return; }
|
||||
sig.err = ''; sig.msg = 'Auftrag wird angelegt …';
|
||||
try {
|
||||
const res = await api.post('/skrift-orders/signature-order', { ...sigPayload(), customer_email: sig.customerEmail || undefined });
|
||||
sig.msg = `✔ Auftrag ${res.data.order_number} angelegt (${res.data.pages} Seite/n). Im Produktions-Board unter „Neu" → Drucken.`;
|
||||
} catch (e) { sig.err = e?.response?.data?.detail || e?.response?.data?.error || e?.message || 'Auftrag konnte nicht angelegt werden.'; sig.msg = ''; }
|
||||
}
|
||||
|
||||
function signaturPanel() {
|
||||
const sigFeld = (s, k, lbl, step) => h('div', { style: 'display:flex;flex-direction:column;gap:3px;flex:1;min-width:90px;' }, [
|
||||
@@ -707,8 +719,14 @@ const NeuAuftrag = defineComponent({
|
||||
sigFeld(s, 'offset_y_mm', 'Y mm'),
|
||||
]),
|
||||
])),
|
||||
h('div', { class: 'sk-btnrow', style: 'display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;' }, [
|
||||
// Kunde zuordnen (für den anzulegenden Auftrag) + Aktionen.
|
||||
h('div', { style: 'margin-top:12px;max-width:360px;' }, [
|
||||
label('Kundenmail (Auftrag zuordnen, optional)'),
|
||||
h('input', { value: sig.customerEmail, type: 'email', placeholder: 'kunde@…', style: WFELD + 'width:100%;', onInput: (e) => { sig.customerEmail = e.target.value; } }),
|
||||
]),
|
||||
h('div', { class: 'sk-btnrow', style: 'display:flex;gap:12px;flex-wrap:wrap;margin-top:12px;' }, [
|
||||
btn(sig.msg ? '…' : '👁 Vorschau', sigVorschau, 'primary'),
|
||||
btn('🖨 Auftrag anlegen', sigAuftrag, 'primary'),
|
||||
btn('⤓ A4-Signaturen (ZIP)', sigDownload),
|
||||
]),
|
||||
]);
|
||||
|
||||
Reference in new issue
Block a user