diff --git a/src/assets/css/style.css b/src/assets/css/style.css index 1041d46..f1fc58c 100644 --- a/src/assets/css/style.css +++ b/src/assets/css/style.css @@ -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; diff --git a/src/assets/css/style.less b/src/assets/css/style.less index 85626d2..d4b0034 100644 --- a/src/assets/css/style.less +++ b/src/assets/css/style.less @@ -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 } diff --git a/src/router/index.ts b/src/router/index.ts index d70abe6..1ddc069 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -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', diff --git a/src/stores/modules/generate.ts b/src/stores/modules/generate.ts index 6da1adc..e35fa9f 100644 --- a/src/stores/modules/generate.ts +++ b/src/stores/modules/generate.ts @@ -4,49 +4,50 @@ 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,//点击继续按钮后是否需要生成 } }, getters: { - customerId: (state) => state.userData.style.id,//顾客id - visitRecordId: (state) => state.userData.style.id,//进店记录id - styleId: (state) => state.userData.style.id,//服装id - modelPhotoId: (state) => state.userData.model.id,//模特照片id - originalTryOnId: (state) => state.userData.style.id,//原始试穿id + customerId: (state) => state.style.id,//顾客id + visitRecordId: (state) => state.style.id,//进店记录id + styleId: (state) => state.style.id,//服装id + modelPhotoId: (state) => state.model.id,//模特照片id + originalTryOnId: (state) => state.style.id,//原始试穿id }, 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 } } }) diff --git a/src/views/Workshop/customize.vue b/src/views/Workshop/customize.vue index b3a97e7..b4a7bfc 100644 --- a/src/views/Workshop/customize.vue +++ b/src/views/Workshop/customize.vue @@ -32,7 +32,7 @@ visitRecordId: store.visitRecordId, styleId: store.styleId, modelPhotoId: store.modelPhotoId, - customerPhotoId: store.userData.id, + customerPhotoId: store.id, originalTryOnId: store.originalTryOnId, isRegenerated: isRegenerated ? 1 : 0, prompt: inputText.value, diff --git a/src/views/Workshop/product.vue b/src/views/Workshop/product.vue index f2d5ad0..78337a8 100644 --- a/src/views/Workshop/product.vue +++ b/src/views/Workshop/product.vue @@ -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,45 @@ const changeModel = ()=>{ router.push('selectModel') } +const startGenerate = ()=>{ + data.isLoading = true; + let value = { + customerId:generateStore.customerId, + visitRecordId:generateStore.visitRecordId, + styleId: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) + }) +} + +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 +97,15 @@ const { isLoading } = toRefs(data);
-
-
-
+
+
+
-
Change Model
-
Continue
+ +
Continue
diff --git a/src/views/Workshop/selectModel.vue b/src/views/Workshop/selectModel.vue index cf6b415..77a35e5 100644 --- a/src/views/Workshop/selectModel.vue +++ b/src/views/Workshop/selectModel.vue @@ -40,7 +40,7 @@ let data = reactive({ }, ], - selectModel:computed(()=>generateStore.userData.model), + selectModel:computed(()=>generateStore.model), }) const setSelectedModelId = (item)=>{ diff --git a/src/views/Workshop/selectStyle.vue b/src/views/Workshop/selectStyle.vue index fa2c5ab..e68cf71 100644 --- a/src/views/Workshop/selectStyle.vue +++ b/src/views/Workshop/selectStyle.vue @@ -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(()=>{ })