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() {
contextIsolation: false, // ^1.4.0 版本必须关闭
},
});
win.maximize();
const template = [
{
label: "文件",
......@@ -141,7 +141,7 @@ async function createWindow() {
submenu: [
{
label: "工厂域名",
label: "工厂域名设置",
click: function() {
(async function() {
try {
......@@ -283,7 +283,7 @@ async function createWindow() {
},
},
{
label: "清除账号缓存",
label: "清除缓存",
click: function() {
(async function() {
try {
......@@ -310,7 +310,7 @@ async function createWindow() {
modal: true,
width: 450,
height: 300,
title: "清除账号缓存",
title: "清除缓存",
resizable: false,
autoHideMenuBar: true,
menuBarVisible: false,
......@@ -417,32 +417,28 @@ async function createWindow() {
if (newWindow) newWindow.webContents.send("getProductionNoInfo", v);
});
ipcMain.on("open-file", async (event, filePath) => {
try {
// shell.openPath 会用系统默认应用打开文件
const result = await shell.openItem(filePath);
console.log(result);
return { success: true };
} catch (error) {
return {
success: false,
error: error.message,
};
}
});
// 在文件夹中显示并选中文件
ipcMain.on("show-file-in-folder", async (event, filePath) => {
try {
shell.showItemInFolder(filePath);
return { success: true };
} catch (error) {
return {
success: false,
error: error.message,
};
}
ipcMain.on("request-select-folder", (event) => {
// 打开文件夹选择对话框(Electron 6.x 回调写法,更稳定)
dialog.showOpenDialog(
{
properties: ["openDirectory"], // 仅允许选择文件夹
title: "选择下载保存位置",
},
(result) => {
// 处理结果并返回给渲染进程
console.log(438, result);
if (result.length) {
event.reply("select-folder-result", result[0]);
}
// 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) {
......
......@@ -25,9 +25,6 @@ const { getVersion, setApi, getHostApi } = require("@/server/utils/store");
function getCurrentVersion() {
const version = getVersion();
// console.log("version", version);
return version;
}
......@@ -117,62 +114,7 @@ export default {
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) => {
env = getHostApi().apiApiHost;
const params = req.body;
......@@ -207,7 +149,7 @@ export default {
const downloadFunc =
params.device === 1 ? downloadImage : downloadOtherImage;
const result = await downloadFunc(files);
res.setHeader("X-Backend-Request-URL", url);
res.setHeader("Request-URL", url);
res.json({ code: 200, data: result });
} catch (err) {
......@@ -251,7 +193,7 @@ export default {
},
headers: { "jwt-token": token },
});
res.setHeader("X-Backend-Request-URL", url);
res.setHeader("Act-Request-URL", `${env}/${url}`);
res.json(data);
} catch (err) {
res.json({ code: 500, msg: err });
......
......@@ -5,8 +5,8 @@ var path = require("path");
var request = require("request");
var uuid = require("uuid");
const compressing = require("compressing");
const { getVersion } = require("@/server/utils/store");
const { PassThrough } = require("stream");
const { getVersion, getLocation } = require("@/server/utils/store");
function getCurrentVersion() {
const version = getVersion();
......@@ -138,7 +138,6 @@ export const downloadImage = (list) => {
process.cwd(),
`./${getCurrentVersion()}/Input/`,
);
// 创建目录(如果不存在)
if (!fs.existsSync(dirPath)) {
fs.mkdirSync(dirPath, { recursive: true });
......@@ -157,6 +156,10 @@ export const downloadImage = (list) => {
// 并行处理所有下载
const downloadPromises = downloadItems.map((item) => {
return new Promise(async (itemResolve) => {
const downloadPath = getLocation();
let downloadwriteStream = null;
// 创建分流
const passThrough = new PassThrough();
try {
const archiveExtensions = [
".zip",
......@@ -180,7 +183,12 @@ export const downloadImage = (list) => {
// 使用流下载文件
const writeStream = fs.createWriteStream(filePath);
const requestStream = request(item.url);
if (downloadPath) {
const downloadFile = path.join(downloadPath, fileName);
downloadwriteStream = fs.createWriteStream(downloadFile);
}
// 添加超时处理
requestStream.on("response", (response) => {
......@@ -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) => {
......@@ -201,6 +211,13 @@ export const downloadImage = (list) => {
console.error(`下载失败: ${item.url}`, err);
resolveStream();
});
if (downloadwriteStream) {
downloadwriteStream.on("finish", resolveStream);
downloadwriteStream.on("error", (err) => {
console.error(`下载失败: ${item.url}`, err);
resolveStream();
});
}
});
if (isArchive) {
......
const Store = require("electron-store");
const store = new Store({ watch: false });
const store = new Store({ watch: true });
// 导出 store 实例(新增:方便外部获取实例进行监听)
module.exports = {
//存储当前打印驱动版本
......@@ -36,4 +37,14 @@ module.exports = {
store.set("desktoBoard", version);
},
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 Vue from "vue";
import { Loading } from "element-ui";
const { getHostApi } = require("@/server/utils/store");
// create an axios instance
const service = axios.create({
......@@ -27,6 +28,17 @@ function endLoading() {
service.interceptors.request.use(
(config) => {
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) {
config.headers["jwt-token"] = user.token;
}
......@@ -37,7 +49,7 @@ service.interceptors.request.use(
endLoading();
// do something with request error
return Promise.reject(error);
}
},
);
// Add a response interceptor
......@@ -97,7 +109,7 @@ service.interceptors.response.use(
endLoading();
// do something with response error
return Promise.reject(error);
}
},
);
export default service;
......
......@@ -236,7 +236,7 @@ function insertAfter(newElement, targetElement) {
}
export function extractValue(str) {
console.log(238, str);
// console.log(238, str);
// 如果字符串不包含分隔符,返回空字符串
if (!str.includes("_")) return "";
......
<script>
import bus from "@/bus";
// import PrintDialog from "./printDialog.vue";
import { getProductCnByFactorySubOrderNumberApi } from "../../../api/index.js";
import { ipcRenderer } from "electron";
// import { grid } from "../data";
import pkg from "../../../../package.json";
......@@ -11,7 +12,15 @@ import { extractValue } from "@/utils/index.js";
const uuid = require("uuid");
const fs = require("fs");
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 {
components: { UpdateDialog },
......@@ -28,7 +37,7 @@ export default {
data() {
return {
checkList: [],
desktopDevice: 1,
desktopDevice: getDesktopDevice(),
desktoVersion: getVersion(),
checked: false,
isFirst: true,
......@@ -69,6 +78,7 @@ export default {
detail: null,
config: getHostApi(),
newApiApiHost: "",
downloadLocation: getLocation(),
selectBgColor: "#ececec",
predefineColors: [
"#ff4500",
......@@ -488,7 +498,28 @@ export default {
// console.log(423, this.productionNo);
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(
"/findByPodProductionNo",
{
......@@ -620,9 +651,11 @@ export default {
this.selectedOption = command; // 根据选中的项来更新 selectedOption
},
changeDesktopDeviceFn(value) {
setDesktopDevice(value);
this.$store.commit("changeDesktopDevice", value);
this.$store.commit("changeImgList", []);
// console.log(347, store.state.desktopDevice);
// this.$dataStore.set("desktopDevice", value);
},
changeDesktoVersionFn(value) {
// console.log(553, value);
......@@ -733,33 +766,24 @@ export default {
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() {
// let dirPath = path.join(process.cwd(), `./print/Input`);
// 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}`);
// }
// }
// },
// 4. 监听主进程返回的结果消息
ipcRenderer.on("select-folder-result", handleFolderResult);
},
},
};
</script>
......@@ -790,162 +814,174 @@ export default {
>
<el-option label="兄弟" :value="1"></el-option>
<el-option label="其他" :value="2"></el-option>
<el-option label="惠立彩" :value="3"></el-option>
</el-select>
</div>
<div class="selectInput">
<div>驱动版本:</div>
<div style="display: flex;" v-if="desktopDevice != 3">
<div class="selectInput">
<div>驱动版本:</div>
<el-select
v-model="desktoVersion"
@change="changeDesktoVersionFn"
placeholder="请选择版本"
>
<el-option label="2.0" value="print"></el-option>
<el-option label="4.0" value="print4.0"></el-option>
<el-option label="600" value="print600"></el-option>
</el-select>
</div>
<el-select
v-model="desktoVersion"
@change="changeDesktoVersionFn"
placeholder="请选择版本"
<el-dropdown
trigger="click"
@command="command"
:hide-on-click="false"
>
<el-option label="2.0" value="print"></el-option>
<el-option label="4.0" value="print4.0"></el-option>
<el-option label="600" value="print600"></el-option>
</el-select>
</div>
<el-button style="height: 100%;margin-right: 0" size="small"
>{{ grid[selectGridIndex]?.label }}
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="i" v-for="(it, i) in grid" :key="i">
{{ it.label }}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-tooltip content="图片">
<el-upload
accept=".png"
action=""
:show-file-list="false"
multiple
:before-upload="uploadImage"
style="height: 100%;"
>
<el-button style="height: 100%;margin:0 8px" size="small">
<i class="el-icon-picture" style="font-size: 15px;"></i>
</el-button>
</el-upload>
</el-tooltip>
<el-dropdown trigger="click" @command="command" :hide-on-click="false">
<el-button style="height: 100%;margin-right: 0" size="small"
>{{ grid[selectGridIndex]?.label }}
</el-button>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="i" v-for="(it, i) in grid" :key="i">
{{ it.label }}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
<el-tooltip content="背景色">
<el-color-picker
style="margin-right: 3px"
v-model="selectBgColor"
@change="setBg"
color-format="hex"
:predefine="predefineColors"
>
</el-color-picker>
</el-tooltip>
<el-tooltip content="图片">
<el-upload
accept=".png"
action=""
:show-file-list="false"
multiple
:before-upload="uploadImage"
style="height: 100%;"
<el-popover
width="350"
:offset="-120"
trigger="click"
placement="bottom"
>
<el-button style="height: 100%;margin:0 8px" size="small">
<i class="el-icon-picture" style="font-size: 15px;"></i>
</el-button>
</el-upload>
</el-tooltip>
<el-tooltip content="背景色">
<el-color-picker
style="margin-right: 3px"
v-model="selectBgColor"
@change="setBg"
color-format="hex"
:predefine="predefineColors"
>
</el-color-picker>
</el-tooltip>
<el-popover
width="350"
:offset="-120"
trigger="click"
placement="bottom"
>
<div class="setting-form">
<el-form
:model="setting"
label-position="left"
label-width="70px"
size="small"
>
<el-form-item prop="setting" label="网格显示">
<el-select
style="width:100%"
@change="(e) => settingChange('gridShow', e)"
clearable
v-model="setting.gridShow"
>
<el-option :value="1" label="未缩放的网格"></el-option>
<el-option :value="0" label="无"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="gridSpacing" label="单位">
<el-select
style="width:100%"
@change="(e) => settingChange('unit', e)"
clearable
v-model="setting.unit"
>
<el-option value="mm" label="mm"></el-option>
<el-option value="inch" label="inch"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="gridSpacing" label="网格间隔">
<el-select
style="width:100%"
@change="(e) => settingChange('gridSpacing', e)"
clearable
v-model="setting.gridSpacing"
>
<el-option
v-if="setting.unit === 'mm'"
:value="20"
:label="`20 ${setting.unit}`"
></el-option>
<el-option
v-if="setting.unit === 'mm'"
:value="10"
:label="`10 ${setting.unit}`"
></el-option>
<el-option
v-if="setting.unit === 'inch'"
:value="1"
:label="`1 ${setting.unit}`"
></el-option>
<el-option
v-if="setting.unit === 'inch'"
:value="0.5"
:label="`0.5 ${setting.unit}`"
></el-option>
</el-select>
</el-form-item>
<el-form-item prop="language" label="语言设置">
<el-select
style="width:100%"
@change="(e) => settingChange('language', e)"
clearable
v-model="setting.language"
>
<el-option value="cn" label="中文"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="language" label="版本号">
<b>{{ pkg.version || "" }}</b>
<el-button
@click="checkUpdate"
style="margin-left: 15px"
type="text"
>检查更新
</el-button>
</el-form-item>
<div>
<el-form-item label="工厂域名">
<el-input
v-model="newApiApiHost"
@input="changeApi"
></el-input>
<div class="setting-form">
<el-form
:model="setting"
label-position="left"
label-width="70px"
size="small"
>
<el-form-item prop="setting" label="网格显示">
<el-select
style="width:100%"
@change="(e) => settingChange('gridShow', e)"
clearable
v-model="setting.gridShow"
>
<el-option :value="1" label="未缩放的网格"></el-option>
<el-option :value="0" label="无"></el-option>
</el-select>
</el-form-item>
</div>
</el-form>
</div>
<el-tooltip slot="reference" content="设置">
<el-button style="margin-right: 8px" size="small">
<img
style="width: 18px;height: 18px"
src="@/static/icon/shezhi.png"
alt=""
/>
</el-button>
</el-tooltip>
</el-popover>
<el-form-item prop="gridSpacing" label="单位">
<el-select
style="width:100%"
@change="(e) => settingChange('unit', e)"
clearable
v-model="setting.unit"
>
<el-option value="mm" label="mm"></el-option>
<el-option value="inch" label="inch"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="gridSpacing" label="网格间隔">
<el-select
style="width:100%"
@change="(e) => settingChange('gridSpacing', e)"
clearable
v-model="setting.gridSpacing"
>
<el-option
v-if="setting.unit === 'mm'"
:value="20"
:label="`20 ${setting.unit}`"
></el-option>
<el-option
v-if="setting.unit === 'mm'"
:value="10"
:label="`10 ${setting.unit}`"
></el-option>
<el-option
v-if="setting.unit === 'inch'"
:value="1"
:label="`1 ${setting.unit}`"
></el-option>
<el-option
v-if="setting.unit === 'inch'"
:value="0.5"
:label="`0.5 ${setting.unit}`"
></el-option>
</el-select>
</el-form-item>
<el-form-item prop="language" label="语言设置">
<el-select
style="width:100%"
@change="(e) => settingChange('language', e)"
clearable
v-model="setting.language"
>
<el-option value="cn" label="中文"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="language" label="版本号">
<b>{{ pkg.version || "" }}</b>
<el-button
@click="checkUpdate"
style="margin-left: 15px"
type="text"
>检查更新
</el-button>
</el-form-item>
<div>
<el-form-item label="下载位置">
<div style="display: flex; ">
<el-input
:title="downloadLocation"
v-model="downloadLocation"
:disabled="true"
style="flex: 1;margin-right: 5px;"
></el-input>
<el-button @click="changeLocation">浏览</el-button>
</div>
</el-form-item>
</div>
</el-form>
</div>
<el-tooltip slot="reference" content="设置">
<el-button style="margin-right: 8px" size="small">
<img
style="width: 18px;height: 18px"
src="@/static/icon/shezhi.png"
alt=""
/>
</el-button>
</el-tooltip>
</el-popover>
</div>
</div>
<div class="center-input">
<el-input
......@@ -1011,7 +1047,7 @@ export default {
<el-dropdown-menu slot="dropdown">
<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>
</div>
......@@ -1141,7 +1177,7 @@ export default {
::v-deep {
.el-select .el-input {
max-width: 80px;
max-width: 90px;
}
}
}
......
......@@ -497,7 +497,7 @@ export default {
</div>
<div v-show="dialogShow" class="print-content">
<el-form
label-width="170px"
label-width="150px"
label-position="left"
size="mini"
:model="printSetting"
......@@ -1030,13 +1030,13 @@ export default {
display: flex;
flex-direction: column;
padding-top: 0;
border-top: 1px solid #ececec;
// border-top: 1px solid #ececec;
}
.detail-setting {
border-top: 2px solid transparent;
border-top: 1px solid #ececec;
display: flex;
background-color: #ececec;
background-color: #fff;
align-items: flex-start;
flex: 1;
flex-shrink: 0;
......@@ -1051,7 +1051,7 @@ export default {
position: relative;
margin: 15px 0;
display: inline-block;
left: -15px;
// left: -15px;
}
}
......@@ -1067,7 +1067,7 @@ export default {
width: 100%;
height: 100%;
box-sizing: border-box;
padding: 15px 30px;
padding-right: 10px;
background-color: white;
}
......@@ -1092,8 +1092,10 @@ export default {
}
.info-item {
margin-right: 10px;
span {
margin-right: 5px;
margin-left: 0px;
}
}
......@@ -1115,15 +1117,15 @@ export default {
z-index: 4;
bottom: 0;
height: calc(100% - 51px);
height: calc(100% - 50px);
.print-content {
background: #ececec;
background: #fff;
border-left: 1px solid gray;
height: 100%;
padding: 10px;
display: flex;
width: 430px;
width: 350px;
flex-direction: column;
}
}
......
......@@ -18,6 +18,7 @@ const uuid = require("uuid");
import { mapState } from "vuex";
const img = require("../../../assets/bg_tshirt_shadow.png");
const { getDesktopDevice } = require("@/server/utils/store");
export default {
components: {
......@@ -176,7 +177,7 @@ export default {
imgHeight: 0,
selectImgList: [],
bus: 0,
deviceStoreWatcher: "",
showImgSetting: true,
printDialogShow: true,
parentHeight: 0,
......@@ -201,6 +202,7 @@ export default {
leftPosition: "22%",
topPosition: "52%",
currentImgData: null,
newDesktopDevice: getDesktopDevice(),
};
},
watch: {
......@@ -279,6 +281,7 @@ export default {
}
},
desktopDevice(newValue) {
this.newDesktopDevice = getDesktopDevice();
if (newValue == 2) {
this.imgList = [];
this.selectImgList = [];
......@@ -375,12 +378,6 @@ export default {
},
deep: true,
},
selectImgList: {
handler(value) {
console.log(value);
},
deep: true,
},
},
methods: {
// 重构为可手动触发的方法
......@@ -1250,20 +1247,19 @@ export default {
this.listenUpload();
});
document.addEventListener("click", this.handleClick);
// 在页面加载完成后自动初始化
// window.addEventListener("load", () => {
// initCrop(); // 初始化裁剪功能
// }); // 初始化裁剪功能
},
beforeDestroy() {
// 销毁组件时移除事件监听器
document.removeEventListener("click", this.handleClick);
if (this.deviceStoreWatcher) {
this.deviceStoreWatcher(); // 调用 electron-store 监听器返回的函数,移除监听
}
},
};
</script>
<template>
<div class="page-main">
<div class="page-main" v-if="newDesktopDevice != 3">
<img-setting
ref="imgSetting"
@ev="ev"
......@@ -1672,18 +1668,22 @@ export default {
:style="{ 'z-index': isView ? '0' : '-1' }"
/>
</div>
<div>
<print-dialog
:isDisabled="isView"
:visible="printDialogShow"
:imgList="imgList"
:byPlatenSize="gridWH.v"
>
<i
@click="changePrintDialogShow"
:class="
!printDialogShow ? 'el-icon-arrow-left' : 'el-icon-arrow-right'
"
></i>
</print-dialog>
</div>
</div>
<print-dialog
:isDisabled="isView"
:visible="printDialogShow"
:imgList="imgList"
:byPlatenSize="gridWH.v"
>
<i
@click="changePrintDialogShow"
:class="!printDialogShow ? 'el-icon-arrow-left' : 'el-icon-arrow-right'"
></i>
</print-dialog>
</div>
</template>
......
......@@ -39,7 +39,7 @@ export default {
if (height > 1000) {
proportion = 1.7;
} else if (height > 900 && height <= 1000) {
proportion = 1.5;
proportion = 1.1;
} else {
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