|
|
@@ -1,98 +1,15 @@
|
|
|
<script setup lang="ts">
|
|
|
-import type { FeedFormQuestions, UserList } from '@/model/pet-manual'
|
|
|
-import FeedQuestionnaire from '@/pages/feed-plan/components/FeedQuestionnaire.vue'
|
|
|
-import FeedStart from '@/pages/feed-plan/components/FeedStart.vue'
|
|
|
-import FeedStep from '@/pages/feed-plan/components/FeedStep.vue'
|
|
|
-import avator from '@/static/image/pet-parameters/avator.png'
|
|
|
-import cat from '@/static/image/pet-parameters/cat.png'
|
|
|
-import dog from '@/static/image/pet-parameters/dog.png'
|
|
|
-import emaciatedCat from '@/static/image/pet-parameters/form/emaciated_cat.png'
|
|
|
-import idealWightCat from '@/static/image/pet-parameters/form/idealweight_cat.png'
|
|
|
-import overWeightCat from '@/static/image/pet-parameters/form/overweight_cat.png'
|
|
|
-import skinnyCat from '@/static/image/pet-parameters/form/skinny_cat.png'
|
|
|
-import thinCat from '@/static/image/pet-parameters/form/thin_cat.png'
|
|
|
-import underWeightCat from '@/static/image/pet-parameters/form/underweight_cat.png'
|
|
|
-import ToolApi from '@/utils'
|
|
|
-
|
|
|
-interface StepInfo {
|
|
|
- step: number
|
|
|
- title: string
|
|
|
-}
|
|
|
-const titleName = ref<string>('喂养计算器')
|
|
|
-const safeHeight = ToolApi.getSafeHeight()
|
|
|
-const stage = ref<number>(0)
|
|
|
-const stepInfo = ref<StepInfo[]>([
|
|
|
- { step: 1, title: '宠物基础信息' },
|
|
|
- { step: 2, title: '身体状态信息' },
|
|
|
- { step: 3, title: '计算喂养计划' },
|
|
|
-])
|
|
|
-const controlFormDisplay = ref({
|
|
|
- display1: true,
|
|
|
- display2: false,
|
|
|
- display3: false,
|
|
|
-})
|
|
|
-const feedFormQuestions = ref<FeedFormQuestions[]>([
|
|
|
- { title: '您的动物是?', question: [{ image: cat, name: '猫猫' }, { image: dog, name: '狗狗' }], formType: 1 },
|
|
|
- { title: '猫咪的性别?', question: [{ name: '男孩' }, { name: '女孩' }], formType: 2 },
|
|
|
- { title: '猫咪的年龄区间?', question: [{ name: '0-4个月' }, { name: '5-12个月' }], formType: 2 },
|
|
|
- { title: '猫咪是否活跃?', question: [{ name: '活跃' }, { name: '不活跃' }], formType: 2 },
|
|
|
- { title: '猫咪是否怀孕?', question: [{ name: '怀孕' }, { name: '未怀孕' }], formType: 2 },
|
|
|
- { title: '猫咪是否绝育?', question: [{ name: '绝育' }, { name: '未绝育' }], formType: 2 },
|
|
|
- { title: '猫咪是否在哺乳?', question: [{ name: '哺乳中' }, { name: '未哺乳' }], formType: 2 },
|
|
|
- { title: '请选择猫咪的体型', question: [{ image: emaciatedCat, name: '极度消廋' }, { image: skinnyCat, name: '非常廋' }, { image: thinCat, name: '消瘦' }, { image: underWeightCat, name: '体重偏低' }, { image: idealWightCat, name: '理想体重' }, { image: overWeightCat, name: '体重偏重' }], formType: 3 },
|
|
|
-])
|
|
|
-const userList = ref<UserList>({
|
|
|
- image: avator,
|
|
|
- username: '子龙',
|
|
|
- type: ['年龄', '品种', '体重'],
|
|
|
-})
|
|
|
-function reset() {
|
|
|
- stage.value = 0
|
|
|
- controlFormDisplay.value = {
|
|
|
- display1: false,
|
|
|
- display2: false,
|
|
|
- display3: false,
|
|
|
- }
|
|
|
-}
|
|
|
-function handleReady() {
|
|
|
- reset()
|
|
|
- controlFormDisplay.value.display2 = true
|
|
|
- setTimeout(() => {
|
|
|
- reset()
|
|
|
- controlFormDisplay.value.display3 = true
|
|
|
- }, 3000)
|
|
|
-}
|
|
|
-function handleBackFeedStart() {
|
|
|
- reset()
|
|
|
- controlFormDisplay.value.display1 = true
|
|
|
-}
|
|
|
-function handleStep(step: number) {
|
|
|
- if (step === 2) {
|
|
|
- handleReady()
|
|
|
- stage.value = 1
|
|
|
- controlFormDisplay.value.display2 = true
|
|
|
- }
|
|
|
- else if (step === 7) {
|
|
|
- handleReady()
|
|
|
- stage.value = 2
|
|
|
- controlFormDisplay.value.display2 = true
|
|
|
- }
|
|
|
+const titleName = ref<string>('喂养计划')
|
|
|
+function handleJumpPlan() {
|
|
|
+ uni.navigateTo({ url: '/pages/feed-calculator/index' })
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
<TitleBar :title-name="titleName" />
|
|
|
- <view class="flex flex-col bg-[#F5F6F7] overflow-y-auto" :style="`height:calc(100vh - ${safeHeight}px)`">
|
|
|
- <view v-show="controlFormDisplay.display1">
|
|
|
- <FeedStart :step-info="stepInfo" @ready="handleReady" />
|
|
|
- </view>
|
|
|
- <view v-show="controlFormDisplay.display2" class="flex justify-center items-center w-full h-full">
|
|
|
- <FeedStep :list="stepInfo" :stage="stage" />
|
|
|
- </view>
|
|
|
- <view v-show="controlFormDisplay.display3">
|
|
|
- <FeedQuestionnaire :list="feedFormQuestions" :step-info="stepInfo" :user-list="userList" @back="handleBackFeedStart" @step="handleStep" />
|
|
|
- </view>
|
|
|
- </view>
|
|
|
+ <button class="h-16 flex items-center justify-center bg-[red]" @tap="handleJumpPlan">
|
|
|
+ 跳转喂养计算器
|
|
|
+ </button>
|
|
|
</template>
|
|
|
|
|
|
<style scoped>
|