This commit is contained in:
X1627315083
2024-02-22 15:50:02 +08:00
parent 244eadb58a
commit 3f15a51aac

View File

@@ -38,10 +38,10 @@ export default defineComponent({
let designShowIndex = reactive({value:-1}) let designShowIndex = reactive({value:-1})
let frontBack = reactive({}) let frontBack = reactive({})
let frontBackOld = reactive({}) let frontBackOld = reactive({})
let canvasFontBackMove = reactive({ let canvasFontBackMove = {
back:[], back:[],
front:[], front:[],
}) }
let setPostition = async (url) =>{ let setPostition = async (url) =>{
let img = await loadImage(url) let img = await loadImage(url)
@@ -71,6 +71,7 @@ export default defineComponent({
} }
let setImgSize = async ()=>{ let setImgSize = async ()=>{
let designItemDetail = JSON.parse(JSON.stringify(store.state.DesignDetailModule.designItemDetail)) let designItemDetail = JSON.parse(JSON.stringify(store.state.DesignDetailModule.designItemDetail))
let front = [] let front = []
let back = [] let back = []
let body let body
@@ -135,7 +136,6 @@ export default defineComponent({
// console.log(canvasBox); // console.log(canvasBox);
canvasBox.innerHTML = ''; // 清空原有内容 canvasBox.innerHTML = ''; // 清空原有内容
canvasBox.appendChild(canvasDom); canvasBox.appendChild(canvasDom);
canvas = reactive(null)
canvas = new fabric.Canvas(canvasDom, { canvas = new fabric.Canvas(canvasDom, {
backgroundColor: "rgba(255,255,255,1)", backgroundColor: "rgba(255,255,255,1)",
// fill: '#ffde7d', // fill: '#ffde7d',
@@ -145,12 +145,20 @@ export default defineComponent({
isDrawingMode: false, // 开启绘图模式 isDrawingMode: false, // 开启绘图模式
}); });
canvas.clear(); canvas.clear();
canvasFontBackMove = reactive({ canvasFontBackMove = {
back:[], back:[],
front:[], front:[],
}) }
console.log(canvas.getObjects());
let fontBackMove = [] let fontBackMove = []
canvas.on('selection:created', (e)=> {
console.log(3213123123);
// console.log(canvas.getActiveObject());
// // if()
// console.log(frontBack.front.find(person => person.id === canvas.getActiveObject().id));
// designShowIndex.value =
});
// selection:updated
canvas.on('selection:cleared', ()=>{ canvas.on('selection:cleared', ()=>{
designShowIndex.value = -1 designShowIndex.value = -1
}) })
@@ -185,7 +193,6 @@ export default defineComponent({
canvas.add(img); canvas.add(img);
}); });
frontBack.front.forEach((item) => { frontBack.front.forEach((item) => {
console.log(item);
if(!item.imageUrl){ if(!item.imageUrl){
return return
} }
@@ -197,6 +204,7 @@ export default defineComponent({
scaleY: Number(item.style.height.match(/\d+(\.\d+)?/)[0])/img.height, scaleY: Number(item.style.height.match(/\d+(\.\d+)?/)[0])/img.height,
// selectable: false // selectable: false
}); });
img.id = item.id
canvas.add(img); canvas.add(img);
canvasFontBackMove.back.forEach((backItem) => { canvasFontBackMove.back.forEach((backItem) => {
if(backItem && backItem.id == item.id){ if(backItem && backItem.id == item.id){
@@ -229,23 +237,20 @@ export default defineComponent({
canvasFontBackMove.front.push({id:item.id,img:img}) canvasFontBackMove.front.push({id:item.id,img:img})
}); });
}); });
var objects = canvas.getObjects(); var objects = canvas.getObjects();
} }
let clothesOpen = (item,index)=>{ let clothesOpen = (item,index)=>{
setCanvas(frontBack) setpitch(item,index)
// setpitch(item,index) designShowIndex.value = index
// designShowIndex.value = index
} }
let setpitch = (item,index)=>{ let setpitch = (item,index)=>{
console.log(canvas.discardActiveObject); console.log(123);
canvas.discardActiveObject(); canvas.discardActiveObject();
// this.designItemDetail.clothes.forEach((item)=>{ // this.designItemDetail.clothes.forEach((item)=>{
// item.clothesOpen = false // item.clothesOpen = false
// }) // })
// this.designItemDetail.clothes[index].clothesOpen = true // this.designItemDetail.clothes[index].clothesOpen = true
// console.log(canvas.getActiveObject());
for (const iterator in canvasFontBackMove) { for (const iterator in canvasFontBackMove) {
canvasFontBackMove[iterator].forEach((canvasItem,canvasIndex) => { canvasFontBackMove[iterator].forEach((canvasItem,canvasIndex) => {
if(canvasItem.id == item.id){ if(canvasItem.id == item.id){
@@ -262,6 +267,10 @@ export default defineComponent({
} }
// canvas.setDepth(object1, canvas.getObjects().indexOf(object2) + 1); // canvas.setDepth(object1, canvas.getObjects().indexOf(object2) + 1);
} }
let imgClear = ()=>{
frontBack = JSON.parse(JSON.stringify(frontBackOld))
setCanvas(frontBack)
}
return { return {
designItemDetail, designItemDetail,
current, current,
@@ -273,6 +282,7 @@ export default defineComponent({
canvasFontBackMove, canvasFontBackMove,
setImgSize, setImgSize,
clothesOpen, clothesOpen,
imgClear,
}; };
}, },
data() { data() {
@@ -354,9 +364,7 @@ export default defineComponent({
// })) // }))
// this.setCanvas(this.frontBack) // this.setCanvas(this.frontBack)
// }, // },
imgClear(){
this.frontBack = JSON.parse(JSON.stringify(this.frontBackOld))
},
//按比设置单件衣服宽高位置 //按比设置单件衣服宽高位置
async setPostition(url){ async setPostition(url){