You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

233 lines
4.9 KiB

1 year ago
<template>
<view class="page">
<image class="bkg" :src="info.cover?info.cover.url:''"></image>
<view class="cotainer">
<view class="hospital">
<view class="title">{{ info.name }}</view>
<view class="tag">
<view class="tag__item" v-if="info.level">{{ info.level }}</view>
<view class="tag__item" v-if="info.type">{{ info.type }}</view>
</view>
<view class="description"> 对接科室{{info.serve_hospital_department_count}}
累计咨询量{{info.serve_hospital_forms_count}} </view>
</view>
<view class="department">
<view class="title">选择科室</view>
<view class="department-list">
<view class="department-list-item" :class="department_id==item.id?'department-list-active':''"
@click="clickDepartment(item)" v-for="item in info.serve_hospital_department">
<view class="title">
{{item.name}}
</view>
<view class="description">
累计咨询数量{{item.serve_hospital_forms_count}}
</view>
</view>
</view>
</view>
<u-button ripple shape="circle" :custom-style="orderBtnStyle" :throttle-time="2000"
@click="goSubmit">下一步</u-button>
</view>
</view>
</template>
<script>
export default {
data() {
return {
orderBtnStyle: {
'background-image': 'linear-gradient(-90deg, #e26165 0%, #c10d12 94%, #c10d12 100%)',
'font-weight': '500',
'font-size': '27rpx',
'color': '#fff',
'width': '440rpx',
'height': '80rpx',
'line-height': '80rpx'
},
id: '',
info: {},
department_id: '',
department_name: ''
};
},
mounted() {
// if (this.$store.state.vuex_location !== 2) {
// this.$store.dispatch('getLocation')
// }
},
onLoad(options) {
this.id = options.id ? options.id : ''
this.getDetail()
},
methods: {
async getDetail() {
const res = await this.$u.api.serveHospitalDetail({
id: this.id
})
this.info = res
},
clickDepartment(item) {
this.department_id = item.id
this.department_name = item.name
},
goSubmit() {
if(!this.department_id){
uni.showToast({
title:'请先选择想要咨询的科室',
icon:'none',
})
return
}
this.$u.route({
url: '/package_sub/pages/ServeForm/ServeForm',
params: {
id: this.id,
department_id: this.department_id,
}
})
}
},
computed: {
token() {
return this.vuex_token || uni.getStorageSync('lifeData')?.vuex_token
}
}
}
</script>
<style lang="scss">
.page {
position: relative;
background-color: #f5efee;
height: 100vh;
padding-bottom: 80rpx;
}
.bkg {
height: 540rpx;
width: 100vw;
position: absolute;
}
.cotainer {
padding-top: 460rpx;
}
.hospital {
background-color: #fff;
border-radius: 10rpx;
filter: drop-shadow(2.192rpx 4.494rpx 5rpx rgba(33, 32, 32, 0.15));
// padding-top:460rpx;
padding: 40rpx;
margin: 25rpx;
margin-top: 0;
.title {
font-size: 28rpx;
color: #000000;
font-weight: bold;
}
.tag {
margin-top: 16rpx;
display: flex;
flex-wrap: wrap;
&__item {
padding: 5rpx 16rpx;
font-size: 22rpx;
line-height: 31rpx;
font-weight: 500;
&:nth-child(1) {
color: #ca2328;
background-color: #faefef;
}
&:nth-child(2) {
color: #f38628;
background-color: #fcf3e9;
}
}
.tag__item+.tag__item {
margin-left: 12rpx;
}
}
.description {
// max-width: 350rpx;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 22rpx;
color: #929196;
font-weight: 500;
margin-top: 16rpx;
}
}
.department {
background-color: #fff;
border-radius: 10rpx;
filter: drop-shadow(2.192rpx 4.494rpx 5rpx rgba(33, 32, 32, 0.15));
// padding-top:460rpx;
padding: 30rpx 40rpx;
margin: 25rpx;
margin-top: 0;
margin-bottom: 50rpx;
.title {
font-size: 28rpx;
color: #000000;
font-weight: bold;
margin-bottom: 30rpx;
}
.description {
// max-width: 350rpx;
width: 100%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 22rpx;
color: #929196;
font-weight: 500;
}
&-list {
display: flex;
align-items: flex-start;
justify-content: space-between;
flex-wrap: wrap;
&-item {
width: calc(50% - 15rpx);
padding: 30rpx;
padding-right: 10rpx;
border: 2rpx solid rgba(33, 32, 32, 0.15);
border-radius: 10rpx;
margin-bottom: 30rpx;
.title {
margin-bottom: 25rpx;
}
}
&-active {
border: 2rpx solid transparent;
background-image: url(@/package_sub/static/ServeHospital/active.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
}
}
</style>