This commit is contained in:
李志鹏
2025-10-24 13:20:29 +08:00
8 changed files with 90 additions and 44 deletions

View File

@@ -2,9 +2,10 @@
import { onMounted, onUnmounted, reactive, toRefs } from "vue";
import HeaderTitle from '@/components/HeaderTitle.vue'
import FooterNavigation from '@/components/FooterNavigation.vue'
import { useRouter } from 'vue-router'
import { useRouter, useRoute } from 'vue-router'
import GenerateLoading from '@/views/asistant/components/GenerateLoading.vue'
import { useGenerateStore } from '@/stores'
import { generateTryOnEffect, setTryOnEffectFavorite, cancelTryOnEffectFavorite } from '@/api/workshop'
const router = useRouter()
//const props = defineProps({
//})
@@ -17,6 +18,8 @@ let data = reactive({
isLoading: false,
})
const generateStore = useGenerateStore()
// const setSelectedModelId = (item)=>{
// data.selectedModelId = item.id;
// }
@@ -30,13 +33,48 @@ const changeModel = ()=>{
router.push('selectModel')
}
const startGenerate = ()=>{
data.isLoading = true;
let value = {
customerId:1 || generateStore.customerId,
visitRecordId:1 || generateStore.visitRecordId,
styleId:1 || generateStore.style.id,
customerPhotoId:null,
modelPhotoId:null,
prompt:null,
originalTryOnId:null,
isRegenerated:0,
}
generateTryOnEffect(value).then((res:any)=>{
data.isLoading = false;
generateStore.tryOnId.id = res.id
generateStore.tryOnId.isLike = false
generateStore.useStyleGenerate()//生成后需要对选择衣服页面设置不可选中样式
generateStore.setIsGenerate(false)
}).catch(()=>{
data.isLoading = false;
router.back()
})
}
const setLike = ()=>{
let tryOnId = generateStore.tryOnId.id
if(generateStore.tryOnId.isLike){
cancelTryOnEffectFavorite(tryOnId).then(()=>{
generateStore.tryOnId.isLike = false
})
}else{
setTryOnEffectFavorite(tryOnId).then(()=>{
generateStore.tryOnId.isLike = true
})
}
}
onMounted(() => {
emit('view-type', 1)
data.isLoading = true;
setTimeout(()=>{
useGenerateStore().useStyleGenerate()
data.isLoading = false;
}, 2000)
if (generateStore.isGenerate) {
startGenerate()
}
})
onUnmounted(()=>{
})
@@ -62,15 +100,15 @@ const { isLoading } = toRefs(data);
<div class="model">
<img src="@/assets/images/workshop/posture/posture_1.png" />
<div class="operation">
<div><SvgIcon name="love_0" size="35" /></div>
<div><SvgIcon name="reload" size="35" /></div>
<div><SvgIcon name="download" size="35" /></div>
<div><SvgIcon :name="`love_${generateStore.tryOnId.isLike ? '1' : '0'}`" size="35" @click="setLike" /></div>
<div><SvgIcon name="reload" size="35" @click="startGenerate"/></div>
<!-- <div><SvgIcon name="download" size="35" /></div> -->
</div>
</div>
</div>
<div class="again">
<div @click="changeModel">Change Model</div>
<div @click="onContinue">Continue</div>
<!-- <div @click="changeModel">Change Model</div> -->
<div @click="onContinue" style="margin-left: auto;">Continue</div>
</div>
</div>
</div>

View File

@@ -40,7 +40,7 @@ let data = reactive({
},
],
selectModel:computed(()=>generateStore.userData.model),
selectModel:computed(()=>generateStore.model),
})
const setSelectedModelId = (item)=>{

View File

@@ -8,6 +8,7 @@ import editProfile2 from '@/assets/images/workshop/selectStyle/selectStyle2.png'
import editProfile3 from '@/assets/images/workshop/selectStyle/selectStyle3.png'
import editProfile4 from '@/assets/images/workshop/selectStyle/selectStyle4.png'
import { useGenerateStore } from '@/stores'
import { showNotify } from 'vant';
const router = useRouter()
//const props = defineProps({
@@ -36,7 +37,7 @@ let data = reactive({
imgUrl:editProfile4,
},
],
select:computed(()=>generateStore.userData.style)
select:computed(()=>generateStore.style)
})
const selectItem = (item)=>{
@@ -52,11 +53,19 @@ const updateStyle = ({item,index})=>{
}
const toProduct = ()=>{
console.log(generateStore.style)
if(generateStore.style.id == -1 && !generateStore.style.oldId){
showNotify({ message: 'Please select a style.', type:'warning' });
return
}
if(generateStore.style.id){
generateStore.setIsGenerate(true)
}
router.push({ path: 'product' })
}
onMounted(()=>{
emit('view-type', 1)
console.log(useGenerateStore())
})
onUnmounted(()=>{
})