This commit is contained in:
X1627315083
2025-07-24 20:15:39 +08:00
parent e203861586
commit 46b1c5cd71
22 changed files with 1002 additions and 284 deletions

View File

@@ -685,7 +685,7 @@ setup(props:any,{emit}) {
}
let emitData = {
status:productimg.openType,
generateCourse:[{
addList:[{
...productimg.generateCourse,
}]
}

View File

@@ -544,7 +544,6 @@ export default defineComponent({
},
],
resultType:'All',
oldSelectLikeDesign:null as any,
likeDesignTools:false,
})
watch(()=>likeDesignCollectionList.value.length,(val)=>{
@@ -1074,34 +1073,60 @@ export default defineComponent({
clearInterval(prductimgTime.PoseTransfer)
clearInterval(prductimgTime.Relight)
let list = likeDesignCollectionList.value
data.generateCourse.forEach((generateCourseItem:any)=>{
let oldData = generateCourseItem.oldData
if(oldData?.resultType == "Design"){
let index = list.findIndex((item:any)=>(item.userLikeSortId == generateCourseItem.parentId && item.resultType == "Design"))
if(!list[index]?.childList)list[index].childList = []
if(data.status == 'add'){
//添加元素
if(data.addList){
data.addList.forEach((generateCourseItem:any)=>{
let oldData = generateCourseItem.oldData
if(oldData?.resultType == "Design"){
let index = list.findIndex((item:any)=>(item.userLikeSortId == generateCourseItem.parentId && item.resultType == "Design"))
if(!list[index]?.childList)list[index].childList = []
generateCourseItem.sort = list[index]?.childList.length + 1
upDataSort(generateCourseItem,index)
list[index]?.childList.push(generateCourseItem)
}
}else{
let index = list.findIndex((item:any)=>(item.userLikeSortId == generateCourseItem.parentId))
console.log(index)
console.log(list[index])
if(index != -1){
if(!list[index]?.childList){
list[index].childList = []
}
if(data.status == 'add'){
upDataSort(generateCourseItem,index)
list[index]?.childList.push(generateCourseItem)
}else{
let childIndex = list[index].childList.findIndex((item:any)=>(item.id == generateCourseItem.id))
list[index].childList[childIndex] = generateCourseItem
}
}else{
let index = list.findIndex((item:any)=>(item.userLikeSortId == generateCourseItem.parentId))
if(index != -1){
if(!list[index]?.childList){
list[index].childList = []
}
if(data.status == 'add'){
upDataSort(generateCourseItem,index)
list[index]?.childList.push(generateCourseItem)
}else{
let childIndex = list[index].childList.findIndex((item:any)=>(item.id == generateCourseItem.id))
list[index].childList[childIndex] = generateCourseItem
}
}
}
}
})
})
}
if(data.deleteList){
data.deleteList.forEach((generateCourseItem:any)=>{
let oldData = generateCourseItem.oldData
if(oldData?.resultType == "Design"){
}else{
let index = list.findIndex((item:any)=>(item.userLikeSortId == generateCourseItem.parentId))
console.log(index)
if(index != -1){
if(!list[index]?.childList){
list[index].childList = []
}
let childIndex = list[index].childList.findIndex((item:any)=>(item.id == generateCourseItem.id))
console.log(list[index].childList,list[index].childList[childIndex])
list[index].childList.forEach((childItem)=>{
if(childItem.sort > list[index].childList[childIndex].sort){
childItem.sort -= 1
}
})
list[index].childList.splice(childIndex,1)
}
}
})
}
await nextTick().then(()=>{
designData.isUnfold = true
uploadLikeDom()
@@ -1210,33 +1235,35 @@ export default defineComponent({
}
const setUnfold = ()=>{
if(!designData.isUnfold){
designData.selectLikeDesign = designData.oldSelectLikeDesign || []
designData.selectLikeDesign = []
}
uploadLikeDom()
}
const getSelectList = ()=>{
let list = [] as any
let childLength = 0
likeDesignCollectionList.value.sort((a:any,b:any)=>{return a.sort - b.sort})
likeDesignCollectionList.value.forEach((likeItem:any,index:any)=>{
let item = JSON.parse(JSON.stringify(likeItem))
item.oldSort = item.sort
if(item?.childList?.length > 0){
item.childList.forEach((childItem:any,childIndex:number)=>{
childItem.oldSort = childItem.sort
childItem.sort = childItem.sort + childLength + index
// childItem.sort = childIndex + item.sort + childLength
list.push(childItem)
})
childLength = item.childList.length + childLength
}
item.sort = childLength + item.sort
list.push(item)
})
return list
}
const uploadLikeDom = ()=>{
if(designData.isUnfold){
// const parents = designData.selectLikeDesign.filter((item:any) => item.type === 'design');
designData.selectLikeDesign = []
likeDesignCollectionList.value.sort((a:any,b:any)=>{return a.sort - b.sort})
let childLength = 0
likeDesignCollectionList.value.forEach((likeItem:any,index:any)=>{
let item = JSON.parse(JSON.stringify(likeItem))
item.oldSort = item.sort
if(item?.childList?.length > 0){
item.childList.forEach((childItem:any,childIndex:number)=>{
childItem.oldSort = childItem.sort
console.log(childItem.sort,childLength,index)
childItem.sort = childItem.sort + childLength + index
// childItem.sort = childIndex + item.sort + childLength
designData.selectLikeDesign.push(childItem)
})
childLength = item.childList.length + childLength
}
item.sort = childLength + item.sort
designData.selectLikeDesign.push(item)
})
designData.oldSelectLikeDesign = []
designData.selectLikeDesign = getSelectList()
designData.resultType = 'All'
}else{
if(designData.selectLikeDesign.length == 0){
@@ -1272,17 +1299,16 @@ export default defineComponent({
// setUnfold()
}
if(designData.resultType != 'All'){
if(designData.oldSelectLikeDesign.length == 0)designData.oldSelectLikeDesign = designData.selectLikeDesign
if(designData.resultType == 'Product'){
designData.selectLikeDesign = designData.oldSelectLikeDesign.filter((item:any) => (item.resultType === 'ToProductImage' || item.resultType === 'Relight'));
designData.selectLikeDesign = getSelectList().filter((item:any) => (item.resultType === 'ToProductImage' || item.resultType === 'Relight'));
}else{
designData.selectLikeDesign = designData.oldSelectLikeDesign.filter((item:any) => item.resultType === designData.resultType);
designData.selectLikeDesign = getSelectList().filter((item:any) => item.resultType === designData.resultType);
}
designData.selectLikeDesign.forEach((item:any,index:number) => {
item.sort = index + 1
})
}else{
designData.selectLikeDesign = designData.oldSelectLikeDesign
designData.selectLikeDesign = getSelectList()
designData.selectLikeDesign.forEach((item:any,index:number) => {
item.sort = index + 1
})

View File

@@ -35,6 +35,7 @@
@setLike="designLike"
class="toProduct"
:source="source"
@unLike="unLike"
:isState="openType =='toProduct'"
v-if="openType == 'toProduct'"
></toProductRelight>
@@ -44,6 +45,7 @@
@setLike="designLike"
class="relight"
:source="source"
@unLike="unLike"
:isState="openType =='relight'"
v-if="openType == 'relight'"
></toProductRelight>
@@ -114,6 +116,7 @@ export default defineComponent({
likeDesignList:[],
canvasSelectList:[] as any,
canvasDetailData:null as any,
unLikeList:[],
})
const dataDom = reactive({
toProduct:null as any,
@@ -179,7 +182,9 @@ export default defineComponent({
dataDom[value].openSetData(fileList)
})
}
const unLike = (item)=>{
data.unLikeList.push(item)
}
let cleardata = async ()=>{
let list = []
if(data.openType == 'toProduct'){
@@ -195,11 +200,13 @@ export default defineComponent({
});
let emitData = {
status:'add',
generateCourse:generateCourse,
addList:generateCourse,
deleteList:data.unLikeList,
}
emit('editToolsSuccess',emitData)
data.openType = ''
data.designTools = false
data.unLikeList = []
store.commit('toolsClear')
}
const designLike = ()=>{
@@ -401,6 +408,7 @@ export default defineComponent({
changeCanvas,
share,
clearPublish,
unLike,
}
},
provide() {
@@ -445,11 +453,16 @@ export default defineComponent({
height: 100%;
> .collectionBox{
height: 100%;
display: flex;
> .canvasBox{
height: 100%;
flex:1;
width: 100%;
// flex:1;
// width: 99rem;
// height: 80rem;
display: flex;
overflow: hidden;
position: relative;
&.editCanvas{
padding-top: 5rem;
display: flex;