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-dialog-has-title-message-padding-top: 2.5rem;
--van-button-default-color: #1B73E7; --van-button-default-color: #1B73E7;
--van-dialog-confirm-button-text-color: #1B73E7; --van-dialog-confirm-button-text-color: #1B73E7;
} --van-notify-font-size: 3.5rem;
.van-toast__text { --van-notify-line-height: 10rem;
font-size: 4rem;
height: 5rem;
line-height: 5rem;
padding: 0 2rem;
} }
.van-toast__text { .van-toast__text {
font-size: 4rem; font-size: 4rem;

View File

@@ -61,6 +61,9 @@ html:root {
--van-dialog-has-title-message-padding-top: 2.5rem; --van-dialog-has-title-message-padding-top: 2.5rem;
--van-button-default-color: #1B73E7; --van-button-default-color: #1B73E7;
--van-dialog-confirm-button-text-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', path: '/workshop/selectStyle',
name: 'SelectStyle', name: 'SelectStyle',
component: () => import('../views/Workshop/selectStyle.vue') component: () => import('../views/Workshop/selectStyle.vue'),
}, },
{ {
path: '/workshop/selectModel', path: '/workshop/selectModel',

View File

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

View File

@@ -2,9 +2,10 @@
import { onMounted, onUnmounted, reactive, toRefs } from "vue"; import { onMounted, onUnmounted, reactive, toRefs } from "vue";
import HeaderTitle from '@/components/HeaderTitle.vue' import HeaderTitle from '@/components/HeaderTitle.vue'
import FooterNavigation from '@/components/FooterNavigation.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 GenerateLoading from '@/views/asistant/components/GenerateLoading.vue'
import { useGenerateStore } from '@/stores' import { useGenerateStore } from '@/stores'
import { generateTryOnEffect, setTryOnEffectFavorite, cancelTryOnEffectFavorite } from '@/api/workshop'
const router = useRouter() const router = useRouter()
//const props = defineProps({ //const props = defineProps({
//}) //})
@@ -17,6 +18,8 @@ let data = reactive({
isLoading: false, isLoading: false,
}) })
const generateStore = useGenerateStore()
// const setSelectedModelId = (item)=>{ // const setSelectedModelId = (item)=>{
// data.selectedModelId = item.id; // data.selectedModelId = item.id;
// } // }
@@ -30,13 +33,48 @@ const changeModel = ()=>{
router.push('selectModel') 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(() => { onMounted(() => {
emit('view-type', 1) emit('view-type', 1)
data.isLoading = true; if (generateStore.isGenerate) {
setTimeout(()=>{ startGenerate()
useGenerateStore().useStyleGenerate() }
data.isLoading = false;
}, 2000)
}) })
onUnmounted(()=>{ onUnmounted(()=>{
}) })
@@ -62,15 +100,15 @@ const { isLoading } = toRefs(data);
<div class="model"> <div class="model">
<img src="@/assets/images/workshop/posture/posture_1.png" /> <img src="@/assets/images/workshop/posture/posture_1.png" />
<div class="operation"> <div class="operation">
<div><SvgIcon name="love_0" size="35" /></div> <div><SvgIcon :name="`love_${generateStore.tryOnId.isLike ? '1' : '0'}`" size="35" @click="setLike" /></div>
<div><SvgIcon name="reload" size="35" /></div> <div><SvgIcon name="reload" size="35" @click="startGenerate"/></div>
<div><SvgIcon name="download" size="35" /></div> <!-- <div><SvgIcon name="download" size="35" /></div> -->
</div> </div>
</div> </div>
</div> </div>
<div class="again"> <div class="again">
<div @click="changeModel">Change Model</div> <!-- <div @click="changeModel">Change Model</div> -->
<div @click="onContinue">Continue</div> <div @click="onContinue" style="margin-left: auto;">Continue</div>
</div> </div>
</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)=>{ 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 editProfile3 from '@/assets/images/workshop/selectStyle/selectStyle3.png'
import editProfile4 from '@/assets/images/workshop/selectStyle/selectStyle4.png' import editProfile4 from '@/assets/images/workshop/selectStyle/selectStyle4.png'
import { useGenerateStore } from '@/stores' import { useGenerateStore } from '@/stores'
import { showNotify } from 'vant';
const router = useRouter() const router = useRouter()
//const props = defineProps({ //const props = defineProps({
@@ -36,7 +37,7 @@ let data = reactive({
imgUrl:editProfile4, imgUrl:editProfile4,
}, },
], ],
select:computed(()=>generateStore.userData.style) select:computed(()=>generateStore.style)
}) })
const selectItem = (item)=>{ const selectItem = (item)=>{
@@ -52,11 +53,19 @@ const updateStyle = ({item,index})=>{
} }
const toProduct = ()=>{ 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' }) router.push({ path: 'product' })
} }
onMounted(()=>{ onMounted(()=>{
emit('view-type', 1) emit('view-type', 1)
console.log(useGenerateStore())
}) })
onUnmounted(()=>{ onUnmounted(()=>{
}) })