Merge remote-tracking branch 'origin/dev'

# Conflicts:
#	pages/nursestation/nursestation.scss
This commit is contained in:
纪寒 2023-03-09 15:53:41 +08:00
commit 5475f5a2e8
14 changed files with 743 additions and 151 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

@ -17,21 +17,30 @@
"navigationBarTitleText": "",
"navigationStyle": "custom"
}
}, {
"path": "pages/orderDetails/orderDetails",
},{
"path": "pages/medicine/medicine",
"style": {
"navigationBarTitleText": "订单详情",
"navigationBarTitleText": "健康咨询",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff",
"enablePullDownRefresh": false
"disableScroll": true
}
}, {
},{
"path": "pages/integral/integral",
"style": {
"navigationBarTitleText": "积分",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff"
}
}, {
},{
"path" : "pages/Informationconfirmation/Informationconfirmation",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationBarTitleText": "预约时间"
}
},{
"path": "pages/information/information",
"style": {
"navigationBarTitleText": "完善个人信息",
@ -146,6 +155,14 @@
"enablePullDownRefresh": true //true
}
},
{
"path": "pages/orderDetails/orderDetails",
"style": {
"navigationBarTitleText": "订单详情",
"navigationBarBackgroundColor": "#ffffff",
"enablePullDownRefresh": false
}
},
{
"path": "pages/payorderDetails/payorderDetails",
"style": {
@ -177,7 +194,6 @@
"navigationBarBackgroundColor": "#ffffff", //
"onReachBottomDistance": 40, // px
"enablePullDownRefresh": true //true
}
},
{
@ -237,7 +253,6 @@
"navigationBarTextStyle": "white"
}
},
{
"path": "pages/disease/disease",
"style": {
@ -282,14 +297,6 @@
"enablePullDownRefresh": true //true
}
},
{
"path": "pages/medicine/medicine",
"style": {
"navigationBarTitleText": "健康咨询",
"enablePullDownRefresh": false,
"navigationBarBackgroundColor": "#ffffff"
}
},
{
"path": "pages/diseasemanagement/diseasemanagement",
"style": {
@ -361,7 +368,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

@ -0,0 +1,311 @@
<template>
<view class="app">
<view class="user">
<view class="item">
<span>姓名</span>
<span class='addition'>111</span>
</view>
<view class="item">
<span>电话</span>
<span class='addition'>111</span>
</view>
<view class="addressitem">
<view class="leftaddress">地址</view>
<view class='addition'>111</view>
</view>
<view class="item" style="border: 0;">
<span>时间</span>
<span class='addition'>请选择</span>
</view>
<view class="worditem">
<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 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 class="remarks">
<span>咨询内容</span>
<input placeholder="请在此输入">
<!-- <input type="text" placeholder="请在此输入"> -->
</view>
<view class="bottomitem">
<span>298</span>
<view class="submit" @tap='show=true'>确认</view>
</view>
<!-- 弹框 -->
<view class="frame">
<u-popup v-model="show" mode="bottom" length="45%" border-radius="30">
<view class="payment">
<span>请选择支付方式</span>
<view class="cencel" @tap="show = false">
<image src="../../static/gb.png" mode=""></image>
</view>
</view>
<view class="chat">
<image src="/static/chat.png" mode=""></image>
<span>微信支付</span>
</view>
<view class="submits" @tap='buy'>
<span>确认支付</span><span>298</span>
</view>
</u-popup>
</view>
<u-toast ref="uToast" />
</view>
</template>
<script>
export default {
data() {
return {
show: false,
}
},
methods: {
}
}
</script>
<style lang="scss">
.app {
font-size: 34rpx;
padding-top: 10rpx;
height: 100%;
-webkit-overflow-scrolling: touch;
.determine {
height: 70rpx;
line-height: 70rpx;
font-size: 32rpx;
width: 50%;
color: #F4F5F7;
background: #4C7BC9;
position: absolute;
bottom: 0;
left: 0;
}
.user {
background: #FFFFFF;
width: 94%;
height: 600rpx;
margin: 10rpx auto;
box-shadow: 0rpx 9rpx 31rpx 9rpx rgba(0, 0, 0, 0.03);
border-radius: 20rpx;
line-height: 93rpx;
.addressitem {
width: 97%;
border-bottom: 1rpx solid #D8D4D4;
margin-left: 3%;
// height: 100%;
.leftaddress {
width: 15%;
height: 100%;
display: flex;
display: inline-block;
}
.addition {
color: #666666;
display: inline-block;
line-height: 50rpx;
font-size: 28rpx;
}
}
.item {
width: 97%;
border-bottom: 1rpx solid #D8D4D4;
margin-left: 3%;
.addition {
color: #666666;
line-height: 30rpx;
font-size: 28rpx;
}
}
.worditem {
display: flex;
justify-content: space-around;
.today {
width: 147rpx;
height: 90rpx;
text-align: center;
font-size: 26rpx;
background: #FEF9F8;
border: 1rpx solid #F44B2F;
border-radius: 5rpx;
.time {
font-size: 26rpx;
display: block;
line-height: 55rpx;
}
.todaytime {
font-size: 26rpx;
display: block;
height: 30rpx;
line-height: 55rpx;
}
}
}
}
.remarks {
width: 94%;
margin: 10rpx auto;
font-size: 34rpx;
height: 440rpx;
background: #FFFFFF;
border-radius: 20rpx;
position: relative;
padding: 3%;
input {
position: absolute;
top: 25%;
width: 77%;
transform: translateY(-50%);
}
}
.bottomitem {
width: 750rpx;
height: 132rpx;
background: #FFFFFF;
bottom: 0%;
position: fixed;
padding: 5%;
span {
// margin-left: 3%;
// margin-top: 3%;
font-size: 48rpx;
color: #F44B2F;
// line-height: 75rpx;
}
.submit {
width: 186rpx;
height: 61rpx;
background: #F44B2F;
color: #FFFFFF;
border-radius: 30rpx;
line-height: 61rpx;
text-align: center;
font-size: 32rpx;
float: right;
}
}
//
.payment {
width: 390px;
height: 130rpx;
font-size: 42rpx;
color: #000000;
line-height: 130rpx;
text-align: center;
// margin: 0 auto;
border-bottom: 1rpx solid #D8D4D4;
display: flex;
span {
margin-left: 30%;
}
.cencel {
margin-left: 20%;
image {
width: 31rpx;
height: 31rpx;
}
}
}
.chat {
span {
display: block;
height: 68rpx;
font-size: 42rpx;
color: #000000;
line-height: 68rpx;
margin-left: 25%;
margin-top: -10%;
}
image {
width: 79rpx;
height: 69rpx;
margin-top: 7%;
padding-left: 10%;
}
}
.submits {
background: #F44B2F;
width: 501rpx;
height: 71rpx;
line-height: 71rpx;
// background: #4C7BC9;
border-radius: 36rpx;
font-size: 34rpx;
color: #FFFFFF;
text-align: center;
margin: 0 auto;
margin-top: 25%;
}
}
</style>

View File

@ -1,11 +1,8 @@
<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 :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>
@ -13,13 +10,11 @@
<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>
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>
<!-- <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

@ -127,11 +127,9 @@
methods: {
// touch
start(e) { //@touchstart
console.log(e)
this.startData.pageY = e.changedTouches[0].pageY; //Y
},
end(e) { //@touchend
console.log(this.startData.pageY - this.touch.pageY)
if ((this.startData.pageY - this.touch.pageY) > 200) { //
if (this.goodsList.length >= this.total) {} else {
this.pageNum++;

View File

@ -9,10 +9,9 @@
</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 :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':'']"
@ -29,7 +28,6 @@
</swiper-item>
</swiper>
</view>
</view>
<view class="items">
<view class="item" @tap="gosite">
<image src="../../static/hlz.png" mode=""></image>
@ -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

@ -0,0 +1,169 @@
.app{
padding: 0%;
margin-top: 381rpx;
.swiper {
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: 97%;
margin: 0 auto;
height: 100%;
background-color: #fff;
.appointmenthospital {
height: 90rpx;
font-size: 35rpx;
line-height: 90rpx;
border-bottom: 1rpx solid #D8D4D4;
width: 94%;
margin: 0 auto;
font-weight: 600;
}
.tabbar {
display: flex;
height: calc(100vh - 470rpx);
width: 100%;
.lefttabbar {
width: 30%;
// display: inline-block;
height: 100%;
padding-top: 20rpx;
.lefttabbarlist {
overflow: scroll;
-webkit-overflow-scrolling: touch;
height: 100%;
.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;
// 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%;
.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;
}
}
}
}
}
}
}

View File

@ -3,7 +3,6 @@
<view class="concent">
<view class="background">
<image src="/static/logo.png" mode=""></image>
<view>
<view class="detailed">
<view>
互联网+医疗健康高速发展的当下以远程诊疗大数据人工智能为代表的新技术应用越来越多的应用在医疗健康服务当中依托三甲专家团队赋能基层医疗打造的全闭环商业模式实现物联网化医生联合体布局提供数字化远程医疗解决方案提升基层医疗水平提高医疗效率降低看病成本
@ -12,16 +11,142 @@
</view>
</view>
</view>
<!-- <view class="swiper">
<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 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="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>
</view>
</view> -->
</view>
</template>
<script>
import {
selectDepartment,
selectHospitalPerson
} from '@/api/medicine/index.js'
import baseurl from '../../api/baseurl';
export default {
data() {
return {};
return {
swiperImgUrls: [],
autoplay: true, //
hospitalDepartmentList: [], //
HospitalPersonlist: [], //
tabIndex: 0,
departmentId: null, //id
};
},
methods: {
//
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({
@ -29,6 +154,10 @@
// })
},
},
onLoad() {
this.baseurl = baseurl
// this.selectDepartmentinfo()
},
//1.
onShareAppMessage(res) {
let pages = getCurrentPages();
@ -51,19 +180,7 @@
</script>
<style lang="scss">
.app {
.cards {
padding: 40rpx 0 500rpx 0;
.item {
image {
width: 80rpx;
height: 80rpx;
}
}
}
// @import "./medicine.scss";
.concent {
width: 701rpx;
height: 100%;
@ -82,16 +199,6 @@
background-color: white;
margin: 0 auto;
image {
width: 178rpx;
height: 160rpx;
background: #FFFFFF;
border-radius: 25px;
margin-left: 68%;
}
}
}
.detailed {
width: 657rpx;
height: 100%;
@ -102,5 +209,14 @@
.detailed view {
text-indent: 2em;
}
image {
width: 178rpx;
height: 160rpx;
background: #FFFFFF;
border-radius: 25px;
margin-left: 68%;
}
}
}
</style>

View File

@ -1,5 +1,5 @@
.app{
padding: 0;
padding:0 0 0 0;
-webkit-overflow-scrolling: touch;
}
.swiper-box {
@ -116,15 +116,6 @@
// top:35%;
// left:35%;
// }
.advanceAppointDuration{
position: absolute;
top:10%;
right:10rpx;
width: 20%;
text-align: right;
font-size: 32rpx;
color: #666;
}
.appointment {
font-size: 30rpx;
width: 120rpx;
@ -162,7 +153,6 @@
top:53%;
left:35%;
width: 65%;
color: #666;
}
.huanyao {
position: absolute;

View File

@ -1,11 +1,8 @@
<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 :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>
@ -13,13 +10,11 @@
<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>
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 class="swiper" circular>
<swiper-item>
<view class="swiper-item ">A</view>

BIN
static/header .png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
static/poserhealth .png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB