Commit 1e0f526e authored by spc's avatar spc

Merge branch 'dev' of http://gitlab2.dui88.com/fh/20250528_FHQ1 into dev

parents f3fc230a f663c9b3
<template>
<view class="popup-tip">
<view class="popup-tip-content">
<view class="content-1">
<image :src="`${$baseUrl}chanjianTool/1001/tip-mark.png`"></image>
</view>
<view class="content-2">
{{ type == '1' ? '当前非宝宝状态' : '当前非孕中状态' }}
</view>
<view class="content-3">
可以去个人中心新增或切换{{ type == '1' ? '宝宝' : '孕中' }}状态
</view>
<view class="content-4">
再使用工具哦
</view>
<view class="form-btn" @click="onAdd">
<image :src="`${$baseUrl}chanjianTool/1001/icon23.png`"></image>
{{ type == '1' ? '添加宝宝' : '添加状态' }}
</view>
</view>
</view>
</template>
<script setup>
import {
ref
} from 'vue'
const props = defineProps({
type: {
type: String,
default: '1', // 1 非宝宝状态 2 非孕中状态
}
})
// 跳转新增产检页面
const onAdd = () => {
const type = 'add'
uni.navigateBack();
// uni.navigateTo({
// url: `/pages/person/person?type=${type}`
// })
}
</script>
<style lang="scss" scoped>
.popup-tip{
position: fixed;
left: 0;
top: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
&-content{
width: 661rpx;
height: 492rpx;
display: flex;
flex-direction: column;
align-items: center;
border-radius: 52rpx;
background: #ffffff;
.content-1{
width: 79rpx;
height: 79rpx;
margin-top: 35rpx;
image{
width: 100%;
height: 100%;
}
}
.content-2{
font-size: 37rpx;
color: #d3a358;
margin-top: 20rpx;
}
.content-3{
margin-top: 20rpx;
}
.content-4{
margin-top: 12rpx;
}
.content-3, .content-4{
font-size: 30rpx;
color: #000000;
}
}
}
// 保存
.form-btn {
width: 565rpx;
height: 97rpx;
border-radius: 48rpx;
background-color: #d3a358;
color: #ffffff;
font-size: 38rpx;
display: flex;
align-items: center;
justify-content: center;
margin-top: 55rpx;
image {
width: 42rpx;
height: 42rpx;
margin-right: 12rpx;
}
}
</style>
\ No newline at end of file
...@@ -76,6 +76,10 @@ ...@@ -76,6 +76,10 @@
<image :src="`${$baseUrl}chanjianTool/1001/icon21.png`"></image> <image :src="`${$baseUrl}chanjianTool/1001/icon21.png`"></image>
</view> </view>
</view> </view>
<!-- 专家咨询 -->
<button class="form-btn" @click="onJump">
专家在线咨询
</button>
</view> </view>
</template> </template>
...@@ -94,6 +98,8 @@ import { ...@@ -94,6 +98,8 @@ import {
getReportList, getReportList,
getDelete getDelete
} from '../../api/obstetric.js'; } from '../../api/obstetric.js';
import { getHealthField } from "@/api/common";
import { jump, JumpType } from "@/utils";
import md from '../../md'; import md from '../../md';
import { useUserStore } from "@/stores/user"; import { useUserStore } from "@/stores/user";
...@@ -110,6 +116,37 @@ const imageListData = ref([]) ...@@ -110,6 +116,37 @@ const imageListData = ref([])
// 报告单数据 // 报告单数据
const listData = ref([]) const listData = ref([])
// 跳转小程序
const onJump = async () => {
const res = await getHealthField();
if (!res.success) {
uni.showToast({
title: "获取健康字段失败",
icon: "none",
});
return;
}
const { sign, timestamp, appId, partnerUserId, env } = res.data;
jump({
type: JumpType.MINI,
url: "/pages/partner/redirect",
extra: {
appId: "wx81ecfb5aa3fb512f",
envVersion: env,
extraData: {
sign, // 参考 4.请求参数
timestamp, // 参考 4.请求参数
appId, // 参考 4.请求参数
partnerUserId, // 参考 4.请求参数
targetApp:
"/h5/partner/shining-like-a-start/landing-free-consult?sysType=CRF",
},
},
});
}
// 查看更多图片 // 查看更多图片
const onMoreImage = (item) => { const onMoreImage = (item) => {
console.log(item) console.log(item)
...@@ -204,7 +241,7 @@ onLoad(() => { ...@@ -204,7 +241,7 @@ onLoad(() => {
.con-box { .con-box {
width: 682rpx; width: 682rpx;
height: calc(100vh - 220rpx); height: calc(100vh - 350rpx);
overflow-y: auto; overflow-y: auto;
.no-data { .no-data {
...@@ -415,4 +452,21 @@ onLoad(() => { ...@@ -415,4 +452,21 @@ onLoad(() => {
// margin-left: 0rpx; // margin-left: 0rpx;
} }
} }
// 保存
.form-btn {
width: 686rpx;
height: 94rpx;
border-radius: 46rpx;
background-color: #d3a358;
color: #ffffff;
font-size: 38rpx;
display: flex;
align-items: center;
justify-content: center;
position: fixed;
bottom: 60rpx;
left: 50%;
transform: translateX(-50%);
z-index: 2;
}
</style> </style>
\ No newline at end of file
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
</customize-navigation> </customize-navigation>
<view class="postnatal-con"> <view class="postnatal-con">
<!-- 轮播图 --> <!-- 轮播图 -->
<swiper class="banner-swiper" :autoplay="true" :circular="true"> <swiper class="banner-swiper" :autoplay="true" :circular="true" v-if="bannerList.length > 0 ">
<swiper-item v-for="(item, index) in bannerList" :key="index"> <swiper-item v-for="(item, index) in bannerList" :key="index">
<image class="banner-img" :src="`${item.img}`" mode="aspectFill" <image class="banner-img" :src="`${item.img}`" mode="aspectFill"
@click="handleBannerClick(item, index)" /> @click="handleBannerClick(item, index)" />
...@@ -113,6 +113,9 @@ ...@@ -113,6 +113,9 @@
</view> </view>
</view> </view>
</view> </view>
<!-- 提示弹窗 -->
<popup-tip v-if="isTip" type="2"></popup-tip>
<!-- 使用封装后的日期选择器组件 --> <!-- 使用封装后的日期选择器组件 -->
<DatePicker v-model:visible="visible" :default-date="time" @confirm="handleDateConfirm" /> <DatePicker v-model:visible="visible" :default-date="time" @confirm="handleDateConfirm" />
...@@ -159,6 +162,8 @@ const back_btn = ref('') ...@@ -159,6 +162,8 @@ const back_btn = ref('')
// 是否授权 // 是否授权
const isWxNotification = ref(true) const isWxNotification = ref(true)
const isTip = ref(false)
// 弹窗控制 // 弹窗控制
const showPicker = ref(false) const showPicker = ref(false)
// 提醒时间选项 // 提醒时间选项
...@@ -398,10 +403,7 @@ const getInfoFn = async () => { ...@@ -398,10 +403,7 @@ const getInfoFn = async () => {
uni.setStorageSync('dueDate', data.dueDate); uni.setStorageSync('dueDate', data.dueDate);
} else { } else {
uni.showToast({ isTip.value = true
title: message,
icon: "none",
});
} }
} }
...@@ -457,6 +459,9 @@ onShow(() => { ...@@ -457,6 +459,9 @@ onShow(() => {
// width: 750rpx; // width: 750rpx;
top: 190rpx; top: 190rpx;
left: 31rpx; left: 31rpx;
display: flex;
flex-direction: column;
height: calc(100vh - 200rpx);
&-info { &-info {
font-size: 24rpx; font-size: 24rpx;
...@@ -464,7 +469,8 @@ onShow(() => { ...@@ -464,7 +469,8 @@ onShow(() => {
align-items: center; align-items: center;
margin-top: 50rpx; margin-top: 50rpx;
font-weight: 500; font-weight: 500;
flex-shrink: 0;
height: 32rpx;
.info-c { .info-c {
width: 2rpx; width: 2rpx;
height: 22rpx; height: 22rpx;
...@@ -479,11 +485,12 @@ onShow(() => { ...@@ -479,11 +485,12 @@ onShow(() => {
} }
&-btn { &-btn {
height: 86rpx;
margin-top: 55rpx; margin-top: 55rpx;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
margin-bottom: 30rpx; margin-bottom: 30rpx;
flex-shrink: 0;
.btn-item { .btn-item {
display: flex; display: flex;
align-items: center; align-items: center;
...@@ -512,7 +519,9 @@ onShow(() => { ...@@ -512,7 +519,9 @@ onShow(() => {
} }
&-record { &-record {
height: calc(100vh - 650rpx); flex: 1;
// height: calc(100vh - 650rpx);
overflow-x: hidden;
overflow-y: auto; overflow-y: auto;
.record-item { .record-item {
...@@ -707,6 +716,7 @@ onShow(() => { ...@@ -707,6 +716,7 @@ onShow(() => {
} }
.banner-swiper { .banner-swiper {
flex-shrink: 0;
width: 687rpx; width: 687rpx;
height: 177rpx; height: 177rpx;
border-radius: 12rpx; border-radius: 12rpx;
......
...@@ -69,29 +69,29 @@ ...@@ -69,29 +69,29 @@
<view class="measurement-item"> <view class="measurement-item">
<text class="measurement-label">身高</text> <text class="measurement-label">身高</text>
<view class="measurement-status normal"> <view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/duihaoIcon.png`" mode="aspectFit"></image> <image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[analysisData?.heightStatus]}.png`" mode="aspectFit"></image>
<text>{{statusMap[analysisData?.heightStatus]}}</text> <!-- <text>{{statusMap[analysisData?.heightStatus]}}</text> -->
</view> </view>
</view> </view>
<view class="measurement-item"> <view class="measurement-item">
<text class="measurement-label">体重</text> <text class="measurement-label">体重</text>
<view class="measurement-status normal"> <view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/duihaoIcon.png`" mode="aspectFit"></image> <image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[analysisData?.weightStatus]}.png`" mode="aspectFit"></image>
<text>{{statusMap[analysisData?.weightStatus]}}</text> <!-- <text>{{statusMap[analysisData?.weightStatus]}}</text> -->
</view> </view>
</view> </view>
<view class="measurement-item" v-if="analysisData?.headStatus"> <view class="measurement-item" v-if="analysisData?.headStatus">
<text class="measurement-label">头围</text> <text class="measurement-label">头围</text>
<view class="measurement-status normal"> <view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/duihaoIcon.png`" mode="aspectFit"></image> <image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[analysisData?.headStatus]}.png`" mode="aspectFit"></image>
<text>{{statusMap[analysisData?.headStatus]}}</text> <!-- <text>{{statusMap[analysisData?.headStatus]}}</text> -->
</view> </view>
</view> </view>
<view class="measurement-item"> <view class="measurement-item">
<text class="measurement-label">BMI</text> <text class="measurement-label">BMI</text>
<view class="measurement-status normal"> <view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/duihaoIcon.png`" mode="aspectFit"></image> <image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[analysisData?.bmiStatus]}.png`" mode="aspectFit"></image>
<text>{{statusMap[analysisData?.bmiStatus]}}</text> <!-- <text>{{statusMap[analysisData?.bmiStatus]}}</text> -->
</view> </view>
</view> </view>
</view> </view>
...@@ -258,29 +258,29 @@ ...@@ -258,29 +258,29 @@
<view class="measurement-item"> <view class="measurement-item">
<text class="measurement-label">身高</text> <text class="measurement-label">身高</text>
<view class="measurement-status normal"> <view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/duihaoIcon.png`" mode="aspectFit"></image> <image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[item?.heightStatus]}.png`" mode="aspectFit"></image>
<text>{{statusMap[item?.heightStatus]}}</text> <!-- <text>{{statusMap[item?.heightStatus]}}</text> -->
</view> </view>
</view> </view>
<view class="measurement-item"> <view class="measurement-item">
<text class="measurement-label">体重</text> <text class="measurement-label">体重</text>
<view class="measurement-status normal"> <view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/duihaoIcon.png`" mode="aspectFit"></image> <image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[item?.weightStatus]}.png`" mode="aspectFit"></image>
<text>{{statusMap[item?.weightStatus]}}</text> <!-- <text>{{statusMap[item?.weightStatus]}}</text> -->
</view> </view>
</view> </view>
<view class="measurement-item" v-if="item?.head"> <view class="measurement-item" v-if="item?.head">
<text class="measurement-label">头围</text> <text class="measurement-label">头围</text>
<view class="measurement-status normal"> <view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/duihaoIcon.png`" mode="aspectFit"></image> <image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[item?.headStatus]}.png`" mode="aspectFit"></image>
<text>{{statusMap[item?.headStatus]}}</text> <!-- <text>{{statusMap[item?.headStatus]}}</text> -->
</view> </view>
</view> </view>
<view class="measurement-item"> <view class="measurement-item">
<text class="measurement-label">BMI</text> <text class="measurement-label">BMI</text>
<view class="measurement-status normal"> <view class="measurement-status normal">
<image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/duihaoIcon.png`" mode="aspectFit"></image> <image class="status-icon" :src="`${$baseUrl}shengzhangTestResult/1001/${statusImgMap[item?.bmiStatus]}.png`" mode="aspectFit"></image>
<text>{{statusMap[item?.bmiStatus]}}</text> <!-- <text>{{statusMap[item?.bmiStatus]}}</text> -->
</view> </view>
</view> </view>
</view> </view>
...@@ -461,6 +461,14 @@ const statusMap = { ...@@ -461,6 +461,14 @@ const statusMap = {
HIGH: '偏高' HIGH: '偏高'
} }
const statusImgMap = {
NORMAL: 'resultTips2',
SLIGHT_LOW: 'resultTips1',
SLIGHT_HIGH: 'resultTips3',
LOW: 'resultTips0',
HIGH: 'resultTips4'
}
// 切换导航标签 // 切换导航标签
/** /**
* @param {string} tab - 要切换的标签名称('latest'|'history') * @param {string} tab - 要切换的标签名称('latest'|'history')
...@@ -1369,8 +1377,8 @@ const onTouchEnd = () => { ...@@ -1369,8 +1377,8 @@ const onTouchEnd = () => {
align-items: center; align-items: center;
.status-icon { .status-icon {
width: 16rpx; width: 66rpx;
height: 16rpx; height: 23rpx;
margin-right: 6rpx; margin-right: 6rpx;
} }
} }
...@@ -1554,8 +1562,8 @@ const onTouchEnd = () => { ...@@ -1554,8 +1562,8 @@ const onTouchEnd = () => {
align-items: center; align-items: center;
.status-icon { .status-icon {
width: 16rpx; width: 66rpx;
height: 16rpx; height: 23rpx;
margin-right: 6rpx; margin-right: 6rpx;
} }
} }
......
...@@ -187,7 +187,7 @@ const handleToolClick = async (item) => { ...@@ -187,7 +187,7 @@ const handleToolClick = async (item) => {
// 跳转产检提醒页面判断 // 跳转产检提醒页面判断
let listData = userStore.babyInfo ? userStore.babyInfo.allBabyBaseInfo : [] // let listData = userStore.babyInfo ? userStore.babyInfo.allBabyBaseInfo : []
if (item.title === "医生问诊") { if (item.title === "医生问诊") {
if (!cfgStatus.value.isRegister) return; if (!cfgStatus.value.isRegister) return;
...@@ -220,63 +220,6 @@ const handleToolClick = async (item) => { ...@@ -220,63 +220,6 @@ const handleToolClick = async (item) => {
}, },
}, },
}); });
} else if(item.title === "产检提醒"){
if (!cfgStatus.value.isRegister) return;
if(listData.length > 0){
const hasPregnancy = listData.some(item => item.babyStage === 1 && item.selected === true )
console.log(hasPregnancy, 'hasPregnancy')
if(hasPregnancy){
jump({ type: item.link.type, url: item.link.url});
} else{
uni.showToast({
title: "需要是孕中状态才可以进入哦",
icon: "none",
});
}
} else{
uni.showToast({
title: "需要是孕中状态才可以进入哦",
icon: "none",
});
}
} else if (item.title === "喂养记录") {
if (!cfgStatus.value.isRegister) return;
if (listData.length > 0) {
const hasBirth = listData.some(item => item.babyStage === 2 && item.selected === true )
console.log(hasBirth,listData, 'hasBirth')
if (hasBirth) {
jump({ type: item.link.type, url: item.link.url });
}else{
uni.showToast({
title: "需要已生育宝宝的状态才可以进入哦",
icon: "none",
});
}
} else {
uni.showToast({
title: "需要已生育宝宝的状态才可以进入哦",
icon: "none",
});
}
} else if(item.title === '生长测评'){
if (!cfgStatus.value.isRegister) return;
if(listData.length > 0){
const hasPregnancy = listData.some(item => item.babyStage === 2 && item.selected === true )
if(hasPregnancy){
jump({ type: item.link.type, url: item.link.url});
} else{
uni.showToast({
title: "需要已生育宝宝的状态才可以进入哦",
icon: "none",
});
}
}else{
uni.showToast({
title: "需要已生育宝宝的状态才可以进入哦",
icon: "none",
});
}
} else { } else {
jump({ type: item.link.type, url: item.link.url}); jump({ type: item.link.type, url: item.link.url});
// const extra = item.link.extra; // const extra = item.link.extra;
...@@ -287,7 +230,6 @@ const handleToolClick = async (item) => { ...@@ -287,7 +230,6 @@ const handleToolClick = async (item) => {
// } // }
} }
}; };
//跳转到ai取名页面 //跳转到ai取名页面
// const toAiNaming = () => { // const toAiNaming = () => {
// jump({ // jump({
......
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