After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 833 B |
After Width: | Height: | Size: 5.0 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 506 B |
@ -0,0 +1,8 @@ |
|||||||
|
{ |
||||||
|
"navigationStyle": "default", |
||||||
|
"navigationBarTitleText": "医生绑定申请", |
||||||
|
"usingComponents": { |
||||||
|
"van-icon": "@vant/weapp/icon/index", |
||||||
|
"doctorAvatar": "/components/doctorAvatar/index" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,189 @@ |
|||||||
|
page { |
||||||
|
background-color: #f6f6f6; |
||||||
|
} |
||||||
|
.page { |
||||||
|
.header { |
||||||
|
padding: 32rpx; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 0 0 0 32rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
gap: 48rpx; |
||||||
|
.range { |
||||||
|
padding: 0 20rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
width: 390rpx; |
||||||
|
background: #f6f6f6; |
||||||
|
border-radius: 12rpx 12rpx 12rpx 12rpx; |
||||||
|
.date { |
||||||
|
flex: 1; |
||||||
|
.date-content { |
||||||
|
padding: 16rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #999999; |
||||||
|
line-height: 1; |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
} |
||||||
|
.icon { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 32rpx; |
||||||
|
height: 32rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.status { |
||||||
|
flex: 1; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 16rpx; |
||||||
|
.label { |
||||||
|
font-size: 28rpx; |
||||||
|
color: #141515; |
||||||
|
} |
||||||
|
.picker { |
||||||
|
flex: 1; |
||||||
|
.picker-content { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
padding: 16rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #999999; |
||||||
|
line-height: 1; |
||||||
|
text-align: center; |
||||||
|
border-radius: 12rpx; |
||||||
|
background-color: #f6f6f6; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.list { |
||||||
|
padding: 32rpx; |
||||||
|
.doctor { |
||||||
|
position: relative; |
||||||
|
padding: 32rpx; |
||||||
|
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; |
||||||
|
margin-bottom: 20rpx; |
||||||
|
.d-status { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
right: 0; |
||||||
|
width: 156rpx; |
||||||
|
height: 50rpx; |
||||||
|
} |
||||||
|
.d-container { |
||||||
|
display: flex; |
||||||
|
gap: 24rpx; |
||||||
|
&: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); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.d-footer { |
||||||
|
margin-top: 32rpx; |
||||||
|
padding: 0 32rpx; |
||||||
|
background: #f6f6f6; |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
.row { |
||||||
|
padding: 32rpx 0; |
||||||
|
display: flex; |
||||||
|
border-bottom: 1px solid rgba(20, 21, 21, 0.08); |
||||||
|
&:last-of-type { |
||||||
|
border: none; |
||||||
|
} |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
margin-right: 16rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: #999999; |
||||||
|
} |
||||||
|
.content { |
||||||
|
font-size: 32rpx; |
||||||
|
color: #141515; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
const app = getApp<IAppOption>(); |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
feedbackTimeBegin: "", |
||||||
|
feedbackTimeEnd: "", |
||||||
|
|
||||||
|
cooperateList: [], |
||||||
|
}, |
||||||
|
onLoad() { |
||||||
|
app.waitLogin().then(() => { |
||||||
|
this.getCooperate(); |
||||||
|
}); |
||||||
|
}, |
||||||
|
getCooperate() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/doctor/cooperation-doctor-list", |
||||||
|
data: {}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
cooperateList: res.list, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
}); |
||||||
|
|
||||||
|
export {}; |
@ -0,0 +1,93 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="header"> |
||||||
|
<view class="range"> |
||||||
|
<picker |
||||||
|
class="date" |
||||||
|
end="{{feedbackTimeEnd}}" |
||||||
|
model:value="{{feedbackTimeBegin}}" |
||||||
|
mode="date" |
||||||
|
bind:change="handleSearch" |
||||||
|
bindcancel="handleCancel" |
||||||
|
data-key="feedbackTimeBegin" |
||||||
|
> |
||||||
|
<view class="date-content">{{feedbackTimeBegin || '开始'}}</view> |
||||||
|
</picker> |
||||||
|
- |
||||||
|
<picker |
||||||
|
class="date" |
||||||
|
start="{{feedbackTimeBegin}}" |
||||||
|
model:value="{{feedbackTimeEnd}}" |
||||||
|
mode="date" |
||||||
|
bind:change="handleSearch" |
||||||
|
bindcancel="handleCancel" |
||||||
|
data-key="feedbackTimeEnd" |
||||||
|
> |
||||||
|
<view class="date-content">{{feedbackTimeEnd || '结束'}}</view> |
||||||
|
</picker> |
||||||
|
<image class="icon" src="{{imageUrl}}icon-date.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="status"> |
||||||
|
<view class="label">状态</view> |
||||||
|
<picker class="picker" mode="region" bindchange="onFinish" bindcancel="onClose" bind:tap="handleArea"> |
||||||
|
<view class="picker-content"> |
||||||
|
<view class="content">{{cityName + countyName || '全部'}}</view> |
||||||
|
<van-icon name="arrow-down" /> |
||||||
|
</view> |
||||||
|
</picker> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="list"> |
||||||
|
<view |
||||||
|
class="doctor" |
||||||
|
wx:for="{{cooperateList}}" |
||||||
|
wx:key="DoctorId" |
||||||
|
bind:tap="handleCooperateDetail" |
||||||
|
data-index="{{index}}" |
||||||
|
> |
||||||
|
<image class="d-status" src="{{imageUrl}}application-status1.png?t={{Timestamp}}" mode="aspectFit"></image> |
||||||
|
<view class="d-container"> |
||||||
|
<doctorAvatar |
||||||
|
id="cooperate{{index}}" |
||||||
|
did="{{item.DoctorId}}" |
||||||
|
class="avatar" |
||||||
|
src="{{item.DoctorImg}}" |
||||||
|
level="{{item.DoctorLevel}}" |
||||||
|
></doctorAvatar> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="w-header"> |
||||||
|
<view class="name">{{item.DoctorName}}</view> |
||||||
|
<view class="label" wx:if="{{item.TitleType===99}}">{{item.DoctorOtherTitle}}</view> |
||||||
|
<view class="label" wx:else>{{DoctorTitleType[item.DoctorTitleType]}}</view> |
||||||
|
<block wx:for="{{item.department}}" wx:key="DepartmentId"> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="label">{{item.DepartmentName}}</view> |
||||||
|
</block> |
||||||
|
</view> |
||||||
|
<view class="w-container"> |
||||||
|
<text class="hostipal">{{item.HospitalName}}</text> |
||||||
|
<view class="tag"> |
||||||
|
{{hospitalClassification[item.HospitalClassification]}}{{hospitalLevel[item.HospitalLevel]}} |
||||||
|
</view> |
||||||
|
<view class="site" wx:if="{{item.CityName}}"> |
||||||
|
{{item.CityName}}{{item.CountyName?'/':''}}{{item.CountyName}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="w-footer" wx:if="{{item.specialty.length}}"> |
||||||
|
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image> |
||||||
|
<view class="wf-tag" wx:for="{{item.specialty}}" wx:key="SpecialtyId">{{item.SpecialtyName}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="d-footer"> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">审核日期</view> |
||||||
|
<view class="content">2024-12-12</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">驳回原因</view> |
||||||
|
<view class="content">这是一段驳回原因的文案,可能有俩行字</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,11 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "选择绑定医生", |
||||||
|
"navigationStyle": "default", |
||||||
|
"usingComponents": { |
||||||
|
"popupDoctorDetail": "/components/popupDoctorDetail/index", |
||||||
|
"doctorAvatar": "/components/doctorAvatar/index", |
||||||
|
"van-popup": "@vant/weapp/popup/index", |
||||||
|
"van-dialog": "@vant/weapp/dialog/index", |
||||||
|
"pagination": "/components/pagination/index" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,208 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(246, 246, 246, 1); |
||||||
|
} |
||||||
|
.page { |
||||||
|
.header { |
||||||
|
padding: 32rpx 32rpx 2rpx; |
||||||
|
background-color: #fff; |
||||||
|
.tip { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
text-align: center; |
||||||
|
.link { |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.search-wrap { |
||||||
|
margin-top: 32rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 22rpx; |
||||||
|
.search { |
||||||
|
flex: 1; |
||||||
|
padding: 20rpx 30rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 20rpx; |
||||||
|
border-radius: 122rpx; |
||||||
|
background-color: rgba(246, 246, 246, 1); |
||||||
|
.icon { |
||||||
|
width: 32rpx; |
||||||
|
height: 32rpx; |
||||||
|
} |
||||||
|
.input { |
||||||
|
flex: 1; |
||||||
|
text-align: center; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #000; |
||||||
|
} |
||||||
|
.place-input { |
||||||
|
color: rgba(205, 205, 205, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.reset { |
||||||
|
padding: 10rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: #00b4c5; |
||||||
|
} |
||||||
|
} |
||||||
|
.options { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.picker { |
||||||
|
flex: 1; |
||||||
|
} |
||||||
|
.option-wrap { |
||||||
|
flex: 1; |
||||||
|
.option { |
||||||
|
padding: 30rpx 10rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
.option-text { |
||||||
|
max-width: 4em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
overflow: hidden; |
||||||
|
white-space: nowrap; |
||||||
|
text-overflow: ellipsis; |
||||||
|
} |
||||||
|
.icon { |
||||||
|
width: 24rpx; |
||||||
|
height: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.list { |
||||||
|
padding: 26rpx 32rpx 300rpx; |
||||||
|
.list-item { |
||||||
|
margin-bottom: 24rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.radio { |
||||||
|
transform: scale(0.7); |
||||||
|
} |
||||||
|
.card { |
||||||
|
flex: 1; |
||||||
|
padding: 32rpx; |
||||||
|
border-radius: 16rpx; |
||||||
|
background-color: #fff; |
||||||
|
display: flex; |
||||||
|
gap: 24rpx; |
||||||
|
.avatar { |
||||||
|
flex-shrink: 0; |
||||||
|
position: relative; |
||||||
|
width: 112rpx; |
||||||
|
height: 112rpx; |
||||||
|
} |
||||||
|
.wrap { |
||||||
|
flex: 1; |
||||||
|
.w-header { |
||||||
|
.name { |
||||||
|
margin-right: 10rpx; |
||||||
|
display: inline; |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.label { |
||||||
|
display: inline; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
} |
||||||
|
.line { |
||||||
|
margin: 0 10rpx; |
||||||
|
display: inline-block; |
||||||
|
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: 14rpx; |
||||||
|
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); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.footer { |
||||||
|
position: fixed; |
||||||
|
bottom: 0; |
||||||
|
left: 0; |
||||||
|
padding: 32rpx 32rpx calc(env(safe-area-inset-bottom) + 32rpx); |
||||||
|
width: 100%; |
||||||
|
box-sizing: border-box; |
||||||
|
display: flex; |
||||||
|
gap: 26rpx; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
background-color: #fff; |
||||||
|
box-shadow: 0 -10rpx 20rpx rgba(0, 0, 0, 0.1); |
||||||
|
.cancel { |
||||||
|
width: 230rpx; |
||||||
|
height: 84rpx; |
||||||
|
text-align: center; |
||||||
|
line-height: 88rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 180, 197, 1); |
||||||
|
border-radius: 96rpx 96rpx 96rpx 96rpx; |
||||||
|
border: 1px solid #01b4c5; |
||||||
|
} |
||||||
|
.submit { |
||||||
|
flex: 1; |
||||||
|
height: 88rpx; |
||||||
|
text-align: center; |
||||||
|
line-height: 88rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: #fff; |
||||||
|
background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); |
||||||
|
border-radius: 96rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,273 @@ |
|||||||
|
const app = getApp<IAppOption>(); |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
showDetail: false, |
||||||
|
popupDoctorDetail: {}, |
||||||
|
|
||||||
|
showResolve: false, |
||||||
|
|
||||||
|
showArea: false, |
||||||
|
fieldNames: { text: "label", value: "value", children: "children" }, |
||||||
|
area: [], |
||||||
|
|
||||||
|
id: "", |
||||||
|
|
||||||
|
DoctorTitleType: {}, |
||||||
|
hospitalClassification: {}, |
||||||
|
hospitalLevel: {}, |
||||||
|
SpecialtyList: [], |
||||||
|
|
||||||
|
search: "", |
||||||
|
hospitalId: "", |
||||||
|
HospitalName: "", |
||||||
|
provinceId: "", |
||||||
|
cityId: "", |
||||||
|
countyId: "", |
||||||
|
ProvinceName: "", |
||||||
|
CityName: "", |
||||||
|
CountyName: "", |
||||||
|
specialtyId: "", |
||||||
|
SpecialtyName: "", |
||||||
|
|
||||||
|
pagination: { |
||||||
|
page: 1, |
||||||
|
pages: 1, |
||||||
|
count: 1, |
||||||
|
}, |
||||||
|
list: [], |
||||||
|
|
||||||
|
DoctorId: "", |
||||||
|
|
||||||
|
params: {}, |
||||||
|
|
||||||
|
caseId: "", |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
if (options.hid) { |
||||||
|
this.setData({ |
||||||
|
hospitalId: options.hid, |
||||||
|
HospitalName: options.hname, |
||||||
|
}); |
||||||
|
} |
||||||
|
const eventChannel = this.getOpenerEventChannel(); |
||||||
|
eventChannel.on("acceptDataFromOpenerPage", (data) => { |
||||||
|
this.setData({ |
||||||
|
params: data.params, |
||||||
|
caseId: data.caseId, |
||||||
|
}); |
||||||
|
}); |
||||||
|
app.waitLogin().then(() => { |
||||||
|
this.getList(); |
||||||
|
this.getDoctorDict(); |
||||||
|
this.getHostipalDict(); |
||||||
|
this.getArea(); |
||||||
|
}); |
||||||
|
}, |
||||||
|
getDoctorDict() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/reg/doctor-dict", |
||||||
|
data: {}, |
||||||
|
}).then((res) => { |
||||||
|
const SpecialtyList: any = []; |
||||||
|
res.DoctorSpecialtyLabel.forEach((item: any) => { |
||||||
|
SpecialtyList.push(...item.options); |
||||||
|
}); |
||||||
|
this.setData({ |
||||||
|
DoctorTitleType: res.DoctorTitleType, |
||||||
|
SpecialtyList, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
getHostipalDict() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/reg/hospital-dict", |
||||||
|
data: {}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
hospitalClassification: res.hospitalClassification, |
||||||
|
hospitalLevel: res.hospitalLevel, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
getArea() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "/js/area.json", |
||||||
|
isJSON: true, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
area: res, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleSearch() { |
||||||
|
this.setData({ |
||||||
|
list: [], |
||||||
|
}); |
||||||
|
this.getList(); |
||||||
|
}, |
||||||
|
handleReset() { |
||||||
|
this.setData({ |
||||||
|
search: "", |
||||||
|
hospitalId: "", |
||||||
|
HospitalName: "", |
||||||
|
provinceId: "", |
||||||
|
cityId: "", |
||||||
|
countyId: "", |
||||||
|
ProvinceName: "", |
||||||
|
CityName: "", |
||||||
|
CountyName: "", |
||||||
|
specialtyId: "", |
||||||
|
SpecialtyName: "", |
||||||
|
}); |
||||||
|
this.handleSearch(); |
||||||
|
}, |
||||||
|
getList(newPage = 1) { |
||||||
|
const { search, hospitalId, provinceId, cityId, countyId, specialtyId } = this.data; |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/case/get-invite-doctor-list", |
||||||
|
data: { |
||||||
|
search, |
||||||
|
hospitalId, |
||||||
|
provinceId, |
||||||
|
cityId, |
||||||
|
countyId, |
||||||
|
specialtyId, |
||||||
|
page: newPage, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
const list = res.page === 1 ? res.list : [...this.data.list, ...res.list]; |
||||||
|
this.setData({ |
||||||
|
list, |
||||||
|
pagination: { |
||||||
|
page: res.page, |
||||||
|
pages: res.pages, |
||||||
|
count: res.count, |
||||||
|
}, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
onReachBottom() { |
||||||
|
const { page, pages } = this.data.pagination; |
||||||
|
if (pages > page) { |
||||||
|
this.getList(page + 1); |
||||||
|
} |
||||||
|
}, |
||||||
|
handlePopupDetail(e) { |
||||||
|
const { index } = e.currentTarget.dataset; |
||||||
|
const { list } = this.data; |
||||||
|
const item: any = list[index]; |
||||||
|
this.setData({ |
||||||
|
showDetail: true, |
||||||
|
popupDoctorDetail: { |
||||||
|
DoctorLevel: item.doctorLevel, |
||||||
|
DoctorImg: item.doctorImg, |
||||||
|
DoctorName: item.doctorName, |
||||||
|
DoctorTitleName: item.doctorTitleName || item.doctorOtherTitle, |
||||||
|
HospitalName: item.hospitalName, |
||||||
|
HospitalClassificationName: item.hospitalClassificationName, |
||||||
|
HospitalLevelName: item.hospitalLevelName, |
||||||
|
CityName: item.cityName, |
||||||
|
CountyName: item.countyName, |
||||||
|
Introduce: item.doctorIntroduce, |
||||||
|
department: item.doctorDept, |
||||||
|
specialty: item.doctorSpecialty, |
||||||
|
}, |
||||||
|
}); |
||||||
|
}, |
||||||
|
handlePopupClose() { |
||||||
|
this.setData({ |
||||||
|
showDetail: false, |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleHostipal() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/module1/pages/sHostipal/index`, |
||||||
|
events: { |
||||||
|
acceptDataFromOpenedPage: (data: any) => { |
||||||
|
this.setData({ |
||||||
|
hospitalId: data.hid, |
||||||
|
HospitalName: data.hname, |
||||||
|
}); |
||||||
|
this.handleSearch(); |
||||||
|
}, |
||||||
|
}, |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleArea() { |
||||||
|
this.setData({ |
||||||
|
showArea: true, |
||||||
|
}); |
||||||
|
}, |
||||||
|
onClose() { |
||||||
|
this.setData({ |
||||||
|
showArea: false, |
||||||
|
showResolve: false, |
||||||
|
}); |
||||||
|
}, |
||||||
|
onFinish(e: any) { |
||||||
|
this.setData({ |
||||||
|
provinceId: e.detail.code[0], |
||||||
|
ProvinceName: e.detail.value[0], |
||||||
|
cityId: e.detail.code[1], |
||||||
|
CityName: e.detail.value[1], |
||||||
|
countyId: e.detail.code[2], |
||||||
|
CountyName: e.detail.value[2], |
||||||
|
showArea: false, |
||||||
|
}); |
||||||
|
this.handleSearch(); |
||||||
|
}, |
||||||
|
handleSpecialChange(e: any) { |
||||||
|
const index = e.detail.value; |
||||||
|
const { SpecialtyList } = this.data; |
||||||
|
const item: any = SpecialtyList[index]; |
||||||
|
this.setData({ |
||||||
|
specialtyId: item.value, |
||||||
|
SpecialtyName: item.label, |
||||||
|
}); |
||||||
|
this.handleSearch(); |
||||||
|
}, |
||||||
|
|
||||||
|
handleRadio(e) { |
||||||
|
const { index } = e.currentTarget.dataset; |
||||||
|
const { list } = this.data; |
||||||
|
this.setData({ |
||||||
|
DoctorId: (list as any)[index].doctorId, |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleSubmit() { |
||||||
|
const { caseId, DoctorId, params } = this.data; |
||||||
|
if (!DoctorId) { |
||||||
|
wx.showToast({ |
||||||
|
title: "请选择医生", |
||||||
|
icon: "none", |
||||||
|
}); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
const url = caseId ? "?r=takeda/case/save-case" : "?r=takeda/case/create-case"; |
||||||
|
wx.ajax({ |
||||||
|
method: "POST", |
||||||
|
url, |
||||||
|
data: { |
||||||
|
...params, |
||||||
|
caseId, |
||||||
|
isSubmit: 1, |
||||||
|
dealDoctorId: DoctorId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
wx.reLaunch({ |
||||||
|
url: `/module1/pages/setApplicationDoctorResult/index?isf=${res.isSubscribe}&wxi=${encodeURIComponent(res.wxImg)}&cid=${res.caseId || caseId}`, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleBack() { |
||||||
|
wx.navigateBack(); |
||||||
|
}, |
||||||
|
}); |
||||||
|
|
||||||
|
export {}; |
@ -0,0 +1,98 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="header"> |
||||||
|
<view class="search-wrap"> |
||||||
|
<view class="search"> |
||||||
|
<image class="icon" src="{{imageUrl}}icon-search.png?t={{Timestamp}}"></image> |
||||||
|
<input |
||||||
|
model:value="{{search}}" |
||||||
|
class="input" |
||||||
|
placeholder-class="place-input" |
||||||
|
placeholder="搜索医生名" |
||||||
|
type="text" |
||||||
|
confirm-type="search" |
||||||
|
bindconfirm="handleSearch" |
||||||
|
/> |
||||||
|
</view> |
||||||
|
<view class="reset" bind:tap="handleReset">重置</view> |
||||||
|
</view> |
||||||
|
<view class="options"> |
||||||
|
<view class="option-wrap" bind:tap="handleHostipal"> |
||||||
|
<view class="option"> |
||||||
|
<text class="option-text">{{HospitalName || '医院'}}</text> |
||||||
|
<image class="icon" src="{{imageUrl}}triangle-down.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<picker class="picker" mode="region" bindchange="onFinish" bindcancel="onClose" bind:tap="handleArea"> |
||||||
|
<view class="option-wrap"> |
||||||
|
<view class="option"> |
||||||
|
<text class="option-text">{{CountyName || '地区'}}</text> |
||||||
|
<image class="icon" src="{{imageUrl}}triangle-down.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</picker> |
||||||
|
<picker class="option-wrap" range="{{SpecialtyList}}" range-key="label" bindchange="handleSpecialChange"> |
||||||
|
<view class="option"> |
||||||
|
<text class="option-text">{{SpecialtyName || '医生专长'}}</text> |
||||||
|
<image class="icon" src="{{imageUrl}}triangle-down.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</picker> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<radio-group> |
||||||
|
<view class="list"> |
||||||
|
<view class="list-item" wx:for="{{list}}" wx:key="DoctorId"> |
||||||
|
<radio |
||||||
|
class="radio" |
||||||
|
value="{{item.DoctorId}}" |
||||||
|
bind:tap="handleRadio" |
||||||
|
color="#00B4C5" |
||||||
|
data-index="{{index}}" |
||||||
|
></radio> |
||||||
|
<view class="card" bind:tap="handlePopupDetail" data-index="{{index}}"> |
||||||
|
<doctorAvatar |
||||||
|
did="{{item.doctorId}}" |
||||||
|
class="avatar" |
||||||
|
src="{{item.doctorImg}}" |
||||||
|
level="{{item.doctorLevel}}" |
||||||
|
></doctorAvatar> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="w-header"> |
||||||
|
<view class="name">{{item.doctorName}}</view> |
||||||
|
<view class="label">{{item.doctorTitleName || item.doctorOtherTitle}}</view> |
||||||
|
<block wx:for-item="depart" wx:for="{{item.doctorDept}}" wx:key="departmentId"> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="label">{{depart.DepartmentName}}</view> |
||||||
|
</block> |
||||||
|
</view> |
||||||
|
<view class="w-container"> |
||||||
|
<text class="hostipal">{{item.hospitalName}}</text> |
||||||
|
<view class="tag">{{item.hospitalClassificationName}}{{item.hospitalLevelName}}</view> |
||||||
|
<view class="site" wx:if="{{item.cityName}}"> |
||||||
|
{{item.cityName}}{{item.countyName?'/':''}}{{item.countyName}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="w-footer"> |
||||||
|
<image class="wf-label" src="{{imageUrl}}text-specialty.png?t={{Timestamp}}" mode="aspectFit"></image> |
||||||
|
<view class="wf-tag" wx:for="{{item.doctorSpecialty}}" wx:for-item="spec" wx:key="SpecialtyId"> |
||||||
|
{{spec.SpecialtyName}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<pagination pagination="{{pagination}}"></pagination> |
||||||
|
</view> |
||||||
|
</radio-group> |
||||||
|
</view> |
||||||
|
<view class="footer"> |
||||||
|
<view class="cancel" bind:tap="handleBack">返回</view> |
||||||
|
<view class="submit" bind:tap="handleSubmit">发送绑定申请</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
|
||||||
|
<popupDoctorDetail |
||||||
|
show="{{showDetail}}" |
||||||
|
params="{{popupDoctorDetail}}" |
||||||
|
bind:close="handlePopupClose" |
||||||
|
></popupDoctorDetail> |
@ -0,0 +1,6 @@ |
|||||||
|
{ |
||||||
|
"usingComponents": { |
||||||
|
"van-nav-bar": "@vant/weapp/nav-bar/index", |
||||||
|
"van-icon": "@vant/weapp/icon/index" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,56 @@ |
|||||||
|
.page { |
||||||
|
padding: 0 32rpx 200rpx; |
||||||
|
width: 100vw; |
||||||
|
min-height: 100vh; |
||||||
|
box-sizing: border-box; |
||||||
|
.container { |
||||||
|
margin: 200rpx 20rpx 0; |
||||||
|
padding: 122rpx 12rpx 64rpx; |
||||||
|
position: relative; |
||||||
|
border-radius: 48rpx 48rpx 48rpx 48rpx; |
||||||
|
background: linear-gradient(180deg, #ffffff 0%, #e7fbff 100%); |
||||||
|
text-align: center; |
||||||
|
.result { |
||||||
|
position: absolute; |
||||||
|
left: 50%; |
||||||
|
top: -100rpx; |
||||||
|
transform: translateX(-50%); |
||||||
|
width: 200rpx; |
||||||
|
height: 200rpx; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 50%; |
||||||
|
} |
||||||
|
.title { |
||||||
|
font-size: 48rpx; |
||||||
|
color: rgba(20, 21, 21, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.notice { |
||||||
|
margin-top: 30rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
line-height: 48rpx; |
||||||
|
.link { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(0, 180, 197, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.code { |
||||||
|
margin: 48rpx auto 0; |
||||||
|
display: block; |
||||||
|
width: 382rpx; |
||||||
|
height: 382rpx; |
||||||
|
} |
||||||
|
.tip { |
||||||
|
margin-top: 36rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(153, 153, 153, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.back-home { |
||||||
|
margin-top: 74rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,34 @@ |
|||||||
|
const app = getApp<IAppOption>(); |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
isf: 0, |
||||||
|
codeUrl: "", |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
app.waitLogin(true).then(() => { |
||||||
|
this.getCodeUrl(); |
||||||
|
this.setData({ |
||||||
|
isf: Number(options.isf), |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleBack() { |
||||||
|
wx.navigateBack(); |
||||||
|
}, |
||||||
|
getCodeUrl() { |
||||||
|
wx.ajax({ |
||||||
|
method: "GET", |
||||||
|
url: "?r=takeda/common/get-channel-wx-code", |
||||||
|
data: { |
||||||
|
ChannelType: 1, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
codeUrl: res, |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
}); |
||||||
|
|
||||||
|
export {}; |
@ -0,0 +1,31 @@ |
|||||||
|
<view |
||||||
|
class="page" |
||||||
|
style="background: url({{imageUrl}}invite-bg.png?r={{Timestamp}}) no-repeat top right/832rpx 1714rpx;padding-top:{{menuButtonInfo.bottom}}px;" |
||||||
|
> |
||||||
|
<van-nav-bar |
||||||
|
fixed |
||||||
|
custom-style="background:transparent;color:#000" |
||||||
|
border="{{false}}" |
||||||
|
fixed |
||||||
|
bind:click-left="handleBack" |
||||||
|
> |
||||||
|
<van-icon name="arrow-left" color="white" slot="left" size="18px" /> |
||||||
|
</van-nav-bar> |
||||||
|
<view class="container"> |
||||||
|
<image class="result" src="{{imageUrl}}c-doctor-result.png?t={{Timestamp}}"></image> |
||||||
|
<view class="title">提交成功</view> |
||||||
|
<view class="notice"> |
||||||
|
<view wx:if="{{InviteDoctorName}}"> |
||||||
|
已将信息提交给 |
||||||
|
<text class="link">{{InviteDoctorName}}医生</text> |
||||||
|
</view> |
||||||
|
审核通过后,您可绑定成功 |
||||||
|
</view> |
||||||
|
<image class="code" src="{{codeUrl}}" show-menu-by-longpress></image> |
||||||
|
<view class="tip"> |
||||||
|
<view>扫码关注公众号</view> |
||||||
|
<view>获取审核通知</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<!-- <view class="back-home" bind:tap="handleBack">回到首页</view> --> |
||||||
|
</view> |