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.

238 lines
6.0 KiB

<template>
<view class='waiting-method-page'>
<visitor-list @clickEvent="getVisitorListData" @dataEvent="setVisitorListData" ref="visitors" :add="true"></visitor-list>
<view class="uni-card-wrapper" v-for="(item,key) in visitor_list" @click.stop="modifyVisitor" :data-item="item" v-if="pageShow">
<uni-card v-if="(visitor_id==0 || (visitor_id!=0 && visitor_id==item.id)) && pageShow" :title="item.name" :class="((visitor_list && item.h_list && item.h_list.length>0)?'':'empty')" margin="0 0 0rpx 0" shadow="none" :border="false" padding="24rpx">
<view class="visitor-account">
<VisitorAccount @closeEvent="closeCollapse" @getinfo="get_visitor_info" @changeOpen="changeOpenFun(key,key2)" :isOpen="item2.isOpen" :title="item2.hospital+' '+item2.depart" v-for="(item2,key2) in item.h_list" :visitorInfo="visitorInfo[item.id][item2.depart_id]" v-if="visitor_list && item.h_list && item.h_list.length>0" :depart_id="item2.depart_id" :visitor_id="item.id" :thumb="cssUrl+'hicon.svg'" :errmsg="(!item2.weeks ? (item2.days?(item2.days+'天未看病,请及时复诊'):'') : (' '+(item2.weeks<=10?item2.weeks:('超过10')))+'周未看病,请及时复诊')"/>
</view>
</uni-card>
</view>
<view class="bt btPadding"></view>
</view>
</template>
<script>
import visitorList from '@/components/visitorList.vue'
import visitorAccount from '@/components/visitorAccount.vue'
export default {
data() {
return {
cssUrl:this.cssUrl,
depart_id:0,
visitor_list:false,
visitor_id:0,
pageShow:false,
visitorInfo:[],
isOpen:false
}
},
components:{
visitorList,
visitorAccount
},
onShow() {
this.pageInit()
},
methods: {
changeOpenFun(key,key2){
this.visitor_list[key].h_list[key2].isOpen = !this.visitor_list[key].h_list[key2].isOpen
},
modifyVisitor(e) {
var visitor = e.currentTarget.dataset.item
uni.setStorageSync('visitor_info_'+visitor.id, JSON.stringify(visitor))
this.$func.toPage("/pages/modify_visitor/modify_visitor?type="+this.type+'&vid='+visitor.id)
},
stopModifyVisitor(e) {
},
closeCollapse() {
this.isOpen = false
},
pageInit() {
this.visitor_list = false
this.pageShow = false
this.$refs.visitors.getVisitors()
},
async setVisitorListData(e) {
this.visitor_list = e.map(item=>{
if(item.h_list && item.h_list.length > 0){
item.h_list.forEach((item1)=>{item1.isOpen = false})
}
return item
})
for(var key in this.visitor_list) {
var item = this.visitor_list[key]
this.visitorInfo[item.id] = new Array()
for(var key1 in item.h_list){
var item2 = item.h_list[key1]
this.visitorInfo[item.id][item2.depart_id] = false
var param = new Object()
param.visitor_id = item.id
param.depart_id = item2.depart_id
this.visitor_list[key].h_list[key1].isOpen = true
await this.get_visitor_info(param)
}
}
this.pageShow = true
},
getVisitorListData(visitor_id){
this.visitor_id = visitor_id
this.visitor_list = false
this.pageShow = false
this.$refs.visitors.getVisitors()
},
async get_visitor_info(param) {
var obj = new Object()
obj.depart_id = param.depart_id
obj.visitor_id = param.visitor_id
await this.$http.req('api/user/get_visitor_info', obj, 'POST').then(data=>{
if(data == 1) return
var visitorinfo = this.visitorInfo
visitorinfo[param.visitor_id][param.depart_id] = data
this.visitorInfo = visitorinfo
this.isOpen = true
});
}
}
}
</script>
<style lang="scss" scoped>
.waiting-method-page{
overflow: hidden;
.visitor-account{
margin-top: 28rpx;
}
.empty {
.visitor-account{
margin-top: 0rpx;
}
}
4 months ago
::v-deep {
.uni-card{
border-radius: 0;
padding: 34rpx 42rpx !important;
margin-bottom: 20rpx !important;
.uni-collapse-item__title-arrow{
margin-right: 0;
}
.uni-collapse-item{
background: #F9FAFB;
}
&.empty{
.uni-card__content{
display: none;
}
}
.uni-collapse-item__title-wrap{
width: calc(100% - 40rpx);
}
.uni-card__content{
padding: 0 !important;
background: white;
}
.uni-collapse-item__title{
background: #F9FAFB;
&.uni-collapse-item-border{
border: none;
}
}
.uni-collapse-item__title-img{
width: 32rpx;
height: 32rpx;
margin-right: 12rpx;
}
.uni-collapse-item__title-box{
padding: 0;
background: #F9FAFB;
height: 39rpx;
line-height: 39rpx;
color: #333333;
font-size: 28rpx;
letter-spacing: 2rpx;
font-weight: 600;
}
@supports (-webkit-touch-callout: none) {
.uni-collapse-item__title-box{
font-weight: 500;
}
}
.uni-card__header{
border: none;
padding: 0;
.uni-card__header-extra .uni-card__header-extra-text{
font-size: 24rpx;
font-weight: normal;
line-height: normal;
letter-spacing: 0.14rpx;
color: #949699;
}
.uni-card__header-content .uni-card__header-content-title{
font-weight: 600;
line-height: 42rpx;
font-size: 32rpx;
color: #333333;
&:before{
content: '';
display: inline-block;
width: 8rpx;
height: 34rpx;
z-index: 0;
border-radius: 10rpx;
background: #58CA7F;
position: relative;
top: 5rpx;
margin-right: 12rpx;
}
}
}
}
}
.h-name{
padding: 36rpx 24rpx;
box-sizing: border-box;
width: 100%;
height: 116rpx;
margin-bottom: 20rpx;
background: white;
display: flex;
align-items: center;
font-size: 32rpx;
color: #000000;
}
.title-wrap{
width: 100%;
height: 100rpx;
}
.submit{
position: fixed;
width: 100%;
top: 82.41%;
.submitbtn{
width: 666rpx;
margin: 0 auto;
}
.tip{
text-align: center;
font-size: 28rpx;
color: #B3B4BC;
margin-top: 33rpx;
}
}
}
</style>