修复印花线稿合成图显示异常

This commit is contained in:
X1627315083
2026-01-16 13:39:00 +08:00
parent 2b7db933d9
commit a720fba84e
5 changed files with 106 additions and 52 deletions

View File

@@ -85,7 +85,7 @@
" alt="">
</div>
<div class="contentRight" v-else-if="currentDetailType && !isEditPattern.value">
<detailRight ref="detailRight"></detailRight>
<detailRight ref="detailRight" :sketchSize="sketchSize"></detailRight>
<div class="btn"
v-show="
currentDetailType !== 'color' &&
@@ -101,7 +101,7 @@
</div>
</div>
<div class="contentRight canvas" v-if="selectDetail && selectDetail.id && currentDetailType" :class="{'active': isEditPattern.value}">
<canvasBox ref="canvasBox" :key="canvasKey" @setSloganData="setSloganData" :isEditPattern="isEditPattern.value" :updateOtherLayers="updateOtherLayers"></canvasBox>
<canvasBox ref="canvasBox" :key="canvasKey" :sketchSize="sketchSize" @setSloganData="setSloganData" :isEditPattern="isEditPattern.value" :updateOtherLayers="updateOtherLayers"></canvasBox>
</div>
<!-- 画布 -->
<!-- <div class="content" v-else-if="selectDetail && selectDetail.id">
@@ -170,13 +170,29 @@ export default defineComponent({
},
positionKey:0,
detailLeftColorKey:0,
sketchSize:{
width:0,
height:0,
}
})
watch(()=>detailData.selectDetail,(newValue,oldValue)=>{
const getSketchSize:any = async ()=>{
let img = new Image();
img.src = detailData.selectDetail.path;
await new Promise((resolve, reject) => {
img.onload = () => {
detailData.sketchSize.width = img.width
detailData.sketchSize.height = img.height
resolve([img.width, img.height]);
}
img.onerror = reject;
});
}
watch(()=>detailData.selectDetail,async (newValue,oldValue)=>{
detailData.imgDomIndex = detailData.frontBack.front.findIndex((item:any)=>item.id == newValue.id)
if(newValue)await getSketchSize()
detailData.canvasKey += 1
// privewDetail(oldValue)
},{immediate: true})
provide('getCanvasIfEdit',detailData.getCanvasIfEdit)
provide('singleOveral',detailData.singleOveral)
provide('isEditPattern',detailData.isEditPattern)