Merge branch 'main' of http://18.167.251.121:10003/aidlab/lanecarford_front
This commit is contained in:
@@ -146,8 +146,7 @@ export function getTryOnEffectStyleList(styleId: string | number) {
|
||||
|
||||
// 选择顾客
|
||||
interface CustomerInfo {
|
||||
name: string
|
||||
email: string
|
||||
vipId: string
|
||||
}
|
||||
export const customerCheckin = (data: CustomerInfo) => {
|
||||
return request({
|
||||
|
||||
@@ -5,6 +5,15 @@ export const useOverallStore = defineStore({
|
||||
state: () => {
|
||||
return {
|
||||
loading:false,
|
||||
/**
|
||||
* 流程类型
|
||||
* main: 主流程
|
||||
* reinventing: 魔改
|
||||
* stylist: 查看设计师
|
||||
* clientId: 切换客户
|
||||
*
|
||||
*/
|
||||
flowType:'',
|
||||
}
|
||||
},
|
||||
getters: {
|
||||
@@ -14,6 +23,9 @@ export const useOverallStore = defineStore({
|
||||
// 全局loading
|
||||
setLoading(data:boolean){
|
||||
this.loading = data
|
||||
},
|
||||
setFlowType(data:string){
|
||||
this.flowType = data
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -3,6 +3,7 @@ import { onMounted, onUnmounted, reactive, toRefs, computed, onActivated } from
|
||||
import HeaderTitle from '@/components/HeaderTitle.vue'
|
||||
import FooterNavigation from '@/components/FooterNavigation.vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useOverallStore } from '@/stores'
|
||||
const router = useRouter()
|
||||
import { showConfirmDialog } from 'vant'
|
||||
import MyEvent from '@/utils/myEvent'
|
||||
@@ -13,6 +14,7 @@ const emit = defineEmits([
|
||||
'view-type'
|
||||
])
|
||||
|
||||
const overallStore = useOverallStore()
|
||||
// const data = reactive({
|
||||
// })
|
||||
|
||||
@@ -30,6 +32,11 @@ const clickSwitchVIPID = ()=>{
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
const openFlow = (path:string,flowType:string)=>{
|
||||
if(flowType == 'clientId')return clickSwitchVIPID
|
||||
overallStore.setFlowType(flowType)
|
||||
router.push(path)
|
||||
}
|
||||
|
||||
onMounted(()=>{
|
||||
emit('view-type', 1)
|
||||
@@ -51,16 +58,16 @@ defineExpose({})
|
||||
Explore
|
||||
</div>
|
||||
<div class="navList">
|
||||
<div class="item" @click="()=>router.push('/stylist/index')">
|
||||
<div class="item" @click="openFlow('/stylist/index','main')">
|
||||
<img src="@/assets/images/nav1.png" alt="">
|
||||
</div>
|
||||
<div class="item" @click="()=>router.push('/workshop/recommended')">
|
||||
<div class="item" @click="openFlow('/workshop/recommended','reinventing')">
|
||||
<img src="@/assets/images/nav2.png" alt="">
|
||||
</div>
|
||||
<div class="item" @click="()=>router.push('/stylist/index')">
|
||||
<div class="item" @click="openFlow('/stylist/index','stylist')">
|
||||
<img src="@/assets/images/nav3.png" alt="">
|
||||
</div>
|
||||
<div class="item" @click="clickSwitchVIPID">
|
||||
<div class="item" @click="openFlow('','clientId')">
|
||||
<img src="@/assets/images/nav4.png" alt="">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -83,10 +83,10 @@ const sendPrefilledMessage = () => {
|
||||
onMounted(() => {
|
||||
sessionId.value = Math.floor(Date.now() / 1000).toString()
|
||||
generateStore.setSessionId(sessionId.value)
|
||||
sendPrefilledMessage()
|
||||
})
|
||||
|
||||
onActivated(() => {
|
||||
sendPrefilledMessage()
|
||||
noticeListRef.value?.scrollToBottom()
|
||||
})
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<template v-else>
|
||||
<div class="form-container">
|
||||
<div class="back-container flex flex-center" @click="handleChangeMode('entry')">
|
||||
<van-icon name="arrow-left" color="#fff" />
|
||||
<van-icon name="arrow-left" color="#fff" />
|
||||
</div>
|
||||
<div class="text">
|
||||
<div class="form-title">Entry ID</div>
|
||||
@@ -26,9 +26,14 @@
|
||||
<div class="glass-form">
|
||||
<div class="form-field">
|
||||
<label class="field-label">VIP ID</label>
|
||||
<input v-model="customerData.name" type="text" placeholder="Enter your ID" class="form-input" />
|
||||
<input
|
||||
v-model="customerData.vipId"
|
||||
type="text"
|
||||
placeholder="Enter your ID"
|
||||
class="form-input"
|
||||
/>
|
||||
</div>
|
||||
<div class="form-field email">
|
||||
<!-- <div class="form-field email">
|
||||
<label class="field-label">Email Address</label>
|
||||
<input
|
||||
v-model="customerData.email"
|
||||
@@ -36,7 +41,7 @@
|
||||
placeholder="Enter your email"
|
||||
class="form-input"
|
||||
/>
|
||||
</div>
|
||||
</div> -->
|
||||
<button class="confirm-btn" @click="handleConfirm">Confirm</button>
|
||||
</div>
|
||||
<div class="copyright">Powered by AiDLab for Lane Crawford</div>
|
||||
@@ -45,7 +50,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ref } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useGenerateStore, useUserInfoStore } from '@/stores'
|
||||
import { showToast } from 'vant'
|
||||
@@ -66,12 +71,12 @@ const handleChangeMode = (mode: PageMode) => {
|
||||
}
|
||||
|
||||
const customerData = ref({
|
||||
name: '',
|
||||
email: ''
|
||||
vipId: ''
|
||||
// email: ''
|
||||
})
|
||||
|
||||
const handleConfirm = async () => {
|
||||
if (customerData.value.name === '' || customerData.value.email === '') {
|
||||
if (customerData.value.vipId === '') {
|
||||
showToast({
|
||||
message: 'please input name and email',
|
||||
position: 'top'
|
||||
@@ -124,7 +129,7 @@ const handleConfirm = async () => {
|
||||
font-size: 5.6rem;
|
||||
width: 32.5rem;
|
||||
height: 8.1rem;
|
||||
border: .2rem solid #fff;
|
||||
border: 0.2rem solid #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -133,7 +138,7 @@ const handleConfirm = async () => {
|
||||
}
|
||||
.entry-btn {
|
||||
position: absolute;
|
||||
border: .2rem solid #fff;
|
||||
border: 0.2rem solid #fff;
|
||||
bottom: 10.3rem;
|
||||
right: 5.5rem;
|
||||
height: 9rem;
|
||||
@@ -146,7 +151,7 @@ const handleConfirm = async () => {
|
||||
.back-container {
|
||||
width: 7.3rem;
|
||||
height: 7.3rem;
|
||||
border: .2rem solid #fff;
|
||||
border: 0.2rem solid #fff;
|
||||
border-radius: 1.8rem;
|
||||
font-size: 4.3rem;
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
@@ -184,12 +189,15 @@ const handleConfirm = async () => {
|
||||
|
||||
.glass-form {
|
||||
height: 84.8rem;
|
||||
border: .2rem solid #ffffff;
|
||||
border: 0.2rem solid #ffffff;
|
||||
border-radius: 4.7rem;
|
||||
margin: 0 14.2rem;
|
||||
padding: 8.2rem 7.9rem;
|
||||
margin-top: 7.5rem;
|
||||
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: space-evenly;
|
||||
|
||||
background: radial-gradient(
|
||||
100% 100% at 0% 0%,
|
||||
@@ -215,7 +223,7 @@ const handleConfirm = async () => {
|
||||
width: 100%;
|
||||
height: 10rem;
|
||||
line-height: 10rem;
|
||||
border: .2rem solid #fff;
|
||||
border: 0.2rem solid #fff;
|
||||
border-radius: 7rem;
|
||||
padding: 0 5.5rem;
|
||||
color: #fff;
|
||||
@@ -240,7 +248,7 @@ const handleConfirm = async () => {
|
||||
font-size: 4rem;
|
||||
font-family: 'satoshiRegular';
|
||||
cursor: pointer;
|
||||
box-shadow: 0 .2rem 8px rgba(0, 0, 0, 0.2);
|
||||
box-shadow: 0 0.2rem 8px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
}
|
||||
.copyright {
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</div>
|
||||
|
||||
<!-- Continue按钮 -->
|
||||
<div class="continue-button" @click="handleContinue">Continue</div>
|
||||
<div class="continue-button" @click="handleContinue" v-if="overallStore.flowType == 'main'">Continue</div>
|
||||
<van-dialog
|
||||
class="video-dialog"
|
||||
:show-confirm-button="false"
|
||||
@@ -61,6 +61,7 @@ import male from '@/assets/images/male.png'
|
||||
import female from '@/assets/images/female.png'
|
||||
import HeaderTitle from '@/components/HeaderTitle.vue'
|
||||
import FooterNavigation from '@/components/FooterNavigation.vue'
|
||||
import { useOverallStore } from '@/stores'
|
||||
|
||||
const router = useRouter()
|
||||
const userInfoStore = useUserInfoStore()
|
||||
@@ -101,6 +102,8 @@ const swiperRef = ref<any>(null)
|
||||
const showVideo = ref<boolean>(false)
|
||||
const videoRef = ref<any>(null)
|
||||
|
||||
const overallStore = useOverallStore()
|
||||
|
||||
const handleChangeCurrent = (index: number) => {
|
||||
currentChoosed.value = stylists.value[index].id
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user