Unterschriftenservice: bestehende Unterschriften aus dem Katalog waehlbar (zusaetzlich zum Upload), in beiden Modi

This commit is contained in:
Lucas Orth
2026-08-27 09:06:01 +02:00
parent 0cbf9031f1
commit bba54cf6a0

View File

@@ -591,6 +591,15 @@ const NeuAuftrag = defineComponent({
catch (e) { sig.err = 'Dokument-Upload fehlgeschlagen.'; sig.msg = ''; }
}
// Signatur-SVG hochladen und als Zeile hinzufügen (manuell oder ergänzend).
// Bestehende Unterschrift (aus dem signatures-Katalog) zur Liste hinzufügen –
// wie beim manuellen Brief-Signatur-Picker. Nutzt die vorhandene Datei-ID.
function sigBestehendeWaehlen(id) {
const s = signaturListe.value.find((x) => String(x.id) === String(id));
if (!s || !s.file) return;
sig.signaturen.push({ file_id: s.file, label: s.label || 'Unterschrift', aktiv: true,
marker_key: 'SIG' + (sig.signaturen.length + 1), position: 'genau', width_mm: 40, offset_x_mm: 0, offset_y_mm: 0 });
sig.pdf = '';
}
async function sigSvgUpload(file) {
if (!file) return;
sig.err = '';
@@ -658,9 +667,20 @@ const NeuAuftrag = defineComponent({
subdued(sig.modus === 'auftrag'
? 'Aus dem Kundenkonto vorbelegt (Marker + Feinjustierung), hier überschreibbar. Weitere Unterschrift-SVGs sind ergänzbar.'
: 'Unterschrift(en) als SVG hochladen und Marker/Position setzen.', 'margin-bottom:10px;'),
h('div', { style: 'margin-bottom:10px;' }, [
h('div', { style: 'display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin-bottom:10px;' }, [
// Bestehende Unterschrift aus dem Katalog wählen (wie beim manuellen Brief).
signaturListe.value.filter((s) => s.file).length ? h('select', {
style: WFELD + 'font-size:13px;', value: '',
onChange: (e) => { if (e.target.value) { sigBestehendeWaehlen(e.target.value); e.target.value = ''; } },
}, [
h('option', { value: '' }, '➕ Bestehende Unterschrift wählen …'),
...signaturListe.value.filter((s) => s.file).map((s) => {
const kunde = [s.customer?.first_name, s.customer?.last_name].filter(Boolean).join(' ');
return h('option', { value: s.id }, (s.label || 'Unterschrift') + (kunde ? ` · ${kunde}` : ''));
}),
]) : null,
h('label', { style: `display:inline-block;cursor:pointer;color:${ACCENT};font-size:13px;` }, [
'+ Unterschrift (SVG) hinzufügen',
'+ Neue Unterschrift (SVG) hochladen',
h('input', { type: 'file', accept: '.svg', style: 'display:none;', onChange: (e) => sigSvgUpload(e.target.files && e.target.files[0]) }),
]),
]),