myprint-design
Version:
操作简单,组件丰富的一站式打印解决方案打印设计器
96 lines (92 loc) • 3.05 kB
JavaScript
;
var socket = require('../stores/socket.js');
var utils = require('../utils/utils.js');
var devicePixelRatio = require('../utils/devicePixelRatio.js');
var elementUtil = require('../utils/elementUtil.js');
const myPrintClientService = {
print(clientCmd, panel) {
const options = clientCmd.options;
if (options.html != null) {
options.width = devicePixelRatio.unit2unit(elementUtil.getCurrentPanelUnit(panel), "mm", panel.width);
options.height = devicePixelRatio.unit2unit(elementUtil.getCurrentPanelUnit(panel), "mm", elementUtil.getPrintRealHeight(panel));
}
return new Promise((resolve, _reject) => {
socket.useSocket().SEND(clientCmd.taskId, JSON.stringify(clientCmd)).then((msg) => {
resolve(msg);
});
});
},
connectIs() {
return socket.useSocket().connect;
},
getPrinterList() {
return socket.useSocket().printerList;
},
asyncGetPrinterList() {
return new Promise((resolve, reject) => {
if (socket.useSocket().connect) {
const taskId = utils.generateUUID();
socket.useSocket().SEND(taskId, JSON.stringify({
taskId,
cmd: "printerList"
})).then((res) => {
socket.useSocket().SET_PRINTER_LIST(res.data);
resolve(res.data);
}).catch((e) => {
reject(e);
});
} else {
reject({ msg: "\u5BA2\u6237\u7AEF\u672A\u8FDE\u63A5" });
}
});
}
};
const handleClientResult = (clientCmd, printResult2, previewTimeOutMap, resolveMap) => {
if (clientCmd.cmd == "printResult") {
printResult2(clientCmd.taskId, {
status: clientCmd.status ? "SUCCESS" : "ERROR",
msg: clientCmd.msg,
type: "CLIENT_PRINT"
}, previewTimeOutMap, resolveMap);
}
if (clientCmd.cmd == "generatePdfResult") {
let data = clientCmd.data;
let blob = null;
if (data != null) {
const uint8Array = new Uint8Array(data.data);
blob = new Blob([uint8Array], { type: "application/octet-stream" });
}
printResult2(clientCmd.taskId, {
status: "SUCCESS",
msg: "",
blob,
type: "CLIENT_GENERATE_PDF"
}, previewTimeOutMap, resolveMap);
return blob;
}
};
function printResult(taskId, result, previewTimeOutMap, resolveMap) {
if (previewTimeOutMap[taskId]) {
clearTimeout(previewTimeOutMap[taskId]);
delete previewTimeOutMap[taskId];
}
if (resolveMap[taskId]) {
resolveMap[taskId](result);
delete resolveMap[taskId];
}
}
function handleTimeOut(printProps, previewTimeOutMap, resolveMap) {
if (printProps.timeout > 0) {
previewTimeOutMap[printProps.taskId] = setTimeout(() => {
printResult(printProps.taskId, {
status: "TIMEOUT",
type: "TIMEOUT"
}, previewTimeOutMap, resolveMap);
}, printProps.timeout);
}
}
exports.handleClientResult = handleClientResult;
exports.handleTimeOut = handleTimeOut;
exports.myPrintClientService = myPrintClientService;
exports.printResult = printResult;
//# sourceMappingURL=myprintClientService.js.map