Commit 79f8c6dd by linjinhong

fix:修改问题

parent 9dfe276d
...@@ -261,7 +261,7 @@ export default { ...@@ -261,7 +261,7 @@ export default {
} }
console.log("本地数据removeFromOrderInfo:", getOrderInfoMap()); console.log("本地数据removeFromOrderInfo:", getOrderInfoMap());
//生产完成后在本地删除 //生产完成后在本地删除
return; // return;
await this.$api.post("/completeDelivery", params); await this.$api.post("/completeDelivery", params);
this.$message.success("操作成功"); this.$message.success("操作成功");
} }
...@@ -347,33 +347,79 @@ export default { ...@@ -347,33 +347,79 @@ export default {
} }
}); });
}, },
/**
* 批量将canvas绘制配置转成base64图片
* @param {Array} canvasList - canvas绘制配置列表,每项需包含canvasWidth/canvasHeight/list(绘制项)
* @returns {Promise<Array>} 图片base64列表
*/
async canvasToImage(canvasList) { async canvasToImage(canvasList) {
return new Promise(async (resolve, reject) => { // 基础参数校验,避免空值/非数组导致后续循环报错
let imageList = []; if (!Array.isArray(canvasList)) {
try { throw new Error("canvasList必须是数组类型");
for (let canvasItem of canvasList) { }
const canvas = document.createElement("canvas"); const imageList = [];
canvas.className = "createCanvas";
canvas.width = canvasItem.canvasWidth; // 遍历每个canvas配置项,串行处理(保持原逻辑,若想并行可改成Promise.all(canvasList.map(...)))
canvas.height = canvasItem.canvasHeight; for (const canvasConfig of canvasList) {
let list = []; // 解构赋值,简化后续取值,同时校验核心属性
for (let listItem of canvasItem.list) { const { canvasWidth, canvasHeight, list: drawItems } = canvasConfig;
list.push(this.drawImage(canvas, listItem)); if (!canvasWidth || !canvasHeight || !Array.isArray(drawItems)) {
} throw new Error(
await Promise.all(list); "canvas配置项必须包含canvasWidth/canvasHeight/list(数组)属性",
let base = canvas.toDataURL("image/png", 1); );
// console.log("base", base);
canvas.remove();
imageList.push(base);
}
resolve(imageList);
} catch (e) {
// console.log(e);
reject(e);
} }
});
// 创建临时canvas
const canvas = document.createElement("canvas");
canvas.className = "createCanvas";
canvas.width = canvasWidth;
canvas.height = canvasHeight;
// 批量执行绘制方法,收集异步绘制Promise(语义化变量名,替代原模糊的list)
const drawPromises = drawItems.map((drawItem) =>
this.drawImage(canvas, drawItem),
);
// 等待当前canvas的所有绘制操作完成
await Promise.all(drawPromises);
// 转base64/png(质量1保持原逻辑)
const base64 = canvas.toDataURL("image/png", 1);
// 移除临时canvas,释放内存
canvas.remove();
// 推入结果列表
imageList.push(base64);
}
// async函数本身返回Promise,直接return即可,无需手动resolve
return imageList;
}, },
// async canvasToImage(canvasList) {
// return new Promise(async (resolve, reject) => {
// let imageList = [];
// try {
// for (let canvasItem of canvasList) {
// const canvas = document.createElement("canvas");
// canvas.className = "createCanvas";
// canvas.width = canvasItem.canvasWidth;
// canvas.height = canvasItem.canvasHeight;
// let list = [];
// for (let listItem of canvasItem.list) {
// list.push(this.drawImage(canvas, listItem));
// }
// await Promise.all(list);
// let base = canvas.toDataURL("image/png", 1);
// // console.log("base", base);
// canvas.remove();
// imageList.push(base);
// }
// resolve(imageList);
// } catch (e) {
// // console.log(e);
// reject(e);
// }
// });
// },
base64ToFile(base64, fileName) { base64ToFile(base64, fileName) {
let arr = base64.split(","); let arr = base64.split(",");
let bstr = atob(arr[1]); let bstr = atob(arr[1]);
...@@ -548,10 +594,14 @@ export default { ...@@ -548,10 +594,14 @@ export default {
} }
if (this.detail && !this.isAutoFinish && this.desktopDevice == 3) { if (this.detail && !this.isAutoFinish && this.desktopDevice == 3) {
bus.$emit("busEmit", { const canCallApi =
value: this.detail.newId, this.detail.saveImgList?.every((el) => el.power) ?? false;
type: "completeFail", if (canCallApi) {
}); bus.$emit("busEmit", {
value: this.detail.newId,
type: "completeFail",
});
}
} }
//判断生产单号是否为空 //判断生产单号是否为空
if (this.productionNo === "") if (this.productionNo === "")
......
...@@ -1286,7 +1286,9 @@ export default { ...@@ -1286,7 +1286,9 @@ export default {
`订单:${this.detail.newId}`, `订单:${this.detail.newId}`,
`<strong>订单:${this.detail.newId}</strong>`, `<strong>订单:${this.detail.newId}</strong>`,
) )
.replace(/生产完成/, '<span style="color:#85ce61">生产完成</span>');
.replace(/生产完成/, '<span style="color:#85ce61">生产完成</span>')
.replace(/未生产完成/, '<span style="color:#f56c79">未生产完成</span>');
}, },
clearLocalFn() { clearLocalFn() {
setOrderInfo([]); setOrderInfo([]);
...@@ -1321,7 +1323,7 @@ export default { ...@@ -1321,7 +1323,7 @@ export default {
this.localeData = getOrderInfoMap(); this.localeData = getOrderInfoMap();
break; break;
case "completeFail": case "completeFail":
this.logList.unshift(`订单:${value}打印完成,未点击生产完成`); this.logList.unshift(`订单:${value}已打印完成,未生产完成`);
this.localeData = getOrderInfoMap(); this.localeData = getOrderInfoMap();
break; break;
case "grid": case "grid":
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment