+
{{$t('Habit.Category')}}:
diff --git a/src/tool/listData.js b/src/tool/listData.js
index 31c0bcde..56477289 100644
--- a/src/tool/listData.js
+++ b/src/tool/listData.js
@@ -340,12 +340,12 @@ const openTypeList = (t)=>{
value:'Models',
router:'library=Models'
},
- {
- icon:'fi-ss-gem',
- label:t('LibraryPage.brandDNA'),
- value:'MyBrand',
- router:'library=MyBrand'
- },
+ // {
+ // icon:'fi-ss-gem',
+ // label:t('LibraryPage.brandDNA'),
+ // value:'MyBrand',
+ // router:'library=MyBrand'
+ // },
]
},
history:{
From f93b763b02abee5e3d5b0fec71767d0277e5cca7 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Thu, 18 Sep 2025 14:17:16 +0800
Subject: [PATCH 13/54] fix
---
src/component/home/newProject/workspace.vue | 4 ++--
src/tool/listData.js | 12 ++++++------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/src/component/home/newProject/workspace.vue b/src/component/home/newProject/workspace.vue
index d20eccf9..2e19c50b 100644
--- a/src/component/home/newProject/workspace.vue
+++ b/src/component/home/newProject/workspace.vue
@@ -41,7 +41,7 @@
{{ selectObject?.styleName?selectObject?.styleName:'All' }}
{{ $t('Habit.Select') }}
-
+
{{$t('Habit.Category')}}:
diff --git a/src/tool/listData.js b/src/tool/listData.js
index 56477289..31c0bcde 100644
--- a/src/tool/listData.js
+++ b/src/tool/listData.js
@@ -340,12 +340,12 @@ const openTypeList = (t)=>{
value:'Models',
router:'library=Models'
},
- // {
- // icon:'fi-ss-gem',
- // label:t('LibraryPage.brandDNA'),
- // value:'MyBrand',
- // router:'library=MyBrand'
- // },
+ {
+ icon:'fi-ss-gem',
+ label:t('LibraryPage.brandDNA'),
+ value:'MyBrand',
+ router:'library=MyBrand'
+ },
]
},
history:{
From 95f7f52089759f63d6db56d7cfa0890191680913 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Fri, 19 Sep 2025 16:46:43 +0800
Subject: [PATCH 14/54] =?UTF-8?q?=E5=8F=96=E6=B6=88=E5=8D=B0=E8=8A=B1?=
=?UTF-8?q?=E5=88=87=E6=8D=A2=E4=B8=8B=E4=B8=80=E4=B8=AA=E7=9A=84=E6=8F=90?=
=?UTF-8?q?=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/HomePage/scaleImage.vue | 49 ++++++++++++++-------------
1 file changed, 25 insertions(+), 24 deletions(-)
diff --git a/src/component/HomePage/scaleImage.vue b/src/component/HomePage/scaleImage.vue
index fcaf89a2..e001e990 100644
--- a/src/component/HomePage/scaleImage.vue
+++ b/src/component/HomePage/scaleImage.vue
@@ -608,30 +608,31 @@ export default defineComponent({
setImageIndex(index:any){
if(this.isNext)return
let this_ = this
- if(this.imgType == 'Printboard' || this.imgType == 'Sketchboard'){
- this.isNext = true
- new Promise((resolve,reject)=>{
- Modal.confirm({
- title: this.t('scaleImage.submitCanvas'),
- icon: createVNode(ExclamationCircleOutlined),
- okText: 'Yes',
- cancelText: 'No',
- mask:false,
- centered:true,
- onOk() {
- this_.scaleImageIndex = index
- this_.isNext = false
- resolve('')
- },
- onCancel(){
- this_.isNext = false
- resolve('')
- }
- });
- })
- }else{
- this.scaleImageIndex = index
- }
+ // if(this.imgType == 'Printboard' || this.imgType == 'Sketchboard'){
+ // this.isNext = true
+ // new Promise((resolve,reject)=>{
+ // Modal.confirm({
+ // title: this.t('scaleImage.submitCanvas'),
+ // icon: createVNode(ExclamationCircleOutlined),
+ // okText: 'Yes',
+ // cancelText: 'No',
+ // mask:false,
+ // centered:true,
+ // onOk() {
+ // this_.scaleImageIndex = index
+ // this_.isNext = false
+ // resolve('')
+ // },
+ // onCancel(){
+ // this_.isNext = false
+ // resolve('')
+ // }
+ // });
+ // })
+ // }else{
+ // this.scaleImageIndex = index
+ // }
+ this.scaleImageIndex = index
},
LikeFile(item:any,str:string){
let parent:any = this.$parent
From 3cbb448520cd0ba082757cd254b0fa4982d6e000 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Fri, 19 Sep 2025 17:19:28 +0800
Subject: [PATCH 15/54] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B6=B2=E5=8C=96?=
=?UTF-8?q?=E9=BC=A0=E6=A0=87=E6=8A=AC=E8=B5=B7=E5=90=8E=E5=B0=B1=E4=BC=9A?=
=?UTF-8?q?=E5=BC=B9=E7=AA=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/Canvas/CanvasEditor/components/LiquifyPanel.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/component/Canvas/CanvasEditor/components/LiquifyPanel.vue b/src/component/Canvas/CanvasEditor/components/LiquifyPanel.vue
index b58f52fb..c8946485 100644
--- a/src/component/Canvas/CanvasEditor/components/LiquifyPanel.vue
+++ b/src/component/Canvas/CanvasEditor/components/LiquifyPanel.vue
@@ -519,7 +519,7 @@ function showPanel(event) {
}
visible.value = true;
- closePanel.value = true
+// closePanel.value = true
isEditing.value = true;
// 初始化液化管理器并准备液化环境
From acb77671021d451105f561860b2d9d86858d5e57 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Fri, 19 Sep 2025 18:45:53 +0800
Subject: [PATCH 16/54] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=80=89=E6=8B=A9?=
=?UTF-8?q?=E5=9B=BD=E5=AE=B6=E6=96=87=E6=A1=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Administrator/SE/allUser/index.vue | 2 +-
.../Transaction/TransactionTable.vue | 2 +-
src/component/Administrator/allUser.vue | 2 +-
.../Administrator/allUserPoerations.vue | 2 +-
src/component/Administrator/trialAllUser.vue | 2 +-
.../home/design/editDesignType/index.vue | 51 ++++++++++---------
6 files changed, 31 insertions(+), 30 deletions(-)
diff --git a/src/component/Administrator/SE/allUser/index.vue b/src/component/Administrator/SE/allUser/index.vue
index 28309f70..521e80df 100644
--- a/src/component/Administrator/SE/allUser/index.vue
+++ b/src/component/Administrator/SE/allUser/index.vue
@@ -22,7 +22,7 @@
-
Country:
+
Country or Region:
- Country:
+ Country or Region:
-
Country:
+
Country or Region:
{
- Modal.confirm({
- title: this.t('scaleImage.submitCanvas'),
- icon: createVNode(ExclamationCircleOutlined),
- okText: 'Yes',
- cancelText: 'No',
- mask:false,
- centered:true,
- onOk() {
- this_.scaleImageIndex = index
- this_.isNext = false
- resolve('')
- },
- onCancel(){
- this_.isNext = false
- resolve('')
- }
- });
- })
- }else{
- this.scaleImageIndex = index
- }
+ // let this_ = this
+ // if(this.isCanvas){
+ // this.isNext = true
+ // new Promise((resolve,reject)=>{
+ // Modal.confirm({
+ // title: this.t('scaleImage.submitCanvas'),
+ // icon: createVNode(ExclamationCircleOutlined),
+ // okText: 'Yes',
+ // cancelText: 'No',
+ // mask:false,
+ // centered:true,
+ // onOk() {
+ // this_.scaleImageIndex = index
+ // this_.isNext = false
+ // resolve('')
+ // },
+ // onCancel(){
+ // this_.isNext = false
+ // resolve('')
+ // }
+ // });
+ // })
+ // }else{
+ // this.scaleImageIndex = index
+ // }
+ this.scaleImageIndex = index
},
LikeFile(item:any,str:string){
let parent:any = this.$parent
From 15cb0c86e7763c4d6afd106c25fd3bc4163eeabc Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Sat, 20 Sep 2025 10:52:10 +0800
Subject: [PATCH 17/54] =?UTF-8?q?=E5=85=B3=E9=97=AD=E4=BA=8C=E5=88=9B=20ge?=
=?UTF-8?q?nerate=E7=94=9F=E6=88=90=E5=A4=B1=E8=B4=A5=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/HomePage/Generate.vue | 2 +-
src/component/WorksPage/newScaleImage.vue | 2 ++
src/views/HomeView/library.vue | 2 +-
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/component/HomePage/Generate.vue b/src/component/HomePage/Generate.vue
index 0455d50c..2683c440 100644
--- a/src/component/HomePage/Generate.vue
+++ b/src/component/HomePage/Generate.vue
@@ -742,7 +742,7 @@ export default defineComponent({
data = data.filter((item:any) => item !== element.taskId);
console.log(data)
this.fileList = this.fileList.filter((item:any) => item.taskId !== element.taskId);
- message.info(this.t('Generate.everyTimeEffectPoor'));
+ // message.info(this.t('Generate.everyTimeEffectPoor'));
}
});
if((data.length == 0)){
diff --git a/src/component/WorksPage/newScaleImage.vue b/src/component/WorksPage/newScaleImage.vue
index 9bec3fcc..87573f2d 100644
--- a/src/component/WorksPage/newScaleImage.vue
+++ b/src/component/WorksPage/newScaleImage.vue
@@ -440,6 +440,8 @@ export default defineComponent({
if(userDetail.value.systemList.indexOf(1) == -1){
return message.info(t('newScaleImage.jsContent1'))
}
+ return message.info(t('newScaleImage.jsContent2'))
+
if(imgData.scaleImageData.openSource == 0){
return message.info(t('newScaleImage.jsContent2'))
}
diff --git a/src/views/HomeView/library.vue b/src/views/HomeView/library.vue
index 86a1260d..f858ef3a 100644
--- a/src/views/HomeView/library.vue
+++ b/src/views/HomeView/library.vue
@@ -1823,7 +1823,7 @@ export default defineComponent({
}else if(element.status == 'Fail' || element.status == 'Invalid'){
data = data.filter((item:any) => item !== element.taskId);
this.generateList[str] = this.generateList[str].filter((item:any) => item.taskId !== element.taskId);
- message.info(this.t('Generate.everyTimeEffectPoor'));
+ // message.info(this.t('Generate.everyTimeEffectPoor'));
}
});
if((data.length == 0)){
From 575875ec661f18034108f393b136227c13ac4f68 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Mon, 22 Sep 2025 12:34:58 +0800
Subject: [PATCH 18/54] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9A=90=E7=A7=81?=
=?UTF-8?q?=E6=94=BF=E7=AD=96=E5=9C=B0=E5=9D=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/LoginPage/login/enterprise.vue | 2 +-
src/component/LoginPage/login/personal.vue | 2 +-
src/component/LoginPage/login/school.vue | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/component/LoginPage/login/enterprise.vue b/src/component/LoginPage/login/enterprise.vue
index f5fd7522..8c582cc9 100644
--- a/src/component/LoginPage/login/enterprise.vue
+++ b/src/component/LoginPage/login/enterprise.vue
@@ -105,7 +105,7 @@
I agree to the
Terms,
- Privacy Policy,
+ Privacy Policy,
and Fees.
diff --git a/src/component/LoginPage/login/personal.vue b/src/component/LoginPage/login/personal.vue
index 20a1f7ae..0278d701 100644
--- a/src/component/LoginPage/login/personal.vue
+++ b/src/component/LoginPage/login/personal.vue
@@ -88,7 +88,7 @@
I agree to the
Terms,
- Privacy Policy,
+ Privacy Policy,
and Fees.
diff --git a/src/component/LoginPage/login/school.vue b/src/component/LoginPage/login/school.vue
index 7435cc00..fb62faec 100644
--- a/src/component/LoginPage/login/school.vue
+++ b/src/component/LoginPage/login/school.vue
@@ -105,7 +105,7 @@
I agree to the
Terms,
- Privacy Policy,
+ Privacy Policy,
and Fees.
From 80e1d4638f0b6d87097dc0ab399dd1d0107b4918 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Mon, 22 Sep 2025 12:35:57 +0800
Subject: [PATCH 19/54] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9A=90=E7=A7=81?=
=?UTF-8?q?=E6=94=BF=E7=AD=96=E5=9C=B0=E5=9D=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/LoginPage/login/enterprise.vue | 2 +-
src/component/LoginPage/login/personal.vue | 2 +-
src/component/LoginPage/login/school.vue | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/component/LoginPage/login/enterprise.vue b/src/component/LoginPage/login/enterprise.vue
index 8c582cc9..a5391b45 100644
--- a/src/component/LoginPage/login/enterprise.vue
+++ b/src/component/LoginPage/login/enterprise.vue
@@ -105,7 +105,7 @@
I agree to the
Terms,
- Privacy Policy,
+ Privacy Policy,
and Fees.
diff --git a/src/component/LoginPage/login/personal.vue b/src/component/LoginPage/login/personal.vue
index 0278d701..8afe7b59 100644
--- a/src/component/LoginPage/login/personal.vue
+++ b/src/component/LoginPage/login/personal.vue
@@ -88,7 +88,7 @@
I agree to the
Terms,
- Privacy Policy,
+ Privacy Policy,
and Fees.
diff --git a/src/component/LoginPage/login/school.vue b/src/component/LoginPage/login/school.vue
index fb62faec..60ca77d5 100644
--- a/src/component/LoginPage/login/school.vue
+++ b/src/component/LoginPage/login/school.vue
@@ -105,7 +105,7 @@
I agree to the
Terms,
- Privacy Policy,
+ Privacy Policy,
and Fees.
From cd28861f0ca986ac5d422a8ad2106a5aa867afe6 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Mon, 22 Sep 2025 13:36:10 +0800
Subject: [PATCH 20/54] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BD=E5=AE=B6?=
=?UTF-8?q?=E5=92=8C=E5=9C=B0=E5=8C=BA=E5=90=8D=E5=AD=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/lang/cn.ts | 2 +-
src/lang/en.ts | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lang/cn.ts b/src/lang/cn.ts
index ded270bc..7e05ad57 100644
--- a/src/lang/cn.ts
+++ b/src/lang/cn.ts
@@ -751,7 +751,7 @@ export default {
editUser: "修改个人信息",
notModifiable: "没有修改次数",
remainingModifications: "本月剩余次数:",
- Country: "国家",
+ Country: "国家或地区",
CompanyName: "职业",
Status: "状态",
Valid: "有效",
diff --git a/src/lang/en.ts b/src/lang/en.ts
index 0928c6d4..7e59d3b8 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -753,7 +753,7 @@ export default {
editUser: "Change Information",
notModifiable: "Not modifiable",
remainingModifications: "Remaining this month:",
- Country: "Country",
+ Country: "Country or Region",
CompanyName: "Occupation",
Status: "Status",
Valid: "Valid",
From 6402ab4b64b350b0d5a277211379b38b3cf26352 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Mon, 22 Sep 2025 13:37:49 +0800
Subject: [PATCH 21/54] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E9=82=AE=E7=AE=B1icon?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/Account/account.vue | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/component/Account/account.vue b/src/component/Account/account.vue
index 57f7a42e..6a9280e5 100644
--- a/src/component/Account/account.vue
+++ b/src/component/Account/account.vue
@@ -50,10 +50,10 @@
{{ userDetail.email }}
-
+
From 4f5a02bcf3e002514a56ef372a8578ea3dd2b2d0 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Mon, 22 Sep 2025 14:01:44 +0800
Subject: [PATCH 22/54] =?UTF-8?q?=E9=83=A8=E5=88=86=E9=A1=B5=E9=9D=A2?=
=?UTF-8?q?=E8=AF=AD=E8=A8=80=E9=80=82=E9=85=8D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/Account/frontPage/mylnformation.vue | 2 +-
src/component/Administrator/SE/recentActiveChart.vue | 4 +++-
.../Administrator/Transaction/TransactionTable.vue | 4 ++--
src/component/Administrator/allUser.vue | 4 ++--
src/component/Administrator/recentActiveUser.vue | 4 ++--
src/component/Administrator/recentNewUser.vue | 4 ++--
src/lang/cn.ts | 12 ++++++++++++
src/lang/en.ts | 12 ++++++++++++
src/store/userHabit/userHabit.ts | 2 +-
9 files changed, 37 insertions(+), 11 deletions(-)
diff --git a/src/component/Account/frontPage/mylnformation.vue b/src/component/Account/frontPage/mylnformation.vue
index e5df3e55..80175852 100644
--- a/src/component/Account/frontPage/mylnformation.vue
+++ b/src/component/Account/frontPage/mylnformation.vue
@@ -28,7 +28,7 @@
optionFilterProp="label"
:options="countryList"
:field-names="{ label: locale == 'CHINESE_SIMPLIFIED'?'labelCn':'label' }"
- placeholder="Please select"
+ :placeholder="`${$t('account.plaseSelect')} ${$t('account.Country')}`"
allowClear
show-search
>
diff --git a/src/component/Administrator/SE/recentActiveChart.vue b/src/component/Administrator/SE/recentActiveChart.vue
index d9251b36..fe27f030 100644
--- a/src/component/Administrator/SE/recentActiveChart.vue
+++ b/src/component/Administrator/SE/recentActiveChart.vue
@@ -77,10 +77,12 @@ import { PieChart } from 'echarts/charts';
import { LabelLayout } from 'echarts/features';
import { useStore } from "vuex";
import { CanvasRenderer } from 'echarts/renderers';
+import { useI18n } from 'vue-i18n'
export default defineComponent({
components: {
},
setup() {
+ const {t} = useI18n()
const store:any = useStore()
let filter:any = reactive({
dataList:computed(()=>{
@@ -115,7 +117,7 @@ export default defineComponent({
let data:any = []
rv.names.forEach((item:any,index:number) => {
let obj = {
- name : item,
+ name : t(`admin.${item}`),
value:rv.values[index],
}
data.push(obj)
diff --git a/src/component/Administrator/Transaction/TransactionTable.vue b/src/component/Administrator/Transaction/TransactionTable.vue
index 8e153108..48c4d595 100644
--- a/src/component/Administrator/Transaction/TransactionTable.vue
+++ b/src/component/Administrator/Transaction/TransactionTable.vue
@@ -365,11 +365,11 @@ export default defineComponent({
ellipsis:true
},
{
- title: "Country",
+ title: "Country or Region",
align: "center",
dataIndex: "country",
key: "country",
- width:150,
+ width:200,
ellipsis:true
},
{
diff --git a/src/component/Administrator/allUser.vue b/src/component/Administrator/allUser.vue
index e162e58d..2bff6e11 100644
--- a/src/component/Administrator/allUser.vue
+++ b/src/component/Administrator/allUser.vue
@@ -292,11 +292,11 @@ export default defineComponent({
},
},
{
- title: "Country",
+ title: "Country or Region",
align: "center",
dataIndex: "country",
key: "country",
- width:100,
+ width:200,
},
{
title: "Create Date",
diff --git a/src/component/Administrator/recentActiveUser.vue b/src/component/Administrator/recentActiveUser.vue
index 421ef4af..9a8cd832 100644
--- a/src/component/Administrator/recentActiveUser.vue
+++ b/src/component/Administrator/recentActiveUser.vue
@@ -150,11 +150,11 @@ export default defineComponent({
},
},
{
- title: "Country",
+ title: "Country or Region",
align: "center",
dataIndex: "country",
key: "country",
- width:100,
+ width:200,
},
{
title: "Create Date",
diff --git a/src/component/Administrator/recentNewUser.vue b/src/component/Administrator/recentNewUser.vue
index da8a628a..33bed9d4 100644
--- a/src/component/Administrator/recentNewUser.vue
+++ b/src/component/Administrator/recentNewUser.vue
@@ -177,11 +177,11 @@ export default defineComponent({
},
},
{
- title: "Country",
+ title: "Country or Region",
align: "center",
dataIndex: "country",
key: "country",
- width:100,
+ width:200,
},
{
title: "Create Date",
diff --git a/src/lang/cn.ts b/src/lang/cn.ts
index 7e05ad57..868f504b 100644
--- a/src/lang/cn.ts
+++ b/src/lang/cn.ts
@@ -751,6 +751,7 @@ export default {
editUser: "修改个人信息",
notModifiable: "没有修改次数",
remainingModifications: "本月剩余次数:",
+ plaseSelect:"请选择",
Country: "国家或地区",
CompanyName: "职业",
Status: "状态",
@@ -1348,5 +1349,16 @@ export default {
jsContent1:'邮箱格式有误',
jsContent2:'请检查所有带 * 号的内容',
jsDelete:'确定删除这一项吗',
+ Design:'设计',
+ SingleDesign:'单品设计',
+ MoodBoard:'情绪版',
+ PrintBoard:'印花板',
+ SketchBoard:'线稿板',
+ Pattern:'设计',
+ Logo:'标志',
+ Slogan:'标语',
+ ToProductImage:'产品图',
+ Relight:'打光',
+ ChatRobot:'对话生成',
},
};
diff --git a/src/lang/en.ts b/src/lang/en.ts
index 7e59d3b8..ba768f27 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -753,6 +753,7 @@ export default {
editUser: "Change Information",
notModifiable: "Not modifiable",
remainingModifications: "Remaining this month:",
+ plaseSelect:"Please select",
Country: "Country or Region",
CompanyName: "Occupation",
Status: "Status",
@@ -1350,5 +1351,16 @@ export default {
jsContent1:'The email format is incorrect',
jsContent2:'Please check the input box marked with *',
jsDelete:'Are you sure you want to delete this item?',
+ Design:'Design',
+ SingleDesign:'SingleDesign',
+ MoodBoard:'MoodBoard',
+ PrintBoard:'PrintBoard',
+ SketchBoard:'SketchBoard',
+ Pattern:'Pattern',
+ Logo:'Logo',
+ Slogan:'Slogan',
+ ToProductImage:'ToProductImage',
+ Relight:'Relight',
+ ChatRobot:'ChatRobot',
},
};
diff --git a/src/store/userHabit/userHabit.ts b/src/store/userHabit/userHabit.ts
index d76ad75a..19c70970 100644
--- a/src/store/userHabit/userHabit.ts
+++ b/src/store/userHabit/userHabit.ts
@@ -265,7 +265,7 @@ const userHabit : Module = {
*/
state.userDetail.affiliate = data.affiliate
state.userDetail.systemUser = data.systemUser
- // state.userDetail.systemUser = 3
+ state.userDetail.systemUser = 7
// 身份列表1:可以使用aida系统,2:可以使用affiliate页面,3:系统管理员用户
state.userDetail.systemList = []
if(data.systemUser != 0)state.userDetail.systemList.push(1)
From 042d5db0500b863af4b8b5709f7830443863afb6 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Mon, 22 Sep 2025 14:09:56 +0800
Subject: [PATCH 23/54] fix
---
src/store/userHabit/userHabit.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/store/userHabit/userHabit.ts b/src/store/userHabit/userHabit.ts
index 19c70970..d76ad75a 100644
--- a/src/store/userHabit/userHabit.ts
+++ b/src/store/userHabit/userHabit.ts
@@ -265,7 +265,7 @@ const userHabit : Module = {
*/
state.userDetail.affiliate = data.affiliate
state.userDetail.systemUser = data.systemUser
- state.userDetail.systemUser = 7
+ // state.userDetail.systemUser = 3
// 身份列表1:可以使用aida系统,2:可以使用affiliate页面,3:系统管理员用户
state.userDetail.systemList = []
if(data.systemUser != 0)state.userDetail.systemList.push(1)
From f4d91986bbd22815adb70a946ace105c0f97177a Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Mon, 22 Sep 2025 15:09:26 +0800
Subject: [PATCH 24/54] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=96=E8=BE=91?=
=?UTF-8?q?=E5=89=8D=E5=90=8E=E7=89=87=E5=BA=95=E5=9B=BE=E6=94=B9=E4=B8=BA?=
=?UTF-8?q?=E7=BA=BF=E7=A8=BF=E5=9B=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/Detail/canvas/index.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/component/Detail/canvas/index.vue b/src/component/Detail/canvas/index.vue
index 875d8d6b..8ac6b936 100644
--- a/src/component/Detail/canvas/index.vue
+++ b/src/component/Detail/canvas/index.vue
@@ -35,7 +35,7 @@
-->
{
instance.appContext.config.globalProperties.$dropdownEvents.onClose(removeOpenSpeed)
+ if(props.msg == 'Sketchboard'){
+ speed.speedData = speed.speedList[1]
+ }
})
onUnmounted(() => {
@@ -1008,6 +1011,7 @@ export default defineComponent({
this.searchPictureName = "";
},
onPaste(e:any){
+ if(this.sketchboardList.length != 0)return
if(e.clipboardData.files[0] && !this.isTextarea && this.upload.level1Type !== 'Moodboard' && this.scene?.value != 'Slogan' && this.scene?.value != 'Logo'){
let param = new FormData();
param.append('inPin','0')
diff --git a/src/views/HomeView/library.vue b/src/views/HomeView/library.vue
index f858ef3a..56da44fd 100644
--- a/src/views/HomeView/library.vue
+++ b/src/views/HomeView/library.vue
@@ -357,7 +357,7 @@
-
+
@@ -857,7 +857,6 @@ export default defineComponent({
dataDom.createBrand.openAddBrand()
}
const editImg = (item:any,index:number)=>{
- console.log(item)
pageData.editIndex = index
dataDom.modalCanvas.init(item,'')
// imgList
@@ -995,7 +994,7 @@ export default defineComponent({
label:''
}
}else{
- if(newVal.value == "Pattern"){
+ if(newVal.value == "Pattern" || this.selectCode == 'Sketchboard'){
this.speedData = this.speedList[1]
}else{
this.speedData = this.speedList[0]
@@ -1935,6 +1934,7 @@ export default defineComponent({
scaleImage.init(list,index)
},
onPaste(e:any){
+ if(this.selectGenerateList.length != 0)return
if(e.clipboardData.files[0] && !this.isTextarea && this.selectCode !== 'Moodboard' && this.scene?.value != 'Slogan' && this.scene?.value != 'Logo'){
let param = new FormData();
param.append('inPin','0')
From b8e406cea4f2972220fadb3056a87e6f4e8d5334 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Tue, 23 Sep 2025 16:02:24 +0800
Subject: [PATCH 27/54] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BC=98=E6=83=A0?=
=?UTF-8?q?=E5=90=97=E6=B7=BB=E5=8A=A0=E5=BC=80=E5=A7=8B=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Administrator/coupons/addAllUser.vue | 623 +++++++++---------
src/component/Detail/DesignDetail.vue | 22 +-
2 files changed, 341 insertions(+), 304 deletions(-)
diff --git a/src/component/Administrator/coupons/addAllUser.vue b/src/component/Administrator/coupons/addAllUser.vue
index a279de62..4825fd42 100644
--- a/src/component/Administrator/coupons/addAllUser.vue
+++ b/src/component/Administrator/coupons/addAllUser.vue
@@ -1,298 +1,331 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
\ No newline at end of file
diff --git a/src/component/Detail/DesignDetail.vue b/src/component/Detail/DesignDetail.vue
index 92313e5b..f403661b 100644
--- a/src/component/Detail/DesignDetail.vue
+++ b/src/component/Detail/DesignDetail.vue
@@ -299,7 +299,11 @@ export default defineComponent({
// ]
let isCurrent = list[i].id == detailData?.selectDetail?.id
console.log(isCurrent,newData)
- let color = (detailData.currentDetailType == 'color' && isCurrent)?(newData?.rgba?.r?`${newData.rgba.r} ${newData.rgba.g} ${newData.rgba.b}`:''):(list[i].color?.rgba?.r?`${list[i].color.rgba.r} ${list[i].color.rgba.g} ${list[i].color.rgba.b}`:'')
+ let color = (detailData.currentDetailType == 'color' && isCurrent && !detailData.isEditPattern.value)?
+ (newData?.rgba?.r?`${newData.rgba.r} ${newData.rgba.g} ${newData.rgba.b}`:''):
+ (list[i].color?.rgba?.r?
+ `${list[i].color.rgba.r} ${list[i].color.rgba.g} ${list[i].color.rgba.b}`:
+ '')
if(detailData.currentDetailType == 'sketch' && newData){
color = detailData.designDetail.clothes[0].color?.rgba?.r?`${detailData.designDetail.clothes[0].color.rgba.r} ${detailData.designDetail.clothes[0].color.rgba.g} ${detailData.designDetail.clothes[0].color.rgba.b}`:''
detailData.selectDetail.maskUrl = ''
@@ -308,8 +312,8 @@ export default defineComponent({
let data:any = {
changed:false,
color,
- designType:(newData && detailData.currentDetailType == 'sketch' && isCurrent)?newData.designType:list[i].designType,
- id:(newData && detailData.currentDetailType == 'sketch' && isCurrent)?newData.id:list[i].id,
+ designType:(newData && detailData.currentDetailType == 'sketch' && isCurrent && !detailData.isEditPattern.value)?newData.designType:list[i].designType,
+ id:(newData && detailData.currentDetailType == 'sketch' && isCurrent && !detailData.isEditPattern.value)?newData.id:list[i].id,
maskMinioUrl:(newData && detailData.currentDetailType == 'sketch')?'':list[i]?.maskMinioUrl,
// maskUrl:'',
maskUrl:(newData && detailData.currentDetailType == 'sketch')?'':list[i]?.maskUrl,
@@ -320,19 +324,19 @@ export default defineComponent({
offset,
partialDesign:list[i].partialDesign || {},
// partialDesign:detailData.isEditPattern.value?list[i].partialDesign:{},
- path:(newData && detailData.currentDetailType == 'sketch' && isCurrent)?newData.minIOPath:list[i].minIOPath,
- printObject:(newData && detailData.currentDetailType == 'print' && isCurrent)?{prints:newData}:list[i].printObject?list[i].printObject:{prints:[]},
+ path:(newData && detailData.currentDetailType == 'sketch' && isCurrent && !detailData.isEditPattern.value)?newData.minIOPath:list[i].minIOPath,
+ printObject:(newData && detailData.currentDetailType == 'print' && isCurrent && !detailData.isEditPattern.value)?{prints:newData}:list[i].printObject?list[i].printObject:{prints:[]},
priority,
// scale:[
// 0.5,
// 0.35822305
// ],
scale:[scale[0]?scale[0]:1,scale[1]?scale[1]:1],
- type:(newData && detailData.currentDetailType == 'sketch' && isCurrent)?newData.level2Type || newData.categoryValue:list[i].type,
+ type:(newData && detailData.currentDetailType == 'sketch' && isCurrent && !detailData.isEditPattern.value)?newData.level2Type || newData.categoryValue:list[i].type,
sketchString:list[i].sketchString?list[i].sketchString:'',
- trims:(newData && detailData.currentDetailType == 'element' && isCurrent)?{prints:newData}:list[i].trims?.prints?list[i].trims:{prints:[]},
+ trims:(newData && detailData.currentDetailType == 'element' && isCurrent && !detailData.isEditPattern.value)?{prints:newData}:list[i].trims?.prints?list[i].trims:{prints:[]},
}
- if((list[i].color?.gradient || list[i].newDetail?.color?.gradient)){
+ if((list[i].color?.gradient || list[i].newDetail?.color?.gradient) && !detailData.isEditPattern.value){
gradient = list[i].newDetail?.color?.gradient || list[i].color.gradient
gradient.colorImg = await setGradual(gradient,320,700)
data.gradient = gradient
@@ -388,7 +392,7 @@ export default defineComponent({
designSingleItemDTOList:clothes,
isPreview:false,
// ifSubmit:designItemDetail.isPreview,
- gender:workspace?.sex == 'Male'?1:0,
+ gender:workspace?.sex,
sketchString:'',
modelId:(detailData.currentDetailType == 'models' && detailData.designDetail.newModel)?detailData.designDetail.newModel.id:detailData.designDetail.oldModel?detailData.designDetail.oldModel.id:'',
modelType:(detailData.currentDetailType == 'models' && detailData.designDetail.newModel)?detailData.designDetail.newModel.type:detailData.designDetail.oldModel?detailData.designDetail.oldModel.type:'',
From d61bb741d045ec514a3f9335c18112867eb2c079 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Tue, 23 Sep 2025 16:20:21 +0800
Subject: [PATCH 28/54] =?UTF-8?q?=E6=89=93=E5=BC=80=E8=B0=B7=E6=AD=8C?=
=?UTF-8?q?=E7=99=BB=E5=BD=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/Account/frontPage/bindPage.vue | 31 +++++----
src/component/LoginPage/googleLogin.vue | 70 ++++++++++++++------
2 files changed, 69 insertions(+), 32 deletions(-)
diff --git a/src/component/Account/frontPage/bindPage.vue b/src/component/Account/frontPage/bindPage.vue
index 0557f7e9..61e81949 100644
--- a/src/component/Account/frontPage/bindPage.vue
+++ b/src/component/Account/frontPage/bindPage.vue
@@ -27,10 +27,10 @@
{{ $t('frontPage.Unbind') }}
-->
-
-
{{ $t('frontPage.BindNow') }}
-
-
{{ $t('frontPage.Unbind') }}
+
+
{{ $t('frontPage.BindNow') }}
+
+
{{ $t('frontPage.Unbind') }}
@@ -138,12 +138,13 @@ export default defineComponent({
bindPageDom.bindEmail.init('Modify')
}
- const toGmailLogin = ()=>{
- message.info(t('account.canNotUtilize'))
- }
onMounted(async ()=>{
- return
- let GOOGLE_CLIENT_ID = '29310152396-nnsd3h533fld665oguu8ovrt1nukmt46.apps.googleusercontent.com'
+ let GOOGLE_CLIENT_ID
+ if(import.meta.env.VITE_USER_NODE_ENV == 'development'){
+ GOOGLE_CLIENT_ID = '157095842121-kdd1fdf8m8nudvj9sprstb2k2prnf9e4.apps.googleusercontent.com'
+ }else{
+ GOOGLE_CLIENT_ID = '29310152396-nnsd3h533fld665oguu8ovrt1nukmt46.apps.googleusercontent.com'
+ }
var existingScript = document.querySelector(`script[src="${data.scriptSrc}"]`);
if(!window.isAddGmail){
if(!existingScript){
@@ -206,7 +207,6 @@ export default defineComponent({
ungroupGoogleModel,
ungroupWeiXinModel,
modifyEmail,
- toGmailLogin,
}
},
data(){
@@ -271,14 +271,21 @@ export default defineComponent({
}
>.gmail_btn{
position: relative;
+ border-radius: 4rem;
+ overflow: hidden;
+ > .gallery_btn{
+ position: relative;
+ z-index: 2;
+ pointer-events: none;
+ }
#g_id_bind{
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
- opacity: 0;
- z-index: 2;
+ // opacity: 0;
+ z-index: 1;
:deep(.nsm7Bb-HzV7m-LgbsSe.Bz112c-LgbsSe){
width: 100%;
}
diff --git a/src/component/LoginPage/googleLogin.vue b/src/component/LoginPage/googleLogin.vue
index 74b17e88..47839f26 100644
--- a/src/component/LoginPage/googleLogin.vue
+++ b/src/component/LoginPage/googleLogin.vue
@@ -1,9 +1,10 @@
-
-
+
+
+
+
{{ $props.text }}
@@ -25,8 +26,33 @@
},
setup(props, { emit }) {
const {t} = useI18n()
+ function decodeJWT(token) {
+
+ let base64Url = token.split(".")[1];
+ let base64 = base64Url.replace(/-/g, "+").replace(/_/g, "/");
+ let jsonPayload = decodeURIComponent(
+ atob(base64)
+ .split("")
+ .map(function (c) {
+ return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2);
+ })
+ .join("")
+ );
+ return JSON.parse(jsonPayload);
+ }
const handleCredentialResponse = async (response) => {
// 获取回调响应的凭证数据 然后拿这个凭证给后台,后台jwt进行解析获取登录信息
+ console.log("Encoded JWT ID token: " + response.credential);
+ const responsePayload = decodeJWT(response.credential);
+ console.log("Decoded JWT ID token fields:");
+ console.log(" Full Name: " + responsePayload.name);
+ console.log(" Given Name: " + responsePayload.given_name);
+ console.log(" Family Name: " + responsePayload.family_name);
+ console.log(" Unique ID: " + responsePayload.sub);
+ console.log(" Profile image URL: " + responsePayload.picture);
+ console.log(" Email: " + responsePayload.email);
+
+
let code = response.credential
emit('googelLogin',code)
window.isAddGmail = false
@@ -36,10 +62,10 @@
scriptSrc:'https://accounts.google.com/gsi/client',
script:null
})
- console.log()
+ console.log(import.meta.env.VITE_USER_NODE_ENV)
let GOOGLE_CLIENT_ID
if(import.meta.env.VITE_USER_NODE_ENV == 'development'){
- GOOGLE_CLIENT_ID = '29310152396-c44dcsoksjirhn7vbo29p8u8n0sg4qps.apps.googleusercontent.com'
+ GOOGLE_CLIENT_ID = '157095842121-kdd1fdf8m8nudvj9sprstb2k2prnf9e4.apps.googleusercontent.com'
}else{
GOOGLE_CLIENT_ID = '29310152396-nnsd3h533fld665oguu8ovrt1nukmt46.apps.googleusercontent.com'
}
@@ -51,11 +77,11 @@
window.isAddGmail = true
await new Promise((resolve, reject) => {
const script = document.createElement("script");
- script.src = data.scriptSrc
script.onload=()=>{
resolve()
}
document.body.appendChild(script);
+ script.src = data.scriptSrc
})
}
window.google.accounts.id.initialize({
@@ -67,19 +93,19 @@
ux_mode:"popup",
itp_support:true,
});
+ console.log(document.querySelector('.Container #g_id_signin'))
window.google.accounts.id.renderButton(
- document.querySelector('.Container #g_id_signin'),
- {
- type:"standard",//icon为只有一个icon
- shape:"circle",
- theme:"outline",
- size:"large",
- logo_alignment:"center",
- });
+ document.querySelector('.Container #g_id_signin'),
+ {
+ type:"standard",//icon为只有一个icon
+ shape:"circle",
+ theme:"outline",
+ size:"large",
+ logo_alignment:"center",
+ });
}
}
const toGmailLogin = ()=>{
- console.log(12312)
message.info(t('account.canNotUtilize'))
}
onBeforeUnmount(()=>{
@@ -90,7 +116,7 @@
}
})
onMounted(()=>{
- // createGmailLogin()
+ createGmailLogin()
})
return {
toGmailLogin,
@@ -121,7 +147,6 @@
// width: 100%;
// height: 100%;
// }
-
// }
.icon{
// width: 40px;
@@ -135,7 +160,7 @@
box-sizing: border-box;
position: relative;
background: transparent;
- // pointer-events: none;
+ pointer-events: none;
background-color: #f5f5f5;
@media (max-width: 768px) {
border-radius: 2.5rem;
@@ -165,15 +190,20 @@
position: absolute;
width: 100%;
height: 100%;
- overflow: hidden;
+ // overflow: hidden;
top: 0;
left: 0;
- opacity: 0;
+ // opacity: 0;
.S9gUrf-YoZ4jf{
+
+
}
:deep(.S9gUrf-YoZ4jf){
width: 100%;
height: 100%;
+ iframe{
+ zoom: 3;
+ }
}
}
&:hover{
From 1e1f837da5a8db02717b0b4bfb5978f9bb694cec Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Tue, 23 Sep 2025 22:59:53 +0800
Subject: [PATCH 29/54] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=82=AE=E7=AE=B1?=
=?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7id?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/HomePage/bindEmail.vue | 1 +
src/component/LoginPage/login/personal.vue | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/component/HomePage/bindEmail.vue b/src/component/HomePage/bindEmail.vue
index 872278b0..409e5fe6 100644
--- a/src/component/HomePage/bindEmail.vue
+++ b/src/component/HomePage/bindEmail.vue
@@ -365,6 +365,7 @@ export default defineComponent({
title:this.selectSex,
surname:this.surname,
givenName:this.givenName,
+ userId:this.userDetail?.userId,
};
if(this.loginTime){
this.loginTime = false
diff --git a/src/component/LoginPage/login/personal.vue b/src/component/LoginPage/login/personal.vue
index 8afe7b59..1b3ea799 100644
--- a/src/component/LoginPage/login/personal.vue
+++ b/src/component/LoginPage/login/personal.vue
@@ -41,7 +41,7 @@
From 979abe082ebb3bc9f44231329cb20ac26c720555 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Wed, 24 Sep 2025 17:56:25 +0800
Subject: [PATCH 32/54] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B0=B7=E6=AD=8C?=
=?UTF-8?q?=E7=99=BB=E5=BD=95=E3=80=81=E7=BA=A2=E7=BB=BF=E5=9B=BE=E4=B8=A2?=
=?UTF-8?q?=E5=A4=B1=E3=80=81submit=E5=90=8E=E9=A2=9C=E8=89=B2=E6=9C=89?=
=?UTF-8?q?=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/Detail/DesignDetail.vue | 2 +-
src/component/Detail/canvas/index.vue | 5 +-
src/component/Detail/model/modelNav.vue | 42 +++++++-------
src/component/Detail/model/modelPosition.vue | 61 ++++++++++----------
src/lang/cn.ts | 1 +
src/lang/en.ts | 1 +
src/store/Detail/designDetail.ts | 15 ++++-
src/tool/https.js | 32 +---------
src/views/HomeMain.vue | 8 +--
9 files changed, 76 insertions(+), 91 deletions(-)
diff --git a/src/component/Detail/DesignDetail.vue b/src/component/Detail/DesignDetail.vue
index f403661b..0e4dcde1 100644
--- a/src/component/Detail/DesignDetail.vue
+++ b/src/component/Detail/DesignDetail.vue
@@ -298,7 +298,6 @@ export default defineComponent({
// 0.35822305
// ]
let isCurrent = list[i].id == detailData?.selectDetail?.id
- console.log(isCurrent,newData)
let color = (detailData.currentDetailType == 'color' && isCurrent && !detailData.isEditPattern.value)?
(newData?.rgba?.r?`${newData.rgba.r} ${newData.rgba.g} ${newData.rgba.b}`:''):
(list[i].color?.rgba?.r?
@@ -379,6 +378,7 @@ export default defineComponent({
delete detailData.designDetail.newModel
store.commit('DesignDetail/setPraeview',value)
detailData.loadingShow = false
+ canvasReload()
// setRevocation()
}).catch(res=>{
detailData.loadingShow = false
diff --git a/src/component/Detail/canvas/index.vue b/src/component/Detail/canvas/index.vue
index 8ac6b936..d096b738 100644
--- a/src/component/Detail/canvas/index.vue
+++ b/src/component/Detail/canvas/index.vue
@@ -193,7 +193,7 @@ export default defineComponent({
let front = detailData.frontBack.front[detailData.imgDomIndex]
let back = detailData.frontBack.back[detailData.imgDomIndex]
if(!front?.oldImageUrl)front.oldImageUrl = front.imageUrl
- if(!front?.oldMaskUrl)front.oldMaskUrl = front.imageUrl
+ if(!front?.oldMaskUrl)front.oldMaskUrl = front.maskUrl
if(!back?.oldImageUrl)back.oldImageUrl = back.imageUrl
if(!front?.oldMaskUrl)store.commit('DesignDetail/updataDetailItem',{maskUrl:front.oldMaskUrl})
@@ -218,7 +218,6 @@ export default defineComponent({
detailData.isShowMark = true
}
const index = detailData.designDetail.clothes.findIndex(item => item.id === detailData.selectDetail.id);
- console.log(index,detailData.selectDetail.id)
await new Promise
((resolve, reject) => {
if(!detailDom?.editCanvas)return resolve()
let canvasJSON = detailDom?.editCanvas?.getJSON()
@@ -261,7 +260,7 @@ export default defineComponent({
if(front?.oldImageUrl)front.imageUrl = front.oldImageUrl
if(front?.oldMaskUrl)front.maskUrl = front.oldMaskUrl
if(back?.oldImageUrl)back.imageUrl = back.oldImageUrl
- if(front?.oldMaskUrl)store.commit('DesignDetail/updataDetailItem',{maskUrl:front.oldMaskUrl})
+ if(front?.oldMaskUrl)store.commit('DesignDetail/updataDetailItem',{maskUrl:front.maskUrl})
sessionStorage.removeItem('frontBackEdit');
sessionStorage.removeItem('sketchEdit');
diff --git a/src/component/Detail/model/modelNav.vue b/src/component/Detail/model/modelNav.vue
index 00e6f753..15a611bd 100644
--- a/src/component/Detail/model/modelNav.vue
+++ b/src/component/Detail/model/modelNav.vue
@@ -74,29 +74,29 @@ export default defineComponent({
},{immediate:true})
const selectDetailItem = (item:any,index:number)=>{
new Promise((resolve, reject) => {
- // if(detailData.isEditPattern.value &&
- // detailData.selectDetail?.id &&
- // detailData?.getCanvasIfEdit?.fun&&detailData?.getCanvasIfEdit?.fun() > 0
- // ){
- // Modal.confirm({
- // title: t('collectionModal.jsContent2'),
- // icon: createVNode(ExclamationCircleOutlined),
- // okText: 'Yes',
- // cancelText: 'No',
- // mask:false,
- // centered:true,
- // onOk() {
- // resolve(true)
- // emit('canvasReload')
- // },
- // onCancel(){
- // resolve(false)
- // }
- // });
- // }else{
+ if(detailData.isEditPattern.value &&
+ detailData.selectDetail?.id &&
+ detailData?.getCanvasIfEdit?.fun&&detailData?.getCanvasIfEdit?.fun() > 0
+ ){
+ Modal.confirm({
+ title: t('collectionModal.jsContent6'),
+ icon: createVNode(ExclamationCircleOutlined),
+ okText: 'Yes',
+ cancelText: 'No',
+ mask:false,
+ centered:true,
+ onOk() {
+ resolve(true)
+ emit('canvasReload')
+ },
+ onCancel(){
+ resolve(false)
+ }
+ });
+ }else{
resolve(true)
emit('canvasReload')
- // }
+ }
}).then((rv)=>{
if(rv)store.commit('DesignDetail/setDesignColthes',item.id)
})
diff --git a/src/component/Detail/model/modelPosition.vue b/src/component/Detail/model/modelPosition.vue
index c7edf80a..ffee0398 100644
--- a/src/component/Detail/model/modelPosition.vue
+++ b/src/component/Detail/model/modelPosition.vue
@@ -236,38 +236,41 @@ export default defineComponent({
// }
}
const itemMoveMousedown = async (index:any,e:any)=>{
+ if(detailData.selectDetail.id != detailData.frontBack.front[index].id)return
let isOpen = false
let isModal = false
await new Promise((resolve, reject) => {
- if(
- detailData.isEditPattern.value &&
- selectItem.selectDetail?.id &&
- (detailData.frontBack.front[index].id != selectItem.selectDetail.id)
- ){
- isModal = true
- Modal.confirm({
- title: t('collectionModal.jsContent2'),
- icon: createVNode(ExclamationCircleOutlined),
- okText: 'Yes',
- cancelText: 'No',
- mask:false,
- centered:true,
- onOk() {
- resolve(true)
- isOpen = true
- },
- onCancel(){
- resolve(false)
- isOpen = false
- }
- });
- }else{
- if(detailData.frontBack.front[index].id != selectItem.selectDetail.id){
- isOpen = true
- }
- resolve(true)
- isModal = false
- }
+ // if(
+ // detailData.isEditPattern.value &&
+ // selectItem.selectDetail?.id &&
+ // (detailData.frontBack.front[index].id != selectItem.selectDetail.id)
+ // ){
+ // isModal = true
+ // Modal.confirm({
+ // title: t('collectionModal.jsContent2'),
+ // icon: createVNode(ExclamationCircleOutlined),
+ // okText: 'Yes',
+ // cancelText: 'No',
+ // mask:false,
+ // centered:true,
+ // onOk() {
+ // resolve(true)
+ // isOpen = true
+ // },
+ // onCancel(){
+ // resolve(false)
+ // isOpen = false
+ // }
+ // });
+ // }else{
+ // if(detailData.frontBack.front[index].id != selectItem.selectDetail.id){
+ // isOpen = true
+ // }
+ // resolve(true)
+ // isModal = false
+ // }
+ resolve(true)
+ isOpen = true
}).then((rv)=>{
})
if(isOpen){
diff --git a/src/lang/cn.ts b/src/lang/cn.ts
index 868f504b..1c196e21 100644
--- a/src/lang/cn.ts
+++ b/src/lang/cn.ts
@@ -583,6 +583,7 @@ export default {
jsContent2: "上传的文件不会保存,是否继续? ",
jsContent3: "您必须选择一种或多种颜色进行下一步。",
jsContent5: "我们检测到您的({str})上的PIN数量超过了八个,这可能会导致一些已钉住的项目未被使用。您是否仍要继续?",
+ jsContent6: "画布内容没有保存,请点击预保存后继续。",
},
DesignDetail: {
Details: "详情",
diff --git a/src/lang/en.ts b/src/lang/en.ts
index ba768f27..b770ca3c 100644
--- a/src/lang/en.ts
+++ b/src/lang/en.ts
@@ -585,6 +585,7 @@ export default {
jsContent2: "The uploaded files will not be saved, being sure to continue? ",
jsContent3: "You must choose one or more colors for further process.",
jsContent5: "We've detected that the number of pins on your ({str}) exceeds eight, which may result in some pinned items not being used. Would you like to continue anyway?",
+ jsContent6: 'The content on the canvas has not been saved. Please click "Preview" to continue.',
},
DesignDetail: {
Details: "Details",
diff --git a/src/store/Detail/designDetail.ts b/src/store/Detail/designDetail.ts
index adcd1886..dbae1ece 100644
--- a/src/store/Detail/designDetail.ts
+++ b/src/store/Detail/designDetail.ts
@@ -74,6 +74,7 @@ const DesignDetail : Module = {
state.frontBack.back = back
},
updataDetailItem(state,data){
+ console.log(data)
state.designDetail.clothes.forEach((item:any) => {
if(item.id == state.selectDetail.id){
for (const key in data) {
@@ -230,7 +231,7 @@ const DesignDetail : Module = {
left:item.layersObject[i].position?.[1] * scale + 'px',
width:item.layersObject[i].imageSize?.[0] * scale + 'px',
height:item.layersObject[i].imageSize?.[1] * scale + 'px',
- zIndex:v?.style?.zIndex?v.style.zIndex:state.frontBack.front.length
+ zIndex:v?.style?.zIndex?v.style.zIndex:v.priority?v.priority:state.frontBack.front.length
}
item.layersObject[i].centers={
left:0,
@@ -256,7 +257,7 @@ const DesignDetail : Module = {
})
if(state.currentDetailType != 'models'){
state.selectDetail.change = item.change
- if(state.selectDetail?.newDetail?.color){
+ if(state.selectDetail?.newDetail?.color && currentType != 'color'){
state.selectDetail.color = state.selectDetail?.newDetail?.color
state.selectDetail.newDetail.color = null
}
@@ -273,12 +274,20 @@ const DesignDetail : Module = {
state.selectDetail.printObject = item.printObject
state.selectDetail.trims = item.trims
state.selectDetail.type = item.type
+ state.selectDetail.color = {
+ ...item.color,
+ rgba:{
+ r:item.color?.r,
+ g:item.color?.g,
+ b:item.color?.b,
+ }
+ }
state.selectDetail.undividedLayer = item.undividedLayer
if(state.selectDetail.newDetail?.sketch?.id && !state.selectDetail.id){
state.designDetail.clothes.push(state.selectDetail)
}
state.selectDetail.id = item.id
- if(currentType)if(state.selectDetail.newDetail?.[currentType])delete state.selectDetail.newDetail[currentType]
+ if(currentType)if(state.selectDetail.newDetail?.[currentType] && currentType != 'color')delete state.selectDetail.newDetail[currentType]
}
}
if(value.fun)value.fun()
diff --git a/src/tool/https.js b/src/tool/https.js
index b20e8b98..139c3b9a 100644
--- a/src/tool/https.js
+++ b/src/tool/https.js
@@ -38,19 +38,7 @@ const CancelToken = axios.CancelToken;
const source = CancelToken.source();
// console.log(import.meta.env.VITE_APP_BASE_URL);
let isLoginTime = false
-const filterHttpsUrl = [
- // '/api/portfolio/page',
- '/api/account/resetPwd',
- '/api/portfolio/detail',
- '/api/account/preLogin',
- '/api/account/designWorksRegister',
- '/api/account/schoolLogin',
- '/api/account/enterpriseLogin',
- '/api/account/login',
- '/api/account/organizationNameSearch',
- '/api/account/designWorksRegisterCode',
- '/api/third/party/parseWeChatCode',
- '/api/account/sendEmail']
+
//POST传参序列化(添加请求拦截器)
axios.interceptors.request.use((config) => {
//在发送请求之前做某件事
@@ -63,23 +51,7 @@ axios.interceptors.request.use((config) => {
// config.data = JSON.stringify(config.data);
}
// config.headers.Authorization = 'Bearer-eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiIyIiwic3ViIjoie1wiaWRcIjoyLFwidXNlcm5hbWVcIjpcImxpcnNcIn0iLCJpYXQiOjE2NjU3NDEwODcsImlzcyI6IkRXSiIsImF1dGhvcml0aWVzIjoiW10iLCJleHAiOjE2NzQzODEwODd9.ShM9R_NNFD7oo1OvxrEgg7PFeWinOuAKkuInUCMQupp66s64Hhv8tN0Wwr83nIN4rHPqtn95wmd4msWcvaFYJA';
- if(filterHttpsUrl.indexOf(config.url) == -1){
- if (!getCookie('token')) {
- console.log('无Token,取消请求');
- if(!isLoginTime){
- isLoginTime = true
- router.replace('/')
- message.warning('Please login and try again~')
- setTimeout(()=>[
- isLoginTime = false
- ],2000)
- }
- return Promise.reject(new Error('缺少Token,请求被拦截')); // 阻止请求
- }
- config.headers.Authorization = getCookie('token');
- }else{
- config.headers.Authorization = '';
- }
+ config.headers.Authorization = getCookie('token');
return config;
},(error) =>{
return Promise.reject(error);
diff --git a/src/views/HomeMain.vue b/src/views/HomeMain.vue
index 3588b64a..7395fc87 100644
--- a/src/views/HomeMain.vue
+++ b/src/views/HomeMain.vue
@@ -398,10 +398,10 @@ export default defineComponent({
homeMainData.openType = Object.keys(query)[0]
homeMainData.openTypeChild = query[Object.keys(query)[0]]
}
- if((query?.id || query?.history) && !await getIdExistToHistory()){
- router.push('/home')
- return
- }
+ // if((query?.id || query?.history) && !await getIdExistToHistory()){
+ // router.push('/home')
+ // return
+ // }
}else{
homeMainData.openType = ''
homeMainData.openTypeChild = ''
From fa4e0b0f1a4a6d26fccf92f13a48a298639ce2cc Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Wed, 24 Sep 2025 17:58:40 +0800
Subject: [PATCH 33/54] fix
---
src/component/Detail/model/modelNav.vue | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/component/Detail/model/modelNav.vue b/src/component/Detail/model/modelNav.vue
index 15a611bd..a1076188 100644
--- a/src/component/Detail/model/modelNav.vue
+++ b/src/component/Detail/model/modelNav.vue
@@ -95,7 +95,9 @@ export default defineComponent({
});
}else{
resolve(true)
- emit('canvasReload')
+ if(detailData.selectDetail.id !== item.id){
+ emit('canvasReload')
+ }
}
}).then((rv)=>{
if(rv)store.commit('DesignDetail/setDesignColthes',item.id)
From 9ac3152b6c65d75b533375dc24d94d1145c556e2 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Wed, 24 Sep 2025 18:00:26 +0800
Subject: [PATCH 34/54] fix
---
src/views/HomeMain.vue | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/views/HomeMain.vue b/src/views/HomeMain.vue
index 7395fc87..3588b64a 100644
--- a/src/views/HomeMain.vue
+++ b/src/views/HomeMain.vue
@@ -398,10 +398,10 @@ export default defineComponent({
homeMainData.openType = Object.keys(query)[0]
homeMainData.openTypeChild = query[Object.keys(query)[0]]
}
- // if((query?.id || query?.history) && !await getIdExistToHistory()){
- // router.push('/home')
- // return
- // }
+ if((query?.id || query?.history) && !await getIdExistToHistory()){
+ router.push('/home')
+ return
+ }
}else{
homeMainData.openType = ''
homeMainData.openTypeChild = ''
From 564b75de61c6e5e4e662b48deeac4395bf1dd3dc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com>
Date: Thu, 25 Sep 2025 13:52:05 +0800
Subject: [PATCH 35/54] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=94=BB=E5=B8=83?=
=?UTF-8?q?=E6=89=93=E5=BC=80=E5=9B=BE=E7=89=87=E5=AF=BC=E5=87=BA=E5=9B=BE?=
=?UTF-8?q?=E7=89=87=E5=88=86=E8=BE=A8=E7=8E=87=E4=B8=8D=E4=B8=80=E5=80=BC?=
=?UTF-8?q?=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components.d.ts | 12 -----
src/component/Canvas/CanvasEditor/index.vue | 22 +++++++++
.../CanvasEditor/managers/CanvasManager.js | 1 +
.../CanvasEditor/managers/ExportManager.js | 49 +++++++++++++++----
.../CanvasEditor/utils/selectionToImage.js | 16 +++++-
.../tools/deReconstruction/canvas/index.vue | 16 +++---
src/component/modules/generalMiniCanvas.vue | 18 ++++---
7 files changed, 98 insertions(+), 36 deletions(-)
diff --git a/components.d.ts b/components.d.ts
index 1c57248a..b2d38451 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -9,31 +9,19 @@ export {}
declare module 'vue' {
export interface GlobalComponents {
ABadge: typeof import('ant-design-vue/es')['Badge']
- ABreadcrumb: typeof import('ant-design-vue/es')['Breadcrumb']
ACheckbox: typeof import('ant-design-vue/es')['Checkbox']
- ADatePicker: typeof import('ant-design-vue/es')['DatePicker']
ADrawer: typeof import('ant-design-vue/es')['Drawer']
- AImage: typeof import('ant-design-vue/es')['Image']
AInputNumber: typeof import('ant-design-vue/es')['InputNumber']
- AMenu: typeof import('ant-design-vue/es')['Menu']
- AMenuItem: typeof import('ant-design-vue/es')['MenuItem']
AModal: typeof import('ant-design-vue/es')['Modal']
- APagination: typeof import('ant-design-vue/es')['Pagination']
APopover: typeof import('ant-design-vue/es')['Popover']
ARangePicker: typeof import('ant-design-vue/es')['RangePicker']
ASelect: typeof import('ant-design-vue/es')['Select']
ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
ASlider: typeof import('ant-design-vue/es')['Slider']
- ASpace: typeof import('ant-design-vue/es')['Space']
ASpin: typeof import('ant-design-vue/es')['Spin']
- ASubMenu: typeof import('ant-design-vue/es')['SubMenu']
ASwitch: typeof import('ant-design-vue/es')['Switch']
ATable: typeof import('ant-design-vue/es')['Table']
- ATabPane: typeof import('ant-design-vue/es')['TabPane']
- ATabs: typeof import('ant-design-vue/es')['Tabs']
- ATimeRangePicker: typeof import('ant-design-vue/es')['TimeRangePicker']
AUpload: typeof import('ant-design-vue/es')['Upload']
- ElCascader: typeof import('element-plus/es')['ElCascader']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
}
diff --git a/src/component/Canvas/CanvasEditor/index.vue b/src/component/Canvas/CanvasEditor/index.vue
index 7247885a..0e4b7844 100644
--- a/src/component/Canvas/CanvasEditor/index.vue
+++ b/src/component/Canvas/CanvasEditor/index.vue
@@ -456,6 +456,13 @@ onMounted(async () => {
// 使用window的resize事件代替ResizeObserver
// 只有当窗口大小变化时才更新画布尺寸
// window.addEventListener("resize", handleWindowResize);
+ if(props.config.initZoom) {
+ const width = canvasManager.width;
+ const height = canvasManager.height;
+ const cwidth = props.config.width;
+ const cheight = props.config.height;
+ setZoom(Math.min(width/cwidth,height/cheight)); // 设置画布缩放
+ }
});
watchEffect(() => {
@@ -521,6 +528,19 @@ function resetZoom() {
canvasManager.resetZoom();
}
+function setZoom(zoom) {
+ setTimeout(()=>{
+ if (!canvasManager) return;
+ const newZoom = Math.max(zoom / 1.1, 0.1); // 减少10%,最小0.1倍
+ // 使用画布中心作为缩放点
+ const centerPoint = {
+ x: canvasManager.canvas.width / 2,
+ y: canvasManager.canvas.height / 2,
+ };
+ canvasManager.animateZoom(centerPoint, newZoom);
+ })
+}
+
function zoomIn() {
if (!canvasManager) return;
@@ -882,6 +902,7 @@ defineExpose({
layerId = "", // 导出具体图层ID
layerIdArray = [], // 导出多个图层ID数组
expPicType = "png", // 导出图片类型 JPG 或 PNG ,SVG
+ isEnhanceImg, // 是否是增强图片
} = {}) => {
return canvasManager.exportImage({
isContainBg,
@@ -890,6 +911,7 @@ defineExpose({
layerId,
layerIdArray,
expPicType,
+ isEnhanceImg,
});
},
/**
diff --git a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
index 6c4083da..a0abed05 100644
--- a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
+++ b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js
@@ -811,6 +811,7 @@ export class CanvasManager {
* @param {Array} options.layerIdArray 导出多个图层ID数组
* @param {String} options.expPicType 导出图片类型 (png/jpg/svg)
* @param {Boolean} options.restoreOpacityInRedGreen 红绿图模式下是否恢复透明度为1
+ * @param {Boolean} options.isEnhanceImg 是否是增强图片
* @returns {String} 导出的图片数据URL
*/
async exportImage(options = {}) {
diff --git a/src/component/Canvas/CanvasEditor/managers/ExportManager.js b/src/component/Canvas/CanvasEditor/managers/ExportManager.js
index 41d1007d..0b474d05 100644
--- a/src/component/Canvas/CanvasEditor/managers/ExportManager.js
+++ b/src/component/Canvas/CanvasEditor/managers/ExportManager.js
@@ -18,10 +18,12 @@ export class ExportManager {
* @param {Object} options 导出选项
* @param {Boolean} options.isContainBg 是否包含背景图层
* @param {Boolean} options.isContainFixed 是否包含固定图层
+ * @param {Boolean} options.isCropByBg 是否使用背景大小裁剪
* @param {String} options.layerId 导出具体图层ID
* @param {Array} options.layerIdArray 导出多个图层ID数组
* @param {String} options.expPicType 导出图片类型 (png/jpg/svg)
* @param {Boolean} options.restoreOpacityInRedGreen 红绿图模式下是否恢复透明度为1
+ * @param {Boolean} options.isEnhanceImg 是否是增强图片
* @returns {String} 导出的图片数据URL
*/
exportImage(options = {}) {
@@ -33,6 +35,7 @@ export class ExportManager {
layerIdArray = [],
expPicType = "png",
restoreOpacityInRedGreen = true,
+ isEnhanceImg, // 是否是增强图片
} = options;
try {
// 检查是否为红绿图模式
@@ -44,7 +47,8 @@ export class ExportManager {
expPicType,
isRedGreenMode,
restoreOpacityInRedGreen,
- isCropByBg
+ isCropByBg,
+ isEnhanceImg, // 是否是增强图片
);
}
@@ -57,7 +61,8 @@ export class ExportManager {
isContainFixed,
isRedGreenMode,
restoreOpacityInRedGreen,
- isCropByBg
+ isCropByBg,
+ isEnhanceImg, // 是否是增强图片
);
}
@@ -68,7 +73,8 @@ export class ExportManager {
isContainFixed,
isRedGreenMode,
restoreOpacityInRedGreen,
- isCropByBg
+ isCropByBg,
+ isEnhanceImg, // 是否是增强图片
);
} catch (error) {
console.error("导出图片失败:", error);
@@ -82,6 +88,8 @@ export class ExportManager {
* @param {String} expPicType 导出类型
* @param {Boolean} isRedGreenMode 是否为红绿图模式
* @param {Boolean} restoreOpacityInRedGreen 红绿图模式下是否恢复透明度为1
+ * @param {Boolean} isCropByBg 是否使用背景大小裁剪
+ * @param {Boolean} isEnhanceImg 是否是增强图片
* @returns {String} 图片数据URL
* @private
*/
@@ -89,7 +97,9 @@ export class ExportManager {
layerId,
expPicType,
isRedGreenMode,
- restoreOpacityInRedGreen
+ restoreOpacityInRedGreen,
+ isCropByBg, // 是否使用背景大小裁剪
+ isEnhanceImg, // 是否是增强图片
) {
if (!this.layerManager) {
throw new Error("图层管理器未初始化");
@@ -117,7 +127,9 @@ export class ExportManager {
return this._exportWithRedGreenMode(
objectsToExport,
expPicType,
- restoreOpacityInRedGreen
+ restoreOpacityInRedGreen,
+ isCropByBg, // 是否使用背景大小裁剪
+ isEnhanceImg, // 是否是增强图片
);
}
@@ -137,6 +149,8 @@ export class ExportManager {
* @param {Boolean} isContainFixed 是否包含固定图层
* @param {Boolean} isRedGreenMode 是否为红绿图模式
* @param {Boolean} restoreOpacityInRedGreen 红绿图模式下是否恢复透明度为1
+ * @param {Boolean} isCropByBg 是否使用背景大小裁剪
+ * @param {Boolean} isEnhanceImg 是否是增强图片
* @returns {String} 图片数据URL
* @private
*/
@@ -147,7 +161,8 @@ export class ExportManager {
isContainFixed,
isRedGreenMode,
restoreOpacityInRedGreen,
- isCropByBg
+ isCropByBg, // 是否使用背景大小裁剪
+ isEnhanceImg, // 是否是增强图片
) {
if (!this.layerManager) {
throw new Error("图层管理器未初始化");
@@ -178,7 +193,9 @@ export class ExportManager {
return await this._exportWithCanvasSize(
objectsToExport,
expPicType,
- restoreOpacityInRedGreen
+ restoreOpacityInRedGreen,
+ isCropByBg, // 是否使用背景大小裁剪
+ isEnhanceImg, // 是否是增强图片
);
}
@@ -189,6 +206,8 @@ export class ExportManager {
* @param {Boolean} isContainFixed 是否包含固定图层
* @param {Boolean} isRedGreenMode 是否为红绿图模式
* @param {Boolean} restoreOpacityInRedGreen 红绿图模式下是否恢复透明度为1
+ * @param {Boolean} isCropByBg 是否使用背景大小裁剪
+ * @param {Boolean} isEnhanceImg 是否是增强图片
* @returns {String} 图片数据URL
* @private
*/
@@ -198,7 +217,8 @@ export class ExportManager {
isContainFixed,
isRedGreenMode,
restoreOpacityInRedGreen,
- isCropByBg
+ isCropByBg, // 是否使用背景大小裁剪
+ isEnhanceImg, // 是否是增强图片
) {
// 按图层顺序收集对象(从底到顶)
const objectsToExport = this._collectObjectsByLayerOrder(
@@ -251,7 +271,9 @@ export class ExportManager {
objectsToExport,
expPicType,
restoreOpacityInRedGreen,
- canvasClipPath
+ canvasClipPath,
+ isCropByBg, // 是否使用背景大小裁剪
+ isEnhanceImg, // 是否是增强图片
);
}
@@ -603,6 +625,9 @@ export class ExportManager {
* @param {Array} objectsToExport 要导出的对象数组
* @param {String} expPicType 导出类型
* @param {Boolean} restoreOpacityInRedGreen 是否恢复透明度为1
+ * @param {Object} maskObject 裁剪对象
+ * @param {Boolean} isCropByBg 是否使用背景大小裁剪
+ * @param {Boolean} isEnhanceImg 是否是增强图片
* @returns {String} 图片数据URL
* @private
*/
@@ -610,7 +635,9 @@ export class ExportManager {
objectsToExport,
expPicType,
restoreOpacityInRedGreen,
- maskObject
+ maskObject, // 裁剪对象
+ isCropByBg, // 是否使用背景大小裁剪
+ isEnhanceImg, // 是否是增强图片
) {
// 使用当前画布尺寸
// const canvasWidth =
@@ -629,6 +656,8 @@ export class ExportManager {
trimWhitespace: true, // 裁剪空白
trimPadding: 0, // 裁剪边距
restoreOpacityInRedGreen,
+ isCropByBg, // 是否使用背景大小裁剪
+ isEnhanceImg, // 是否是增强图片
});
console.log("导出图片数据URL:", dataURL);
diff --git a/src/component/Canvas/CanvasEditor/utils/selectionToImage.js b/src/component/Canvas/CanvasEditor/utils/selectionToImage.js
index 848f6916..2f518624 100644
--- a/src/component/Canvas/CanvasEditor/utils/selectionToImage.js
+++ b/src/component/Canvas/CanvasEditor/utils/selectionToImage.js
@@ -21,6 +21,7 @@ export const createRasterizedImage = async ({
preserveOriginalQuality = true, // 是否保持原始质量(新增)
selectionManager = null, // 选区管理器,用于获取羽化值等设置
restoreOpacityInRedGreen, // 是否在红绿图模式下恢复透明度
+ isEnhanceImg, // 是否是增强图片
} = {}) => {
try {
console.log(`📊 开始栅格化 ${fabricObjects.length} 个对象`);
@@ -41,6 +42,7 @@ export const createRasterizedImage = async ({
clippingObject,
isReturenDataURL,
selectionManager, // 传递选区管理器
+ isEnhanceImg, // 是否是增强图片
});
}
@@ -81,6 +83,7 @@ const createClippedObjects = async ({
clippingObject,
isReturenDataURL,
selectionManager = null, // 新增选区管理器参数
+ isEnhanceImg, // 是否是增强图片
}) => {
try {
console.log("🎯 使用新的图像遮罩裁剪方法创建对象");
@@ -110,6 +113,7 @@ const createClippedObjects = async ({
clippingObject,
selectionBounds: optimizedBounds, // 使用优化后的边界框
featherAmount,
+ isEnhanceImg, // 是否是增强图片
});
}
@@ -120,6 +124,7 @@ const createClippedObjects = async ({
clippingObject,
selectionBounds: optimizedBounds, // 使用优化后的边界框
featherAmount,
+ isEnhanceImg, // 是否是增强图片
});
// 将DataURL转换为fabric.Image对象
@@ -173,6 +178,7 @@ const createClippedDataURLByCanvas = async ({
clippingObject,
selectionBounds,
featherAmount = 0,
+ isEnhanceImg = false, // 是否是增强图片
}) => {
try {
console.log("🖼️ 使用图像遮罩裁剪方法生成DataURL");
@@ -185,7 +191,9 @@ const createClippedDataURLByCanvas = async ({
// 使用高分辨率以保证质量
const pixelRatio = window.devicePixelRatio || 1;
- const qualityMultiplier = Math.max(2, pixelRatio);
+ const qualityMultiplier = !!isEnhanceImg ? Math.max(2, pixelRatio) : 1;
+
+ console.log("使用高分辨率以保证质量:" + isEnhanceImg, optimizedBounds);
const canvasWidth = Math.ceil(optimizedBounds.width * qualityMultiplier);
const canvasHeight = Math.ceil(optimizedBounds.height * qualityMultiplier);
@@ -455,6 +463,8 @@ const createLegacyRasterization = async ({
quality,
format,
isReturenDataURL,
+ isCropByBg, // 是否根据背景裁剪
+ isEnhanceImg, // 是否是增强图片
}) => {
console.log("⚠️ 使用兼容的离屏渲染方法");
@@ -481,6 +491,8 @@ const createLegacyRasterization = async ({
format,
currentZoom,
isReturenDataURL,
+ isCropByBg, // 是否根据背景裁剪
+ isEnhanceImg, // 是否是增强图片
});
};
@@ -571,6 +583,8 @@ const createOffscreenRasterization = async ({
format,
currentZoom,
isReturenDataURL,
+ isCropByBg, // 是否根据背景裁剪
+ isEnhanceImg, // 是否是增强图片
}) => {
try {
// 创建离屏画布,使用绝对尺寸以保证高质量
diff --git a/src/component/home/tools/deReconstruction/canvas/index.vue b/src/component/home/tools/deReconstruction/canvas/index.vue
index 0c6b8277..3e6ef56c 100644
--- a/src/component/home/tools/deReconstruction/canvas/index.vue
+++ b/src/component/home/tools/deReconstruction/canvas/index.vue
@@ -113,12 +113,16 @@ export default defineComponent({
return new Promise((res,rev)=>{
let img = new Image()
img.onload = ()=>{
- let wH = [1,1]
- let domHeight = dataDom.canvasBox.offsetHeight - 200
- let imgHeight = img.height
- wH = [1,domHeight/imgHeight]
- data.canvasConfig.width = img.width * wH[1]
- data.canvasConfig.height = domHeight
+ // let wH = [1,1]
+ // let domHeight = dataDom.canvasBox.offsetHeight - 200
+ // let imgHeight = img.height
+ // wH = [1,domHeight/imgHeight]
+ // data.canvasConfig.width = img.width * wH[1]
+ // data.canvasConfig.height = domHeight
+ data.canvasConfig.height = img.height
+ data.canvasConfig.width = img.width
+ data.canvasConfig.initZoom = true
+
data.canvasLoad = true
res('')
}
diff --git a/src/component/modules/generalMiniCanvas.vue b/src/component/modules/generalMiniCanvas.vue
index e9463578..eaf2be3d 100644
--- a/src/component/modules/generalMiniCanvas.vue
+++ b/src/component/modules/generalMiniCanvas.vue
@@ -87,7 +87,7 @@ export default defineComponent({
// dataDom.editCanvas.exportImage({isContainBg:props.source == 'detail',isContainFixed:true}).then((rv)=>{
// emit('submitBase64Data',rv)
// })
- dataDom.editCanvas.exportImage({isContainBg:true,isContainFixed:true}).then((rv)=>{
+ dataDom.editCanvas.exportImage({isContainBg:true,isContainFixed:true,isCropByBg:true}).then((rv)=>{
emit('submitBase64Data',rv)
})
}
@@ -135,12 +135,16 @@ export default defineComponent({
if(props.imgUrl){
let img = new Image()
img.onload = ()=>{
- let wH = [1,1]
- let domHeight = dataDom.canvasBox.offsetHeight - 200
- let imgHeight = img.height
- wH = [1,domHeight/imgHeight]
- data.canvasConfig.height = domHeight
- data.canvasConfig.width = wH[1] * img.width
+ // let wH = [1,1]
+ // let domHeight = dataDom.canvasBox.offsetHeight - 200
+ // let imgHeight = img.height
+ // wH = [1,domHeight/imgHeight]
+ // data.canvasConfig.height = domHeight
+ // data.canvasConfig.width = wH[1] * img.width
+ data.canvasConfig.height = img.height
+ data.canvasConfig.width = img.width
+ data.canvasConfig.initZoom = true
+
data.canvasLoad = true
// setTimeout(()=>{
// canvasLoadAddImg()
From 6ba33701a570ef3dc25a0621f573d4a01a5a08a5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=8E=E5=BF=97=E9=B9=8F?= <2916022834@qq.com>
Date: Thu, 25 Sep 2025 14:01:49 +0800
Subject: [PATCH 36/54] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=94=BB=E5=B8=83?=
=?UTF-8?q?=E6=89=93=E5=BC=80=E5=9B=BE=E7=89=87=E5=AF=BC=E5=87=BA=E5=9B=BE?=
=?UTF-8?q?=E7=89=87=E5=88=86=E8=BE=A8=E7=8E=87=E4=B8=8D=E5=80=BC=E4=B8=80?=
=?UTF-8?q?=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/Canvas/CanvasEditor/index.vue | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/component/Canvas/CanvasEditor/index.vue b/src/component/Canvas/CanvasEditor/index.vue
index 0e4b7844..aa90942e 100644
--- a/src/component/Canvas/CanvasEditor/index.vue
+++ b/src/component/Canvas/CanvasEditor/index.vue
@@ -461,7 +461,9 @@ onMounted(async () => {
const height = canvasManager.height;
const cwidth = props.config.width;
const cheight = props.config.height;
- setZoom(Math.min(width/cwidth,height/cheight)); // 设置画布缩放
+ let zoom = Math.min(1,width/cwidth,height/cheight);
+ if(zoom < 1) zoom -= 0.05;
+ setZoom(zoom); // 设置画布缩放
}
});
@@ -531,7 +533,7 @@ function resetZoom() {
function setZoom(zoom) {
setTimeout(()=>{
if (!canvasManager) return;
- const newZoom = Math.max(zoom / 1.1, 0.1); // 减少10%,最小0.1倍
+ const newZoom = Math.max(zoom, 0.1); // 减少10%,最小0.1倍
// 使用画布中心作为缩放点
const centerPoint = {
x: canvasManager.canvas.width / 2,
From d50f494b348bed87248e2243f1f58b65635048b8 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Thu, 25 Sep 2025 14:29:23 +0800
Subject: [PATCH 37/54] =?UTF-8?q?=E4=BF=AE=E5=A4=8Ddetail=E6=93=8D?=
=?UTF-8?q?=E4=BD=9C=E6=8C=89=E9=92=AE=E9=9B=86=E4=B8=AD=E5=B7=A6=E4=B8=8A?=
=?UTF-8?q?=E8=A7=92?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/Account/frontPage/bindPage.vue | 4 +-
src/component/Detail/DesignDetail.vue | 104 +++++++++---------
src/component/Detail/model/modelPosition.vue | 2 +-
.../design/collection/MoodboardUpload.vue | 2 +-
.../design/collection/PrintboardUpload.vue | 3 +-
src/component/home/design/collection/more.vue | 8 ++
src/component/home/design/index.vue | 7 +-
src/store/Detail/designDetail.ts | 15 ++-
8 files changed, 86 insertions(+), 59 deletions(-)
diff --git a/src/component/Account/frontPage/bindPage.vue b/src/component/Account/frontPage/bindPage.vue
index 61e81949..7ec33f51 100644
--- a/src/component/Account/frontPage/bindPage.vue
+++ b/src/component/Account/frontPage/bindPage.vue
@@ -28,7 +28,7 @@
{{ $t('frontPage.Unbind') }}
-->
-
{{ $t('frontPage.BindNow') }}
+
{{ $t('frontPage.BindNow') }}
{{ $t('frontPage.Unbind') }}
@@ -276,7 +276,7 @@ export default defineComponent({
> .gallery_btn{
position: relative;
z-index: 2;
- pointer-events: none;
+
}
#g_id_bind{
position: absolute;
diff --git a/src/component/Detail/DesignDetail.vue b/src/component/Detail/DesignDetail.vue
index 0e4dcde1..f10847a4 100644
--- a/src/component/Detail/DesignDetail.vue
+++ b/src/component/Detail/DesignDetail.vue
@@ -167,60 +167,64 @@ export default defineComponent({
}
const showDesignDetailModal = (data:any,str:any)=>{
- // let url = Https.httpUrls.getDesignDetail + `?designItemId=${77770}&designPythonOutfitId=${77423}`
- let url = Https.httpUrls.getDesignDetail + `?designItemId=${data.design.designItemId}&designPythonOutfitId=${data.design.designOutfitId}`
- detailData.loadingShow = true
- Https.axiosGet(url).then(
- async (rv: any) => {
- store.commit('DesignDetail/setDesignDetail',rv)
- rv.clothes.forEach((item:any)=>{
- let a
- item.designType='Library'
- if(item.layersObject[0].imageCategory.indexOf("back") == -1){
- a = item.layersObject[0]
- item.layersObject[0] = item.layersObject[1]
- item.layersObject[1] = a
- }
- if(item.color){
- item.color.rgba = {
- r:item.color.r,
- g:item.color.g,
- b:item.color.b,
+ return new Promise
((resolve, reject) => {
+ store.commit('DesignDetail/clearDetailData')
+ // let url = Https.httpUrls.getDesignDetail + `?designItemId=${77770}&designPythonOutfitId=${77423}`
+ let url = Https.httpUrls.getDesignDetail + `?designItemId=${data.design.designItemId}&designPythonOutfitId=${data.design.designOutfitId}`
+ detailData.loadingShow = true
+ Https.axiosGet(url).then(
+ async (rv: any) => {
+ store.commit('DesignDetail/setDesignDetail',rv)
+ rv.clothes.forEach((item:any)=>{
+ let a
+ item.designType='Library'
+ if(item.layersObject[0].imageCategory.indexOf("back") == -1){
+ a = item.layersObject[0]
+ item.layersObject[0] = item.layersObject[1]
+ item.layersObject[1] = a
}
- }else{
- item.color = {
- // rgba:{
- // r:undefined,
- // g:undefined,
- // b:undefined,
- // }
+ if(item.color){
+ item.color.rgba = {
+ r:item.color.r,
+ g:item.color.g,
+ b:item.color.b,
+ }
+ }else{
+ item.color = {
+ // rgba:{
+ // r:undefined,
+ // g:undefined,
+ // b:undefined,
+ // }
+ }
}
- }
- if(item.gradient){
- item.color.gradient = item.gradient
- }
- if(item.printObject.prints == null)item.printObject.prints = []
- item.printObject.prints.forEach((element:any) => {
- if(!element.designType){
- element.designType = 'Library'
+ if(item.gradient){
+ item.color.gradient = item.gradient
}
- });
- })
- detailData.singleOveral.value = rv.singleOverall
- detailData.designDetailShow = true
- // this.deleteShow = false
- initialize()
- setRevocation()
- detailData.loadingShow = false
- if(rv.singleOverall == "single"){
- store.commit('DesignDetail/setDesignColthes',rv.clothes[0].id)
+ if(item.printObject.prints == null)item.printObject.prints = []
+ item.printObject.prints.forEach((element:any) => {
+ if(!element.designType){
+ element.designType = 'Library'
+ }
+ });
+ })
+ detailData.singleOveral.value = rv.singleOverall
+ detailData.designDetailShow = true
+ // this.deleteShow = false
+ initialize()
+ setRevocation()
+ detailData.loadingShow = false
+ if(rv.singleOverall == "single"){
+ store.commit('DesignDetail/setDesignColthes',rv.clothes[0].id)
+ }
+ resolve(rv)
}
-
- }
-
- ).catch(rv=>{
- detailData.loadingShow = false
- })
+ ).catch(rv=>{
+ detailData.loadingShow = false
+ resolve(rv)
+ })
+ })
+
}
const initialize = ()=>{//design后初始化
diff --git a/src/component/Detail/model/modelPosition.vue b/src/component/Detail/model/modelPosition.vue
index ffee0398..925bd244 100644
--- a/src/component/Detail/model/modelPosition.vue
+++ b/src/component/Detail/model/modelPosition.vue
@@ -4,7 +4,7 @@
-
+
diff --git a/src/component/home/design/collection/MoodboardUpload.vue b/src/component/home/design/collection/MoodboardUpload.vue
index 9cafb8d4..4fbaef2b 100644
--- a/src/component/home/design/collection/MoodboardUpload.vue
+++ b/src/component/home/design/collection/MoodboardUpload.vue
@@ -339,7 +339,7 @@ export default defineComponent({
},
deleteFile(item: any) {
- if(item.type_.type1 == 'generate' || item.type_.type1 == 'material'){
+ if(item?.type_?.type1 == 'generate' || item?.type_?.type1 == 'material'){
item.jsContent1 = this.t('uploadFile.jsContent1',{maxImg:8})
item.state = 'delete'
this.store.commit("addGenerateMaterialFils", item);
diff --git a/src/component/home/design/collection/PrintboardUpload.vue b/src/component/home/design/collection/PrintboardUpload.vue
index e92add64..d1d37d96 100644
--- a/src/component/home/design/collection/PrintboardUpload.vue
+++ b/src/component/home/design/collection/PrintboardUpload.vue
@@ -385,7 +385,7 @@ export default defineComponent({
deleteFile(item:any){
// this.fileList.splice(item, 1)
// this.store.commit('setPrintboardFile',this.fileList)
- if(item.type_.type1 == 'generate' || item.type_.type1 == 'material'){
+ if(item?.type_?.type1 == 'generate' || item?.type_?.type1 == 'material'){
item.jsContent1 = this.t('uploadFile.jsContent1',{maxImg:16})
item.state = 'delete'
this.store.commit("addGenerateMaterialFils", item);
@@ -610,7 +610,6 @@ export default defineComponent({
}
this.fileList.push(data)
}
- console.log(this.fileList)
this.store.commit('setPrintboardFile',this.fileList)
},
diff --git a/src/component/home/design/collection/more.vue b/src/component/home/design/collection/more.vue
index a912c326..1c77c9ce 100644
--- a/src/component/home/design/collection/more.vue
+++ b/src/component/home/design/collection/more.vue
@@ -124,6 +124,14 @@ export default defineComponent({
designType:props.item.resData.designType,
}
}else{
+ rv.imgUrl = rv.url
+ rv.category = props.item.category
+ rv.categoryValue = props.item.categoryValue
+ rv.resData = {
+ id:rv.id,
+ url:rv.url,
+ designType:props.item.resData.designType,
+ }
props.list.unshift(rv)
}
}
diff --git a/src/component/home/design/index.vue b/src/component/home/design/index.vue
index e33f809e..688ba236 100644
--- a/src/component/home/design/index.vue
+++ b/src/component/home/design/index.vue
@@ -2117,13 +2117,14 @@ export default defineComponent({
type: string
) {
// if()
- if(this.isMove)return
+ if(this.isMove || this.isShowMark)return
this.store.commit('setOpenChatStatus',false)
if(design.resultType != "Design"){
this.selectEditBtn = design
this.setEditDesignType(collectionList,index,design.resultType,'edit',type)
return
}
+ this.isShowMark = true
design.designOutfitId = design.designPythonOutfitId?design.designPythonOutfitId:design.designOutfitId
let data = {
design: design,
@@ -2134,7 +2135,9 @@ export default defineComponent({
this.detailDestroy = true
nextTick(()=>{
let designDetail: any = this.$refs.designDetail;
- designDetail.showDesignDetailModal(data);
+ designDetail.showDesignDetailModal(data).then(()=>{
+ this.isShowMark = false
+ })
})
},
diff --git a/src/store/Detail/designDetail.ts b/src/store/Detail/designDetail.ts
index dbae1ece..f6277607 100644
--- a/src/store/Detail/designDetail.ts
+++ b/src/store/Detail/designDetail.ts
@@ -28,7 +28,21 @@ const DesignDetail : Module = {
currentPrintElement:null,
},
mutations:{
+ clearDetailData(state){
+ state.designDetail = null
+ state.designPreviewData = {}
+ state.frontBack = {
+ front:[],
+ back:[],
+ body:{},
+ }
+ state.selectDetail = null
+ state.printZIndex = -1
+ state.currentDetailType = ''
+ state.currentPrintElement = null
+ },
setDesignDetail(state,data){
+ console.log(data)
if(data.others.length > 0 && data.others[0].type == "Body"){
state.frontBack.body = data.others[0]
}
@@ -74,7 +88,6 @@ const DesignDetail : Module = {
state.frontBack.back = back
},
updataDetailItem(state,data){
- console.log(data)
state.designDetail.clothes.forEach((item:any) => {
if(item.id == state.selectDetail.id){
for (const key in data) {
From bc4ba865aaa1da397dd093c5f88e75350739a7f3 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Thu, 25 Sep 2025 15:30:01 +0800
Subject: [PATCH 38/54] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=BF=AE=E6=94=B9?=
=?UTF-8?q?=E9=82=AE=E7=AE=B1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
components.d.ts | 9 +++++++++
src/component/Account/account.vue | 4 ++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/components.d.ts b/components.d.ts
index b2d38451..74c7f549 100644
--- a/components.d.ts
+++ b/components.d.ts
@@ -9,18 +9,27 @@ export {}
declare module 'vue' {
export interface GlobalComponents {
ABadge: typeof import('ant-design-vue/es')['Badge']
+ ABreadcrumb: typeof import('ant-design-vue/es')['Breadcrumb']
ACheckbox: typeof import('ant-design-vue/es')['Checkbox']
+ ADatePicker: typeof import('ant-design-vue/es')['DatePicker']
ADrawer: typeof import('ant-design-vue/es')['Drawer']
+ AImage: typeof import('ant-design-vue/es')['Image']
AInputNumber: typeof import('ant-design-vue/es')['InputNumber']
+ AMenu: typeof import('ant-design-vue/es')['Menu']
+ AMenuItem: typeof import('ant-design-vue/es')['MenuItem']
AModal: typeof import('ant-design-vue/es')['Modal']
APopover: typeof import('ant-design-vue/es')['Popover']
ARangePicker: typeof import('ant-design-vue/es')['RangePicker']
ASelect: typeof import('ant-design-vue/es')['Select']
ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
ASlider: typeof import('ant-design-vue/es')['Slider']
+ ASpace: typeof import('ant-design-vue/es')['Space']
ASpin: typeof import('ant-design-vue/es')['Spin']
+ ASubMenu: typeof import('ant-design-vue/es')['SubMenu']
ASwitch: typeof import('ant-design-vue/es')['Switch']
ATable: typeof import('ant-design-vue/es')['Table']
+ ATabPane: typeof import('ant-design-vue/es')['TabPane']
+ ATabs: typeof import('ant-design-vue/es')['Tabs']
AUpload: typeof import('ant-design-vue/es')['Upload']
RouterLink: typeof import('vue-router')['RouterLink']
RouterView: typeof import('vue-router')['RouterView']
diff --git a/src/component/Account/account.vue b/src/component/Account/account.vue
index 57f7a42e..6a9280e5 100644
--- a/src/component/Account/account.vue
+++ b/src/component/Account/account.vue
@@ -50,10 +50,10 @@
{{ userDetail.email }}
-
+
From 80f409a969e738bb3e01365d7c02955072694f41 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Thu, 25 Sep 2025 16:58:52 +0800
Subject: [PATCH 39/54] =?UTF-8?q?pose=E9=A1=B5=E9=9D=A2=E6=B7=BB=E5=8A=A0?=
=?UTF-8?q?=E7=A7=AF=E5=88=86=E4=B8=8D=E8=B6=B3=E5=BC=B9=E7=AA=97=E6=8F=90?=
=?UTF-8?q?=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/home/tools/poseTransfer/index.vue | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/component/home/tools/poseTransfer/index.vue b/src/component/home/tools/poseTransfer/index.vue
index 509b32e2..2575fb42 100644
--- a/src/component/home/tools/poseTransfer/index.vue
+++ b/src/component/home/tools/poseTransfer/index.vue
@@ -305,6 +305,23 @@ export default defineComponent({
data.isGenerate = false
clearInterval(data.remGenerateTime)
data.remGenerate = false
+ if(res.errCode === 2){
+ Modal.confirm({
+ title: res.errMsg,
+ icon: createVNode(ExclamationCircleOutlined),
+ okText: 'Yes',
+ cancelText: 'No',
+ mask:false,
+ zIndex:99999,
+ centered:true,
+ onOk() {
+ store.commit("setUpgradePlan", true);
+ },
+ onCancel(){
+
+ }
+ });
+ }
})
}
const setGenerate = (dataList:any)=>{
From fcff09caa898f7815b01f5d51a6b0f7eeab1e6d1 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Thu, 25 Sep 2025 23:41:33 +0800
Subject: [PATCH 40/54] =?UTF-8?q?detail=E9=A2=9C=E8=89=B2=E9=97=AE?=
=?UTF-8?q?=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/store/Detail/designDetail.ts | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/store/Detail/designDetail.ts b/src/store/Detail/designDetail.ts
index f6277607..05f038b2 100644
--- a/src/store/Detail/designDetail.ts
+++ b/src/store/Detail/designDetail.ts
@@ -278,7 +278,6 @@ const DesignDetail : Module = {
state.selectDetail.partialDesign = item.partialDesign
}
state.selectDetail.designType = item.designType
- state.selectDetail.gradient = item.gradient
state.selectDetail.layersObject = item.layersObject
state.selectDetail.path = item.path
state.selectDetail.minIOPath = item.minIOPath
@@ -293,7 +292,8 @@ const DesignDetail : Module = {
r:item.color?.r,
g:item.color?.g,
b:item.color?.b,
- }
+ },
+ gradient:item.gradient,
}
state.selectDetail.undividedLayer = item.undividedLayer
if(state.selectDetail.newDetail?.sketch?.id && !state.selectDetail.id){
From 5e51d8132bea4d49315c8c92eb99d9de3d519055 Mon Sep 17 00:00:00 2001
From: X1627315083 <1627315083@qq.com>
Date: Fri, 26 Sep 2025 12:32:41 +0800
Subject: [PATCH 41/54] =?UTF-8?q?=E5=8D=95=E4=BB=B6sketch=E9=A2=9C?=
=?UTF-8?q?=E8=89=B2=E5=87=BA=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/component/Detail/model/modelPosition.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/component/Detail/model/modelPosition.vue b/src/component/Detail/model/modelPosition.vue
index 925bd244..8d70f4b7 100644
--- a/src/component/Detail/model/modelPosition.vue
+++ b/src/component/Detail/model/modelPosition.vue
@@ -18,7 +18,7 @@
{{$t('DesignPrintOperation.Submit')}}
@@ -154,6 +155,7 @@ export default defineComponent({
fun:null,
},
positionKey:0,
+ isUndividedLayerWithSinglePrint:false,
})
provide('getCanvasIfEdit',detailData.getCanvasIfEdit)
@@ -207,16 +209,24 @@ export default defineComponent({
element.designType = 'Library'
}
});
+ if(!item.layersObject[0].undividedLayerWithSinglePrint){
+ detailData.isUndividedLayerWithSinglePrint = true
+ }
})
detailData.singleOveral.value = rv.singleOverall
detailData.designDetailShow = true
// this.deleteShow = false
initialize()
setRevocation()
- detailData.loadingShow = false
if(rv.singleOverall == "single"){
store.commit('DesignDetail/setDesignColthes',rv.clothes[0].id)
}
+
+
+ if(detailData.isUndividedLayerWithSinglePrint){
+ }else{
+ detailData.loadingShow = false
+ }
resolve(rv)
}
).catch(rv=>{
@@ -339,7 +349,7 @@ export default defineComponent({
sketchString:list[i].sketchString?list[i].sketchString:'',
trims:(newData && detailData.currentDetailType == 'element' && isCurrent && !detailData.isEditPattern.value)?{prints:newData}:list[i].trims?.prints?list[i].trims:{prints:[]},
}
- if((list[i].color?.gradient || list[i].newDetail?.color?.gradient) && !detailData.isEditPattern.value){
+ if((detailData.isEditPattern.value && list[i].color?.gradient) || (!detailData.isEditPattern.value && (list[i].newDetail?.color?.gradient || list[i].color?.gradient))){
gradient = list[i].newDetail?.color?.gradient || list[i].color.gradient
gradient.colorImg = await setGradual(gradient,320,700)
data.gradient = gradient
@@ -351,9 +361,9 @@ export default defineComponent({
const getSubmitData = async (str:string)=>{
// return
let workspace = store.state.Workspace.probjects
- if(!detailData.selectDetail.path && !detailData.selectDetail.newDetail?.sketch?.minIOPath)return
+ if(!detailData?.selectDetail?.path && !detailData?.selectDetail?.newDetail?.sketch?.minIOPath)return
let clothes:any
- if(detailData.currentDetailType == 'models'){
+ if(detailData.currentDetailType == 'models' || detailData.isUndividedLayerWithSinglePrint){
clothes = await setClothes(detailData.designDetail.clothes)
}else{
clothes = await setClothes([detailData.selectDetail])
@@ -382,6 +392,7 @@ export default defineComponent({
delete detailData.designDetail.newModel
store.commit('DesignDetail/setPraeview',value)
detailData.loadingShow = false
+ detailData.isUndividedLayerWithSinglePrint = false
canvasReload()
// setRevocation()
}).catch(res=>{
@@ -431,6 +442,12 @@ export default defineComponent({
let data = getSubmitData('preview')
store.dispatch('DesignDetail/setSubmit',data)
}
+ const modelOnLoad = ()=>{
+ if(!detailData.isUndividedLayerWithSinglePrint)return
+ setTimeout(()=>{
+ previwe()
+ })
+ }
const detailEdit = async (str:any)=>{
if(str == 'edit'){
if(detailData.isEditPattern.value){
@@ -475,6 +492,7 @@ export default defineComponent({
oppositeRevocation,
detailEdit,
canvasReload,
+ modelOnLoad,
}
},
diff --git a/src/component/Detail/canvas/index.vue b/src/component/Detail/canvas/index.vue
index d096b738..f3743511 100644
--- a/src/component/Detail/canvas/index.vue
+++ b/src/component/Detail/canvas/index.vue
@@ -9,7 +9,7 @@
-->
-
+
isSketchLoad = true">
@@ -148,6 +148,7 @@ export default defineComponent({
},
loadingShow:false,
printElementList:null as any,
+ isSketchLoad:false,
})
const collItemSize = reactive({
collValue:18,
@@ -208,6 +209,7 @@ export default defineComponent({
})
}
const addPrintELement = async (data:any)=>{
+ if(!editPrintElementData.isSketchLoad)return
let {scale,location} = await setScaleLocation(data)
let item = {
angle:0,
@@ -379,6 +381,7 @@ export default defineComponent({
})
watch(()=>((editPrintElementData.selectDetail?.undividedLayer || editPrintElementData.selectDetail?.id)),(newVal)=>{
if(!newVal)return
+ editPrintElementData.isSketchLoad = false,
editPrintElementData.printStyleList[props.type] = {
single:[],
overall:[],
diff --git a/src/component/Detail/model/index.vue b/src/component/Detail/model/index.vue
index 07245dac..8a599934 100644
--- a/src/component/Detail/model/index.vue
+++ b/src/component/Detail/model/index.vue
@@ -23,7 +23,7 @@
- $emit('canvasReload')" @addSketch="()=>$emit('addSketch')" :imgDesignImg=imgDesignImg>
+ $emit('modelOnLoad')" @canvasReload="()=>$emit('canvasReload')" @addSketch="()=>$emit('addSketch')" :imgDesignImg=imgDesignImg>
@@ -42,7 +42,7 @@ export default defineComponent({
components:{
position,modelNav
},
- emits:['detailEdit','canvasReload','addSketch','revocation','oppositeRevocation'],
+ emits:['detailEdit','canvasReload','addSketch','revocation','oppositeRevocation','modelOnLoad'],
setup(props,{emit}) {
const {t} = useI18n()
const store = useStore();
diff --git a/src/component/Detail/model/modelPosition.vue b/src/component/Detail/model/modelPosition.vue
index f2dc4cea..cc4d9bd3 100644
--- a/src/component/Detail/model/modelPosition.vue
+++ b/src/component/Detail/model/modelPosition.vue
@@ -49,7 +49,7 @@ export default defineComponent({
type:Boolean,
}
},
- emits:['canvasReload','addSketch'],
+ emits:['canvasReload','addSketch','modelOnLoad'],
setup(props,{emit}) {
const {t} = useI18n()
const store = useStore();
@@ -116,6 +116,8 @@ export default defineComponent({
// detailData.frontBack.back[index].style[key] = value*sacle+'px'
}
});
+ console.log(111,detailData.frontBack?.body?.path)
+ emit('modelOnLoad')
};
img.src = detailData.frontBack?.body?.path;
})
diff --git a/src/store/Detail/designDetail.ts b/src/store/Detail/designDetail.ts
index 05f038b2..dd8a39ab 100644
--- a/src/store/Detail/designDetail.ts
+++ b/src/store/Detail/designDetail.ts
@@ -1,5 +1,6 @@
import {Module} from 'vuex'
import {RootState} from '../index'
+import { forEach } from 'jszip'
interface DesignDetail{
designDetail:any,
@@ -42,7 +43,6 @@ const DesignDetail : Module