This commit is contained in:
曹辉 2023-03-09 09:42:28 +08:00
parent df9d0c5366
commit d1a4ed3cd3
10 changed files with 308 additions and 234 deletions

17
api/medicine/index.js Normal file
View File

@ -0,0 +1,17 @@
import request from "../request.js"
//健康咨询
export function selectDepartment() {
return request({
url: `/nurseApp/healthConsultation/selectDepartment`,
method: 'GET'
})
}
//人员
export function selectHospitalPerson(departmentId) {
return request({
url: `/nurseApp/healthConsultation/selectHospitalPerson?departmentId=${departmentId}`,
method: 'GET'
})
}

View File

@ -9,6 +9,14 @@
"navigationBarTitleText": "", "navigationBarTitleText": "",
"navigationStyle": "custom" "navigationStyle": "custom"
} }
},{
"path": "pages/medicine/medicine",
"style": {
"navigationBarTitleText": "健康咨询",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff",
"disableScroll": true
}
},{ },{
"path": "pages/integral/integral", "path": "pages/integral/integral",
"style": { "style": {
@ -21,9 +29,9 @@
"style" : "style" :
{ {
"navigationBarTitleText": "", "navigationBarTitleText": "",
"enablePullDownRefresh": false "enablePullDownRefresh": false,
"navigationBarTitleText": "预约时间"
} }
},{ },{
"path": "pages/information/information", "path": "pages/information/information",
"style": { "style": {
@ -178,7 +186,6 @@
"navigationBarBackgroundColor": "#ffffff", // "navigationBarBackgroundColor": "#ffffff", //
"onReachBottomDistance": 40, // px "onReachBottomDistance": 40, // px
"enablePullDownRefresh": true //true "enablePullDownRefresh": true //true
} }
}, },
{ {
@ -238,7 +245,6 @@
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, },
{ {
"path": "pages/disease/disease", "path": "pages/disease/disease",
"style": { "style": {
@ -283,14 +289,6 @@
"enablePullDownRefresh": true //true "enablePullDownRefresh": true //true
} }
}, },
{
"path": "pages/medicine/medicine",
"style": {
"navigationBarTitleText": "健康咨询",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff"
}
},
{ {
"path": "pages/diseasemanagement/diseasemanagement", "path": "pages/diseasemanagement/diseasemanagement",
"style": { "style": {
@ -362,7 +360,6 @@
"navigationBarBackgroundColor": "#ffffff", "navigationBarBackgroundColor": "#ffffff",
"enablePullDownRefresh": false "enablePullDownRefresh": false
} }
} }
], ],
"globalStyle": { "globalStyle": {

View File

@ -672,7 +672,7 @@
this.updata.img = this.goodDetailsLists[0].attributePitureUrl this.updata.img = this.goodDetailsLists[0].attributePitureUrl
this.updata.goodsAttributeName = this.goodDetailsLists[0].attributeDetailsName this.updata.goodsAttributeName = this.goodDetailsLists[0].attributeDetailsName
this.updata.goodsPrice = this.goodDetailsLists[0].goodsPrice this.updata.goodsPrice = this.goodDetailsLists[0].goodsPrice
this.totalPrice = (this.goodDetailsLists.goodsPrice * this.updata.goodsCount) this.totalPrice = (this.goodDetailsLists[0].goodsPrice * this.updata.goodsCount)
.toFixed(2) .toFixed(2)
this.updata.goodsPrice = this.updata.goodsPrice.toFixed(2) this.updata.goodsPrice = this.updata.goodsPrice.toFixed(2)
this.updata.attributeDetailsId = this.goodDetailsLists[0].attributeDetailsId this.updata.attributeDetailsId = this.goodDetailsLists[0].attributeDetailsId
@ -700,7 +700,6 @@
this.updata.goodsAttributeName = list.attributeDetailsName this.updata.goodsAttributeName = list.attributeDetailsName
this.updata.goodsPrice = list.goodsPrice this.updata.goodsPrice = list.goodsPrice
this.totalPrice = (list.goodsPrice * this.updata.goodsCount).toFixed(2) this.totalPrice = (list.goodsPrice * this.updata.goodsCount).toFixed(2)
console.log(list)
this.goodsDetailslist.couponList.forEach(e => { this.goodsDetailslist.couponList.forEach(e => {
if (this.totalPrice >= e.couponConsumePrice) { if (this.totalPrice >= e.couponConsumePrice) {
this.couponListtrue.push(e) this.couponListtrue.push(e)

View File

@ -1,7 +1,6 @@
.app { .app {
height: 100%; height: 100%;
padding: 0 0 0 0; padding: 0 0 0 0;
padding-top: 10rpx;
font-size: 34rpx; font-size: 34rpx;
position: relative; position: relative;
.swiper-box { .swiper-box {

View File

@ -1,25 +1,20 @@
<template> <template>
<view class="app"> <view class="app">
<view class="container"> <!-- 轮播图 -->
<view> <swiper :indicator-dots="true" indicator-color='#fff' indicator-active-color='#0086d6' :autoplay="autoplay"
<!-- 轮播图 --> :interval="3000" :duration="1500" class="swiper-box" :circular='true' @change="swiperChange">
<swiper indicator-dots="true" indicator-color='#fff' indicator-active-color='#0086d6' <swiper-item v-for="(item ,index) in lbinfo" :key="index">
:autoplay="autoplay" interval="3000" duration="1500" show-center-play-btn="true" class="swiper-box" <view class="swiper-item" v-show="!splits(item)" wx-if="{item}">
circular='true' @change="swiperChange"> <image v-if="item" :src="item" mode="widthFix"></image>
<swiper-item v-for="(item ,index) in lbinfo" :key="index"> </view>
<view class="swiper-item" v-show="!splits(item)" wx-if="{item}"> <view class="swiper-item" v-show="splits(item)" v-if="item">
<image v-if="item" :src="item" mode="widthFix"></image> <video :id="'myVideo'+index" :autoplay="false" :src="item" controls show-fullscreen-btn
</view> object-fit="fill" @play="play" @pause="pause" @ended="ended" auto-pause-if-navigate
<view class="swiper-item" v-show="splits(item)" v-if="item"> show-play-btn :enable-progress-gesture='true' :show-center-play-btn='true' enable-play-gesture
<video :id="'myVideo'+index" :autoplay="false" :src="item" controls show-fullscreen-btn auto-pause-if-open-native show-mute-btn></video>
object-fit="fill" @play="play" @pause="pause" @ended="ended" auto-pause-if-navigate </view>
show-play-btn :enable-progress-gesture='true' :show-center-play-btn='true' </swiper-item>
enable-play-gesture auto-pause-if-open-native show-mute-btn></video> </swiper>
</view>
</swiper-item>
</swiper>
</view>
</view>
<!-- <u-swiper v-if="lbinfo" :list="lbinfo" height="350" style='background-size: 100%;' mode='none'></u-swiper> --> <!-- <u-swiper v-if="lbinfo" :list="lbinfo" height="350" style='background-size: 100%;' mode='none'></u-swiper> -->
<view class="item"> <view class="item">
<view class="text" v-if='list.nurseItemName'>{{list.nurseItemName}} <view class="text" v-if='list.nurseItemName'>{{list.nurseItemName}}

View File

@ -9,26 +9,24 @@
</swiper-item> </swiper-item>
</swiper> --> </swiper> -->
<view class="container"> <view class="container">
<view> <swiper :indicator-dots="true" :current="currentIndex" previous-margin="55rpx" next-margin="55rpx"
<swiper :indicator-dots="true" :current="currentIndex" :circular="true" previous-margin="55rpx" :autoplay="autoplay" :interval="3000" :duration="1000" class="swiper-block" :circular='true'
next-margin="55rpx" :autoplay="autoplay" interval="3000" duration="1000" show-center-play-btn="true" @change="swiperChange">
class="swiper-block" circular='true' @change="swiperChange"> <swiper-item v-for="(item ,index) in swiperImgUrls" :key="index" class="swiper-item">
<swiper-item v-for="(item ,index) in swiperImgUrls" :key="index" class="swiper-item"> <view v-show="!splits(item)" wx-if="{item}">
<view v-show="!splits(item)" wx-if="{item}"> <image v-if="item" :src="item" :class="['slide-image', currentIndex === index?'active':'']"
<image v-if="item" :src="item" :class="['slide-image', currentIndex === index?'active':'']" mode="aspectFill">
mode="aspectFill"> </image>
</image> </view>
</view> <view v-show="splits(item)" v-if="item">
<view v-show="splits(item)" v-if="item"> <video :id="'myVideo'+index" :autoplay="false" :src="item" controls show-fullscreen-btn
<video :id="'myVideo'+index" :autoplay="false" :src="item" controls show-fullscreen-btn object-fit="fill" @play="play" @pause="pause" @ended="ended" auto-pause-if-navigate
object-fit="fill" @play="play" @pause="pause" @ended="ended" auto-pause-if-navigate show-play-btn :enable-progress-gesture='true' :show-center-play-btn='true'
show-play-btn :enable-progress-gesture='true' :show-center-play-btn='true' enable-play-gesture auto-pause-if-open-native show-mute-btn :poster='poster'
enable-play-gesture auto-pause-if-open-native show-mute-btn :poster='poster' :class="['slide-image', currentIndex === index?'active':'']"></video>
:class="['slide-image', currentIndex === index?'active':'']"></video> </view>
</view> </swiper-item>
</swiper-item> </swiper>
</swiper>
</view>
</view> </view>
<view class="items"> <view class="items">
<view class="item" @tap="gosite"> <view class="item" @tap="gosite">
@ -108,7 +106,7 @@
}, },
methods: { methods: {
swiperChange(e) { swiperChange(e) {
this.currentIndex = event.detail.current this.currentIndex = e.detail.current
let { let {
current, current,
source source
@ -179,9 +177,6 @@
} }
}) })
}, },
swiperChange(event) {
this.currentIndex = event.detail.current
},
// //
godiseasemanagement() { godiseasemanagement() {
uni.navigateTo({ uni.navigateTo({

View File

@ -36,7 +36,8 @@
</view> </view>
<view class="item"> <view class="item">
<span>详细地址</span> <span>详细地址</span>
<u-input :clearable='false' v-model="query.address" type="text" placeholder='小区、单元、门牌号' /> <u-input :clearable='false' v-model="query.address" type="text" placeholder='小区、单元、门牌号'
maxlength='40' />
</view> </view>
<view class="item" @tap='getAddress()'> <view class="item" @tap='getAddress()'>
<span>所在位置</span> <span>所在位置</span>

View File

@ -1,87 +1,142 @@
<template> <template>
<view class="app"> <view class="app">
<view class="background"> <view class="background">
<image src="/static/poserhealth .png" mode=""></image> <!-- 轮播图 -->
<swiper :indicator-dots="false" indicator-color='#fff' indicator-active-color='#0086d6' :autoplay="autoplay"
:interval="2000" :duration="1000" class="swiper-box" :circular='true' @change="swiperChange">
<swiper-item v-for="(item ,index) in swiperImgUrls" :key="index">
<view class="swiper-item" v-show="!splits(item)" wx-if="{item}">
<image v-if="item" :src="item" mode="widthFix"></image>
</view>
<view class="swiper-item" v-show="splits(item)" v-if="item">
<video :id="'myVideo'+index" :autoplay="false" :src="item" controls show-fullscreen-btn
object-fit="fill" @play="play" @pause="pause" @ended="ended" auto-pause-if-navigate
show-play-btn :enable-progress-gesture='true' :show-center-play-btn='true'
enable-play-gesture auto-pause-if-open-native show-mute-btn></video>
</view>
</swiper-item>
</swiper>
</view> </view>
<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">
<view class="lefttabbarlist"> <view class="lefttabbarlist">
<view class="item" @tap='tapscroll()'> <view v-for="(item,index) in hospitalDepartmentList" :key="index"
<view :class="tabIndex==index?'actives':'active'"> :class="tabIndex==index?'actives':'active'" @tap='taptabindex(item,index)'>
内科 {{item.hospitalName}}
</view>
<view :class="tabIndex==index?'actives':'active'">
神经内科
</view>
<view :class="tabIndex==index?'actives':'active'">
皮肤科
</view>
</view> </view>
</view> </view>
</view> </view>
<view class="righttabbar"> <view class="righttabbar">
<view class="content"> <view class="productlist">
<view class="hospitalimage"> <view class="content" v-for="(item,index) in HospitalPersonlist" :key="item.id">
<image src="/static/header .png" mode=""></image> <image class="hospitalimage" src="/static/header .png" mode=""></image>
</view> <view class="hospitalteacher">{{item.personName}}</view>
<view class="physicianinformation"> <view class="physician">
<view class="hospitalteacher">某某某</view> {{ item.academicTitle=='CHIEF_PHYSICIAN'?'主任医师':''}}
<view class="physician">主任医师</view> {{ item.academicTitle=='DEPUTY_CHIEF_PHYSICIAN'?'副主任医师':''}}
<view class="words"> {{ item.academicTitle=='ATTENDING_DOCTOR'?'主治医师':''}}
熟悉呼吸系统疾病的诊治尤其擅 {{ item.academicTitle=='PHYSICIAN'?'医师':''}}
长肺栓塞肺动脉高压和慢性气道疾 {{ item.academicTitle=='HEALER'?'医士':''}}
病的研究 </view>
<view class="words">{{item.personIntroduce}}
</view> </view>
<view class="appointment" @tap="goappointment"> <view class="appointment" @tap="goappointment">
预约 预约
</view> </view>
</view> </view>
</view> </view>
<view class="content">
<view class="hospitalimage">
<image src="/static/header .png" mode=""></image>
</view>
<view class="physicianinformation">
<view class="hospitalteacher">某某某</view>
<view class="physician">主任医师</view>
<view class="words">
熟悉呼吸系统疾病的诊治尤其擅
长肺栓塞肺动脉高压和慢性气道疾
病的研究
</view>
<view class="appointment">
预约
</view>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
</template> </template>
<script> <script>
import {
selectDepartment,
selectHospitalPerson
} from '@/api/medicine/index.js'
import baseurl from '../../api/baseurl';
export default { export default {
data() { data() {
return { return {
swiperImgUrls: [],
autoplay: true, //
hospitalDepartmentList: [], //
HospitalPersonlist: [], //
tabIndex: 0, tabIndex: 0,
departmentId: null, //id
}; };
}, },
methods: { methods: {
goappointment(){ //
uni.navigateTo({ selectHospitalPersonInfo() {
url: '/pages/Informationconfirmation/Informationconfirmation' selectHospitalPerson(this.departmentId).then(res => {
}) this.HospitalPersonlist = res.rows
}, })
},
//tap
taptabindex(item, index) {
this.tabIndex = index
if (this.departmentId != item.id) {
this.departmentId = item.id
this.selectHospitalPersonInfo();
}
},
//
selectDepartmentinfo() {
selectDepartment().then(res => {
this.hospitalDepartmentList = res.data.hospitalDepartmentList
res.data.poserInfoList.forEach(e => {
e.image = baseurl + e.posterPictureUrl
this.swiperImgUrls.push(e.image)
})
this.departmentId = this.hospitalDepartmentList[0].id
this.selectHospitalPersonInfo();
})
},
swiperChange(e) {
this.currentIndex = e.detail.current
let {
current,
source
} = e.detail
this.videoContext = uni.createVideoContext('myVideo' + (current - 1));
//
if (source === 'touch') {
this.videoContext.pause(); //
this.autoplay = true
}
},
//
GetBanner() {},
// banner
splits(url) {
if (url.indexOf('.') != -1) {
var ext = url.substring(url.lastIndexOf('.') + 1);
return ['mp4', 'webm', 'mpeg4', 'ogg'].indexOf(ext) != -1
}
},
// /
play() {
this.autoplay = false
// this.videoContext.requestFullScreen()
},
//
pause() {
this.autoplay = true
},
//
ended() {
this.autoplay = true
},
goappointment() {
uni.navigateTo({
url: '/pages/Informationconfirmation/Informationconfirmation'
})
},
// //
godoctorslist() { godoctorslist() {
// uni.navigateTo({ // uni.navigateTo({
@ -89,6 +144,10 @@ goappointment(){
// }) // })
}, },
}, },
onLoad() {
this.baseurl = baseurl
this.selectDepartmentinfo()
},
//1. //1.
onShareAppMessage(res) { onShareAppMessage(res) {
let pages = getCurrentPages(); let pages = getCurrentPages();
@ -113,17 +172,40 @@ goappointment(){
<style lang="scss"> <style lang="scss">
.app { .app {
padding: 0%; padding: 0%;
margin-top: 381rpx;
.background { .background {
image { position: fixed;
width: 100%; top: 0;
height: 381rpx; width: 100%;
height: 380rpx;
z-index: 999;
.swiper-box {
width: 100%;
height: 380rpx;
}
.swiper-item {
height: 380rpx;
text-align: center;
image {
width: 100%;
height: 380rpx !important;
z-index: 999;
}
}
video {
height: 100%;
width: 100%;
} }
} }
.hospital { .hospital {
width: 100%; width: 97%;
margin: 0 auto;
height: 100%; height: 100%;
background-color: #fff; background-color: #fff;
@ -132,13 +214,14 @@ goappointment(){
font-size: 35rpx; font-size: 35rpx;
line-height: 90rpx; line-height: 90rpx;
border-bottom: 1rpx solid #D8D4D4; border-bottom: 1rpx solid #D8D4D4;
width: 95%; width: 94%;
margin: 0 auto; margin: 0 auto;
font-weight: 600;
} }
.tabbar { .tabbar {
display: flex; display: flex;
height: 100vh; height: calc(100vh - 470rpx);
width: 100%; width: 100%;
@ -153,115 +236,108 @@ goappointment(){
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
height: 100%; height: 100%;
.item { .actives {
color: #000000; width: 80%;
height: 80rpx; color: red;
font-size: 34rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin: 0 auto;
line-height: 80rpx; line-height: 80rpx;
border-bottom: 1rpx solid #D8D4D4;
text-align: center; text-align: center;
font-size: 30rpx; font-size: 30rpx;
width: 100%; // border-radius: 25rpx 0 0 25rpx;
}
.actives {
color: red;
font-size: 34rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
background-color: #ffffff;
// border-radius: 25rpx 0 0 25rpx;
}
.active {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
border-bottom: 1rpx solid #D8D4D4;
width: 90%;
}
.active {
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
font-size: 30rpx;
white-space: nowrap;
border-bottom: 1rpx solid #D8D4D4;
width: 80%;
margin: 0 auto;
line-height: 80rpx;
} }
} }
} }
.righttabbar { .righttabbar {
width: 70%; width: 70%;
height: 100%; height: 100%;
.content {
position: relative; .productlist {
height: 400rpx; padding-bottom: 40rpx;
overflow: scroll;
border-bottom: 1rpx solid #D8D4D4; -webkit-overflow-scrolling: touch;
.hospitalimage { width: 100%;
position: absolute; height: 100%;
width: 190rpx; margin: 0 auto;
height: 200rpx; border-radius: 25rpx;
padding: 3%; display: flex;
flex-wrap: wrap;
image { justify-content: space-evenly;
// line-height: 20rpx; background-color: #ffffff;
width: 109rpx;
height: 111rpx; .content {
} position: relative;
} width: 100%;
height: 450rpx;
.physicianinformation { border-bottom: 1rpx solid #D8D4D4;
position: absolute;
width: 90%; .hospitalimage {
// background-color: #F44B2F; position: absolute;
height: 100rpx; width: 109rpx;
left: 27%; height: 111rpx;
top: 5%; top: 50rpx;
left: 30rpx;
.hospitalteacher { }
font-size: 36rpx;
} .hospitalteacher {
font-size: 36rpx;
.physician { position: absolute;
// margin-top: 3%; top: 60rpx;
font-size: 30rpx; left: 160rpx;
color: #666666; }
} .physician {
font-size: 24rpx;
.words { color: #666666;
position: absolute; position: absolute;
// margin: 20px auto; top: 120rpx;
left: -25%; left: 160rpx;
width: 100%;
top: 150rpx; }
text-indent: 2em;
font-size: 30rpx; .words {
color: #000000; position: absolute;
line-height: 55rpx; left: 41rpx;
} width: 85%;
top: 190rpx;
.appointment { text-indent: 2em;
position: absolute; font-size: 30rpx;
left: 50%; line-height: 55rpx;
top: 300rpx; }
width: 125rpx;
height: 52rpx; .appointment {
background: #F44B2F; position: absolute;
border-radius: 26rpx; bottom: 25rpx;
color: #fff; right: 30rpx;
line-height: 52rpx; width: 125rpx;
text-align: center; height: 52rpx;
background: #F44B2F;
border-radius: 26rpx;
} color: #fff;
} line-height: 52rpx;
text-align: center;
} }
} }
} }
} }
}
}
} }
</style> </style>

View File

@ -1,5 +1,5 @@
.app{ .app{
padding:10rpx 0 0 0; padding:0 0 0 0;
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
} }
.swiper-box { .swiper-box {

View File

@ -1,25 +1,20 @@
<template> <template>
<view class="app"> <view class="app">
<view class="container"> <!-- 轮播图 -->
<view> <swiper :indicator-dots="true" indicator-color='#fff' indicator-active-color='#0086d6' :autoplay="autoplay"
<!-- 轮播图 --> :interval="2000" :duration="1000" class="swiper-box" :circular='true' @change="swiperChange">
<swiper indicator-dots="true" indicator-color='#fff' indicator-active-color='#0086d6' <swiper-item v-for="(item ,index) in Banners" :key="index">
:autoplay="autoplay" interval="2000" duration="1000" show-center-play-btn="true" class="swiper-box" <view class="swiper-item" v-show="!splits(item)" wx-if="{item}">
circular='true' @change="swiperChange"> <image v-if="item" :src="item" mode="widthFix"></image>
<swiper-item v-for="(item ,index) in Banners" :key="index"> </view>
<view class="swiper-item" v-show="!splits(item)" wx-if="{item}"> <view class="swiper-item" v-show="splits(item)" v-if="item">
<image v-if="item" :src="item" mode="widthFix"></image> <video :id="'myVideo'+index" :autoplay="false" :src="item" controls show-fullscreen-btn
</view> object-fit="fill" @play="play" @pause="pause" @ended="ended" auto-pause-if-navigate
<view class="swiper-item" v-show="splits(item)" v-if="item"> show-play-btn :enable-progress-gesture='true' :show-center-play-btn='true' enable-play-gesture
<video :id="'myVideo'+index" :autoplay="false" :src="item" controls show-fullscreen-btn auto-pause-if-open-native show-mute-btn></video>
object-fit="fill" @play="play" @pause="pause" @ended="ended" auto-pause-if-navigate </view>
show-play-btn :enable-progress-gesture='true' :show-center-play-btn='true' </swiper-item>
enable-play-gesture auto-pause-if-open-native show-mute-btn></video> </swiper>
</view>
</swiper-item>
</swiper>
</view>
</view>
<!-- <swiper class="swiper" circular> <!-- <swiper class="swiper" circular>
<swiper-item> <swiper-item>
<view class="swiper-item ">A</view> <view class="swiper-item ">A</view>