This commit is contained in:
曹辉 2023-03-09 15:28:28 +08:00
parent 5475f5a2e8
commit 88d1314cb7
7 changed files with 186 additions and 206 deletions

View File

@ -0,0 +1,20 @@
import request from "../request.js"
//咨询预约时间
export function informationConfirmation(patientId) {
return request({
url: `/nurseApp/healthConsultation/informationConfirmation?patientId=${patientId}`,
method: 'GET'
})
}
//提交
export function addHealthConsultationOrder(data) {
return request({
url: `/nurseApp/healthConsultation/addHealthConsultationOrder`,
method: 'POST',
data
})
}

View File

@ -3,106 +3,96 @@
<view class="user"> <view class="user">
<view class="item"> <view class="item">
<span>姓名</span> <span>姓名</span>
<span class='addition'>111</span> <span class='addition' v-if="userlist.patientName">{{userlist.patientName}}</span>
</view> </view>
<view class="item"> <view class="item">
<span>电话</span> <span>电话</span>
<span class='addition'>111</span> <span class='addition' v-if="userlist.phone">{{userlist.phone}}</span>
</view>
<view class="addressitem">
<view class="leftaddress">地址</view>
<view class='addition'>111</view>
</view> </view>
<view class="item" style="border: 0;"> <view class="item" style="border: 0;">
<span>时间</span> <span>时间</span>
<span class='addition'>请选择</span> <span class='addition'>请选择</span>
</view> </view>
<view class="worditem"> <view class="worditem">
<view class="today"> <view class="today" @tap='todayindex=index'
<span class="todaytime">今天 :style="todayindex==index?'background: #FEF9F8;border: 1px solid #F44B2F;color: #F44B2F;':''"
v-for="(item,index) in userlist.appointmentTimeList" :key="index">
<span class="todaytime">
{{item.week}}
</span> </span>
<span class="time">02-10</span> <span class="time">{{item.healthConsultationDate}}</span>
</view>
<view class="today">
<span class="todaytime">今天
</span>
<span class="time">02-10</span>
</view>
<view class="today">
<span class="todaytime">今天
</span>
<span class="time">02-10</span>
</view>
<view class="today">
<span class="todaytime">今天
</span>
<span class="time">02-10</span>
</view>
</view>
<view class="worditem" style="margin-top: 3%;">
<view class="today">
<span class="todaytime">今天
</span>
<span class="time">02-10</span>
</view>
<view class="today">
<span class="todaytime">今天
</span>
<span class="time">02-10</span>
</view>
<view class="today">
<span class="todaytime">今天
</span>
<span class="time">02-10</span>
</view>
<view class="today">
<span class="todaytime">今天
</span>
<span class="time">02-10</span>
</view> </view>
</view> </view>
</view> </view>
<view class="remarks"> <view class="remarks">
<span>咨询内容</span> <span>咨询内容</span>
<input placeholder="请在此输入"> <u-input v-model="updata.healthConsultationContent" type="textarea" :clearable='false' />
<!-- <input type="text" placeholder="请在此输入"> -->
</view> </view>
<view class="bottomitem"> <view class="bottomitem">
<span>298</span> <span>{{updata.totalPrice}}</span>
<view class="submit" @tap='show=true'>确认</view> <view class="submit" @tap='buyshow=true'>确认</view>
</view> </view>
<!-- 弹框 --> <!-- 弹框 -->
<view class="frame"> <u-popup v-model="buyshow" mode="bottom" length="45%" border-radius="30" :closeable='true'>
<u-popup v-model="show" mode="bottom" length="45%" border-radius="30"> <view class="payment">
<view class="payment"> 请选择支付方式
<span>请选择支付方式</span> </view>
<view class="cencel" @tap="show = false"> <view class="chat">
<image src="../../static/gb.png" mode=""></image> <image src="/static/chat.png" mode=""></image>
</view> <span>微信支付</span>
</view> </view>
<view class="chat"> <view class="submits" @tap='buy'>
<image src="/static/chat.png" mode=""></image> 确认支付{{updata.totalPrice}}
<span>微信支付</span> </view>
</view> </u-popup>
<view class="submits" @tap='buy'>
<span>确认支付</span><span>298</span>
</view>
</u-popup>
</view>
<u-toast ref="uToast" /> <u-toast ref="uToast" />
</view> </view>
</template> </template>
<script> <script>
import {
informationConfirmation,
addHealthConsultationOrder
} from '@/api/Informationconfirmation/index.js'
export default { export default {
data() { data() {
return { return {
show: false, buyshow: false,
price: 0,
userlist: {},
todayindex: 0,
updata: {
"orderChannel": "WECHAT_APPLET",
"patientId": null,
"phone": null,
"receiver": null,
"healthAppointDate": null,
"totalPrice": null,
"hospitalPersonId": null,
"healthConsultationContent": '',
},
} }
}, },
methods: { methods: {
buy() {
addHealthConsultationOrder(this.updata).then(res => {
console.log(res)
})
},
},
onLoad(options) {
this.updata.totalPrice = Number(options.price)
this.updata.hospitalPersonId = Number(options.hospitalPersonId)
var that = this
const value = uni.getStorageSync('patientId');
if (value) {
that.updata.patientId = value
informationConfirmation(value).then(res => {
that.userlist = res.data
that.updata.phone = res.data.phone
that.updata.receiver = res.data.patientName
that.updata.healthAppointDate = res.data.appointmentTimeList[0].date
})
}
} }
} }
</script> </script>
@ -169,30 +159,31 @@
.worditem { .worditem {
display: flex; display: flex;
justify-content: space-around; width: 100%;
justify-content: flex-start;
flex-wrap: wrap;
.today { .today {
width: 20%;
width: 147rpx; margin: 0 2.5% 0 2.5%;
margin-top: 20rpx;
height: 90rpx; height: 90rpx;
text-align: center; text-align: center;
font-size: 26rpx; font-size: 26rpx;
background: #FEF9F8; border: 1px solid #DADADA;
border: 1rpx solid #F44B2F;
border-radius: 5rpx; border-radius: 5rpx;
.time { .time {
font-size: 26rpx; font-size: 26rpx;
display: block; display: block;
line-height: 55rpx; line-height: 40rpx;
} }
.todaytime { .todaytime {
padding-top: 5rpx;
font-size: 26rpx; font-size: 26rpx;
display: block; display: block;
height: 30rpx; line-height: 40rpx;
line-height: 55rpx;
} }
} }
} }
@ -205,92 +196,67 @@
height: 440rpx; height: 440rpx;
background: #FFFFFF; background: #FFFFFF;
border-radius: 20rpx; border-radius: 20rpx;
padding: 30rpx 0 0 30rpx;
position: relative;
padding: 3%;
input {
position: absolute;
top: 25%;
width: 77%;
transform: translateY(-50%);
}
} }
.bottomitem { .bottomitem {
width: 750rpx; width: 100%;
height: 132rpx; height: 120rpx;
background: #FFFFFF; background: #FFFFFF;
bottom: 0%; bottom: 0;
position: fixed; position: fixed;
padding: 5%;
span { span {
// margin-left: 3%;
// margin-top: 3%;
font-size: 48rpx; font-size: 48rpx;
line-height: 120rpx;
color: #F44B2F; color: #F44B2F;
// line-height: 75rpx; margin: 0 0 0 30rpx;
} }
.submit { .submit {
width: 186rpx; width: 186rpx;
height: 61rpx; height: 70rpx;
background: #F44B2F; background: #F44B2F;
color: #FFFFFF; color: #FFFFFF;
border-radius: 30rpx; border-radius: 30rpx;
line-height: 61rpx; line-height: 70rpx;
text-align: center; text-align: center;
font-size: 32rpx; font-size: 32rpx;
float: right; float: right;
margin: 25rpx 30rpx 0 0;
} }
} }
// //
.payment { .payment {
width: 390px; width: 100%;
height: 130rpx; height: 130rpx;
font-size: 42rpx; font-size: 42rpx;
color: #000000; color: #000000;
line-height: 130rpx; line-height: 130rpx;
text-align: center; text-align: center;
// margin: 0 auto;
border-bottom: 1rpx solid #D8D4D4; border-bottom: 1rpx solid #D8D4D4;
display: flex;
span {
margin-left: 30%;
}
.cencel {
margin-left: 20%;
image {
width: 31rpx;
height: 31rpx;
}
}
} }
.chat { .chat {
position: relative;
height: 200rpx;
span { span {
display: block; position: absolute;
height: 68rpx; top: 50rpx;
left: 180rpx;
line-height: 70rpx;
font-size: 42rpx; font-size: 42rpx;
color: #000000; color: #000000;
line-height: 68rpx;
margin-left: 25%;
margin-top: -10%;
} }
image { image {
width: 79rpx; position: absolute;
height: 69rpx; top: 50rpx;
margin-top: 7%; left: 70rpx;
padding-left: 10%; width: 80rpx;
height: 70rpx;
} }
} }
@ -299,13 +265,14 @@
width: 501rpx; width: 501rpx;
height: 71rpx; height: 71rpx;
line-height: 71rpx; line-height: 71rpx;
// background: #4C7BC9;
border-radius: 36rpx; border-radius: 36rpx;
font-size: 34rpx; font-size: 34rpx;
color: #FFFFFF; color: #FFFFFF;
text-align: center; text-align: center;
margin: 0 auto; position: fixed;
margin-top: 25%; bottom: 50rpx;
left: 50%;
transform: translateX(-50%);
} }
} }
</style> </style>

View File

@ -146,7 +146,6 @@
} }
}, },
move(event) { //@touchmove move(event) { //@touchmove
console.log(event, 2)
let touch = event.touches[0]; // Objcet let touch = event.touches[0]; // Objcet
this.touch = touch; this.touch = touch;
}, },

View File

@ -8,7 +8,7 @@
</image> </image>
</swiper-item> </swiper-item>
</swiper> --> </swiper> -->
<view class="container"> <view class="container" v-if="swiperImgUrls">
<swiper :indicator-dots="true" :current="currentIndex" previous-margin="55rpx" next-margin="55rpx" <swiper :indicator-dots="true" :current="currentIndex" previous-margin="55rpx" next-margin="55rpx"
:autoplay="autoplay" :interval="3000" :duration="1000" class="swiper-block" :circular='true' :autoplay="autoplay" :interval="3000" :duration="1000" class="swiper-block" :circular='true'
@change="swiperChange"> @change="swiperChange">

View File

@ -1,17 +1,6 @@
<template> <template>
<view class="app"> <view class="app">
<view class="concent"> <view class="swiper">
<view class="background">
<image src="/static/logo.png" mode=""></image>
<view class="detailed">
<view>
互联网+医疗健康高速发展的当下以远程诊疗大数据人工智能为代表的新技术应用越来越多的应用在医疗健康服务当中依托三甲专家团队赋能基层医疗打造的全闭环商业模式实现物联网化医生联合体布局提供数字化远程医疗解决方案提升基层医疗水平提高医疗效率降低看病成本
平台将全力打造智慧诊所为基层全科医生医提供物联网可穿戴式医疗设备基层医生负责操作收集医生集团的三甲专家远程出具诊断报告有效将三甲医院医生基层医生与患者连接从而更加方便快捷高效随时随地满足患者的长期医疗需求可以为基层医生解决技术缺陷设备不足等难题遇到病情紧急严重的还可以打开绿色就医通道进行转诊服务
</view>
</view>
</view>
</view>
<!-- <view class="swiper">
<swiper :indicator-dots="false" indicator-color='#fff' indicator-active-color='#0086d6' :autoplay="autoplay" <swiper :indicator-dots="false" indicator-color='#fff' indicator-active-color='#0086d6' :autoplay="autoplay"
:interval="2000" :duration="1000" class="swiper-box" :circular='true' @change="swiperChange"> :interval="2000" :duration="1000" class="swiper-box" :circular='true' @change="swiperChange">
<swiper-item v-for="(item ,index) in swiperImgUrls" :key="index"> <swiper-item v-for="(item ,index) in swiperImgUrls" :key="index">
@ -30,18 +19,18 @@
<view class="hospital"> <view class="hospital">
<view class="appointmenthospital">预约医生</view> <view class="appointmenthospital">预约医生</view>
<view class="tabbar"> <view class="tabbar">
<view class="lefttabbar"> <view class="lefttabbar" @touchstart="start" @touchend="end" @touchmove="move">
<view class="lefttabbarlist"> <view class="lefttabbarlist">
<view v-for="(item,index) in hospitalDepartmentList" :key="index" <view v-for="(item,index) in hospitalDepartmentList" :key="index"
:class="tabIndex==index?'actives':'active'" @tap='taptabindex(item,index)'> :class="tabIndex==index?'actives':'active'" @tap='taptabindex(item,index)'>
{{item.hospitalName}} {{item.departmentName}}
</view> </view>
</view> </view>
</view> </view>
<view class="righttabbar"> <view class="righttabbar">
<view class="productlist"> <view class="productlist" @touchstart="start" @touchend="end" @touchmove="move">
<view class="content" v-for="(item,index) in HospitalPersonlist" :key="item.id"> <view class="content" v-for="(item,index) in HospitalPersonlist" :key="item.id">
<image class="hospitalimage" src="/static/header .png" mode=""></image> <image class="hospitalimage" :src="baseurl+personPictureUrl" mode=""></image>
<view class="hospitalteacher">{{item.personName}}</view> <view class="hospitalteacher">{{item.personName}}</view>
<view class="physician"> <view class="physician">
{{ item.academicTitle=='CHIEF_PHYSICIAN'?'主任医师':''}} {{ item.academicTitle=='CHIEF_PHYSICIAN'?'主任医师':''}}
@ -52,14 +41,14 @@
</view> </view>
<view class="words">{{item.personIntroduce}} <view class="words">{{item.personIntroduce}}
</view> </view>
<view class="appointment" @tap="goappointment"> <view class="appointment" @tap="goappointment(item)">
预约 预约
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</view> --> </view>
</view> </view>
</template> </template>
@ -72,38 +61,85 @@
export default { export default {
data() { data() {
return { return {
baseurl: '',
swiperImgUrls: [], swiperImgUrls: [],
autoplay: true, // autoplay: true, //
hospitalDepartmentList: [], // hospitalDepartmentList: [], //
hospitalDepartmenttotal: 0,
HospitalPersonlist: [], // HospitalPersonlist: [], //
HospitalPersontotal: 0,
tabIndex: 0, tabIndex: 0,
departmentId: null, //id departmentId: null, //id
DepartmentpageNum: 1,
DepartmentpageSize: 100,
personpageNum: 1,
pageSize: 10,
startData: {
clientX: '',
clientY: '',
},
touch: {},
}; };
}, },
methods: { methods: {
move(event) { //@touchmove
let touch = event.touches[0]; // Objcet
this.touch = touch;
},
// touch
start(e) { //@touchstart
this.startData.pageY = e.changedTouches[0].pageY; //Y
},
end(e) { //@touchend
if ((this.startData.pageY - this.touch.pageY) > 100) { //
if (this.hospitalDepartmentList.length >= this.hospitalDepartmenttotal) {} else {
this.DepartmentpageNum++;
//
selectDepartment(this.DepartmentpageNum, this.DepartmentpageSize).then(res => {
res.rows.forEach(e => {
this.hospitalDepartmentList.push(e)
})
})
}
if (this.HospitalPersonlist.length >= this.HospitalPersontotal) {} else {
this.personpageNum++;
//
selectHospitalPerson(this.personpageNum, this.pageSize, this.departmentId).then(res => {
res.rows.forEach(e => {
this.HospitalPersonlist.push(e)
})
})
}
} else {
// this.touch = {};
}
},
// //
selectHospitalPersonInfo() { selectHospitalPersonInfo() {
selectHospitalPerson(this.departmentId).then(res => { selectHospitalPerson(this.personpageNum, this.pageSize, this.departmentId).then(res => {
this.HospitalPersonlist = res.rows this.HospitalPersonlist = res.rows
this.HospitalPersontotal = res.total
}) })
}, },
//tap //tap
taptabindex(item, index) { taptabindex(item, index) {
this.tabIndex = index this.tabIndex = index
if (this.departmentId != item.id) { if (this.departmentId != item.departmentId) {
this.departmentId = item.id this.departmentId = item.departmentId
this.selectHospitalPersonInfo(); this.selectHospitalPersonInfo();
} }
}, },
// //
selectDepartmentinfo() { selectDepartmentinfo() {
selectDepartment().then(res => { this.swiperImgUrls = []
this.hospitalDepartmentList = res.data.hospitalDepartmentList selectDepartment(this.DepartmentpageNum, this.DepartmentpageSize).then(res => {
res.data.poserInfoList.forEach(e => { this.hospitalDepartmentList = res.rows
this.hospitalDepartmenttotal = res.total
res.rows[0].poserInfoList.forEach(e => {
e.image = baseurl + e.posterPictureUrl e.image = baseurl + e.posterPictureUrl
this.swiperImgUrls.push(e.image) this.swiperImgUrls.push(e.image)
}) })
this.departmentId = this.hospitalDepartmentList[0].id this.departmentId = this.hospitalDepartmentList[0].departmentId
this.selectHospitalPersonInfo(); this.selectHospitalPersonInfo();
}) })
}, },
@ -142,21 +178,17 @@
ended() { ended() {
this.autoplay = true this.autoplay = true
}, },
goappointment() {
uni.navigateTo({
url: '/pages/Informationconfirmation/Informationconfirmation'
})
},
// //
godoctorslist() { goappointment(item) {
// uni.navigateTo({ uni.navigateTo({
// url: '/pages/doctorslist/doctorslist' url: `/pages/Informationconfirmation/Informationconfirmation?price=${item.consultingFee}&hospitalPersonId=${item.id}`
// }) })
}, },
}, },
onLoad() { onLoad() {
this.pageNum = 1
this.baseurl = baseurl this.baseurl = baseurl
// this.selectDepartmentinfo() this.selectDepartmentinfo()
}, },
//1. //1.
onShareAppMessage(res) { onShareAppMessage(res) {
@ -180,43 +212,5 @@
</script> </script>
<style lang="scss"> <style lang="scss">
// @import "./medicine.scss"; @import "./medicine.scss";
.concent {
width: 701rpx;
height: 100%;
background: #4C7BC9;
box-shadow: 0px 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx;
margin: 5% auto 20px;
padding: 30rpx 0;
.background {
position: relative;
width: 657rpx;
height: 100%;
background: #FFFFFF;
border-radius: 25rpx;
background-color: white;
margin: 0 auto;
.detailed {
width: 657rpx;
height: 100%;
padding: 0 42rpx 20rpx;
line-height: 56rpx;
}
.detailed view {
text-indent: 2em;
}
image {
width: 178rpx;
height: 160rpx;
background: #FFFFFF;
border-radius: 25px;
margin-left: 68%;
}
}
}
</style> </style>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB