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

View File

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

View File

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

View File

@ -1,25 +1,20 @@
<template>
<view class="app">
<view class="container">
<view>
<!-- 轮播图 -->
<swiper indicator-dots="true" indicator-color='#fff' indicator-active-color='#0086d6'
:autoplay="autoplay" interval="3000" duration="1500" show-center-play-btn="true" class="swiper-box"
circular='true' @change="swiperChange">
<swiper-item v-for="(item ,index) in lbinfo" :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>
<!-- 轮播图 -->
<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-item v-for="(item ,index) in lbinfo" :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>
<!-- <u-swiper v-if="lbinfo" :list="lbinfo" height="350" style='background-size: 100%;' mode='none'></u-swiper> -->
<view class="item">
<view class="text" v-if='list.nurseItemName'>{{list.nurseItemName}}

View File

@ -9,26 +9,24 @@
</swiper-item>
</swiper> -->
<view class="container">
<view>
<swiper :indicator-dots="true" :current="currentIndex" :circular="true" previous-margin="55rpx"
next-margin="55rpx" :autoplay="autoplay" interval="3000" duration="1000" show-center-play-btn="true"
class="swiper-block" circular='true' @change="swiperChange">
<swiper-item v-for="(item ,index) in swiperImgUrls" :key="index" class="swiper-item">
<view v-show="!splits(item)" wx-if="{item}">
<image v-if="item" :src="item" :class="['slide-image', currentIndex === index?'active':'']"
mode="aspectFill">
</image>
</view>
<view 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 :poster='poster'
:class="['slide-image', currentIndex === index?'active':'']"></video>
</view>
</swiper-item>
</swiper>
</view>
<swiper :indicator-dots="true" :current="currentIndex" previous-margin="55rpx" next-margin="55rpx"
:autoplay="autoplay" :interval="3000" :duration="1000" class="swiper-block" :circular='true'
@change="swiperChange">
<swiper-item v-for="(item ,index) in swiperImgUrls" :key="index" class="swiper-item">
<view v-show="!splits(item)" wx-if="{item}">
<image v-if="item" :src="item" :class="['slide-image', currentIndex === index?'active':'']"
mode="aspectFill">
</image>
</view>
<view 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 :poster='poster'
:class="['slide-image', currentIndex === index?'active':'']"></video>
</view>
</swiper-item>
</swiper>
</view>
<view class="items">
<view class="item" @tap="gosite">
@ -108,7 +106,7 @@
},
methods: {
swiperChange(e) {
this.currentIndex = event.detail.current
this.currentIndex = e.detail.current
let {
current,
source
@ -179,9 +177,6 @@
}
})
},
swiperChange(event) {
this.currentIndex = event.detail.current
},
//
godiseasemanagement() {
uni.navigateTo({

View File

@ -36,7 +36,8 @@
</view>
<view class="item">
<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 class="item" @tap='getAddress()'>
<span>所在位置</span>

View File

@ -1,87 +1,142 @@
<template>
<view class="app">
<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 class="hospital">
<view class="appointmenthospital">预约医生</view>
<view class="tabbar">
<view class="lefttabbar">
<view class="lefttabbarlist">
<view class="item" @tap='tapscroll()'>
<view :class="tabIndex==index?'actives':'active'">
内科
</view>
<view :class="tabIndex==index?'actives':'active'">
神经内科
</view>
<view :class="tabIndex==index?'actives':'active'">
皮肤科
</view>
<view v-for="(item,index) in hospitalDepartmentList" :key="index"
:class="tabIndex==index?'actives':'active'" @tap='taptabindex(item,index)'>
{{item.hospitalName}}
</view>
</view>
</view>
<view class="righttabbar">
<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 class="productlist">
<view class="content" v-for="(item,index) in HospitalPersonlist" :key="item.id">
<image class="hospitalimage" src="/static/header .png" mode=""></image>
<view class="hospitalteacher">{{item.personName}}</view>
<view class="physician">
{{ item.academicTitle=='CHIEF_PHYSICIAN'?'主任医师':''}}
{{ item.academicTitle=='DEPUTY_CHIEF_PHYSICIAN'?'副主任医师':''}}
{{ item.academicTitle=='ATTENDING_DOCTOR'?'主治医师':''}}
{{ item.academicTitle=='PHYSICIAN'?'医师':''}}
{{ item.academicTitle=='HEALER'?'医士':''}}
</view>
<view class="words">{{item.personIntroduce}}
</view>
<view class="appointment" @tap="goappointment">
预约
</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>
</template>
<script>
import {
selectDepartment,
selectHospitalPerson
} from '@/api/medicine/index.js'
import baseurl from '../../api/baseurl';
export default {
data() {
return {
swiperImgUrls: [],
autoplay: true, //
hospitalDepartmentList: [], //
HospitalPersonlist: [], //
tabIndex: 0,
departmentId: null, //id
};
},
methods: {
goappointment(){
uni.navigateTo({
url: '/pages/Informationconfirmation/Informationconfirmation'
})
},
//
selectHospitalPersonInfo() {
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() {
// uni.navigateTo({
@ -89,6 +144,10 @@ goappointment(){
// })
},
},
onLoad() {
this.baseurl = baseurl
this.selectDepartmentinfo()
},
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
@ -113,17 +172,40 @@ goappointment(){
<style lang="scss">
.app {
padding: 0%;
margin-top: 381rpx;
.background {
image {
width: 100%;
height: 381rpx;
position: fixed;
top: 0;
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 {
width: 100%;
width: 97%;
margin: 0 auto;
height: 100%;
background-color: #fff;
@ -132,13 +214,14 @@ goappointment(){
font-size: 35rpx;
line-height: 90rpx;
border-bottom: 1rpx solid #D8D4D4;
width: 95%;
width: 94%;
margin: 0 auto;
font-weight: 600;
}
.tabbar {
display: flex;
height: 100vh;
height: calc(100vh - 470rpx);
width: 100%;
@ -153,115 +236,108 @@ goappointment(){
-webkit-overflow-scrolling: touch;
height: 100%;
.item {
color: #000000;
height: 80rpx;
.actives {
width: 80%;
color: red;
font-size: 34rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin: 0 auto;
line-height: 80rpx;
border-bottom: 1rpx solid #D8D4D4;
text-align: center;
font-size: 30rpx;
width: 100%;
.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%;
}
// border-radius: 25rpx 0 0 25rpx;
}
.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 {
width: 70%;
height: 100%;
.content {
position: relative;
height: 400rpx;
border-bottom: 1rpx solid #D8D4D4;
.hospitalimage {
position: absolute;
width: 190rpx;
height: 200rpx;
padding: 3%;
image {
// line-height: 20rpx;
width: 109rpx;
height: 111rpx;
}
}
.physicianinformation {
position: absolute;
width: 90%;
// background-color: #F44B2F;
height: 100rpx;
left: 27%;
top: 5%;
.hospitalteacher {
font-size: 36rpx;
}
.physician {
// margin-top: 3%;
font-size: 30rpx;
color: #666666;
}
.words {
position: absolute;
// margin: 20px auto;
left: -25%;
width: 100%;
top: 150rpx;
text-indent: 2em;
font-size: 30rpx;
color: #000000;
line-height: 55rpx;
}
.appointment {
position: absolute;
left: 50%;
top: 300rpx;
width: 125rpx;
height: 52rpx;
background: #F44B2F;
border-radius: 26rpx;
color: #fff;
line-height: 52rpx;
text-align: center;
}
}
.productlist {
padding-bottom: 40rpx;
overflow: scroll;
-webkit-overflow-scrolling: touch;
width: 100%;
height: 100%;
margin: 0 auto;
border-radius: 25rpx;
display: flex;
flex-wrap: wrap;
justify-content: space-evenly;
background-color: #ffffff;
.content {
position: relative;
width: 100%;
height: 450rpx;
border-bottom: 1rpx solid #D8D4D4;
.hospitalimage {
position: absolute;
width: 109rpx;
height: 111rpx;
top: 50rpx;
left: 30rpx;
}
.hospitalteacher {
font-size: 36rpx;
position: absolute;
top: 60rpx;
left: 160rpx;
}
.physician {
font-size: 24rpx;
color: #666666;
position: absolute;
top: 120rpx;
left: 160rpx;
}
.words {
position: absolute;
left: 41rpx;
width: 85%;
top: 190rpx;
text-indent: 2em;
font-size: 30rpx;
line-height: 55rpx;
}
.appointment {
position: absolute;
bottom: 25rpx;
right: 30rpx;
width: 125rpx;
height: 52rpx;
background: #F44B2F;
border-radius: 26rpx;
color: #fff;
line-height: 52rpx;
text-align: center;
}
}
}
}
}
}
}
</style>

View File

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

View File

@ -1,25 +1,20 @@
<template>
<view class="app">
<view class="container">
<view>
<!-- 轮播图 -->
<swiper indicator-dots="true" indicator-color='#fff' indicator-active-color='#0086d6'
:autoplay="autoplay" interval="2000" duration="1000" show-center-play-btn="true" class="swiper-box"
circular='true' @change="swiperChange">
<swiper-item v-for="(item ,index) in Banners" :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>
<!-- 轮播图 -->
<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-item v-for="(item ,index) in Banners" :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>
<!-- <swiper class="swiper" circular>
<swiper-item>
<view class="swiper-item ">A</view>