u
This commit is contained in:
@@ -17,6 +17,7 @@ export { posterminal } from './posterminal.js';
|
||||
export { printer } from './printer.js';
|
||||
export { printeragent } from './printeragent.js';
|
||||
export { agentprinter } from './agentprinter.js';
|
||||
export { printerjob } from './printerjob.js';
|
||||
export { propertyname } from './propertyname.js';
|
||||
export { quote } from './quote.js';
|
||||
export { retoure } from './retoure.js';
|
||||
|
||||
100
src/api/printerjob.js
Normal file
100
src/api/printerjob.js
Normal file
@@ -0,0 +1,100 @@
|
||||
import { http } from './http.js';
|
||||
|
||||
export const printerjob = {
|
||||
/**
|
||||
* POST /api/zpljob
|
||||
* @param {{ agentprinterId: number, data: string, copiescount?: number }} payload
|
||||
* → { printerjob: PrinterJob }
|
||||
*/
|
||||
createZplJob({ agentprinterId, data, copiescount = 1 }) {
|
||||
return http('/api/zpljob', {
|
||||
method: 'POST',
|
||||
body: {
|
||||
agentprinterId: Number(agentprinterId),
|
||||
data: String(data),
|
||||
copiescount: Number(copiescount) || 1,
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Sends a minimal ZPL test label to a specific agent printer.
|
||||
* @param {number} agentprinterId
|
||||
* @param {{ model?: string }} [options]
|
||||
* → { printerjob: PrinterJob }
|
||||
*/
|
||||
sendTestZpl(agentprinterId, { model = 'Zebra' } = {}) {
|
||||
const timeStr = new Date().toLocaleTimeString('de-DE');
|
||||
const safeModel = String(model || 'Drucker').replace(/[\^~]/g, '');
|
||||
const zpl = [
|
||||
'^XA',
|
||||
'^FO40,40^ADN,36,20^FDTestdruck OK^FS',
|
||||
`^FO40,85^ADN,18,10^FD${safeModel}^FS`,
|
||||
`^FO40,115^ADN,18,10^FDID: ${agentprinterId} - ${timeStr}^FS`,
|
||||
'^XZ',
|
||||
].join('\n');
|
||||
return this.createZplJob({
|
||||
agentprinterId,
|
||||
data: zpl,
|
||||
copiescount: 1,
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* GET /api/printerjob
|
||||
* @param {{ agentprinterId?: number, state?: string }} [query]
|
||||
* → { printerjobs: PrinterJob[] }
|
||||
*/
|
||||
list(query = {}) {
|
||||
const params = new URLSearchParams();
|
||||
if (query.agentprinterId != null) params.set('agentprinterId', String(query.agentprinterId));
|
||||
if (query.state != null) params.set('state', String(query.state));
|
||||
const qs = params.toString();
|
||||
return http(qs ? `/api/printerjob?${qs}` : '/api/printerjob');
|
||||
},
|
||||
|
||||
/**
|
||||
* GET /api/printerjob/:id
|
||||
* → { printerjob: PrinterJob }
|
||||
*/
|
||||
get(id) {
|
||||
return http(`/api/printerjob/${id}`);
|
||||
},
|
||||
|
||||
/**
|
||||
* POST /api/printerjob
|
||||
* @param {{ agentprinterId: number, type?: 'zpl'|'pdf'|'epos', data: string }} payload
|
||||
* → { printerjob: PrinterJob }
|
||||
*/
|
||||
create({ agentprinterId, type = 'zpl', data }) {
|
||||
return http('/api/printerjob', {
|
||||
method: 'POST',
|
||||
body: {
|
||||
agentprinterId: Number(agentprinterId),
|
||||
type,
|
||||
data,
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* POST /api/printerjob/:id/cancel
|
||||
* → { success: true, printerjob: PrinterJob }
|
||||
*/
|
||||
cancel(id) {
|
||||
return http(`/api/printerjob/${id}/cancel`, {
|
||||
method: 'POST',
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* DELETE /api/printerjob/:id
|
||||
* → { success: true, deletedJob: PrinterJob }
|
||||
*/
|
||||
delete(id) {
|
||||
return http(`/api/printerjob/${id}`, {
|
||||
method: 'DELETE',
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user