Merge remote-tracking branch 'origin/StableVersion' into dev_vite

This commit is contained in:
X1627315083
2026-01-21 16:54:22 +08:00
13 changed files with 1021 additions and 1487 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -71,17 +71,17 @@ export class LayerSort {
// if (!layer.visible) { // if (!layer.visible) {
// continue; // 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++); zIndexMap.set(id, currentZIndex++);
} else if (layer.isFixed && layer.fabricObject) { } else if (layer.isFixed && id) {
// 固定图层对象 // 固定图层对象
zIndexMap.set(layer.fabricObject.id, currentZIndex++); zIndexMap.set(id, currentZIndex++);
} else if (layer.isFixedOther && layer.fabricObject) { } else if (layer.isFixedOther && id) {
// 其他固定图层对象 // 其他固定图层对象
zIndexMap.set(layer.fabricObject.id, currentZIndex++); zIndexMap.set(id, currentZIndex++);
} else if (!layer.isBackground && !layer.isFixed) { } else if (!layer.isBackground && !layer.isFixed) {
// 普通图层 // 普通图层
currentZIndex = this.processLayerObjects( currentZIndex = this.processLayerObjects(

View File

@@ -287,12 +287,27 @@ export default defineComponent({
const saveCanvas = async (canvasData:any)=>{ const saveCanvas = async (canvasData:any)=>{
const index = detailData.designDetail.clothes.findIndex(item => item.id === canvasData.id); const index = detailData.designDetail.clothes.findIndex(item => item.id === canvasData.id);
await new Promise<void>((resolve, reject) => { await new Promise<void>((resolve, reject) => {
let canvasJSON = JSON.parse(canvasData.canvasJSON) if(!detailDom?.editCanvas)return resolve()
if(!canvasJSON)return resolve() let canvasJSON = detailDom?.editCanvas?.getJSON()
// canvasData.canvas.objects.forEach((objectsItem:any) => { let canvasData = JSON.parse(canvasJSON)
// if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src) if(!canvasData)return resolve()
// }); function deepProcessObjects(data:any, callback:any) {
let blob = new Blob([JSON.stringify(canvasJSON)], { type: "application/json" }); 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.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" });
let formData = new FormData(); let formData = new FormData();
formData.append("file", blob, "data.json"); formData.append("file", blob, "data.json");
formData.append("designItemDetailId", detailData.selectDetail.id); formData.append("designItemDetailId", detailData.selectDetail.id);

View File

@@ -925,7 +925,9 @@ export default defineComponent({
}, },
onCancel() {} onCancel() {}
}) })
} }else{
this.fileList = this.fileList.filter((item: any) => item.imgUrl)
}
}) })
}, },
setGenerate(dataList: any) { setGenerate(dataList: any) {

View File

@@ -854,6 +854,10 @@ export default defineComponent({
font-size: 2.2rem; font-size: 2.2rem;
font-weight: bold; font-weight: bold;
color: #030303; color: #030303;
@media (max-width: 767px) {
font-size: 1.2rem;
margin-left: .5rem;
}
} }
.email_last_step_block_icon { .email_last_step_block_icon {
cursor: pointer; cursor: pointer;

View File

@@ -161,6 +161,13 @@
font-size: 2.4rem; font-size: 2.4rem;
line-height: 8.7rem; line-height: 8.7rem;
outline: none; outline: none;
@media (max-width: 767px) {
border-radius: .7rem;
width: 3.5rem;
height: 3.5rem;
font-size: 1.8rem;
line-height: 3.5rem;
}
} }
input:last-of-type { input:last-of-type {
margin-right: 0; margin-right: 0;

View File

@@ -335,9 +335,22 @@ export default defineComponent({
let canvasData = JSON.parse(canvasJSON) let canvasData = JSON.parse(canvasJSON)
if(!canvasData)return if(!canvasData)return
canvasData.canvas.objects.forEach((objectsItem:any) => { function deepProcessObjects(data:any, callback:any) {
if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src) 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.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" }); let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
let formData = new FormData(); let formData = new FormData();
formData.append("file", blob, "data.json"); formData.append("file", blob, "data.json");

View File

@@ -206,11 +206,22 @@ export default defineComponent({
if(!canvasJSON)return if(!canvasJSON)return
if(!store.state.Workspace.probjects?.id)return if(!store.state.Workspace.probjects?.id)return
let canvasData = JSON.parse(canvasJSON) let canvasData = JSON.parse(canvasJSON)
console.log(canvasData) function deepProcessObjects(data:any, callback:any) {
canvasData.canvas.objects.forEach((objectsItem:any) => { if (!Array.isArray(data)) return data;
if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src) 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.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" }); let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
let formData = new FormData(); let formData = new FormData();
formData.append("file", blob, "data.json"); formData.append("file", blob, "data.json");

View File

@@ -79,7 +79,7 @@
Forgot password Forgot password
</div> --> </div> -->
</div> </div>
<div class="password_input_block"> <div class="password_input_block" v-show="emailStap !== 2">
<div v-show="passwordConditionShow" class="conditionShow"> <div v-show="passwordConditionShow" class="conditionShow">
<div class="item"> <div class="item">
<div class="icon"> <div class="icon">
@@ -144,12 +144,13 @@
@click="changePasswordType()" @click="changePasswordType()"
></div> ></div>
</div> </div>
<span style="font-weight: 400; opacity: 0.7" <span style="font-weight: 400; opacity: 0.7" v-show="emailStap !== 2"
>{{ userI18n[selectUserI18n].inputPasswordTip }}</span >{{ userI18n[selectUserI18n].inputPasswordTip }}</span
> >
<div class="login_form_title marign_top30">{{ userI18n[selectUserI18n].Email }}</div> <div class="login_form_title marign_top30" v-show="emailStap !== 2">{{ userI18n[selectUserI18n].Email }}</div>
<input <input
class="login_form_input" class="login_form_input"
v-show="emailStap !== 2"
:placeholder="userI18n[selectUserI18n].inputEmail" :placeholder="userI18n[selectUserI18n].inputEmail"
v-model="email" v-model="email"
@keydown.enter="submitPerLogin()" @keydown.enter="submitPerLogin()"
@@ -917,6 +918,7 @@ export default defineComponent({
position: relative; position: relative;
@media (max-width: 768px) { @media (max-width: 768px) {
margin-top: 2.4rem; margin-top: 2.4rem;
height: 20rem;
} }
&[state="2"] { &[state="2"] {
> * { > * {
@@ -1015,6 +1017,9 @@ export default defineComponent({
// margin-top: 4rem; // margin-top: 4rem;
.email_last_step_bottom { .email_last_step_bottom {
padding: 0 40px; padding: 0 40px;
@media (max-width: 767px) {
padding: 0 2rem;
}
} }
.email_last_step_block { .email_last_step_block {
padding: 10px; padding: 10px;
@@ -1028,6 +1033,10 @@ export default defineComponent({
font-size: 2.2rem; font-size: 2.2rem;
font-weight: bold; font-weight: bold;
color: #030303; color: #030303;
@media (max-width: 767px) {
font-size: 1.2rem;
margin-left: .5rem;
}
} }
.email_last_step_block_icon { .email_last_step_block_icon {
cursor: pointer; cursor: pointer;
@@ -1229,6 +1238,9 @@ export default defineComponent({
font-weight: bold; font-weight: bold;
color: #000; color: #000;
cursor: pointer; cursor: pointer;
@media (max-width: 767px) {
font-size: 1rem;
}
} }
.email_last_step_des { .email_last_step_des {
@@ -1237,16 +1249,25 @@ export default defineComponent({
justify-content: space-between; justify-content: space-between;
margin-top: 4rem; margin-top: 4rem;
margin-bottom: 2rem; margin-bottom: 2rem;
@media (max-width: 767px) {
margin-top: 2rem;
margin-bottom: 1rem;
}
.sent_email_content { .sent_email_content {
font-size: 1.8rem; font-size: 1.8rem;
font-weight: bold; font-weight: bold;
color: #a5b0c2; color: #a5b0c2;
@media (max-width: 767px) {
font-size: 1.2rem;
}
} }
.email_tip_content { .email_tip_content {
font-size: 1.4rem; font-size: 1.4rem;
color: #030303; color: #030303;
@media (max-width: 767px) {
font-size: 1.2rem;
}
} }
} }
} }

View File

@@ -165,9 +165,22 @@ export default defineComponent({
time = setTimeout(()=>{ time = setTimeout(()=>{
let canvasData = JSON.parse(canvasJSON) let canvasData = JSON.parse(canvasJSON)
if(!canvasData)return if(!canvasData)return
canvasData.canvas.objects.forEach((objectsItem:any) => { function deepProcessObjects(data:any, callback:any) {
if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src) 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.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" }); let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" });
let formData = new FormData(); let formData = new FormData();
formData.append("file", blob, "data.json"); formData.append("file", blob, "data.json");

View File

@@ -1814,6 +1814,8 @@ export default defineComponent({
} }
}); });
}else{
this.generateList[selectCodeStr] = this.generateList[selectCodeStr].filter((item: any) => item.imgUrl)
} }
}); });
}, },
@@ -2420,6 +2422,7 @@ export default defineComponent({
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
position: absolute;
} }
&:hover .img_item_hover{ &:hover .img_item_hover{
// display: block; // display: block;

View File

@@ -8,15 +8,15 @@
<!-- <div class="upgrade-content-text">System upgrading</div> --> <!-- <div class="upgrade-content-text">System upgrading</div> -->
<div class="upgrade-content-text">System maintenance</div> <div class="upgrade-content-text">System maintenance</div>
<!-- 没有截至时间 --> <!-- 没有截至时间 -->
<div class="upgrade-content-textab">The AiDA system cannot be accessed temporarily due to system server maintenance. We apologize for any inconvenience this may cause and thank you for your understanding.</div> <!-- <div class="upgrade-content-textab">The AiDA system cannot be accessed temporarily due to system server maintenance. We apologize for any inconvenience this may cause and thank you for your understanding.</div> -->
<!-- <div class="upgrade-content-textab">Due to the system server upgrade, we will start the upgrade from 9:30 am Hong Kong time on the weekend of October 20th until October 21st. During this time,<br> the AiDA system will be temporarily inaccessible. We apologize for any inconvenience this may cause and thank you for your understanding.</div> --> <!-- <div class="upgrade-content-textab">Due to the system server upgrade, we will start the upgrade from 9:30 am Hong Kong time on the weekend of October 20th until October 21st. During this time,<br> the AiDA system will be temporarily inaccessible. We apologize for any inconvenience this may cause and thank you for your understanding.</div> -->
<!-- 有截至时间 --> <!-- 有截至时间 -->
<!-- <div class="upgrade-content-textab">Due to system server upgrades, we will be upgrading from Tuesday, September 2 at 00:00 (HKT) to Wednesday, September 3 at 00:00. During this period, the AiDA system will be temporarily inaccessible. <br>We sincerely apologize for the inconvenience caused and thank you for your understanding</div> --> <div class="upgrade-content-textab">Due to system server upgrades, maintenance will be carried out from 21:00 to 22:00 on December 19.<br>The AiDA system will be temporarily unavailable during this period. We sincerely apologize for any inconvenience caused and thank you for your understanding.</div>
<br> <br>
<br> <br>
<br> <br>
<div class="upgrade-content-textab">由于系统服务器维护AiDA系统暂时无法访问对于由此造成的任何不便我们深表歉意并感谢您的理解</div> <!-- <div class="upgrade-content-textab">由于系统服务器维护AiDA系统暂时无法访问对于由此造成的任何不便我们深表歉意并感谢您的理解</div> -->
<!-- <div class="upgrade-content-textab">由于系统服务器升级我们将于9月2日星期二凌晨00:00香港时间至9月3日星期三凌晨00:00进行升级<br>在此期间AiDA系统将暂时无法访问给您带来的不便我们深表歉意并感谢您的理解</div> --> <div class="upgrade-content-textab">由于系统服务器升级我们将于12月19日21:00 至12月19日22:00进行升级<br>在此期间AiDA系统将暂时无法访问给您带来的不便我们深表歉意并感谢您的理解</div>
</div> </div>
</div> </div>
</template> </template>