This commit is contained in:
李志鹏
2025-10-24 15:20:30 +08:00
4 changed files with 57 additions and 48 deletions

View File

@@ -5,15 +5,16 @@ export const useGenerateStore = defineStore({
state: () => {
return {
style: {
id: -1,
oldId: -1,//表示从生成页面返回回来需要调整的样式id
id: '',
oldId: '',//表示从生成页面返回回来需要调整的样式id
},
model: {
id: -1,
id: '',
},
tryOnId: {//生成穿好衣服的回参
id: -1,
originalTryOn:{//生成穿好衣服的回参
id: '',
isLike: false,//是否喜欢
tryOnUrl:'',
},
isGenerate: false,//点击继续按钮后是否需要生成
@@ -56,19 +57,19 @@ export const useGenerateStore = defineStore({
},
//生成后去掉id 设置oldId来修改样式
useStyleGenerate() {
if(!this.style.id)return
this.style.oldId = this.style.id
this.style.id = -1
this.style.id = ''
},
updateStyle(data) {
console.log(data)
if (data.id == this.style.oldId) {
this.style.oldId = -1
this.style.oldId = ''
}
},
//模特相关
selectModel(data: any) {
this.model.id = data.id
console.log(this)
},
setIsGenerate(isGenerate: boolean) {
this.isGenerate = isGenerate

View File

@@ -62,6 +62,7 @@ service.interceptors.response.use(
}
const res = response.data
// 处理异常的情况
console.log(res)
if (res.code != 0) {
showToast({
message: res.errMsg,
@@ -82,31 +83,33 @@ service.interceptors.response.use(
}
},
(error) => {
if(error?.response?.status === 401){//如果是记录浏览器页面就不跳转login
// showConfirmDialog({
// title: '确定登出',
// message: '你已被登出,可以取消继续留在该页面,或者重新登录',
// confirmButtonText: '重新登录',
// cancelButtonText: '取消'
// }).then(() => {
// store.loginOut().then(() => {
// location.reload() // 为了重新实例化vue-router对象 避免bug
// })
// })
router.replace('/login')
return Promise.reject(error)
}
error.config && removePending(error.config)
// 关闭loading
if (error.config?.loading) {
closeLoading()
}
console.log('err' + error) // for debug
showToast({
message: error.message,
type: 'fail',
duration: 5000
})
if(error?.response){
if(error?.response?.status === 401){//如果是记录浏览器页面就不跳转login
// showConfirmDialog({
// title: '确定登出',
// message: '你已被登出,可以取消继续留在该页面,或者重新登录',
// confirmButtonText: '重新登录',
// cancelButtonText: '取消'
// }).then(() => {
// store.loginOut().then(() => {
// location.reload() // 为了重新实例化vue-router对象 避免bug
// })
// })
router.replace('/login')
return Promise.reject(error)
}
error.config && removePending(error.config)
// 关闭loading
if (error.config?.loading) {
closeLoading()
}
console.log('err' + error) // for debug
showToast({
message: error.message,
type: 'fail',
duration: 5000
})
}
return Promise.reject(error)
}
)

View File

@@ -39,33 +39,38 @@ const startGenerate = ()=>{
customerId:1 || generateStore.customerId,
visitRecordId:1 || generateStore.visitRecordId,
styleId:1 || generateStore.style.id,
customerPhotoId:null,
modelPhotoId:null,
prompt:null,
originalTryOnId:null,
// 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.originalTryOn.isLike = false
generateStore.originalTryOn.id = res.tryOnId
generateStore.originalTryOn.tryOnUrl = res.tryOnUrl
generateStore.useStyleGenerate()//生成后需要对选择衣服页面设置不可选中样式
generateStore.setIsGenerate(false)
generateStore.clearCustomizeInfo()
}).catch(()=>{
data.isLoading = false;
router.back()
if(generateStore.originalTryOn.id){
router.back()
}
})
}
const setLike = ()=>{
let tryOnId = generateStore.tryOnId.id
if(generateStore.tryOnId.isLike){
let tryOnId = generateStore.originalTryOn.id
if(generateStore.originalTryOn.isLike){
cancelTryOnEffectFavorite(tryOnId).then(()=>{
generateStore.tryOnId.isLike = false
generateStore.originalTryOn.isLike = false
})
}else{
setTryOnEffectFavorite(tryOnId).then(()=>{
generateStore.tryOnId.isLike = true
generateStore.originalTryOn.isLike = true
})
}
}
@@ -98,10 +103,10 @@ const { isLoading } = toRefs(data);
<div class="modelBox">
<div></div>
<div class="model">
<img src="@/assets/images/workshop/posture/posture_1.png" />
<img :src="generateStore.originalTryOn.tryOnUrl" />
<div class="operation">
<div><SvgIcon :name="`love_${generateStore.tryOnId.isLike ? '1' : '0'}`" size="35" @click="setLike" /></div>
<div><SvgIcon name="reload" size="35" @click="startGenerate"/></div>
<div @click="setLike"><SvgIcon :name="`love_${generateStore.originalTryOn.isLike ? '1' : '0'}`" size="35" /></div>
<div @click="startGenerate"><SvgIcon name="reload" size="35" /></div>
<!-- <div><SvgIcon name="download" size="35" /></div> -->
</div>
</div>

View File

@@ -54,7 +54,7 @@ const updateStyle = ({item,index})=>{
const toProduct = ()=>{
console.log(generateStore.style)
if(generateStore.style.id == -1 && !generateStore.style.oldId){
if(!generateStore.style.id && !generateStore.style.oldId){
showNotify({ message: 'Please select a style.', type:'warning' });
return
}