Commit 06d9984f authored by weishengfei's avatar weishengfei

feat(obstetric): 自定义头部以及接口字段对接

parent 3f4b6508
...@@ -2,6 +2,13 @@ ...@@ -2,6 +2,13 @@
import requestModule from './request.js'; import requestModule from './request.js';
const { api } = requestModule; const { api } = requestModule;
/**
* 获取banner
* @returns
*/
export const postnatalJSON = () => api.get('/c/front/content',{type:'postnatal'});
/** /**
* 获取产检信息 * 获取产检信息
* @returns * @returns
......
<template>
<view class="customize">
<view class="navbar">
<view class="navbar-t" :style="{height:statusBarHeight+'px'}">
</view>
<view class="navbar-b" :style="{height:navBarHeight+'px',marginLeft:leftIconWidth+'px'}">
<slot name="navbar-content"></slot>
</view>
</view>
<view class="fill" :style="{height:fillHeight+'px'}">
</view>
</view>
</template>
<script setup>
import {
ref
} from 'vue'
// const props = defineProps({
// title: {
// type: String,
// default: '首页'
// }
// })
const leftIconWidth = ref(0)
const navBarHeight = ref(0)
// 获取系统信息
const {statusBarHeight} = uni.getSystemInfoSync()
// 获取胶囊按钮信息
// #ifndef MP-ALIPAY || H5
const {top, height} = uni.getMenuButtonBoundingClientRect()
// 计算导航栏高度
navBarHeight.value = (top - statusBarHeight) *2 + height
// #endif
// 计算填充高度
const fillHeight = statusBarHeight + navBarHeight.value
</script>
<style lang="scss" scoped>
.customize {
.navbar{
position: fixed;
top: 0;
left: 0;
width: 100%;
z-index: 100;
.navbar-t{
}
.navbar-b{
display: flex;
align-items: center;
padding: 0 35rpx;
}
}
}
</style>
\ No newline at end of file
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
产检时间 产检时间
</view> </view>
<view class="time-r" @click="onChangeTime"> <view class="time-r" @click="onChangeTime">
{{time}} {{ time }}
<image src="/static/chanjianTool/icon13.png" /> <image src="/static/chanjianTool/icon13.png" />
</view> </view>
</view> </view>
...@@ -26,9 +26,9 @@ ...@@ -26,9 +26,9 @@
<!-- 添加的产品项目 --> <!-- 添加的产品项目 -->
<view class="project-list" v-if="listData.length > 0"> <view class="project-list" v-if="listData.length > 0">
<view class="list-item" v-for="({itemName, id}, index) in listData" :key="index"> <view class="list-item" v-for="({ itemName, id }, index) in listData" :key="index">
<view class="item-name"> <view class="item-name">
{{itemName}} {{ itemName }}
</view> </view>
<image @click="onDetele(id)" class="item-img" src="/static/chanjianTool/delete.png"></image> <image @click="onDetele(id)" class="item-img" src="/static/chanjianTool/delete.png"></image>
</view> </view>
...@@ -48,11 +48,11 @@ ...@@ -48,11 +48,11 @@
</view> </view>
</view> </view>
<view class="img-list"> <view class="img-list">
<view class="upload-image" @click="onUpload"> <view class="upload-image" @click="onUpload">
<image src="/static/chanjianTool/icon11.png"></image> <image src="/static/chanjianTool/icon11.png"></image>
</view> </view>
<view class="img-list-item" v-for="( item, index) in bgdImgList" :key="index"> <view class="img-list-item" v-for="(item, index) in bgdImgList" :key="index">
<view class="item-image"> <view class="item-image">
<image class="img1" :src="item" mode="widthFix"></image> <image class="img1" :src="item" mode="widthFix"></image>
</view> </view>
...@@ -61,704 +61,722 @@ ...@@ -61,704 +61,722 @@
</view> </view>
</view> </view>
<!-- 上传报告单 --> <!-- 上传报告单 -->
<button class="form-btn" @click="onSave"> <button class="form-btn" @click="onSave">
保存 保存
</button> </button>
<!-- 产检选择时间 --> <!-- 产检选择时间 -->
<!-- 使用封装后的日期选择器组件 --> <!-- 使用封装后的日期选择器组件 -->
<DatePicker <DatePicker v-model:visible="visible" :default-date="time" @confirm="handleDateConfirm" />
v-model:visible="visible"
:default-date="time"
@confirm="handleDateConfirm"
/>
<!-- 产检项目底部弹窗 --> <!-- 产检项目底部弹窗 -->
<uni-popup ref="popup" type="bottom" :mask-click="false" background-color="#f6f8fa" border-radius="32rpx 32rpx 0 0"> <uni-popup ref="popup" type="bottom" :mask-click="false" background-color="#f6f8fa"
border-radius="32rpx 32rpx 0 0">
<view class="popup container"> <view class="popup container">
<view class="popup-close" @click="onPopupClose"> <view class="popup-close" @click="onPopupClose">
<image src="/static/chanjianTool/icon15.png"></image> <image src="/static/chanjianTool/icon15.png"></image>
</view> </view>
<!-- 项目列表 --> <!-- 项目列表 -->
<scroll-view scroll-y @touchmove.stop.prevent="" <scroll-view scroll-y @touchmove.stop.prevent="" class="airport-list">
class="airport-list">
<view v-for="group in examinationList" :key="group.groupName" class="letter-group"> <view v-for="group in examinationList" :key="group.groupName" class="letter-group">
<view class="letter-title">{{ group.groupName }}</view> <view class="letter-title">{{ group.groupName }}</view>
<view class="box"> <view class="box">
<view v-for="item in group.list" :key="item.id" class="airport-item"> <view v-for="item in group.list" :key="item.id" class="airport-item">
<view class="airport-item-radio" @click="toggleSelect(item)"> <view class="airport-item-radio" @click="toggleSelect(item)">
<image class="image-1" v-if="isSelected(item.id)" src="/static/chanjianTool/icon17.png" mode=""></image> <image class="image-1" v-if="isSelected(item.id)"
src="/static/chanjianTool/icon17.png" mode=""></image>
<image class="image-2" v-else src="/static/chanjianTool/icon18.png"></image> <image class="image-2" v-else src="/static/chanjianTool/icon18.png"></image>
{{ item.itemName }} {{ item.itemName }}
</view> </view>
<view class="airport-item-image" @click.stop="onView(item)"> <view class="airport-item-image" @click.stop="onView(item)">
<image src="/static/chanjianTool/icon16.png"></image> <image src="/static/chanjianTool/icon16.png"></image>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<!-- 底部操作栏 --> <!-- 底部操作栏 -->
<button class="action-bar" @click="saveSelection">确认</button> <button class="action-bar" @click="saveSelection">确认</button>
</view> </view>
</uni-popup> </uni-popup>
<!-- 项目介绍 --> <!-- 项目介绍 -->
<uni-popup ref="popupText" type="bottom" :mask-click="true" background-color="#FFFFFF" border-radius="32rpx 32rpx 0 0"> <uni-popup ref="popupText" type="bottom" :mask-click="true" background-color="#FFFFFF"
<view class="container2"> border-radius="32rpx 32rpx 0 0">
<view class="text-t"> <view class="container2">
<view class="text-t">
<view class="t-1"> <view class="t-1">
{{popupTextObj.itemName}} {{ popupTextObj.itemName }}
</view> </view>
<image @click="onPopupClose2" src="/static/chanjianTool/icon15.png" mode=""></image> <image @click="onPopupClose2" src="/static/chanjianTool/icon15.png" mode=""></image>
</view> </view>
<view class="text-c"> <view class="text-c">
{{popupTextObj.introduction}} {{ popupTextObj.introduction }}
</view> </view>
</view> </view>
</uni-popup> </uni-popup>
</view> </view>
</template> </template>
<script setup> <script setup>
import { import {
ref ref
} from 'vue' } from 'vue'
import { import {
dateFormatter, dateFormatter,
throttleTap, throttleTap,
showLoading, showLoading,
hideLoading hideLoading
} from '@/utils/index.js'; } from '@/utils/index.js';
import { onLoad } from '@dcloudio/uni-app' import { onLoad } from '@dcloudio/uni-app'
import { import {
uploadImage uploadImage
} from "../../api/common.js"; } from "../../api/common.js";
import { import {
getAdd, getAdd,
getExaminationItems getExaminationItems
} from '../../api/obstetric.js'; } from '../../api/obstetric.js';
// 导入日期选择器组件 // 导入日期选择器组件
import DatePicker from '@/components/DatePicker.vue' import DatePicker from '@/components/DatePicker.vue'
// 默认产检时间 // 默认产检时间
const time = ref(''); const time = ref('');
// 控制选择时间显示 // 控制选择时间显示
const visible = ref(false) const visible = ref(false)
// 产品项目底部弹窗 // 产品项目底部弹窗
const popup = ref(null) const popup = ref(null)
// 产品项目介绍底部弹窗 // 产品项目介绍底部弹窗
const popupText = ref(null) const popupText = ref(null)
// 存储查看项目介绍内容 // 存储查看项目介绍内容
const popupTextObj = ref({}) const popupTextObj = ref({})
// 模拟项目列表 // 模拟项目列表
const examinationList = ref([]) const examinationList = ref([])
// 已选项目(存储ID和name) // 已选项目(存储ID和name)
const selectedAirports = ref([]); const selectedAirports = ref([]);
// 添加的产品列表 // 添加的产品列表
const listData = ref([]); const listData = ref([]);
// 报告单图片 // 报告单图片
const bgdImgList = ref([]) const bgdImgList = ref([])
// 查看项目介绍 // 查看项目介绍
const onView = (item) =>{ const onView = (item) => {
console.log(item) console.log(item)
popupTextObj.value = item popupTextObj.value = item
popupText.value.open() popupText.value.open()
} }
// 关闭项目介绍弹窗 // 关闭项目介绍弹窗
const onPopupClose2 = () => { const onPopupClose2 = () => {
popupText.value.close() popupText.value.close()
} }
// 修改时间 // 修改时间
const onChangeTime = () => { const onChangeTime = () => {
visible.value = true; visible.value = true;
} }
// 选择日期回调确认 // 选择日期回调确认
const handleDateConfirm = (date) => { const handleDateConfirm = (date) => {
console.log('选择的日期是:', date); console.log('选择的日期是:', date);
time.value = date; time.value = date;
}
// 添加项目
const onAdd = () => {
wx.setPageStyle({
style: {
overflow: 'hidden'
}
})
popup.value.open()
// 回显数据
if (listData.value.length > 0) {
// 回显数据 - 将 listData 中的数据同步到 selectedAirports
selectedAirports.value = [...listData.value]
} }
// 添加项目 }
const onAdd = () => { // 关闭项目弹窗
wx.setPageStyle({ const onPopupClose = () => {
style: { wx.setPageStyle({
overflow: 'hidden' style: {
} overflow: 'auto'
})
popup.value.open()
// 回显数据
if(listData.value.length > 0){
// 回显数据 - 将 listData 中的数据同步到 selectedAirports
selectedAirports.value = [...listData.value]
} }
})
selectedAirports.value = []
popup.value.close()
}
// 检查是否已选中
const isSelected = (id) => {
return selectedAirports.value.some(item => item.id == id);
};
// 切换选择状态
const toggleSelect = (airport) => {
const index = selectedAirports.value.findIndex(item => item.id == airport.id);
if (index === -1) {
selectedAirports.value.push({
id: airport.id,
itemName: airport.itemName
});
} else {
selectedAirports.value.splice(index, 1);
} }
// 关闭项目弹窗 };
const onPopupClose = () => {
wx.setPageStyle({ // 保存选择
style: { const saveSelection = () => {
overflow: 'auto' console.log('已选项目ID:', selectedAirports.value);
} // 合并 selectedAirports.value 到 listData.value,并去重
}) const combined = [...listData.value, ...selectedAirports.value];
selectedAirports.value = [] const uniqueMap = new Map();
popup.value.close() combined.forEach(item => uniqueMap.set(item.id, item));
listData.value = Array.from(uniqueMap.values());
onPopupClose();
};
// 移除已选项目
const removeSelected = (airport) => {
const index = selectedAirports.value.findIndex(item => item.id === airport.id);
if (index !== -1) {
selectedAirports.value.splice(index, 1);
} }
// 检查是否已选中 };
const isSelected = (id) => { // 删除所选产品项目
return selectedAirports.value.some(item => item.id == id); const onDetele = (id) => {
}; listData.value.filter((item, index) => {
if (item.id == id) {
// 切换选择状态 listData.value.splice(index, 1)
const toggleSelect = (airport) => {
const index = selectedAirports.value.findIndex(item => item.id == airport.id);
if (index === -1) {
selectedAirports.value.push({
id: airport.id,
itemName: airport.itemName
});
} else {
selectedAirports.value.splice(index, 1);
} }
}; })
}
// 保存选择 // 删除上传图片
const saveSelection = () => { const onImageDel = (e) => {
console.log('已选项目ID:', selectedAirports.value); bgdImgList.value.filter((item, index) => {
// 合并 selectedAirports.value 到 listData.value,并去重 if (item === e) {
const combined = [...listData.value, ...selectedAirports.value]; bgdImgList.value.splice(index, 1)
const uniqueMap = new Map();
combined.forEach(item => uniqueMap.set(item.id, item));
listData.value = Array.from(uniqueMap.values());
onPopupClose();
};
// 移除已选项目
const removeSelected = (airport) => {
const index = selectedAirports.value.findIndex(item => item.id === airport.id);
if (index !== -1) {
selectedAirports.value.splice(index, 1);
} }
}; })
// 删除所选产品项目 }
const onDetele = (id) => { // 上传图片
listData.value.filter((item, index) => { const onUpload = throttleTap(() => {
if (item.id == id) { // 唤起图片选择器
listData.value.splice(index, 1) uni.chooseImage({
count: 15,
sizeType: ["original", "compressed"],
sourceType: ["album", "camera"],
success: async (res) => {
showLoading();
const tempFilePath = res.tempFilePaths[0];
console.log(tempFilePath)
const fs = uni.getFileSystemManager();
console.log(fs)
const base64 =
"data:image/jpeg;base64," + fs.readFileSync(tempFilePath, "base64");
const uploadRes = await uploadImage(base64);
hideLoading();
if (uploadRes.success) {
console.log(uploadRes)
bgdImgList.value.push(uploadRes.data.url)
} else {
uni.showToast({
title: uploadRes.message,
icon: "none",
});
} }
},
});
})
// 保存
const onSave = throttleTap(() => {
if (listData.value.length == 0) {
uni.showToast({
title: '还没有添加产检项哦',
icon: 'none'
}) })
return
} }
// 删除上传图片 const ids = listData.value.map(item => item.id).join(',');
const onImageDel = (e) => { const param = {
bgdImgList.value.filter((item, index) => { checkupDate: time.value,
if (item === e) { checkupItems: ids,
bgdImgList.value.splice(index, 1) reportImages: bgdImgList.value
}
})
} }
// 上传图片 console.log(param, '参数')
const onUpload = throttleTap(() => { showLoading();
// 唤起图片选择器 // const {success, data} = await getAdd(data);
uni.chooseImage({ const { success, data, message } = {
count: 15, success: true,
sizeType: ["original", "compressed"], message: '',
sourceType: ["album", "camera"], data: {}
success: async (res) => { }
showLoading(); hideLoading();
const tempFilePath = res.tempFilePaths[0]; if (success) {
console.log(tempFilePath) uni.showToast({
const fs = uni.getFileSystemManager(); title: "保存成功",
console.log(fs) icon: "success",
const base64 = });
"data:image/jpeg;base64," + fs.readFileSync(tempFilePath, "base64"); uni.navigateBack()
} else {
const uploadRes = await uploadImage(base64); uni.showToast({
title: message,
hideLoading(); icon: "none",
if (uploadRes.success) {
console.log(uploadRes)
bgdImgList.value.push(uploadRes.data.url)
} else {
uni.showToast({
title: uploadRes.message,
icon: "none",
});
}
},
}); });
})
// 保存
const onSave = throttleTap(() => {
if(listData.value.length == 0){
uni.showToast({
title: '还没有添加产检项哦',
icon: 'none'
})
return
}
const ids = listData.value.map(item => item.id).join(',');
const param = {
checkupDate: time.value,
checkupItems: ids,
reportImages: bgdImgList.value
}
console.log(param, '参数')
showLoading();
// const {success, data} = await getAdd(data);
const { success, data, message } = {
success: true,
message: '',
data:{}
}
hideLoading();
if(success){
uni.showToast({
title: "保存成功",
icon: "success",
});
uni.navigateBack()
} else {
uni.showToast({
title: message,
icon: "none",
});
}
})
// 查看更多
const onSeeBtn = () => {
// 跳转之前得缓存一下数据
uni.navigateTo({
url: '/pages/myReportCard/myReportCard'
})
} }
})
// 获取产检项目列表
const getList = async () =>{ // 查看更多
// const {success, data, message} = await getExaminationItems() const onSeeBtn = () => {
const {success, message, data} = { // 跳转之前得缓存一下数据
success: true, uni.navigateTo({
message: '', url: '/pages/myReportCard/myReportCard'
data: { })
items:[ }
// 获取产检项目列表
const getList = async () => {
// const {success, data, message} = await getExaminationItems()
const { success, message, data } = {
success: true,
message: '',
data:
[
{
"groupName": "A",
"list": [{
id: 'A001',
itemName: "阿克苏机场",
introduction: 'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
},
{ {
"groupName": "A", id: 'A002',
"list": [{ itemName: "阿拉山口机场阿拉山口机场阿拉山口机场",
id: 'A001', introduction: 'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
itemName: "阿克苏机场",
introduction:'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
},
{
id: 'A002',
itemName: "阿拉山口机场阿拉山口机场阿拉山口机场",
introduction:'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
}
]
}, {
"groupName": "B",
"list": [{
id: 'B001',
itemName: "保山机场",
introduction:'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
},
{
id: 'B002',
itemName: "包头机场",
introduction:'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
}
]
} }
] ]
} }, {
} "groupName": "B",
if(success){ "list": [{
examinationList.value = data.items id: 'B001',
} itemName: "保山机场",
introduction: 'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
},
{
id: 'B002',
itemName: "包头机场",
introduction: 'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
}
]
}
]
} }
onLoad((options) => { if (success) {
if(Object.keys(options).length > 0 && options.time){ examinationList.value = data
time.value = options.time }
}else{ }
time.value = dateFormatter(new Date(), 'yyyy-MM-dd') onLoad((options) => {
} if (Object.keys(options).length > 0 && options.time) {
console.log(options, '新增页面') time.value = options.time
getList() } else {
}) time.value = dateFormatter(new Date(), 'yyyy-MM-dd')
}
console.log(options, '新增页面')
getList()
})
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.add-postnatal { .add-postnatal {
height: 100vh; height: 100vh;
background-color: #f7f8fa; background-color: #f7f8fa;
padding: 25rpx 35rpx; padding: 25rpx 35rpx;
.style1 { .style1 {
width: 680rpx; width: 680rpx;
height: 115rpx; height: 115rpx;
background: #ffffff; background: #ffffff;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 30rpx;
padding: 0 27rpx;
box-sizing: border-box;
.time-l,
.time-r,
.project-r {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; }
font-size: 30rpx;
padding: 0 27rpx;
box-sizing: border-box;
.time-l, .time-l {
.time-r, color: #000000;
.project-r { font-weight: 600;
display: flex;
align-items: center; image {
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
} }
}
}
.time-l { &-time {
color: #000000; margin-top: 22rpx;
font-weight: 600; border-radius: 16rpx;
image { .time-r {
width: 30rpx; color: #1d1e26;
height: 30rpx;
margin-right: 10rpx; image {
} width: 8rpx;
height: 16rpx;
margin-left: 12rpx;
} }
} }
}
&-time { &-project {
margin-top: 22rpx; width: 680rpx;
border-radius: 16rpx; border-radius: 16rpx;
overflow: hidden;
margin-top: 22rpx;
background: #ffffff;
.time-r { .project-r {
color: #1d1e26; color: #b27c1e;
image { image {
width: 8rpx; width: 27rpx;
height: 16rpx; height: 27rpx;
margin-left: 12rpx; margin-right: 5rpx;
}
} }
} }
}
&-project { &-bgd {
width: 680rpx; width: 680rpx;
border-radius: 16rpx; border-radius: 16rpx;
overflow: hidden; margin-top: 22rpx;
margin-top: 22rpx; background: #ffffff;
background: #ffffff;
.project-r { .time-r {
color: #b27c1e; color: #1d1e26;
image { image {
width: 27rpx; width: 8rpx;
height: 27rpx; height: 16rpx;
margin-right: 5rpx; margin-left: 12rpx;
}
} }
} }
&-bgd { .img-list {
width: 680rpx; display: flex;
border-radius: 16rpx; flex-wrap: wrap;
margin-top: 22rpx; justify-content: flex-start;
background: #ffffff; padding: 0 27rpx;
box-sizing: border-box;
padding-bottom: 180rpx;
.time-r { .upload-image {
color: #1d1e26; width: 200rpx;
height: 200rpx;
border-radius: 10rpx;
overflow: hidden;
margin-right: 10rpx;
image { image {
width: 8rpx; width: 200rpx;
height: 16rpx; height: 200rpx;
margin-left: 12rpx;
} }
} }
.img-list { .img-list-item {
display: flex; // margin-right: 10rpx;
flex-wrap: wrap; margin-bottom: 15rpx;
justify-content: flex-start; position: relative;
padding: 0 27rpx;
box-sizing: border-box; .item-image {
padding-bottom: 180rpx;
.upload-image{
width: 200rpx; width: 200rpx;
height: 200rpx; height: 200rpx;
border-radius: 10rpx; border-radius: 10rpx;
overflow: hidden; overflow: hidden;
margin-right: 10rpx;
image {
width: 200rpx;
height: 200rpx;
}
}
.img-list-item {
// margin-right: 10rpx;
margin-bottom: 15rpx;
position: relative;
.item-image { .img1 {
width: 200rpx; width: 200rpx;
height: 200rpx; height: 200rpx;
border-radius: 10rpx;
overflow: hidden;
.img1 {
width: 200rpx;
height: 200rpx;
}
} }
.img {
position: absolute;
right: -12rpx;
top: -12rpx;
width: 25rpx;
height: 25rpx;
}
} }
}
}
.project-list { .img {
.list-item { position: absolute;
width: 680rpx; right: -12rpx;
height: 115rpx; top: -12rpx;
display: flex; width: 25rpx;
align-items: center; height: 25rpx;
justify-content: space-between;
font-size: 30rpx;
padding: 0 27rpx;
border-top: 1rpx solid #e9e9e9;
box-sizing: border-box;
.item-name {
width: 500rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 30rpx;
color: #000000;
font-weight: 500;
}
.item-img {
width: 31rpx;
height: 31rpx;
} }
} }
} }
.form-btn { }
width: 686rpx;
height: 94rpx; .project-list {
border-radius: 46rpx; .list-item {
background-color: #d3a358; width: 680rpx;
color: #ffffff; height: 115rpx;
font-size: 32rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: space-between;
font-size: 30rpx;
padding: 0 27rpx;
border-top: 1rpx solid #e9e9e9;
box-sizing: border-box;
position: fixed; .item-name {
bottom: 60rpx; width: 500rpx;
left: 50%; overflow: hidden;
transform: translateX(-50%); text-overflow: ellipsis;
z-index: 2; white-space: nowrap;
} font-size: 30rpx;
color: #000000;
font-weight: 500;
}
// 索引栏 .item-img {
.container { width: 31rpx;
display: flex; height: 31rpx;
flex-direction: column; }
height: 1200rpx;
padding: 20rpx 35rpx 30rpx 35rpx;
overflow: hidden;
background: #f6f8fa;
position: relative;
border-radius: 32rpx 32rpx 0 0;
}
.popup-close{
position: absolute;
right: 34rpx;
top: 45rpx;
z-index: 10;
image{
width: 28rpx;
height: 29rpx;
}
}
.airport-list {
flex: 1;
overflow: auto;
-webkit-overflow-scrolling: touch;
} }
}
.form-btn {
width: 686rpx;
height: 94rpx;
border-radius: 46rpx;
background-color: #d3a358;
color: #ffffff;
font-size: 32rpx;
display: flex;
align-items: center;
justify-content: center;
position: fixed;
bottom: 60rpx;
left: 50%;
transform: translateX(-50%);
z-index: 2;
}
// 索引栏
.container {
display: flex;
flex-direction: column;
height: 1200rpx;
padding: 20rpx 35rpx 30rpx 35rpx;
overflow: hidden;
background: #f6f8fa;
position: relative;
border-radius: 32rpx 32rpx 0 0;
}
.letter-group { .popup-close {
margin-top: 30rpx; position: absolute;
margin-bottom: 30rpx; right: 34rpx;
top: 45rpx;
z-index: 10;
image {
width: 28rpx;
height: 29rpx;
} }
}
.letter-title { .airport-list {
padding: 0 38rpx; flex: 1;
font-weight: bold; overflow: auto;
// position: sticky; -webkit-overflow-scrolling: touch;
// top: 0; }
z-index: 10;
color: #000000; .letter-group {
font-weight: 600; margin-top: 30rpx;
font-size: 34rpx; margin-bottom: 30rpx;
margin-bottom: 30rpx; }
.letter-title {
padding: 0 38rpx;
font-weight: bold;
// position: sticky;
// top: 0;
z-index: 10;
color: #000000;
font-weight: 600;
font-size: 34rpx;
margin-bottom: 30rpx;
}
.box {
width: 100%;
overflow: hidden;
border-radius: 16rpx;
padding: 0 0 0 36rpx;
box-sizing: border-box;
background: #fff;
}
.airport-item {
width: 100%;
height: 115rpx;
box-sizing: border-box;
background-color: #ffffff;
touch-action: none;
font-size: 30rpx;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1rpx solid #e2e2e2;
&:last-child {
border: none;
} }
.box{
width: 100%; .airport-item-image {
overflow: hidden; width: 72rpx;
border-radius: 16rpx; text-align: center;
padding: 0 0 0 36rpx;
box-sizing: border-box;
background: #fff;
}
.airport-item {
width: 100%;
height: 115rpx; height: 115rpx;
box-sizing: border-box; line-height: 115rpx;
background-color: #ffffff;
touch-action: none; image {
font-size: 30rpx; width: 11rpx;
display: flex; height: 21rpx;
align-items: center;
justify-content: space-between;
border-bottom: 1rpx solid #e2e2e2;
&:last-child{
border:none;
}
.airport-item-image{
width: 72rpx;
text-align: center;
height: 115rpx;
line-height: 115rpx;
image{
width: 11rpx;
height: 21rpx;
}
} }
} }
.airport-item-radio{ }
flex: 1;
display: flex;
align-items: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
image{
margin-right: 8rpx;
margin-top: 5rpx;
}
.image-1{
width: 29rpx;
height: 29rpx;
}
.image-2{
width: 29rpx;
height: 29rpx;
}
}
.action-bar {
width: 686rpx;
height: 94rpx;
border-radius: 46rpx;
background-color: #d3a358;
color: #ffffff;
font-size: 32rpx;
display: flex;
align-items: center;
justify-content: center;
position: sticky;
bottom: 0;
z-index: 10;
}
.selected-list { .airport-item-radio {
margin-top: 20rpx; flex: 1;
padding: 20rpx; display: flex;
background-color: #f9f9f9; align-items: center;
border-radius: 10rpx; white-space: nowrap;
max-height: 200rpx; overflow: hidden;
overflow: auto; text-overflow: ellipsis;
-webkit-overflow-scrolling: touch;
image {
margin-right: 8rpx;
margin-top: 5rpx;
} }
.title { .image-1 {
font-weight: bold; width: 29rpx;
margin-bottom: 15rpx; height: 29rpx;
position: sticky;
top: 0;
background-color: #f9f9f9;
z-index: 10;
} }
.selected-items { .image-2 {
display: flex; width: 29rpx;
flex-wrap: wrap; height: 29rpx;
} }
}
.action-bar {
width: 686rpx;
height: 94rpx;
border-radius: 46rpx;
background-color: #d3a358;
color: #ffffff;
font-size: 32rpx;
display: flex;
align-items: center;
justify-content: center;
position: sticky;
bottom: 0;
z-index: 10;
}
.selected-list {
margin-top: 20rpx;
padding: 20rpx;
background-color: #f9f9f9;
border-radius: 10rpx;
max-height: 200rpx;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.title {
font-weight: bold;
margin-bottom: 15rpx;
position: sticky;
top: 0;
background-color: #f9f9f9;
z-index: 10;
}
.selected-items {
display: flex;
flex-wrap: wrap;
}
.selected-item { .selected-item {
position: relative;
background-color: #e6f7ff;
color: #1890ff;
padding: 10rpx 20rpx;
margin: 0 15rpx 15rpx 0;
border-radius: 30rpx;
touch-action: none;
}
.remove {
margin-left: 10rpx;
color: #ff4d4f;
cursor: pointer;
}
.container2 {
height: 595rpx;
padding: 50rpx 35rpx 30rpx 35rpx;
overflow: hidden;
background: #ffffff;
border-radius: 32rpx 32rpx 0 0;
color: #000000;
display: flex;
flex-direction: column;
.text-t {
flex-shrink: 0;
position: relative; position: relative;
background-color: #e6f7ff;
color: #1890ff;
padding: 10rpx 20rpx;
margin: 0 15rpx 15rpx 0;
border-radius: 30rpx;
touch-action: none;
}
.remove { .t-1 {
margin-left: 10rpx;
color: #ff4d4f;
cursor: pointer;
}
.container2 {
height:595rpx;
padding: 50rpx 35rpx 30rpx 35rpx;
overflow: hidden;
background: #ffffff;
border-radius: 32rpx 32rpx 0 0;
color: #000000;
display: flex;
flex-direction: column;
.text-t{
flex-shrink: 0;
position: relative;
.t-1{
flex: 1;
font-size: 34rpx;
font-weight: 700;
}
image{
position: absolute;
top: 10.5rpx;
right: 0rpx;
width: 28rpx;
height: 29rpx;
}
}
.text-c{
flex: 1; flex: 1;
overflow: auto; font-size: 34rpx;
margin-top: 22rpx; font-weight: 700;
font-weight: 500; }
image {
position: absolute;
top: 10.5rpx;
right: 0rpx;
width: 28rpx;
height: 29rpx;
} }
}
.text-c {
flex: 1;
overflow: auto;
margin-top: 22rpx;
font-weight: 500;
} }
} }
}
</style> </style>
\ No newline at end of file
...@@ -15,644 +15,666 @@ ...@@ -15,644 +15,666 @@
<!-- 添加的产品项目 --> <!-- 添加的产品项目 -->
<view class="project-list" v-if="listData.length > 0"> <view class="project-list" v-if="listData.length > 0">
<view class="list-item" v-for="({itemName, id}, index) in listData" :key="index"> <view class="list-item" v-for="({ itemName, id }, index) in listData" :key="index">
<view class="item-name"> <view class="item-name">
{{itemName}} {{ itemName }}
</view> </view>
<image @click="onDetele(id)" class="item-img" src="/static/chanjianTool/delete.png"></image> <image @click="onDetele(id)" class="item-img" src="/static/chanjianTool/delete.png"></image>
</view> </view>
</view> </view>
</view> </view>
<!-- 上传报告单 --> <!-- 上传报告单 -->
<button class="form-btn" @click="onSave"> <button class="form-btn" @click="onSave">
保存 保存
</button> </button>
<!-- 产检项目底部弹窗 --> <!-- 产检项目底部弹窗 -->
<uni-popup ref="popup" type="bottom" :mask-click="false" background-color="#f6f8fa" border-radius="32rpx 32rpx 0 0"> <uni-popup ref="popup" type="bottom" :mask-click="false" background-color="#f6f8fa"
border-radius="32rpx 32rpx 0 0">
<view class="popup container"> <view class="popup container">
<view class="popup-close" @click="onPopupClose"> <view class="popup-close" @click="onPopupClose">
<image src="/static/chanjianTool/icon15.png"></image> <image src="/static/chanjianTool/icon15.png"></image>
</view> </view>
<!-- 项目列表 --> <!-- 项目列表 -->
<scroll-view scroll-y @touchmove.stop.prevent="" <scroll-view scroll-y @touchmove.stop.prevent="" class="airport-list">
class="airport-list">
<view v-for="group in examinationList" :key="group.groupName" class="letter-group"> <view v-for="group in examinationList" :key="group.groupName" class="letter-group">
<view class="letter-title">{{ group.groupName }}</view> <view class="letter-title">{{ group.groupName }}</view>
<view class="box"> <view class="box">
<view v-for="item in group.list" :key="item.id" class="airport-item"> <view v-for="item in group.list" :key="item.id" class="airport-item">
<view class="airport-item-radio" @click="toggleSelect(item)"> <view class="airport-item-radio" @click="toggleSelect(item)">
<image class="image-1" v-if="isSelected(item.id)" src="/static/chanjianTool/icon17.png" mode=""></image> <image class="image-1" v-if="isSelected(item.id)"
src="/static/chanjianTool/icon17.png" mode=""></image>
<image class="image-2" v-else src="/static/chanjianTool/icon18.png"></image> <image class="image-2" v-else src="/static/chanjianTool/icon18.png"></image>
{{ item.itemName }} {{ item.itemName }}
</view> </view>
<view class="airport-item-image" @click.stop="onView(item)"> <view class="airport-item-image" @click.stop="onView(item)">
<image src="/static/chanjianTool/icon16.png"></image> <image src="/static/chanjianTool/icon16.png"></image>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<!-- 底部操作栏 --> <!-- 底部操作栏 -->
<button class="action-bar" @click="saveSelection">确认</button> <button class="action-bar" @click="saveSelection">确认</button>
</view> </view>
</uni-popup> </uni-popup>
<!-- 项目介绍 --> <!-- 项目介绍 -->
<uni-popup ref="popupText" type="bottom" :mask-click="true" background-color="#FFFFFF" border-radius="32rpx 32rpx 0 0"> <uni-popup ref="popupText" type="bottom" :mask-click="true" background-color="#FFFFFF"
<view class="container2"> border-radius="32rpx 32rpx 0 0">
<view class="text-t"> <view class="container2">
<view class="text-t">
<view class="t-1"> <view class="t-1">
{{popupTextObj.itemName}} {{ popupTextObj.itemName }}
</view> </view>
<image @click="onPopupClose2" src="/static/chanjianTool/icon15.png" mode=""></image> <image @click="onPopupClose2" src="/static/chanjianTool/icon15.png" mode=""></image>
</view> </view>
<view class="text-c"> <view class="text-c">
{{popupTextObj.introduction}} {{ popupTextObj.introduction }}
</view> </view>
</view> </view>
</uni-popup> </uni-popup>
</view> </view>
</template> </template>
<script setup> <script setup>
import { import {
ref ref
} from 'vue' } from 'vue'
import { import {
throttleTap, throttleTap,
showLoading, showLoading,
hideLoading hideLoading
} from '@/utils/index.js'; } from '@/utils/index.js';
import { onLoad } from '@dcloudio/uni-app' import { onLoad } from '@dcloudio/uni-app'
import { import {
getUpdate, getUpdate,
getExaminationItems getExaminationItems
} from '../../api/obstetric.js'; } from '../../api/obstetric.js';
// 产检id // 产检id
const editId = ref('') const editId = ref('')
// 产品项目底部弹窗 // 产品项目底部弹窗
const popup = ref(null) const popup = ref(null)
// 产品项目介绍底部弹窗 // 产品项目介绍底部弹窗
const popupText = ref(null) const popupText = ref(null)
// 存储查看项目介绍内容 // 存储查看项目介绍内容
const popupTextObj = ref({}) const popupTextObj = ref({})
// 项目列表数据 // 项目列表数据
const examinationList = ref([]) const examinationList = ref([])
// 已选项目(存储ID和name) // 已选项目(存储ID和name)
const selectedAirports = ref([]); const selectedAirports = ref([]);
// 添加的产品列表 // 添加的产品列表
const listData = ref([]); const listData = ref([]);
// 查看项目介绍 // 查看项目介绍
const onView = (item) =>{ const onView = (item) => {
console.log(item) console.log(item)
popupTextObj.value = item popupTextObj.value = item
popupText.value.open() popupText.value.open()
} }
// 关闭项目介绍弹窗 // 关闭项目介绍弹窗
const onPopupClose2 = () => { const onPopupClose2 = () => {
popupText.value.close() popupText.value.close()
}
// 添加项目
const onAdd = () => {
wx.setPageStyle({
style: {
overflow: 'hidden'
}
})
popup.value.open()
// 回显数据
if (listData.value.length > 0) {
// 回显数据 - 将 listData 中的数据同步到 selectedAirports
selectedAirports.value = [...listData.value]
} }
}
// 添加项目 // 关闭项目弹窗
const onAdd = () => { const onPopupClose = () => {
wx.setPageStyle({ wx.setPageStyle({
style: { style: {
overflow: 'hidden' overflow: 'auto'
}
})
popup.value.open()
// 回显数据
if(listData.value.length > 0){
// 回显数据 - 将 listData 中的数据同步到 selectedAirports
selectedAirports.value = [...listData.value]
} }
})
selectedAirports.value = []
popup.value.close()
}
// 检查是否已选中
const isSelected = (id) => {
return selectedAirports.value.some(item => item.id == id);
};
// 切换选择状态
const toggleSelect = (airport) => {
const index = selectedAirports.value.findIndex(item => item.id == airport.id);
if (index === -1) {
selectedAirports.value.push({
id: airport.id,
itemName: airport.itemName
});
} else {
selectedAirports.value.splice(index, 1);
} }
// 关闭项目弹窗 };
const onPopupClose = () => {
wx.setPageStyle({ // 保存选择
style: { const saveSelection = () => {
overflow: 'auto' console.log('已选项目ID:', selectedAirports.value);
} // 合并 selectedAirports.value 到 listData.value,并去重
}) const combined = [...listData.value, ...selectedAirports.value];
selectedAirports.value = [] const uniqueMap = new Map();
popup.value.close() combined.forEach(item => uniqueMap.set(item.id, item));
listData.value = Array.from(uniqueMap.values());
onPopupClose();
};
// 移除已选项目
const removeSelected = (airport) => {
const index = selectedAirports.value.findIndex(item => item.id == airport.id);
if (index !== -1) {
selectedAirports.value.splice(index, 1);
} }
// 检查是否已选中 };
const isSelected = (id) => { // 删除所选产品项目
return selectedAirports.value.some(item => item.id == id); const onDetele = (id) => {
}; listData.value.filter((item, index) => {
if (item.id == id) {
// 切换选择状态 listData.value.splice(index, 1)
const toggleSelect = (airport) => {
const index = selectedAirports.value.findIndex(item => item.id == airport.id);
if (index === -1) {
selectedAirports.value.push({
id: airport.id,
itemName: airport.itemName
});
} else {
selectedAirports.value.splice(index, 1);
} }
}; })
}
// 保存选择
const saveSelection = () => {
console.log('已选项目ID:', selectedAirports.value); // 保存
// 合并 selectedAirports.value 到 listData.value,并去重 const onSave = throttleTap(() => {
const combined = [...listData.value, ...selectedAirports.value]; if (listData.value.length == 0) {
const uniqueMap = new Map(); uni.showToast({
combined.forEach(item => uniqueMap.set(item.id, item)); title: '还没有添加产检项哦',
listData.value = Array.from(uniqueMap.values()); icon: 'none'
onPopupClose();
};
// 移除已选项目
const removeSelected = (airport) => {
const index = selectedAirports.value.findIndex(item => item.id == airport.id);
if (index !== -1) {
selectedAirports.value.splice(index, 1);
}
};
// 删除所选产品项目
const onDetele = (id) => {
listData.value.filter((item, index) => {
if (item.id == id) {
listData.value.splice(index, 1)
}
}) })
return
} }
const ids = listData.value.map(item => item.id).join(',');
const param = {
// 保存 id: editId.value,
const onSave = throttleTap(() => { checkupItems: ids
if(listData.value.length == 0){ }
uni.showToast({ console.log(param, '参数')
title: '还没有添加产检项哦', showLoading();
icon: 'none' // const {success, data} = await getUpdate(data);
}) const { success, data, message } = {
return success: true,
} message: '',
const ids = listData.value.map(item => item.id).join(','); data: {}
const param = { }
id: editId.value, hideLoading();
checkupItems: ids if (success) {
} uni.showToast({
console.log(param, '参数') title: "保存成功",
showLoading(); icon: "success",
// const {success, data} = await getUpdate(data); });
const { success, data, message } = { // 返回B页面并刷新数据
success: true, const pages = getCurrentPages();
message: '', const prevPage = pages[pages.length - 2]; // 获取上一页(详情页面)实例
data:{} if (prevPage) {
} prevPage.onLoad({ id: editId.value }); // 调用页面的刷新方法
hideLoading(); };
if(success){ uni.navigateBack({
uni.showToast({ delta: 1 // 返回上一页
title: "保存成功", });
icon: "success", } else {
}); uni.showToast({
// 返回B页面并刷新数据 title: message,
const pages = getCurrentPages(); icon: "none",
const prevPage = pages[pages.length - 2]; // 获取上一页(详情页面)实例 });
if (prevPage) { }
prevPage.onLoad({id:editId.value}); // 调用页面的刷新方法 })
};
uni.navigateBack({ // 获取产检项目列表
delta: 1 // 返回上一页 const getList = async () => {
}); // const {success, data, message} = await getExaminationItems()
} else { const { success, message, data } = {
uni.showToast({ success: true,
title: message, message: '',
icon: "none", data: [
}); {
} "groupName": "A",
}) "list": [{
id: 'A001',
// 获取产检项目列表 itemName: "阿克苏机场",
const getList = async () =>{ introduction: 'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
// const {success, data, message} = await getExaminationItems() },
const {success, message, data} = { {
success: true, id: 'A002',
message: '', itemName: "阿拉山口机场阿拉山口机场阿拉山口机场",
data: { introduction: 'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
items:[ }
{ ]
"groupName": "A", }, {
"list": [{ "groupName": "B",
id: 'A001', "list": [{
itemName: "阿克苏机场", itemName: '测量胎儿颈部透明层厚度(NT)',
introduction:'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1' id: '1',
}, introduction: 'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
{ },
id: 'A002', {
itemName: "阿拉山口机场阿拉山口机场阿拉山口机场", itemName: '无创产前基因检测(NIPT)(非必查)',
introduction:'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1' id: '2',
} introduction: 'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
] }
}, {
"groupName": "B",
"list": [{
itemName: '测量胎儿颈部透明层厚度(NT)',
id: '1',
introduction:'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
},
{
itemName: '无创产前基因检测(NIPT)(非必查)',
id: '2',
introduction:'NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1NT可以帮助判断胎宝宝是否患有唐氏综合征等染色体异常,或存在畸形的风险,有助于早期发现胎儿异常风险问题。 NT检查通常在孕 1'
}
]
}
] ]
} }
} ]
if(success){
examinationList.value = data.items
}
} }
onLoad((options) => { if (success) {
const {id, examinationItems} = JSON.parse(options.item) examinationList.value = data
console.log( id, examinationItems) }
editId.value = id }
listData.value = examinationItems onLoad((options) => {
getList() const { id, examinationItems } = JSON.parse(options.item)
}) console.log(id, examinationItems)
editId.value = id
listData.value = examinationItems
getList()
})
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.add-postnatal { .add-postnatal {
height: 100vh; height: 100vh;
background-color: #f7f8fa; background-color: #f7f8fa;
padding: 25rpx 35rpx; padding: 25rpx 35rpx;
.style1 { .style1 {
width: 680rpx; width: 680rpx;
height: 115rpx; height: 115rpx;
background: #ffffff; background: #ffffff;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 30rpx;
padding: 0 27rpx;
box-sizing: border-box;
.time-l,
.time-r,
.project-r {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; }
font-size: 30rpx;
padding: 0 27rpx; .time-l {
box-sizing: border-box; color: #000000;
font-weight: 600;
.time-l, image {
.time-r, width: 30rpx;
.project-r { height: 30rpx;
display: flex; margin-right: 10rpx;
align-items: center;
} }
}
}
.time-l { &-time {
color: #000000; margin-top: 22rpx;
font-weight: 600; border-radius: 16rpx;
image { .time-r {
width: 30rpx; color: #1d1e26;
height: 30rpx;
margin-right: 10rpx; image {
} width: 8rpx;
height: 16rpx;
margin-left: 12rpx;
} }
} }
}
&-time { &-project {
margin-top: 22rpx; width: 680rpx;
border-radius: 16rpx; border-radius: 16rpx;
overflow: hidden;
margin-top: 22rpx;
background: #ffffff;
.time-r { .project-r {
color: #1d1e26; color: #b27c1e;
image { image {
width: 8rpx; width: 27rpx;
height: 16rpx; height: 27rpx;
margin-left: 12rpx; margin-right: 5rpx;
}
} }
} }
}
&-project { &-bgd {
width: 680rpx; width: 680rpx;
border-radius: 16rpx; border-radius: 16rpx;
overflow: hidden; margin-top: 22rpx;
margin-top: 22rpx; background: #ffffff;
background: #ffffff;
.project-r { .time-r {
color: #b27c1e; color: #1d1e26;
image { image {
width: 27rpx; width: 8rpx;
height: 27rpx; height: 16rpx;
margin-right: 5rpx; margin-left: 12rpx;
}
} }
} }
&-bgd { .img-list {
width: 680rpx; display: flex;
border-radius: 16rpx; flex-wrap: wrap;
margin-top: 22rpx; justify-content: flex-start;
background: #ffffff; padding: 0 27rpx;
box-sizing: border-box;
padding-bottom: 180rpx;
.time-r { .upload-image {
color: #1d1e26; width: 200rpx;
height: 200rpx;
border-radius: 10rpx;
overflow: hidden;
margin-right: 10rpx;
image { image {
width: 8rpx; width: 200rpx;
height: 16rpx; height: 200rpx;
margin-left: 12rpx;
} }
} }
.img-list { .img-list-item {
display: flex; // margin-right: 10rpx;
flex-wrap: wrap; margin-bottom: 15rpx;
justify-content: flex-start; position: relative;
padding: 0 27rpx;
box-sizing: border-box; .item-image {
padding-bottom: 180rpx;
.upload-image{
width: 200rpx; width: 200rpx;
height: 200rpx; height: 200rpx;
border-radius: 10rpx; border-radius: 10rpx;
overflow: hidden; overflow: hidden;
margin-right: 10rpx;
image {
width: 200rpx;
height: 200rpx;
}
}
.img-list-item {
// margin-right: 10rpx;
margin-bottom: 15rpx;
position: relative;
.item-image { .img1 {
width: 200rpx; width: 200rpx;
height: 200rpx; height: 200rpx;
border-radius: 10rpx;
overflow: hidden;
.img1 {
width: 200rpx;
height: 200rpx;
}
} }
.img {
position: absolute;
right: -12rpx;
top: -12rpx;
width: 25rpx;
height: 25rpx;
}
} }
}
}
.project-list {
.list-item {
width: 680rpx;
height: 115rpx;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 30rpx;
padding: 0 27rpx;
border-top: 1rpx solid #e9e9e9;
box-sizing: border-box;
.item-name { .img {
width: 500rpx; position: absolute;
overflow: hidden; right: -12rpx;
text-overflow: ellipsis; top: -12rpx;
white-space: nowrap; width: 25rpx;
font-size: 30rpx; height: 25rpx;
color: #000000;
font-weight: 500;
}
.item-img {
width: 31rpx;
height: 31rpx;
} }
} }
} }
.form-btn { }
width: 686rpx;
height: 94rpx; .project-list {
border-radius: 46rpx; .list-item {
background-color: #d3a358; width: 680rpx;
color: #ffffff; height: 115rpx;
font-size: 32rpx;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: space-between;
font-size: 30rpx;
padding: 0 27rpx;
border-top: 1rpx solid #e9e9e9;
box-sizing: border-box;
position: fixed; .item-name {
bottom: 60rpx; width: 500rpx;
left: 50%; overflow: hidden;
transform: translateX(-50%); text-overflow: ellipsis;
z-index: 2; white-space: nowrap;
} font-size: 30rpx;
color: #000000;
font-weight: 500;
}
// 索引栏 .item-img {
.container { width: 31rpx;
display: flex; height: 31rpx;
flex-direction: column; }
height: 1200rpx;
padding: 20rpx 35rpx 30rpx 35rpx;
overflow: hidden;
background: #f6f8fa;
position: relative;
border-radius: 32rpx 32rpx 0 0;
}
.popup-close{
position: absolute;
right: 34rpx;
top: 45rpx;
z-index: 10;
image{
width: 28rpx;
height: 29rpx;
}
}
.airport-list {
flex: 1;
overflow: auto;
-webkit-overflow-scrolling: touch;
} }
}
.letter-group { .form-btn {
margin-top: 30rpx; width: 686rpx;
margin-bottom: 30rpx; height: 94rpx;
border-radius: 46rpx;
background-color: #d3a358;
color: #ffffff;
font-size: 32rpx;
display: flex;
align-items: center;
justify-content: center;
position: fixed;
bottom: 60rpx;
left: 50%;
transform: translateX(-50%);
z-index: 2;
}
// 索引栏
.container {
display: flex;
flex-direction: column;
height: 1200rpx;
padding: 20rpx 35rpx 30rpx 35rpx;
overflow: hidden;
background: #f6f8fa;
position: relative;
border-radius: 32rpx 32rpx 0 0;
}
.popup-close {
position: absolute;
right: 34rpx;
top: 45rpx;
z-index: 10;
image {
width: 28rpx;
height: 29rpx;
} }
}
.letter-title { .airport-list {
padding: 0 38rpx; flex: 1;
font-weight: bold; overflow: auto;
// position: sticky; -webkit-overflow-scrolling: touch;
// top: 0; }
z-index: 10;
color: #000000; .letter-group {
font-weight: 600; margin-top: 30rpx;
font-size: 34rpx; margin-bottom: 30rpx;
margin-bottom: 30rpx; }
.letter-title {
padding: 0 38rpx;
font-weight: bold;
// position: sticky;
// top: 0;
z-index: 10;
color: #000000;
font-weight: 600;
font-size: 34rpx;
margin-bottom: 30rpx;
}
.box {
width: 100%;
overflow: hidden;
border-radius: 16rpx;
padding: 0 0 0 36rpx;
box-sizing: border-box;
background: #fff;
}
.airport-item {
width: 100%;
height: 115rpx;
box-sizing: border-box;
background-color: #ffffff;
touch-action: none;
font-size: 30rpx;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1rpx solid #e2e2e2;
&:last-child {
border: none;
} }
.box{
width: 100%; .airport-item-image {
overflow: hidden; width: 72rpx;
border-radius: 16rpx; text-align: center;
padding: 0 0 0 36rpx;
box-sizing: border-box;
background: #fff;
}
.airport-item {
width: 100%;
height: 115rpx; height: 115rpx;
box-sizing: border-box; line-height: 115rpx;
background-color: #ffffff;
touch-action: none; image {
font-size: 30rpx; width: 11rpx;
display: flex; height: 21rpx;
align-items: center;
justify-content: space-between;
border-bottom: 1rpx solid #e2e2e2;
&:last-child{
border:none;
}
.airport-item-image{
width: 72rpx;
text-align: center;
height: 115rpx;
line-height: 115rpx;
image{
width: 11rpx;
height: 21rpx;
}
} }
} }
.airport-item-radio{ }
flex: 1;
display: flex;
align-items: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
image{
margin-right: 8rpx;
margin-top: 5rpx;
}
.image-1{
width: 29rpx;
height: 29rpx;
}
.image-2{
width: 29rpx;
height: 29rpx;
}
}
.action-bar {
width: 686rpx;
height: 94rpx;
border-radius: 46rpx;
background-color: #d3a358;
color: #ffffff;
font-size: 32rpx;
display: flex;
align-items: center;
justify-content: center;
position: sticky;
bottom: 0;
z-index: 10;
}
.selected-list { .airport-item-radio {
margin-top: 20rpx; flex: 1;
padding: 20rpx; display: flex;
background-color: #f9f9f9; align-items: center;
border-radius: 10rpx; white-space: nowrap;
max-height: 200rpx; overflow: hidden;
overflow: auto; text-overflow: ellipsis;
-webkit-overflow-scrolling: touch;
image {
margin-right: 8rpx;
margin-top: 5rpx;
} }
.title { .image-1 {
font-weight: bold; width: 29rpx;
margin-bottom: 15rpx; height: 29rpx;
position: sticky;
top: 0;
background-color: #f9f9f9;
z-index: 10;
} }
.selected-items { .image-2 {
display: flex; width: 29rpx;
flex-wrap: wrap; height: 29rpx;
} }
}
.action-bar {
width: 686rpx;
height: 94rpx;
border-radius: 46rpx;
background-color: #d3a358;
color: #ffffff;
font-size: 32rpx;
display: flex;
align-items: center;
justify-content: center;
position: sticky;
bottom: 0;
z-index: 10;
}
.selected-list {
margin-top: 20rpx;
padding: 20rpx;
background-color: #f9f9f9;
border-radius: 10rpx;
max-height: 200rpx;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.title {
font-weight: bold;
margin-bottom: 15rpx;
position: sticky;
top: 0;
background-color: #f9f9f9;
z-index: 10;
}
.selected-items {
display: flex;
flex-wrap: wrap;
}
.selected-item {
position: relative;
background-color: #e6f7ff;
color: #1890ff;
padding: 10rpx 20rpx;
margin: 0 15rpx 15rpx 0;
border-radius: 30rpx;
touch-action: none;
}
.remove {
margin-left: 10rpx;
color: #ff4d4f;
cursor: pointer;
}
.selected-item { .container2 {
height: 595rpx;
padding: 50rpx 35rpx 30rpx 35rpx;
overflow: hidden;
background: #ffffff;
border-radius: 32rpx 32rpx 0 0;
color: #000000;
display: flex;
flex-direction: column;
.text-t {
flex-shrink: 0;
position: relative; position: relative;
background-color: #e6f7ff;
color: #1890ff;
padding: 10rpx 20rpx;
margin: 0 15rpx 15rpx 0;
border-radius: 30rpx;
touch-action: none;
}
.remove { .t-1 {
margin-left: 10rpx;
color: #ff4d4f;
cursor: pointer;
}
.container2 {
height:595rpx;
padding: 50rpx 35rpx 30rpx 35rpx;
overflow: hidden;
background: #ffffff;
border-radius: 32rpx 32rpx 0 0;
color: #000000;
display: flex;
flex-direction: column;
.text-t{
flex-shrink: 0;
position: relative;
.t-1{
flex: 1;
font-size: 34rpx;
font-weight: 700;
}
image{
position: absolute;
top: 10.5rpx;
right: 0rpx;
width: 28rpx;
height: 29rpx;
}
}
.text-c{
flex: 1; flex: 1;
overflow: auto; font-size: 34rpx;
margin-top: 22rpx; font-weight: 700;
font-weight: 500; }
image {
position: absolute;
top: 10.5rpx;
right: 0rpx;
width: 28rpx;
height: 29rpx;
} }
}
.text-c {
flex: 1;
overflow: auto;
margin-top: 22rpx;
font-weight: 500;
} }
} }
}
</style> </style>
\ No newline at end of file
<template> <template>
<view class="report-card" style="background-image: url( '//yun.duiba.com.cn/aurora/assets/c1e4ce971b7ffb55ed23ec8a9480b857a6328e98.png');"> <view class="report-card" style="background-image: url( '//yun.duiba.com.cn/aurora/assets/c1e4ce971b7ffb55ed23ec8a9480b857a6328e98.png');">
<view class="page-top"> <!-- <view class="page-top">
<image @tap="backHandler" class="btnback" src="/static/chanjianTool/back.png"></image> <image @tap="backHandler" class="btnback" src="/static/chanjianTool/back.png"></image>
<view class="page_title">我的报告单</view> <view class="page_title">我的报告单</view>
</view> </view> -->
<customize-navigation>
<template v-slot:navbar-content>
<view class="page-top">
<image @tap="backHandler" class="btnback" src="/static/chanjianTool/back.png"></image>
<view class="page_title">我的报告单</view>
</view>
</template>
</customize-navigation>
<view class="report-card-con"> <view class="report-card-con">
<view class="con-box"> <view class="con-box">
<view class="list-item" v-for="(item, index) in listData" :key="index"> <view class="list-item" v-for="(item, index) in listData" :key="index">
...@@ -319,29 +327,6 @@ ...@@ -319,29 +327,6 @@
} }
} }
} }
// 自定义头部
.page-top {
width: 100%;
}
.btnback {
width: 16rpx;
height: 29rpx;
margin-top: 110rpx;
margin-left: 35rpx;
}
.page_title {
width: 100%;
font-size: 34rpx;
font-weight: 500;
text-align: center;
color: #1d1e25;
margin-top: -46rpx;
margin-left: 0rpx;
}
.more-popup { .more-popup {
position: fixed; position: fixed;
left: 0; left: 0;
...@@ -416,5 +401,29 @@ ...@@ -416,5 +401,29 @@
height: 70rpx; height: 70rpx;
} }
} }
// 自定义头部
.page-top {
width: 100%;
display: flex;
align-items: center;
}
.btnback {
width: 16rpx;
height: 29rpx;
// margin-top: 110rpx;
// margin-left: 35rpx;
}
.page_title {
width: 100%;
font-size: 34rpx;
font-weight: 500;
text-align: center;
color: #1d1e25;
line-height: 36rpx;
// margin-top: -46rpx;
// margin-left: 0rpx;
}
} }
</style> </style>
\ No newline at end of file
<template> <template>
<view> <view>
<view class="postnatal"> <view class="postnatal">
<view class="page-top"> <!-- <view class="page-top">
<image @tap="backHandler" class="btnback" src="/static/chanjianTool/back.png"></image> <image @tap="backHandler" class="btnback" src="/static/chanjianTool/back.png"></image>
<view class="page_title">产检提醒</view> <view class="page_title">产检提醒</view>
</view> </view> -->
<!-- 自定义导航 -->
<customize-navigation>
<template v-slot:navbar-content>
<view class="page-top">
<image @tap="backHandler" class="btnback" src="/static/chanjianTool/back.png"></image>
<view class="page_title">产检提醒</view>
</view>
</template>
</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">
<swiper-item v-for="(item, index) in homeInfo.bannerList" :key="index"> <swiper-item v-for="(item, index) in bannerList" :key="index">
<image class="banner-img" :src="`${item.imageUrl}`" mode="aspectFill" <image class="banner-img" :src="`${item.img}`" mode="aspectFill"
@click="handleBannerClick(item, index)" /> @click="handleBannerClick(item, index)" />
</swiper-item> </swiper-item>
</swiper> </swiper>
...@@ -99,10 +107,12 @@ ...@@ -99,10 +107,12 @@
import md from '../../md'; import md from '../../md';
import { import {
getInfo, getInfo,
getUpdate getUpdate,
postnatalJSON
} from '../../api/obstetric.js'; } from '../../api/obstetric.js';
// 导入日期选择器组件 // 导入日期选择器组件
import DatePicker from '@/components/DatePicker.vue' import DatePicker from '@/components/DatePicker.vue'
import { type } from 'os';
const { const {
proxy proxy
} = getCurrentInstance(); } = getCurrentInstance();
...@@ -111,12 +121,16 @@ ...@@ -111,12 +121,16 @@
// 时间弹窗控制 // 时间弹窗控制
const visible = ref(false) const visible = ref(false)
// 时间 // 时间
const time = ref('') const time = ref('')
// 保存要修改的id // 保存要修改的id
const editId = ref(null) const editId = ref(null)
// 轮播图
const bannerList = ref([])
// 首页信息 // 首页信息
const homeInfo = ref({}) const homeInfo = ref({})
...@@ -169,8 +183,8 @@ ...@@ -169,8 +183,8 @@
console.log(item) console.log(item)
// 跳转 // 跳转
jump({ jump({
type: item.jumpType, type: item.type,
url: item.jumpUrl url: item.url
}) })
// let buttonName = ''; // let buttonName = '';
// switch(index){ // switch(index){
...@@ -269,20 +283,6 @@ ...@@ -269,20 +283,6 @@
data: { data: {
gestationalWeeks: '8', // 几周 gestationalWeeks: '8', // 几周
dueDate: '2025-10-20', // 预产期 dueDate: '2025-10-20', // 预产期
// 轮播数据
bannerList: [{
imageUrl: 'https://course.feihe.com/momclub-picture/contentLibrary/1003/banner-cl0.png',
jumpUrl: `https://www.baidu.com`
},
{
imageUrl: 'https://course.feihe.com/momclub-picture/contentLibrary/1003/banner-cl1.png',
jumpUrl: `https://www.baidu.com`
},
{
imageUrl: 'https://course.feihe.com/momclub-picture/contentLibrary/1003/banner-cl2.png',
jumpUrl: `https://www.baidu.com`
}
],
// 产检记录 // 产检记录
checkupList: [{ checkupList: [{
type: 0, // 1 是 0 否 type: 0, // 1 是 0 否
...@@ -495,7 +495,47 @@ ...@@ -495,7 +495,47 @@
}); });
} }
} }
// 获取banner图
const postnatalJSONFn = async ()=>{
// const { success, data, message } = await postnatalJSON()
const { success, data, message } = {
success: true,
message:'成功',
data: {
// 轮播数据
bannerList: [{
img: 'https://course.feihe.com/momclub-picture/contentLibrary/1003/banner-cl0.png',
url: `https://mp.weixin.qq.com/s/Xn5dh96OaQ9CcsVMZ5jnvg`,
type: 3
},
{
img: 'https://course.feihe.com/momclub-picture/contentLibrary/1003/banner-cl1.png',
url: `https://mp.weixin.qq.com/s/Xn5dh96OaQ9CcsVMZ5jnvg`,
type: 3
},
{
img: 'https://course.feihe.com/momclub-picture/contentLibrary/1003/banner-cl2.png',
url: `https://www.baidu.com`,
type: 3
}
]
}
}
if (success) {
bannerList.value = data.bannerList
} else{
uni.showToast({
title: message,
icon: "none",
});
}
}
onShow(() => { onShow(() => {
// 获取banner图
postnatalJSONFn()
// 获取信息 // 获取信息
getInfoFn() getInfoFn()
}) })
...@@ -678,13 +718,15 @@ ...@@ -678,13 +718,15 @@
.page-top { .page-top {
width: 100%; width: 100%;
display: flex;
align-items: center;
} }
.btnback { .btnback {
width: 16rpx; width: 16rpx;
height: 29rpx; height: 29rpx;
margin-top: 110rpx; // margin-top: 110rpx;
margin-left: 35rpx; // margin-left: 35rpx;
} }
.page_title { .page_title {
...@@ -693,7 +735,8 @@ ...@@ -693,7 +735,8 @@
font-weight: 500; font-weight: 500;
text-align: center; text-align: center;
color: #1d1e25; color: #1d1e25;
margin-top: -46rpx; line-height: 36rpx;
margin-left: 0rpx; // margin-top: -46rpx;
// margin-left: 0rpx;
} }
</style> </style>
\ No newline at end of file
<template> <template>
<view class="production-calendar"> <view class="production-calendar">
<view class="page-top"> <!-- <view class="page-top">
<view class="header-content"> <view class="header-content">
<image @tap="backHandler" class="btnback" src="/static/chanjianTool/back.png"></image> <image @tap="backHandler" class="btnback" src="/static/chanjianTool/back.png"></image>
<view class="page_title"> <view class="page_title">
...@@ -17,7 +17,27 @@ ...@@ -17,7 +17,27 @@
</view> </view>
</view> </view>
</view> </view>
</view> </view> -->
<customize-navigation>
<template v-slot:navbar-content>
<view class="page-top">
<image @tap="backHandler" class="btnback" src="/static/chanjianTool/back.png"></image>
<view class="page_title">
<view class="info-l">
<image :src="$baseUrl + 'common/default_avatar.png'"></image>
</view>
<view class="info-r">
<view class="info-r-t">
孕期
</view>
<view class="info-r-b">
怀孕{{ info.gestationalWeeks }}
</view>
</view>
</view>
</view>
</template>
</customize-navigation>
<!-- 显示区域 --> <!-- 显示区域 -->
<view class="production-calendar-con"> <view class="production-calendar-con">
<view class="calendar-box"> <view class="calendar-box">
...@@ -472,6 +492,96 @@ const getInfoFn = async () => { ...@@ -472,6 +492,96 @@ const getInfoFn = async () => {
} }
] ]
}, },
{
type: 0, // 1 是 0 否
id: 1,
checkupDate: '2025-07-23',
index: '一', // 产检次数
pregnancyWeek: '5-6', // 周数
status: '待产检', //待产检、已过期、已产检,
// 产检项目
examinationItems: [{
itemName: '测量胎儿颈部透明层厚度(NT)',
id: 1
},
{
itemName: '无创产前基因检测(NIPT)(非必查)',
id: 2
}
]
},
{
type: 0, // 1 是 0 否
id: 1,
checkupDate: '2025-07-23',
index: '一', // 产检次数
pregnancyWeek: '5-6', // 周数
status: '待产检', //待产检、已过期、已产检,
// 产检项目
examinationItems: [{
itemName: '测量胎儿颈部透明层厚度(NT)',
id: 1
},
{
itemName: '无创产前基因检测(NIPT)(非必查)',
id: 2
}
]
},
{
type: 0, // 1 是 0 否
id: 1,
checkupDate: '2025-07-23',
index: '一', // 产检次数
pregnancyWeek: '5-6', // 周数
status: '待产检', //待产检、已过期、已产检,
// 产检项目
examinationItems: [{
itemName: '测量胎儿颈部透明层厚度(NT)',
id: 1
},
{
itemName: '无创产前基因检测(NIPT)(非必查)',
id: 2
}
]
},
{
type: 0, // 1 是 0 否
id: 1,
checkupDate: '2025-07-23',
index: '一', // 产检次数
pregnancyWeek: '5-6', // 周数
status: '待产检', //待产检、已过期、已产检,
// 产检项目
examinationItems: [{
itemName: '测量胎儿颈部透明层厚度(NT)',
id: 1
},
{
itemName: '无创产前基因检测(NIPT)(非必查)',
id: 2
}
]
},
{
type: 0, // 1 是 0 否
id: 1,
checkupDate: '2025-07-23',
index: '一', // 产检次数
pregnancyWeek: '5-6', // 周数
status: '待产检', //待产检、已过期、已产检,
// 产检项目
examinationItems: [{
itemName: '测量胎儿颈部透明层厚度(NT)',
id: 1
},
{
itemName: '无创产前基因检测(NIPT)(非必查)',
id: 2
}
]
},
{ {
type: 0, // 1 是 0 否 type: 0, // 1 是 0 否
id: 1, id: 1,
...@@ -529,11 +639,10 @@ onShow(() => { ...@@ -529,11 +639,10 @@ onShow(() => {
.production-calendar { .production-calendar {
width: 100%; width: 100%;
height: 100vh; height: 100vh;
background-size: 100% 100%; background-color: #fdf6eb;
// background-color: #fdf6eb;
&-con { &-con {
position: absolute; // position: absolute;
top: 176rpx; // top: 176rpx;
// left: 31rpx; // left: 31rpx;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
...@@ -549,14 +658,15 @@ onShow(() => { ...@@ -549,14 +658,15 @@ onShow(() => {
.con-list { .con-list {
position: absolute; position: absolute;
left: 0; left: 0;
top: 656rpx; top: 820rpx;
height: calc(100vh - 1021rpx); height: calc(100vh - 820rpx);
background: #fff; background: #fff;
border-radius: 24rpx; border-radius: 24rpx;
padding: 30rpx; padding: 30rpx;
overflow-y: auto; overflow-y: auto;
width: 100%; width: 100%;
box-sizing: border-box; box-sizing: border-box;
padding-bottom: 100px;
.con-list-item { .con-list-item {
width: 689rpx; width: 689rpx;
// height: 221rpx; // height: 221rpx;
...@@ -603,8 +713,9 @@ onShow(() => { ...@@ -603,8 +713,9 @@ onShow(() => {
// 自定义头部 // 自定义头部
.page-top { .page-top {
width: 100%; width: 100%;
display: flex;
align-items: center;
background-color: #fdf6eb; background-color: #fdf6eb;
padding: 90rpx 0 0 10rpx;
} }
.header-content { .header-content {
...@@ -615,7 +726,6 @@ onShow(() => { ...@@ -615,7 +726,6 @@ onShow(() => {
.btnback { .btnback {
width: 16rpx; width: 16rpx;
height: 29rpx; height: 29rpx;
margin-left: 35rpx;
} }
.page_title { .page_title {
......
...@@ -395,12 +395,12 @@ const handleConfirm = () => { ...@@ -395,12 +395,12 @@ const handleConfirm = () => {
close(); close();
selectedValue.value = options[pickerValue.value[0]]; selectedValue.value = options[pickerValue.value[0]];
// 订阅提醒 // 订阅提醒
// uni.requestSubscribeMessage({ uni.requestSubscribeMessage({
// tmplIds: [''], tmplIds: [infoData.wxTemplateId],
// success (res) { success (res) {
// console.log(res) console.log(res)
// } }
// }) })
} }
// 完成检查 // 完成检查
......
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