优化bug
This commit is contained in:
+90
-5
@@ -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
@@ -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
@@ -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.$;
|
||||||
|
|||||||
@@ -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
@@ -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
Binary file not shown.
|
Before Width: | Height: | Size: 24 KiB |
BIN
Binary file not shown.
|
Before Width: | Height: | Size: 16 KiB |
Reference in New Issue
Block a user