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 @@
@@ -0,0 +1,8 @@
|
||||
{ |
||||
"navigationStyle": "default", |
||||
"navigationBarTitleText": "医生绑定申请", |
||||
"usingComponents": { |
||||
"van-icon": "@vant/weapp/icon/index", |
||||
"doctorAvatar": "/components/doctorAvatar/index" |
||||
} |
||||
} |
@ -0,0 +1,189 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -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 @@
@@ -0,0 +1,6 @@
|
||||
{ |
||||
"usingComponents": { |
||||
"van-nav-bar": "@vant/weapp/nav-bar/index", |
||||
"van-icon": "@vant/weapp/icon/index" |
||||
} |
||||
} |
@ -0,0 +1,56 @@
@@ -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 @@
@@ -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 @@
@@ -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> |