优化bug

This commit is contained in:
24kycj
2025-11-15 13:11:46 +08:00
parent 533739104e
commit 1d42f6b74b
8 changed files with 626 additions and 1075 deletions
+90 -5
View File
@@ -779,7 +779,8 @@
const remote = require('@electron/remote') const remote = require('@electron/remote')
var path = require('path'); var path = require('path');
const exePath = !remote.app.isPackaged ? process.cwd() : path.dirname(process.execPath) // 使用用户数据目录,避免写入需要管理员权限
const exePath = remote.app.getPath('userData')
const { ipcRenderer } = require('electron') const { ipcRenderer } = require('electron')
const { dialog } = require('@electron/remote') const { dialog } = require('@electron/remote')
var jrQrcode = require('jr-qrcode'); var jrQrcode = require('jr-qrcode');
@@ -2234,6 +2235,24 @@
}); });
} }
*/ */
op.frontData.push({
"type" : 2,
"Text" : item.get("text"),
"FontFamily" : item.get("fontFamily"),
"FontSize" : parseInt(item.get("fontSize")),
"FontColor" : "#000000",
"FontBackgroudColor" : item.get("textBackgroundColor"),
"Bold" : item.get("fontWeight") == "bold",
"Underline" : item.get("underline"),
"Italic" : item.get("fontStyle") == "italic",
"Strikeout" : item.get("linethrough"),
"x" : parseInt((item.get("left") - background_image1.left).toFixed(0)),
"y" : parseInt((item.get("top") - background_image1.top).toFixed(0)),
"h" : parseInt((item.get("scaleY") * item.get("height")).toFixed(0)),
"w" : parseInt((item.get("scaleX") * item.get("width")).toFixed(0)),
"rotate" : parseInt(item.get("angle").toFixed(0)),
"circleCenter" : objs1[idx - 1].circleCenter
});
} else if (type == 4) { } else if (type == 4) {
//out_text //out_text
let xy = getAbsoluteXY(item); let xy = getAbsoluteXY(item);
@@ -2375,6 +2394,24 @@
}); });
} }
*/ */
op.frontData.push({
"type" : 2,
"Text" : item.get("text"),
"FontFamily" : item.get("fontFamily"),
"FontSize" : parseInt(item.get("fontSize")),
"FontColor" : "#000000",
"FontBackgroudColor" : item.get("textBackgroundColor"),
"Bold" : item.get("fontWeight") == "bold",
"Underline" : item.get("underline"),
"Italic" : item.get("fontStyle") == "italic",
"Strikeout" : item.get("linethrough"),
"x" : parseInt((item.get("left") - background_image1.left).toFixed(0)),
"y" : parseInt((item.get("top") - background_image1.top).toFixed(0)),
"h" : parseInt((item.get("scaleY") * item.get("height")).toFixed(0)),
"w" : parseInt((item.get("scaleX") * item.get("width")).toFixed(0)),
"rotate" : parseInt(item.get("angle").toFixed(0)),
"circleCenter" : objs2[idx - 1].circleCenter
});
} else if (type == 4) { } else if (type == 4) {
let xy = getAbsoluteXY(item); let xy = getAbsoluteXY(item);
op.backData.push({ op.backData.push({
@@ -2834,6 +2871,24 @@
}); });
} }
*/ */
op.frontData.push({
"type" : 2,
"Text" : item.get("text"),
"FontFamily" : item.get("fontFamily"),
"FontSize" : parseInt(item.get("fontSize")),
"FontColor" : "#000000",
"FontBackgroudColor" : item.get("textBackgroundColor"),
"Bold" : item.get("fontWeight") == "bold",
"Underline" : item.get("underline"),
"Italic" : item.get("fontStyle") == "italic",
"Strikeout" : item.get("linethrough"),
"x" : parseInt((item.get("left") - background_image1.left).toFixed(0)),
"y" : parseInt((item.get("top") - background_image1.top).toFixed(0)),
"h" : parseInt((item.get("scaleY") * item.get("height")).toFixed(0)),
"w" : parseInt((item.get("scaleX") * item.get("width")).toFixed(0)),
"rotate" : parseInt(item.get("angle").toFixed(0)),
"circleCenter" : objs1[idx - 1].circleCenter
});
} else if (type == 4) { } else if (type == 4) {
//out_text //out_text
let xy = getAbsoluteXY(item); let xy = getAbsoluteXY(item);
@@ -2975,6 +3030,24 @@
}); });
} }
*/ */
op.frontData.push({
"type" : 2,
"Text" : item.get("text"),
"FontFamily" : item.get("fontFamily"),
"FontSize" : parseInt(item.get("fontSize")),
"FontColor" : "#000000",
"FontBackgroudColor" : item.get("textBackgroundColor"),
"Bold" : item.get("fontWeight") == "bold",
"Underline" : item.get("underline"),
"Italic" : item.get("fontStyle") == "italic",
"Strikeout" : item.get("linethrough"),
"x" : parseInt((item.get("left") - background_image1.left).toFixed(0)),
"y" : parseInt((item.get("top") - background_image1.top).toFixed(0)),
"h" : parseInt((item.get("scaleY") * item.get("height")).toFixed(0)),
"w" : parseInt((item.get("scaleX") * item.get("width")).toFixed(0)),
"rotate" : parseInt(item.get("angle").toFixed(0)),
"circleCenter" : objs2[idx - 1].circleCenter
});
} else if (type == 4) { } else if (type == 4) {
let xy = getAbsoluteXY(item); let xy = getAbsoluteXY(item);
op.backData.push({ op.backData.push({
@@ -5029,12 +5102,13 @@
recordState(); recordState();
} }
function selectCircleText() { function selectCircleText() {
let idx = getIndex(canvas.getActiveObject());
$("#circle_text_control").show(); $("#circle_text_control").show();
$("#circle_text_color").val(canvas.getActiveObject().get("fill")); $("#circle_text_color").val(canvas.getActiveObject().get("fill"));
$("#circle_text_back_color").val(canvas.getActiveObject().get("textBackgroundColor") == "" ? '#ffffff' : canvas.getActiveObject().get("textBackgroundColor")); $("#circle_text_back_color").val(canvas.getActiveObject().get("textBackgroundColor") == "" ? '#ffffff' : canvas.getActiveObject().get("textBackgroundColor"));
circle_text_size.setValue(canvas.getActiveObject().get("fontSize") - 10); circle_text_size.setValue(canvas.getActiveObject().get("fontSize") - 10);
circle_text_diameter.setValue(canvas.getActiveObject().get("diameter")-500); circle_text_diameter.setValue(canvas.getActiveObject().get("diameter")-500);
// $("#circle_text_center").prop("checked", true); $("#circle_text_center").prop("checked", objs[idx - 1].circleCenter ? 'checked' : '');
$("#circle_text_text").val(canvas.getActiveObject().get("text")); $("#circle_text_text").val(canvas.getActiveObject().get("text"));
$("#circle_text_font_family").val(canvas.getActiveObject().get("fontFamily")); $("#circle_text_font_family").val(canvas.getActiveObject().get("fontFamily"));
@@ -6042,6 +6116,15 @@
} }
recordState(); recordState();
}); });
$("#circle_text_center").click(function () {
let idx = getIndex(canvas.getActiveObject());
if ($(this).prop("checked")) {
objs[idx - 1].circleCenter = 1;
} else {
objs[idx - 1].circleCenter = 0;
}
recordState();
});
$("#delete").click(function () { $("#delete").click(function () {
let actObjs = canvas.getActiveObjects(); let actObjs = canvas.getActiveObjects();
let allObjs = canvas.getObjects(); let allObjs = canvas.getObjects();
@@ -6219,7 +6302,9 @@
}); });
canvas1.on("object:moving", function (e) { canvas1.on("object:moving", function (e) {
let obj = canvas.getActiveObject() let obj = canvas.getActiveObject()
if (objs[getIndex(e.target) - 1].type && objs[getIndex(e.target) - 1].type ===11&&$("#circle_text_center").prop("checked")) { let idx = getIndex(e.target);
// 添加边界检查,避免访问 undefined
if (idx > 0 && idx <= objs.length && objs[idx - 1] && objs[idx - 1].type && objs[idx - 1].type === 11 && $("#circle_text_center").prop("checked")) {
let pointer = { let pointer = {
x: obj.left, x: obj.left,
y: obj.top y: obj.top
@@ -6489,7 +6574,7 @@
event.target._clearCache(); event.target._clearCache();
// $("#out_text_size").val(event.target.fontSize); // $("#out_text_size").val(event.target.fontSize);
canvas1.renderAll(); canvas1.renderAll();
} else if (objs[getIndex(event.target) - 1].type == 10) { } else if (getIndex(event.target) > 0 && getIndex(event.target) <= objs.length && objs[getIndex(event.target) - 1] && objs[getIndex(event.target) - 1].type == 10) {
event.target.fontSize *= event.target.scaleX; event.target.fontSize *= event.target.scaleX;
event.target.fontSize = event.target.fontSize.toFixed(0); event.target.fontSize = event.target.fontSize.toFixed(0);
event.target.scaleX = 1; event.target.scaleX = 1;
@@ -6497,7 +6582,7 @@
event.target._clearCache(); event.target._clearCache();
// $("#count_size").val(event.target.fontSize); // $("#count_size").val(event.target.fontSize);
canvas1.renderAll(); canvas1.renderAll();
} else if (objs[getIndex(event.target) - 1].type == 5) { } else if (getIndex(event.target) > 0 && getIndex(event.target) <= objs.length && objs[getIndex(event.target) - 1] && objs[getIndex(event.target) - 1].type == 5) {
canvas1.getActiveObject().set("width", canvas1.getActiveObject().get("width") * canvas1.getActiveObject().get("scaleX")); canvas1.getActiveObject().set("width", canvas1.getActiveObject().get("width") * canvas1.getActiveObject().get("scaleX"));
canvas1.getActiveObject().set("height", canvas1.getActiveObject().get("height") * canvas1.getActiveObject().get("scaleY")); canvas1.getActiveObject().set("height", canvas1.getActiveObject().get("height") * canvas1.getActiveObject().get("scaleY"));
canvas1.getActiveObject().set("scaleX", 1); canvas1.getActiveObject().set("scaleX", 1);
+2 -1
View File
@@ -751,7 +751,8 @@
const remote = require('@electron/remote') const remote = require('@electron/remote')
var path = require('path'); var path = require('path');
const exePath = !remote.app.isPackaged ? process.cwd() : path.dirname(process.execPath) // 使用用户数据目录,避免写入需要管理员权限
const exePath = remote.app.getPath('userData')
const { ipcRenderer } = require('electron') const { ipcRenderer } = require('electron')
const { dialog } = require('@electron/remote') const { dialog } = require('@electron/remote')
var jrQrcode = require('jr-qrcode') var jrQrcode = require('jr-qrcode')
+3 -2
View File
@@ -52,7 +52,9 @@
let fs = require('fs') let fs = require('fs')
const remote = require('@electron/remote') const remote = require('@electron/remote')
var path = require('path'); var path = require('path');
const exePath = !remote.app.isPackaged ? process.cwd() : path.dirname(process.execPath) const { ipcRenderer } = require('electron')
// 使用用户数据目录,避免写入需要管理员权限
const exePath = remote.app.getPath('userData')
function get_filename(path) { function get_filename(path) {
let arr = path.split("/"); let arr = path.split("/");
if (arr.length < 2) { if (arr.length < 2) {
@@ -71,7 +73,6 @@
} }
return t[str][s_lan]; return t[str][s_lan];
} }
const { ipcRenderer } = require('electron')
const { dialog } = require('@electron/remote') const { dialog } = require('@electron/remote')
layui.use(['layer', 'form', 'jquery'], function () { layui.use(['layer', 'form', 'jquery'], function () {
var $ = layui.$; var $ = layui.$;
+8 -4
View File
@@ -16,8 +16,9 @@ app.on("will-finish-launching", () => {
preFilePath = process.argv[1] === "." ? "" : process.argv[1]; preFilePath = process.argv[1] === "." ? "" : process.argv[1];
} }
}); });
const exePath = !app.isPackaged ? process.cwd() : path.dirname(process.execPath) // 使用用户数据目录,避免管理员权限问题
console.log(exePath); const exePath = app.getPath('userData')
console.log('User data path:', exePath);
function createWindow() { function createWindow() {
// Create the browser window. // Create the browser window.
let size = require("electron").screen.getPrimaryDisplay().workAreaSize; let size = require("electron").screen.getPrimaryDisplay().workAreaSize;
@@ -77,8 +78,11 @@ function createWindow() {
event.reply("sys-lan", app.getLocale()); event.reply("sys-lan", app.getLocale());
}); });
ipcMain.on("open-help-file", (event) => { ipcMain.on("open-help-file", (event) => {
let fullpath = path.join(exePath, 'help', 'User Manual.pdf') // help 文件在应用目录,不在用户数据目录
child_process.exec(`start "" "${fullpath}"`); let helpPath = !app.isPackaged
? path.join(process.cwd(), 'help', 'User Manual.pdf')
: path.join(path.dirname(process.execPath), 'resources', 'help', 'User Manual.pdf')
child_process.exec(`start "" "${helpPath}"`);
}); });
// 监听从渲染进程发送来的请求 // 监听从渲染进程发送来的请求
+32 -20
View File
@@ -4,17 +4,12 @@
"description": "tools of design soon files", "description": "tools of design soon files",
"main": "main.js", "main": "main.js",
"scripts": { "scripts": {
"start": "electron-forge start", "start": "electron .",
"build": "node electron-vue/build.js && electron-builder", "build": "electron-builder",
"builder": "electron-builder", "build:win": "electron-builder --win --x64",
"packmain": "node electron-vue/build.js", "build:mac": "electron-builder --mac --x64",
"build:dir": "node electron-vue/build.js && electron-builder --dir", "build:linux": "electron-builder --linux --x64",
"build:clean": "cross-env BUILD_TARGET=clean node electron-vue/build.js", "build:all": "electron-builder -mwl"
"build:web": "cross-env BUILD_TARGET=web node electron-vue/build.js",
"package:x64": "electron-forge package --arch=x64",
"package:arm64": "electron-forge package --arch=arm64",
"merge": "node ./merge.js",
"package:universal": "npm run package:x64 && npm run package:arm64 && npm run merge"
}, },
"build": { "build": {
"productName": "SoonDesign", "productName": "SoonDesign",
@@ -45,6 +40,9 @@
} }
], ],
"asar": true, "asar": true,
"asarUnpack": [
"lib/**"
],
"win": { "win": {
"icon": "public/images/favicon.ico", "icon": "public/images/favicon.ico",
"requestedExecutionLevel": "asInvoker", "requestedExecutionLevel": "asInvoker",
@@ -56,19 +54,33 @@
] ]
} }
] ]
},
"mac": {
"target": [
{ "target": "dmg", "arch": ["x64"] },
{ "target": "zip", "arch": ["x64"] }
],
"category": "public.app-category.utilities",
"icon": "public/images/favicon.icns"
},
"linux": {
"target": [
{ "target": "AppImage", "arch": ["x64"] },
{ "target": "deb", "arch": ["x64"] }
],
"category": "Utility",
"icon": "public/images/IconA256.png",
"desktop": {
"Name": "SoonDesign",
"Comment": "tools of design soon files"
}
} }
}, },
"electronPackagerConfig": { "electronPackagerConfig": {
"packageManager": "npm", "packageManager": "npm",
"icon": "./public/images/favicon.ico" "icon": "./public/images/favicon.ico"
}, },
"config": {
"forge": {
"packagerConfig": {
"icon": "./public/images/favicon.icns"
}
}
},
"repository": "", "repository": "",
"keywords": [ "keywords": [
"Electron", "Electron",
@@ -80,8 +92,8 @@
"author": "", "author": "",
"license": "MIT", "license": "MIT",
"devDependencies": { "devDependencies": {
"@electron-forge/cli": "^6.2.0", "electron": "^25.0.0",
"electron": "^25.0.0" "electron-builder": "^23.3.3"
}, },
"dependencies": { "dependencies": {
"@electron/remote": "^2.0.8", "@electron/remote": "^2.0.8",
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

+491 -1043
View File
File diff suppressed because it is too large Load Diff