调整layout速度慢问题

This commit is contained in:
X1627315083
2024-05-23 13:25:19 +08:00
parent a5cfaeafe5
commit 785bb8b70e
6 changed files with 148 additions and 128 deletions

View File

@@ -89,18 +89,19 @@
<div class="habit_System_Designer"> <div class="habit_System_Designer">
<a-slider id="system_silder" <a-slider id="system_silder"
v-model:value="workspaceItem.systemDesignerPercentage" v-model:value="workspaceItem.systemDesignerPercentage"
@afterChange="systemDesigner" @afterChange="setSystemDesigner"
:tip-formatter="formatter" :tip-formatter="formatter"
:tooltipVisible="false"
> >
</a-slider> </a-slider>
<div class="habit_System_Designer_text_max"> <div class="habit_System_Designer_text_max">
<div class="habit_System_Designer_text"> <div class="habit_System_Designer_text">
{{ $t('Habit.System') }}<span>(100%)</span> {{ $t('Habit.System') }}<span>({{systemDesigner.system}}%)</span>
</div> </div>
<div class="habit_System_Designer_text"> <div class="habit_System_Designer_text">
{{ $t('Habit.Designer') }}<span>(100%)</span> {{ $t('Habit.Designer') }}<span>({{systemDesigner.designer}}%)</span>
</div> </div>
</div> </div>
</div> </div>
@@ -191,6 +192,10 @@ export default defineComponent({
mannequinType:'', mannequinType:'',
mannequinId:'', mannequinId:'',
}) })
let systemDesigner:any = ref({
system:0,
designer:0,
})
let mannequins:any = ref([{},{}]) let mannequins:any = ref([{},{}])
let systemSeleves= ref(false); let systemSeleves= ref(false);
let total= ref(0); let total= ref(0);
@@ -228,6 +233,7 @@ export default defineComponent({
return{ return{
systemSeleves, systemSeleves,
mannequins, mannequins,
systemDesigner,
openType, openType,
total, total,
driver__, driver__,
@@ -624,10 +630,12 @@ export default defineComponent({
} }
}, },
//设置系统设计占比 //设置系统设计占比
systemDesigner(num: number) { setSystemDesigner(num: number) {
this.workspaceItem.systemDesignerPercentage = num this.workspaceItem.systemDesignerPercentage = num
}, },
formatter(value: number) { formatter(value: number) {
this.systemDesigner.system = 100 - value
this.systemDesigner.designer = value
let num = Math.abs((value-50)*2) let num = Math.abs((value-50)*2)
return `${num}%`; return `${num}%`;
}, },
@@ -908,7 +916,7 @@ export default defineComponent({
} }
.habit_System_Designer { .habit_System_Designer {
margin-top: calc(8rem*1.2); // margin-top: calc(8rem*1.2);
:deep(.ant-slider-track), :deep(.ant-slider-track),
:deep(.ant-slider-rail) { :deep(.ant-slider-rail) {

View File

@@ -443,8 +443,9 @@ export default defineComponent({
} }
}, },
layout(){ async layout(){
if(this.loadingShow)return
this.loadingShow = true
this.store.commit("setDisposeMoodboard", []); this.store.commit("setDisposeMoodboard", []);
let arr = JSON.parse(JSON.stringify(this.store.state.UploadFilesModule.moodboard)) let arr = JSON.parse(JSON.stringify(this.store.state.UploadFilesModule.moodboard))
this.layoutList = arr this.layoutList = arr
@@ -457,29 +458,28 @@ export default defineComponent({
} }
if(this.moodb_[arr.length-1].length != 1){ if(this.moodb_[arr.length-1].length != 1){
if(JSON.stringify(this.moodb_className) == JSON.stringify(this.moodb_[arr.length-1][random])){ if(JSON.stringify(this.moodb_className) == JSON.stringify(this.moodb_[arr.length-1][random])){
this.loadingShow = false
this.layout() this.layout()
return return
} }
} }
if(this.loadingShow){
return
}
this.loadingShow = true
this.edieShow = true this.edieShow = true
if(this.moodb_[arr.length-1].length == 2){ if(this.moodb_[arr.length-1].length == 2){
this.moodb_className = this.moodb_[arr.length-1][0] this.moodb_className = this.moodb_[arr.length-1][0]
}else{ }else{
this.moodb_className = this.moodb_[arr.length-1][random] this.moodb_className = this.moodb_[arr.length-1][random]
} }
this.layoutOpen = true this.layoutOpen = true
//提交模板 //提交模板
// this.loadingShow = true // this.loadingShow = true
this.layoutList.forEach((v:any)=>{ this.layoutList.forEach((v:any)=>{
v.setPitch = false v.setPitch = false
}) })
nextTick().then(async ()=>{ nextTick().then(()=>{
let layoutCentent = document.getElementById('modal_img') let layoutCentent = document.getElementById('modal_img')
let file = await domTurnImg(layoutCentent) domTurnImg(layoutCentent).then((rv)=>{
let file = rv
let param = new FormData(); let param = new FormData();
param.append('inPin','0') param.append('inPin','0')
param.append('level1Type','Moodboard') param.append('level1Type','Moodboard')
@@ -502,6 +502,8 @@ export default defineComponent({
driverObj__.moveNext() driverObj__.moveNext()
} }
}) })
})
}, },
setmoodbClass(val:any){ setmoodbClass(val:any){
this.moodb_className = val this.moodb_className = val

View File

@@ -1107,6 +1107,7 @@ export default defineComponent({
cursor: pointer; cursor: pointer;
&:hover .delete_like_file_block{ &:hover .delete_like_file_block{
display: block; display: block;
opacity: 1;
} }
img{ img{
object-fit: cover; object-fit: cover;

View File

@@ -610,7 +610,8 @@ export default defineComponent({
}) })
nextTick().then(async ()=>{ nextTick().then(async ()=>{
let layoutCentent = document.getElementById('layoutCentent') let layoutCentent = document.getElementById('layoutCentent')
let file = await domTurnImg(layoutCentent) domTurnImg(layoutCentent).then((rv)=>{
let file =rv
let param = new FormData(); let param = new FormData();
param.append('inPin','0') param.append('inPin','0')
param.append('gender','') param.append('gender','')
@@ -631,6 +632,8 @@ export default defineComponent({
}) })
}) })
})
}, },
beforeUpload(){ beforeUpload(){

View File

@@ -180,6 +180,28 @@ export default defineComponent({
this.uploadUrl = getUploadUrl(); this.uploadUrl = getUploadUrl();
}, },
directives:{ directives:{
modelImg:{
mounted(el) {
let parentNode = el.parentNode
if(parentNode.offsetHeight > parentNode.offsetWidth){
el.style.height = 100+'%'
el.style.width = 'auto'
}else{
el.style.width = 100+'%'
el.style.height = 'auto'
}
},
updated (el) {
let parentNode = el.parentNode
if(parentNode.offsetHeight > parentNode.offsetWidth){
el.style.height = 100+'%'
el.style.width = 'auto'
}else{
el.style.width = 100+'%'
el.style.height = 'auto'
}
}
},
//操作移动 //操作移动
layout:{ layout:{
mounted (el,layout:any,binding) { mounted (el,layout:any,binding) {
@@ -541,28 +563,6 @@ export default defineComponent({
}) })
}, },
}, },
modelImg:{
// mounted(el) {
// let parentNode = el.parentNode
// if(parentNode.offsetHeight > parentNode.offsetWidth){
// el.style.height = 100+'%'
// el.style.width = 'auto'
// }else{
// el.style.width = 100+'%'
// el.style.height = 'auto'
// }
// },
// updated (el) {
// let parentNode = el.parentNode
// if(parentNode.offsetHeight > parentNode.offsetWidth){
// el.style.height = 100+'%'
// el.style.width = 'auto'
// }else{
// el.style.width = 100+'%'
// el.style.height = 'auto'
// }
// }
}
}, },
methods: { methods: {
init(){ init(){
@@ -641,7 +641,8 @@ export default defineComponent({
}) })
nextTick().then(async ()=>{ nextTick().then(async ()=>{
let layoutCentent = document.getElementById('layoutCentent') let layoutCentent = document.getElementById('layoutCentent')
let file = await domTurnImg(layoutCentent) domTurnImg(layoutCentent).then((rv)=>{
let file = rv
let param = new FormData(); let param = new FormData();
param.append('inPin','0') param.append('inPin','0')
param.append('gender','') param.append('gender','')
@@ -661,7 +662,7 @@ export default defineComponent({
this.loadingShow = false this.loadingShow = false
}) })
}) })
})
}, },
beforeUpload(){ beforeUpload(){
@@ -900,6 +901,8 @@ export default defineComponent({
// object-fit: cover; // object-fit: cover;
// width: 100%; // width: 100%;
// height: 100%; // height: 100%;
height: 100%;
width: auto;
pointer-events: none; pointer-events: none;
float: left; float: left;
user-select:none; user-select:none;

View File

@@ -1,45 +1,48 @@
import html2canvas from "html2canvas"; import html2canvas from "html2canvas";
const getJpeg = dom =>{ const getJpeg = dom =>{
return new Promise(resolve =>{ return new Promise(resolve =>{
setTimeout(() => {
html2canvas(dom,{useCORS: true,}).then(canvas =>{ html2canvas(dom,{useCORS: true,}).then(canvas =>{
let base64 = canvas.toDataURL('image/jpeg',.9); let base64 = canvas.toDataURL('image/jpeg',.9);
let quality = 0.9 // 压缩系数0-1之间 // let quality = 0.9 // 压缩系数0-1之间
let newImage = new Image() let newImage = new Image()
newImage.src = base64 newImage.src = base64
newImage.setAttribute('crossOrigin', 'Anonymous') // url为外域时需要 newImage.setAttribute('crossOrigin', 'Anonymous') // url为外域时需要
let imgWidth, // let imgWidth,
imgHeight // imgHeight
let w = undefined // let w = undefined
newImage.onload = function () { newImage.onload = function () {
w = this.width * 1 // w = this.width * 1
imgWidth = this.width // imgWidth = this.width
imgHeight = this.height // imgHeight = this.height
let canvas = document.createElement('canvas') // let canvas = document.createElement('canvas')
let ctx = canvas.getContext('2d') // let ctx = canvas.getContext('2d')
if (Math.max(imgWidth, imgHeight) > w) { // if (Math.max(imgWidth, imgHeight) > w) {
if (imgWidth > imgHeight) { // if (imgWidth > imgHeight) {
canvas.width = w // canvas.width = w
canvas.height = w * (imgHeight / imgWidth) // canvas.height = w * (imgHeight / imgWidth)
} else { // } else {
canvas.height = w // canvas.height = w
canvas.width = w * (imgWidth / imgHeight) // canvas.width = w * (imgWidth / imgHeight)
} // }
} else { // } else {
canvas.width = imgWidth // canvas.width = imgWidth
canvas.height = imgHeight // canvas.height = imgHeight
quality = 0.6 // quality = 0.6
} // }
ctx.clearRect(0, 0, canvas.width, canvas.height) // ctx.clearRect(0, 0, canvas.width, canvas.height)
ctx.drawImage(this, 0, 0, canvas.width, canvas.height) // // 这里面的 this 指向 newImage // ctx.drawImage(this, 0, 0, canvas.width, canvas.height) // // 这里面的 this 指向 newImage
let smallBase64 = canvas.toDataURL('image/jpeg', quality) // 压缩语句 // let smallBase64 = canvas.toDataURL('image/jpeg', quality) // 压缩语句
let fileData = dataURLtoFile(smallBase64); let fileData = dataURLtoFile(base64);
let fileOfBlob = new File([fileData], new Date() + ".jpg"); // 命名图片名 let fileOfBlob = new File([fileData], new Date() + ".jpg"); // 命名图片名
// console.log(smallBase64); // console.log(smallBase64);
// resolve(base64ToFile(fileOfBlob)) // resolve(base64ToFile(fileOfBlob))
resolve(fileOfBlob) resolve(fileOfBlob)
} }
}) })
}, 100);
}) })
} }
//base64转成blob //base64转成blob
function dataURLtoFile(dataURI, type) { function dataURLtoFile(dataURI, type) {