Commit 0a3ee7dc by linjinhong

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

parents e5f73622 f3919697
......@@ -2,12 +2,12 @@ import {
downloadImage,
downloadOtherImage,
toSend,
writeProfileXml,
writeProfileXml
} from "@/server/utils";
const {
cropImageTransparentEdges,
cropTransparentEdges,
processImages,
processImages
} = require("../utils/setImage");
import axios from "axios";
import { returnLogFilePath } from "../utils/log";
......@@ -15,13 +15,11 @@ var request = require("request");
const compressing = require("compressing");
const uuid = require("uuid");
const path = require("path");
const fs = require("fs");
const os = require("os");
const { app } = require("electron");
let fileEnv, env, visionUrl;
axios.defaults.timeout = 12600000;
const multiparty = require("multiparty");
function readEnv() {
......@@ -73,7 +71,7 @@ export default {
const token = req.headers["jwt-token"];
try {
let {
data,
data
} = await axios.post(
`${env}/factory/podJomallOrder/downloadByProduction`,
[req.body[0]],
......@@ -83,26 +81,26 @@ export default {
if (data.code === 200) {
files = data.data;
files = files.map((el) => {
files = files.map(el => {
return { url: `${fileEnv}${el}` };
});
if (req.body[1] === 1) {
downloadImage(files)
.then((data) => {
.then(data => {
res.json({ code: 200, data });
})
.catch((err) => {
.catch(err => {
res.json({ code: 500, msg: err });
});
} else {
downloadOtherImage(files)
.then((data) => {
.then(data => {
console.log(77, data);
res.json({ code: 200, data });
})
.catch((err) => {
.catch(err => {
res.json({ code: 500, msg: err });
});
}
......@@ -122,7 +120,7 @@ export default {
`${env}/factory/podJomallOrderProduct/getSubOrderByThirdSubOrderNumber`,
{
params: q,
headers: { "jwt-token": token },
headers: { "jwt-token": token }
}
);
res.json(data);
......@@ -146,7 +144,7 @@ export default {
const token = req.headers["jwt-token"];
try {
let {
data,
data
} = await axios.post(
`${env}/factory/podJomallOrderProduct/completeDelivery`,
req.body,
......@@ -179,7 +177,7 @@ export default {
console.log("success");
res.json({
code: 200,
msg: q.productionNo + ".zip" + "已下载到桌面",
msg: q.productionNo + ".zip" + "已下载到桌面"
});
})
.on("error", () => {
......@@ -221,8 +219,8 @@ export default {
code: 200,
data: {
fileName,
url: path.join(process.cwd(), "./print/Input/" + fileName),
},
url: path.join(process.cwd(), "./print/Input/" + fileName)
}
});
}
});
......@@ -274,10 +272,10 @@ export default {
console.log(249, body);
toSend(body)
.then((r) => {
.then(r => {
res.send({ code: 200, msg: "操作成功" });
})
.catch((err) => {
.catch(err => {
res.send({ code: 500, msg: err });
});
},
......@@ -316,7 +314,7 @@ export default {
fs.unlinkSync(from);
res.json({ code: 200, msg: "更新成功" });
})
.catch((err) => {
.catch(err => {
res.json({ code: 500, msg: err.message });
});
});
......@@ -357,4 +355,33 @@ export default {
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);
// 处理图片并输出结果
router.post("/processImage", fn.processImage);
// 保存生成后得图片返回地址
router.post("/saveToPng", fn.saveToPng);
export { router as default };
......@@ -7,6 +7,7 @@ import pkg from "../../../../package.json";
import UpdateDialog from "@/views/design/updateDialog.vue";
import path from "path"; // 引入 path 模块
import store from "@/store/index.js";
import axios from "axios";
const uuid = require("uuid");
const fs = require("fs");
......@@ -188,6 +189,81 @@ export default {
})
.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() {
if (!this.detail || Object.keys(this.detail).length === 0)
return this.$message.warning("请扫描生产单号");
......@@ -219,67 +295,104 @@ export default {
}
);
this.detail = findByPodProductionNo.data;
// console.log(219, this.detail);
this.$store.commit("setProductDetail", findByPodProductionNo.data);
ipcRenderer.send("win-subScreen", findByPodProductionNo.data);
// 根据生产单号查找 素材图片 下载到本地 然后返回本地地址去显示
let res = await this.$api.post("/downloadBySubOrderNumber", [
this.detail.id,
this.$store.state.desktopDevice,
]);
this.imgList = [];
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 imageResList = [];
let designImagesCanvasJsonList =
'[{"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) {
designImagesCanvasJsonList = JSON.parse(designImagesCanvasJsonList);
console.log(designImagesCanvasJsonList, "designImagesCanvasJsonList");
let imageList = await this.canvasToImage(designImagesCanvasJsonList);
let fm = new FormData();
for (let img of imageList) {
let filename = uuid.v4().replace("-", "") + ".png";
fm.append("files", this.base64ToFile(img, filename));
}
});
res.data = arr.filter((el) => el.type !== 1);
let newImgList;
if (this.checked) {
newImgList = await this.cutImgFn(res.data);
} else {
newImgList = res.data;
let Sres = await this.$api.post("/saveToPng", fm);
Sres.data.forEach((item, i) => {
item.title = designImagesCanvasJsonList[i].options.title;
item.productionFile = item.url;
});
imageResList = Sres.data;
console.log(imageResList, "imageResList");
this.imgList = [];
}
console.log("newImgList", newImgList);
this.$store.commit("setProductDetail", findByPodProductionNo.data);
ipcRenderer.send("win-subScreen", findByPodProductionNo.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);
if (imageResList && imageResList.length) {
this.checked = false;
let obj = {
type: "sendFile",
value: imageResList,
};
if (this.detail.mssWidth && this.detail.mssHeight) {
obj.size = {
width: this.detail.mssWidth,
height: this.detail.mssHeight,
};
}
bus.$emit("busEmit", obj);
} else {
bus.$emit("busEmit", {
type: "sendFile",
value: newImgList,
// size: { width: this.detail.mssWidth || 500, height: this.detail.mssHeight || 500 },
// 根据生产单号查找 素材图片 下载到本地 然后返回本地地址去显示
let res = await this.$api.post("/downloadBySubOrderNumber", [
this.detail.id,
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.$refs.searchRef.focus();
} catch (err) {
console.log(err);
this.productionNo = "";
this.$refs.searchRef.focus();
}
......@@ -450,8 +563,8 @@ export default {
@change="changeDesktopDeviceFn"
placeholder="请选择设备类型"
>
<el-option label="兄弟" :value="1"> </el-option>
<el-option label="其他" :value="2"> </el-option>
<el-option label="兄弟" :value="1"></el-option>
<el-option label="其他" :value="2"></el-option>
</el-select>
</div>
......@@ -584,8 +697,8 @@ export default {
@click="checkUpdate"
style="margin-left: 15px"
type="text"
>检查更新</el-button
>
>检查更新
</el-button>
</el-form-item>
<!-- <el-form-item label="自动打印模式">-->
......@@ -682,8 +795,8 @@ export default {
:label="item.value"
v-for="(item, i) in cacheList"
:key="i"
>{{ item.label }}</el-checkbox
>
>{{ item.label }}
</el-checkbox>
</el-checkbox-group>
<template #footer>
<el-button @click="cacheVisible = false">取消</el-button>
......@@ -779,17 +892,21 @@ export default {
z-index: 2;
color: white;
}
::v-deep .el-color-picker__trigger {
background: white;
width: 41px;
}
::v-deep .el-color-picker__color {
border: none !important;
}
.selectInput {
display: flex;
align-items: center;
margin: 0 10px;
::v-deep {
.el-select .el-input {
max-width: 150px;
......
......@@ -131,6 +131,7 @@ export default {
actionList: [],
checkList: [],
oldImgList: [],
hasSize: false,
parentWidth: 0,
backColor: "#77797a",
systemSetting: {},
......@@ -361,12 +362,24 @@ export default {
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) {
// this.selectImgIndexList.push(i)
let item = this.imgList.find((img) => img.fileName === it.fileName);
if (item) return;
// 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)));
});
},
......@@ -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) {
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++) {
files[i].url = files[i].productionFile;
files[i].url = files[i].productionFile || files[i].url;
that.$nextTick(async () => {
let w = document.getElementById("line").clientWidth / 2;
let w = bw / 2;
let width_px, height_px, rate;
if (size) {
width_px = mmToPx(size.width);
height_px = mmToPx(size.height);
console.log(width_px, height_px, "w,h");
rate = height_px / width_px;
} else {
let data = await that.getImageSize(files[i].url);
......@@ -778,21 +802,26 @@ export default {
});
break;
case "sendFile":
// if (size.width && size.height) {
// this.hasSize = true;
// } else {
// this.hasSize = false;
// }
console.log("sendFile");
if (size) {
this.hasSize = true;
} else {
this.hasSize = false;
}
this.detail.designImageSize = size;
this.imgList = [];
this.selectIndex = -1;
if (value.length > 0) {
this.selectImgList = value;
this.selectImgIndex = 0;
this.getBackFile({ files: [value[0]], size }, (file) => {
this.imgHistoryList.push(
JSON.parse(JSON.stringify(this.imgList))
);
});
this.getBackFile(
{ files: [value[0]], size: this.detail.designImageSize || null },
(file) => {
this.imgHistoryList.push(
JSON.parse(JSON.stringify(this.imgList))
);
}
);
// this.addFile([value[0].file])
}
break;
......@@ -912,6 +941,27 @@ export default {
</el-col>
</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 class="product-information">
<div class="title">
......@@ -1150,6 +1200,15 @@ export default {
</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>
<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