Commit c51a4f0e authored by 王炽's avatar 王炽

工具修改

parent ed443524
......@@ -19,3 +19,10 @@ export const getGrowthHistoryList = () => api.post('/c/growth/history/list');
export const getGrowthAssessmentDetail = (assessmentId) => api.get('/c/growth/assessment/detail', { assessmentId });
// export const fetchHomeJSON = () => api.get('/c/front/content',{type:'home'});
/**
* 获取生长工具配置信息
* @returns
*/
export const fetchShengzhangToolsJSON = () => api.get('/c/front/content',{type:'shengzhang'});
\ No newline at end of file
......@@ -130,7 +130,7 @@
{
"path": "pages/shengzhangTools/shengzhangTools",
"style": {
"navigationStyle": "custom"
"navigationBarTitleText": "生长测评"
}
},
{
......@@ -149,7 +149,7 @@
{
"path": "pages/shengzhangTestResult/shengzhangTestResult",
"style": {
"navigationStyle": "custom"
"navigationBarTitleText": "生长测评"
}
}
],
......
<template>
<view class="shengzhang-test-result-container">
<view class="result-bg" v-if="!showNoValBg">
<image class="result-bg-img0" :src="`${$baseUrl}shengzhangTestResult/1001/resultBg0.jpg`" mode="aspectFit"></image>
<image class="result-bg-img1" :src="`${$baseUrl}shengzhangTestResult/1001/resultBg1.jpg`" mode="aspectFit"></image>
<image class="result-bg-img0" :src="`${$baseUrl}shengzhangTestResult/1002/resultBg0.jpg`" mode="aspectFit"></image>
<image class="result-bg-img1" :src="`${$baseUrl}shengzhangTestResult/1002/resultBg1.jpg`" mode="aspectFit"></image>
</view>
<view
class="no-val-bg"
v-else
:style="{
backgroundImage: `url(${$baseUrl}shengzhangTestResult/1001/noValBg.jpg)`,
backgroundImage: `url(${$baseUrl}shengzhangTestResult/1002/noValBg.jpg)`,
backgroundRepeat: 'no-repeat',
backgroundSize: '100% auto',
backgroundPosition: 'top center',
width: '100%',
}"
>
<!-- <image class="no-val-bg-img" :src="`${$baseUrl}shengzhangTestResult/1001/noValBg.jpg`" mode="widthFix"></image> -->
<!-- <image class="no-val-bg-img" :src="`${$baseUrl}shengzhangTestResult/1002/noValBg.jpg`" mode="widthFix"></image> -->
</view>
......@@ -24,8 +24,8 @@
<!-- <view class="back-btn" @click="backHandler">
<text class="back-text"></text>
</view> -->
<text class="title">生长测评</text>
<image @tap="backHandler" class="back-btn" :src="`${$baseUrl}shengzhangTool/1001/backBtn.png`"></image>
<!-- <text class="title">生长测评</text>
<image @tap="backHandler" class="back-btn" :src="`${$baseUrl}shengzhangTool/1002/backBtn.png`"></image> -->
<view class="content-wrapper">
......@@ -50,7 +50,7 @@
<!-- 宝宝信息卡片 -->
<view class="baby-info-card">
<view class="card-header">
<image class="name-icon" :src="`${$baseUrl}shengzhangTestResult/1001/nameIcon.png`" mode="aspectFit"></image>
<image class="name-icon" :src="`${$baseUrl}shengzhangTestResult/1002/nameIcon.png`" mode="aspectFit"></image>
<text class="card-title">{{babyInfo?.babyName}}</text>
</view>
<view class="baby-basic-info">
......@@ -69,28 +69,28 @@
<view class="measurement-item">
<text class="measurement-label">身高</text>
<view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[analysisData?.heightStatus]}.png`" mode="aspectFit"></image>
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1002/${statusImgMap[analysisData?.heightStatus]}.png`" mode="aspectFit"></image>
<!-- <text>{{statusMap[analysisData?.heightStatus]}}</text> -->
</view>
</view>
<view class="measurement-item">
<text class="measurement-label">体重</text>
<view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[analysisData?.weightStatus]}.png`" mode="aspectFit"></image>
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1002/${statusImgMap[analysisData?.weightStatus]}.png`" mode="aspectFit"></image>
<!-- <text>{{statusMap[analysisData?.weightStatus]}}</text> -->
</view>
</view>
<view class="measurement-item" v-if="analysisData?.headStatus">
<text class="measurement-label">头围</text>
<view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[analysisData?.headStatus]}.png`" mode="aspectFit"></image>
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1002/${statusImgMap[analysisData?.headStatus]}.png`" mode="aspectFit"></image>
<!-- <text>{{statusMap[analysisData?.headStatus]}}</text> -->
</view>
</view>
<view class="measurement-item">
<text class="measurement-label">BMI</text>
<view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[analysisData?.bmiStatus]}.png`" mode="aspectFit"></image>
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1002/${statusImgMap[analysisData?.bmiStatus]}.png`" mode="aspectFit"></image>
<!-- <text>{{statusMap[analysisData?.bmiStatus]}}</text> -->
</view>
</view>
......@@ -104,7 +104,7 @@
<!-- 生长情况卡片 -->
<view class="growth-status-card">
<view class="card-header">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/shengzhangqingkuangIcon.png`" mode="aspectFit"></image>
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1002/shengzhangqingkuangIcon.png`" mode="aspectFit"></image>
<text class="card-title">生长情况</text>
</view>
<view class="legend">
......@@ -133,44 +133,44 @@
<view class="bar-item" >
<view class="value-triangle-container" :style="{marginLeft: statusBarPercentileMap[analysisData.heightStatus] + 'rpx'}">
<text class="bar-value">{{assessmentData?.height}}cm {{statusMap[analysisData?.heightStatus]}}</text>
<image class="triangle" :src="`${$baseUrl}shengzhangTestResult/1001/triangle.png`" mode="aspectFit"></image>
<image class="triangle" :src="`${$baseUrl}shengzhangTestResult/1002/triangle.png`" mode="aspectFit"></image>
</view>
<view class="bar-row">
<text class="measurement-label">身高</text>
<image class="value-bar" :src="`${$baseUrl}shengzhangTestResult/1001/valueBar.png`" mode="aspectFit"></image>
<image class="value-bar" :src="`${$baseUrl}shengzhangTestResult/1002/valueBar.png`" mode="aspectFit"></image>
<text class="bar-percentage">超过{{analysisData.heightPercentile}}%同龄宝宝</text>
</view>
</view>
<view class="bar-item">
<view class="value-triangle-container" :style="{marginLeft: statusBarPercentileMap[analysisData.weightStatus] + 'rpx'}">
<text class="bar-value">{{assessmentData?.weight}}kg {{statusMap[analysisData?.weightStatus]}}</text>
<image class="triangle" :src="`${$baseUrl}shengzhangTestResult/1001/triangle.png`" mode="aspectFit"></image>
<image class="triangle" :src="`${$baseUrl}shengzhangTestResult/1002/triangle.png`" mode="aspectFit"></image>
</view>
<view class="bar-row">
<text class="measurement-label">体重</text>
<image class="value-bar" :src="`${$baseUrl}shengzhangTestResult/1001/valueBar.png`" mode="aspectFit"></image>
<image class="value-bar" :src="`${$baseUrl}shengzhangTestResult/1002/valueBar.png`" mode="aspectFit"></image>
<text class="bar-percentage">超过{{analysisData.weightPercentile}}%同龄宝宝</text>
</view>
</view>
<view class="bar-item" v-if="assessmentData?.headCircumference">
<view class="value-triangle-container" :style="{marginLeft: statusBarPercentileMap[analysisData.headStatus] + 'rpx'}">
<text class="bar-value">{{assessmentData?.headCircumference}}cm {{statusMap[analysisData?.headStatus]}}</text>
<image class="triangle" :src="`${$baseUrl}shengzhangTestResult/1001/triangle.png`" mode="aspectFit"></image>
<image class="triangle" :src="`${$baseUrl}shengzhangTestResult/1002/triangle.png`" mode="aspectFit"></image>
</view>
<view class="bar-row">
<text class="measurement-label">头围</text>
<image class="value-bar" :src="`${$baseUrl}shengzhangTestResult/1001/valueBar.png`" mode="aspectFit"></image>
<image class="value-bar" :src="`${$baseUrl}shengzhangTestResult/1002/valueBar.png`" mode="aspectFit"></image>
<text class="bar-percentage">超过{{analysisData.headPercentile}}%同龄宝宝</text>
</view>
</view>
<view class="bar-item">
<view class="value-triangle-container" :style="{marginLeft: statusBarPercentileMap[analysisData.bmiStatus] + 'rpx'}">
<text class="bar-value">{{assessmentData?.bmi}} {{statusMap[analysisData?.bmiStatus]}}</text>
<image class="triangle" :src="`${$baseUrl}shengzhangTestResult/1001/triangle.png`" mode="aspectFit"></image>
<image class="triangle" :src="`${$baseUrl}shengzhangTestResult/1002/triangle.png`" mode="aspectFit"></image>
</view>
<view class="bar-row">
<text class="measurement-label">BMI</text>
<image class="value-bar" :src="`${$baseUrl}shengzhangTestResult/1001/valueBar.png`" mode="aspectFit"></image>
<image class="value-bar" :src="`${$baseUrl}shengzhangTestResult/1002/valueBar.png`" mode="aspectFit"></image>
<text class="bar-percentage">超过{{analysisData?.bmiPercentile}}%同龄宝宝</text>
</view>
</view>
......@@ -184,16 +184,16 @@
</view>
<view class="curve-tabs">
<view class="curve-tab" :class="{ 'active': activeCurveTab === 'height' }" @click="switchCurveTab('height')">
<image v-if="activeCurveTab === 'height'"class="tab-icon" :src="`${$baseUrl}shengzhangTestResult/1001/shengaoTab0.png`" mode="aspectFit"></image>
<image v-else class="tab-icon" :src="`${$baseUrl}shengzhangTestResult/1001/shengaoTab1.png`" mode="aspectFit"></image>
<image v-if="activeCurveTab === 'height'"class="tab-icon" :src="`${$baseUrl}shengzhangTestResult/1002/shengaoTab0.png`" mode="aspectFit"></image>
<image v-else class="tab-icon" :src="`${$baseUrl}shengzhangTestResult/1002/shengaoTab1.png`" mode="aspectFit"></image>
</view>
<view class="curve-tab" :class="{ 'active': activeCurveTab === 'weight' }" @click="switchCurveTab('weight')">
<image v-if="activeCurveTab === 'weight'" class="tab-icon" :src="`${$baseUrl}shengzhangTestResult/1001/tizhongTab0.png`" mode="aspectFit"></image>
<image v-else class="tab-icon" :src="`${$baseUrl}shengzhangTestResult/1001/tizhongTab1.png`" mode="aspectFit"></image>
<image v-if="activeCurveTab === 'weight'" class="tab-icon" :src="`${$baseUrl}shengzhangTestResult/1002/tizhongTab0.png`" mode="aspectFit"></image>
<image v-else class="tab-icon" :src="`${$baseUrl}shengzhangTestResult/1002/tizhongTab1.png`" mode="aspectFit"></image>
</view>
<view class="curve-tab" :class="{ 'active': activeCurveTab === 'head' }" @click="switchCurveTab('head')">
<image v-if="activeCurveTab === 'head'" class="tab-icon" :src="`${$baseUrl}shengzhangTestResult/1001/touweiTab0.png`" mode="aspectFit"></image>
<image v-else class="tab-icon" :src="`${$baseUrl}shengzhangTestResult/1001/touweiTab1.png`" mode="aspectFit"></image>
<image v-if="activeCurveTab === 'head'" class="tab-icon" :src="`${$baseUrl}shengzhangTestResult/1002/touweiTab0.png`" mode="aspectFit"></image>
<image v-else class="tab-icon" :src="`${$baseUrl}shengzhangTestResult/1002/touweiTab1.png`" mode="aspectFit"></image>
</view>
</view>
<view class="graph-legend">
......@@ -227,7 +227,7 @@
</view>
<view class="curve-tips" @click="showCurveTips">
<image class="tips-icon" :src="`${$baseUrl}shengzhangTestResult/1001/shengzhangTips.png`" mode="aspectFit"></image>
<image class="tips-icon" :src="`${$baseUrl}shengzhangTestResult/1002/shengzhangTips.png`" mode="aspectFit"></image>
</view>
</view>
......@@ -239,7 +239,7 @@
<view class="history-item" v-for="(item, index) in historyList" :key="index">
<view class="history-card">
<view class="card-header">
<image class="name-icon" :src="`${$baseUrl}shengzhangTestResult/1001/nameIcon.png`" mode="aspectFit"></image>
<image class="name-icon" :src="`${$baseUrl}shengzhangTestResult/1002/nameIcon.png`" mode="aspectFit"></image>
<text class="card-title">{{item?.babyName}}</text>
</view>
<view class="baby-basic-info">
......@@ -258,28 +258,28 @@
<view class="measurement-item">
<text class="measurement-label">身高</text>
<view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[item?.heightStatus]}.png`" mode="aspectFit"></image>
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1002/${statusImgMap[item?.heightStatus]}.png`" mode="aspectFit"></image>
<!-- <text>{{statusMap[item?.heightStatus]}}</text> -->
</view>
</view>
<view class="measurement-item">
<text class="measurement-label">体重</text>
<view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[item?.weightStatus]}.png`" mode="aspectFit"></image>
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1002/${statusImgMap[item?.weightStatus]}.png`" mode="aspectFit"></image>
<!-- <text>{{statusMap[item?.weightStatus]}}</text> -->
</view>
</view>
<view class="measurement-item" v-if="item?.head">
<text class="measurement-label">头围</text>
<view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[item?.headStatus]}.png`" mode="aspectFit"></image>
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1002/${statusImgMap[item?.headStatus]}.png`" mode="aspectFit"></image>
<!-- <text>{{statusMap[item?.headStatus]}}</text> -->
</view>
</view>
<view class="measurement-item">
<text class="measurement-label">BMI</text>
<view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[item?.bmiStatus]}.png`" mode="aspectFit"></image>
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1002/${statusImgMap[item?.bmiStatus]}.png`" mode="aspectFit"></image>
<!-- <text>{{statusMap[item?.bmiStatus]}}</text> -->
</view>
</view>
......@@ -295,7 +295,7 @@
<!-- 专家咨询按钮 -->
<cover-view class="expert-consult-btn" @click="consultExpert">
<cover-image class="consult-bg" :src="`${$baseUrl}shengzhangTestResult/1001/zhuanjiazixunBtn.png`" mode="aspectFit"></cover-image>
<cover-image class="consult-bg" :src="`${$baseUrl}shengzhangTestResult/1002/zhuanjiazixunBtn.png`" mode="aspectFit"></cover-image>
</cover-view>
<!-- 生长曲线提示弹窗 -->
......@@ -1223,7 +1223,7 @@ const onTouchEnd = () => {
.result-bg{
top: 0rpx;
width: 100%;
height: 2700rpx;
height: 2550rpx;
position: absolute;
.result-bg-img0{
position: absolute;
......@@ -1235,7 +1235,7 @@ const onTouchEnd = () => {
position: absolute;
top: 1300rpx;
width: 100%;
height: 1400rpx;
height: 1250rpx;
}
}
......@@ -1425,7 +1425,7 @@ const onTouchEnd = () => {
align-items: center;
justify-content: center;
position: relative;
margin-top: 202rpx;
margin-top: 48rpx;
width: 260rpx;
margin-left: 5rpx;
......@@ -1862,8 +1862,7 @@ const onTouchEnd = () => {
display: flex;
align-items: center;
justify-content: center;
margin-top: 31rpx;
margin-bottom: 60rpx;
margin-top: 100rpx;
width: 100%;
height: 24rpx;
.tips-icon{
......@@ -1874,7 +1873,7 @@ const onTouchEnd = () => {
// 专家咨询按钮
.expert-consult-btn {
position: fixed;
bottom: 60rpx;
bottom: 90rpx;
left: 35rpx;
width: 681rpx;
height: 98rpx;
......
......@@ -2,25 +2,26 @@
<view class="shengzhang-tools-container">
<swiper
class="banner-swiper"
:indicator-dots="swiperData.length > 1"
:autoplay="swiperData.length > 1"
:circular="swiperData.length > 1"
:indicator-dots="swiperData?.length > 1"
:autoplay="swiperData?.length > 1"
:circular="swiperData?.length > 1"
indicator-color="#dfddd9"
indicator-active-color="#b27c1e"
:indicator-top="596"
v-if="swiperData && swiperData?.length > 0"
>
<swiper-item v-for="(item, index) in swiperData" :key="index">
<image
class="banner-img"
:src="`${$baseUrl}${item?.bannerImg}`"
:src="`${$baseUrl}${item?.img}`"
mode="aspectFill"
@click="bannerHandler(item)"
/>
</swiper-item>
</swiper>
<image @tap="backHandler" class="btnback" :src="$baseUrl + `shengzhangTool/1001/backBtn.png`"></image>
<text class="title">生长测评</text>
<!-- <image @tap="backHandler" class="btnback" :src="$baseUrl + `shengzhangTool/1001/backBtn.png`"></image>
<text class="title">生长测评</text> -->
<view class="info-container">
<!-- 顶部宝宝信息区域 -->
<view class="baby-info-section">
......@@ -261,7 +262,7 @@ import BabySwitchPopup from '@/components/BabySwitchPopup.vue'
import BabyFeedSwitchPopup from '@/components/BabyFeedSwitchPopup.vue'
import DatePickerPopup from '@/components/DatePickerPopup.vue'
import BabyTestTipsPopup from '@/components/BabyTestTipsPopup.vue'
import { growthHome, guideCompleted, getGrowthCurveData } from '../../api/shengzhangTools'
import { growthHome, guideCompleted, getGrowthCurveData,fetchShengzhangToolsJSON } from '../../api/shengzhangTools'
import { onLoad,onShow } from "@dcloudio/uni-app";
import { throttleTap,jump, JumpType, formatDate } from '../../utils/index.js';
import { useShengzhangStore } from '../../stores/shengzhangResult.js';
......@@ -269,12 +270,6 @@ import { useUserStore } from "@/stores/user";
const isTip = ref(false);
const swiperData = ref([
{ bannerImg: `shengzhangTool/1001/banner1.png` },
{ bannerImg: `shengzhangTool/1001/banner2.png` },
{ bannerImg: `shengzhangTool/1001/banner3.png` }
])
const babyName = ref('宝宝名称')
const babyAge = ref('8月龄')
const babyBirthday = ref('')
......@@ -288,6 +283,13 @@ const showLoading = ref(false);
const bannerHandler = (item) => {
console.log(item)
if(item?.url != ""){
jump({
type: item.type,
url: item.url,
extra: item.extra
})
}
}
// 首页组件逻辑
......@@ -719,8 +721,29 @@ onShow(async () => {
}
})
const shengzhangToolsData = ref({activeInfo:[
{
"img": "shengzhangTool/1001/banner1.png",
"url": "subPackages/shopMainList/topicNew/index?id=1000911",
"type": 2,
"extra": {
"appId": "wx4205ec55b793245e",
"envVersion": "release"
}
}
]
});
const swiperData = ref([]);
onMounted(async () => {
const {data} = await fetchShengzhangToolsJSON();
if(data){
shengzhangToolsData.value = {...data};
}else{
shengzhangToolsData.value = {activeInfo:[]};
}
swiperData.value = shengzhangToolsData?.value?.activeInfo || [];
})
const refreshBabyInfo = async () => {
......@@ -771,14 +794,16 @@ const refreshBabyInfo = async () => {
overflow-x: hidden;
overflow-y: auto;
background-color: #fdf6eb;
display: flex;
flex-flow: column;
.banner-swiper {
position: absolute;
left: 50%;
transform: translateX(-50%);
top: 191rpx;
position: relative;
width: 687rpx;
margin-left: 32rpx;
height: 176rpx;
padding-bottom: 50rpx;
.banner-img {
width: 100%;
......@@ -808,7 +833,7 @@ const refreshBabyInfo = async () => {
.info-container {
width: 750rpx;
height: 1210rpx;
margin: 414rpx auto 0;
// margin: 414rpx auto 0;
background-color: #ffffff;
border-top-left-radius: 32rpx;
border-top-right-radius: 32rpx;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment