NurseStationApp/pages/nursestation/nursestation.vue
2022-10-21 10:01:09 +08:00

393 lines
8.0 KiB
Vue

<template>
<view>
<view class="app">
<view class="righttext">
<image class="picture" src="../../static/mentoutu.png"></image>
<view class="title">
{{list.nurseStationName}}
</view>
<view class="address">{{list.address}} </view>
<view class="callme" @tap="gophone()">
<u-icon name="phone-fill" color="#ffffff" size="28"></u-icon>
联系我们
</view>
<view class="Navigation">
<image src="/static/daohang.png" mode="">导航</image>
</view>
</view>
<view class="detail">
<view class="Introduction">机构简介</view>
<view class="textInfo">
{{list.agencyIntroduce}}
</view>
</view>
<view class="Nursestationconfiguration">
<view class="configuration">
护理站配置
<view class="config" v-for="(item,index) in nurseStationLabelList" :key="index">
<view class="measure">
<text>{{item.labelDescription}}</text>
</view>
</view>
</view>
</view>
<view class="tive">
<view class="tab-box">
<view class="tab-item" @tap="testTabClick(index)" :class="tabIndex == index?'active':''"
v-for="(item,index) in tabList" :key="index">
{{item.name}}
</view>
</view>
<view class="item" v-for="(item,index) in servelist" :key="index" v-show='choicetab==false'>
<image src="../../static/fuwutu.png"></image>
<view class="huanyao">{{item.nurseItemName}}
<view class="pingfen">
<u-rate :count="5" value="2"></u-rate>
</view>
</view>
<view class="servicetime">服务时长:{{item.serveDurationUnit}}</view>
<view class="appointment" @tap='goappointments(item)'>预约</view>
<view class="price">¥{{item.price}}</view>
</view>
<view class="item" v-show='choicetab' v-for="(item,index) in productlist" :key="index">
<view>
<image src="../../static/fuwutu.png"></image>
</view>
<view class="product">{{item.goodsName}}</view>
<view class="appointment">购买</view>
</view>
</view>
</view>
</view>
</template>
<script>
import {
introductionList,
itemList,
productInformation,
} from '@/api/nursestation/nursestation.js';
import baseurl from '@/api/baseurl.js'
export default {
data() {
return {
choicetab: false, //切换
list: [],
servelist: [], //服务项目
productlist: [], //产品
stationid: '', //护理站id
nurseStationId: 2,
nurseStationLabelList: [], //护理站配置
nearbyNursingStationItemList: [],
patientId: 46,
pageNum: 1,
stationId: 2,
stationItemId: 2,
stationItemPriceId: 3,
pageSize: 10,
tabIndex: 0,
tabList: [{
name: "服务项目"
}, {
name: "产品"
}, ]
}
},
onLoad() {
this.getInfo(),
this.serveinfo(),
this.productinfo()
},
methods: {
//
goappointments(item) {
uni.navigateTo({
url: `/pages/appointmenttime/appointmenttime?stationId=${item.stationId}&stationItemId=${item.stationItemId}&stationItemPriceId=${item.stationItemPriceId}`,
})
},
getInfo() {
introductionList(this.nurseStationId).then(res => {
this.list = res[0]
this.nurseStationLabelList = res[0].nurseStationLabelList
// this.nearbyNursingStationItemList = res[0].nearbyNursingStationItemList
console.log(this.nurseStationLabelList);
})
},
serveinfo() {
itemList(this.nurseStationId, this.pageSize, this.pageNum).then(res => {
this.servelist = res.rows
console.log(this.servelist)
})
},
productinfo() {
productInformation(this.nurseStationId, this.pageNum, this.pageSize).then(res => {
this.productlist = res.rows
console.log(this.productlist)
})
},
testTabClick(index) {
console.log(index)
this.tabIndex = index
this.choicetab = !this.choicetab
}
},
gophone() {
var that = this
uni.getSystemInfo({
success: function(res) {
// console.log(res)
if (res.platform == 'ios') {
uni.makePhoneCall({
phoneNumber: that.list.phone //仅为示例
});
} else {
uni.showActionSheet({
itemList: ['呼叫', ],
success: function(res) {
if (res.tapIndex + 1 == 1) {
uni.makePhoneCall({
phoneNumber: that.list.phone //仅为示例
});
}
console.log('选中了第' + (res.tapIndex + 1) + '个按钮');
},
fail: function(res) {
// console.log(res.errMsg);
}
});
}
}
});
},
}
</script>
<style lang="scss" scoped>
//全局
.app {
font-size: 36rpx;
padding-top: 10rpx;
.tive {
width: 94%;
background-color: #ffffff;
margin: 0 auto;
margin-top: 3%;
border-radius: 11px;
.item {
width: 99%;
height: 184rpx;
image {
width: 170rpx;
height: 170rpx;
margin-left: 3%;
}
.servicetime {
color: #999999;
line-height: 37rpx;
margin-left: 35%;
}
.appointment {
width: 125rpx;
height: 71rpx;
background: #4C7BC9;
border-radius: 26rpx;
float: right;
margin-top: -5%;
color: #ffffff;
text-align: center;
line-height: 71rpx;
}
.price {
color: red;
font-size: 32rpx;
margin-top: 3%;
margin-left: 35%;
}
.product {
margin-top: -26%;
margin-left: 28%;
}
.huanyao {
margin-left: 35%;
margin-top: -24%;
color: #000000;
.pingfen {
float: right;
}
}
}
.tab-box {
display: flex;
.tab-item {
flex-shrink: 0;
padding: 3%;
position: relative;
transition: all 0.2s linear;
font-size: 31rpx;
&::after {
transition: all 0.2s linear;
transform: translateX(-50%) scaleX(0);
content: '';
width: 50%;
position: absolute;
left: 50%;
bottom: 20rpx;
border-bottom: 6rpx solid #D43953;
border-radius: 4rpx;
}
&.active {
&::after {
content: '';
width: 50%;
position: absolute;
left: 50%;
transform: translateX(-50%) scaleX(1);
bottom: 20rpx;
border-bottom: 6rpx solid red;
}
}
}
}
}
.Nursestationconfiguration {
width: 94%;
height: 184rpx;
background: #FFFFFF;
border-radius: 20rpx;
margin: 0 auto;
.configuration {
font-size: 31rpx;
color: #333333;
line-height: 12rpx;
padding: 6%;
margin-left: -3%;
margin-top: 3%;
.config {
display: flex;
.measure {
background: #F6F6F6;
border-radius: 33rpx;
text-align: center;
line-height: 67rpx;
display: inline-block;
margin-left: 5%;
}
}
}
}
.detail {
position: relative;
width: 94%;
height: 443rpx;
margin: 0 auto;
background: #FFFFFF;
border-radius: 20rpx;
margin-top: 3%;
font-size: 31rpx;
padding: 3%;
.textInfo {
font-size: 29rpx;
text-indent: 2rem;
line-height: 42rpx;
color: #666666;
}
.Introduction {
font-size: 31rpx;
color: #333333;
line-height: 12rpx;
margin-left: -3%;
padding: 3%;
}
}
.righttext {
position: relative;
width: 94%;
height: 252rpx;
background-color: #ffffff;
border-radius: 20rpx;
margin: 10px auto;
.picture {
position: absolute;
width: 170rpx;
height: 170rpx;
margin-left: 5%;
margin-top: 5%;
}
.Navigation {
width: 103rpx;
height: 48rpx;
background: #00C176;
border-radius: 24px;
font-size: 21rpx;
color: #ffffff;
line-height: 48rpx;
margin-left: 60%;
text-align: center;
margin-top: -6%;
image {
width: 24rpx;
height: 24rpx;
}
}
.callme {
width: 149rpx;
height: 48rpx;
background: #D43953;
border-radius: 24px;
font-size: 21rpx;
color: #ffffff;
line-height: 48rpx;
margin-left: 35%;
margin-top: 3%;
text-align: center;
}
.title {
margin-left: 35%;
line-height: 49px;
font-size: 33rpx;
}
.address {
font-size: 25rpx;
margin-left: 35%;
color: #999999;
line-height: 37rpx;
}
}
}
</style>