Commit e0f5d9e8 by linjinhong

feat:添加惠立彩

parent 743b2a4c
This source diff could not be displayed because it is too large. You can view the blob instead.
// import {
// downloadImage,
// downloadOtherImage,
// toSend,
// writeProfileXml,
// } from "@/server/utils";
// const {
// cropImageTransparentEdges,
// cropTransparentEdges,
// processImages,
// } = require("../utils/setImage");
import axios from "../utils/axios";
// import { returnLogFilePath } from "../utils/log";
// 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");
axios.defaults.timeout = 12600000;
// const multiparty = require("multiparty");
export function getProductCnByFactorySubOrderNumberApi(factorySubOrderNumber) {
// let env = getHostApi().apiApiHost;
const url =
"factory/podJomallOrderProductCn/getProductCnByFactorySubOrderNumber";
return axios.get(url, {
params: {
factorySubOrderNumber,
},
});
}
export function getProductUsByFactorySubOrderNumberApi(factorySubOrderNumber) {
return axios.get(
`factory/podJomallOrderProductUs/getProductUsByFactorySubOrderNumber`,
{
params: {
factorySubOrderNumber,
},
},
);
}
export function getSubOrderByThirdSubOrderNumberApi(thirdSubOrderNumber) {
return axios.get(
`factory/podJomallOrderProduct/getSubOrderByThirdSubOrderNumber`,
{
params: {
thirdSubOrderNumber,
},
},
);
}
export function checkUpdate(version) {
return axios.get(
`https://admin.jomalls.com/api/manage/rest/app/checkUpdate`,
{
params: {
businessType: "production_assistant",
version,
},
},
);
}
export function getAllCountryApi(thirdSubOrderNumber) {
return axios.get(`logisticsAddress/getAllCountry`, {
params: {
thirdSubOrderNumber,
},
});
}
...@@ -40,7 +40,7 @@ async function createWindow() { ...@@ -40,7 +40,7 @@ async function createWindow() {
contextIsolation: false, // ^1.4.0 版本必须关闭 contextIsolation: false, // ^1.4.0 版本必须关闭
}, },
}); });
win.maximize();
const template = [ const template = [
{ {
label: "文件", label: "文件",
...@@ -141,7 +141,7 @@ async function createWindow() { ...@@ -141,7 +141,7 @@ async function createWindow() {
submenu: [ submenu: [
{ {
label: "工厂域名", label: "工厂域名设置",
click: function() { click: function() {
(async function() { (async function() {
try { try {
...@@ -283,7 +283,7 @@ async function createWindow() { ...@@ -283,7 +283,7 @@ async function createWindow() {
}, },
}, },
{ {
label: "清除账号缓存", label: "清除缓存",
click: function() { click: function() {
(async function() { (async function() {
try { try {
...@@ -310,7 +310,7 @@ async function createWindow() { ...@@ -310,7 +310,7 @@ async function createWindow() {
modal: true, modal: true,
width: 450, width: 450,
height: 300, height: 300,
title: "清除账号缓存", title: "清除缓存",
resizable: false, resizable: false,
autoHideMenuBar: true, autoHideMenuBar: true,
menuBarVisible: false, menuBarVisible: false,
...@@ -417,32 +417,28 @@ async function createWindow() { ...@@ -417,32 +417,28 @@ async function createWindow() {
if (newWindow) newWindow.webContents.send("getProductionNoInfo", v); if (newWindow) newWindow.webContents.send("getProductionNoInfo", v);
}); });
ipcMain.on("open-file", async (event, filePath) => { ipcMain.on("request-select-folder", (event) => {
try { // 打开文件夹选择对话框(Electron 6.x 回调写法,更稳定)
// shell.openPath 会用系统默认应用打开文件 dialog.showOpenDialog(
const result = await shell.openItem(filePath); {
console.log(result); properties: ["openDirectory"], // 仅允许选择文件夹
title: "选择下载保存位置",
return { success: true }; },
} catch (error) { (result) => {
return { // 处理结果并返回给渲染进程
success: false, console.log(438, result);
error: error.message, if (result.length) {
}; event.reply("select-folder-result", result[0]);
}
});
// 在文件夹中显示并选中文件
ipcMain.on("show-file-in-folder", async (event, filePath) => {
try {
shell.showItemInFolder(filePath);
return { success: true };
} catch (error) {
return {
success: false,
error: error.message,
};
} }
// if (!result.canceled && result.filePaths.length > 0) {
// // event.reply:向发送消息的渲染进程返回结果
// event.reply("select-folder-result", result.filePaths[0]);
// } else {
// // 用户取消选择,返回 null
// event.reply("select-folder-result", null);
// }
},
);
}); });
if (process.env.WEBPACK_DEV_SERVER_URL) { if (process.env.WEBPACK_DEV_SERVER_URL) {
......
...@@ -25,9 +25,6 @@ const { getVersion, setApi, getHostApi } = require("@/server/utils/store"); ...@@ -25,9 +25,6 @@ const { getVersion, setApi, getHostApi } = require("@/server/utils/store");
function getCurrentVersion() { function getCurrentVersion() {
const version = getVersion(); const version = getVersion();
// console.log("version", version);
return version; return version;
} }
...@@ -117,62 +114,7 @@ export default { ...@@ -117,62 +114,7 @@ export default {
res.json({ code: 500, msg: e }); res.json({ code: 500, msg: e });
} }
}, },
// downloadBySubOrderNumber: async (req, res) => {
// const params = req.body;
// const token = req.headers["jwt-token"];
// console.log(72, params);
// const urlArr = {
// CN: "factory/podJomallOrderProductCn/downloadDesignImages",
// US: "factory/podJomallOrderProductUs/downloadDesignImages",
// GC: "factory/podJomallOrder/downloadByProduction",
// };
// let url = urlArr[params.orderType];
// console.log(126, url);
// try {
// let { data } = await axios.post(`${env}/${url}`, [...params.ids], {
// headers: { "jwt-token": token },
// });
// let files = [];
// console.log(81, data);
// if (data.code === 200) {
// if (!data.data) data.data = [data.message];
// files = data.data;
// files = files.map((el) => {
// return { url: `${fileEnv}${el}` };
// // return { url: `${el}` };
// });
// if (params.device === 1) {
// downloadImage(files)
// .then((data) => {
// res.json({ code: 200, data });
// })
// .catch((err) => {
// res.json({ code: 500, msg: err });
// });
// } else {
// downloadOtherImage(files)
// .then((data) => {
// console.log(77, data);
// res.json({ code: 200, data });
// })
// .catch((err) => {
// res.json({ code: 500, msg: err });
// });
// }
// } else {
// res.json(data);
// }
// } catch (err) {
// console.log(err);
// res.json({ code: 500, msg: err });
// }
// },
downloadBySubOrderNumber: async (req, res) => { downloadBySubOrderNumber: async (req, res) => {
env = getHostApi().apiApiHost; env = getHostApi().apiApiHost;
const params = req.body; const params = req.body;
...@@ -207,7 +149,7 @@ export default { ...@@ -207,7 +149,7 @@ export default {
const downloadFunc = const downloadFunc =
params.device === 1 ? downloadImage : downloadOtherImage; params.device === 1 ? downloadImage : downloadOtherImage;
const result = await downloadFunc(files); const result = await downloadFunc(files);
res.setHeader("X-Backend-Request-URL", url); res.setHeader("Request-URL", url);
res.json({ code: 200, data: result }); res.json({ code: 200, data: result });
} catch (err) { } catch (err) {
...@@ -251,7 +193,7 @@ export default { ...@@ -251,7 +193,7 @@ export default {
}, },
headers: { "jwt-token": token }, headers: { "jwt-token": token },
}); });
res.setHeader("X-Backend-Request-URL", url); res.setHeader("Act-Request-URL", `${env}/${url}`);
res.json(data); res.json(data);
} catch (err) { } catch (err) {
res.json({ code: 500, msg: err }); res.json({ code: 500, msg: err });
......
...@@ -5,8 +5,8 @@ var path = require("path"); ...@@ -5,8 +5,8 @@ var path = require("path");
var request = require("request"); var request = require("request");
var uuid = require("uuid"); var uuid = require("uuid");
const compressing = require("compressing"); const compressing = require("compressing");
const { PassThrough } = require("stream");
const { getVersion } = require("@/server/utils/store"); const { getVersion, getLocation } = require("@/server/utils/store");
function getCurrentVersion() { function getCurrentVersion() {
const version = getVersion(); const version = getVersion();
...@@ -138,7 +138,6 @@ export const downloadImage = (list) => { ...@@ -138,7 +138,6 @@ export const downloadImage = (list) => {
process.cwd(), process.cwd(),
`./${getCurrentVersion()}/Input/`, `./${getCurrentVersion()}/Input/`,
); );
// 创建目录(如果不存在) // 创建目录(如果不存在)
if (!fs.existsSync(dirPath)) { if (!fs.existsSync(dirPath)) {
fs.mkdirSync(dirPath, { recursive: true }); fs.mkdirSync(dirPath, { recursive: true });
...@@ -157,6 +156,10 @@ export const downloadImage = (list) => { ...@@ -157,6 +156,10 @@ export const downloadImage = (list) => {
// 并行处理所有下载 // 并行处理所有下载
const downloadPromises = downloadItems.map((item) => { const downloadPromises = downloadItems.map((item) => {
return new Promise(async (itemResolve) => { return new Promise(async (itemResolve) => {
const downloadPath = getLocation();
let downloadwriteStream = null;
// 创建分流
const passThrough = new PassThrough();
try { try {
const archiveExtensions = [ const archiveExtensions = [
".zip", ".zip",
...@@ -180,7 +183,12 @@ export const downloadImage = (list) => { ...@@ -180,7 +183,12 @@ export const downloadImage = (list) => {
// 使用流下载文件 // 使用流下载文件
const writeStream = fs.createWriteStream(filePath); const writeStream = fs.createWriteStream(filePath);
const requestStream = request(item.url); const requestStream = request(item.url);
if (downloadPath) {
const downloadFile = path.join(downloadPath, fileName);
downloadwriteStream = fs.createWriteStream(downloadFile);
}
// 添加超时处理 // 添加超时处理
requestStream.on("response", (response) => { requestStream.on("response", (response) => {
...@@ -192,7 +200,9 @@ export const downloadImage = (list) => { ...@@ -192,7 +200,9 @@ export const downloadImage = (list) => {
}); });
// 使用管道连接请求流和写入流 // 使用管道连接请求流和写入流
requestStream.pipe(writeStream); requestStream.pipe(passThrough);
passThrough.pipe(writeStream);
downloadwriteStream && passThrough.pipe(downloadwriteStream);
// 等待下载完成 // 等待下载完成
await new Promise((resolveStream) => { await new Promise((resolveStream) => {
...@@ -201,6 +211,13 @@ export const downloadImage = (list) => { ...@@ -201,6 +211,13 @@ export const downloadImage = (list) => {
console.error(`下载失败: ${item.url}`, err); console.error(`下载失败: ${item.url}`, err);
resolveStream(); resolveStream();
}); });
if (downloadwriteStream) {
downloadwriteStream.on("finish", resolveStream);
downloadwriteStream.on("error", (err) => {
console.error(`下载失败: ${item.url}`, err);
resolveStream();
});
}
}); });
if (isArchive) { if (isArchive) {
......
const Store = require("electron-store"); const Store = require("electron-store");
const store = new Store({ watch: false }); const store = new Store({ watch: true });
// 导出 store 实例(新增:方便外部获取实例进行监听)
module.exports = { module.exports = {
//存储当前打印驱动版本 //存储当前打印驱动版本
...@@ -36,4 +37,14 @@ module.exports = { ...@@ -36,4 +37,14 @@ module.exports = {
store.set("desktoBoard", version); store.set("desktoBoard", version);
}, },
getBoard: () => store.get("desktoBoard") || 3, getBoard: () => store.get("desktoBoard") || 3,
//下载位置
setLocation: (version) => {
store.set("downloadLocation", version);
},
getLocation: () => store.get("downloadLocation") || "",
//设备
setDesktopDevice: (version) => {
store.set("desktopDevice", version);
},
getDesktopDevice: () => store.get("desktopDevice") || "1",
}; };
import axios from "axios"; import axios from "axios";
import Vue from "vue"; import Vue from "vue";
import { Loading } from "element-ui"; import { Loading } from "element-ui";
const { getHostApi } = require("@/server/utils/store");
// create an axios instance // create an axios instance
const service = axios.create({ const service = axios.create({
...@@ -27,6 +28,17 @@ function endLoading() { ...@@ -27,6 +28,17 @@ function endLoading() {
service.interceptors.request.use( service.interceptors.request.use(
(config) => { (config) => {
const user = Vue.prototype.$dataStore.get("user"); const user = Vue.prototype.$dataStore.get("user");
// const isFullUrl = /^https?:\/\//i.test(config.url);
// console.log(33, config.url);
// if (!isFullUrl) {
// if (process.env.NODE_ENV === "development") {
// config.baseURL = "http://localhost:3000";
// } else {
// config.baseURL = config.baseURL = getHostApi().apiApiHost;
// }
// }
if (user) { if (user) {
config.headers["jwt-token"] = user.token; config.headers["jwt-token"] = user.token;
} }
...@@ -37,7 +49,7 @@ service.interceptors.request.use( ...@@ -37,7 +49,7 @@ service.interceptors.request.use(
endLoading(); endLoading();
// do something with request error // do something with request error
return Promise.reject(error); return Promise.reject(error);
} },
); );
// Add a response interceptor // Add a response interceptor
...@@ -97,7 +109,7 @@ service.interceptors.response.use( ...@@ -97,7 +109,7 @@ service.interceptors.response.use(
endLoading(); endLoading();
// do something with response error // do something with response error
return Promise.reject(error); return Promise.reject(error);
} },
); );
export default service; export default service;
......
...@@ -236,7 +236,7 @@ function insertAfter(newElement, targetElement) { ...@@ -236,7 +236,7 @@ function insertAfter(newElement, targetElement) {
} }
export function extractValue(str) { export function extractValue(str) {
console.log(238, str); // console.log(238, str);
// 如果字符串不包含分隔符,返回空字符串 // 如果字符串不包含分隔符,返回空字符串
if (!str.includes("_")) return ""; if (!str.includes("_")) return "";
......
<script> <script>
import bus from "@/bus"; import bus from "@/bus";
// import PrintDialog from "./printDialog.vue"; // import PrintDialog from "./printDialog.vue";
import { getProductCnByFactorySubOrderNumberApi } from "../../../api/index.js";
import { ipcRenderer } from "electron"; import { ipcRenderer } from "electron";
// import { grid } from "../data"; // import { grid } from "../data";
import pkg from "../../../../package.json"; import pkg from "../../../../package.json";
...@@ -11,7 +12,15 @@ import { extractValue } from "@/utils/index.js"; ...@@ -11,7 +12,15 @@ import { extractValue } from "@/utils/index.js";
const uuid = require("uuid"); const uuid = require("uuid");
const fs = require("fs"); const fs = require("fs");
import { mapState } from "vuex"; import { mapState } from "vuex";
const { getVersion, getHostApi, setApi } = require("@/server/utils/store"); const {
getVersion,
getHostApi,
setApi,
getLocation,
setLocation,
setDesktopDevice,
getDesktopDevice,
} = require("@/server/utils/store");
export default { export default {
components: { UpdateDialog }, components: { UpdateDialog },
...@@ -28,7 +37,7 @@ export default { ...@@ -28,7 +37,7 @@ export default {
data() { data() {
return { return {
checkList: [], checkList: [],
desktopDevice: 1, desktopDevice: getDesktopDevice(),
desktoVersion: getVersion(), desktoVersion: getVersion(),
checked: false, checked: false,
isFirst: true, isFirst: true,
...@@ -69,6 +78,7 @@ export default { ...@@ -69,6 +78,7 @@ export default {
detail: null, detail: null,
config: getHostApi(), config: getHostApi(),
newApiApiHost: "", newApiApiHost: "",
downloadLocation: getLocation(),
selectBgColor: "#ececec", selectBgColor: "#ececec",
predefineColors: [ predefineColors: [
"#ff4500", "#ff4500",
...@@ -488,7 +498,28 @@ export default { ...@@ -488,7 +498,28 @@ export default {
// console.log(423, this.productionNo); // console.log(423, this.productionNo);
try { try {
//查找生产单号信息 // const urlArr = {
// CN: {
// field: "factorySubOrderNumber",
// fn: getProductCnByFactorySubOrderNumberApi,
// },
// US: {
// field: "factorySubOrderNumber",
// fn:
// "factory/podJomallOrderProductUs/getProductUsByFactorySubOrderNumber",
// },
// GC: {
// field: "thirdSubOrderNumber",
// fn:
// "factory/podJomallOrderProduct/getSubOrderByThirdSubOrderNumber",
// },
// };
// //查找生产单号信息
// const findByPodProductionNo = getProductCnByFactorySubOrderNumberApi(
// this.productionNo,
// );
// console.log(494, findByPodProductionNo);
const findByPodProductionNo = await this.$api.post( const findByPodProductionNo = await this.$api.post(
"/findByPodProductionNo", "/findByPodProductionNo",
{ {
...@@ -620,9 +651,11 @@ export default { ...@@ -620,9 +651,11 @@ export default {
this.selectedOption = command; // 根据选中的项来更新 selectedOption this.selectedOption = command; // 根据选中的项来更新 selectedOption
}, },
changeDesktopDeviceFn(value) { changeDesktopDeviceFn(value) {
setDesktopDevice(value);
this.$store.commit("changeDesktopDevice", value); this.$store.commit("changeDesktopDevice", value);
this.$store.commit("changeImgList", []); this.$store.commit("changeImgList", []);
// console.log(347, store.state.desktopDevice);
// this.$dataStore.set("desktopDevice", value);
}, },
changeDesktoVersionFn(value) { changeDesktoVersionFn(value) {
// console.log(553, value); // console.log(553, value);
...@@ -733,33 +766,24 @@ export default { ...@@ -733,33 +766,24 @@ export default {
return null; return null;
} }
}, },
changeLocation() {
// setLocation("");
ipcRenderer.send("request-select-folder");
const handleFolderResult = (event, folderPath) => {
// 移除监听(关键:避免多次点击后触发多次回调)
ipcRenderer.removeListener("select-folder-result", handleFolderResult);
// 3. 如果用户未取消选择,赋值给 downloadLocation
if (folderPath) {
this.downloadLocation = folderPath;
// setLocation("");
setLocation(folderPath);
}
};
// async cleanDirectorySync() { // 4. 监听主进程返回的结果消息
// let dirPath = path.join(process.cwd(), `./print/Input`); ipcRenderer.on("select-folder-result", handleFolderResult);
// if (!fs.existsSync(dirPath)) { },
// console.log(`目录不存在: ${dirPath}`);
// return;
// }
// try {
// const files = fs.readdirSync(dirPath, { withFileTypes: true });
// for (const file of files) {
// const fullPath = path.join(dirPath, file.name);
// if (
// file.isFile() &&
// path.extname(file.name).toLowerCase() === ".png"
// ) {
// await fs.promises.unlink(fullPath);
// console.log(`已删除文件: ${fullPath}`);
// }
// }
// } catch (error) {
// if (error.code === "ENOENT") {
// console.warn(`目录不存在: ${dirPath}`);
// } else {
// console.error(`清理错误: ${error.message}`);
// }
// }
// },
}, },
}; };
</script> </script>
...@@ -790,8 +814,10 @@ export default { ...@@ -790,8 +814,10 @@ export default {
> >
<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-option label="惠立彩" :value="3"></el-option>
</el-select> </el-select>
</div> </div>
<div style="display: flex;" v-if="desktopDevice != 3">
<div class="selectInput"> <div class="selectInput">
<div>驱动版本:</div> <div>驱动版本:</div>
...@@ -806,7 +832,11 @@ export default { ...@@ -806,7 +832,11 @@ export default {
</el-select> </el-select>
</div> </div>
<el-dropdown trigger="click" @command="command" :hide-on-click="false"> <el-dropdown
trigger="click"
@command="command"
:hide-on-click="false"
>
<el-button style="height: 100%;margin-right: 0" size="small" <el-button style="height: 100%;margin-right: 0" size="small"
>{{ grid[selectGridIndex]?.label }} >{{ grid[selectGridIndex]?.label }}
</el-button> </el-button>
...@@ -927,11 +957,16 @@ export default { ...@@ -927,11 +957,16 @@ export default {
</el-button> </el-button>
</el-form-item> </el-form-item>
<div> <div>
<el-form-item label="工厂域名"> <el-form-item label="下载位置">
<div style="display: flex; ">
<el-input <el-input
v-model="newApiApiHost" :title="downloadLocation"
@input="changeApi" v-model="downloadLocation"
:disabled="true"
style="flex: 1;margin-right: 5px;"
></el-input> ></el-input>
<el-button @click="changeLocation">浏览</el-button>
</div>
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>
...@@ -947,6 +982,7 @@ export default { ...@@ -947,6 +982,7 @@ export default {
</el-tooltip> </el-tooltip>
</el-popover> </el-popover>
</div> </div>
</div>
<div class="center-input"> <div class="center-input">
<el-input <el-input
@keyup.enter.native="getDataInfo" @keyup.enter.native="getDataInfo"
...@@ -1011,7 +1047,7 @@ export default { ...@@ -1011,7 +1047,7 @@ export default {
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
<el-dropdown-item command="logout">退出登录</el-dropdown-item> <el-dropdown-item command="logout">退出登录</el-dropdown-item>
<el-dropdown-item command="cache">清除缓存</el-dropdown-item> <!-- <el-dropdown-item command="cache">清除缓存</el-dropdown-item> -->
</el-dropdown-menu> </el-dropdown-menu>
</el-dropdown> </el-dropdown>
</div> </div>
...@@ -1141,7 +1177,7 @@ export default { ...@@ -1141,7 +1177,7 @@ export default {
::v-deep { ::v-deep {
.el-select .el-input { .el-select .el-input {
max-width: 80px; max-width: 90px;
} }
} }
} }
......
...@@ -497,7 +497,7 @@ export default { ...@@ -497,7 +497,7 @@ export default {
</div> </div>
<div v-show="dialogShow" class="print-content"> <div v-show="dialogShow" class="print-content">
<el-form <el-form
label-width="170px" label-width="150px"
label-position="left" label-position="left"
size="mini" size="mini"
:model="printSetting" :model="printSetting"
...@@ -1030,13 +1030,13 @@ export default { ...@@ -1030,13 +1030,13 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
padding-top: 0; padding-top: 0;
border-top: 1px solid #ececec; // border-top: 1px solid #ececec;
} }
.detail-setting { .detail-setting {
border-top: 2px solid transparent; border-top: 1px solid #ececec;
display: flex; display: flex;
background-color: #ececec; background-color: #fff;
align-items: flex-start; align-items: flex-start;
flex: 1; flex: 1;
flex-shrink: 0; flex-shrink: 0;
...@@ -1051,7 +1051,7 @@ export default { ...@@ -1051,7 +1051,7 @@ export default {
position: relative; position: relative;
margin: 15px 0; margin: 15px 0;
display: inline-block; display: inline-block;
left: -15px; // left: -15px;
} }
} }
...@@ -1067,7 +1067,7 @@ export default { ...@@ -1067,7 +1067,7 @@ export default {
width: 100%; width: 100%;
height: 100%; height: 100%;
box-sizing: border-box; box-sizing: border-box;
padding: 15px 30px; padding-right: 10px;
background-color: white; background-color: white;
} }
...@@ -1092,8 +1092,10 @@ export default { ...@@ -1092,8 +1092,10 @@ export default {
} }
.info-item { .info-item {
margin-right: 10px;
span { span {
margin-right: 5px; margin-right: 5px;
margin-left: 0px;
} }
} }
...@@ -1115,15 +1117,15 @@ export default { ...@@ -1115,15 +1117,15 @@ export default {
z-index: 4; z-index: 4;
bottom: 0; bottom: 0;
height: calc(100% - 51px); height: calc(100% - 50px);
.print-content { .print-content {
background: #ececec; background: #fff;
border-left: 1px solid gray; border-left: 1px solid gray;
height: 100%; height: 100%;
padding: 10px; padding: 10px;
display: flex; display: flex;
width: 430px; width: 350px;
flex-direction: column; flex-direction: column;
} }
} }
......
...@@ -18,6 +18,7 @@ const uuid = require("uuid"); ...@@ -18,6 +18,7 @@ const uuid = require("uuid");
import { mapState } from "vuex"; import { mapState } from "vuex";
const img = require("../../../assets/bg_tshirt_shadow.png"); const img = require("../../../assets/bg_tshirt_shadow.png");
const { getDesktopDevice } = require("@/server/utils/store");
export default { export default {
components: { components: {
...@@ -176,7 +177,7 @@ export default { ...@@ -176,7 +177,7 @@ export default {
imgHeight: 0, imgHeight: 0,
selectImgList: [], selectImgList: [],
bus: 0, bus: 0,
deviceStoreWatcher: "",
showImgSetting: true, showImgSetting: true,
printDialogShow: true, printDialogShow: true,
parentHeight: 0, parentHeight: 0,
...@@ -201,6 +202,7 @@ export default { ...@@ -201,6 +202,7 @@ export default {
leftPosition: "22%", leftPosition: "22%",
topPosition: "52%", topPosition: "52%",
currentImgData: null, currentImgData: null,
newDesktopDevice: getDesktopDevice(),
}; };
}, },
watch: { watch: {
...@@ -279,6 +281,7 @@ export default { ...@@ -279,6 +281,7 @@ export default {
} }
}, },
desktopDevice(newValue) { desktopDevice(newValue) {
this.newDesktopDevice = getDesktopDevice();
if (newValue == 2) { if (newValue == 2) {
this.imgList = []; this.imgList = [];
this.selectImgList = []; this.selectImgList = [];
...@@ -375,12 +378,6 @@ export default { ...@@ -375,12 +378,6 @@ export default {
}, },
deep: true, deep: true,
}, },
selectImgList: {
handler(value) {
console.log(value);
},
deep: true,
},
}, },
methods: { methods: {
// 重构为可手动触发的方法 // 重构为可手动触发的方法
...@@ -1250,20 +1247,19 @@ export default { ...@@ -1250,20 +1247,19 @@ export default {
this.listenUpload(); this.listenUpload();
}); });
document.addEventListener("click", this.handleClick); document.addEventListener("click", this.handleClick);
// 在页面加载完成后自动初始化
// window.addEventListener("load", () => {
// initCrop(); // 初始化裁剪功能
// }); // 初始化裁剪功能
}, },
beforeDestroy() { beforeDestroy() {
// 销毁组件时移除事件监听器 // 销毁组件时移除事件监听器
document.removeEventListener("click", this.handleClick); document.removeEventListener("click", this.handleClick);
if (this.deviceStoreWatcher) {
this.deviceStoreWatcher(); // 调用 electron-store 监听器返回的函数,移除监听
}
}, },
}; };
</script> </script>
<template> <template>
<div class="page-main"> <div class="page-main" v-if="newDesktopDevice != 3">
<img-setting <img-setting
ref="imgSetting" ref="imgSetting"
@ev="ev" @ev="ev"
...@@ -1672,7 +1668,7 @@ export default { ...@@ -1672,7 +1668,7 @@ export default {
:style="{ 'z-index': isView ? '0' : '-1' }" :style="{ 'z-index': isView ? '0' : '-1' }"
/> />
</div> </div>
</div> <div>
<print-dialog <print-dialog
:isDisabled="isView" :isDisabled="isView"
:visible="printDialogShow" :visible="printDialogShow"
...@@ -1681,10 +1677,14 @@ export default { ...@@ -1681,10 +1677,14 @@ export default {
> >
<i <i
@click="changePrintDialogShow" @click="changePrintDialogShow"
:class="!printDialogShow ? 'el-icon-arrow-left' : 'el-icon-arrow-right'" :class="
!printDialogShow ? 'el-icon-arrow-left' : 'el-icon-arrow-right'
"
></i> ></i>
</print-dialog> </print-dialog>
</div> </div>
</div>
</div>
</template> </template>
<style lang="less" scoped> <style lang="less" scoped>
......
...@@ -39,7 +39,7 @@ export default { ...@@ -39,7 +39,7 @@ export default {
if (height > 1000) { if (height > 1000) {
proportion = 1.7; proportion = 1.7;
} else if (height > 900 && height <= 1000) { } else if (height > 900 && height <= 1000) {
proportion = 1.5; proportion = 1.1;
} else { } else {
proportion = 1; proportion = 1;
} }
......
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