@@ -144,12 +144,13 @@
@click="changePasswordType()"
>
-
{{ userI18n[selectUserI18n].inputPasswordTip }}
-
{{ userI18n[selectUserI18n].Email }}
+
{{ userI18n[selectUserI18n].Email }}
* {
@@ -1015,6 +1017,9 @@ export default defineComponent({
// margin-top: 4rem;
.email_last_step_bottom {
padding: 0 40px;
+ @media (max-width: 767px) {
+ padding: 0 2rem;
+ }
}
.email_last_step_block {
padding: 10px;
@@ -1028,6 +1033,10 @@ export default defineComponent({
font-size: 2.2rem;
font-weight: bold;
color: #030303;
+ @media (max-width: 767px) {
+ font-size: 1.2rem;
+ margin-left: .5rem;
+ }
}
.email_last_step_block_icon {
cursor: pointer;
@@ -1229,6 +1238,9 @@ export default defineComponent({
font-weight: bold;
color: #000;
cursor: pointer;
+ @media (max-width: 767px) {
+ font-size: 1rem;
+ }
}
.email_last_step_des {
@@ -1237,16 +1249,25 @@ export default defineComponent({
justify-content: space-between;
margin-top: 4rem;
margin-bottom: 2rem;
-
+ @media (max-width: 767px) {
+ margin-top: 2rem;
+ margin-bottom: 1rem;
+ }
.sent_email_content {
font-size: 1.8rem;
font-weight: bold;
color: #a5b0c2;
+ @media (max-width: 767px) {
+ font-size: 1.2rem;
+ }
}
.email_tip_content {
font-size: 1.4rem;
color: #030303;
+ @media (max-width: 767px) {
+ font-size: 1.2rem;
+ }
}
}
}
From cc0127f195fadf149cf2c73de7f358401f1c631a Mon Sep 17 00:00:00 2001
From: zhangyahui
Date: Thu, 15 Jan 2026 10:38:53 +0800
Subject: [PATCH 3/8] =?UTF-8?q?bugfix:=20=20=E6=95=99=E8=82=B2=E7=89=88?=
=?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E9=A1=B5=E9=9D=A2=E5=88=86=E9=A1=B5?=
=?UTF-8?q?=E5=99=A8=E6=B6=88=E5=A4=B1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Administrator/SE/allUser/index.vue | 1053 +++++++++--------
1 file changed, 534 insertions(+), 519 deletions(-)
diff --git a/src/component/Administrator/SE/allUser/index.vue b/src/component/Administrator/SE/allUser/index.vue
index ebfe2ca1..c92f1c14 100644
--- a/src/component/Administrator/SE/allUser/index.vue
+++ b/src/component/Administrator/SE/allUser/index.vue
@@ -1,27 +1,22 @@
-
-
-
-
-
{{ $t('admin.CreateTime') }}:
-
-
-
-
-
-
-
-
-
-
{{ $t('admin.UserName') }}:
-
-
-
-
-
-
- {{ $t('admin.search') }}
-
-
- {{ $t('admin.add') }}
-
-
- {{ $t('admin.DownloadTemplate') }}
-
-
- {{ $t('admin.UploadTemplate') }}
-
-
- {{ $t('admin.ExportAccountData') }}
-
-
- {{ $t('admin.Delete') }}
-
-
-
-
- {{ $t('admin.NearlyAYear') }}
-
-
- {{ $t('admin.LastMonth') }}
-
-
- {{ $t('admin.LastWeek') }}
-
-
+
+
+
+ {{ $t('admin.search') }}
-
-
+ {{ $t('admin.add') }}
+
+
+ {{ $t('admin.DownloadTemplate') }}
+
+
+ {{ $t('admin.UploadTemplate') }}
+
+
+ {{ $t('admin.ExportAccountData') }}
+
+
+ {{ $t('admin.Delete') }}
+
+
+
+
+ {{ $t('admin.NearlyAYear') }}
+
+
+ {{ $t('admin.LastMonth') }}
+
+
+ {{ $t('admin.LastWeek') }}
+
+
+
+
+
+
+
+
-
-
-
- {{ $t('admin.Edit') }}
-
-
- {{ $t('admin.Delete') }}
-
-
-
-
-
-
-
+
+
+
+
+
\ No newline at end of file
+.all-user {
+ .admin_table_content {
+ :deep(.ant-table-wrapper) {
+ overflow: hidden ;
+ }
+ }
+}
+
From fc28d78357684d0aa1a86d70ab17928525f6df62 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Tue, 20 Jan 2026 16:48:34 +0800
Subject: [PATCH 4/8] =?UTF-8?q?=E5=A4=84=E7=90=86generate=E7=94=9F?=
=?UTF-8?q?=E6=88=90=E5=A4=B1=E8=B4=A5=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/HomePage/Generate.vue | 4 +++-
src/views/HomeView/library.vue | 3 +++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/component/HomePage/Generate.vue b/src/component/HomePage/Generate.vue
index f89105fa..b6702ba0 100644
--- a/src/component/HomePage/Generate.vue
+++ b/src/component/HomePage/Generate.vue
@@ -924,7 +924,9 @@ export default defineComponent({
},
onCancel() {}
})
- }
+ }else{
+ this.fileList = this.fileList.filter((item: any) => item.imgUrl)
+ }
})
},
setGenerate(dataList: any) {
diff --git a/src/views/HomeView/library.vue b/src/views/HomeView/library.vue
index 2e4eefcd..6fc54b80 100644
--- a/src/views/HomeView/library.vue
+++ b/src/views/HomeView/library.vue
@@ -1806,6 +1806,8 @@ export default defineComponent({
}
});
+ }else{
+ this.generateList[selectCodeStr] = this.generateList[selectCodeStr].filter((item: any) => item.imgUrl)
}
});
},
@@ -2405,6 +2407,7 @@ export default defineComponent({
display: flex;
align-items: center;
justify-content: center;
+ position: absolute;
}
&:hover .img_item_hover{
// display: block;
From ef1c1c349d375ae368c7ad125462ad22e2015ea3 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Wed, 21 Jan 2026 16:27:59 +0800
Subject: [PATCH 5/8] =?UTF-8?q?=E7=94=BB=E5=B8=83=E5=9B=BE=E7=89=87?=
=?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=80=92=E5=BD=92=E8=AE=BE=E7=BD=AEminio?=
=?UTF-8?q?=E5=9C=B0=E5=9D=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../CanvasEditor/managers/CanvasManager.js | 17 ++++++++++++++-
src/component/Detail/canvas/index.vue | 19 ++++++++++++++---
src/component/home/design/tools.vue | 19 ++++++++++++++---
.../home/tools/deReconstruction/index.vue | 21 ++++++++++++++-----
src/component/toolsPage/index.vue | 19 ++++++++++++++---
5 files changed, 80 insertions(+), 15 deletions(-)
diff --git a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
index f17c8d75..256f2e2f 100644
--- a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
+++ b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
@@ -993,7 +993,21 @@ export class CanvasManager {
throw new Error("获取画布JSON失败");
}
}
-
+/** 修复JSON数据中的ID丢失问题 */
+FixJsonIdLoss(json){
+ const layers = json?.layers || [];
+ const objects = json?.canvas?.objects || [];
+ layers.forEach((layer) => {
+ if(!layer.fabricObjects?.length && !layer.fabricObject){
+ const obj = objects?.find((o) => o.layerId === layer.id);
+ if(!obj) return;
+ layer.fabricObjects = [{
+ id: obj.id,
+ type: obj.type,
+ }]
+ }
+ })
+ }
loadJSON(json, calllBack) {
console.log("加载画布JSON数据:", json);
@@ -1006,6 +1020,7 @@ export class CanvasManager {
// 解析JSON字符串
try {
const parsedJson = JSON.parse(json);
+ this.FixJsonIdLoss(parsedJson);
this.canvasWidth.value = parsedJson.canvasWidth || this.width;
this.canvasHeight.value = parsedJson.canvasHeight || this.height;
this.canvasColor.value = parsedJson.canvasColor || this.backgroundColor;
diff --git a/src/component/Detail/canvas/index.vue b/src/component/Detail/canvas/index.vue
index 4b14e789..bc6ecf33 100644
--- a/src/component/Detail/canvas/index.vue
+++ b/src/component/Detail/canvas/index.vue
@@ -265,9 +265,22 @@ export default defineComponent({
let canvasJSON = detailDom?.editCanvas?.getJSON()
let canvasData = JSON.parse(canvasJSON)
if(!canvasData)return resolve()
- canvasData.canvas.objects.forEach((objectsItem:any) => {
- if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src)
- });
+ function deepProcessObjects(data:any, callback:any) {
+ if (!Array.isArray(data)) return data;
+ return data.map(item => {
+ callback(item)
+ const processedItem = {...item};
+ if (processedItem.objects &&
+ Array.isArray(processedItem.objects) &&
+ processedItem.objects.length > 0) {
+ processedItem.objects = deepProcessObjects(processedItem.objects, callback);
+ }
+ return processedItem;
+ });
+ }
+ canvasData = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
+ if(item.type == 'image')item.minioUrl = getMinioUrl(item.src)
+ })
let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
let formData = new FormData();
formData.append("file", blob, "data.json");
diff --git a/src/component/home/design/tools.vue b/src/component/home/design/tools.vue
index 7c77be77..ea741e7f 100644
--- a/src/component/home/design/tools.vue
+++ b/src/component/home/design/tools.vue
@@ -335,9 +335,22 @@ export default defineComponent({
let canvasData = JSON.parse(canvasJSON)
if(!canvasData)return
- canvasData.canvas.objects.forEach((objectsItem:any) => {
- if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src)
- });
+ function deepProcessObjects(data:any, callback:any) {
+ if (!Array.isArray(data)) return data;
+ return data.map(item => {
+ callback(item)
+ const processedItem = {...item};
+ if (processedItem.objects &&
+ Array.isArray(processedItem.objects) &&
+ processedItem.objects.length > 0) {
+ processedItem.objects = deepProcessObjects(processedItem.objects, callback);
+ }
+ return processedItem;
+ });
+ }
+ canvasData = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
+ if(item.type == 'image')item.minioUrl = getMinioUrl(item.src)
+ })
let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
let formData = new FormData();
formData.append("file", blob, "data.json");
diff --git a/src/component/home/tools/deReconstruction/index.vue b/src/component/home/tools/deReconstruction/index.vue
index e6d7c772..0d2c1cd6 100644
--- a/src/component/home/tools/deReconstruction/index.vue
+++ b/src/component/home/tools/deReconstruction/index.vue
@@ -206,11 +206,22 @@ export default defineComponent({
if(!canvasJSON)return
if(!store.state.Workspace.probjects?.id)return
let canvasData = JSON.parse(canvasJSON)
- console.log(canvasData)
- canvasData.canvas.objects.forEach((objectsItem:any) => {
- if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src)
-
- });
+ function deepProcessObjects(data:any, callback:any) {
+ if (!Array.isArray(data)) return data;
+ return data.map(item => {
+ callback(item)
+ const processedItem = {...item};
+ if (processedItem.objects &&
+ Array.isArray(processedItem.objects) &&
+ processedItem.objects.length > 0) {
+ processedItem.objects = deepProcessObjects(processedItem.objects, callback);
+ }
+ return processedItem;
+ });
+ }
+ canvasData = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
+ if(item.type == 'image')item.minioUrl = getMinioUrl(item.src)
+ })
let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
let formData = new FormData();
formData.append("file", blob, "data.json");
diff --git a/src/component/toolsPage/index.vue b/src/component/toolsPage/index.vue
index 8b3e72ed..a4ffa083 100644
--- a/src/component/toolsPage/index.vue
+++ b/src/component/toolsPage/index.vue
@@ -165,9 +165,22 @@ export default defineComponent({
time = setTimeout(()=>{
let canvasData = JSON.parse(canvasJSON)
if(!canvasData)return
- canvasData.canvas.objects.forEach((objectsItem:any) => {
- if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src)
- });
+ function deepProcessObjects(data:any, callback:any) {
+ if (!Array.isArray(data)) return data;
+ return data.map(item => {
+ callback(item)
+ const processedItem = {...item};
+ if (processedItem.objects &&
+ Array.isArray(processedItem.objects) &&
+ processedItem.objects.length > 0) {
+ processedItem.objects = deepProcessObjects(processedItem.objects, callback);
+ }
+ return processedItem;
+ });
+ }
+ canvasData = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
+ if(item.type == 'image')item.minioUrl = getMinioUrl(item.src)
+ })
let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
let formData = new FormData();
formData.append("file", blob, "data.json");
From 40c9bb11908bc196bb13d08586cdc7c0932cd29a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com>
Date: Wed, 21 Jan 2026 16:31:07 +0800
Subject: [PATCH 6/8] =?UTF-8?q?json=E4=BF=AE=E5=A4=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../CanvasEditor/managers/CanvasManager.js | 24 ++++++++++++++++++-
.../Canvas/CanvasEditor/utils/LayerSort.js | 13 ++++++----
2 files changed, 31 insertions(+), 6 deletions(-)
diff --git a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
index f17c8d75..87ceb8d3 100644
--- a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
+++ b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
@@ -1006,6 +1006,7 @@ export class CanvasManager {
// 解析JSON字符串
try {
const parsedJson = JSON.parse(json);
+ this.FixJsonIdLoss(parsedJson);
this.canvasWidth.value = parsedJson.canvasWidth || this.width;
this.canvasHeight.value = parsedJson.canvasHeight || this.height;
this.canvasColor.value = parsedJson.canvasColor || this.backgroundColor;
@@ -1083,7 +1084,7 @@ export class CanvasManager {
// console.log("图层关联验证结果:", isValidate);
// 排序
// 使用LayerSort工具重新排列画布对象(如果可用)
- await this?.layerManager?.layerSort?.rearrangeObjects();
+ await this?.layerManager?.layerSort?.rearrangeObjectsAsync();
this.layerManager.activeLayerId.value = this.layers.value[0]
.children?.length
@@ -1125,6 +1126,27 @@ export class CanvasManager {
throw new Error("解析JSON失败,请检查输入格式: " + error.message);
}
}
+ /** 修复JSON数据中的ID丢失问题 */
+ FixJsonIdLoss(json){
+ const layers = json?.layers || [];
+ const objects = json?.canvas?.objects || [];
+ layers.forEach((layer) => {
+ if(!layer.fabricObjects?.[0]?.id && !layer.fabricObject?.id){
+ const obj = objects?.find((o) => o.layerId === layer.id);
+ if(obj) {
+ layer.fabricObjects = [{
+ id: obj.id,
+ type: obj.type,
+ }]
+ }
+ }
+ })
+ // 排序
+ objects.sort((a, b) => {
+ if (a.isBackground) return -1;
+ if (b.isBackground) return 1;
+ })
+ }
/**
* 缩放红绿图模式内容以适应当前画布大小
diff --git a/src/component/Canvas/CanvasEditor/utils/LayerSort.js b/src/component/Canvas/CanvasEditor/utils/LayerSort.js
index fba7372b..9b1d670a 100644
--- a/src/component/Canvas/CanvasEditor/utils/LayerSort.js
+++ b/src/component/Canvas/CanvasEditor/utils/LayerSort.js
@@ -71,14 +71,17 @@ export class LayerSort {
// if (!layer.visible) {
// continue;
// }
-
+ let id = layer.fabricObject?.id || layer.fabricObjects?.[0]?.id || null;
// 处理不同类型的图层
- if (layer.isBackground && layer.fabricObject) {
+ if (layer.isBackground && id) {
// 背景图层对象放在最底层
- zIndexMap.set(layer.fabricObject.id, currentZIndex++);
- } else if (layer.isFixed && layer.fabricObject) {
+ zIndexMap.set(id, currentZIndex++);
+ } else if (layer.isFixed && id) {
// 固定图层对象
- zIndexMap.set(layer.fabricObject.id, currentZIndex++);
+ zIndexMap.set(id, currentZIndex++);
+ } else if (layer.isFixedOther && id) {
+ // 其他固定图层对象
+ zIndexMap.set(id, currentZIndex++);
} else if (!layer.isBackground && !layer.isFixed) {
// 普通图层
currentZIndex = this.processLayerObjects(
From 8c4f4c206b5a3721389c29f6c79234a087ae04dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com>
Date: Wed, 21 Jan 2026 16:38:10 +0800
Subject: [PATCH 7/8] 111
---
.../CanvasEditor/managers/CanvasManager.js | 17 +----------------
1 file changed, 1 insertion(+), 16 deletions(-)
diff --git a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
index 2b079427..5ba9c81d 100644
--- a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
+++ b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
@@ -993,21 +993,6 @@ export class CanvasManager {
throw new Error("获取画布JSON失败");
}
}
-/** 修复JSON数据中的ID丢失问题 */
-FixJsonIdLoss(json){
- const layers = json?.layers || [];
- const objects = json?.canvas?.objects || [];
- layers.forEach((layer) => {
- if(!layer.fabricObjects?.length && !layer.fabricObject){
- const obj = objects?.find((o) => o.layerId === layer.id);
- if(!obj) return;
- layer.fabricObjects = [{
- id: obj.id,
- type: obj.type,
- }]
- }
- })
- }
loadJSON(json, calllBack) {
console.log("加载画布JSON数据:", json);
@@ -1019,7 +1004,7 @@ FixJsonIdLoss(json){
}
// 解析JSON字符串
try {
- const parsedJson = JSON.parse(json);
+ const parsedJson = window.testCanvasJson || JSON.parse(json);
this.FixJsonIdLoss(parsedJson);
this.canvasWidth.value = parsedJson.canvasWidth || this.width;
this.canvasHeight.value = parsedJson.canvasHeight || this.height;
From 513eac9e499a31d269fcec775a0c7fb1f02ef91e Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Wed, 21 Jan 2026 16:46:51 +0800
Subject: [PATCH 8/8] fix
---
src/component/Detail/canvas/index.vue | 2 +-
src/component/home/design/tools.vue | 2 +-
src/component/home/tools/deReconstruction/index.vue | 2 +-
src/component/toolsPage/index.vue | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/component/Detail/canvas/index.vue b/src/component/Detail/canvas/index.vue
index bc6ecf33..4db82763 100644
--- a/src/component/Detail/canvas/index.vue
+++ b/src/component/Detail/canvas/index.vue
@@ -278,7 +278,7 @@ export default defineComponent({
return processedItem;
});
}
- canvasData = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
+ canvasData.canvas.objects = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
if(item.type == 'image')item.minioUrl = getMinioUrl(item.src)
})
let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
diff --git a/src/component/home/design/tools.vue b/src/component/home/design/tools.vue
index ea741e7f..69722c19 100644
--- a/src/component/home/design/tools.vue
+++ b/src/component/home/design/tools.vue
@@ -348,7 +348,7 @@ export default defineComponent({
return processedItem;
});
}
- canvasData = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
+ canvasData.canvas.objects = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
if(item.type == 'image')item.minioUrl = getMinioUrl(item.src)
})
let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
diff --git a/src/component/home/tools/deReconstruction/index.vue b/src/component/home/tools/deReconstruction/index.vue
index 0d2c1cd6..2c8577f2 100644
--- a/src/component/home/tools/deReconstruction/index.vue
+++ b/src/component/home/tools/deReconstruction/index.vue
@@ -219,7 +219,7 @@ export default defineComponent({
return processedItem;
});
}
- canvasData = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
+ canvasData.canvas.objects = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
if(item.type == 'image')item.minioUrl = getMinioUrl(item.src)
})
let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
diff --git a/src/component/toolsPage/index.vue b/src/component/toolsPage/index.vue
index a4ffa083..84828edb 100644
--- a/src/component/toolsPage/index.vue
+++ b/src/component/toolsPage/index.vue
@@ -178,7 +178,7 @@ export default defineComponent({
return processedItem;
});
}
- canvasData = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
+ canvasData.canvas.objects = deepProcessObjects(canvasData.canvas.objects,(item:any)=>{
if(item.type == 'image')item.minioUrl = getMinioUrl(item.src)
})
let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });