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

View File

@@ -1 +1 @@
VITE_APP_URL = http://18.167.251.121:10096
VITE_APP_URL = https://b0cd77b2f755.ngrok-free.app

View File

@@ -52,12 +52,8 @@ html:root {
--van-dialog-has-title-message-padding-top: 2.5rem;
--van-button-default-color: #1B73E7;
--van-dialog-confirm-button-text-color: #1B73E7;
}
.van-toast__text {
font-size: 4rem;
height: 5rem;
line-height: 5rem;
padding: 0 2rem;
--van-notify-font-size: 3.5rem;
--van-notify-line-height: 10rem;
}
.van-toast__text {
font-size: 4rem;

View File

@@ -61,6 +61,9 @@ html:root {
--van-dialog-has-title-message-padding-top: 2.5rem;
--van-button-default-color: #1B73E7;
--van-dialog-confirm-button-text-color: #1B73E7;
//消息提示
--van-notify-font-size: 3.5rem;
--van-notify-line-height: 10rem
}

View File

@@ -82,7 +82,7 @@ const router = createRouter({
{
path: '/workshop/selectStyle',
name: 'SelectStyle',
component: () => import('../views/Workshop/selectStyle.vue')
component: () => import('../views/Workshop/selectStyle.vue'),
},
{
path: '/workshop/selectModel',

View File

@@ -4,21 +4,18 @@ export const useGenerateStore = defineStore({
id: 'generate', // 必须指明唯一的pinia仓库的id
state: () => {
return {
userData: {
title: '123123',
name: '123123',
describe: '',
id: '',
style: {
id: -1,
oldId: -1,//表示从生成页面返回回来需要调整的样式id
},
model: {
id: -1,
}
style: {
id: -1,
oldId: -1,//表示从生成页面返回回来需要调整的样式id
},
queryList: [],
model: {
id: -1,
},
tryOnId:{//生成穿好衣服的回参
id: -1,
isLike: false,//是否喜欢
},
isGenerate: false,//点击继续按钮后是否需要生成
/** 顾客照片信息 */
photoInfo: {
id: "",
@@ -53,24 +50,27 @@ export const useGenerateStore = defineStore({
},
actions: {
selectStyle(data: any) {
this.userData.style.id = data.id
console.log(this.userData)
this.style.id = data.id
console.log(this)
},
//生成后去掉id 设置oldId来修改样式
useStyleGenerate() {
this.userData.style.oldId = this.userData.style.id
this.userData.style.id = -1
this.style.oldId = this.style.id
this.style.id = -1
},
updateStyle(data) {
console.log(data)
if (data.id == this.userData.style.oldId) {
this.userData.style.oldId = -1
if (data.id == this.style.oldId) {
this.style.oldId = -1
}
},
//模特相关
selectModel(data: any) {
this.userData.model.id = data.id
console.log(this.userData)
this.model.id = data.id
console.log(this)
},
setIsGenerate(isGenerate: boolean) {
this.isGenerate = isGenerate
},
/** 更新顾客照片信息 */
updatePhotoInfo(data: any) {

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(()=>{
})