import { createModuleApi } from '/mobile/shared/api.js'; import ShippingNoteForm from '/mobile/modules/lager/shippingnote/ShippingNoteForm.js'; import ShippingNoteList from '/mobile/modules/lager/shippingnote/ShippingNoteList.js'; import SignaturePad from '/mobile/modules/lager/shippingnote/SignaturePad.js'; const shippingNoteApi = createModuleApi('Lager/ShippingNote'); export { shippingNoteApi }; export default { name: 'ShippingNoteModule', emits: ['navigate', 'toast'], props: { user: Object, submodule: String }, components: { ShippingNoteForm, ShippingNoteList, SignaturePad }, setup(props, { emit }) { const { ref, computed, watch, onMounted } = Vue; // Current view: 'create' | 'list' | 'sign' const currentTab = ref('create'); // Signature modal state const showSignatureModal = ref(false); const signatureShippingNoteId = ref(null); const signatureShippingNote = ref(null); // Last created shipping note (for immediate signing) const lastCreatedId = ref(null); // Open signature modal for a shipping note const openSignature = (shippingNote) => { signatureShippingNoteId.value = shippingNote.id; signatureShippingNote.value = shippingNote; showSignatureModal.value = true; }; // Close signature modal const closeSignature = () => { showSignatureModal.value = false; signatureShippingNoteId.value = null; signatureShippingNote.value = null; }; // Handle successful signature const handleSignatureComplete = () => { closeSignature(); emit('toast', 'Unterschrift gespeichert', 'success'); // Haptic feedback navigator.vibrate?.([100, 50, 100]); }; // Handle shipping note created const handleCreated = (shippingNote) => { lastCreatedId.value = shippingNote.id; emit('toast', 'Lieferschein erstellt', 'success'); // Haptic feedback navigator.vibrate?.([100]); }; // Handle immediate sign after create const handleCreateAndSign = (shippingNote) => { handleCreated(shippingNote); // Open signature modal immediately openSignature(shippingNote); }; // Show toast const showToast = (message, type) => { emit('toast', message, type); }; // Switch tab const switchTab = (tab) => { currentTab.value = tab; }; return { currentTab, showSignatureModal, signatureShippingNoteId, signatureShippingNote, lastCreatedId, openSignature, closeSignature, handleSignatureComplete, handleCreated, handleCreateAndSign, showToast, switchTab }; }, template: `
` };