换背景,印花single模式交互修改

This commit is contained in:
X1627315083
2024-07-02 14:15:11 +08:00
parent 8e694ce2c4
commit 2bc888eac9
12 changed files with 196 additions and 91 deletions

View File

@@ -49,7 +49,7 @@
<input
class="search_input"
@input="ifMaximumLength"
:placeholder="$t('Generate.inputContent1')"
:placeholder="(scene?.value == 'Slogan' && type_.type2 == 'Printboard')?isSloganHint:$t('Generate.inputContent1')"
:maxlength='inputShow?0:9999'
v-model="searchPictureName"
@keydown.enter="getgenerate()"
@@ -245,6 +245,7 @@ export default defineComponent({
let remGenerateTime:any = ref()
let styleRecommend:any = inject('styleRecommend')
let generateLevel2Type = ''
let isSloganHint:any = ref(' ')
return {
searchPictureName,
searchPictureSeed,
@@ -272,6 +273,7 @@ export default defineComponent({
remGenerateTime,
styleRecommend,
generateLevel2Type,
isSloganHint,
};
},
data(prop) {
@@ -335,6 +337,17 @@ export default defineComponent({
this.workspace = newVal
this.upload.gender = newVal?.sexEnum?.name
},
scene:{
handler(newVal,oldVal){
if(this.type_.type2 == 'Printboard' && newVal.value == 'Slogan'){
let sloganType = ['Blue and Yellow Starry Night','Green Cthulhu','Red and yellow fire style','Cyberpunk style','City skyline buildings','Red maple leaves','Golden Sunflower','Emerald Jungle Canopy','Pink Sakura Blossom']
var randomNumber = Math.floor(Math.random() * sloganType.length);
this.isSloganHint = sloganType[randomNumber]
}else{
this.isSloganHint = ''
}
}
}
// moodboarList(newVal,oldVal){
// if(newVal.length>=1 || this.sketchboardList.length >= 2){
// }else{
@@ -428,7 +441,6 @@ export default defineComponent({
base64 = this.sketchboardList[0].imgUrl
}
}
let sloganType = ['Blue and Yellow Starry Night','Green Cthulhu','Red and yellow fire style','Cyberpunk style','City skyline buildings','Red maple leaves','Golden Sunflower','Emerald Jungle Canopy','Pink Sakura Blossom']
let sloganText = ''
sloganText = this.searchPictureName
if(this.upload.level1Type == "Sketchboard"){
@@ -439,8 +451,7 @@ export default defineComponent({
}else if(this.upload.level1Type == "Printboard"){
level2Type = this.scene?.value
if(level2Type == 'Slogan' && this.searchPictureName == ''){
var randomNumber = Math.floor(Math.random() * sloganType.length);
sloganText = sloganType[randomNumber]
sloganText = this.isSloganHint
}else if(level2Type == 'Pattern'){
sloganText = `${this.printModel.value},${sloganText}`
}

View File

@@ -48,18 +48,18 @@
</div>
</div>
<div class="productImg_content_item_title productImg_content_item_title_similarity">
<div v-show="productimgMenu.value == 'ProductImage'" 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"
<div v-show="productimgMenu.value == 'ProductImage'" class="productImg_content_item_similarity">
<a-slider class="system_silder"
v-model:value="similarity"
@afterChange="setSimilarity"
:tooltipVisible="false"
:step=".05"
:step="5"
>
</a-slider>
<input type="number" readonly v-model="similarity">
</div>
<div class="productImg_content_item_title">{{$t('ProductImg.SelectCollection')}}</div>
<div class="productImg_content_item_imgBox generalScroll" v-mousewheel>
@@ -130,20 +130,20 @@
<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">
<div class="productImg_right_item_imgBox" v-if="item.status != 'Success'">
<div class="productImg_right_item" v-for="item,index in generateList" :key="item">
<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_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 class="productImg_right_item_like" @click.stop="likeFile(item,'like',index)">
<i class="fi fi-rr-heart"></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 class="productImg_right_item_scale iconLeft" @click.stop="setScaleImage(generateList,index)">
<i class="fi fi-bs-expand-arrows-alt"></i>
</div>
<div class="productImg_right_item_menu iconLeft">
<i class="fi fi-rr-circle-ellipsis" @click.stop="setMenuShow(item)"></i>
<div class="productImg_right_item_menu iconLeft" @click.stop="setMenuShow(item)">
<i class="fi fi-rr-circle-ellipsis"></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>
@@ -161,14 +161,14 @@
<div class="productImg_right_item_box generalScroll" v-mousewheel>
<div class="productImg_right_item" v-for="item,index in likeList" :key="item">
<img :src="item.url" alt="">
<div class="productImg_right_item_like">
<i class="fi fi-sr-heart" @click.stop="likeFile(item,'noLike',index)"></i>
<div class="productImg_right_item_like" @click.stop="likeFile(item,'noLike',index)">
<i class="fi fi-sr-heart"></i>
</div>
<div class="productImg_right_item_scale iconLeft">
<i class="fi fi-bs-expand-arrows-alt" @click.stop="setScaleImage(likeList,index)"></i>
<div class="productImg_right_item_scale iconLeft" @click.stop="setScaleImage(likeList,index)">
<i class="fi fi-bs-expand-arrows-alt"></i>
</div>
<div class="productImg_right_item_menu iconLeft">
<i class="fi fi-rr-circle-ellipsis" @click.stop="setMenuShow(item)"></i>
<div class="productImg_right_item_menu iconLeft" @click.stop="setMenuShow(item)">
<i class="fi fi-rr-circle-ellipsis"></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>
@@ -222,9 +222,9 @@ export default defineComponent({
remProductimg:false,//是否出现取消按钮
isProductimg:false,//开始生成
selectProductimgList:[],
generateList:{},
generateList:[],
likeList:[],
similarity:0,
similarity:30,
})
let productimgMenuList = ref([
{
@@ -285,7 +285,7 @@ export default defineComponent({
let cleardata = ()=>{
productImg.value = false
productImgData.likeList = []
productImgData.generateList = {}
productImgData.generateList = []
productimgMenu.value = productimgMenuList.value[0]
}
@@ -347,12 +347,9 @@ export default defineComponent({
(rv) => {
if(str == 'like'){
productImgData.likeList.push(item)
productImgData.generateList[productimgMenu.value.value].splice(index,1)
productImgData.generateList.splice(index,1)
}else{
if(!productImgData.generateList[productimgMenu.value.value]){
productImgData.generateList[productimgMenu.value.value] = []
}
productImgData.generateList[productimgMenu.value.value].push(item)
productImgData.generateList.push(item)
productImgData.likeList.splice(index,1)
}
@@ -388,7 +385,6 @@ export default defineComponent({
"taskId": "",
"toProductImageRecordId": 0,
"url": "",
imageStrength:.3
}
if(productImgData.fileList[productimgMenu.value.value]){
productImgData.fileList[productimgMenu.value.value].forEach((item:any)=>{
@@ -421,6 +417,7 @@ export default defineComponent({
prompt:productImgData.searchName,
toProductImageVOList:selectArr,
userLikeGroupId:upload.value.userlikeGroupId,
imageStrength:(100 - productImgData.similarity)/100,
}
productImgData.isProductimg = true
remPrductimgTime = setTimeout(()=>{
@@ -435,14 +432,11 @@ export default defineComponent({
(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)
productImgData.generateList.unshift(...rv)
setPrductimg(arr)
}
).catch(res=>{
@@ -476,12 +470,12 @@ export default defineComponent({
// 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
let index = productImgData.generateList.findIndex((obj:any) => obj.taskId === element.taskId);
productImgData.generateList[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)
let index = productImgData.generateList.findIndex((obj:any) => obj.taskId === element.taskId);
productImgData.generateList.splice(index,1)
}
data = data.filter((item:any) => item !== element.taskId);
});
@@ -553,8 +547,8 @@ export default defineComponent({
generalIsMenuShow = {}
document.removeEventListener('click',removeMenuShow)
}
let setSimilarity = ()=>{
let setSimilarity = (num:any)=>{
}
//超分
@@ -770,6 +764,20 @@ export default defineComponent({
.productImg_content_item_generate{
--width:100%;
}
.productImg_content_item_similarity{
display: flex;
align-items: center;
.system_silder{
flex: 1;
}
input{
width: 30%;
width: 5rem;
height: 5rem;
text-align: center;
font-size: 1.8rem;
}
}
.productImg_content_item_generate_btn{
position: absolute;
bottom: 0;