Commit 0a3ee7dc by linjinhong

Merge remote-tracking branch 'origin/test' into ljh

parents e5f73622 f3919697
...@@ -2,12 +2,12 @@ import { ...@@ -2,12 +2,12 @@ import {
downloadImage, downloadImage,
downloadOtherImage, downloadOtherImage,
toSend, toSend,
writeProfileXml, writeProfileXml
} from "@/server/utils"; } from "@/server/utils";
const { const {
cropImageTransparentEdges, cropImageTransparentEdges,
cropTransparentEdges, cropTransparentEdges,
processImages, processImages
} = require("../utils/setImage"); } = require("../utils/setImage");
import axios from "axios"; import axios from "axios";
import { returnLogFilePath } from "../utils/log"; import { returnLogFilePath } from "../utils/log";
...@@ -15,13 +15,11 @@ var request = require("request"); ...@@ -15,13 +15,11 @@ var request = require("request");
const compressing = require("compressing"); const compressing = require("compressing");
const uuid = require("uuid"); const uuid = require("uuid");
const path = require("path"); const path = require("path");
const fs = require("fs"); const fs = require("fs");
const os = require("os"); const os = require("os");
const { app } = require("electron"); const { app } = require("electron");
let fileEnv, env, visionUrl; let fileEnv, env, visionUrl;
axios.defaults.timeout = 12600000; axios.defaults.timeout = 12600000;
const multiparty = require("multiparty"); const multiparty = require("multiparty");
function readEnv() { function readEnv() {
...@@ -73,7 +71,7 @@ export default { ...@@ -73,7 +71,7 @@ export default {
const token = req.headers["jwt-token"]; const token = req.headers["jwt-token"];
try { try {
let { let {
data, data
} = await axios.post( } = await axios.post(
`${env}/factory/podJomallOrder/downloadByProduction`, `${env}/factory/podJomallOrder/downloadByProduction`,
[req.body[0]], [req.body[0]],
...@@ -83,26 +81,26 @@ export default { ...@@ -83,26 +81,26 @@ export default {
if (data.code === 200) { if (data.code === 200) {
files = data.data; files = data.data;
files = files.map((el) => { files = files.map(el => {
return { url: `${fileEnv}${el}` }; return { url: `${fileEnv}${el}` };
}); });
if (req.body[1] === 1) { if (req.body[1] === 1) {
downloadImage(files) downloadImage(files)
.then((data) => { .then(data => {
res.json({ code: 200, data }); res.json({ code: 200, data });
}) })
.catch((err) => { .catch(err => {
res.json({ code: 500, msg: err }); res.json({ code: 500, msg: err });
}); });
} else { } else {
downloadOtherImage(files) downloadOtherImage(files)
.then((data) => { .then(data => {
console.log(77, data); console.log(77, data);
res.json({ code: 200, data }); res.json({ code: 200, data });
}) })
.catch((err) => { .catch(err => {
res.json({ code: 500, msg: err }); res.json({ code: 500, msg: err });
}); });
} }
...@@ -122,7 +120,7 @@ export default { ...@@ -122,7 +120,7 @@ export default {
`${env}/factory/podJomallOrderProduct/getSubOrderByThirdSubOrderNumber`, `${env}/factory/podJomallOrderProduct/getSubOrderByThirdSubOrderNumber`,
{ {
params: q, params: q,
headers: { "jwt-token": token }, headers: { "jwt-token": token }
} }
); );
res.json(data); res.json(data);
...@@ -146,7 +144,7 @@ export default { ...@@ -146,7 +144,7 @@ export default {
const token = req.headers["jwt-token"]; const token = req.headers["jwt-token"];
try { try {
let { let {
data, data
} = await axios.post( } = await axios.post(
`${env}/factory/podJomallOrderProduct/completeDelivery`, `${env}/factory/podJomallOrderProduct/completeDelivery`,
req.body, req.body,
...@@ -179,7 +177,7 @@ export default { ...@@ -179,7 +177,7 @@ export default {
console.log("success"); console.log("success");
res.json({ res.json({
code: 200, code: 200,
msg: q.productionNo + ".zip" + "已下载到桌面", msg: q.productionNo + ".zip" + "已下载到桌面"
}); });
}) })
.on("error", () => { .on("error", () => {
...@@ -221,8 +219,8 @@ export default { ...@@ -221,8 +219,8 @@ export default {
code: 200, code: 200,
data: { data: {
fileName, fileName,
url: path.join(process.cwd(), "./print/Input/" + fileName), url: path.join(process.cwd(), "./print/Input/" + fileName)
}, }
}); });
} }
}); });
...@@ -274,10 +272,10 @@ export default { ...@@ -274,10 +272,10 @@ export default {
console.log(249, body); console.log(249, body);
toSend(body) toSend(body)
.then((r) => { .then(r => {
res.send({ code: 200, msg: "操作成功" }); res.send({ code: 200, msg: "操作成功" });
}) })
.catch((err) => { .catch(err => {
res.send({ code: 500, msg: err }); res.send({ code: 500, msg: err });
}); });
}, },
...@@ -316,7 +314,7 @@ export default { ...@@ -316,7 +314,7 @@ export default {
fs.unlinkSync(from); fs.unlinkSync(from);
res.json({ code: 200, msg: "更新成功" }); res.json({ code: 200, msg: "更新成功" });
}) })
.catch((err) => { .catch(err => {
res.json({ code: 500, msg: err.message }); res.json({ code: 500, msg: err.message });
}); });
}); });
...@@ -357,4 +355,33 @@ export default { ...@@ -357,4 +355,33 @@ export default {
res.json({ code: 500, msg: err.message }); res.json({ code: 500, msg: err.message });
} }
}, },
saveToPng: async (req, res) => {
try {
const p = path.join(process.cwd(), "./print/Input/");
const form = new multiparty.Form({ uploadDir: p });
form.parse(req, function(err, fields, files) {
console.log(fields, files, err);
if (err) {
res.send({ code: 500, err });
} else {
let list = [];
files.files.forEach(file => {
let fileName = uuid.v4() + ".png";
fs.renameSync(file.path, path.join(p, fileName));
list.push({
fileName,
url: path.join(process.cwd(), "./print/Input/" + fileName)
});
});
res.json({
code: 200,
data: list
});
}
});
} catch (err) {
console.log(err);
res.json({ code: 500, msg: err });
}
}
}; };
...@@ -37,4 +37,7 @@ router.post("/imageListTransparentEdges", fn.imageListTransparentEdges); ...@@ -37,4 +37,7 @@ router.post("/imageListTransparentEdges", fn.imageListTransparentEdges);
// 处理图片并输出结果 // 处理图片并输出结果
router.post("/processImage", fn.processImage); router.post("/processImage", fn.processImage);
// 保存生成后得图片返回地址
router.post("/saveToPng", fn.saveToPng);
export { router as default }; export { router as default };
...@@ -7,6 +7,7 @@ import pkg from "../../../../package.json"; ...@@ -7,6 +7,7 @@ import pkg from "../../../../package.json";
import UpdateDialog from "@/views/design/updateDialog.vue"; import UpdateDialog from "@/views/design/updateDialog.vue";
import path from "path"; // 引入 path 模块 import path from "path"; // 引入 path 模块
import store from "@/store/index.js"; import store from "@/store/index.js";
import axios from "axios";
const uuid = require("uuid"); const uuid = require("uuid");
const fs = require("fs"); const fs = require("fs");
...@@ -188,6 +189,81 @@ export default { ...@@ -188,6 +189,81 @@ export default {
}) })
.catch(() => {}); .catch(() => {});
}, },
drawImage(canvas, item) {
return new Promise((resolve, reject) => {
try {
axios
.get(item?.src, {
responseType: "blob",
})
.then((res) => {
var url = URL.createObjectURL(res.data);
let img = new Image();
img.crossorigin = "";
img.src = url;
img.style.width = item.img_width + "px";
img.style.height = item.img_height + "px";
img.onerror = function() {
reject();
};
img.onload = function() {
console.log(img, "img");
img.onload = null;
const ctx = canvas.getContext("2d");
ctx.drawImage(img, ...item.drawImage);
URL.revokeObjectURL(url);
resolve();
};
})
.catch((e) => {
console.log(e);
reject(e);
});
} catch (e) {
console.log(e, "error");
reject(e);
}
});
},
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 objects = canvasItem.options.objects.filter(
(el) => el.type === "image"
);
let list = [];
for (let i in objects) {
list.push(this.drawImage(canvas, canvasItem.list[i]));
}
await Promise.all(list);
let base = canvas.toDataURL("image/png", 1);
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]);
let n = bstr.length;
let u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], fileName, { type: "image/png" });
},
async downloadImage() { async downloadImage() {
if (!this.detail || Object.keys(this.detail).length === 0) if (!this.detail || Object.keys(this.detail).length === 0)
return this.$message.warning("请扫描生产单号"); return this.$message.warning("请扫描生产单号");
...@@ -219,67 +295,104 @@ export default { ...@@ -219,67 +295,104 @@ export default {
} }
); );
this.detail = findByPodProductionNo.data; this.detail = findByPodProductionNo.data;
// console.log(219, this.detail); let imageResList = [];
let designImagesCanvasJsonList =
this.$store.commit("setProductDetail", findByPodProductionNo.data); '[{"options":{"rect_info":{"rectWidth":278,"rectHeight":311,"leftDistance":164,"topDistance":134},"title":"正","json":{"version":"5.4.0","objects":[{"type":"rect","version":"5.4.0","originX":"left","originY":"top","left":239.6414188934889,"top":100.125,"width":536.7171622130222,"height":603.75,"fill":"rgba(255,255,255,0)","stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeUniform":false,"strokeMiterLimit":4,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","skewX":0,"skewY":0,"rx":0,"ry":0,"mediaType":"bg","objectCaching":true},{"type":"image","version":"5.4.0","originX":"left","originY":"top","left":386.625,"top":236.62500000000006,"width":319,"height":345,"fill":"rgb(0,0,0)","stroke":null,"strokeWidth":0,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeUniform":false,"strokeMiterLimit":4,"scaleX":0.464984939759036,"scaleY":0.464984939759036,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","skewX":0,"skewY":0,"cropX":0,"cropY":0,"origWidth":319,"origHeight":345,"originImgUrl":"https://jomalls.oss-cn-hangzhou.aliyuncs.com/local/design/2504/17/wdtq66-hzu9vgr-m9kyp1uk.png","mediaType":"material","filters":[],"src":"https://jomalls.oss-cn-hangzhou.aliyuncs.com/local/design/2504/17/wdtq66-hzu9vgr-m9kyp1uk.png","objectCaching":true,"crossOrigin":"anonymous"},{"type":"image","version":"5.4.0","originX":"left","originY":"top","left":368.9238341968912,"top":378.725,"width":2584,"height":1544,"fill":"rgb(0,0,0)","stroke":null,"strokeWidth":0,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeUniform":false,"strokeMiterLimit":4,"scaleX":0.1080310880829015,"scaleY":0.1080310880829015,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","skewX":0,"skewY":0,"cropX":0,"cropY":0,"origWidth":2584,"origHeight":1544,"originImgUrl":"https://jomalls-test.oss-cn-hangzhou.aliyuncs.com/local/design/2503/06/v3b1yw-m4y92pr-m7wt14fi.png","mediaType":"material","filters":[],"src":"https://jomalls-test.oss-cn-hangzhou.aliyuncs.com/local/design/2503/06/v3b1yw-m4y92pr-m7wt14fi.png","objectCaching":true,"crossOrigin":"anonymous"}],"id":"canvas_6378","width":1017,"height":805,"oldCutWidth":536.7171622130222,"oldCutHeight":603.75,"origWidth":2362,"origHeight":2657,"objectCaching":false},"objects":[{"type":"rect","version":"5.4.0","originX":"left","originY":"top","left":239.6414188934889,"top":100.125,"width":536.7171622130222,"height":603.75,"fill":"rgba(255,255,255,0)","stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeUniform":false,"strokeMiterLimit":4,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","skewX":0,"skewY":0,"rx":0,"ry":0,"mediaType":"bg","objectCaching":true},{"type":"image","version":"5.4.0","originX":"left","originY":"top","left":386.625,"top":236.62500000000006,"width":319,"height":345,"fill":"rgb(0,0,0)","stroke":null,"strokeWidth":0,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeUniform":false,"strokeMiterLimit":4,"scaleX":0.464984939759036,"scaleY":0.464984939759036,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","skewX":0,"skewY":0,"cropX":0,"cropY":0,"origWidth":319,"origHeight":345,"originImgUrl":"https://jomalls.oss-cn-hangzhou.aliyuncs.com/local/design/2504/17/wdtq66-hzu9vgr-m9kyp1uk.png","mediaType":"material","filters":[],"src":"https://jomalls.oss-cn-hangzhou.aliyuncs.com/local/design/2504/17/wdtq66-hzu9vgr-m9kyp1uk.png","objectCaching":true,"crossOrigin":"anonymous"},{"type":"image","version":"5.4.0","originX":"left","originY":"top","left":368.9238341968912,"top":378.725,"width":2584,"height":1544,"fill":"rgb(0,0,0)","stroke":null,"strokeWidth":0,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeUniform":false,"strokeMiterLimit":4,"scaleX":0.1080310880829015,"scaleY":0.1080310880829015,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","skewX":0,"skewY":0,"cropX":0,"cropY":0,"origWidth":2584,"origHeight":1544,"originImgUrl":"https://jomalls-test.oss-cn-hangzhou.aliyuncs.com/local/design/2503/06/v3b1yw-m4y92pr-m7wt14fi.png","mediaType":"material","filters":[],"src":"https://jomalls-test.oss-cn-hangzhou.aliyuncs.com/local/design/2503/06/v3b1yw-m4y92pr-m7wt14fi.png","objectCaching":true,"crossOrigin":"anonymous"}]},"canvasWidth":536.7171622130222,"canvasHeight":603.75,"list":[{"rate":1.930637274147562,"drawImage":[30.88054319999026,3.8612745482952335,286.371804860521,309.71245353253846],"y":2.000000000000057,"x":15.995000000000005,"src":"https://jomalls.oss-cn-hangzhou.aliyuncs.com/local/design/2504/17/wdtq66-hzu9vgr-m9kyp1uk.png","img_width":148.33019578313247,"img_height":160.41980421686742},{"rate":1.930637274147562,"drawImage":[-3.2939872953577103,278.2048312046637,538.941896564164,322.0302973278132],"y":144.10000000000002,"x":-1.7061658031087745,"src":"https://jomalls-test.oss-cn-hangzhou.aliyuncs.com/local/design/2503/06/v3b1yw-m4y92pr-m7wt14fi.png","img_width":279.1523316062175,"img_height":166.79999999999993}]},{"options":{"rect_info":{"rectWidth":278,"rectHeight":311,"leftDistance":164,"topDistance":134},"title":"反","json":{"version":"5.4.0","objects":[{"type":"rect","version":"5.4.0","originX":"left","originY":"top","left":239.6414188934889,"top":100.125,"width":536.7171622130222,"height":603.75,"fill":"rgba(255,255,255,0)","stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeUniform":false,"strokeMiterLimit":4,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","skewX":0,"skewY":0,"rx":0,"ry":0,"mediaType":"bg","objectCaching":true},{"type":"image","version":"5.4.0","originX":"left","originY":"top","left":370.625,"top":292.82500000000005,"width":612,"height":408,"fill":"rgb(0,0,0)","stroke":null,"strokeWidth":0,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeUniform":false,"strokeMiterLimit":4,"scaleX":0.4466176470588235,"scaleY":0.4466176470588235,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","skewX":0,"skewY":0,"cropX":0,"cropY":0,"origWidth":612,"origHeight":408,"originImgUrl":"https://jomalls.oss-cn-hangzhou.aliyuncs.com/local/design/2504/18/1x7lat8-3xppur-m9mk4w2u.jpg","mediaType":"material","filters":[],"src":"https://jomalls.oss-cn-hangzhou.aliyuncs.com/local/design/2504/18/1x7lat8-3xppur-m9mk4w2u.jpg","objectCaching":true,"crossOrigin":"anonymous"}],"id":"canvas_6379","width":1017,"height":805,"oldCutWidth":536.7171622130222,"oldCutHeight":603.75,"origWidth":2362,"origHeight":2657,"objectCaching":false},"objects":[{"type":"rect","version":"5.4.0","originX":"left","originY":"top","left":239.6414188934889,"top":100.125,"width":536.7171622130222,"height":603.75,"fill":"rgba(255,255,255,0)","stroke":null,"strokeWidth":1,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeUniform":false,"strokeMiterLimit":4,"scaleX":1,"scaleY":1,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","skewX":0,"skewY":0,"rx":0,"ry":0,"mediaType":"bg","objectCaching":true},{"type":"image","version":"5.4.0","originX":"left","originY":"top","left":370.625,"top":292.82500000000005,"width":612,"height":408,"fill":"rgb(0,0,0)","stroke":null,"strokeWidth":0,"strokeDashArray":null,"strokeLineCap":"butt","strokeDashOffset":0,"strokeLineJoin":"miter","strokeUniform":false,"strokeMiterLimit":4,"scaleX":0.4466176470588235,"scaleY":0.4466176470588235,"angle":0,"flipX":false,"flipY":false,"opacity":1,"shadow":null,"visible":true,"backgroundColor":"","fillRule":"nonzero","paintFirst":"fill","globalCompositeOperation":"source-over","skewX":0,"skewY":0,"cropX":0,"cropY":0,"origWidth":612,"origHeight":408,"originImgUrl":"https://jomalls.oss-cn-hangzhou.aliyuncs.com/local/design/2504/18/1x7lat8-3xppur-m9mk4w2u.jpg","mediaType":"material","filters":[],"src":"https://jomalls.oss-cn-hangzhou.aliyuncs.com/local/design/2504/18/1x7lat8-3xppur-m9mk4w2u.jpg","objectCaching":true,"crossOrigin":"anonymous"}]},"canvasWidth":536.7171622130222,"canvasHeight":603.75,"list":[{"rate":1.930637274147562,"drawImage":[-0.00965318637072903,112.3630893553882,527.7010861427531,351.80072409516873],"y":58.200000000000045,"x":-0.0049999999999954525,"src":"https://jomalls.oss-cn-hangzhou.aliyuncs.com/local/design/2504/18/1x7lat8-3xppur-m9mk4w2u.jpg","img_width":273.33,"img_height":182.22}]}]';
if (designImagesCanvasJsonList) {
ipcRenderer.send("win-subScreen", findByPodProductionNo.data); designImagesCanvasJsonList = JSON.parse(designImagesCanvasJsonList);
// 根据生产单号查找 素材图片 下载到本地 然后返回本地地址去显示 console.log(designImagesCanvasJsonList, "designImagesCanvasJsonList");
let res = await this.$api.post("/downloadBySubOrderNumber", [ let imageList = await this.canvasToImage(designImagesCanvasJsonList);
this.detail.id, let fm = new FormData();
this.$store.state.desktopDevice, for (let img of imageList) {
]); let filename = uuid.v4().replace("-", "") + ".png";
this.imgList = []; fm.append("files", this.base64ToFile(img, filename));
res.data.forEach((el) => {
this.imgList = this.imgList.concat(el.list || []);
});
this.$dataStore.set("production_no", this.productionNo);
if (res.data.length === 0)
return this.$message.warning("未找到素材图!");
let arr = [];
res.data.forEach((el) => {
if (el.list) {
el.list.forEach((it) => {
arr.push(it);
});
} }
}); let Sres = await this.$api.post("/saveToPng", fm);
res.data = arr.filter((el) => el.type !== 1); Sres.data.forEach((item, i) => {
let newImgList; item.title = designImagesCanvasJsonList[i].options.title;
if (this.checked) { item.productionFile = item.url;
newImgList = await this.cutImgFn(res.data); });
} else { imageResList = Sres.data;
newImgList = res.data; console.log(imageResList, "imageResList");
this.imgList = [];
} }
console.log("newImgList", newImgList); this.$store.commit("setProductDetail", findByPodProductionNo.data);
ipcRenderer.send("win-subScreen", findByPodProductionNo.data);
// 延迟后强制激活窗口 if (imageResList && imageResList.length) {
if (this.desktopDevice !== 1) { this.checked = false;
if (this.imgList.length) { let obj = {
let pathUrl = this.imgList[0].productionFile; type: "sendFile",
setTimeout(async () => { value: imageResList,
// await this.focusExplorerWindow(pathUrl); };
const pathParts = pathUrl.split("\\"); if (this.detail.mssWidth && this.detail.mssHeight) {
pathParts.pop(); obj.size = {
// 使用 join() 将剩余部分重新拼接成路径 width: this.detail.mssWidth,
const folderPath = pathParts.join("\\"); height: this.detail.mssHeight,
ipcRenderer.send("select-files", folderPath); };
// 删除最后一个部分,即文件名
}, 500);
} }
bus.$emit("busEmit", obj);
} else { } else {
bus.$emit("busEmit", { // 根据生产单号查找 素材图片 下载到本地 然后返回本地地址去显示
type: "sendFile", let res = await this.$api.post("/downloadBySubOrderNumber", [
value: newImgList, this.detail.id,
// size: { width: this.detail.mssWidth || 500, height: this.detail.mssHeight || 500 }, this.$store.state.desktopDevice,
]);
if (res.data.length === 0)
return this.$message.warning("未找到素材图!");
this.imgList = [];
res.data.forEach((el) => {
this.imgList = this.imgList.concat(el.list || []);
});
let arr = [];
res.data.forEach((el) => {
if (el.list) {
el.list.forEach((it) => {
arr.push(it);
});
}
}); });
res.data = arr.filter((el) => el.type !== 1);
let newImgList;
if (this.checked) {
newImgList = await this.cutImgFn(res.data);
} else {
newImgList = res.data;
}
// 延迟后强制激活窗口
if (this.desktopDevice !== 1) {
if (this.imgList.length) {
let pathUrl = this.imgList[0].productionFile;
setTimeout(async () => {
// await this.focusExplorerWindow(pathUrl);
const pathParts = pathUrl.split("\\");
pathParts.pop();
// 使用 join() 将剩余部分重新拼接成路径
const folderPath = pathParts.join("\\");
ipcRenderer.send("select-files", folderPath);
// 删除最后一个部分,即文件名
}, 500);
}
} else {
console.log(260, res.data);
let obj = {
type: "sendFile",
value: newImgList,
};
if (this.detail.mssWidth && this.detail.mssHeight) {
obj.size = {
width: this.detail.mssWidth,
height: this.detail.mssHeight,
};
}
bus.$emit("busEmit", obj);
}
} }
this.$dataStore.set("production_no", this.productionNo);
this.productionNo = ""; this.productionNo = "";
this.$refs.searchRef.focus(); this.$refs.searchRef.focus();
} catch (err) { } catch (err) {
console.log(err);
this.productionNo = ""; this.productionNo = "";
this.$refs.searchRef.focus(); this.$refs.searchRef.focus();
} }
...@@ -450,8 +563,8 @@ export default { ...@@ -450,8 +563,8 @@ export default {
@change="changeDesktopDeviceFn" @change="changeDesktopDeviceFn"
placeholder="请选择设备类型" placeholder="请选择设备类型"
> >
<el-option label="兄弟" :value="1"> </el-option> <el-option label="兄弟" :value="1"></el-option>
<el-option label="其他" :value="2"> </el-option> <el-option label="其他" :value="2"></el-option>
</el-select> </el-select>
</div> </div>
...@@ -584,8 +697,8 @@ export default { ...@@ -584,8 +697,8 @@ export default {
@click="checkUpdate" @click="checkUpdate"
style="margin-left: 15px" style="margin-left: 15px"
type="text" type="text"
>检查更新</el-button >检查更新
> </el-button>
</el-form-item> </el-form-item>
<!-- <el-form-item label="自动打印模式">--> <!-- <el-form-item label="自动打印模式">-->
...@@ -682,8 +795,8 @@ export default { ...@@ -682,8 +795,8 @@ export default {
:label="item.value" :label="item.value"
v-for="(item, i) in cacheList" v-for="(item, i) in cacheList"
:key="i" :key="i"
>{{ item.label }}</el-checkbox >{{ item.label }}
> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
<template #footer> <template #footer>
<el-button @click="cacheVisible = false">取消</el-button> <el-button @click="cacheVisible = false">取消</el-button>
...@@ -779,17 +892,21 @@ export default { ...@@ -779,17 +892,21 @@ export default {
z-index: 2; z-index: 2;
color: white; color: white;
} }
::v-deep .el-color-picker__trigger { ::v-deep .el-color-picker__trigger {
background: white; background: white;
width: 41px; width: 41px;
} }
::v-deep .el-color-picker__color { ::v-deep .el-color-picker__color {
border: none !important; border: none !important;
} }
.selectInput { .selectInput {
display: flex; display: flex;
align-items: center; align-items: center;
margin: 0 10px; margin: 0 10px;
::v-deep { ::v-deep {
.el-select .el-input { .el-select .el-input {
max-width: 150px; max-width: 150px;
......
...@@ -131,6 +131,7 @@ export default { ...@@ -131,6 +131,7 @@ export default {
actionList: [], actionList: [],
checkList: [], checkList: [],
oldImgList: [], oldImgList: [],
hasSize: false,
parentWidth: 0, parentWidth: 0,
backColor: "#77797a", backColor: "#77797a",
systemSetting: {}, systemSetting: {},
...@@ -361,12 +362,24 @@ export default { ...@@ -361,12 +362,24 @@ export default {
return mm1.width; return mm1.width;
}, },
setDesignImg(title) {
let img = this.selectImgList.find((it) => it.title === title);
if (img) {
console.log(this.detail.designImageSize, "this.detail.size");
this.getBackFile(
{ files: [img], size: this.detail.designImageSize },
(file) => {
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)));
}
);
}
},
selectImg(it, i) { selectImg(it, i) {
// this.selectImgIndexList.push(i) // this.selectImgIndexList.push(i)
let item = this.imgList.find((img) => img.fileName === it.fileName); let item = this.imgList.find((img) => img.fileName === it.fileName);
if (item) return; if (item) return;
// this.selectImgIndexList = Array.from(new Set(this.selectImgIndexList)) // this.selectImgIndexList = Array.from(new Set(this.selectImgIndexList))
this.getBackFile({ files: [it] }, (file) => { this.getBackFile({ files: [it], size: null }, (file) => {
this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList))); this.imgHistoryList.push(JSON.parse(JSON.stringify(this.imgList)));
}); });
}, },
...@@ -521,18 +534,29 @@ export default { ...@@ -521,18 +534,29 @@ export default {
}; };
}); });
}, },
getComputedName(title) {
let img = this.selectImgList.find((it) => it.title === title);
return img?.fileName;
},
getComputedTitle(title) {
console.log(this.selectImgList, "this.selectImgList");
let img = this.selectImgList.find((it) => it.title === title);
return img?.url;
},
getBackFile({ files, size }, callback) { getBackFile({ files, size }, callback) {
let that = this; let that = this;
let bw = document.getElementById("line").clientWidth; let bw = window.getComputedStyle(
document.getElementsByClassName("grid")[0]
).width;
bw = Number(bw.replace("px", ""));
for (let i = 0; i < files.length; i++) { for (let i = 0; i < files.length; i++) {
files[i].url = files[i].productionFile; files[i].url = files[i].productionFile || files[i].url;
that.$nextTick(async () => { that.$nextTick(async () => {
let w = document.getElementById("line").clientWidth / 2; let w = bw / 2;
let width_px, height_px, rate; let width_px, height_px, rate;
if (size) { if (size) {
width_px = mmToPx(size.width); width_px = mmToPx(size.width);
height_px = mmToPx(size.height); height_px = mmToPx(size.height);
console.log(width_px, height_px, "w,h");
rate = height_px / width_px; rate = height_px / width_px;
} else { } else {
let data = await that.getImageSize(files[i].url); let data = await that.getImageSize(files[i].url);
...@@ -778,21 +802,26 @@ export default { ...@@ -778,21 +802,26 @@ export default {
}); });
break; break;
case "sendFile": case "sendFile":
// if (size.width && size.height) { console.log("sendFile");
// this.hasSize = true; if (size) {
// } else { this.hasSize = true;
// this.hasSize = false; } else {
// } this.hasSize = false;
}
this.detail.designImageSize = size;
this.imgList = []; this.imgList = [];
this.selectIndex = -1; this.selectIndex = -1;
if (value.length > 0) { if (value.length > 0) {
this.selectImgList = value; this.selectImgList = value;
this.selectImgIndex = 0; this.selectImgIndex = 0;
this.getBackFile({ files: [value[0]], size }, (file) => { this.getBackFile(
this.imgHistoryList.push( { files: [value[0]], size: this.detail.designImageSize || null },
JSON.parse(JSON.stringify(this.imgList)) (file) => {
); this.imgHistoryList.push(
}); JSON.parse(JSON.stringify(this.imgList))
);
}
);
// this.addFile([value[0].file]) // this.addFile([value[0].file])
} }
break; break;
...@@ -912,6 +941,27 @@ export default { ...@@ -912,6 +941,27 @@ export default {
</el-col> </el-col>
</el-row> </el-row>
</el-row> </el-row>
<el-table border :data="detail.imageAry">
<el-table-column label="打印区域" prop="title"></el-table-column>
<el-table-column label="效果图" prop="title">
<template slot-scope="{ row }">
<img class="full-width" :src="row.url" alt="" />
</template>
</el-table-column>
<el-table-column label="素材图" prop="title">
<template slot-scope="{ row }">
<img
style="cursor: pointer"
@click="setDesignImg(row.title)"
v-if="getComputedTitle(row.title)"
class="full-width"
:src="getComputedTitle(row.title)"
alt=""
/>
<span>{{ getComputedName(row.title) }}</span>
</template>
</el-table-column>
</el-table>
</div> </div>
<div class="product-information"> <div class="product-information">
<div class="title"> <div class="title">
...@@ -1150,6 +1200,15 @@ export default { ...@@ -1150,6 +1200,15 @@ export default {
</div> </div>
</div> </div>
</div> </div>
<div
class="print-tip"
v-if="detail && detail.designImageSize && selectImgList.length"
>
<b style="color: green" v-if="hasSize"
>该生产单无需拖动设计,直接打印</b
>
<b style="color: red" v-else>该生产单需要拖动设计打印</b>
</div>
</div> </div>
<img <img
......
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