This commit is contained in:
X1627315083
2024-06-28 17:34:28 +08:00
parent ade36d899a
commit 8e694ce2c4
15 changed files with 210 additions and 66 deletions

View File

@@ -48,6 +48,19 @@
</div>
</div>
<div class="productImg_content_item_title productImg_content_item_title_similarity">
<span>{{$t('ProductImg.Similarity')}}</span>
</div>
<div>
<input type="text" v-model="similarity">
<a-slider id="system_silder"
v-model:value="similarity"
@afterChange="setSimilarity"
:tooltipVisible="false"
:step=".05"
>
</a-slider>
</div>
<div class="productImg_content_item_title">{{$t('ProductImg.SelectCollection')}}</div>
<div class="productImg_content_item_imgBox generalScroll" v-mousewheel>
<div class="content_item_imgBox_itemImg" v-for="item in selectList[productimgMenu.value]" :key="item.id" >
@@ -112,27 +125,34 @@
{{$t('Generate.Close')}}
</div>
</div>
<!-- <div class="input_clear started_btn" @click="clearPrductimg">{{$t('ProductImg.Clear')}}</div> -->
</div>
</div>
<div class="productImg_right">
<div class="productImg_content_item_title">{{$t('ProductImg.GenerateProduct')}}</div>
<div class="productImg_right_item_box generalScroll" v-mousewheel>
<div class="productImg_right_item" v-for="item,index in generateList[productimgMenu.value]" :key="item">
<img :src="item.url" alt="">
<div class="productImg_right_item_like">
<i class="fi fi-rr-heart" @click.stop="likeFile(item,'like',index)"></i>
<div class="productImg_right_item_imgBox" v-if="item.status != 'Success'">
<img class="loadingImg" src="@/assets/images/homePage/loading.gif" alt="">
</div>
<div class="productImg_right_item_scale iconLeft">
<i class="fi fi-bs-expand-arrows-alt" @click.stop="setScaleImage(generateList[productimgMenu.value],index)"></i>
</div>
<div class="productImg_right_item_menu iconLeft">
<i class="fi fi-rr-circle-ellipsis" @click.stop="setMenuShow(item)"></i>
<ul v-show="item.menuShow">
<li v-for="menuItem,index in productimgMenuList" v-show="index != 0" @click.stop="setMenu(menuItem,item)" :key="menuItem.value">{{ menuItem.label }}</li>
</ul>
<div class="productImg_right_item_imgBox" v-else>
<img :src="item.url" alt="">
<div class="productImg_right_item_like">
<i class="fi fi-rr-heart" @click.stop="likeFile(item,'like',index)"></i>
</div>
<div class="productImg_right_item_scale iconLeft">
<i class="fi fi-bs-expand-arrows-alt" @click.stop="setScaleImage(generateList[productimgMenu.value],index)"></i>
</div>
<div class="productImg_right_item_menu iconLeft">
<i class="fi fi-rr-circle-ellipsis" @click.stop="setMenuShow(item)"></i>
<ul v-show="item.menuShow">
<li v-for="menuItem,index in productimgMenuList" v-show="index != 0" @click.stop="setMenu(menuItem,item)" :key="menuItem.value">{{ menuItem.label }}</li>
</ul>
</div>
</div>
</div>
<div class="mark_loading" v-show="isShowMark">
<a-spin size="large" />
</div>
</div>
<div class="productImg_content_item_title productImg_right_titleBtn">
{{$t('ProductImg.SelectedProduct')}}
@@ -158,9 +178,7 @@
</div>
</div>
</div>
<div class="mark_loading" v-show="isShowMark">
<a-spin size="large" />
</div>
<ExportModel ref="ExportModel" @setTask="setTask"></ExportModel>
<scaleImage ref="scaleImage"></scaleImage>
</a-modal>
@@ -206,6 +224,7 @@ export default defineComponent({
selectProductimgList:[],
generateList:{},
likeList:[],
similarity:0,
})
let productimgMenuList = ref([
{
@@ -265,7 +284,6 @@ export default defineComponent({
}
let cleardata = ()=>{
productImg.value = false
productImgData.isShowMark = false
productImgData.likeList = []
productImgData.generateList = {}
productimgMenu.value = productimgMenuList.value[0]
@@ -369,7 +387,8 @@ export default defineComponent({
"isLike": 0,
"taskId": "",
"toProductImageRecordId": 0,
"url": ""
"url": "",
imageStrength:.3
}
if(productImgData.fileList[productimgMenu.value.value]){
productImgData.fileList[productimgMenu.value.value].forEach((item:any)=>{
@@ -411,15 +430,23 @@ export default defineComponent({
if(productimgMenu.value.value == 'Relight'){
url = Https.httpUrls.relight
}
productImgData.isShowMark = true
Https.axiosPost(url, data).then(
(rv) => {
productImgData.isShowMark = false
let arr:any = []
if(!productImgData.generateList[productimgMenu.value.value]){
productImgData.generateList[productimgMenu.value.value] = []
}
rv.forEach((item:any)=>{
arr.push(item.taskId)
})
productImgData.generateList[productimgMenu.value.value].push(...rv)
setPrductimg(arr)
}
).catch(res=>{
productImgData.isShowMark = false
productImgData.isProductimg = false
clearInterval(remPrductimgTime)
productImgData.remProductimg= false
@@ -427,7 +454,6 @@ export default defineComponent({
}
let generateProceedList:any = []
let setPrductimg = (dataList:any)=>{
let data = dataList
let dataNum = dataList.length
let state = true
@@ -447,10 +473,15 @@ export default defineComponent({
rv.forEach((element:any) => {
if(element.status == 'Success'){
element.imgUrl = element.url
if(!productImgData.generateList[productimgMenu.value.value]){
productImgData.generateList[productimgMenu.value.value] = []
}
productImgData.generateList[productimgMenu.value.value].unshift(element)
// if(!productImgData.generateList[productimgMenu.value.value]){
// productImgData.generateList[productimgMenu.value.value] = []
// }
let index = productImgData.generateList[productimgMenu.value.value].findIndex((obj:any) => obj.taskId === element.taskId);
productImgData.generateList[productimgMenu.value.value][index] = element
// productImgData.generateList[productimgMenu.value.value].unshift(element)
}else if(element.status == 'Fail'){
let index = productImgData.generateList[productimgMenu.value.value].findIndex((obj:any) => obj.taskId === element.taskId);
productImgData.generateList[productimgMenu.value.value].splice(index,1)
}
data = data.filter((item:any) => item !== element.taskId);
});
@@ -522,9 +553,10 @@ export default defineComponent({
generalIsMenuShow = {}
document.removeEventListener('click',removeMenuShow)
}
let clearPrductimg = ()=>{
let setSimilarity = ()=>{
}
//超分
let setTask = (data:any)=>{
emit('setTask',data)
@@ -555,7 +587,7 @@ export default defineComponent({
setScaleImage,
setMenu,
setMenuShow,
clearPrductimg,
setSimilarity,
setTask,
};
},
@@ -655,6 +687,9 @@ export default defineComponent({
font-weight: 500;
}
}
&.productImg_content_item_title_similarity{
// margin-bottom: 8rem;
}
}
.productImg_content_item_intro{
font-size: 1.4rem;
@@ -765,12 +800,23 @@ export default defineComponent({
border-radius: 2rem;
margin-bottom: 2%;
padding: 1rem 1.5rem;
position: relative;
.mark_loading{
position: absolute
}
.productImg_right_item{
height: 100%;
padding: 1rem 0;
margin-right: 1rem;
position: relative;
background: #fff;
.productImg_right_item_imgBox{
height: 100%;
.loadingImg{
width: 14rem;
object-fit: contain;
}
}
img{
height: 100%;
}