@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
{ |
||||
"version": 1.1, |
||||
"properties": [{ "name": "foo", "description": "Foo property" }], |
||||
"atDirectives": [{ "name": "@foo", "description": "Foo at directive" }], |
||||
"pseudoClasses": [{ "name": ":foo", "description": "Foo pseudo class" }], |
||||
"pseudoElements": [{ "name": "::foo", "description": "Foo pseudo elements" }] |
||||
} |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 1.2 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 6.8 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 1.5 MiB |
After Width: | Height: | Size: 6.6 KiB |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 3.9 KiB |
@ -1,8 +1,9 @@
@@ -1,8 +1,9 @@
|
||||
{ |
||||
"navigationBarTitleText": "互动", |
||||
"navigationStyle": "default", |
||||
"navigationStyle": "custom", |
||||
"usingComponents": { |
||||
"van-icon": "@vant/weapp/icon/index", |
||||
"navbar": "/components/navbar/index", |
||||
"van-popup": "@vant/weapp/popup/index" |
||||
} |
||||
} |
||||
|
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
{ |
||||
"navigationBarTitleText": "重症肌无力医生端", |
||||
"navigationStyle": "default", |
||||
"usingComponents": { |
||||
"customPoster": "/components/customPoster/index" |
||||
} |
||||
} |
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
page{ |
||||
background-color: #c65174; |
||||
} |
||||
.page { |
||||
position: relative; |
||||
height: 1448rpx; |
||||
.poster { |
||||
width: 100%; |
||||
height: 100%; |
||||
} |
||||
.btn { |
||||
position: absolute; |
||||
bottom: 88rpx; |
||||
left: 50%; |
||||
transform: translateX(-50%); |
||||
margin: 36rpx auto; |
||||
padding: 18rpx 44rpx; |
||||
font-size: 36rpx; |
||||
line-height: 48rpx; |
||||
font-weight: bold; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
color: rgba(255, 255, 255, 1); |
||||
border-radius: 64rpx 64rpx 64rpx 64rpx; |
||||
border: 1px solid rgba(255, 255, 255, 1); |
||||
box-sizing: border-box; |
||||
} |
||||
} |
@ -0,0 +1,114 @@
@@ -0,0 +1,114 @@
|
||||
const app = getApp<IAppOption>() |
||||
|
||||
Page({ |
||||
data: { |
||||
doctor: {}, |
||||
hospital: {}, |
||||
qrCode: '', |
||||
|
||||
posterUrl: '', |
||||
params: {}, |
||||
}, |
||||
onLoad() { |
||||
const SystemInfo = app.globalSystemInfo |
||||
if (SystemInfo) { |
||||
const { bottom } = SystemInfo.capsulePosition |
||||
this.setData({ |
||||
bottom, |
||||
}) |
||||
} |
||||
app.waitLogin().then((_res) => { |
||||
wx.showLoading({ |
||||
title: '加载中', |
||||
}) |
||||
app.mpBehavior({ doctor: true, PageName: 'PG_DOCTORINVITEPATIENT' }) |
||||
this.getDetail() |
||||
}) |
||||
}, |
||||
getDetail() { |
||||
wx.ajax({ |
||||
method: 'GET', |
||||
url: '?r=zd/doctor/account/info', |
||||
data: {}, |
||||
}).then((res) => { |
||||
this.setData({ |
||||
doctor: res.doctor, |
||||
hospital: res.hospital, |
||||
}) |
||||
this.getPrepare(res.doctor.Id) |
||||
}) |
||||
}, |
||||
getPrepare(id) { |
||||
wx.ajax({ |
||||
method: 'POST', |
||||
url: '?r=poster/prepare', |
||||
data: { |
||||
posterId: 'doctor_mini', |
||||
doctorId: id, |
||||
}, |
||||
}).then((res) => { |
||||
this.setData({ |
||||
params: res, |
||||
}) |
||||
}) |
||||
}, |
||||
getQrCode() { |
||||
this.setData({ |
||||
qrCode: `${app.globalData.url}?r=zd/doctor/account/mp-info&loginState=${app.globalData.loginState}`, |
||||
}) |
||||
}, |
||||
handleDownload() { |
||||
wx.showToast({ |
||||
title: '请长按海报图片进行保存', |
||||
icon: 'none', |
||||
}) |
||||
// wx.showLoading({
|
||||
// title: '加载中',
|
||||
// })
|
||||
// wx.downloadFile({
|
||||
// url: this.data.posterUrl,
|
||||
// success: (res) => {
|
||||
// if (res.statusCode === 200) {
|
||||
// wx.saveImageToPhotosAlbum({
|
||||
// filePath: res.tempFilePath,
|
||||
// success: () => {
|
||||
// wx.hideLoading()
|
||||
// wx.showToast({
|
||||
// title: '保存成功,请到相册中查看',
|
||||
// })
|
||||
// },
|
||||
// fail: () => {
|
||||
// wx.hideLoading()
|
||||
// wx.showToast({
|
||||
// icon: 'none',
|
||||
// title: '保存失败,请稍后重试',
|
||||
// })
|
||||
// },
|
||||
// })
|
||||
// } else {
|
||||
// wx.hideLoading()
|
||||
// wx.showToast({
|
||||
// icon: 'none',
|
||||
// title: '下载失败,请稍后重试',
|
||||
// })
|
||||
// }
|
||||
// },
|
||||
// fail: () => {
|
||||
// wx.hideLoading()
|
||||
// wx.showToast({
|
||||
// icon: 'none',
|
||||
// title: '下载失败,请稍后重试',
|
||||
// })
|
||||
// },
|
||||
// })
|
||||
}, |
||||
handlePosterFinish(e: any) { |
||||
this.setData({ |
||||
posterUrl: e.detail, |
||||
}) |
||||
wx.hideLoading() |
||||
}, |
||||
handleBack() { |
||||
wx.navigateBack() |
||||
}, |
||||
}) |
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
<view class="page"> |
||||
<image class="poster" show-menu-by-longpress src="{{posterUrl}}"></image> |
||||
<view class="btn" bind:tap="handleDownload">长按图片保存</view> |
||||
</view> |
||||
|
||||
<customPoster params="{{params}}" bind:finish="handlePosterFinish"></customPoster> |
@ -0,0 +1,9 @@
@@ -0,0 +1,9 @@
|
||||
{ |
||||
"navigationStyle": "default", |
||||
"navigationBarTitleText": "患者列表", |
||||
"usingComponents": { |
||||
"navbar": "/components/navbar/index", |
||||
"van-icon": "@vant/weapp/icon/index", |
||||
"van-popup": "@vant/weapp/popup/index" |
||||
} |
||||
} |
@ -0,0 +1,344 @@
@@ -0,0 +1,344 @@
|
||||
page { |
||||
background-color: rgba(242, 244, 245, 1); |
||||
padding-bottom: calc(140rpx + env(safe-area-inset-bottom)); |
||||
} |
||||
|
||||
.page { |
||||
min-height: 100vh; |
||||
|
||||
.page-header { |
||||
position: sticky; |
||||
top: 0; |
||||
padding: 30rpx; |
||||
box-shadow: 0rpx 8rpx 16rpx 0rpx rgba(40, 48, 49, 0.04); |
||||
background-color: #fff; |
||||
z-index: 10; |
||||
|
||||
.search { |
||||
padding: 12rpx 32rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 16rpx; |
||||
background: rgba(246, 248, 249, 1); |
||||
border-radius: 140rpx 140rpx 140rpx 140rpx; |
||||
|
||||
.icon { |
||||
width: 40rpx; |
||||
height: 40rpx; |
||||
} |
||||
|
||||
.input { |
||||
flex: 1; |
||||
font-size: 28rpx; |
||||
} |
||||
|
||||
.input-place { |
||||
color: rgba(173, 179, 180, 1); |
||||
} |
||||
} |
||||
.navbar { |
||||
margin-top: 32rpx; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
.nav { |
||||
position: relative; |
||||
flex: 1; |
||||
text-align: center; |
||||
font-size: 32rpx; |
||||
color: rgba(105, 104, 110, 1); |
||||
transition: all 0.3s; |
||||
.dot { |
||||
padding: 0 4rpx; |
||||
position: absolute; |
||||
left: 50%; |
||||
transform: translateX(35rpx); |
||||
top: 0; |
||||
min-width: 18rpx; |
||||
height: 26rpx; |
||||
font-size: 18rpx; |
||||
line-height: 26rpx; |
||||
color: rgba(255, 255, 255, 1); |
||||
border-radius: 50%; |
||||
background: rgba(215, 108, 108, 1); |
||||
} |
||||
&.active { |
||||
font-size: 32rpx; |
||||
color: rgba(33, 29, 46, 1); |
||||
font-weight: bold; |
||||
&::after { |
||||
position: absolute; |
||||
bottom: -30rpx; |
||||
left: 50%; |
||||
transform: translateX(-50%); |
||||
content: ''; |
||||
width: 38rpx; |
||||
height: 8rpx; |
||||
border-radius: 12rpx; |
||||
background: rgba(185, 130, 255, 1); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.total-line { |
||||
padding: 34rpx 30rpx 0; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
|
||||
.wrap { |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 20rpx; |
||||
|
||||
.user { |
||||
font-size: 32rpx; |
||||
color: rgba(154, 161, 162, 1); |
||||
|
||||
.num { |
||||
margin-left: 10rpx; |
||||
color: rgba(43, 160, 184, 1); |
||||
} |
||||
} |
||||
|
||||
.message { |
||||
font-size: 32rpx; |
||||
color: rgba(43, 160, 184, 1); |
||||
} |
||||
} |
||||
|
||||
.btn { |
||||
padding: 10rpx 32rpx; |
||||
font-size: 32rpx; |
||||
line-height: 1; |
||||
color: rgba(98, 190, 208, 1); |
||||
background: #ffffff; |
||||
border-radius: 80rpx 80rpx 80rpx 80rpx; |
||||
border: 2rpx solid #62bed0; |
||||
display: flex; |
||||
align-items: center; |
||||
|
||||
.icon { |
||||
width: 32rpx; |
||||
height: 32rpx; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.list { |
||||
margin: 0 30rpx; |
||||
|
||||
.list-item { |
||||
margin-top: 24rpx; |
||||
padding: 32rpx; |
||||
background: #ffffff; |
||||
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
.avatar { |
||||
flex-shrink: 0; |
||||
.avatar-img { |
||||
width: 100rpx; |
||||
height: 100rpx; |
||||
border-radius: 50%; |
||||
} |
||||
} |
||||
.container { |
||||
flex: 1; |
||||
padding-left: 20rpx; |
||||
.title { |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
.name { |
||||
font-size: 36rpx; |
||||
color: rgba(33, 29, 46, 1); |
||||
font-weight: bold; |
||||
.edc { |
||||
margin-left: 16rpx; |
||||
display: inline-block; |
||||
padding: 0 8rpx; |
||||
font-size: 24rpx; |
||||
color: rgba(255, 255, 255, 1); |
||||
border-radius: 4rpx; |
||||
font-weight: normal; |
||||
background-color: rgba(185, 130, 255, 1); |
||||
} |
||||
} |
||||
} |
||||
.replay-date { |
||||
margin-top: 16rpx; |
||||
font-size: 28rpx; |
||||
color: #9aa1a2; |
||||
} |
||||
} |
||||
|
||||
.send { |
||||
padding: 8rpx 22rpx; |
||||
font-size: 24rpx; |
||||
color: rgba(185, 130, 255, 1); |
||||
line-height: 1; |
||||
border-radius: 32rpx 32rpx 32rpx 32rpx; |
||||
border: 2rpx solid rgba(185, 130, 255, 1); |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 8rpx; |
||||
.icon { |
||||
width: 28rpx; |
||||
height: 28rpx; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.popup { |
||||
padding: 92rpx 30rpx calc(30rpx + env(safe-area-inset-bottom)); |
||||
|
||||
.form { |
||||
max-height: 60vh; |
||||
overflow-y: auto; |
||||
overflow-x: hidden; |
||||
|
||||
.form-item { |
||||
margin-bottom: 48rpx; |
||||
|
||||
.f-title { |
||||
font-size: 36rpx; |
||||
color: rgba(40, 48, 49, 1); |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.select { |
||||
margin-top: 24rpx; |
||||
display: grid; |
||||
grid-template-columns: repeat(3, 1fr); |
||||
gap: 16rpx; |
||||
|
||||
.s-item { |
||||
padding: 18rpx 0; |
||||
text-align: center; |
||||
border-radius: 12rpx; |
||||
font-size: 28rpx; |
||||
color: rgba(103, 113, 114, 1); |
||||
background: #f2f4f5; |
||||
|
||||
&.active { |
||||
color: #fff; |
||||
background-color: rgba(103, 186, 202, 1); |
||||
} |
||||
} |
||||
} |
||||
|
||||
.custom { |
||||
margin-top: 16rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
gap: 12rpx; |
||||
|
||||
.c-item { |
||||
padding: 18rpx 24rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
font-size: 32rpx; |
||||
color: rgba(103, 113, 114, 1); |
||||
border-radius: 12rpx; |
||||
background-color: rgba(242, 244, 245, 1); |
||||
|
||||
.input { |
||||
padding: 0; |
||||
margin: 0; |
||||
width: 3em; |
||||
font-size: 32rpx; |
||||
line-height: 1; |
||||
} |
||||
|
||||
.input-place { |
||||
color: rgba(194, 201, 202, 1); |
||||
line-height: 1; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.date { |
||||
margin-top: 24rpx; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
|
||||
.picker { |
||||
flex: 1; |
||||
|
||||
.d-item { |
||||
flex: 1; |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: space-between; |
||||
padding: 18rpx 32rpx; |
||||
background: #f7f8f9; |
||||
border-radius: 12rpx 12rpx 12rpx 12rpx; |
||||
|
||||
.icon { |
||||
width: 32rpx; |
||||
height: 32rpx; |
||||
} |
||||
|
||||
.content { |
||||
font-size: 32rpx; |
||||
color: #677172; |
||||
|
||||
&:empty::after { |
||||
content: attr(data-place); |
||||
color: rgba(194, 201, 202, 1); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.sion { |
||||
flex-shrink: 0; |
||||
margin: 0 14rpx; |
||||
font-size: 32rpx; |
||||
color: #677172; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.p-footer { |
||||
margin-top: 32rpx; |
||||
display: flex; |
||||
justify-content: space-between; |
||||
align-items: center; |
||||
gap: 26rpx; |
||||
|
||||
.reset { |
||||
flex: 1; |
||||
height: 84rpx; |
||||
font-size: 36rpx; |
||||
color: rgba(103, 186, 202, 1); |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
box-sizing: border-box; |
||||
background: #ffffff; |
||||
border-radius: 98rpx 98rpx 98rpx 98rpx; |
||||
border: 2rpx solid #67baca; |
||||
} |
||||
|
||||
.submit { |
||||
flex: 1; |
||||
height: 84rpx; |
||||
font-size: 36rpx; |
||||
color: #ffffff; |
||||
display: flex; |
||||
justify-content: center; |
||||
align-items: center; |
||||
box-sizing: border-box; |
||||
background: rgba(103, 186, 202, 1); |
||||
border-radius: 98rpx 98rpx 98rpx 98rpx; |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,212 @@
@@ -0,0 +1,212 @@
|
||||
import dayjs from 'dayjs' |
||||
const filterColumns = {} |
||||
|
||||
const app = getApp<IAppOption>() |
||||
|
||||
Page({ |
||||
data: { |
||||
active: 0, |
||||
|
||||
list: [] as any[], |
||||
total: 0, |
||||
pagination: { |
||||
page: 1, |
||||
pages: 1, |
||||
count: 1, |
||||
}, |
||||
|
||||
// form
|
||||
Search: '', |
||||
HasAdl: 0, |
||||
DoubleStandard: 0, |
||||
AdlTime: 0, |
||||
AdlScore: [] as any, |
||||
AdlScoreChange: [], |
||||
AdlScoreChangeType: 0, |
||||
AdlScoreChangeMax: '', |
||||
AdlScoreChangeMin: '', |
||||
SteroidDailyDose: [] as any, |
||||
SteroidDailyDoseChange: [] as any, |
||||
IsThisWeekAdl: 0, |
||||
PharyngealSymptoms: 0, |
||||
AntibodyType: 0, |
||||
ThyroidAbnormal: 0, |
||||
PreviousConvulsion: 0, |
||||
TraditionalImmunosuppressant: 0, |
||||
MedicalInsuranceType: 0, |
||||
BindStartDate: '', |
||||
BindEndDate: '', |
||||
|
||||
HasAdlIndex: 0, |
||||
HasAdlName: '全部', |
||||
DoubleStandardIndex: 0, |
||||
DoubleStandardName: '全部', |
||||
AdlTimeIndex: 0, |
||||
AdlTimeName: '全部', |
||||
|
||||
...filterColumns, |
||||
}, |
||||
onLoad(options) { |
||||
this.setData({ |
||||
BindStartDate: options.BindStartDate || '', |
||||
BindEndDate: options.BindEndDate || '', |
||||
HasAdl: Number(options.HasAdl || ''), |
||||
DoubleStandard: Number(options.DoubleStandard || ''), |
||||
AdlScore: options.AdlScore ? options.AdlScore.split('-').map(Number) : [], |
||||
SteroidDailyDose: options.SteroidDailyDose ? options.SteroidDailyDose.split('-').map(Number) : [], |
||||
IsThisWeekAdl: Number(options.IsThisWeekAdl || ''), |
||||
}) |
||||
}, |
||||
onShow() { |
||||
app.waitLogin().then((_res) => { |
||||
app.zdMpBehavior({ doctor: true, PageName: 'PG_DOCTORPATIENTLIST' }) |
||||
this.getList() |
||||
}) |
||||
}, |
||||
handleReset() { |
||||
this.setData({ |
||||
Search: '', |
||||
HasAdl: 0, |
||||
HasAdlIndex: 0, |
||||
HasAdlName: '全部', |
||||
DoubleStandard: 0, |
||||
DoubleStandardIndex: 0, |
||||
DoubleStandardName: '全部', |
||||
AdlTime: 0, |
||||
AdlTimeName: '全部', |
||||
AdlScore: [], |
||||
AdlScoreChange: [], |
||||
AdlScoreChangeType: 0, |
||||
AdlScoreChangeMax: '', |
||||
AdlScoreChangeMin: '', |
||||
SteroidDailyDose: [], |
||||
SteroidDailyDoseChange: [], |
||||
IsThisWeekAdl: 0, |
||||
PharyngealSymptoms: 0, |
||||
AntibodyType: 0, |
||||
ThyroidAbnormal: 0, |
||||
PreviousConvulsion: 0, |
||||
TraditionalImmunosuppressant: 0, |
||||
MedicalInsuranceType: 0, |
||||
BindStartDate: '', |
||||
BindEndDate: '', |
||||
}) |
||||
this.getList() |
||||
}, |
||||
handleTapSearch() { |
||||
app.zdMpBehavior({ doctor: true, PageName: 'BTN_DOCTORPATIENTLISTSEARCH' }) |
||||
}, |
||||
handleNav(e) { |
||||
const { active } = e.currentTarget.dataset |
||||
this.setData({ |
||||
active, |
||||
}) |
||||
this.handleSearch() |
||||
}, |
||||
handleSearch() { |
||||
this.getList() |
||||
}, |
||||
getList(newPage = 1) { |
||||
const { active } = this.data |
||||
const params = { |
||||
search: this.data.Search, |
||||
} |
||||
const url = { |
||||
0: '?r=zd/doctor/patient/get-my-list', |
||||
1: '?r=zd/doctor/patient/get-my-list&IsEDC=1', |
||||
}[active] as string |
||||
wx.ajax({ |
||||
method: 'GET', |
||||
url, |
||||
data: { |
||||
page: newPage, |
||||
...params, |
||||
}, |
||||
}).then((res) => { |
||||
res.list.forEach((item) => { |
||||
if (item.BecomePatientTime) { |
||||
item.BecomePatientTime = dayjs(item.BecomePatientTime).format('YYYY-MM-DD') |
||||
} |
||||
}) |
||||
const list = res.page === 1 ? res.list : [...this.data.list, ...res.list] |
||||
this.setData({ |
||||
total: res.count, |
||||
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) |
||||
} |
||||
}, |
||||
handlePickerChange(e: any) { |
||||
const { key } = e.currentTarget.dataset |
||||
const index = e.detail.value |
||||
const data = this.data[`${key}Column`] |
||||
|
||||
this.setData({ |
||||
[`${key}Index`]: index, |
||||
[`${key}Name`]: data[index].value, |
||||
[`${key}`]: data[index].id, |
||||
}) |
||||
this.handleSearch() |
||||
}, |
||||
handleRadio(e: any) { |
||||
const { key, index } = e.currentTarget.dataset |
||||
const data = this.data[`${key}Column`] |
||||
this.setData({ |
||||
[`${key}`]: data[index].id, |
||||
[`${key}Name`]: data[index].value, |
||||
[`${key}Index`]: index, |
||||
}) |
||||
}, |
||||
handleCheckbox(e: any) { |
||||
const { index, key } = e.currentTarget.dataset |
||||
const data = this.data[`${key}Column`] |
||||
const oldValue = this.data[`${key}`] |
||||
const value = oldValue.includes(data[index].id) |
||||
? oldValue.filter((item: any) => item !== data[index].id) |
||||
: [...oldValue, data[index].id] |
||||
|
||||
this.setData({ |
||||
[`${key}`]: data[index].id ? value : [], |
||||
}) |
||||
}, |
||||
handleDetail(e: any) { |
||||
app.zdMpBehavior({ doctor: true, PageName: 'BTN_DOCTORPATIENTLISTVIEW' }) |
||||
const { index } = e.currentTarget.dataset |
||||
const item = this.data.list[index] |
||||
|
||||
wx.navigateTo({ |
||||
url: `/pages/d_patientDetail/index?id=${item.PatientId}`, |
||||
}) |
||||
}, |
||||
handleSend(e) { |
||||
const { index } = e.currentTarget.dataset |
||||
wx.navigateTo({ |
||||
url: `/pages/d_interactiveDoctor/index?patientId=${this.data.list[index].PatientId}`, |
||||
}) |
||||
}, |
||||
handleSendGroup() { |
||||
app.zdMpBehavior({ doctor: true, PageName: 'BTN_DOCTORPATIENTLISTMASSMESSAGE' }) |
||||
wx.navigateTo({ |
||||
url: '/pages/d_taskList/index', |
||||
}) |
||||
}, |
||||
onShareAppMessage() { |
||||
return { |
||||
title: '重症肌无力加油站,重拾生活掌控感!', |
||||
path: '/pages/d_patient/index', |
||||
} |
||||
}, |
||||
handleBack() { |
||||
wx.navigateBack() |
||||
}, |
||||
}) |
@ -0,0 +1,46 @@
@@ -0,0 +1,46 @@
|
||||
<wxs src="./index.wxs" module="tools" /> |
||||
<view class="page"> |
||||
<view class="page-header"> |
||||
<navBar title="患者列表" back home="{{false}}" bind:back="handleBack"></navBar> |
||||
<view class="search"> |
||||
<image class="icon" src="{{imageUrl}}icon48.png?t={{Timestamp}}"></image> |
||||
<input |
||||
type="text" |
||||
model:value="{{Search}}" |
||||
class="input" |
||||
placeholder-class="input-place" |
||||
placeholder="可根据姓名、手机号搜索患者" |
||||
confirm-type="search" |
||||
bindconfirm="handleSearch" |
||||
bind:tap="handleTapSearch" |
||||
/> |
||||
</view> |
||||
<view class="navbar"> |
||||
<view class="nav {{active===0 && 'active'}}" bind:tap="handleNav" data-active="{{0}}"> |
||||
我的患者 |
||||
<view class="dot" wx:if="{{unReadCount>0}}">{{unReadCount}}</view> |
||||
</view> |
||||
<view class="nav {{active===1 && 'active'}}" bind:tap="handleNav" data-active="{{1}}">EDC患者</view> |
||||
</view> |
||||
</view> |
||||
<view class="list"> |
||||
<view class="list-item" wx:for="{{list}}" wx:key="index" bind:tap="handleDetail" data-index="{{index}}"> |
||||
<view class="avatar"> |
||||
<image class="avatar-img" src="{{item.UserImg}}"></image> |
||||
</view> |
||||
<view class="container"> |
||||
<view class="title"> |
||||
<view class="name"> |
||||
{{item.Name}} |
||||
<view class="edc" wx:if="{{item.IsEDC==1}}">EDC患者</view> |
||||
</view> |
||||
</view> |
||||
<view class="replay-date">入组时间:{{item.BecomePatientTime}}</view> |
||||
</view> |
||||
<view class="send" catch:tap="handleSend" data-index="{{index}}">消息</view> |
||||
</view> |
||||
<pagination pagination="{{pagination}}"></pagination> |
||||
</view> |
||||
</view> |
||||
|
||||
<tabbar active="{{1}}"></tabbar> |
@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
function include(value, arr) { |
||||
for (var i = 0; i < arr.length; i++) { |
||||
if (arr[i] === value) { |
||||
return true |
||||
} |
||||
} |
||||
return false |
||||
} |
||||
|
||||
module.exports = { |
||||
include: include, |
||||
} |
@ -1,10 +1,9 @@
@@ -1,10 +1,9 @@
|
||||
{ |
||||
"navigationStyle": "custom", |
||||
"usingComponents": { |
||||
"zd-navBar": "/components/zd-navBar/navBar", |
||||
"navbar": "/components/navbar/index", |
||||
"van-icon": "@vant/weapp/icon/index", |
||||
"van-popup": "@vant/weapp/popup/index", |
||||
"ec-canvas": "/components/ec-canvas/ec-canvas", |
||||
"toast": "/components/toast/index" |
||||
"ec-canvas": "/components/ec-canvas/ec-canvas" |
||||
} |
||||
} |
||||
|
@ -0,0 +1,4 @@
@@ -0,0 +1,4 @@
|
||||
.page{ |
||||
width: 100vw; |
||||
height: 100vh; |
||||
} |
@ -0,0 +1 @@
@@ -0,0 +1 @@
|
||||
<image class="page" mode="aspectFill" src="{{imageUrl}}start.png?t={{Timestamp}}"></image> |