Commit 79f8c6dd by linjinhong

fix:修改问题

parent 9dfe276d
......@@ -261,7 +261,7 @@ export default {
}
console.log("本地数据removeFromOrderInfo:", getOrderInfoMap());
//生产完成后在本地删除
return;
// return;
await this.$api.post("/completeDelivery", params);
this.$message.success("操作成功");
}
......@@ -347,33 +347,79 @@ export default {
}
});
},
/**
* 批量将canvas绘制配置转成base64图片
* @param {Array} canvasList - canvas绘制配置列表,每项需包含canvasWidth/canvasHeight/list(绘制项)
* @returns {Promise<Array>} 图片base64列表
*/
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);
// 基础参数校验,避免空值/非数组导致后续循环报错
if (!Array.isArray(canvasList)) {
throw new Error("canvasList必须是数组类型");
}
const imageList = [];
// 遍历每个canvas配置项,串行处理(保持原逻辑,若想并行可改成Promise.all(canvasList.map(...)))
for (const canvasConfig of canvasList) {
// 解构赋值,简化后续取值,同时校验核心属性
const { canvasWidth, canvasHeight, list: drawItems } = canvasConfig;
if (!canvasWidth || !canvasHeight || !Array.isArray(drawItems)) {
throw new Error(
"canvas配置项必须包含canvasWidth/canvasHeight/list(数组)属性",
);
}
});
// 创建临时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) {
let arr = base64.split(",");
let bstr = atob(arr[1]);
......@@ -548,10 +594,14 @@ export default {
}
if (this.detail && !this.isAutoFinish && this.desktopDevice == 3) {
bus.$emit("busEmit", {
value: this.detail.newId,
type: "completeFail",
});
const canCallApi =
this.detail.saveImgList?.every((el) => el.power) ?? false;
if (canCallApi) {
bus.$emit("busEmit", {
value: this.detail.newId,
type: "completeFail",
});
}
}
//判断生产单号是否为空
if (this.productionNo === "")
......
......@@ -1286,7 +1286,9 @@ export default {
`订单:${this.detail.newId}`,
`<strong>订单:${this.detail.newId}</strong>`,
)
.replace(/生产完成/, '<span style="color:#85ce61">生产完成</span>');
.replace(/生产完成/, '<span style="color:#85ce61">生产完成</span>')
.replace(/未生产完成/, '<span style="color:#f56c79">未生产完成</span>');
},
clearLocalFn() {
setOrderInfo([]);
......@@ -1321,7 +1323,7 @@ export default {
this.localeData = getOrderInfoMap();
break;
case "completeFail":
this.logList.unshift(`订单:${value}打印完成,未点击生产完成`);
this.logList.unshift(`订单:${value}已打印完成,未生产完成`);
this.localeData = getOrderInfoMap();
break;
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