interface ITask {
data?: any;
status?: Number;
message?: string;
success?: string;
}
let host = 'http://shop-api.1000.com';
let setHost = url => (host = url);
/**
* 添加打印任务
* @param body
*/
let addTask = async (deviceNo: string, key: string, printContent: string) => {
let response = (await post(
`${host}/printer/task/add`,
`deviceNo=${deviceNo}&key=${key}&printContent=${encodeURI(printContent)}×=1&type=365`,
)) as ITask;
if (__DEV__) console.log('addTask', response);
if (response.message) {
return false;
}
return response.data;
};
/**
* 返回打印是否成功
* @param body
*/
// let getTaskStatus = async (deviceNo: string, key: string, orderNo: string) => {
// let response = (await post(
// 'http://open.printcenter.cn:8080/queryOrder',
// `deviceNo=${deviceNo}&key=${key}&orderindex=${orderNo} `,
// )) as ITask;
// if (__DEV__) console.log('getTaskStatus', response);
// return 0 === response.responseCode;
// };
/**
* 查询打印机的状态
* @param body
*/
let getPrinterStatus = async (deviceNo: string, key: string) => {
let response = (await post(`${host}/printer/status`, `deviceNo=${deviceNo}&key=${key}&type=365`)) as ITask;
console.log('getPrinterStatus', response);
//365打印机接口设计缺陷,状态码无法正常判断
if (response.message) {
return false;
}
return response.data;
};
let post = async (url, params) => {
console.log('>>>>', url, params);
let r = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: params,
});
console.log('response:', r);
let resp: ITask = await r.json();
return resp;
};
var printContent = '';
let printText = text => {
printContent += text;
};
let printTextCenter = text => {
printContent += `${text || '--'}`;
// if (font == 'middle' || font == 'small') {
// printContent += `${text || '--'}`;
// } else {
// printContent += `${text || '--'}`;
// }
};
let printlnText = text => {
printContent += +`${text}
`;
};
let printQrCode = text => {
printContent += `${text}
`;
};
let printBarCode = text => {
if (text.length <= 13) {
printContent += `${text}`;
} else {
printlnText(text);
printlnText('***条码不支持13位以上***');
}
};
let lineSplit = () => {
printContent += '--------------------------------
';
};
let lineWrap = (nums: number) => {
for (var index = nums; index > 0; --index) {
printContent += '
';
}
};
let commit = (deviceNo: string, key: string) => {
addTask(deviceNo, key, printContent);
};
let clear365Content = () => {
printContent = '';
};
export default {
clear365Content,
addTask,
// getTaskStatus,
getPrinterStatus,
printText,
printlnText,
printTextCenter,
printQrCode,
printBarCode,
lineSplit,
lineWrap,
commit,
setHost,
};