Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
shidongli 2023-10-17 16:20:17 +08:00
commit 817214fae8
11 changed files with 444 additions and 145 deletions

View File

@ -17,7 +17,7 @@ export function getCurrentUser(openid, cityCode) {
url: `/applet/register/getCurrentResident/${openid}/${cityCode}`,
method: 'GET',
header: {
// Authorization: 'Bearer' + ' ' + uni.getStorageSync('token')
Authorization: 'Bearer' + ' ' + uni.getStorageSync('token')
},
})
}

View File

@ -1,7 +1,17 @@
import request from "../../request.js"
//齐鲁名医
export function selectDepartment(pageNum,pageSize) {
export function selectDepartmentNoPage() {
return request({
url: `/nurseApp/healthConsultation/selectDepartmentNoPage`,
method: 'GET',
header: {
Authorization: 'Bearer' + ' ' + uni.getStorageSync('token')
},
})
}
//齐鲁名医
export function selectDepartment(pageNum, pageSize) {
return request({
url: `/nurseApp/healthConsultation/selectDepartment?pageNum=${pageNum}&pageSize=${pageSize}`,
method: 'GET',
@ -10,9 +20,8 @@ export function selectDepartment(pageNum,pageSize) {
},
})
}
//人员
export function selectHospitalPerson(pageNum,pageSize,departmentId) {
export function selectHospitalPerson(pageNum, pageSize, departmentId) {
return request({
url: `/nurseApp/healthConsultation/selectHospitalPerson?pageNum=${pageNum}&pageSize=${pageSize}&departmentId=${departmentId}`,
method: 'GET',
@ -20,4 +29,4 @@ export function selectHospitalPerson(pageNum,pageSize,departmentId) {
Authorization: 'Bearer' + ' ' + uni.getStorageSync('token')
},
})
}
}

View File

@ -0,0 +1,21 @@
import request from "../../request.js"
// 列表查询
export function list(data) {
return request({
url: '/applet/service/apply/list',
method: 'POST',
data:data
})
}
export function cancel(bookingNo) {
return request({
url: `/applet/service/apply/cancel/${bookingNo}`,
method: 'GET',
// header: {
// region: uni.getStorageSync('region'),
// Authorization: 'Bearer' + ' ' + uni.getStorageSync('token')
// },
})
}

View File

@ -334,7 +334,8 @@
"path": "consultationplatform/consultationplatform",
"style": {
"navigationBarTitleText": "问诊平台",
"enablePullDownRefresh": false
"onReachBottomDistance": 40, // px
"enablePullDownRefresh": true //true
}
}, {
"path": "doctordetails/doctordetails",
@ -580,4 +581,4 @@
}
]
}
}
}

View File

@ -1,45 +1,132 @@
.app {
padding-top: 10rpx;
.app {
padding: 0 0 124rpx;
width: 100%;
.btns {
width: 100%;
height: 124rpx;
background: #FFFFFF;
box-shadow: 0rpx -3rpx 13rpx 0rpx rgba(0,0,0,0.1);
border-radius: 20rpx;
display: flex;
font-size: 31rpx;
justify-content: space-around;
justify-content: space-between;
padding: 0 3%;
text-align: center;
font-weight: 500;
margin-top: 80rpx;
padding-bottom: 50rpx;
position: fixed;
bottom:0;
.btnleft {
width: 290rpx;
height: 62rpx;
background: #FFFFFF;
border: 1px solid #26A888;
border-radius: 5rpx;
color: #26A888;
line-height: 62rpx
font-size: 30rpx;
font-weight: 500;
color: #F44B2F;
line-height: 124rpx;
text{
font-size:44rpx;
}
}
.btnright {
width: 289rpx;
height: 62rpx;
width: 169rpx;
height: 61rpx;
background: #26A888;
border-radius: 5rpx;
line-height: 61rpx;
transform: translateY(50%);
font-size: 28rpx;
font-weight: 400;
color: #FFFFFF;
line-height: 62rpx;
}
}
::v-deep .u-tabs {
padding: 30rpx 20rpx 0 20rpx !important;
}
.item {
border-radius: 5rpx;
width: 96%;
margin: 20rpx auto;
margin: 14rpx auto 0;
background-color: #fff;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 5rpx;
padding-bottom: 50rpx;
.timeyear {
padding: 30rpx 40rpx 0 40rpx;
.bottomtext {
-webkit-overflow-scrolling: touch;
width: 100%;
margin: 0 auto;
.items {
display: flex;
justify-content: flex-start;
flex-wrap: wrap;
text-align: center;
color: #000000;
.timeitem {
width: 29%;
margin: 0 2% 20rpx;
height: 96rpx;
border-radius: 5rpx;
border: 2rpx solid #26A888;
}
.itemstext{
line-height: 38rpx;
padding-top: 10rpx;
font-size: 23rpx;
}
.itemstexttwo{
line-height: 42rpx;
font-size: 16rpx;
font-weight: 500;
}
.timeitemtap {
width: 29%;
margin: 0 2% 20rpx;
height: 96rpx;
border: 2rpx solid #26A888;
border-radius: 5rpx;
color: #26A888;
background: #E6F8F3;
}
}
}
.toptext {
-webkit-overflow-scrolling: touch;
padding-top: 10rpx;
display: flex;
justify-content: space-around;
height: 50rpx;
color: #000000;
line-height: 27rpx;
margin-bottom: 30rpx;
text-align: center;
.Soonerorlater {
width: 200rpx;
font-size: 28rpx;
height: 50rpx;
}
.Soonerorlaterclass {
font-size: 28rpx;
color: #26A888;
width: 200rpx;
height: 50rpx;
}
view:nth-child(2) {
width: 4rpx;
height: 27rpx;
background: #C5C3C3;
border-radius: 2rpx;
}
}
}
.select {
width: 90%;
height: 80rpx;
@ -89,7 +176,8 @@
background: #FFFFFF;
border: 2rpx solid #26A888;
border-radius: 5rpx;
.title{
.title {
font-weight: 500;
color: #EE8F15;
margin-bottom: 20rpx;
@ -101,7 +189,8 @@
font-weight: 400;
color: #333333;
padding: 30rpx 0 0 40rpx;
text{
text {
padding-left: 20rpx;
font-size: 20rpx;
font-weight: 400;
@ -167,4 +256,4 @@
}
}
}
}
}

View File

@ -38,6 +38,42 @@
</view>
<tabs :list="appointmentTimeList" :current="timecurrent" @change="timechange" active-color="#26A888">
</tabs>
<view class="timeyear">
<view class="toptext">
<view :class="Soonerorlater=='morning'?'Soonerorlaterclass':'Soonerorlater'"
@tap="tapSoonerorlater('morning')">
上午
</view>
<view class="">
</view>
<view :class="Soonerorlater=='after'?'Soonerorlaterclass':'Soonerorlater'"
@tap="tapSoonerorlater('after')">
下午
</view>
</view>
<view class="bottomtext">
<view class="items" v-if="Soonerorlater=='morning'">
<view @tap='taptime(item,index)'
v-for="(item ,index) in appointmentTimeList[timecurrent].morningList"
:class="timeindex==index?'timeitemtap':'timeitem'"
:style="item.status?'':'background: #FFFFFF;color: #AAABB0;'">
<view class="itemstext">
{{item.scheduleTimeSlot}}
</view>
<view class="itemstexttwo">
{{item.status?'(可预约)':'(不可预约)'}}
</view>
</view>
</view>
<view class="items" v-if="Soonerorlater=='after'">
<view @tap='taptime(item,index)'
v-for="(item ,index) in appointmentTimeList[timecurrent].afternoonList"
:class="timeindex==index?'timeitemtap':'timeitem'">
{{item.scheduleTimeSlot}}
</view>
</view>
</view>
</view>
<view class="text">
问题简述
</view>
@ -89,7 +125,7 @@
</view>
<view class="btns">
<view class="btnleft">
返回
<text>{{formdata.price}}</text>.00
</view>
<view class="btnright" @tap='updata'>
保存
@ -129,14 +165,16 @@
addresslength: null,
imglistlength: null,
address: '请选择所属地区', //
Soonerorlater: 'morning',
timecurrent: 0, //
timeindex: 0,
appointmentTimeList: [],
formdata: {
address: null, //
patientId: 1,
patientName: '李广君',
cardNo: '370882199909092123',
phone: '17615455437',
address: null,
patientId: null,
patientName: null,
cardNo: null,
phone: null,
address: null,
doctorId: null,
doctorName: null,
@ -153,16 +191,48 @@
};
},
onLoad(options) {
let userinfo = uni.getStorageSync('userinfo');
this.formdata.patientId = userinfo.id
this.formdata.patientName = userinfo.patientName
this.formdata.cardNo = userinfo.cardNo
this.formdata.phone = userinfo.phone
this.formdata.doctorName = options.doctorName
this.formdata.doctorId = options.doctorId
this.formdata.price = options.price
this.uoloadaction = baseurl + '/nurseApplet/consultationInfo/uploadConsultationFile'
this.areaInfo();
this.getListByDoctorinfo();
},
onShow() {},
methods: {
//
tapSoonerorlater(item) {
this.Soonerorlater = item
this.timeindex = 0
if (item == 'morning') {
this.formdata.appointmentStartTime = this.appointmentTimeList[this.timecurrent].morningList[0]
.starttime
} else if (item == 'after') {
this.formdata.appointmentEndTime = this.appointmentTimeList[this.timecurrent].morningList[0]
.endtime
}
},
//
taptime(item, index) {
this.formdata.appointmentStartTime = item.starttime
this.formdata.appointmentEndTime = item.endtime
this.timeindex = index
},
timechange(index) {
this.timecurrent = index
this.formdata.appointmentDate = this.appointmentTimeList[index].scheduleDate
if (this.timecurrent != index) {
this.timecurrent = index
this.timeindex = 0
this.formdata.appointmentStartTime = this.appointmentTimeList[this.timecurrent].morningList[0]
.starttime
this.formdata.appointmentEndTime = this.appointmentTimeList[this.timecurrent].morningList[0]
.endtime
}
},
updata() {
if (this.imglistlength > 0) {
@ -183,24 +253,36 @@
this.info();
},
info() {
console.log(this.formdata)
// consultationInfo(this.formdata).then(res => {
// if (res.code == 200) {
// this.$refs.uToast.show({
// title: '',
// type: 'success',
// duration: '1500',
// back: 1
// })
// }
// })
consultationInfo(this.formdata).then(res => {
if (res.code == 200) {
this.$refs.uToast.show({
title: '新建专家问诊成功',
type: 'success',
duration: '1500',
back: 1
})
}
})
},
getListByDoctorinfo() {
getListByDoctor(this.formdata.doctorId).then(res => {
res.data.forEach(e => {
e.dates = e.scheduleDate.slice(5, 10)
e.name = e.week
e.morningList.length > 0 ? e.morningList.forEach(el => {
el.starttime = el.scheduleTimeSlot.split('~')[0]
el.endtime = el.scheduleTimeSlot.split('~')[1]
}) : ''
e.afternoonList.length > 0 ? e.afternoonList.forEach(el => {
el.starttime = el.scheduleTimeSlot.split('~')[0]
el.endtime = el.scheduleTimeSlot.split('~')[1]
}) : ''
})
this.formdata.appointmentDate = res.data[0].scheduleDate
res.data[0]?.morningList[0]?.starttime ? this.formdata.appointmentStartTime = res.data[0]
.morningList[0].starttime : ''
res.data[0]?.morningList[0]?.endtime ? this.formdata.appointmentEndTime = res.data[0]
.morningList[0].endtime : ''
this.appointmentTimeList = res.data
})
},
@ -237,4 +319,4 @@
<style lang="scss">
@import './confirmation.scss';
</style>
</style>

View File

@ -19,32 +19,29 @@
<view class="title">
专家信息栏
</view>
<u-tabs :list="tabList" :current="tabcurrent" @change="tabchange" active-color='#26A888'
<u-tabs :list="hospitalDepartmentList" :current="tabcurrent" @change="tabchange" active-color='#26A888'
:show-bar='false'></u-tabs>
<view class="list">
<view class="item" @tap="godoctordetails">
<image src="../../static/messages.png" mode=""></image>
<view class="item" @tap="godoctordetails" v-for="item in HospitalPersonlist">
<image v-if="item.personPictureUrl" :src="baseurl+item.personPictureUrl" mode=""></image>
<image v-else src="@/static/pagesB/yis.png" mode=""></image>
<view class="name">
张三
{{item.personName}}
</view>
<view class="position">
主任医师
{{ item.academicTitle=='CHIEF_PHYSICIAN'?'主任医师':''}}
{{ item.academicTitle=='DEPUTY_CHIEF_PHYSICIAN'?'副主任医师':''}}
{{ item.academicTitle=='ATTENDING_DOCTOR'?'主治医师':''}}
{{ item.academicTitle=='PHYSICIAN'?'医师':''}}
{{ item.academicTitle=='HEALER'?'医士':''}}
</view>
<view class="text">
山东大学齐鲁医院主任医师 从事甲状腺疾病等内分泌与代 谢病的诊治擅长甲状腺结节 良恶性鉴
{{item.personIntroduce}}
</view>
</view>
<view class="item" @tap="godoctordetails">
<image src="../../static/messages.png" mode=""></image>
<view class="name">
张三
</view>
<view class="position">
主任医师
</view>
<view class="text">
山东大学齐鲁医院主任医师 从事甲状腺疾病等内分泌与代 谢病的诊治擅长甲状腺结节 良恶性鉴
</view>
<view style="width: 46%;" v-if="HospitalPersonlist.length%2!=0">
</view>
<view style="width: 46%;" v-if="HospitalPersonlist.length%2!=0">
</view>
</view>
</view>
@ -52,17 +49,54 @@
</template>
<script>
import {
selectDepartmentNoPage,
selectHospitalPerson
} from '@/api/pagesB/medicine/index.js'
import baseurl from '../../api/baseurl';
export default {
data() {
return {
baseurl: '',
tabcurrent: 0,
tabList: [{
name: '健康常识'
}],
pageNum: 1,
pageSize: 10,
departmentId: null,
HospitalPersonlist: null,
HospitalPersontotal: 0,
hospitalDepartmentList: null,
};
},
onLoad() {
this.baseurl = baseurl
this.selectDepartmentinfo();
},
methods: {
tabchange() {},
//
selectHospitalPersonInfo() {
selectHospitalPerson(this.pageNum, this.pageSize, this.departmentId).then(res => {
this.HospitalPersonlist = res.rows
this.HospitalPersontotal = res.total
})
},
//
selectDepartmentinfo() {
selectDepartmentNoPage().then(res => {
if (res.data.length > 0) {
res.data.forEach(e => {
e.name = e.departmentName
})
this.hospitalDepartmentList = res.data
this.departmentId = this.hospitalDepartmentList[0].departmentId
this.selectHospitalPersonInfo();
}
})
},
tabchange(e) {
this.tabcurrent = e
this.departmentId = this.hospitalDepartmentList[e].departmentId
this.selectHospitalPersonInfo();
},
//
gomedicine() {
uni.navigateTo({
@ -81,12 +115,31 @@
url: '/pagesB/doctordetails/doctordetails'
})
},
}
},
onReachBottom() { //
if (this.HospitalPersonlist.length >= this.HospitalPersontotal) {} else {
this.pageNum++
getHeathHousingList(this.pageNum, this.pageSize).then(res => {
if (res.rows) {
res.rows.forEach(e => {
this.HospitalPersonlist.push(e)
})
}
})
}
},
onPullDownRefresh() { //
this.pageNum = 1;
this.selectHospitalPersonInfo();
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
}
</script>
<style lang="scss">
.app {
.app {
.card {
background-color: #fff;
@ -101,28 +154,29 @@
width: 100%;
display: flex;
justify-content: space-around;
flex-wrap: wrap;
.item {
width: 46%;
height: 382rpx;
background: #FFFFFF;
border: 1px solid #26A888;
border-radius: 5rpx;
border-radius: 10rpx;
position: relative;
image {
position: absolute;
width: 100rpx;
width: 120rpx;
top: 20rpx;
left: 20rpx;
height: 100rpx;
height: 120rpx;
}
.name {
position: absolute;
top: 40rpx;
left: 140rpx;
font-size: 26rpx;
left: 160rpx;
font-size: 28rpx;
font-weight: 400;
color: #000000;
}
@ -130,24 +184,24 @@
.position {
position: absolute;
top: 84rpx;
left: 140rpx;
font-size: 22rpx;
left: 160rpx;
font-size: 24rpx;
color: #666666;
}
.text {
word-break: break-all;
width: 90%;
margin: 150rpx auto 0;
font-size: 20rpx;
margin: 170rpx auto 0;
font-size: 22rpx;
color: #666666;
line-height: 33rpx;
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 8; //
line-clamp: 8;
-webkit-line-clamp: 5; //
line-clamp: 5;
-webkit-box-orient: vertical;
text-align: justify;
}
@ -215,4 +269,4 @@
margin: 20rpx auto 0;
}
}
</style>
</style>

View File

@ -184,6 +184,7 @@
}
})
},
goConsultationDetails(){},
swiperChange(e) {
this.currentIndex = e.detail.current
let {

View File

@ -25,19 +25,22 @@
.top {
position: absolute;
background: red;
// background: red;
width: 90%;
left: 5%;
top: 7%;
span:nth-child(1) {
font-size: 32rpx;
font-size: 27rpx;
font-weight: 600;
color: #000000;
position: absolute;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
span:nth-child(2) {
font-weight: 500;
font-size: 28rpx;
font-size: 27rpx;
font-weight: 600;
color: #26A888;
position: absolute;
@ -61,7 +64,7 @@
.recorditem {
width: 100%;
font-size: 28rpx;
font-size: 27rpx;
font-family: Source Han Sans CN;
font-weight: 400;
color: #868585;

View File

@ -2,87 +2,126 @@
<view class="app">
<u-tabs :list="tabslist" :is-scroll="false" :current="tabscurrent" @change="tabschange" :show-bar='false'
active-color='#26A888'></u-tabs>
<view class="record">
<view class="top">
<span>大生化</span>
<span>未完成</span>
</view>
<view class="recorddata">
<view class="recorditem">
高血压个性服务包
</view>
<view class="recorditem">
预约时间2023-12-12<span>08:30</span>
</view>
</view>
<view class="evaluate" @tap="evaluatetime">
<view class="evaluatedata">
取消预约
</view>
</view>
<u-empty v-if="appointmentlist==0" text="暂无" ></u-empty>
<view class="record" v-for="(item,index) in appointmentlist" :key="index" v-else>
<view class="top">
<span>{{item.formName}}</span>
<span v-if="item.bookingStatus=='1'&&item.approvalStatus=='1'">已完成
</span>
<span v-if="item.approvalStatus=='0'&&item.bookingStatus=='1'">待批准</span>
<span v-if="item.bookingStatus=='0'">未完成</span>
<span v-if="item.bookingStatus=='2'">已取消</span>
</view>
<view class="record">
<view class="top">
<span>大生化</span>
<span>未完成</span>
<view class="recorddata">
<view class="recorditem">
{{item.packageName}}
</view>
<view class="recorddata">
<view class="recorditem">
高血压个性服务包
</view>
<view class="recorditem">
预约时间2023-12-12<span>08:30</span>
</view>
</view>
<view class="evaluate">
<span>完成时间</span>
<span>2023-12-20</span>
<span>08:30</span>
</view>
</view>
<!-- <view class="recorditem"
v-if="item.bookingStatus=='0'||item.bookingStatus=='1'||item.bookingStatus=='2'">
申请时间{{item.applyTime}}
</view> -->
<view class="recorditem" v-if="item.bookingStatus=='1'&&item.completeTime">
完成时间{{item.completeTime}}
</view>
<view class="recorditem">
预约时间{{item.bookingTime}}
</view>
<view class="recorditem" v-if="item.bookingStatus=='2'">
取消时间{{item.cancelTime}}
</view>
</view>
<view class="evaluate" @tap="evaluatetime(item)" v-if="item.bookingStatus=='0'&&item.approvalStatus=='0'">
<view class="evaluatedata">
取消预约
</view>
</view>
<u-toast ref="uToast" />
</view>
</view>
</template>
<script>
import {
list,
cancel
} from '@/api/pagesC/myappointment/myappointment.js'
export default {
data() {
return {
tabslist: [{
name: '全部',
orderStatus: '',
completed: '',
}, {
name: '未评价',
orderStatus: 'WAIT_PAY',
name: '已完成',
completed: '2',
}, {
name: '已评价',
orderStatus: 'WAIT_RECEIVED_GOODS',
name: '未完成',
completed: '1',
}, ],
tabscurrent: 0,
query: {
pageNum: 1,
pageSize: 10,
identity: '',
completed: '',
},
appointmentlist: [],
}
},
onShow() {
const value=uni.getStorageSync('userinfo');
this.query.identity=value.cardNo
this.info();
console.log(this.appointmentlist,'555')
},
methods: {
info() {
list(this.query).then(res => {
this.appointmentlist = res.rows
})
},
evaluatetime(item) {
console.log(item, 11)
cancel(item.bookingNo).then(res => {
console.log(res, '56')
if (res.code == 200) {
this.$refs.uToast.show({
title: '取消预约成功',
type: 'success',
duration: '1500'
})
} else if (res.code == 500) {
this.$refs.uToast.show({
title: res.msg,
type: 'error',
duration: '1500'
})
}
})
},
//tabs
tabschange(index) {
// console.log(this.tabslist)
this.tabscurrent = index;
// this.orderStatus = this.tabslist[index].orderStatus
// this.goodsOrderinfo();
this.tabscurrent = index
console.log(index, '5')
if (index == '1') {
this.query.completed = '1'
this.info();
} else if (index == '2') {
this.query.completed = '2'
this.info();
} else if (index == '0') {
this.query.completed = ''
this.info();
}
},
}
}
</script>
<style lang="scss">
@import './Myappointment.scss'
</style>
</style>

View File

@ -535,7 +535,7 @@
let userinfo = uni.getStorageSync('userinfo');
this.query.residentName = userinfo.patientName
this.query.identity = userinfo.cardNo
this.query.phone = userinfo.patientName
this.query.phone = userinfo.phone
this.query.signTime = year + '-' + month + '-' + day;
},
onShow() {