feat: Sistema de gestión de impresoras persistente
- Crear modelo Printer con campos: id, name, host, deviceId, timeout, isDefault - Almacenamiento persistente en data/printers.json - APIs CRUD: GET/POST /api/printers, GET/PUT/DELETE /api/printers/:id - API para seleccionar impresora activa: POST /api/printers/select - Endpoint de impresión ahora usa la impresora seleccionada o la especificada por printerId - Composable usePrinters() para el cliente - UI: Selector de impresora en sidebar, tab Impresoras en mobile - Componentes: PrintersList, PrintersCard, PrintersForm, PrintersSelector
This commit is contained in:
@@ -2,6 +2,12 @@
|
||||
const activeTab = ref('constructor')
|
||||
const isDesktop = useMediaQuery('(min-width: 768px)')
|
||||
const queue = usePrintQueue()
|
||||
const printers = usePrinters()
|
||||
|
||||
// Cargar impresoras al iniciar
|
||||
onMounted(() => {
|
||||
printers.fetchPrinters()
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -23,6 +29,11 @@ const queue = usePrintQueue()
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<!-- Selector de impresora -->
|
||||
<div class="p-4 border-b border-gray-200 dark:border-gray-800">
|
||||
<PrintersSelector />
|
||||
</div>
|
||||
|
||||
<div class="flex-1 overflow-y-auto p-4">
|
||||
<QueuePrintQueue />
|
||||
</div>
|
||||
@@ -50,6 +61,10 @@ const queue = usePrintQueue()
|
||||
<template v-else-if="activeTab === 'templates'">
|
||||
<TemplatesTemplateList />
|
||||
</template>
|
||||
|
||||
<template v-else-if="activeTab === 'printers'">
|
||||
<PrintersList />
|
||||
</template>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user