39 changed files with 2774 additions and 71 deletions
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
"component": true, |
||||||
|
"usingComponents": { |
||||||
|
"doctorAvatar": "/components/doctorAvatar/index", |
||||||
|
"van-icon": "@vant/weapp/icon/index" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,364 @@ |
|||||||
|
.page { |
||||||
|
padding: 36rpx 32rpx 200rpx; |
||||||
|
.user { |
||||||
|
display: flex; |
||||||
|
gap: 24rpx; |
||||||
|
align-items: center; |
||||||
|
.avatar { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 112rpx; |
||||||
|
height: 112rpx; |
||||||
|
} |
||||||
|
.wrap { |
||||||
|
.w-header { |
||||||
|
display: flex; |
||||||
|
flex-wrap: wrap; |
||||||
|
align-items: baseline; |
||||||
|
gap: 16rpx; |
||||||
|
.name { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.desc { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.w-footer { |
||||||
|
margin-top: 24rpx; |
||||||
|
.hostipal { |
||||||
|
margin-right: 12rpx; |
||||||
|
display: inline; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
.tag { |
||||||
|
margin-right: 12rpx; |
||||||
|
display: inline-block; |
||||||
|
padding: 0 8rpx; |
||||||
|
border-radius: 4rpx; |
||||||
|
background-color: rgba(0, 180, 197, 1); |
||||||
|
font-size: 24rpx; |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
.site { |
||||||
|
display: inline-block; |
||||||
|
padding: 0 8rpx; |
||||||
|
font-size: 24rpx; |
||||||
|
line-height: 32rpx; |
||||||
|
color: rgba(148, 87, 30, 1); |
||||||
|
border-radius: 4rpx; |
||||||
|
background-color: rgba(250, 229, 206, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.banner { |
||||||
|
margin-top: 32rpx; |
||||||
|
.title { |
||||||
|
position: relative; |
||||||
|
z-index: 1; |
||||||
|
padding: 22rpx 30rpx 18rpx; |
||||||
|
width: 262rpx; |
||||||
|
height: 116rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
font-weight: bold; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
line-height: 1; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
.bg { |
||||||
|
padding-top: 40rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: rgba(250, 229, 206, 1); |
||||||
|
margin-top: -95rpx; |
||||||
|
.b-container { |
||||||
|
position: relative; |
||||||
|
z-index: 2; |
||||||
|
border: 1px solid #ffffff; |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.item { |
||||||
|
padding: 32rpx 0; |
||||||
|
flex: 1; |
||||||
|
text-align: center; |
||||||
|
.name { |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
.num { |
||||||
|
margin-top: 24rpx; |
||||||
|
font-size: 56rpx; |
||||||
|
color: #fff; |
||||||
|
line-height: 56rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.line { |
||||||
|
flex-shrink: 0; |
||||||
|
height: 108rpx; |
||||||
|
border-right: 1rpx dashed #ffffff; |
||||||
|
opacity: 0.5; |
||||||
|
} |
||||||
|
} |
||||||
|
.b-container-none { |
||||||
|
position: relative; |
||||||
|
z-index: 1; |
||||||
|
width: 686rpx; |
||||||
|
height: 172rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 1px solid #ffffff; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.stat { |
||||||
|
position: relative; |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 96rpx 0 32rpx; |
||||||
|
border-radius: 16rpx; |
||||||
|
.title { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
left: 0; |
||||||
|
padding: 16rpx 30rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.s-container { |
||||||
|
display: flex; |
||||||
|
.item { |
||||||
|
flex: 1; |
||||||
|
text-align: center; |
||||||
|
.name { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(128, 128, 128, 1); |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
.num { |
||||||
|
margin-top: 24rpx; |
||||||
|
font-size: 48rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
line-height: 56rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.line { |
||||||
|
flex-shrink: 0; |
||||||
|
height: 108rpx; |
||||||
|
border-right: 1rpx dashed rgba(224, 224, 224, 0.5); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.stat-none { |
||||||
|
position: relative; |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 96rpx 0 32rpx; |
||||||
|
border-radius: 16rpx; |
||||||
|
.title { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
left: 0; |
||||||
|
padding: 16rpx 30rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.s-container { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
align-items: center; |
||||||
|
padding: 0 38rpx 0; |
||||||
|
.none { |
||||||
|
width: 102rpx; |
||||||
|
height: 102rpx; |
||||||
|
} |
||||||
|
.tip { |
||||||
|
padding: 0 26rpx; |
||||||
|
flex: 1; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(128, 128, 128, 1); |
||||||
|
} |
||||||
|
.btn { |
||||||
|
width: 184rpx; |
||||||
|
height: 72rpx; |
||||||
|
text-align: center; |
||||||
|
line-height: 72rpx; |
||||||
|
font-size: 30rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 44rpx 44rpx 44rpx 44rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.cooperate { |
||||||
|
margin-top: 24rpx; |
||||||
|
background: linear-gradient(180deg, #f1feff 0%, #ffffff 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
&-header { |
||||||
|
padding: 32rpx 20rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.name { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.fold { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 12rpx; |
||||||
|
.icon { |
||||||
|
width: 28rpx; |
||||||
|
height: 28rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.doctor-list { |
||||||
|
padding: 0 20rpx 32rpx; |
||||||
|
transition: 0.3s max-height; |
||||||
|
max-height: var(--fold-height); |
||||||
|
&-fold { |
||||||
|
padding: 0; |
||||||
|
max-height: 0; |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
.doctor { |
||||||
|
margin-bottom: 20rpx; |
||||||
|
padding: 32rpx; |
||||||
|
display: flex; |
||||||
|
gap: 24rpx; |
||||||
|
background: linear-gradient(180deg, #e5f5f7 0%, #ffffff 50%); |
||||||
|
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.1); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
&:last-of-type { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
.avatar { |
||||||
|
flex-shrink: 0; |
||||||
|
position: relative; |
||||||
|
width: 112rpx; |
||||||
|
height: 112rpx; |
||||||
|
} |
||||||
|
.wrap { |
||||||
|
padding-top: 8rpx; |
||||||
|
.w-header { |
||||||
|
display: flex; |
||||||
|
flex-wrap: wrap; |
||||||
|
align-items: baseline; |
||||||
|
gap: 16rpx; |
||||||
|
line-height: 1; |
||||||
|
.name { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.label { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
.line { |
||||||
|
width: 1px; |
||||||
|
height: 24rpx; |
||||||
|
background-color: rgba(205, 205, 205, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.w-container { |
||||||
|
margin-top: 24rpx; |
||||||
|
.hostipal { |
||||||
|
margin-right: 12rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
.tag { |
||||||
|
margin-right: 12rpx; |
||||||
|
display: inline-block; |
||||||
|
padding: 0 8rpx; |
||||||
|
border-radius: 4rpx; |
||||||
|
font-size: 24rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
line-height: 32rpx; |
||||||
|
background-color: rgba(0, 180, 197, 1); |
||||||
|
} |
||||||
|
.site { |
||||||
|
display: inline-block; |
||||||
|
padding: 0 8rpx; |
||||||
|
font-size: 24rpx; |
||||||
|
color: rgba(148, 87, 30, 1); |
||||||
|
line-height: 32rpx; |
||||||
|
border-radius: 4rpx; |
||||||
|
background-color: rgba(250, 229, 206, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.w-footer { |
||||||
|
margin-top: 16rpx; |
||||||
|
display: flex; |
||||||
|
gap: 12rpx; |
||||||
|
flex-wrap: wrap; |
||||||
|
.wf-label { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 48rpx; |
||||||
|
height: 32rpx; |
||||||
|
} |
||||||
|
.wf-tag { |
||||||
|
flex-shrink: 0; |
||||||
|
padding: 0 8rpx; |
||||||
|
font-size: 22rpx; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
line-height: 32rpx; |
||||||
|
border: 1px solid rgba(191, 239, 244, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.cooperate-none { |
||||||
|
margin-top: 24rpx; |
||||||
|
background: linear-gradient(180deg, #f1feff 0%, #ffffff 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
&-header { |
||||||
|
padding: 32rpx 20rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.name { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.none { |
||||||
|
padding-bottom: 54rpx; |
||||||
|
text-align: center; |
||||||
|
.none-img { |
||||||
|
width: 240rpx; |
||||||
|
height: 200rpx; |
||||||
|
} |
||||||
|
.content { |
||||||
|
margin-top: -70rpx; |
||||||
|
text-align: center; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
line-height: 44rpx; |
||||||
|
.sub-content { |
||||||
|
font-size: 28rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,73 @@ |
|||||||
|
const _app = getApp<IAppOption>(); |
||||||
|
|
||||||
|
// pages/story/a.ts
|
||||||
|
Component({ |
||||||
|
/** |
||||||
|
* 组件的属性列表 |
||||||
|
*/ |
||||||
|
properties: { |
||||||
|
userInfo: Object, |
||||||
|
DoctorTitleType: Object, |
||||||
|
hospitalClassification: Object, |
||||||
|
hospitalLevel: Object, |
||||||
|
did: String, |
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 组件的初始数据 |
||||||
|
*/ |
||||||
|
data: { |
||||||
|
take: {}, |
||||||
|
case: {}, |
||||||
|
cooperateList: [], |
||||||
|
}, |
||||||
|
|
||||||
|
lifetimes: { |
||||||
|
attached() { |
||||||
|
this.getTake(); |
||||||
|
this.getCase(); |
||||||
|
}, |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 组件的方法列表 |
||||||
|
*/ |
||||||
|
methods: { |
||||||
|
handleEntryCase() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: "/module1/pages/entryCases/index", |
||||||
|
}); |
||||||
|
}, |
||||||
|
getTake() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/doctor/todo", |
||||||
|
data: { |
||||||
|
DoctorId: this.data.did, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
take: res, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
getCase() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/doctor/case", |
||||||
|
data: { |
||||||
|
DoctorId: this.data.did, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
case: res, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleQuestion(e) { |
||||||
|
const { index } = e.currentTarget.dataset; |
||||||
|
this.triggerEvent("question", index); |
||||||
|
}, |
||||||
|
}, |
||||||
|
}); |
||||||
|
|
||||||
|
export {}; |
@ -0,0 +1,93 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="user"> |
||||||
|
<doctorAvatar |
||||||
|
did="{{userInfo.DoctorId}}" |
||||||
|
class="avatar" |
||||||
|
src="{{userInfo.Img}}" |
||||||
|
level="{{userInfo.DoctorLevel}}" |
||||||
|
></doctorAvatar> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="w-header"> |
||||||
|
<view class="name">{{userInfo.Name}}</view> |
||||||
|
<view class="desc" wx:if="{{userInfo.TitleType === 99}}">{{userInfo.OtherTitle}}</view> |
||||||
|
<view class="desc" wx:else>{{DoctorTitleType[userInfo.TitleType]}}</view> |
||||||
|
</view> |
||||||
|
<view class="w-footer"> |
||||||
|
<view class="hostipal">{{userInfo.HospitalName}}</view> |
||||||
|
<view class="tag">{{userInfo.HospitalClassificationName}}{{userInfo.HospitalLevelName}}</view> |
||||||
|
<view class="site" wx:if="{{userInfo.CityName}}"> |
||||||
|
{{userInfo.CityName}}{{userInfo.CountyName?'/':''}}{{userInfo.CountyName}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="banner"> |
||||||
|
<view |
||||||
|
class="title" |
||||||
|
style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;" |
||||||
|
> |
||||||
|
待处理事项 |
||||||
|
</view> |
||||||
|
<view class="bg"> |
||||||
|
<view class="b-container"> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">病历更新</view> |
||||||
|
<view class="num">{{take.notReadFeedBackCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">学习窗消息</view> |
||||||
|
<view class="num">{{take.notReadChatRoomCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="stat" |
||||||
|
style="background: url({{imageUrl}}home-stat-bg.png?r={{Timestamp}}) no-repeat top center/100% 100%;" |
||||||
|
wx:if="{{case.totalCaseCount>0}}" |
||||||
|
> |
||||||
|
<view class="title">我提交的病历</view> |
||||||
|
<view class="s-container"> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">总数</view> |
||||||
|
<view class="num">{{case.totalCaseCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name"> |
||||||
|
新病历 |
||||||
|
<van-icon bind:tap="handleQuestion" data-index="1" name="question" color="rgba(224, 224, 224, 1)" /> |
||||||
|
</view> |
||||||
|
<view class="num">{{case.newCaseCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name"> |
||||||
|
讨论中 |
||||||
|
<van-icon bind:tap="handleQuestion" data-index="2" name="question" color="rgba(224, 224, 224, 1)" /> |
||||||
|
</view> |
||||||
|
<view class="num">{{case.feedbackCaseCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name"> |
||||||
|
已归档 |
||||||
|
<van-icon bind:tap="handleQuestion" data-index="3" name="question" color="rgba(224, 224, 224, 1)" /> |
||||||
|
</view> |
||||||
|
<view class="num">{{case.archiveCaseCount}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="stat-none" |
||||||
|
style="background: url({{imageUrl}}home-stat-bg.png?r={{Timestamp}}) no-repeat top center/100% 100%;" |
||||||
|
wx:else |
||||||
|
> |
||||||
|
<view class="title">我提交的病历</view> |
||||||
|
<view class="s-container"> |
||||||
|
<image class="none" src="{{imageUrl}}empty-3.png?t={{Timestamp}}"></image> |
||||||
|
<view class="tip">还没有提交病历</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
"component": true, |
||||||
|
"usingComponents": { |
||||||
|
"doctorAvatar": "/components/doctorAvatar/index", |
||||||
|
"van-icon": "@vant/weapp/icon/index" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,482 @@ |
|||||||
|
.page { |
||||||
|
padding: 36rpx 32rpx 200rpx; |
||||||
|
.user { |
||||||
|
margin-top: 40rpx; |
||||||
|
position: relative; |
||||||
|
padding: 94rpx 32rpx 32rpx; |
||||||
|
background: linear-gradient(180deg, #f1feff 0%, #ffffff 35%, #ffffff 100%); |
||||||
|
box-shadow: 0rpx 8rpx 24rpx 0rpx rgba(0, 66, 73, 0.09); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.avatar { |
||||||
|
position: absolute; |
||||||
|
top: -38rpx; |
||||||
|
left: 32rpx; |
||||||
|
width: 112rpx; |
||||||
|
height: 112rpx; |
||||||
|
} |
||||||
|
.code { |
||||||
|
position: absolute; |
||||||
|
top: 38rpx; |
||||||
|
right: 34rpx; |
||||||
|
width: 60rpx; |
||||||
|
height: 60rpx; |
||||||
|
} |
||||||
|
.wrap { |
||||||
|
.w-header { |
||||||
|
display: flex; |
||||||
|
align-items: baseline; |
||||||
|
flex-wrap: wrap; |
||||||
|
gap: 16rpx; |
||||||
|
.name { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.desc { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
.line { |
||||||
|
margin: 0 12rpx; |
||||||
|
display: inline-block; |
||||||
|
height: 24rpx; |
||||||
|
width: 1rpx; |
||||||
|
background-color: rgba(205, 205, 205, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.w-container { |
||||||
|
margin-top: 24rpx; |
||||||
|
.hostipal { |
||||||
|
margin-right: 12rpx; |
||||||
|
display: inline; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
.tag { |
||||||
|
margin-right: 12rpx; |
||||||
|
display: inline-block; |
||||||
|
padding: 0 8rpx; |
||||||
|
border-radius: 4rpx; |
||||||
|
background-color: rgba(0, 180, 197, 1); |
||||||
|
font-size: 24rpx; |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
.site { |
||||||
|
display: inline-block; |
||||||
|
padding: 0 8rpx; |
||||||
|
font-size: 24rpx; |
||||||
|
line-height: 32rpx; |
||||||
|
color: rgba(148, 87, 30, 1); |
||||||
|
border-radius: 4rpx; |
||||||
|
background-color: rgba(250, 229, 206, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.w-footer { |
||||||
|
margin-top: 16rpx; |
||||||
|
display: flex; |
||||||
|
gap: 12rpx; |
||||||
|
flex-wrap: wrap; |
||||||
|
.wf-label { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 48rpx; |
||||||
|
height: 32rpx; |
||||||
|
} |
||||||
|
.wf-tag { |
||||||
|
flex-shrink: 0; |
||||||
|
padding: 0 8rpx; |
||||||
|
font-size: 22rpx; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
line-height: 32rpx; |
||||||
|
border: 1px solid rgba(191, 239, 244, 1); |
||||||
|
border-radius: 4rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.banner { |
||||||
|
margin-top: 32rpx; |
||||||
|
.title { |
||||||
|
position: relative; |
||||||
|
z-index: 1; |
||||||
|
padding: 22rpx 30rpx 18rpx; |
||||||
|
width: 262rpx; |
||||||
|
height: 116rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
font-weight: bold; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
line-height: 1; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
.bg { |
||||||
|
padding-top: 40rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: rgba(250, 229, 206, 1); |
||||||
|
margin-top: -95rpx; |
||||||
|
.b-container { |
||||||
|
position: relative; |
||||||
|
z-index: 2; |
||||||
|
border: 1px solid #ffffff; |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.item { |
||||||
|
padding: 32rpx 0; |
||||||
|
flex: 1; |
||||||
|
text-align: center; |
||||||
|
.name { |
||||||
|
font-size: 26rpx; |
||||||
|
color: #fff; |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
.num { |
||||||
|
margin-top: 24rpx; |
||||||
|
font-size: 56rpx; |
||||||
|
color: #fff; |
||||||
|
line-height: 56rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.line { |
||||||
|
flex-shrink: 0; |
||||||
|
height: 108rpx; |
||||||
|
border-right: 1rpx dashed #ffffff; |
||||||
|
opacity: 0.5; |
||||||
|
} |
||||||
|
} |
||||||
|
.b-container-none { |
||||||
|
position: relative; |
||||||
|
z-index: 1; |
||||||
|
width: 686rpx; |
||||||
|
height: 172rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 1px solid #ffffff; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.stat { |
||||||
|
position: relative; |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 96rpx 0 32rpx; |
||||||
|
border-radius: 16rpx; |
||||||
|
.title { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
left: 0; |
||||||
|
padding: 16rpx 30rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.more { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
right: 0; |
||||||
|
padding: 14rpx 20rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
} |
||||||
|
.s-container { |
||||||
|
display: flex; |
||||||
|
.item { |
||||||
|
position: relative; |
||||||
|
flex: 1; |
||||||
|
text-align: center; |
||||||
|
.name { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(128, 128, 128, 1); |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
.num { |
||||||
|
margin-top: 24rpx; |
||||||
|
font-size: 48rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
line-height: 56rpx; |
||||||
|
} |
||||||
|
.item-toast { |
||||||
|
position: absolute; |
||||||
|
left: -80rpx; |
||||||
|
top: -20rpx; |
||||||
|
transform: translate(0, -100%); |
||||||
|
padding: 28rpx 0; |
||||||
|
border-radius: 16rpx; |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
white-space: nowrap; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
.i-row { |
||||||
|
padding: 0 56rpx; |
||||||
|
} |
||||||
|
.i-line { |
||||||
|
width: 2rpx; |
||||||
|
height: 32rpx; |
||||||
|
background-color: rgba(255, 255, 255, 0.29); |
||||||
|
} |
||||||
|
.i-clsoe { |
||||||
|
position: absolute; |
||||||
|
top: -10rpx; |
||||||
|
right: -10rpx; |
||||||
|
width: 32rpx; |
||||||
|
height: 32rpx; |
||||||
|
} |
||||||
|
&::after { |
||||||
|
position: absolute; |
||||||
|
left: 134rpx; |
||||||
|
bottom: -10rpx; |
||||||
|
content: ""; |
||||||
|
width: 0; |
||||||
|
height: 0; |
||||||
|
border-style: solid; |
||||||
|
border-width: 18rpx 18rpx 0 18rpx; |
||||||
|
border-color: #4abfc0 transparent transparent transparent; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.line { |
||||||
|
flex-shrink: 0; |
||||||
|
height: 108rpx; |
||||||
|
border-right: 1rpx dashed rgba(224, 224, 224, 0.5); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.stat-none { |
||||||
|
position: relative; |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 96rpx 0 32rpx; |
||||||
|
border-radius: 16rpx; |
||||||
|
.title { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
left: 0; |
||||||
|
padding: 16rpx 30rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.s-container { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
align-items: center; |
||||||
|
padding: 0 38rpx 0; |
||||||
|
.none { |
||||||
|
width: 102rpx; |
||||||
|
height: 102rpx; |
||||||
|
} |
||||||
|
.tip { |
||||||
|
padding: 0 26rpx; |
||||||
|
flex: 1; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(128, 128, 128, 1); |
||||||
|
} |
||||||
|
.btn { |
||||||
|
width: 184rpx; |
||||||
|
height: 72rpx; |
||||||
|
text-align: center; |
||||||
|
line-height: 72rpx; |
||||||
|
font-size: 30rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 44rpx 44rpx 44rpx 44rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.cooperate, |
||||||
|
.invite { |
||||||
|
margin-top: 24rpx; |
||||||
|
background: linear-gradient(180deg, #f1feff 0%, #ffffff 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
&-header { |
||||||
|
padding: 32rpx 20rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.name { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.fold { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 12rpx; |
||||||
|
.icon { |
||||||
|
width: 28rpx; |
||||||
|
height: 28rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.doctor-list { |
||||||
|
padding: 0 20rpx 32rpx; |
||||||
|
transition: 0.3s max-height; |
||||||
|
max-height: var(--fold-height); |
||||||
|
&-fold { |
||||||
|
padding: 0; |
||||||
|
max-height: 0; |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
.doctor { |
||||||
|
position: relative; |
||||||
|
margin-bottom: 20rpx; |
||||||
|
padding: 32rpx; |
||||||
|
display: flex; |
||||||
|
gap: 24rpx; |
||||||
|
background: linear-gradient(180deg, #e5f5f7 0%, #ffffff 50%); |
||||||
|
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.1); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
&:last-of-type { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
.invite-doctor { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
right: 0; |
||||||
|
padding: 2rpx 16rpx; |
||||||
|
font-size: 22rpx; |
||||||
|
color: #00b4c5; |
||||||
|
line-height: 28rpx; |
||||||
|
border-radius: 0 16rpx 0 16rpx; |
||||||
|
background-color: #d7edee; |
||||||
|
} |
||||||
|
.avatar { |
||||||
|
flex-shrink: 0; |
||||||
|
position: relative; |
||||||
|
width: 112rpx; |
||||||
|
height: 112rpx; |
||||||
|
} |
||||||
|
.assign { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
right: 0; |
||||||
|
padding: 2rpx 16rpx; |
||||||
|
line-height: 28rpx; |
||||||
|
font-size: 22rpx; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
background-color: rgba(215, 237, 238, 1); |
||||||
|
border-radius: 0 16rpx 0 16rpx; |
||||||
|
} |
||||||
|
.wrap { |
||||||
|
padding-top: 8rpx; |
||||||
|
.w-header { |
||||||
|
display: flex; |
||||||
|
align-items: baseline; |
||||||
|
flex-wrap: wrap; |
||||||
|
gap: 16rpx; |
||||||
|
line-height: 1; |
||||||
|
.name { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.label { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
.line { |
||||||
|
width: 1px; |
||||||
|
height: 24rpx; |
||||||
|
background-color: rgba(205, 205, 205, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.w-container { |
||||||
|
margin-top: 24rpx; |
||||||
|
.hostipal { |
||||||
|
margin-right: 12rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
.tag { |
||||||
|
margin-right: 12rpx; |
||||||
|
display: inline-block; |
||||||
|
padding: 0 8rpx; |
||||||
|
border-radius: 4rpx; |
||||||
|
font-size: 24rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
line-height: 32rpx; |
||||||
|
background-color: rgba(0, 180, 197, 1); |
||||||
|
} |
||||||
|
.site { |
||||||
|
display: inline-block; |
||||||
|
padding: 0 8rpx; |
||||||
|
font-size: 24rpx; |
||||||
|
color: rgba(148, 87, 30, 1); |
||||||
|
line-height: 32rpx; |
||||||
|
border-radius: 4rpx; |
||||||
|
background-color: rgba(250, 229, 206, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.w-footer { |
||||||
|
margin-top: 16rpx; |
||||||
|
display: flex; |
||||||
|
gap: 12rpx; |
||||||
|
flex-wrap: wrap; |
||||||
|
.wf-label { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 48rpx; |
||||||
|
height: 32rpx; |
||||||
|
} |
||||||
|
.wf-tag { |
||||||
|
flex-shrink: 0; |
||||||
|
padding: 0 8rpx; |
||||||
|
font-size: 22rpx; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
line-height: 32rpx; |
||||||
|
border: 1px solid rgba(191, 239, 244, 1); |
||||||
|
border-radius: 4rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.cooperate-none, |
||||||
|
.invite-none { |
||||||
|
margin-top: 24rpx; |
||||||
|
background: linear-gradient(180deg, #f1feff 0%, #ffffff 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
&-header { |
||||||
|
padding: 32rpx 20rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.name { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.none { |
||||||
|
padding-bottom: 54rpx; |
||||||
|
text-align: center; |
||||||
|
.none-img { |
||||||
|
width: 240rpx; |
||||||
|
height: 200rpx; |
||||||
|
} |
||||||
|
.none-img1 { |
||||||
|
width: 230rpx; |
||||||
|
height: 184rpx; |
||||||
|
} |
||||||
|
.content { |
||||||
|
margin-top: -70rpx; |
||||||
|
text-align: center; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
line-height: 44rpx; |
||||||
|
.sub-content { |
||||||
|
font-size: 28rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,81 @@ |
|||||||
|
const app = getApp<IAppOption>(); |
||||||
|
|
||||||
|
// pages/story/a.ts
|
||||||
|
Component({ |
||||||
|
/** |
||||||
|
* 组件的属性列表 |
||||||
|
*/ |
||||||
|
properties: { |
||||||
|
userInfo: Object, |
||||||
|
DoctorTitleType: Object, |
||||||
|
hospitalClassification: Object, |
||||||
|
hospitalLevel: Object, |
||||||
|
did: String, |
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 组件的初始数据 |
||||||
|
*/ |
||||||
|
data: { |
||||||
|
take: {}, |
||||||
|
case: {} as any, |
||||||
|
cooperateList: [], |
||||||
|
inviteList: [], |
||||||
|
newCaseShow: false, |
||||||
|
}, |
||||||
|
|
||||||
|
lifetimes: { |
||||||
|
attached() { |
||||||
|
this.getTake(); |
||||||
|
this.getCase(); |
||||||
|
}, |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 组件的方法列表 |
||||||
|
*/ |
||||||
|
methods: { |
||||||
|
getTake() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/doctor/todo", |
||||||
|
data: { |
||||||
|
DoctorId: this.data.did, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
take: res, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
getCase() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/doctor/case", |
||||||
|
data: { |
||||||
|
DoctorId: this.data.did, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
case: res, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleQuestion(e) { |
||||||
|
const { index } = e.currentTarget.dataset; |
||||||
|
this.triggerEvent("question", index); |
||||||
|
}, |
||||||
|
|
||||||
|
handleNewCase() { |
||||||
|
this.setData({ |
||||||
|
newCaseShow: true, |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleNewCaseClose() { |
||||||
|
this.setData({ |
||||||
|
newCaseShow: false, |
||||||
|
}); |
||||||
|
}, |
||||||
|
}, |
||||||
|
}); |
||||||
|
|
||||||
|
export {}; |
@ -0,0 +1,124 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="user"> |
||||||
|
<doctorAvatar |
||||||
|
did="{{userInfo.DoctorId}}" |
||||||
|
class="avatar" |
||||||
|
src="{{userInfo.Img}}" |
||||||
|
level="{{userInfo.DoctorLevel}}" |
||||||
|
></doctorAvatar> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="w-header"> |
||||||
|
<view class="name">{{userInfo.Name}}</view> |
||||||
|
<view class="desc"> |
||||||
|
<block wx:if="{{userInfo.TitleType === 99}}">{{userInfo.OtherTitle}}</block> |
||||||
|
<block wx:else>{{DoctorTitleType[userInfo.TitleType]}}</block> |
||||||
|
<block wx:for="{{userInfo.Department}}" wx:key="DepartmentId"> |
||||||
|
<view class="line"></view> |
||||||
|
{{item.DepartmentName}} |
||||||
|
</block> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="w-container"> |
||||||
|
<view class="hostipal">{{userInfo.HospitalName}}</view> |
||||||
|
<view class="tag">{{userInfo.HospitalClassificationName}}{{userInfo.HospitalLevelName}}</view> |
||||||
|
<view class="site" wx:if="{{userInfo.CityName}}"> |
||||||
|
{{userInfo.CityName}}{{userInfo.CountyName?'/':''}}{{userInfo.CountyName}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="w-footer" wx:if="{{userInfo.Specialty.length}}"> |
||||||
|
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image> |
||||||
|
<view class="wf-tag" wx:for="{{userInfo.Specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="banner"> |
||||||
|
<view |
||||||
|
class="title" |
||||||
|
style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;" |
||||||
|
> |
||||||
|
待处理事项 |
||||||
|
</view> |
||||||
|
<view class="bg"> |
||||||
|
<view |
||||||
|
class="b-container" |
||||||
|
wx:if="{{take.dealCaseCount>0 || take.notReadFeedBackCount>0 || take.notReadChatRoomCount>0 || take.toAuditDoctorCount>0}}" |
||||||
|
> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">待处理病历</view> |
||||||
|
<view class="num">{{take.dealCaseCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">病历更新</view> |
||||||
|
<view class="num">{{take.notReadFeedBackCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">学习窗消息</view> |
||||||
|
<view class="num">{{take.notReadChatRoomCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">医生待审核</view> |
||||||
|
<view class="num">{{take.toAuditDoctorCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="b-container-none" wx:else>暂时没有需要处理的事项哦~</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="stat" |
||||||
|
wx:if="{{case.totalCaseCount>0}}" |
||||||
|
style="background: url({{imageUrl}}home-stat-bg.png?r={{Timestamp}}) no-repeat top center/100% 100%;" |
||||||
|
> |
||||||
|
<view class="title">我管理的病历</view> |
||||||
|
<view class="s-container"> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">全部</view> |
||||||
|
<view class="num">{{case.totalCaseCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="item" bind:tap="handleNewCase"> |
||||||
|
<view class="name"> |
||||||
|
新病历 |
||||||
|
<van-icon catch:tap="handleQuestion" data-index="1" name="question" color="rgba(224, 224, 224, 1)" /> |
||||||
|
</view> |
||||||
|
<view class="num">{{case.newCaseCount}}</view> |
||||||
|
<view class="item-toast" wx:if="{{newCaseShow}}"> |
||||||
|
<image |
||||||
|
class="i-clsoe" |
||||||
|
src="{{imageUrl}}icon-close.png?r={{Timestamp}}" |
||||||
|
catch:tap="handleNewCaseClose" |
||||||
|
></image> |
||||||
|
<view class="i-row">本人提交:{{case.newOneCaseCount}}</view> |
||||||
|
<view class="i-line"></view> |
||||||
|
<view class="i-row">他人提交:{{case.newTwoCaseCount}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name"> |
||||||
|
讨论中 |
||||||
|
<van-icon catch:tap="handleQuestion" data-index="2" name="question" color="rgba(224, 224, 224, 1)" /> |
||||||
|
</view> |
||||||
|
<view class="num">{{case.feedbackCaseCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name"> |
||||||
|
已归档 |
||||||
|
<van-icon bind:tap="handleQuestion" data-index="3" name="question" color="rgba(224, 224, 224, 1)" /> |
||||||
|
</view> |
||||||
|
<view class="num">{{case.archiveCaseCount}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="stat-none" |
||||||
|
style="background: url({{imageUrl}}home-stat-bg.png?r={{Timestamp}}) no-repeat top center/100% 100%;" |
||||||
|
wx:else |
||||||
|
> |
||||||
|
<view class="title">我管理病历</view> |
||||||
|
<view class="s-container"> |
||||||
|
<image class="none" src="{{imageUrl}}empty-3.png?t={{Timestamp}}"></image> |
||||||
|
<view class="tip">还没有提交病历</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
"component": true, |
||||||
|
"usingComponents": { |
||||||
|
"doctorAvatar": "/components/doctorAvatar/index", |
||||||
|
"van-icon": "@vant/weapp/icon/index" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,250 @@ |
|||||||
|
.page { |
||||||
|
padding: 36rpx 32rpx 200rpx; |
||||||
|
.user { |
||||||
|
margin-top: 40rpx; |
||||||
|
position: relative; |
||||||
|
padding: 94rpx 32rpx 32rpx; |
||||||
|
background: linear-gradient(180deg, #f1feff 0%, #ffffff 35%, #ffffff 100%); |
||||||
|
box-shadow: 0rpx 8rpx 24rpx 0rpx rgba(0, 66, 73, 0.09); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.avatar { |
||||||
|
position: absolute; |
||||||
|
top: -38rpx; |
||||||
|
left: 32rpx; |
||||||
|
width: 112rpx; |
||||||
|
height: 112rpx; |
||||||
|
} |
||||||
|
.code { |
||||||
|
position: absolute; |
||||||
|
top: 38rpx; |
||||||
|
right: 34rpx; |
||||||
|
width: 60rpx; |
||||||
|
height: 60rpx; |
||||||
|
} |
||||||
|
.wrap { |
||||||
|
.w-header { |
||||||
|
display: flex; |
||||||
|
flex-wrap: wrap; |
||||||
|
align-items: baseline; |
||||||
|
gap: 16rpx; |
||||||
|
.name { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.desc { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
.line { |
||||||
|
margin: 0 12rpx; |
||||||
|
display: inline-block; |
||||||
|
height: 24rpx; |
||||||
|
width: 1rpx; |
||||||
|
background-color: rgba(205, 205, 205, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.w-container { |
||||||
|
margin-top: 24rpx; |
||||||
|
.hostipal { |
||||||
|
margin-right: 12rpx; |
||||||
|
display: inline; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
.tag { |
||||||
|
margin-right: 12rpx; |
||||||
|
display: inline-block; |
||||||
|
padding: 0 8rpx; |
||||||
|
border-radius: 4rpx; |
||||||
|
background-color: rgba(0, 180, 197, 1); |
||||||
|
font-size: 24rpx; |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
.site { |
||||||
|
display: inline-block; |
||||||
|
padding: 0 8rpx; |
||||||
|
font-size: 24rpx; |
||||||
|
line-height: 32rpx; |
||||||
|
color: rgba(148, 87, 30, 1); |
||||||
|
border-radius: 4rpx; |
||||||
|
background-color: rgba(250, 229, 206, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.w-footer { |
||||||
|
margin-top: 16rpx; |
||||||
|
display: flex; |
||||||
|
gap: 12rpx; |
||||||
|
flex-wrap: wrap; |
||||||
|
.wf-label { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 48rpx; |
||||||
|
height: 32rpx; |
||||||
|
} |
||||||
|
.wf-tag { |
||||||
|
flex-shrink: 0; |
||||||
|
padding: 0 8rpx; |
||||||
|
font-size: 22rpx; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
line-height: 32rpx; |
||||||
|
border: 1px solid rgba(191, 239, 244, 1); |
||||||
|
border-radius: 4rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.banner { |
||||||
|
margin-top: 32rpx; |
||||||
|
.title { |
||||||
|
position: relative; |
||||||
|
z-index: 1; |
||||||
|
padding: 22rpx 30rpx 18rpx; |
||||||
|
width: 262rpx; |
||||||
|
height: 116rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
font-weight: bold; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
line-height: 1; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
.bg { |
||||||
|
padding-top: 40rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: rgba(250, 229, 206, 1); |
||||||
|
margin-top: -95rpx; |
||||||
|
.b-container { |
||||||
|
position: relative; |
||||||
|
z-index: 2; |
||||||
|
border: 1px solid #ffffff; |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.item { |
||||||
|
padding: 32rpx 0; |
||||||
|
flex: 1; |
||||||
|
text-align: center; |
||||||
|
.name { |
||||||
|
font-size: 26rpx; |
||||||
|
color: #fff; |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
.num { |
||||||
|
margin-top: 24rpx; |
||||||
|
font-size: 56rpx; |
||||||
|
color: #fff; |
||||||
|
line-height: 56rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.line { |
||||||
|
flex-shrink: 0; |
||||||
|
height: 108rpx; |
||||||
|
border-right: 1rpx dashed #ffffff; |
||||||
|
opacity: 0.5; |
||||||
|
} |
||||||
|
} |
||||||
|
.b-container-none { |
||||||
|
position: relative; |
||||||
|
z-index: 1; |
||||||
|
width: 686rpx; |
||||||
|
height: 172rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 1px solid #ffffff; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.stat { |
||||||
|
position: relative; |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 96rpx 0 32rpx; |
||||||
|
border-radius: 16rpx; |
||||||
|
.title { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
left: 0; |
||||||
|
padding: 16rpx 24rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
font-weight: bold; |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
.more { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
right: 0; |
||||||
|
padding: 14rpx 20rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
} |
||||||
|
.s-container { |
||||||
|
display: flex; |
||||||
|
.item { |
||||||
|
flex: 1; |
||||||
|
text-align: center; |
||||||
|
.name { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(128, 128, 128, 1); |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
.num { |
||||||
|
margin-top: 24rpx; |
||||||
|
font-size: 48rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
line-height: 56rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.line { |
||||||
|
flex-shrink: 0; |
||||||
|
height: 108rpx; |
||||||
|
border-right: 1rpx dashed rgba(224, 224, 224, 0.5); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.stat-none { |
||||||
|
position: relative; |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 96rpx 0 32rpx; |
||||||
|
border-radius: 16rpx; |
||||||
|
.title { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
left: 0; |
||||||
|
padding: 16rpx 30rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.s-container { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
align-items: center; |
||||||
|
padding: 0 38rpx 0; |
||||||
|
.none { |
||||||
|
width: 102rpx; |
||||||
|
height: 102rpx; |
||||||
|
} |
||||||
|
.tip { |
||||||
|
padding: 0 26rpx; |
||||||
|
flex: 1; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(128, 128, 128, 1); |
||||||
|
} |
||||||
|
.btn { |
||||||
|
width: 184rpx; |
||||||
|
height: 72rpx; |
||||||
|
text-align: center; |
||||||
|
line-height: 72rpx; |
||||||
|
font-size: 30rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 44rpx 44rpx 44rpx 44rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,82 @@ |
|||||||
|
const app = getApp<IAppOption>(); |
||||||
|
|
||||||
|
// pages/story/a.ts
|
||||||
|
Component({ |
||||||
|
/** |
||||||
|
* 组件的属性列表 |
||||||
|
*/ |
||||||
|
properties: { |
||||||
|
userInfo: Object, |
||||||
|
DoctorTitleType: Object, |
||||||
|
hospitalClassification: Object, |
||||||
|
hospitalLevel: Object, |
||||||
|
did: String, |
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 组件的初始数据 |
||||||
|
*/ |
||||||
|
data: { |
||||||
|
take: {}, |
||||||
|
case: {} as any, |
||||||
|
doctorCount: {}, |
||||||
|
}, |
||||||
|
|
||||||
|
lifetimes: { |
||||||
|
attached() { |
||||||
|
this.getTake(); |
||||||
|
this.getCase(); |
||||||
|
this.getManageDoctor(); |
||||||
|
}, |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 组件的方法列表 |
||||||
|
*/ |
||||||
|
methods: { |
||||||
|
getTake() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/doctor/todo", |
||||||
|
data: { |
||||||
|
DoctorId: this.data.did, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
take: res, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
getCase() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/doctor/case", |
||||||
|
data: { |
||||||
|
DoctorId: this.data.did, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
case: res, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
getManageDoctor() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/doctor/manage-doctor-count", |
||||||
|
data: { |
||||||
|
DoctorId: this.data.did, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
doctorCount: res.count, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleQuestion(e) { |
||||||
|
const { index } = e.currentTarget.dataset; |
||||||
|
this.triggerEvent("question", index); |
||||||
|
}, |
||||||
|
}, |
||||||
|
}); |
||||||
|
|
||||||
|
export {}; |
@ -0,0 +1,142 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="user"> |
||||||
|
<doctorAvatar |
||||||
|
did="{{userInfo.DoctorId}}" |
||||||
|
class="avatar" |
||||||
|
src="{{userInfo.Img}}" |
||||||
|
level="{{userInfo.DoctorLevel}}" |
||||||
|
></doctorAvatar> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="w-header"> |
||||||
|
<view class="name">{{userInfo.Name}}</view> |
||||||
|
<view class="desc"> |
||||||
|
<block wx:if="{{userInfo.TitleType === 99}}">{{userInfo.OtherTitle}}</block> |
||||||
|
<block wx:else>{{DoctorTitleType[userInfo.TitleType]}}</block> |
||||||
|
<block wx:for="{{userInfo.Department}}" wx:key="DepartmentId"> |
||||||
|
<view class="line"></view> |
||||||
|
{{item.DepartmentName}} |
||||||
|
</block> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="w-container"> |
||||||
|
<view class="hostipal">{{userInfo.HospitalName}}</view> |
||||||
|
<view class="tag">{{userInfo.HospitalClassificationName}}{{userInfo.HospitalLevelName}}</view> |
||||||
|
<view class="site" wx:if="{{userInfo.CityName}}"> |
||||||
|
{{userInfo.CityName}}{{userInfo.CountyName?'/':''}}{{userInfo.CountyName}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="w-footer" wx:if="{{userInfo.Specialty.length}}"> |
||||||
|
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image> |
||||||
|
<view class="wf-tag" wx:for="{{userInfo.Specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="banner"> |
||||||
|
<view |
||||||
|
class="title" |
||||||
|
style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;" |
||||||
|
> |
||||||
|
待处理事项 |
||||||
|
</view> |
||||||
|
<view class="bg"> |
||||||
|
<view class="b-container"> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">待处理病历</view> |
||||||
|
<view class="num">{{take.dealCaseCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">病历更新</view> |
||||||
|
<view class="num">{{take.notReadFeedBackCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">学习窗消息</view> |
||||||
|
<view class="num">{{take.notReadChatRoomCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">医生待审核</view> |
||||||
|
<view class="num">{{take.toAuditDoctorCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="stat" |
||||||
|
wx:if="{{case.totalCaseCount>0}}" |
||||||
|
style="background: url({{imageUrl}}home-stat-bg.png?r={{Timestamp}}) no-repeat top center/100% 100%;" |
||||||
|
> |
||||||
|
<view class="title">我管理的病历</view> |
||||||
|
<view class="s-container"> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">全部</view> |
||||||
|
<view class="num">{{case.totalCaseCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name"> |
||||||
|
新病历 |
||||||
|
<van-icon catch:tap="handleQuestion" data-index="1" name="question" color="rgba(224, 224, 224, 1)" /> |
||||||
|
</view> |
||||||
|
<view class="num">{{case.newCaseCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name"> |
||||||
|
讨论中 |
||||||
|
<van-icon catch:tap="handleQuestion" data-index="2" name="question" color="rgba(224, 224, 224, 1)" /> |
||||||
|
</view> |
||||||
|
<view class="num">{{case.feedbackCaseCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name"> |
||||||
|
已归档 |
||||||
|
<van-icon bind:tap="handleQuestion" data-index="3" name="question" color="rgba(224, 224, 224, 1)" /> |
||||||
|
</view> |
||||||
|
<view class="num">{{case.archiveCaseCount}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="stat-none" |
||||||
|
style="background: url({{imageUrl}}home-stat-bg.png?r={{Timestamp}}) no-repeat top center/100% 100%;" |
||||||
|
wx:else |
||||||
|
> |
||||||
|
<view class="title">我管理的病历</view> |
||||||
|
<view class="s-container"> |
||||||
|
<image class="none" src="{{imageUrl}}empty-3.png?t={{Timestamp}}"></image> |
||||||
|
<view class="tip">还没有提交病历</view> |
||||||
|
<view></view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="stat" |
||||||
|
wx:if="{{doctorCount.TotalCount>0}}" |
||||||
|
style="background: url({{imageUrl}}home-stat-bg.png?r={{Timestamp}}) no-repeat top center/100% 100%;" |
||||||
|
> |
||||||
|
<view class="title">我管理的医生</view> |
||||||
|
<view class="s-container"> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">全部</view> |
||||||
|
<view class="num">{{doctorCount.TotalCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">二级医生</view> |
||||||
|
<view class="num">{{doctorCount.TwoCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">一级医生</view> |
||||||
|
<view class="num">{{doctorCount.OneCount}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="stat-none" |
||||||
|
style="background: url({{imageUrl}}home-stat-bg.png?r={{Timestamp}}) no-repeat top center/100% 100%;" |
||||||
|
wx:else |
||||||
|
> |
||||||
|
<view class="title">我管理的医生</view> |
||||||
|
<view class="s-container"> |
||||||
|
<image class="none" src="{{imageUrl}}empty-3.png?t={{Timestamp}}"></image> |
||||||
|
<view class="tip">还没有邀约的医生</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,8 @@ |
|||||||
|
{ |
||||||
|
"component": true, |
||||||
|
"usingComponents": { |
||||||
|
"doctorAvatar": "/components/doctorAvatar/index", |
||||||
|
"van-icon": "@vant/weapp/icon/index", |
||||||
|
"ec-canvas": "../ec-canvas/ec-canvas" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,489 @@ |
|||||||
|
.page { |
||||||
|
padding: 36rpx 32rpx 100rpx; |
||||||
|
.user { |
||||||
|
margin-top: 40rpx; |
||||||
|
position: relative; |
||||||
|
padding: 94rpx 32rpx 32rpx; |
||||||
|
background: linear-gradient(180deg, #f1feff 0%, #ffffff 35%, #ffffff 100%); |
||||||
|
box-shadow: 0rpx 8rpx 24rpx 0rpx rgba(0, 66, 73, 0.09); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.avatar { |
||||||
|
position: absolute; |
||||||
|
top: -38rpx; |
||||||
|
left: 32rpx; |
||||||
|
width: 112rpx; |
||||||
|
height: 112rpx; |
||||||
|
} |
||||||
|
.code { |
||||||
|
position: absolute; |
||||||
|
top: 38rpx; |
||||||
|
right: 34rpx; |
||||||
|
width: 60rpx; |
||||||
|
height: 60rpx; |
||||||
|
} |
||||||
|
.wrap { |
||||||
|
.w-header { |
||||||
|
display: flex; |
||||||
|
align-items: baseline; |
||||||
|
gap: 16rpx; |
||||||
|
.name { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.desc { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
.line { |
||||||
|
margin: 0 12rpx; |
||||||
|
display: inline-block; |
||||||
|
height: 24rpx; |
||||||
|
width: 1rpx; |
||||||
|
background-color: rgba(205, 205, 205, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.w-container { |
||||||
|
margin-top: 24rpx; |
||||||
|
.hostipal { |
||||||
|
margin-right: 12rpx; |
||||||
|
display: inline; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
.tag { |
||||||
|
margin-right: 12rpx; |
||||||
|
display: inline-block; |
||||||
|
padding: 0 8rpx; |
||||||
|
border-radius: 4rpx; |
||||||
|
background-color: rgba(0, 180, 197, 1); |
||||||
|
font-size: 24rpx; |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
.site { |
||||||
|
display: inline-block; |
||||||
|
padding: 0 8rpx; |
||||||
|
font-size: 24rpx; |
||||||
|
line-height: 32rpx; |
||||||
|
color: rgba(148, 87, 30, 1); |
||||||
|
border-radius: 4rpx; |
||||||
|
background-color: rgba(250, 229, 206, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.w-footer { |
||||||
|
margin-top: 16rpx; |
||||||
|
display: flex; |
||||||
|
gap: 12rpx; |
||||||
|
flex-wrap: wrap; |
||||||
|
.wf-label { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 48rpx; |
||||||
|
height: 32rpx; |
||||||
|
} |
||||||
|
.wf-tag { |
||||||
|
flex-shrink: 0; |
||||||
|
padding: 0 8rpx; |
||||||
|
font-size: 22rpx; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
line-height: 32rpx; |
||||||
|
border: 1px solid rgba(191, 239, 244, 1); |
||||||
|
border-radius: 4rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.banner { |
||||||
|
margin-top: 32rpx; |
||||||
|
.title { |
||||||
|
position: relative; |
||||||
|
z-index: 1; |
||||||
|
padding: 22rpx 30rpx 18rpx; |
||||||
|
width: 262rpx; |
||||||
|
height: 116rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
font-weight: bold; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
line-height: 1; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
.bg { |
||||||
|
padding-top: 40rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: rgba(250, 229, 206, 1); |
||||||
|
margin-top: -95rpx; |
||||||
|
.b-container { |
||||||
|
position: relative; |
||||||
|
z-index: 2; |
||||||
|
border: 1px solid #ffffff; |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.item { |
||||||
|
padding: 32rpx 0; |
||||||
|
flex: 1; |
||||||
|
text-align: center; |
||||||
|
.name { |
||||||
|
font-size: 26rpx; |
||||||
|
color: #fff; |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
.num { |
||||||
|
margin-top: 24rpx; |
||||||
|
font-size: 56rpx; |
||||||
|
color: #fff; |
||||||
|
line-height: 56rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.line { |
||||||
|
flex-shrink: 0; |
||||||
|
height: 108rpx; |
||||||
|
border-right: 1rpx dashed #ffffff; |
||||||
|
opacity: 0.5; |
||||||
|
} |
||||||
|
} |
||||||
|
.b-container-none { |
||||||
|
position: relative; |
||||||
|
z-index: 1; |
||||||
|
width: 686rpx; |
||||||
|
height: 172rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 1px solid #ffffff; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.stat { |
||||||
|
position: relative; |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 96rpx 0 32rpx; |
||||||
|
border-radius: 16rpx; |
||||||
|
.title { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
left: 0; |
||||||
|
padding: 16rpx 30rpx; |
||||||
|
font-size: 26rpx; |
||||||
|
color: #fff; |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.picker { |
||||||
|
position: absolute; |
||||||
|
top: 8rpx; |
||||||
|
left: 296rpx; |
||||||
|
.picker-content { |
||||||
|
padding: 8rpx 24rpx; |
||||||
|
display: flex; |
||||||
|
gap: 18rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
line-height: 40rpx; |
||||||
|
color: rgba(133, 133, 133, 1); |
||||||
|
background: #ffffff; |
||||||
|
border-radius: 98rpx 98rpx 98rpx 98rpx; |
||||||
|
border: 1px solid #f6f6f6; |
||||||
|
} |
||||||
|
} |
||||||
|
.more { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
right: 0; |
||||||
|
padding: 14rpx 20rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
} |
||||||
|
.s-container { |
||||||
|
display: flex; |
||||||
|
.item { |
||||||
|
position: relative; |
||||||
|
flex: 1; |
||||||
|
text-align: center; |
||||||
|
.name { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(128, 128, 128, 1); |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
.num { |
||||||
|
margin-top: 24rpx; |
||||||
|
font-size: 48rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
line-height: 56rpx; |
||||||
|
} |
||||||
|
.item-toast { |
||||||
|
position: absolute; |
||||||
|
left: -80rpx; |
||||||
|
top: -20rpx; |
||||||
|
transform: translate(0, -100%); |
||||||
|
padding: 28rpx 0; |
||||||
|
border-radius: 16rpx; |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
white-space: nowrap; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #fff; |
||||||
|
.i-row { |
||||||
|
padding: 0 56rpx; |
||||||
|
} |
||||||
|
.i-line { |
||||||
|
width: 2rpx; |
||||||
|
height: 32rpx; |
||||||
|
background-color: rgba(255, 255, 255, 0.29); |
||||||
|
} |
||||||
|
.i-clsoe { |
||||||
|
position: absolute; |
||||||
|
top: -10rpx; |
||||||
|
right: -10rpx; |
||||||
|
width: 32rpx; |
||||||
|
height: 32rpx; |
||||||
|
} |
||||||
|
&::after { |
||||||
|
position: absolute; |
||||||
|
left: 134rpx; |
||||||
|
bottom: -10rpx; |
||||||
|
content: ""; |
||||||
|
width: 0; |
||||||
|
height: 0; |
||||||
|
border-style: solid; |
||||||
|
border-width: 18rpx 18rpx 0 18rpx; |
||||||
|
border-color: #4abfc0 transparent transparent transparent; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.line { |
||||||
|
flex-shrink: 0; |
||||||
|
height: 108rpx; |
||||||
|
border-right: 1rpx dashed rgba(224, 224, 224, 0.5); |
||||||
|
} |
||||||
|
} |
||||||
|
.s-container-none { |
||||||
|
padding: 4rpx 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
gap: 26rpx; |
||||||
|
.none { |
||||||
|
width: 102rpx; |
||||||
|
height: 102rpx; |
||||||
|
} |
||||||
|
.tip { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(128, 128, 128, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.department { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 0 20rpx; |
||||||
|
background: linear-gradient(180deg, #f1feff 0%, #ffffff 35%, #ffffff 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.d-header { |
||||||
|
padding: 32rpx 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.name { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.more { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.d-container { |
||||||
|
padding: 32rpx 0; |
||||||
|
background: linear-gradient(180deg, #f3fbfd 0%, #ffffff 50%); |
||||||
|
box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.08); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
.item { |
||||||
|
flex: 1; |
||||||
|
text-align: center; |
||||||
|
.name { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(128, 128, 128, 1); |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
.num { |
||||||
|
margin-top: 24rpx; |
||||||
|
font-size: 48rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
line-height: 56rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.tip { |
||||||
|
padding: 20rpx 0; |
||||||
|
font-size: 22rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
} |
||||||
|
.department-none { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 0 20rpx; |
||||||
|
background: linear-gradient(180deg, #f1feff 0%, #ffffff 35%, #ffffff 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.d-header { |
||||||
|
padding: 32rpx 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.name { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.d-container { |
||||||
|
padding: 24rpx; |
||||||
|
text-align: center; |
||||||
|
.none-img { |
||||||
|
width: 240rpx; |
||||||
|
height: 200rpx; |
||||||
|
} |
||||||
|
.none-title { |
||||||
|
margin-top: -80rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
line-height: 44rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.chart-card { |
||||||
|
margin-top: 24rpx; |
||||||
|
background: linear-gradient(180deg, #f1feff 0%, #ffffff 35%, #ffffff 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.c-header { |
||||||
|
padding: 32rpx 20rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.name { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.picker { |
||||||
|
.picker-content { |
||||||
|
padding: 8rpx 24rpx; |
||||||
|
display: flex; |
||||||
|
gap: 18rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(133, 133, 133, 1); |
||||||
|
background: #ffffff; |
||||||
|
border-radius: 98rpx 98rpx 98rpx 98rpx; |
||||||
|
border: 1px solid #f6f6f6; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.chart { |
||||||
|
height: 450rpx; |
||||||
|
} |
||||||
|
.tip { |
||||||
|
padding: 24rpx 20rpx 32rpx; |
||||||
|
font-size: 22rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
text-align: right; |
||||||
|
} |
||||||
|
.chart-none { |
||||||
|
padding: 24rpx; |
||||||
|
text-align: center; |
||||||
|
.none-img { |
||||||
|
width: 240rpx; |
||||||
|
height: 200rpx; |
||||||
|
} |
||||||
|
.none-title { |
||||||
|
margin-top: -80rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
line-height: 44rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.rank { |
||||||
|
margin: 24rpx -32rpx 0; |
||||||
|
padding: 0 32rpx 100rpx; |
||||||
|
background: linear-gradient(180deg, #f1feff 0%, #ffffff 14%, #ffffff 100%); |
||||||
|
border-radius: 32rpx 32rpx 0 0; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.r-header { |
||||||
|
padding: 32rpx 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.more { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.table { |
||||||
|
.thead { |
||||||
|
padding: 22rpx 0; |
||||||
|
display: flex; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
background-color: rgba(233, 246, 247, 1); |
||||||
|
text-align: center; |
||||||
|
border-radius: 8rpx; |
||||||
|
.th1 { |
||||||
|
width: 338rpx; |
||||||
|
} |
||||||
|
.th2, |
||||||
|
.th3, |
||||||
|
.th4, |
||||||
|
.th5 { |
||||||
|
width: 96rpx; |
||||||
|
white-space: nowrap; |
||||||
|
} |
||||||
|
} |
||||||
|
.tbody { |
||||||
|
border-bottom: 1rpx solid rgba(224, 224, 224, 0.5); |
||||||
|
.tr { |
||||||
|
display: flex; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
text-align: center; |
||||||
|
padding: 18rpx 0; |
||||||
|
line-height: 32rpx; |
||||||
|
border-radius: 8rpx; |
||||||
|
&:nth-child(even) { |
||||||
|
background-color: rgba(248, 248, 248, 1); |
||||||
|
} |
||||||
|
.td1 { |
||||||
|
padding: 12rpx 10rpx; |
||||||
|
width: 338rpx; |
||||||
|
text-align-last: left; |
||||||
|
} |
||||||
|
.td2, |
||||||
|
.td3, |
||||||
|
.td4, |
||||||
|
.td5 { |
||||||
|
padding: 12rpx 0; |
||||||
|
width: 96rpx; |
||||||
|
border-left: 1px dashed rgba(224, 224, 224, 1); |
||||||
|
} |
||||||
|
.td2 { |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,115 @@ |
|||||||
|
import dayjs from "dayjs"; |
||||||
|
const app = getApp<IAppOption>(); |
||||||
|
|
||||||
|
const echarts = require("../ec-canvas/echarts.js"); |
||||||
|
|
||||||
|
// pages/story/a.ts
|
||||||
|
Component({ |
||||||
|
/** |
||||||
|
* 组件的属性列表 |
||||||
|
*/ |
||||||
|
properties: { |
||||||
|
userInfo: Object, |
||||||
|
DoctorTitleType: Object, |
||||||
|
hospitalClassification: Object, |
||||||
|
hospitalLevel: Object, |
||||||
|
did: String, |
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 组件的初始数据 |
||||||
|
*/ |
||||||
|
data: { |
||||||
|
take: {}, |
||||||
|
case: {} as any, |
||||||
|
doctorCount: {}, |
||||||
|
|
||||||
|
DepartmentId: "", |
||||||
|
DepartmentName: "", |
||||||
|
|
||||||
|
newCaseShow: false, |
||||||
|
}, |
||||||
|
|
||||||
|
lifetimes: { |
||||||
|
attached() { |
||||||
|
const { DepartmentId, DepartmentName } = this.data.userInfo.Department[0]; |
||||||
|
this.setData({ |
||||||
|
Department: this.data.userInfo.Department, |
||||||
|
DepartmentId, |
||||||
|
DepartmentName, |
||||||
|
}); |
||||||
|
this.getTake(); |
||||||
|
this.getCase(); |
||||||
|
this.getManageDoctor(); |
||||||
|
}, |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 组件的方法列表 |
||||||
|
*/ |
||||||
|
methods: { |
||||||
|
getTake() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/doctor/todo", |
||||||
|
data: { |
||||||
|
DoctorId: this.data.did, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
take: res, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleChangeDept(e) { |
||||||
|
const index = e.detail.value; |
||||||
|
const { DepartmentId, DepartmentName } = this.data.userInfo.Department[index]; |
||||||
|
this.setData({ |
||||||
|
DepartmentId, |
||||||
|
DepartmentName, |
||||||
|
}); |
||||||
|
this.getCase(); |
||||||
|
this.getManageDoctor(); |
||||||
|
}, |
||||||
|
getCase() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/doctor/case", |
||||||
|
data: { |
||||||
|
DepartmentId: this.data.DepartmentId, |
||||||
|
DoctorId: this.data.did, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
case: res, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
getManageDoctor() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/doctor/manage-doctor-count", |
||||||
|
data: { DepartmentId: this.data.DepartmentId, DoctorId: this.data.did }, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
doctorCount: res.count, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleQuestion(e) { |
||||||
|
const { index } = e.currentTarget.dataset; |
||||||
|
this.triggerEvent("question", index); |
||||||
|
}, |
||||||
|
handleNewCase() { |
||||||
|
this.setData({ |
||||||
|
newCaseShow: true, |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleNewCaseClose() { |
||||||
|
this.setData({ |
||||||
|
newCaseShow: false, |
||||||
|
}); |
||||||
|
}, |
||||||
|
}, |
||||||
|
}); |
||||||
|
|
||||||
|
export {}; |
@ -0,0 +1,140 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="user"> |
||||||
|
<doctorAvatar did="{{userInfo.DoctorId}}" class="avatar" src="{{userInfo.Img}}" level="4"></doctorAvatar> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="w-header"> |
||||||
|
<view class="name">{{userInfo.Name}}</view> |
||||||
|
<view class="desc"> |
||||||
|
<block wx:if="{{userInfo.TitleType === 99}}">{{userInfo.OtherTitle}}</block> |
||||||
|
<block wx:else>{{DoctorTitleType[userInfo.TitleType]}}</block> |
||||||
|
<block wx:for="{{userInfo.Department}}" wx:key="DepartmentId"> |
||||||
|
<view class="line"></view> |
||||||
|
{{item.DepartmentName}} |
||||||
|
</block> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="w-container"> |
||||||
|
<view class="hostipal">{{userInfo.HospitalName}}</view> |
||||||
|
<view class="tag">{{userInfo.HospitalClassificationName}}{{userInfo.HospitalLevelName}}</view> |
||||||
|
<view class="site" wx:if="{{userInfo.CityName}}"> |
||||||
|
{{userInfo.CityName}}{{userInfo.CountyName?'/':''}}{{userInfo.CountyName}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="w-footer" wx:if="{{userInfo.Specialty.length}}"> |
||||||
|
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image> |
||||||
|
<view class="wf-tag" wx:for="{{userInfo.Specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="banner"> |
||||||
|
<view |
||||||
|
class="title" |
||||||
|
style="background: url({{imageUrl}}home-banner-title-bg.png?r={{Timestamp}}) no-repeat top center/262rpx 116rpx;" |
||||||
|
> |
||||||
|
待处理事项 |
||||||
|
</view> |
||||||
|
<view class="bg"> |
||||||
|
<view class="b-container"> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">待处理病历</view> |
||||||
|
<view class="num">{{take.dealCaseCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">学习窗消息</view> |
||||||
|
<view class="num">{{take.notReadChatRoomCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">医生待审核</view> |
||||||
|
<view class="num">{{take.toAuditDoctorCount*1 || '--'}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="stat" |
||||||
|
style="background: url({{imageUrl}}home-stat-bg.png?r={{Timestamp}}) no-repeat top center/100% 100%;" |
||||||
|
> |
||||||
|
<view class="title">本科室全部病历</view> |
||||||
|
<picker class="picker" range="{{Department}}" range-key="DepartmentName" bind:change="handleChangeDept"> |
||||||
|
<view class="picker-content"> |
||||||
|
<view class="text">{{DepartmentName}}</view> |
||||||
|
<van-icon name="arrow-down" /> |
||||||
|
</view> |
||||||
|
</picker> |
||||||
|
<view class="s-container" wx:if="{{case.totalCaseCount>0}}"> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">全部</view> |
||||||
|
<view class="num">{{case.totalCaseCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="item" bind:tap="handleNewCase"> |
||||||
|
<view class="name"> |
||||||
|
新病历 |
||||||
|
<van-icon catch:tap="handleQuestion" data-index="1" name="question" color="rgba(224, 224, 224, 1)" /> |
||||||
|
</view> |
||||||
|
<view class="num">{{case.newCaseCount}}</view> |
||||||
|
<view class="item-toast" wx:if="{{newCaseShow}}"> |
||||||
|
<image |
||||||
|
class="i-clsoe" |
||||||
|
src="{{imageUrl}}icon-close.png?r={{Timestamp}}" |
||||||
|
catch:tap="handleNewCaseClose" |
||||||
|
></image> |
||||||
|
<view class="i-row">本科室:{{case.newOneCaseCount}}</view> |
||||||
|
<view class="i-line"></view> |
||||||
|
<view class="i-row">无科室:{{case.newTwoCaseCount}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name"> |
||||||
|
讨论中 |
||||||
|
<van-icon catch:tap="handleQuestion" data-index="2" name="question" color="rgba(224, 224, 224, 1)" /> |
||||||
|
</view> |
||||||
|
<view class="num">{{case.feedbackCaseCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name"> |
||||||
|
已归档 |
||||||
|
<van-icon bind:tap="handleQuestion" data-index="3" name="question" color="rgba(224, 224, 224, 1)" /> |
||||||
|
</view> |
||||||
|
<view class="num">{{case.archiveCaseCount}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="s-container-none" wx:else> |
||||||
|
<image class="none" src="{{imageUrl}}empty-3.png?t={{Timestamp}}"></image> |
||||||
|
<view class="tip">暂时还没有医生提交病历哦~</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="department" wx:if="{{doctorCount.TotalCount>0}}"> |
||||||
|
<view class="d-header"> |
||||||
|
<view class="name">本科室医生</view> |
||||||
|
</view> |
||||||
|
<view class="d-container"> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">医生总数</view> |
||||||
|
<view class="num">{{doctorCount.TotalCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">质控医生</view> |
||||||
|
<view class="num">{{doctorCount.ThreeCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">核心医生</view> |
||||||
|
<view class="num">{{doctorCount.TwoCount}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="name">一级医生</view> |
||||||
|
<view class="num">{{doctorCount.OneCount}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="tip">注:一级医生为平台全部医生,不区分科室</view> |
||||||
|
</view> |
||||||
|
<view class="department-none" wx:else> |
||||||
|
<view class="d-header"> |
||||||
|
<view class="name">本科室医生</view> |
||||||
|
</view> |
||||||
|
<view class="d-container"> |
||||||
|
<image class="none-img" src="{{imageUrl}}empty-4.png?t={{Timestamp}}"></image> |
||||||
|
<view class="none-title">暂无数据</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 42 KiB |
@ -0,0 +1,17 @@ |
|||||||
|
{ |
||||||
|
"navigationStyle": "default", |
||||||
|
"navigationBarTitleText": "医生看板", |
||||||
|
"usingComponents": { |
||||||
|
"doctorLevel1": "../../../echart/components/doctorLevel1/index", |
||||||
|
"doctorLevel2": "../../../echart/components/doctorLevel2/index", |
||||||
|
"doctorLevel3": "../../../echart/components/doctorLevel3/index", |
||||||
|
"doctorLevel4": "../../../echart/components/doctorLevel4/index", |
||||||
|
"van-popup": "@vant/weapp/popup/index" |
||||||
|
}, |
||||||
|
"componentPlaceholder": { |
||||||
|
"doctorLevel1": "view", |
||||||
|
"doctorLevel2": "view", |
||||||
|
"doctorLevel3": "view", |
||||||
|
"doctorLevel4": "view" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(250, 250, 250, 1); |
||||||
|
} |
||||||
|
.page { |
||||||
|
.logo { |
||||||
|
margin-left: 32rpx; |
||||||
|
width: 160rpx; |
||||||
|
height: 36rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.popup1 { |
||||||
|
width: 750rpx; |
||||||
|
height: 752rpx; |
||||||
|
.container { |
||||||
|
padding: 322rpx 0 0; |
||||||
|
.title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
line-height: 42rpx; |
||||||
|
text-align: center; |
||||||
|
font-weight: bold; |
||||||
|
.name { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.content { |
||||||
|
text-align: center; |
||||||
|
margin-top: 16rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(133, 133, 133, 1); |
||||||
|
line-height: 44rpx; |
||||||
|
} |
||||||
|
.sure { |
||||||
|
margin: 32rpx auto 0; |
||||||
|
width: 476rpx; |
||||||
|
height: 72rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
text-align: center; |
||||||
|
line-height: 72rpx; |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 84rpx 84rpx 84rpx 84rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,96 @@ |
|||||||
|
const app = getApp<IAppOption>(); |
||||||
|
export {}; |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
level: 0, |
||||||
|
|
||||||
|
hide: true, |
||||||
|
|
||||||
|
show1: false, |
||||||
|
bindDoctorName: "", |
||||||
|
|
||||||
|
id: "", |
||||||
|
userInfo: {}, |
||||||
|
DoctorTitleType: {}, |
||||||
|
|
||||||
|
hospitalClassification: {}, |
||||||
|
hospitalLevel: {}, |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
app.waitLogin().then(() => { |
||||||
|
this.getDoctorDict(); |
||||||
|
this.getHostipalDict(); |
||||||
|
this.getDoctorDetail(options.id, (res) => { |
||||||
|
this.setData({ |
||||||
|
id: options.id, |
||||||
|
level: res.IsSuper === 1 ? 4 : res.DoctorLevel, |
||||||
|
userInfo: res, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
onShow() { |
||||||
|
this.setData({ |
||||||
|
hide: false, |
||||||
|
}); |
||||||
|
}, |
||||||
|
onHide() { |
||||||
|
this.setData({ |
||||||
|
hide: true, |
||||||
|
}); |
||||||
|
}, |
||||||
|
getDoctorDetail(id, callback) { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/doctor/detail", |
||||||
|
data: { |
||||||
|
DoctorId: id, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
callback(res); |
||||||
|
}); |
||||||
|
}, |
||||||
|
getDoctorDict() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/reg/doctor-dict", |
||||||
|
data: {}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
DoctorTitleType: res.DoctorTitleType, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
getHostipalDict() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/reg/hospital-dict", |
||||||
|
data: {}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
hospitalClassification: res.hospitalClassification, |
||||||
|
hospitalLevel: res.hospitalLevel, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
|
||||||
|
handleQuestion(e) { |
||||||
|
const index = e.detail; |
||||||
|
const tip = { |
||||||
|
1: "无任何医生反馈、以及操作的病历", |
||||||
|
2: "有医生反馈且未归档的病历", |
||||||
|
3: "设为归档的病历,病历参与者不可反馈,仅可访问", |
||||||
|
4: "科室医生入驻情况:按月统计所在科室注册平台的医生数,并以堆叠图显示一级医生、二级医生、三级医生数;其中,一级医生为全平台的一级医生,不区分科室", |
||||||
|
5: "累计病历统计:按月统计所在科室累计提交的病历数,并以堆叠图显示一级医生、核心医生提交病历数", |
||||||
|
6: "科室新增病历统计:按月统计所在科室新提交的病历 数,并以堆叠图显示一级医生、核心医生提交的病历数", |
||||||
|
7: "医院活跃排行榜:按医院入驻医生数进行活跃排序,入驻医生数越多则活跃度越高,排序则越靠前", |
||||||
|
}[index]; |
||||||
|
wx.showModal({ |
||||||
|
content: tip, |
||||||
|
confirmColor: "#00B4C5", |
||||||
|
cancelColor: "#141515", |
||||||
|
showCancel: false, |
||||||
|
}); |
||||||
|
}, |
||||||
|
}); |
@ -0,0 +1,38 @@ |
|||||||
|
<view class="page" wx:if="{{!hide}}"> |
||||||
|
<doctorLevel1 |
||||||
|
wx:if="{{level===1}}" |
||||||
|
hospitalClassification="{{hospitalClassification}}" |
||||||
|
hospitalLevel="{{hospitalLevel}}" |
||||||
|
DoctorTitleType="{{DoctorTitleType}}" |
||||||
|
userInfo="{{userInfo}}" |
||||||
|
did="{{id}}" |
||||||
|
bind:question="handleQuestion" |
||||||
|
></doctorLevel1> |
||||||
|
<doctorLevel2 |
||||||
|
wx:elif="{{level===2}}" |
||||||
|
hospitalClassification="{{hospitalClassification}}" |
||||||
|
hospitalLevel="{{hospitalLevel}}" |
||||||
|
DoctorTitleType="{{DoctorTitleType}}" |
||||||
|
userInfo="{{userInfo}}" |
||||||
|
did="{{id}}" |
||||||
|
bind:question="handleQuestion" |
||||||
|
></doctorLevel2> |
||||||
|
<doctorLevel3 |
||||||
|
wx:elif="{{level===3}}" |
||||||
|
hospitalClassification="{{hospitalClassification}}" |
||||||
|
hospitalLevel="{{hospitalLevel}}" |
||||||
|
DoctorTitleType="{{DoctorTitleType}}" |
||||||
|
userInfo="{{userInfo}}" |
||||||
|
did="{{id}}" |
||||||
|
bind:question="handleQuestion" |
||||||
|
></doctorLevel3> |
||||||
|
<doctorLevel4 |
||||||
|
wx:elif="{{level===4}}" |
||||||
|
hospitalClassification="{{hospitalClassification}}" |
||||||
|
hospitalLevel="{{hospitalLevel}}" |
||||||
|
DoctorTitleType="{{DoctorTitleType}}" |
||||||
|
userInfo="{{userInfo}}" |
||||||
|
did="{{id}}" |
||||||
|
bind:question="handleQuestion" |
||||||
|
></doctorLevel4> |
||||||
|
</view> |
Loading…
Reference in new issue