69 changed files with 6025 additions and 29 deletions
@ -0,0 +1,95 @@ |
|||||||
|
/* 日历主要颜色相关样式 */ |
||||||
|
|
||||||
|
.geneb_doctor_color, |
||||||
|
.geneb_doctor_weekend-color, |
||||||
|
.geneb_doctor_handle-color, |
||||||
|
.geneb_doctor_week-color { |
||||||
|
color: rgba(51, 51, 51, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_choosed { |
||||||
|
color:#fff; |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_today { |
||||||
|
color: #fff; |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_today.geneb_choosed { |
||||||
|
color: #fff; |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_date-disable { |
||||||
|
color: #c7c7c7; |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_choosed.geneb_date-disable { |
||||||
|
color: #e2e2e2; |
||||||
|
background-color: #c2afb6; |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_prev-month-date, |
||||||
|
.geneb_doctor_next-month-date { |
||||||
|
color: #e2e2e2; |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_normal-date { |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_todo-circle { |
||||||
|
border-color: #88d2ac; |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_todo-dot { |
||||||
|
background-color: #e54d42; |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_date-desc { |
||||||
|
color: #c2c2c2; |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_date-desc-lunar { |
||||||
|
color: #e54d42; |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_date-desc-disable { |
||||||
|
color: #e2e2e2; |
||||||
|
} |
||||||
|
|
||||||
|
.geneb_doctor_festival { |
||||||
|
color: #c2c2c2; |
||||||
|
} |
||||||
|
|
||||||
|
.date.doc { |
||||||
|
position: relative; |
||||||
|
background-color: #e5e5e5; |
||||||
|
} |
||||||
|
|
||||||
|
.date.doc::after { |
||||||
|
position: absolute; |
||||||
|
z-index: 1; |
||||||
|
top: -5rpx; |
||||||
|
right: -5rpx; |
||||||
|
content: ''; |
||||||
|
width: 17rpx; |
||||||
|
height: 24rpx; |
||||||
|
background-repeat: no-repeat; |
||||||
|
background-size: cover; |
||||||
|
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAABACAYAAABhspUgAAAAAXNSR0IArs4c6QAACAVJREFUaEPtmltsHFcZx/9nZu92bMdJSMitzoWkoXVKUrVV8wKk4gHxgJTwgKA8lhfgCZBoUJEqUYGA0AhRQUSpFJQIHlyqogZFIipUoKiAKJAYQkp9qR1ir9fe6+zuXM4FfWf2MrOJY+/aS0zlkRxZzsw5v/nP/3znO+c7DItcl4vFTWVl/7wg5EctKSK2knCVBFcKcrGH7vL3MvfwVnYeGbsaustgAAODCSDCDLU1Hp/Ym+o7fnrvB9+9U3NssT5ezWe+k5X8qwvCQ0FwVKSEswJg6sfmHH+cm2l0SZ3Tj8F84ChjiDID+1I9ly4ceuTjbQFfyM2MpDk/meEu8oKjJIUG9khh1YHEtUeupgPAWl3AAENEwzLEmIGd8dToq8OPDbcF/OLCrZFZ7p5Mcxc5wVEUAmQLT8mOLFHvfCwzF7ZEC3CcGdiRSIxeHD7WHvDZhZsjM56ngbMELDlsWVO4c4ExOd8E9i1R969vhzhj2BFPjv76cJvApPCtkMK8YYkVOALLUXh7PNE+8M/Iw553MiN8S1ii6eGVAI+mZ0PfhzHoAWfWBlyMMWyPJ0dfG368PUu8nJ8bWRD8ZPYOUWIlwH+YmQ4Dg8FoAPu22J5Ijb7ywKPtAV8uZZ/LC36qIH11q7UIIZRCp8CW5+Ly7M3bgVkzUlC0ONC74VcvHTj6ybaiBN38RmVhV9YxTBs2nrl08VTRrjy1gvEGZRh+HGu5epOp808ceehMFFEkDYN/f++Df1+sn0UnjtYHjB9+63tQ6ssrAV70WcZOyy8+/ZXltL0o8Hfzk3u4jc94Bh7nSm0uOZWNruvFozBMkzEG+iF3KGm5XJTAZFVIxRXCjnGkNB0pIwXPTWYcu6/MeYLAgh1HozHeE48VE6Y5vyFiXknFoufO73/4nWVZ4kwmc9BG5QVLiONcKSYYEFU0z/vd1P3rQaEiBYiwnSvr2Jgo5mFxTz9Gcbj+AjTjmczPKbbF41fej9jnzz5w9J/B9kMKP58e/1xO4ayjZNKlwaUUkqYJJZsDjRKfBcH1dN3pRa3dKpUwX61oqRs5RS1amLWpOmWYzv5k7xfO3X/0p/W+GsBnMtNPLQjvx1UlDUcKQDEkDKanYRJR6W+tMM0dzPPOYYMvmauWkStXfOBA1kYxWecWMJAwDHV/T9+Xzh088kLDSmfmpx9b8Lw3qpDxqv7MCilmaFBJ/9aMmZYcY05VK78aFw2DrGXBdp2AymSLQDIEAynD9B4c3PKRnwwduqIV/ubc5N+Kgj9EnqQEhxIQ+iwyEHPJIm+WSxBMj7TV4NX+lVIiXyzURGCg/NjP3ijdNEAzH/FsjcX/dWn42CH2g+zMJ9Ju5bWyFDrnFQB6GMGSur4N6Bpzq5hwnVUBbW2kWq3CcXyV6QoMvgZwghk43Dtwgn17burlrHBPaGAlEQFDnN68Bku41NDvrQLsVVK2FZhzAcsqNYCpP/rCZA2tsGGAgIeSvRfZs3Pj0wUhdpZr028vo/cj4OaHJ+WvVIpdUbfeaKHg26KpMoU3P7cgaALeHIun2TPpcaskeE9ZSp0v9DPTjwoB4Cytx+xyV4FLxSKE9FeL9TDnZ3D+KoSA+yIRm52aGVOWEiBLVKXEoBHRdtDRoXbNcQ9XuwxMliBrhIBr8VgDGwxJZoI9TcCSo6wkHCmxUQOHV8Zz3MVVu9JVha2SBR6YjCjlrK/1tCUMwwf+WgDYrQGLlsC1VoDJFiHgoMLBSLsWgClSJOvAJdncd6hbYi0B08DzLVFTeB24g+F5t0G3rnAHgt72yLrC93LieO952ARHVDWXQQVuYbqaWQ2rLtrGVJmhEljR6pyRFqS1fIKS+LjB/JmuNQ7vlrMYUs1dxp3udRwrvdJV4GedJ3BDbl6yj1UFdgsJVNMbQp0mt5UQ67OXBLknwOO/OILi2KYQXN++Bez99F/XJvA75x+G9e7GEFzvfTnsf/Iv68CNKhFla50OujWtsD3fA2tyMPSpM3/eBSebCv0tPljBlkfCm9i9Q1kkNofXiF0fdJO/HEb++tYlvXmnGwYOpTF04lrov7oOPDFyGIUb7+sIuP9gBns+Fd6zXgdunen+7xT+z28OIPOn3R1ZYsujU9jxsbf/tx6m3pQMVxzGLhyFNdUycezOYd9n3wrBMeP23c+ue/hO0q7pOLwOfC/Sy1uvfwDZa9tC4g8Oz2L78X8vOTjviYeXpLrLDSsC3qqy2KZyjeYH3EnsKf92JTxLPvti9UOYkv233eefWKEqE52rWGSJFNx9pxbu9Wbge2/VvOYVru/Ar+UN7cb+8FosGTRrz35RpulhE+zrs1TjoKKMf5BuIzN1cTFYRcpwD6NOd2scxRIVZZqbN/q0la7sN6tIumTwjdlxXUWqCAIW6KeiTMtxxXnh4boTPoK4ZJxq84ZssQgvAEwl3HpVXyusK0kG2HNzk/mSEP0VJfS5NCosKjq7USuAU15lKYkbXa4i3czlwOkUQe0KAtfrzf2RqMVOZ6Z+VxD8w1RUJEtElV9JDx4Ipd8nXFtX+btxOULg7ay/d9eohDL/tFX9PCZB70qk3mQ/ys0M5T3nWlXKXqrYcyaRpFtrRw7qiPQyRa3Aso8JLevdqAg/mptHwW1uZ9XPYxIwiUc/GyLRyuH+LcO6d4KuCv5SRYojrpQDFIcjMLTp60dcdMJel6D1YM+y0MI3uUIg57n4RyGLoueGE/xar2SLHsO0NsXi13b1DDz5/H0Hxv8Lo3UyF0Y2DrcAAAAASUVORK5CYII='); |
||||||
|
} |
||||||
|
|
||||||
|
.date.error { |
||||||
|
background-color: rgba(207, 83, 117, 1); |
||||||
|
border-radius: 50%; |
||||||
|
color: #fff; |
||||||
|
} |
||||||
|
|
||||||
|
.date.primary { |
||||||
|
background-color: rgba(37, 217, 200, 1); |
||||||
|
color: #fff; |
||||||
|
border-radius: 50%; |
||||||
|
} |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "输注感受日志", |
||||||
|
"usingComponents": {} |
||||||
|
} |
@ -0,0 +1,86 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
.page { |
||||||
|
padding: 48rpx 40rpx; |
||||||
|
.card1 { |
||||||
|
padding: 22rpx 32rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: #fff; |
||||||
|
.label { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.select { |
||||||
|
margin-top: 24rpx; |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
gap: 24rpx; |
||||||
|
.icon { |
||||||
|
width: 128rpx; |
||||||
|
height: 128rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.card2 { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 32rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: #fff; |
||||||
|
.title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.textarea { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 24rpx 32rpx; |
||||||
|
width: 100%; |
||||||
|
box-sizing: border-box; |
||||||
|
font-size: 32rpx; |
||||||
|
border-radius: 12rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
.place-textarea { |
||||||
|
color: rgba(207, 209, 213, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.footer { |
||||||
|
position: fixed; |
||||||
|
bottom: 0; |
||||||
|
left: 0; |
||||||
|
width: 100%; |
||||||
|
padding: 16rpx 40rpx calc(16rpx + env(safe-area-inset-bottom)); |
||||||
|
background-color: rgba(255, 255, 255, 1); |
||||||
|
display: flex; |
||||||
|
gap: 26rpx; |
||||||
|
box-sizing: border-box; |
||||||
|
.cancel { |
||||||
|
flex: 1; |
||||||
|
padding: 22rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(246, 74, 58, 1); |
||||||
|
border-radius: 84rpx; |
||||||
|
border: 1px solid #f64a3a; |
||||||
|
} |
||||||
|
.submit { |
||||||
|
flex: 1; |
||||||
|
padding: 22rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 32rpx; |
||||||
|
color: #fff; |
||||||
|
background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); |
||||||
|
border-radius: 84rpx; |
||||||
|
border: 1px solid #f64a3a; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,42 @@ |
|||||||
|
const app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
patientId: '', |
||||||
|
|
||||||
|
injectionFeel: '', |
||||||
|
injectionRemark: '', |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
this.setData({ |
||||||
|
patientId: options.id || '', |
||||||
|
}) |
||||||
|
app.waitLogin({ type: 2 }).then(() => { |
||||||
|
this.getDetail() |
||||||
|
}) |
||||||
|
}, |
||||||
|
getDetail() { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-injection-feel', |
||||||
|
data: { |
||||||
|
patientId: this.data.patientId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
...res, |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleSelect(e) { |
||||||
|
const { active } = e.currentTarget.dataset |
||||||
|
this.setData({ |
||||||
|
injectionFeel: active, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleBack() { |
||||||
|
wx.navigateBack() |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
@ -0,0 +1,31 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="card1"> |
||||||
|
<view class="label">整体治疗过程感受</view> |
||||||
|
<view class="select"> |
||||||
|
<view class="s-item"> |
||||||
|
<image wx:if="{{injectionFeel==1}}" class="icon" src="{{imageUrl}}icon44.png?t={{Timestamp}}"></image> |
||||||
|
<image wx:else class="icon" src="{{imageUrl}}icon49.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
|
||||||
|
<view class="s-item"> |
||||||
|
<image wx:if="{{injectionFeel==2}}" class="icon" src="{{imageUrl}}icon42.png?t={{Timestamp}}"></image> |
||||||
|
<image wx:else class="icon" src="{{imageUrl}}icon50.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="s-item"> |
||||||
|
<image wx:if="{{injectionFeel==3}}" class="icon" src="{{imageUrl}}icon43.png?t={{Timestamp}}"></image> |
||||||
|
<image wx:else class="icon" src="{{imageUrl}}icon83.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="card2"> |
||||||
|
<view class="title">整体治疗过程备注</view> |
||||||
|
<textarea |
||||||
|
class="textarea" |
||||||
|
disabled |
||||||
|
model:value="{{injectionRemark}}" |
||||||
|
placeholder-class="place-textarea" |
||||||
|
disable-default-padding |
||||||
|
placeholder="--" |
||||||
|
></textarea> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "BBM-H901输注记录", |
||||||
|
"usingComponents": {} |
||||||
|
} |
@ -0,0 +1,163 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
.page-tip{ |
||||||
|
padding: 18rpx; |
||||||
|
text-align: center; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(255, 163, 112, 1); |
||||||
|
background-color: rgba(255, 240, 218, 1); |
||||||
|
} |
||||||
|
.page { |
||||||
|
padding: 48rpx 40rpx; |
||||||
|
.container { |
||||||
|
border-radius: 24rpx; |
||||||
|
background: linear-gradient( 356deg, #1D6BFF 0%, #4F8DFF 100%); |
||||||
|
.title { |
||||||
|
padding: 20rpx 0 60rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
.card { |
||||||
|
margin-top: -40rpx; |
||||||
|
padding: 0 32rpx; |
||||||
|
border-radius: 22rpx; |
||||||
|
background-color: #fff; |
||||||
|
.row { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.label { |
||||||
|
width: 5em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.r-container { |
||||||
|
flex: 1; |
||||||
|
.picker { |
||||||
|
.picker-content { |
||||||
|
padding: 32rpx 0; |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
.content { |
||||||
|
text-align: right; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
&:empty::after { |
||||||
|
content: attr(data-place); |
||||||
|
color: rgba(207, 209, 213, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.columns { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 20rpx; |
||||||
|
.input { |
||||||
|
padding: 32rpx 0; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.input-place { |
||||||
|
color: rgba(207, 209, 213, 1); |
||||||
|
} |
||||||
|
.sub { |
||||||
|
flex-shrink: 0; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.body { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 0 32rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: #fff; |
||||||
|
.row { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.label { |
||||||
|
width: 5em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.r-container { |
||||||
|
flex: 1; |
||||||
|
.picker { |
||||||
|
.picker-content { |
||||||
|
padding: 32rpx 0; |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
.content { |
||||||
|
text-align: right; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
&:empty::after { |
||||||
|
content: attr(data-place); |
||||||
|
color: rgba(207, 209, 213, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.columns { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 20rpx; |
||||||
|
.input { |
||||||
|
padding: 32rpx 0; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.input-place { |
||||||
|
color: rgba(207, 209, 213, 1); |
||||||
|
} |
||||||
|
.sub { |
||||||
|
flex-shrink: 0; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.footer { |
||||||
|
position: fixed; |
||||||
|
bottom: 0; |
||||||
|
left: 0; |
||||||
|
width: 100%; |
||||||
|
padding: 16rpx 40rpx calc(16rpx + env(safe-area-inset-bottom)); |
||||||
|
background-color: rgba(255, 255, 255, 1); |
||||||
|
display: flex; |
||||||
|
gap: 26rpx; |
||||||
|
box-sizing: border-box; |
||||||
|
.cancel { |
||||||
|
flex: 1; |
||||||
|
padding: 22rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(246, 74, 58, 1); |
||||||
|
border-radius: 84rpx; |
||||||
|
border: 1px solid #f64a3a; |
||||||
|
} |
||||||
|
.submit { |
||||||
|
flex: 1; |
||||||
|
padding: 22rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 32rpx; |
||||||
|
color: #fff; |
||||||
|
background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); |
||||||
|
border-radius: 84rpx; |
||||||
|
border: 1px solid #f64a3a; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,78 @@ |
|||||||
|
const app = getApp<IAppOption>() |
||||||
|
import { calc } from 'a-calc' |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
patientId: '', |
||||||
|
|
||||||
|
injectionDate: '', |
||||||
|
injectionWeight: '', |
||||||
|
|
||||||
|
injectionDrugs: '', |
||||||
|
injectionNum: '', |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
this.setData({ |
||||||
|
patientId: options.id || '', |
||||||
|
}) |
||||||
|
app.waitLogin({ type: 2 }).then(() => { |
||||||
|
this.getDetail() |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleWeight(e) { |
||||||
|
const value = e.detail.value |
||||||
|
if (value) { |
||||||
|
const injectionDrugs = calc(`${value} * 1.25 | =0 ~+`) |
||||||
|
const injectionNum = calc(`${value} * 1.25 / 2 | =0 ~+`) |
||||||
|
this.setData({ |
||||||
|
injectionDrugs, |
||||||
|
injectionNum, |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
getDetail() { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-injection-info', |
||||||
|
data: { |
||||||
|
patientId: this.data.patientId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
...res, |
||||||
|
injectionDate: res.injectionDate || '', |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleBack() { |
||||||
|
wx.navigateBack() |
||||||
|
}, |
||||||
|
handleSubmit() { |
||||||
|
const { injectionDate, injectionWeight } = this.data |
||||||
|
if (!injectionDate) { |
||||||
|
wx.showToast({ |
||||||
|
title: '请选择输注时间', |
||||||
|
icon: 'none', |
||||||
|
}) |
||||||
|
return |
||||||
|
} |
||||||
|
if (!injectionWeight) { |
||||||
|
wx.showToast({ |
||||||
|
title: '请输入体重', |
||||||
|
icon: 'none', |
||||||
|
}) |
||||||
|
return |
||||||
|
} |
||||||
|
wx.ajax({ |
||||||
|
method: 'POST', |
||||||
|
url: '?r=wtx/treatment/save-injection-info', |
||||||
|
data: { |
||||||
|
injectionWeight, |
||||||
|
}, |
||||||
|
}).then(() => { |
||||||
|
wx.navigateBack() |
||||||
|
}) |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
@ -0,0 +1,71 @@ |
|||||||
|
<view class="page-tip">此信息仅供参考,请以实际临床医生的专业意见为准</view> |
||||||
|
<view class="page"> |
||||||
|
<view class="container"> |
||||||
|
<view class="title">BBM-H901输注信息</view> |
||||||
|
<view class="card"> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">输注时间</view> |
||||||
|
<view class="r-container"> |
||||||
|
<view class="picker"> |
||||||
|
<view class="picker-content"> |
||||||
|
<view class="content" data-place="--">{{injectionDate}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">体重</view> |
||||||
|
<view class="r-container"> |
||||||
|
<view class="columns"> |
||||||
|
<input |
||||||
|
disabled |
||||||
|
class="input" |
||||||
|
model:value="{{injectionWeight}}" |
||||||
|
type="digit" |
||||||
|
placeholder-class="input-place" |
||||||
|
placeholder="请输入" |
||||||
|
bindblur="handleWeight" |
||||||
|
/> |
||||||
|
<view class="sub">KG</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="body"> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">用药体积</view> |
||||||
|
<view class="r-container"> |
||||||
|
<view class="columns"> |
||||||
|
<input |
||||||
|
class="input" |
||||||
|
disabled |
||||||
|
value="{{injectionDrugs}}" |
||||||
|
type="number" |
||||||
|
placeholder-class="input-place" |
||||||
|
type="" |
||||||
|
placeholder="--" |
||||||
|
/> |
||||||
|
<view class="sub">ml</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">预计瓶数</view> |
||||||
|
<view class="r-container"> |
||||||
|
<view class="columns"> |
||||||
|
<input |
||||||
|
class="input" |
||||||
|
disabled |
||||||
|
value="{{injectionNum}}" |
||||||
|
type="number" |
||||||
|
placeholder-class="input-place" |
||||||
|
type="" |
||||||
|
placeholder="--" |
||||||
|
/> |
||||||
|
<view class="sub">瓶</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "出血管理", |
||||||
|
"usingComponents": {} |
||||||
|
} |
@ -0,0 +1,154 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
.page { |
||||||
|
padding-bottom: 200rpx; |
||||||
|
.header { |
||||||
|
padding: 16rpx 32rpx 32rpx; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 24rpx; |
||||||
|
.label { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(0, 0, 0, 1); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 12rpx; |
||||||
|
.icon { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 48rpx; |
||||||
|
height: 48rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.range { |
||||||
|
margin-top: 24rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 18rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(207, 209, 213, 1); |
||||||
|
.picker { |
||||||
|
flex: 1; |
||||||
|
.picker-content { |
||||||
|
padding: 22rpx 32rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
border-radius: 12rpx; |
||||||
|
.content { |
||||||
|
flex: 1; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
&:empty::after { |
||||||
|
content: attr(data-place); |
||||||
|
color: rgba(161, 164, 172, 0.5); |
||||||
|
} |
||||||
|
} |
||||||
|
.tril { |
||||||
|
width: 0; |
||||||
|
height: 0; |
||||||
|
border-style: solid; |
||||||
|
border-width: 12rpx 12rpx 0 12rpx; |
||||||
|
border-color: rgba(207, 209, 213, 1) transparent transparent transparent; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.clear { |
||||||
|
flex-shrink: 0; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 12rpx; |
||||||
|
.icon { |
||||||
|
width: 36rpx; |
||||||
|
height: 36rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.list { |
||||||
|
padding: 0 32rpx; |
||||||
|
margin-top: 32rpx; |
||||||
|
.list-item { |
||||||
|
display: flex; |
||||||
|
gap: 16rpx; |
||||||
|
.aside { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
flex-direction: column; |
||||||
|
gap: 16rpx; |
||||||
|
.order { |
||||||
|
margin-top: 8rpx; |
||||||
|
width: 16rpx; |
||||||
|
height: 16rpx; |
||||||
|
border-radius: 50%; |
||||||
|
background-clip: content-box; |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
border: 4rpx solid rgba(28, 107, 255, 0.3); |
||||||
|
} |
||||||
|
.line { |
||||||
|
flex: 1; |
||||||
|
border-right: 1px dashed rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.container { |
||||||
|
flex: 1; |
||||||
|
padding-bottom: 16rpx; |
||||||
|
.date { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
padding-bottom: 16rpx; |
||||||
|
} |
||||||
|
.wrap { |
||||||
|
padding: 0 32rpx; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 24rpx; |
||||||
|
.row { |
||||||
|
padding: 32rpx; |
||||||
|
display: flex; |
||||||
|
gap: 16rpx; |
||||||
|
border-bottom: 1px solid rgba(247, 247, 250, 1); |
||||||
|
.label { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(137, 141, 151, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
flex: 1; |
||||||
|
width: 5em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(0, 0, 0, 1); |
||||||
|
display: flex; |
||||||
|
gap: 10rpx; |
||||||
|
flex-wrap: wrap; |
||||||
|
} |
||||||
|
} |
||||||
|
.row-resver { |
||||||
|
padding: 32rpx; |
||||||
|
.label { |
||||||
|
width: 7em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(137, 141, 151, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
margin-top: 24rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(0, 0, 0, 1); |
||||||
|
line-height: 48rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.add { |
||||||
|
position: fixed; |
||||||
|
left: 50%; |
||||||
|
bottom: 142rpx; |
||||||
|
transform: translateX(-50%); |
||||||
|
width: 156rpx; |
||||||
|
height: 156rpx; |
||||||
|
border-radius: 50%; |
||||||
|
box-shadow: 0 20rpx 30rpx #f0b4af; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,84 @@ |
|||||||
|
const app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
patientId: '', |
||||||
|
|
||||||
|
beginDate: '', |
||||||
|
endDate: '', |
||||||
|
|
||||||
|
list: [] as any[], |
||||||
|
total: 0, |
||||||
|
pagination: { |
||||||
|
page: 1, |
||||||
|
pages: 1, |
||||||
|
count: 1, |
||||||
|
}, |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
this.setData({ |
||||||
|
patientId: options.id || '', |
||||||
|
}) |
||||||
|
}, |
||||||
|
onShow() { |
||||||
|
app.waitLogin({ type: 2 }).then(() => { |
||||||
|
this.getList() |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleClear() { |
||||||
|
this.setData({ |
||||||
|
beginDate: '', |
||||||
|
endDate: '', |
||||||
|
}) |
||||||
|
this.getList(1) |
||||||
|
}, |
||||||
|
handleChange() { |
||||||
|
const { beginDate, endDate } = this.data |
||||||
|
if (beginDate && endDate) { |
||||||
|
this.getList(1) |
||||||
|
} |
||||||
|
}, |
||||||
|
getList(newPage = 1) { |
||||||
|
const { beginDate, endDate } = this.data |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-bleeding-list', |
||||||
|
data: { |
||||||
|
page: newPage, |
||||||
|
beginDate, |
||||||
|
endDate, |
||||||
|
patientId: this.data.patientId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
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) |
||||||
|
} |
||||||
|
}, |
||||||
|
handleEdit(e) { |
||||||
|
const { id } = e.currentTarget.dataset |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/patient/pages/bloodDetail/index?id=${id}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleAdd() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/patient/pages/bloodAdd/index', |
||||||
|
}) |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
@ -0,0 +1,49 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="header"> |
||||||
|
<view class="range"> |
||||||
|
<picker class="picker" mode="date" end="{{endDate}}" model:value="{{beginDate}}" bind:change="handleChange"> |
||||||
|
<view class="picker-content"> |
||||||
|
<view class="content" data-place="开始时间">{{beginDate}}</view> |
||||||
|
<view class="tril"></view> |
||||||
|
</view> |
||||||
|
</picker> |
||||||
|
至 |
||||||
|
<picker class="picker" mode="date" start="{{beginDate}}" model:value="{{endDate}}" bind:change="handleChange"> |
||||||
|
<view class="picker-content"> |
||||||
|
<view class="content" data-place="结束时间">{{endDate}}</view> |
||||||
|
<view class="tril"></view> |
||||||
|
</view> |
||||||
|
</picker> |
||||||
|
<view class="clear" catchtap="handleClear"> |
||||||
|
<image class="icon" src="{{imageUrl}}icon98.png?t={{Timestamp}}"></image> |
||||||
|
重选 |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="list"> |
||||||
|
<view class="list-item" wx:for="{{list}}" wx:key="recordId" bind:tap="handleEdit" data-id="{{item.recordId}}"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="order"></view> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="date">{{item.bleedingDate}}</view> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">出血关节</view> |
||||||
|
<view class="content"> |
||||||
|
<view wx:for="{{item.bleedingPartList}}" wx:for-item="subItem" wx:key="bleedingId"> |
||||||
|
{{subItem.bleedingPartName}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row-resver" wx:if="{{item.remark}}"> |
||||||
|
<view class="label">其他情况备注</view> |
||||||
|
<view class="content">{{item.remark}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<pagination pagination="{{pagination}}"></pagination> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "病史信息", |
||||||
|
"usingComponents": {} |
||||||
|
} |
@ -0,0 +1,99 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(246, 246, 246, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.page { |
||||||
|
padding: 32rpx 40rpx; |
||||||
|
.container1 { |
||||||
|
padding: 8rpx 0 0; |
||||||
|
.c1_card1 { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 16rpx 32rpx; |
||||||
|
background: linear-gradient(180deg, #fffaf9 0%, #ffffff 14%, #ffffff 100%); |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.row { |
||||||
|
padding: 16rpx 0; |
||||||
|
display: flex; |
||||||
|
gap: 32rpx; |
||||||
|
.label { |
||||||
|
width: 6em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.c1_card2 { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 0 32rpx; |
||||||
|
background: linear-gradient(180deg, #fffaf9 0%, #ffffff 14%, #ffffff 100%); |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.row { |
||||||
|
padding: 32rpx 0; |
||||||
|
border-bottom: 1px solid rgba(247, 247, 250, 1); |
||||||
|
.wrap { |
||||||
|
display: flex; |
||||||
|
gap: 32rpx; |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 9em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
display: flex; |
||||||
|
gap: 10rpx; |
||||||
|
flex-wrap: wrap; |
||||||
|
} |
||||||
|
} |
||||||
|
.remark { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 22rpx 32rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
border-radius: 12rpx; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.row1 { |
||||||
|
padding: 32rpx 0; |
||||||
|
border-bottom: 1px solid rgba(247, 247, 250, 1); |
||||||
|
.wrap { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 32rpx; |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 11em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.line { |
||||||
|
width: 1px; |
||||||
|
height: 88rpx; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.remark { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 22rpx 32rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
border-radius: 12rpx; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,32 @@ |
|||||||
|
const app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
medical: { |
||||||
|
lastBleedingInfo: { |
||||||
|
bleedingPartList: [], |
||||||
|
}, |
||||||
|
}, |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
console.log("DEBUGPRINT[122]: index.ts:11: options=", options) |
||||||
|
app.waitLogin({ type: 2 }).then(() => { |
||||||
|
this.getDetail(options.id) |
||||||
|
}) |
||||||
|
}, |
||||||
|
getDetail(patientId: string) { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-medical-history-info', |
||||||
|
data: { |
||||||
|
patientId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
medical: res, |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
@ -0,0 +1,95 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="container1"> |
||||||
|
<view class="c1_card1"> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">出生年月</view> |
||||||
|
<view class="content">{{medical.birthMonth}}({{medical.ageYear}}岁)</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">确诊时间</view> |
||||||
|
<view class="content"> |
||||||
|
{{medical.diagnosisTime || '未填写'}} |
||||||
|
<block wx:if="{{medical.diagnosisAge}}">({{medical.diagnosisAge}})</block> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">您的体重</view> |
||||||
|
<view class="content" wx:if="{{medical.weight}}">{{medical.weight}} kg</view> |
||||||
|
<div class="content" wx:else>未填写</div> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c1_card1"> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">凝血因子</view> |
||||||
|
<view class="content" wx:if="{{medical.clottingFactor}}">{{medical.clottingFactor}}%</view> |
||||||
|
<view class="content" wx:else>未填写</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">治疗方案</view> |
||||||
|
<view class="content">{{medical.treatmentPlanName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">FIX暴露日</view> |
||||||
|
<view class="content" wx:if="{{medical.fixExposureDay}}">{{medical.fixExposureDay}}个</view> |
||||||
|
<view class="content" wx:else>未填写</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c1_card2"> |
||||||
|
<view class="row"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label">既往FIX抑制物病史</view> |
||||||
|
<view class="content">{{medical.beforeFixHistoryName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label">既往肝脏疾病病史</view> |
||||||
|
<view class="content">{{medical.beforeLiverHistoryName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
<view class="remark" wx:if="{{medical.liverRecord}}">{{medical.liverRecord}}</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label">您是否有饮酒史</view> |
||||||
|
<view class="content">{{medical.drinkingHistoryName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label">您是否有过敏史</view> |
||||||
|
<view class="content">{{medical.allergyHistoryName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
<view class="remark" wx:if="{{medical.allergyRecord}}">{{medical.allergyRecord}}</view> |
||||||
|
</view> |
||||||
|
<view class="row1"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label"> |
||||||
|
<view>您是否可能存在不适合</view> |
||||||
|
<view>使用糖皮质激素的情况?</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="content">{{medical.isNotGlucocorticoidName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
<view class="remark" wx:if="{{medical.medicalHistoryInfo}}">{{medical.medicalHistoryInfo}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c1_card2"> |
||||||
|
<view class="row"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label" style="width: 4em">靶关节</view> |
||||||
|
<view class="content"> |
||||||
|
<view wx:for="{{medical.lastBleedingInfo.bleedingPartList}}" wx:key="bleedingId"> |
||||||
|
{{item.bleedingPartName}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label">最近6个月出血</view> |
||||||
|
</view> |
||||||
|
<view class="remark" wx:if="{{medical.lastBleedingInfo.remark}}">{{medical.lastBleedingInfo.remark}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
"navigationStyle": "custom", |
||||||
|
"usingComponents": { |
||||||
|
"navbar": "/components/navbar/index", |
||||||
|
"popup": "/components/popup/index" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,243 @@ |
|||||||
|
.page { |
||||||
|
height: 100vh; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
.pgae-header { |
||||||
|
flex-shrink: 0; |
||||||
|
padding: 0 40rpx 38rpx; |
||||||
|
background: linear-gradient(180deg, rgba(241, 251, 251, 0.70) 0%, #ffffff 100%); |
||||||
|
box-shadow: 0rpx 8rpx 8rpx 0rpx rgba(0, 0, 0, 0.07); |
||||||
|
border-radius: 0rpx 0rpx 0rpx 0rpx; |
||||||
|
.title { |
||||||
|
font-size: 40rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.content { |
||||||
|
margin-top: 6rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.page-container { |
||||||
|
flex: 1; |
||||||
|
.swiper { |
||||||
|
height: 100%; |
||||||
|
.swiper-item { |
||||||
|
position: relative; |
||||||
|
.scroll-view { |
||||||
|
height: 100%; |
||||||
|
.scroll-view-container { |
||||||
|
height: 100%; |
||||||
|
padding: 88rpx 40rpx 0; |
||||||
|
box-sizing: border-box; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
.row { |
||||||
|
flex-shrink: 0; |
||||||
|
display: flex; |
||||||
|
gap: 24rpx; |
||||||
|
.aside { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 64rpx; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
align-items: center; |
||||||
|
.num { |
||||||
|
width: 64rpx; |
||||||
|
height: 64rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 38rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
background: linear-gradient( 356deg, #1D6BFF 0%, #4F8DFF 100%); |
||||||
|
box-shadow: 0rpx 13rpx 26rpx 0rpx rgba(151, 151, 151, 0.05); |
||||||
|
border-radius: 50%; |
||||||
|
} |
||||||
|
.radio { |
||||||
|
width: 48rpx; |
||||||
|
height: 48rpx; |
||||||
|
} |
||||||
|
.slow-line { |
||||||
|
height: 32rpx; |
||||||
|
width: 4rpx; |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
.line { |
||||||
|
flex: 1; |
||||||
|
width: 4rpx; |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.container { |
||||||
|
padding-bottom: 84rpx; |
||||||
|
.c-header { |
||||||
|
.title { |
||||||
|
font-size: 44rpx; |
||||||
|
color: rgba(28, 107, 255, 1); |
||||||
|
line-height: 64rpx; |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.content { |
||||||
|
margin-top: 20rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
line-height: 40rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.c-body { |
||||||
|
padding: 18rpx 42rpx; |
||||||
|
min-height: 104rpx; |
||||||
|
box-sizing: border-box; |
||||||
|
background: #ffffff; |
||||||
|
border-radius: 96rpx 96rpx 96rpx 96rpx; |
||||||
|
border: 4rpx solid rgba(28, 107, 255, 1); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 32rpx; |
||||||
|
.wrap { |
||||||
|
.content { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.feel { |
||||||
|
margin: -20rpx 0; |
||||||
|
width: 96rpx; |
||||||
|
height: 96rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.hostipl-name { |
||||||
|
margin-top: 4rpx; |
||||||
|
padding-left: 28rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
line-height: 40rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.icon { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 40rpx; |
||||||
|
height: 40rpx; |
||||||
|
} |
||||||
|
.status-icon { |
||||||
|
position: relative; |
||||||
|
width: 80rpx; |
||||||
|
height: 40rpx; |
||||||
|
.s-icon { |
||||||
|
position: absolute; |
||||||
|
top: 50%; |
||||||
|
left: 0; |
||||||
|
transform: translateY(-50%); |
||||||
|
width: 100rpx; |
||||||
|
height: 100rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.c-footer { |
||||||
|
margin-top: 16rpx; |
||||||
|
margin-bottom: -40rpx; |
||||||
|
padding-left: 44rpx; |
||||||
|
.content { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.bind-doctor { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(28, 107, 255, 1); |
||||||
|
line-height: 40rpx; |
||||||
|
} |
||||||
|
.inhibitors-content { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
.green { |
||||||
|
color: rgba(53, 177, 63, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.row:first-of-type { |
||||||
|
.container { |
||||||
|
padding-bottom: 48rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.next { |
||||||
|
padding: 34rpx; |
||||||
|
width: 472rpx; |
||||||
|
height: 104rpx; |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
gap: 32rpx; |
||||||
|
background: linear-gradient( 356deg, #1D6BFF 0%, #4F8DFF 100%); |
||||||
|
box-shadow: 0rpx 8rpx 16rpx 0rpx rgba(151, 151, 151, 0.05); |
||||||
|
border-radius: 112rpx 112rpx 112rpx 112rpx; |
||||||
|
box-sizing: border-box; |
||||||
|
.icon { |
||||||
|
width: 48rpx; |
||||||
|
height: 48rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.grow-row { |
||||||
|
flex: 1; |
||||||
|
min-height: 80rpx; |
||||||
|
display: flex; |
||||||
|
gap: 24rpx; |
||||||
|
.aside { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 64rpx; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
align-items: center; |
||||||
|
.line { |
||||||
|
flex: 1; |
||||||
|
width: 4rpx; |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.guide1 { |
||||||
|
position: fixed; |
||||||
|
z-index: 10; |
||||||
|
top: 640rpx; |
||||||
|
right: 86rpx; |
||||||
|
width: 172rpx; |
||||||
|
height: 256rpx; |
||||||
|
} |
||||||
|
.guide2 { |
||||||
|
position: fixed; |
||||||
|
z-index: 10; |
||||||
|
top: 660rpx; |
||||||
|
right: 86rpx; |
||||||
|
width: 172rpx; |
||||||
|
height: 256rpx; |
||||||
|
} |
||||||
|
.guide3 { |
||||||
|
position: fixed; |
||||||
|
z-index: 10; |
||||||
|
top: 620rpx; |
||||||
|
right: 86rpx; |
||||||
|
width: 172rpx; |
||||||
|
height: 256rpx; |
||||||
|
} |
||||||
|
.guide4 { |
||||||
|
position: fixed; |
||||||
|
z-index: 10; |
||||||
|
top: 620rpx; |
||||||
|
right: 86rpx; |
||||||
|
width: 172rpx; |
||||||
|
height: 256rpx; |
||||||
|
} |
@ -0,0 +1,204 @@ |
|||||||
|
const app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
popupShow: false, |
||||||
|
// popupType: 'selectStatus',
|
||||||
|
// popupType: 'selectStatusComplete',
|
||||||
|
// popupType: 'TCenter', // 诊疗中心
|
||||||
|
popupType: 'TCenterEnd', // 诊疗中心完成
|
||||||
|
popupParams: { |
||||||
|
// position: 'bottom',
|
||||||
|
}, |
||||||
|
|
||||||
|
current: 0, |
||||||
|
patientId: '', |
||||||
|
patientInfo: {}, |
||||||
|
|
||||||
|
periodInfo1: {} as any, |
||||||
|
periodInfo2: {} as any, |
||||||
|
periodInfo3: {} as any, |
||||||
|
periodInfo4: { followUpWeekInfo: {} } as any, |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
this.setData({ |
||||||
|
current: Number(options.current), |
||||||
|
patientId: options.id, |
||||||
|
}) |
||||||
|
}, |
||||||
|
onShow() { |
||||||
|
app.waitLogin({ type: 2 }).then(() => { |
||||||
|
this.handleUpdate() |
||||||
|
this.getDetail() |
||||||
|
}) |
||||||
|
}, |
||||||
|
getDetail() { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/patient/get-detail', |
||||||
|
data: { |
||||||
|
patientId: this.data.patientId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
patientInfo: { |
||||||
|
...res.patientInfo, |
||||||
|
}, |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleUpdate() { |
||||||
|
this.getPeriodInfo(this.data.current + 1, `periodInfo${this.data.current + 1}`) |
||||||
|
}, |
||||||
|
getPeriodInfo(period: number, key: string) { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-period-info', |
||||||
|
data: { |
||||||
|
period, |
||||||
|
patientId: this.data.patientId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
[key]: res, |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleSwiperChange(e) { |
||||||
|
this.setData({ |
||||||
|
current: e.detail.current, |
||||||
|
}) |
||||||
|
this.handleUpdate() |
||||||
|
}, |
||||||
|
handleSelectHostipal() { |
||||||
|
const { periodInfo1 } = this.data |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/doctor/pages/courseHostipal/index?id=${periodInfo1.hospitalId}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleCasesAdd() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/doctor/pages/casesDetail/index?id=${this.data.patientId}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleCheckRedGreen() { |
||||||
|
this.setData({ |
||||||
|
popupShow: true, |
||||||
|
popupType: 'selectStatus', |
||||||
|
popupParams: { position: 'bottom' }, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleTCenter() { |
||||||
|
const { periodInfo2 } = this.data |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/common/get-treatment-center-list', |
||||||
|
data: { |
||||||
|
patientId: this.data.patientId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
popupShow: true, |
||||||
|
popupType: 'TCenter', |
||||||
|
popupParams: { |
||||||
|
hospitalId: periodInfo2.hospitalId, |
||||||
|
list: res, |
||||||
|
}, |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
handlePreDiagnosisReport(e: any) { |
||||||
|
const { period } = e.currentTarget.dataset |
||||||
|
const { examId } = this.data[`periodInfo${period}`] |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/doctor/pages/preDiagnosisReport/index?examid=${examId}&period=${period}&id=${this.data.patientId}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleAavReport() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/patient/pages/aavReport/index', |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleBbmReport() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/doctor/pages/bbmReport/index?id=${this.data.patientId}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleBbmRemark() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/doctor/pages/bbmRemark/index?id=${this.data.patientId}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
hadnleInjectDate() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/patient/pages/injectDate/index', |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleInhibitorsManage(e: any) { |
||||||
|
const { period } = e.currentTarget.dataset |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/doctor/pages/inhibitorsManageList/index?period=${period}&id=${this.data.patientId}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleFollowPlan() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/doctor/pages/followPlan/index', |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleLastDiagnosisReport() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/doctor/pages/revisitRecord/index?period=4&id=${this.data.patientId}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleColtStat() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/patient/pages/coltStat/index', |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleBlood() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/doctor/pages/blood/index?id=${this.data.patientId}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleNext() { |
||||||
|
this.setData({ |
||||||
|
current: this.data.current + 1, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handlePopupOk(e) { |
||||||
|
const { popupType } = this.data |
||||||
|
const { id } = e.detail |
||||||
|
if (popupType === 'TCenter') { |
||||||
|
wx.ajax({ |
||||||
|
method: 'POST', |
||||||
|
url: '?r=wtx/doctor/treatment/save-t-hospital', |
||||||
|
data: { |
||||||
|
hospitalId: id, |
||||||
|
patientId: this.data.patientId, |
||||||
|
}, |
||||||
|
}).then(() => { |
||||||
|
this.setData({ |
||||||
|
popupShow: true, |
||||||
|
popupType: 'TCenterEnd', |
||||||
|
popupParams: { |
||||||
|
close: true, |
||||||
|
}, |
||||||
|
}) |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
handlePopupCancel() { |
||||||
|
const { popupType } = this.data |
||||||
|
if (popupType === 'TCenterEnd') { |
||||||
|
this.handleUpdate() |
||||||
|
} |
||||||
|
this.setData({ |
||||||
|
popupShow: false, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleBack() { |
||||||
|
wx.navigateBack() |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
@ -0,0 +1,504 @@ |
|||||||
|
<page-meta page-style="{{ popupShow ? 'overflow: hidden;' : '' }}" /> |
||||||
|
<navbar fixed custom-style="background:{{background}}" back> |
||||||
|
<van-icon name="arrow-left" slot="left" size="18px" color="#000" bind:tap="handleBack" /> |
||||||
|
</navbar> |
||||||
|
<view class="page"> |
||||||
|
<view class="pgae-header" style="padding-top:{{pageTop + 30}}px"> |
||||||
|
<view class="title">{{patientInfo.patientName}}的专属诊疗流程</view> |
||||||
|
<view class="content">从开始治疗到长期随访全周期流程</view> |
||||||
|
</view> |
||||||
|
<view class="page-container"> |
||||||
|
<swiper class="swiper" current="{{current}}" vertical bindchange="handleSwiperChange"> |
||||||
|
<!-- 阶段一 --> |
||||||
|
<swiper-item class="swiper-item"> |
||||||
|
<scroll-view class="scroll-view" scroll-y show-scrollbar="{{false}}"> |
||||||
|
<view class="scroll-view-container"> |
||||||
|
<view class="row"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="num">1</view> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="title">准备您的诊前筛查</view> |
||||||
|
<view class="content"> |
||||||
|
<view>关注每次检查</view> |
||||||
|
<view>是对自己和家人的关爱!</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handleSelectHostipal"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo1.hospitalName}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">1.{{patientInfo.patientName}}诊前检查医院</view> |
||||||
|
<view class="hostipl-name" wx:if="{{periodInfo1.hospitalName}}">{{periodInfo1.hospitalName}}</view> |
||||||
|
</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="c-footer"></view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handleCasesAdd"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo1.isMedicalHistory===1}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">2.病史信息</view> |
||||||
|
</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handlePreDiagnosisReport" data-period="1"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo1.isExamReport===1}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">3.诊前检查</view> |
||||||
|
</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="next" bind:tap="handleNext"> |
||||||
|
下一阶段 |
||||||
|
<image class="icon" src="{{imageUrl}}icon109.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="grow-row"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"></view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</scroll-view> |
||||||
|
</swiper-item> |
||||||
|
<!-- 阶段二 --> |
||||||
|
<swiper-item class="swiper-item"> |
||||||
|
<scroll-view class="scroll-view" scroll-y show-scrollbar="{{false}}"> |
||||||
|
<view class="scroll-view-container"> |
||||||
|
<view class="row"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="num">2</view> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="title">基因治疗中心检查</view> |
||||||
|
<view class="content"> |
||||||
|
<view>做好每一步检查,</view> |
||||||
|
<view>向美好生活继续迈进!</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handleTCenter"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo2.hospitalName}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">1.治疗中心</view> |
||||||
|
<view class="hostipl-name" wx:if="{{periodInfo2.hospitalName}}">{{periodInfo2.hospitalName}}</view> |
||||||
|
</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="c-footer"></view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handlePreDiagnosisReport" data-period="2"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo2.isExamReport===1}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">2.我的检查报告</view> |
||||||
|
</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="next" bind:tap="handleNext"> |
||||||
|
下一阶段 |
||||||
|
<image class="icon" src="{{imageUrl}}icon109.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="grow-row"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"></view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</scroll-view> |
||||||
|
</swiper-item> |
||||||
|
<!-- 阶段三 --> |
||||||
|
<swiper-item class="swiper-item"> |
||||||
|
<scroll-view class="scroll-view" scroll-y show-scrollbar="{{false}}"> |
||||||
|
<view class="scroll-view-container"> |
||||||
|
<view class="row"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="num">3</view> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="title">基因治疗-注射日</view> |
||||||
|
<view class="content"> |
||||||
|
<view>重要的日子,终于要来了~</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo3.injectionDate}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">1.注射日</view> |
||||||
|
<view class="hostipl-name" wx:if="{{periodInfo3.injectionDate}}"> |
||||||
|
{{periodInfo3.injectionDate}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handleInhibitorsManage" data-period="3"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo3.immuneCount>0}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">2.免疫抑制剂使用记录</view> |
||||||
|
</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="c-footer"> |
||||||
|
<view class="inhibitors-content" wx:if="{{periodInfo3.immuneCount>0}}"> |
||||||
|
已记录 |
||||||
|
<text class="green">{{periodInfo3.immuneCount}}</text> |
||||||
|
次 |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handleBbmReport"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo3.isInjection==1}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">3.BBM-H901输注记录</view> |
||||||
|
</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="c-footer"> |
||||||
|
<view class="content" wx:if="{{periodInfo3.isInjection == 1}}">已完成</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handleBbmRemark"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo3.isInjectionFeel==1}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content"> |
||||||
|
4.此次输注感受如何? |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo3.injectionFeel==1}}" |
||||||
|
class="feel" |
||||||
|
src="{{imageUrl}}icon44.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image |
||||||
|
wx:elif="{{periodInfo3.injectionFeel==2}}" |
||||||
|
class="feel" |
||||||
|
src="{{imageUrl}}icon42.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image |
||||||
|
wx:elif="{{periodInfo3.injectionFeel==3}}" |
||||||
|
class="feel" |
||||||
|
src="{{imageUrl}}icon43.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="feel" src="{{imageUrl}}icon49.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="next" bind:tap="handleNext"> |
||||||
|
下一阶段 |
||||||
|
<image class="icon" src="{{imageUrl}}icon109.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="grow-row"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"></view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</scroll-view> |
||||||
|
</swiper-item> |
||||||
|
<!-- 阶段四 --> |
||||||
|
<swiper-item class="swiper-item"> |
||||||
|
<scroll-view class="scroll-view" scroll-y show-scrollbar="{{false}}"> |
||||||
|
<view class="scroll-view-container"> |
||||||
|
<view class="row"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="num">4</view> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="title">长期随访</view> |
||||||
|
<view class="content"> |
||||||
|
<view>世界本该如此美好,现在也属于你</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handleFollowPlan"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo4.isVisitFollowUp==1}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">1.查看患者随访计划</view> |
||||||
|
</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="c-footer"> |
||||||
|
<view |
||||||
|
class="content" |
||||||
|
wx:if="{{periodInfo4.followUpWeekInfo.iYear || periodInfo4.followUpWeekInfo.iYearDay || periodInfo4.followUpWeekInfo.iWeek}}" |
||||||
|
> |
||||||
|
当前是注射后 |
||||||
|
<block wx:if="{{periodInfo4.followUpWeekInfo.iYear}}"> |
||||||
|
第{{periodInfo4.followUpWeekInfo.iYear}}年 |
||||||
|
<block wx:if="{{periodInfo4.followUpWeekInfo.iYearDay}}"> |
||||||
|
第{{periodInfo4.followUpWeekInfo.iYearDay}}天 |
||||||
|
</block> |
||||||
|
</block> |
||||||
|
<block wx:if="{{periodInfo4.followUpWeekInfo.iWeek}}"> |
||||||
|
第{{periodInfo4.followUpWeekInfo.iWeek}}周 |
||||||
|
</block> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handleLastDiagnosisReport"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo4.isRevisit==1}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">2.最新复诊检查记录</view> |
||||||
|
</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="c-footer" wx:if="{{periodInfo4.revisitDate}}"> |
||||||
|
<view class="content">最近录入:{{periodInfo4.revisitDate}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handleColtStat"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo4.isVisitHealthChange==1}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">3.查看患者健康变化</view> |
||||||
|
</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handleInhibitorsManage" data-period="4"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo4.isImmune==1}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">4.免疫抑制剂记录</view> |
||||||
|
</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="c-footer" wx:if="{{periodInfo4.immuneDate}}"> |
||||||
|
<view class="content">最近录入:{{periodInfo4.immuneDate}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row" bind:tap="handleBlood"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="slow-line"></view> |
||||||
|
<image |
||||||
|
wx:if="{{periodInfo4.isBleed==1}}" |
||||||
|
class="radio" |
||||||
|
src="{{imageUrl}}icon29.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wx:else class="radio" src="{{imageUrl}}icon28.png?t={{Timestamp}}"></image> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="content">5.出血记录</view> |
||||||
|
</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="c-footer" wx:if="{{periodInfo4.bleedDate}}"> |
||||||
|
<view class="content">最近录入:{{periodInfo4.bleedDate}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="grow-row"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line"></view> |
||||||
|
</view> |
||||||
|
<view class="container"></view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</scroll-view> |
||||||
|
</swiper-item> |
||||||
|
</swiper> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
|
||||||
|
<image |
||||||
|
class="guide1" |
||||||
|
wx:if="{{current==0 && periodInfo1.isEnterPeriod==2}}" |
||||||
|
src="{{imageUrl}}gif1.gif?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image |
||||||
|
class="guide2" |
||||||
|
wx:if="{{current==1 && periodInfo2.isEnterPeriod==2}}" |
||||||
|
src="{{imageUrl}}gif1.gif?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image |
||||||
|
class="guide3" |
||||||
|
wx:if="{{current==2 && periodInfo3.isEnterPeriod==2}}" |
||||||
|
src="{{imageUrl}}gif1.gif?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image |
||||||
|
class="guide4" |
||||||
|
wx:if="{{current==3 && periodInfo4.isEnterPeriod==2}}" |
||||||
|
src="{{imageUrl}}gif1.gif?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
|
||||||
|
<popup |
||||||
|
show="{{popupShow}}" |
||||||
|
type="{{popupType}}" |
||||||
|
params="{{popupParams}}" |
||||||
|
bind:ok="handlePopupOk" |
||||||
|
bind:cancel="handlePopupCancel" |
||||||
|
></popup> |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "诊前检查医院", |
||||||
|
"usingComponents": {} |
||||||
|
} |
@ -0,0 +1,44 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(246, 246, 246, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.page { |
||||||
|
padding: 154rpx 40rpx; |
||||||
|
.card { |
||||||
|
position: relative; |
||||||
|
background-color: #fff; |
||||||
|
padding: 118rpx 40rpx 50rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
.c-img { |
||||||
|
position: absolute; |
||||||
|
top: -68rpx; |
||||||
|
left: 50%; |
||||||
|
transform: translateX(-50%); |
||||||
|
width: 137rpx; |
||||||
|
height: 137rpx; |
||||||
|
border: 16rpx solid #fff; |
||||||
|
border-radius: 14rpx; |
||||||
|
} |
||||||
|
.title { |
||||||
|
text-align: center; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
line-height: 36rpx; |
||||||
|
.tag { |
||||||
|
display: inline-block; |
||||||
|
font-size: 22rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
background-color: rgba(255, 186, 1, 1); |
||||||
|
border-radius: 8rpx; |
||||||
|
padding: 0 10rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.site { |
||||||
|
margin-top: 28rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
const app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
detail: {} as any, |
||||||
|
}, |
||||||
|
onLoad(options: any) { |
||||||
|
app.waitLogin({ type: 2 }).then(() => { |
||||||
|
this.getDetail(options.id) |
||||||
|
}) |
||||||
|
}, |
||||||
|
getDetail(id: string) { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-hospital', |
||||||
|
data: { |
||||||
|
hospitalId: id, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
detail: res, |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
@ -0,0 +1,10 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="card"> |
||||||
|
<image class="c-img" src="{{detail.hospitalImg}}"></image> |
||||||
|
<view class="title"> |
||||||
|
{{detail.hospitalName}} |
||||||
|
<view class="tag">{{detail.hospitalClassificationName}}{{detail.hospitalLevelName}}</view> |
||||||
|
</view> |
||||||
|
<view class="site">{{detail.provinceName}}{{detail.cityName}}{{detail.countyName}}{{detail.address}}</view> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
"navigationStyle": "custom", |
||||||
|
"usingComponents": { |
||||||
|
"navbar": "/components/navbar/index", |
||||||
|
"calendar": "/components/calendar/index" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,607 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(246, 246, 246, 1); |
||||||
|
} |
||||||
|
.page { |
||||||
|
padding: 40rpx 40rpx 200rpx; |
||||||
|
.user { |
||||||
|
padding-top: 34rpx; |
||||||
|
display: flex; |
||||||
|
.avatar { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 108rpx; |
||||||
|
height: 108rpx; |
||||||
|
border: 2px solid #fff; |
||||||
|
border-radius: 50%; |
||||||
|
box-shadow: 0rpx 8rpx 16rpx 0rpx rgba(0, 0, 0, 0.16); |
||||||
|
.a-img { |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
border-radius: inherit; |
||||||
|
} |
||||||
|
} |
||||||
|
.wrap { |
||||||
|
padding-left: 20rpx; |
||||||
|
flex: 1; |
||||||
|
.w-header { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 16rpx; |
||||||
|
.name { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.age { |
||||||
|
padding: 0 14rpx; |
||||||
|
border-radius: 20rpx; |
||||||
|
background-color: rgba(32, 196, 255, 1); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 6rpx; |
||||||
|
font-size: 24rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
line-height: 32rpx; |
||||||
|
.icon { |
||||||
|
width: 28rpx; |
||||||
|
height: 28rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.site { |
||||||
|
padding: 0 14rpx; |
||||||
|
border-radius: 20rpx; |
||||||
|
background-color: rgba(248, 166, 133, 1); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 6rpx; |
||||||
|
font-size: 24rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
line-height: 32rpx; |
||||||
|
.icon { |
||||||
|
width: 28rpx; |
||||||
|
height: 28rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.w-footer { |
||||||
|
margin-top: 18rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.info { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.more { |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.navbar { |
||||||
|
margin-top: 28rpx; |
||||||
|
padding: 8rpx; |
||||||
|
border-radius: 112rpx; |
||||||
|
background-color: #fff; |
||||||
|
border: 2rpx solid #f6f6f6; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.nav { |
||||||
|
flex: 1; |
||||||
|
text-align: center; |
||||||
|
line-height: 68rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(137, 141, 151, 1); |
||||||
|
&.active { |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
color: #fff; |
||||||
|
border-radius: 112rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.container0 { |
||||||
|
padding: 8rpx 0 0; |
||||||
|
.none { |
||||||
|
display: block; |
||||||
|
margin: 30rpx auto; |
||||||
|
width: 80%; |
||||||
|
} |
||||||
|
.card1 { |
||||||
|
margin-top: 24rpx; |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
background: linear-gradient(346deg, #ffffff 0%, #ffffff 85%, #e6efff 100%); |
||||||
|
padding-bottom: 32rpx; |
||||||
|
.c-header { |
||||||
|
padding: 32rpx 16rpx 0 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.left { |
||||||
|
flex: 1; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
gap: 16rpx; |
||||||
|
.title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 22rpx; |
||||||
|
&::before { |
||||||
|
content: ''; |
||||||
|
width: 8rpx; |
||||||
|
height: 32rpx; |
||||||
|
border-radius: 0 32rpx 32rpx 0; |
||||||
|
background: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.fold-icon { |
||||||
|
width: 60rpx; |
||||||
|
height: 60rpx; |
||||||
|
transition: all 0.3s ease; |
||||||
|
transform: rotate(0); |
||||||
|
&.trun { |
||||||
|
transform: rotate(-180deg); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.btn { |
||||||
|
padding: 8rpx 32rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
line-height: 40rpx; |
||||||
|
color: #fff; |
||||||
|
text-align: center; |
||||||
|
background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); |
||||||
|
border-radius: 96rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.fold { |
||||||
|
transition: height 0.3s ease; |
||||||
|
max-height: 0; |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
.c-body { |
||||||
|
margin: 24rpx 32rpx 0; |
||||||
|
padding: 16rpx 32rpx; |
||||||
|
background: #f6f6f6; |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
position: relative; |
||||||
|
|
||||||
|
.status { |
||||||
|
position: absolute; |
||||||
|
width: 80rpx; |
||||||
|
height: 80rpx; |
||||||
|
top: 12rpx; |
||||||
|
right: 22rpx; |
||||||
|
} |
||||||
|
.row { |
||||||
|
padding: 16rpx 0; |
||||||
|
display: flex; |
||||||
|
gap: 32rpx; |
||||||
|
line-height: 56rpx; |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 4em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.detail { |
||||||
|
padding: 16rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
text-align: center; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.more { |
||||||
|
margin-top: 32rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(28, 107, 255, 1); |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
} |
||||||
|
.card2 { |
||||||
|
margin-top: 24rpx; |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
background: linear-gradient(346deg, #ffffff 0%, #ffffff 85%, #e6efff 100%); |
||||||
|
padding-bottom: 32rpx; |
||||||
|
.c-header { |
||||||
|
padding: 32rpx 16rpx 0 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.left { |
||||||
|
flex: 1; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
gap: 16rpx; |
||||||
|
.title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 22rpx; |
||||||
|
&::before { |
||||||
|
content: ''; |
||||||
|
width: 8rpx; |
||||||
|
height: 32rpx; |
||||||
|
border-radius: 0 32rpx 32rpx 0; |
||||||
|
background: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.fold-icon { |
||||||
|
width: 60rpx; |
||||||
|
height: 60rpx; |
||||||
|
transition: all 0.3s ease; |
||||||
|
transform: rotate(0); |
||||||
|
&.trun { |
||||||
|
transform: rotate(-180deg); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.fold { |
||||||
|
transition: height 0.3s ease; |
||||||
|
max-height: 0; |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
.c-body { |
||||||
|
margin: 24rpx 32rpx 0; |
||||||
|
padding: 16rpx 0 0; |
||||||
|
background: #f6f6f6; |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
position: relative; |
||||||
|
|
||||||
|
.row { |
||||||
|
padding: 16rpx 32rpx; |
||||||
|
display: flex; |
||||||
|
gap: 32rpx; |
||||||
|
line-height: 56rpx; |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 6em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.options { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
border-top: 1px solid rgba(232, 233, 237, 1); |
||||||
|
.item { |
||||||
|
flex: 1; |
||||||
|
padding: 22rpx 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(28, 107, 255, 1); |
||||||
|
text-align: center; |
||||||
|
&:first-of-type { |
||||||
|
border-right: 1px solid rgba(232, 233, 237, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.card3, |
||||||
|
.card4 { |
||||||
|
margin-top: 24rpx; |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
background: linear-gradient(346deg, #ffffff 0%, #ffffff 85%, #e6efff 100%); |
||||||
|
padding-bottom: 32rpx; |
||||||
|
.c-header { |
||||||
|
padding: 32rpx 16rpx 0 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.left { |
||||||
|
flex: 1; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
gap: 16rpx; |
||||||
|
.title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 22rpx; |
||||||
|
&::before { |
||||||
|
content: ''; |
||||||
|
width: 8rpx; |
||||||
|
height: 32rpx; |
||||||
|
border-radius: 0 32rpx 32rpx 0; |
||||||
|
background: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.fold-icon { |
||||||
|
width: 60rpx; |
||||||
|
height: 60rpx; |
||||||
|
transition: all 0.3s ease; |
||||||
|
transform: rotate(0); |
||||||
|
&.trun { |
||||||
|
transform: rotate(-180deg); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.fold { |
||||||
|
transition: height 0.3s ease; |
||||||
|
max-height: 0; |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
.c-body { |
||||||
|
margin: 24rpx 32rpx 0; |
||||||
|
padding: 16rpx 0 0; |
||||||
|
background: #f6f6f6; |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
position: relative; |
||||||
|
|
||||||
|
.row { |
||||||
|
padding: 16rpx 32rpx; |
||||||
|
display: flex; |
||||||
|
gap: 32rpx; |
||||||
|
line-height: 56rpx; |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 4em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.options { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
border-top: 1px solid rgba(232, 233, 237, 1); |
||||||
|
.item { |
||||||
|
flex: 1; |
||||||
|
padding: 22rpx 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(28, 107, 255, 1); |
||||||
|
text-align: center; |
||||||
|
&:first-of-type { |
||||||
|
border-right: 1px solid rgba(232, 233, 237, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.container1 { |
||||||
|
padding: 8rpx 0 0; |
||||||
|
.c1_card1 { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 16rpx 32rpx; |
||||||
|
background: linear-gradient(180deg, #fffaf9 0%, #ffffff 14%, #ffffff 100%); |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.row { |
||||||
|
padding: 16rpx 0; |
||||||
|
display: flex; |
||||||
|
gap: 32rpx; |
||||||
|
.label { |
||||||
|
width: 6em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.c1_card2 { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 0 32rpx; |
||||||
|
background: linear-gradient(180deg, #fffaf9 0%, #ffffff 14%, #ffffff 100%); |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.row { |
||||||
|
padding: 32rpx 0; |
||||||
|
border-bottom: 1px solid rgba(247, 247, 250, 1); |
||||||
|
.wrap { |
||||||
|
display: flex; |
||||||
|
gap: 32rpx; |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 9em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
display: flex; |
||||||
|
gap: 10rpx; |
||||||
|
flex-wrap: wrap; |
||||||
|
} |
||||||
|
} |
||||||
|
.remark { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 22rpx 32rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
border-radius: 12rpx; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.row1 { |
||||||
|
padding: 32rpx 0; |
||||||
|
border-bottom: 1px solid rgba(247, 247, 250, 1); |
||||||
|
.wrap { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 32rpx; |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 11em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.line { |
||||||
|
width: 1px; |
||||||
|
height: 88rpx; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.remark { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 22rpx 32rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
border-radius: 12rpx; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.container2 { |
||||||
|
.date-card { |
||||||
|
margin-top: 32rpx; |
||||||
|
padding: 18rpx 32rpx; |
||||||
|
background: linear-gradient( 355deg, #FFFFFF 0%, #E6EFFF 100%); |
||||||
|
box-shadow: 0rpx 4rpx 24rpx 0rpx rgba(0, 0, 0, 0.08); |
||||||
|
border-radius: 84rpx 84rpx 84rpx 84rpx; |
||||||
|
border: 2px solid #ffffff; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.icon { |
||||||
|
width: 48rpx; |
||||||
|
height: 48rpx; |
||||||
|
} |
||||||
|
.content { |
||||||
|
padding-left: 16rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.notic { |
||||||
|
position: relative; |
||||||
|
margin-top: 32rpx; |
||||||
|
height: 168rpx; |
||||||
|
box-sizing: border-box; |
||||||
|
padding: 24rpx 32rpx; |
||||||
|
.title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.content { |
||||||
|
margin-top: 6rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
} |
||||||
|
.sub-content { |
||||||
|
margin-top: 6rpx; |
||||||
|
padding: 0 10rpx; |
||||||
|
height: 36rpx; |
||||||
|
display: inline-block; |
||||||
|
font-size: 28rpx; |
||||||
|
border-radius: 6rpx; |
||||||
|
color: rgba(28, 107, 255, 1); |
||||||
|
background-color: #fff; |
||||||
|
} |
||||||
|
.badge { |
||||||
|
position: absolute; |
||||||
|
right: 6rpx; |
||||||
|
top: -14rpx; |
||||||
|
width: 180rpx; |
||||||
|
height: 180rpx; |
||||||
|
border-radius: 50%; |
||||||
|
box-shadow: inset 0rpx -1rpx 0rpx 0rpx rgba(255, 255, 255, 0.25); |
||||||
|
} |
||||||
|
} |
||||||
|
.card { |
||||||
|
position: relative; |
||||||
|
margin-top: 32rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
border: 1px solid #ffffff; |
||||||
|
background: rgba(255, 244, 243, 1); |
||||||
|
.c-calendar { |
||||||
|
position: relative; |
||||||
|
z-index: 1; |
||||||
|
padding: 40rpx 32rpx 0; |
||||||
|
min-height: 400rpx; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 24rpx; |
||||||
|
.lengend { |
||||||
|
padding: 32rpx 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 32rpx; |
||||||
|
border-top: 1px solid rgba(247, 247, 250, 1); |
||||||
|
.l-item { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 12rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
.dot { |
||||||
|
width: 12rpx; |
||||||
|
height: 12rpx; |
||||||
|
border-radius: 50%; |
||||||
|
&.dot1 { |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
&.dot2 { |
||||||
|
background-color: rgba(255, 163, 112, 1); |
||||||
|
} |
||||||
|
&.dot3 { |
||||||
|
background-color: rgba(255, 207, 135, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.c-sub-card { |
||||||
|
position: absolute; |
||||||
|
bottom: -24rpx; |
||||||
|
left: 40rpx; |
||||||
|
width: 590rpx; |
||||||
|
height: 636rpx; |
||||||
|
background: #e2e3e6; |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.btn { |
||||||
|
margin: 52rpx 0 0; |
||||||
|
padding: 20rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
line-height: 48rpx; |
||||||
|
color: #fff; |
||||||
|
text-align: center; |
||||||
|
background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); |
||||||
|
border-radius: 96rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,258 @@ |
|||||||
|
import dayjs from 'dayjs' |
||||||
|
const licia = require('miniprogram-licia') |
||||||
|
|
||||||
|
const app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
nav: 0, |
||||||
|
id: '', |
||||||
|
|
||||||
|
userInfo: {}, |
||||||
|
|
||||||
|
fold1: false, |
||||||
|
fold2: false, |
||||||
|
fold3: false, |
||||||
|
fold4: false, |
||||||
|
|
||||||
|
periodOne: [], |
||||||
|
periodTwo: [], |
||||||
|
periodThree: {}, |
||||||
|
periodFour: [], |
||||||
|
empty0: false, |
||||||
|
|
||||||
|
medical: { |
||||||
|
lastBleedingInfo: { |
||||||
|
bleedingPartList: [], |
||||||
|
}, |
||||||
|
}, |
||||||
|
|
||||||
|
followExam: { |
||||||
|
recommendDate: [], |
||||||
|
} as any, |
||||||
|
|
||||||
|
calendarConfig: { |
||||||
|
multi: false, |
||||||
|
hideSelectYear: true, |
||||||
|
markToday: '今', // 当天日期展示不使用默认数字,用特殊文字标记
|
||||||
|
autoChoosedWhenJump: true, |
||||||
|
firstDayOfWeek: 'Mon', |
||||||
|
theme: 'geneb_doctor', |
||||||
|
takeoverTap: false, |
||||||
|
highlightToday: true, |
||||||
|
onlyShowCurrentMonth: true, |
||||||
|
disableMode: { |
||||||
|
type: 'after', // [‘before’, 'after']
|
||||||
|
}, |
||||||
|
}, |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
this.setData({ |
||||||
|
nav: Number(options.nav) || 0, |
||||||
|
id: options.id, |
||||||
|
}) |
||||||
|
}, |
||||||
|
onShow() { |
||||||
|
app.waitLogin({ type: 2 }).then(() => { |
||||||
|
this.getPatientInfo() |
||||||
|
this.getInfo() |
||||||
|
}) |
||||||
|
}, |
||||||
|
getPatientInfo() { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/patient/get-detail', |
||||||
|
data: { |
||||||
|
patientId: this.data.id, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
console.log('res: ', res) |
||||||
|
this.setData({ |
||||||
|
userInfo: { |
||||||
|
...res.patientInfo, |
||||||
|
CreateTime: dayjs(res.createTime).format('YYYY年MM月DD日'), |
||||||
|
}, |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleNav(e) { |
||||||
|
const { nav } = e.currentTarget.dataset |
||||||
|
this.setData({ |
||||||
|
nav, |
||||||
|
}) |
||||||
|
this.getInfo() |
||||||
|
}, |
||||||
|
getInfo() { |
||||||
|
const { nav } = this.data |
||||||
|
if (nav == 0) { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-archives', |
||||||
|
data: { |
||||||
|
patientId: this.data.id, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
...res, |
||||||
|
empty0: |
||||||
|
!res.periodOne.length && |
||||||
|
!res.periodTwo.length && |
||||||
|
!res.periodFour.length && |
||||||
|
!res.periodThree.injectionDate && |
||||||
|
!res.periodThree.injectionWeight && |
||||||
|
!res.periodThree.injectionDrugs && |
||||||
|
!res.periodThree.injectionNum, |
||||||
|
}) |
||||||
|
}) |
||||||
|
} |
||||||
|
if (nav == 1) { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-medical-history-info', |
||||||
|
data: { |
||||||
|
patientId: this.data.id, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
medical: res, |
||||||
|
}) |
||||||
|
}) |
||||||
|
} |
||||||
|
if (nav == 2) { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-follow-up-exam', |
||||||
|
data: { |
||||||
|
patientId: this.data.id, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
followExam: { |
||||||
|
injectionDateName: dayjs(res.injectionDate).format('YYYY年MM月DD日 ddd'), |
||||||
|
...res, |
||||||
|
}, |
||||||
|
}) |
||||||
|
this.getFollowList() |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
getFollowList(dateMonth = '') { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-follow-up-exam-list', |
||||||
|
data: { |
||||||
|
month: dateMonth, |
||||||
|
patientId: this.data.id, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
console.log('res: ', res) |
||||||
|
const { followExam } = this.data |
||||||
|
this.setCalendarTodos({ |
||||||
|
bleedDate: [followExam.injectionDate], |
||||||
|
injectionDate: res, |
||||||
|
reportInjectionDate: followExam.recommendDate, |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleWhenChangeMonth(e) { |
||||||
|
console.log('DEBUGPRINT[101]: index.ts:129: e=', e) |
||||||
|
const next = e.detail.next |
||||||
|
const dateMonth = dayjs(`${next.year}-${next.month}`).format('YYYY-MM') |
||||||
|
this.getFollowList(dateMonth) |
||||||
|
}, |
||||||
|
setCalendarTodos({ |
||||||
|
bleedDate = [], |
||||||
|
injectionDate = [], |
||||||
|
reportInjectionDate = [], |
||||||
|
}: { |
||||||
|
bleedDate: any[] |
||||||
|
injectionDate: string[] |
||||||
|
reportInjectionDate: string[] |
||||||
|
}) { |
||||||
|
const calendar = this.selectComponent('#calendar').calendar |
||||||
|
const dates: any[] = [] |
||||||
|
|
||||||
|
const unionArr = licia.union(bleedDate, injectionDate, reportInjectionDate) |
||||||
|
|
||||||
|
unionArr.forEach((date: string) => { |
||||||
|
let color: string[] = [] |
||||||
|
if (bleedDate.includes(date)) { |
||||||
|
color.push('rgba(28, 107, 255, 1)') |
||||||
|
} |
||||||
|
if (injectionDate.includes(date)) { |
||||||
|
color.push('rgba(255, 163, 112, 1)') |
||||||
|
} |
||||||
|
if (reportInjectionDate.includes(date)) { |
||||||
|
color.push('rgba(255, 207, 135, 1)') |
||||||
|
} |
||||||
|
|
||||||
|
dates.push({ |
||||||
|
year: date.split('-')[0], |
||||||
|
month: date.split('-')[1], |
||||||
|
date: date.split('-')[2], |
||||||
|
color, |
||||||
|
}) |
||||||
|
}) |
||||||
|
|
||||||
|
calendar.setTodos({ |
||||||
|
// 待办点标记设置
|
||||||
|
pos: 'bottom', // 待办点标记位置 ['top', 'bottom']
|
||||||
|
dotColor: 'purple', // 待办点标记颜色
|
||||||
|
circle: false, // 待办圆圈标记设置(如圆圈标记已签到日期),该设置与点标记设置互斥
|
||||||
|
showLunar: true, |
||||||
|
showLabelAlways: true, // 点击时是否显示待办事项(圆点/文字),在 circle 为 true 及当日历配置 showLunar 为 true 时,此配置失效
|
||||||
|
dates, |
||||||
|
}) |
||||||
|
}, |
||||||
|
|
||||||
|
handleFold(e) { |
||||||
|
const { fold } = e.currentTarget.dataset |
||||||
|
this.setData({ |
||||||
|
[fold]: !this.data[fold], |
||||||
|
}) |
||||||
|
console.log(this.data[fold]) |
||||||
|
}, |
||||||
|
handleRevisitRecord() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/patient/pages/lastDiagnosisReport/index?period=4', |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleRevisitDetail(e) { |
||||||
|
const { id, period } = e.currentTarget.dataset |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/patient/pages/lastDiagnosisReport/index?examid=${id}&period=${period}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleRevisitAll() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/patient/pages/revisitRecord/index', |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleCourse(e: any) { |
||||||
|
const { progress } = e.currentTarget.dataset |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/patient/pages/course/index?current=${progress}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleBbmDetail() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/patient/pages/bbmReport/index', |
||||||
|
}) |
||||||
|
}, |
||||||
|
handlePreDiagnosisReport(e) { |
||||||
|
const { id, period } = e.currentTarget.dataset |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/patient/pages/preDiagnosisReport/index?examid=${id}&period=${period}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleInjectionDate() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/patient/pages/injectDate/index', |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleBack() { |
||||||
|
wx.navigateBack() |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
@ -0,0 +1,336 @@ |
|||||||
|
<navbar fixed custom-style="background:{{background}}" back> |
||||||
|
<van-icon name="arrow-left" slot="left" size="18px" color="#000" bind:tap="handleBack" /> |
||||||
|
</navbar> |
||||||
|
<view |
||||||
|
class="page" |
||||||
|
style="padding-top:{{pageTop}}px;background:url('{{imageUrl}}bg25.png?t={{Timestamp}}') no-repeat top center/100% 693rpx" |
||||||
|
> |
||||||
|
<view class="user"> |
||||||
|
<view class="avatar"> |
||||||
|
<image class="a-img" src="{{userInfo.userAvatar}}"></image> |
||||||
|
</view> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="w-header"> |
||||||
|
<view class="name">{{userInfo.patientName}}</view> |
||||||
|
<view class="age"> |
||||||
|
<image class="icon" src="{{imageUrl}}icon91.png?t={{Timestamp}}"></image> |
||||||
|
{{userInfo.ageYear}}岁 |
||||||
|
</view> |
||||||
|
<view class="site"> |
||||||
|
<image class="icon" src="{{imageUrl}}icon92.png?t={{Timestamp}}"></image> |
||||||
|
{{userInfo.provinceName}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="w-footer"> |
||||||
|
<view class="info">入组时间:{{userInfo.CreateTime}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="navbar"> |
||||||
|
<view class="nav {{nav==0 && 'active'}}" bindtap="handleNav" data-nav="0">治疗档案</view> |
||||||
|
<view class="nav {{nav==1 && 'active'}}" bindtap="handleNav" data-nav="1">病史档案</view> |
||||||
|
<view class="nav {{nav==2 && 'active'}}" bindtap="handleNav" data-nav="2">随访日历</view> |
||||||
|
</view> |
||||||
|
<view class="container0" wx:if="{{nav==0}}"> |
||||||
|
<view class="card1" wx:if="{{periodFour.length}}"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="left" bindtap="handleFold" data-fold="fold1"> |
||||||
|
<view class="title">随访计划</view> |
||||||
|
<image class="fold-icon {{fold1 && 'trun'}}" src="{{imageUrl}}icon56.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="{{fold1 && 'fold'}}"> |
||||||
|
<view |
||||||
|
class="c-body" |
||||||
|
wx:for="{{periodFour}}" |
||||||
|
wx:key="index" |
||||||
|
bind:tap="handleRevisitDetail" |
||||||
|
data-id="{{item.examId}}" |
||||||
|
data-period="{{item.period}}" |
||||||
|
> |
||||||
|
<!-- <image wx:if="{{true}}" class="status" src="{{imageUrl}}icon42.png?t={{Timestamp}}"></image> --> |
||||||
|
<!-- <image wx:elif="{{false}}" class="status" src="{{imageUrl}}icon43.png?t={{Timestamp}}"></image> --> |
||||||
|
<!-- <image wx:elif="{{false}}" class="status" src="{{imageUrl}}icon44.png?t={{Timestamp}}"></image> --> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">日期</view> |
||||||
|
<view class="content" wx:if="{{item.beginDate && item.endDate}}">{{item.beginDate}}~{{item.endDate}}</view> |
||||||
|
<view class="content" wx:else>--</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">诊疗医院</view> |
||||||
|
<view class="content">{{item.hospitalName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">检查项目</view> |
||||||
|
<view class="content">{{item.totalNum}}/{{item.allNum}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="more" bind:tap="handleRevisitAll"> |
||||||
|
查看全部 |
||||||
|
<van-icon name="arrow" /> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="card2" |
||||||
|
wx:if="{{periodThree.injectionDate || periodThree.injectionWeight || periodThree.injectionDrugs || periodThree.injectionNum}}" |
||||||
|
> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="left" bindtap="handleFold" data-fold="fold2"> |
||||||
|
<view class="title">注射日</view> |
||||||
|
<image class="fold-icon {{fold2 && 'trun'}}" src="{{imageUrl}}icon56.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="{{fold2 && 'fold'}}"> |
||||||
|
<view class="c-body"> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">注射日期</view> |
||||||
|
<view class="content">{{periodThree.injectionDate}}</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">BBM-H901</view> |
||||||
|
<view class="content"> |
||||||
|
<view wx:if="{{periodThree.injectionWeight}}">体重 {{periodThree.injectionWeight}}kg</view> |
||||||
|
<view wx:else>体重 未填写</view> |
||||||
|
<view wx:if="{{periodThree.injectionDrugs}}">用药 {{periodThree.injectionDrugs}}ml</view> |
||||||
|
<view wx:else>用药 未填写</view> |
||||||
|
<view wx:if="{{periodThree.injectionNum}}">预期用药 {{periodThree.injectionNum}} 瓶</view> |
||||||
|
<view wx:else>预期用药 未填写</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="options"> |
||||||
|
<view class="item" bind:tap="handleCourse" data-progress="2"> |
||||||
|
诊疗阶段详情 |
||||||
|
<van-icon name="arrow" /> |
||||||
|
</view> |
||||||
|
<view class="item" bind:tap="handleBbmDetail"> |
||||||
|
查看详情 |
||||||
|
<van-icon name="arrow" /> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="card3" wx:if="{{periodTwo.length}}"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="left" bindtap="handleFold" data-fold="fold3"> |
||||||
|
<view class="title">基因治疗中心检查</view> |
||||||
|
<image class="fold-icon {{fold3 && 'trun'}}" src="{{imageUrl}}icon56.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="{{fold3 && 'fold'}}"> |
||||||
|
<view class="c-body" wx:for="{{periodTwo}}" wx:key="index"> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">日期</view> |
||||||
|
<view class="content" wx:if="{{item.beginDate && item.endDate}}">{{item.beginDate}}~{{item.endDate}}</view> |
||||||
|
<view class="content" wx:else>未填写</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">诊疗医院</view> |
||||||
|
<view class="content">{{item.hospitalName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">检查项目</view> |
||||||
|
<view class="content">{{item.totalNum}}/{{item.allNum}}</view> |
||||||
|
</view> |
||||||
|
<view class="options"> |
||||||
|
<view class="item" bind:tap="handleCourse" data-progress="1"> |
||||||
|
诊疗阶段详情 |
||||||
|
<van-icon name="arrow" /> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="item" |
||||||
|
bind:tap="handlePreDiagnosisReport" |
||||||
|
data-id="{{item.examId}}" |
||||||
|
data-period="{{item.period}}" |
||||||
|
> |
||||||
|
查看详情 |
||||||
|
<van-icon name="arrow" /> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="card4" wx:if="{{periodOne.length}}"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="left" bindtap="handleFold" data-fold="fold4"> |
||||||
|
<view class="title">诊前筛查</view> |
||||||
|
<image class="fold-icon {{fold4 && 'trun'}}" src="{{imageUrl}}icon56.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="{{fold4 && 'fold'}}"> |
||||||
|
<view class="c-body" wx:for="{{periodOne}}" wx:key="index"> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">日期</view> |
||||||
|
<view class="content" wx:if="{{item.beginDate && item.endDate}}">{{item.beginDate}}~{{item.endDate}}</view> |
||||||
|
<view class="content" wx:else>未填写</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">定点医院</view> |
||||||
|
<view class="content">{{item.hospitalName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">检查项目</view> |
||||||
|
<view class="content">{{item.totalNum}}/{{item.allNum}}</view> |
||||||
|
</view> |
||||||
|
<view class="options"> |
||||||
|
<view class="item" bind:tap="handleCourse" data-progress="0"> |
||||||
|
诊疗阶段详情 |
||||||
|
<van-icon name="arrow" /> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="item" |
||||||
|
bind:tap="handlePreDiagnosisReport" |
||||||
|
data-id="{{item.examId}}" |
||||||
|
data-period="{{item.period}}" |
||||||
|
> |
||||||
|
查看详情 |
||||||
|
<van-icon name="arrow" /> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<image wx:if="{{empty0}}" class="none" src="{{imageUrl}}none.png"></image> |
||||||
|
</view> |
||||||
|
<view class="container1" wx:if="{{nav==1}}"> |
||||||
|
<view class="c1_card1"> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">出生年月</view> |
||||||
|
<view class="content">{{medical.birthMonth}}({{medical.ageYear}}岁)</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">确诊时间</view> |
||||||
|
<view class="content"> |
||||||
|
{{medical.diagnosisTime || '未填写'}} |
||||||
|
<block wx:if="{{medical.diagnosisAge}}">({{medical.diagnosisAge}})</block> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">您的体重</view> |
||||||
|
<view class="content" wx:if="{{medical.weight}}">{{medical.weight}} kg</view> |
||||||
|
<div class="content" wx:else>未填写</div> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c1_card1"> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">凝血因子</view> |
||||||
|
<view class="content" wx:if="{{medical.clottingFactor}}">{{medical.clottingFactor}}%</view> |
||||||
|
<view class="content" wx:else>未填写</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">治疗方案</view> |
||||||
|
<view class="content">{{medical.treatmentPlanName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="label">FIX暴露日</view> |
||||||
|
<view class="content" wx:if="{{medical.fixExposureDay}}">{{medical.fixExposureDay}}个</view> |
||||||
|
<view class="content" wx:else>未填写</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c1_card2"> |
||||||
|
<view class="row"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label">既往FIX抑制物病史</view> |
||||||
|
<view class="content">{{medical.beforeFixHistoryName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label">既往肝脏疾病病史</view> |
||||||
|
<view class="content">{{medical.beforeLiverHistoryName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
<view class="remark" wx:if="{{medical.liverRecord}}">{{medical.liverRecord}}</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label">您是否有饮酒史</view> |
||||||
|
<view class="content">{{medical.drinkingHistoryName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label">您是否有过敏史</view> |
||||||
|
<view class="content">{{medical.allergyHistoryName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
<view class="remark" wx:if="{{medical.allergyRecord}}">{{medical.allergyRecord}}</view> |
||||||
|
</view> |
||||||
|
<view class="row1"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label"> |
||||||
|
<view>您是否可能存在不适合</view> |
||||||
|
<view>使用糖皮质激素的情况?</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="content">{{medical.isNotGlucocorticoidName || '未填写'}}</view> |
||||||
|
</view> |
||||||
|
<view class="remark" wx:if="{{medical.medicalHistoryInfo}}">{{medical.medicalHistoryInfo}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c1_card2"> |
||||||
|
<view class="row"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label" style="width: 4em">靶关节</view> |
||||||
|
<view class="content"> |
||||||
|
<view wx:for="{{medical.lastBleedingInfo.bleedingPartList}}" wx:key="bleedingId"> |
||||||
|
{{item.bleedingPartName}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="label">最近6个月出血</view> |
||||||
|
</view> |
||||||
|
<view class="remark" wx:if="{{medical.lastBleedingInfo.remark}}">{{medical.lastBleedingInfo.remark}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="container2" wx:if="{{nav==2}}"> |
||||||
|
<view class="date-card" bind:tap="handleInjectionDate"> |
||||||
|
<image class="icon" src="{{imageUrl}}icon107.png?t={{Timestamp}}"></image> |
||||||
|
<view class="content" wx:if="{{followExam.injectionDate}}">注射日:{{followExam.injectionDateName}}</view> |
||||||
|
<view class="content" wx:else>请填写您的注射日生成随访计划</view> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="notic" |
||||||
|
wx:if="{{followExam.injectionDate}}" |
||||||
|
style="background: url('{{imageUrl}}bg26.png?t={{Timestamp}}') no-repeat top center/100%" |
||||||
|
> |
||||||
|
<view class="title">{{followExam.tipsInfo}}</view> |
||||||
|
<view class="content" wx:if="{{followExam.lastNoticeWeekInfo}}">{{followExam.lastNoticeWeekInfo}}</view> |
||||||
|
<view class="sub-content" wx:if="{{followExam.lastNoticeExamInfo}}">{{followExam.lastNoticeExamInfo}}</view> |
||||||
|
<image |
||||||
|
wx:if="{{followExam.examDiffPassMonth==1}}" |
||||||
|
class="badge" |
||||||
|
src="{{imageUrl}}icon94.png?t={{Timestamp}}" |
||||||
|
></image> |
||||||
|
<image wxx:else class="badge" src="{{imageUrl}}icon95.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="card"> |
||||||
|
<view class="c-calendar" style="background: #fff url('/images/icon99.png') no-repeat bottom right/118rpx 116rpx"> |
||||||
|
<calendar |
||||||
|
bind:whenChangeMonth="handleWhenChangeMonth" |
||||||
|
config="{{calendarConfig}}" |
||||||
|
id="calendar" |
||||||
|
bind:jumpToToday="toggleFold" |
||||||
|
></calendar> |
||||||
|
<view class="lengend"> |
||||||
|
<view class="l-item"> |
||||||
|
<view class="dot dot1"></view> |
||||||
|
注射日 |
||||||
|
</view> |
||||||
|
<view class="l-item"> |
||||||
|
<view class="dot dot2"></view> |
||||||
|
已复诊 |
||||||
|
</view> |
||||||
|
<view class="l-item"> |
||||||
|
<view class="dot dot3"></view> |
||||||
|
建议复诊 |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c-sub-card"></view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "随访计划", |
||||||
|
"usingComponents": {} |
||||||
|
} |
@ -0,0 +1,120 @@ |
|||||||
|
page { |
||||||
|
background-color: #f7f7fa; |
||||||
|
} |
||||||
|
.page { |
||||||
|
padding: 32rpx 40rpx 260rpx; |
||||||
|
.date-card { |
||||||
|
padding: 18rpx 32rpx; |
||||||
|
background: linear-gradient(to top, #ffffff 60%, #d8e5ff 100%); |
||||||
|
border-radius: 84rpx 84rpx 84rpx 84rpx; |
||||||
|
border: 2px solid #ffffff; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.icon { |
||||||
|
width: 48rpx; |
||||||
|
height: 48rpx; |
||||||
|
} |
||||||
|
.content { |
||||||
|
padding-left: 16rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.body { |
||||||
|
margin-top: 32rpx; |
||||||
|
background: #F2F7FF; |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.title { |
||||||
|
padding: 20rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(28, 107, 255, 1); |
||||||
|
text-align: center; |
||||||
|
} |
||||||
|
.container { |
||||||
|
padding: 48rpx 24rpx 0; |
||||||
|
background-color: #fff; |
||||||
|
.table { |
||||||
|
.thead { |
||||||
|
display: grid; |
||||||
|
border-radius: 24rpx 24rpx 0 0; |
||||||
|
grid-template-columns: repeat(2, 1fr); |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
.th { |
||||||
|
padding: 22rpx; |
||||||
|
text-align: center; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.tbody { |
||||||
|
.tr { |
||||||
|
display: grid; |
||||||
|
grid-template-columns: 36rpx calc(50% - 36rpx) 50%; |
||||||
|
.aside { |
||||||
|
margin-right: 12rpx; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
align-items: center; |
||||||
|
.line-top { |
||||||
|
flex: 1; |
||||||
|
border-right: 1px dashed rgba(207, 209, 213, 1); |
||||||
|
} |
||||||
|
.order { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 24rpx; |
||||||
|
height: 24rpx; |
||||||
|
border-radius: 50%; |
||||||
|
background-color: rgba(207, 209, 213, 1); |
||||||
|
} |
||||||
|
.line-bottom { |
||||||
|
flex: 1; |
||||||
|
border-right: 1px dashed rgba(207, 209, 213, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.td { |
||||||
|
padding: 28rpx 32rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
line-height: 40rpx; |
||||||
|
white-space: pre-line; |
||||||
|
display: flex; |
||||||
|
justify-content: center; |
||||||
|
flex-direction: column; |
||||||
|
} |
||||||
|
} |
||||||
|
.tr:nth-child(even) { |
||||||
|
.td { |
||||||
|
background-color: rgba(242, 247, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.active { |
||||||
|
.aside { |
||||||
|
.line-top, |
||||||
|
.line-bottom { |
||||||
|
border-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
.order { |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.current { |
||||||
|
.aside { |
||||||
|
.line-top { |
||||||
|
border-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
.order { |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.td { |
||||||
|
color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,47 @@ |
|||||||
|
import dayjs from 'dayjs' |
||||||
|
|
||||||
|
const app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
patientId: '', |
||||||
|
|
||||||
|
injectionDate: '', |
||||||
|
stage: '', |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
this.setData({ |
||||||
|
patientId: options.id, |
||||||
|
}) |
||||||
|
app.waitLogin({ type: 2 }).then(() => { |
||||||
|
this.getDetail() |
||||||
|
}) |
||||||
|
}, |
||||||
|
getDetail() { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-follow-up-plan', |
||||||
|
data: { |
||||||
|
patientId: this.data.patientId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
console.log('res: ', res) |
||||||
|
this.setData({ |
||||||
|
injectionDate: res.injectionDate ? dayjs(res.injectionDate).format('YYYY年MM月DD日 ddd') : '', |
||||||
|
stage: res.stage, |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleClander() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/patient/pages/file/index?nav=2', |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleLastDiagnosisReport() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/patient/pages/lastDiagnosisReport/index', |
||||||
|
}) |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
@ -0,0 +1,103 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="date-card"> |
||||||
|
<image class="icon" src="{{imageUrl}}icon107.png?t={{Timestamp}}"></image> |
||||||
|
<view class="content">注射日:{{injectionDate || '未录入'}}</view> |
||||||
|
</view> |
||||||
|
<view class="body"> |
||||||
|
<view class="title">基因治疗后时间 监测频率</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="table"> |
||||||
|
<view class="thead"> |
||||||
|
<view class="th">输注后时间</view> |
||||||
|
<view class="th">监测频率</view> |
||||||
|
</view> |
||||||
|
<view class="tbody"> |
||||||
|
<view class="tr {{stage === 1 && 'current'}} {{stage > 1 && 'active'}}"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order"></view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="td">1 周内</view> |
||||||
|
<view class="td"> |
||||||
|
<view>每周2次</view> |
||||||
|
<view>输注后第3天,第6天</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="tr {{stage === 2 && 'current'}} {{stage > 2 && 'active'}}"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order"></view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="td"> |
||||||
|
<view>输注后</view> |
||||||
|
<view>第2周~第12周</view> |
||||||
|
</view> |
||||||
|
<view class="td">每周1次</view> |
||||||
|
</view> |
||||||
|
<view class="tr {{stage === 3 && 'current'}} {{stage > 3 && 'active'}}"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order"></view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="td"> |
||||||
|
<view>输注后</view> |
||||||
|
<view>第13周~第26周</view> |
||||||
|
</view> |
||||||
|
<view class="td">每2周1次</view> |
||||||
|
</view> |
||||||
|
<view class="tr {{stage === 4 && 'current'}} {{stage > 4 && 'active'}}"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order"></view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="td"> |
||||||
|
<view>输注后</view> |
||||||
|
<view>第27周~第52周</view> |
||||||
|
</view> |
||||||
|
<view class="td">每4周1次</view> |
||||||
|
</view> |
||||||
|
<view class="tr {{stage === 5 && 'current'}} {{stage > 5 && 'active'}}"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order"></view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="td"> |
||||||
|
<view>输注后</view> |
||||||
|
<view>第1年~第2年内</view> |
||||||
|
</view> |
||||||
|
<view class="td">每周1次</view> |
||||||
|
</view> |
||||||
|
<view class="tr {{stage === 6 && 'current'}} {{stage > 6 && 'active'}}"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order"></view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="td"> |
||||||
|
<view>输注后</view> |
||||||
|
<view>第2年~第5年内</view> |
||||||
|
</view> |
||||||
|
<view class="td">每6个月1次</view> |
||||||
|
</view> |
||||||
|
<view class="tr {{stage === 7 && 'current'}} {{stage > 7 && 'active'}}"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order"></view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="td"> |
||||||
|
<view>输注后</view> |
||||||
|
<view>5年以后</view> |
||||||
|
</view> |
||||||
|
<view class="td">每年1次或2次</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "免疫抑制剂管理", |
||||||
|
"usingComponents": {} |
||||||
|
} |
@ -0,0 +1,65 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
.page { |
||||||
|
.empty { |
||||||
|
padding: 276rpx 108rpx; |
||||||
|
.none-img { |
||||||
|
width: 533rpx; |
||||||
|
height: 339rpx; |
||||||
|
} |
||||||
|
.title { |
||||||
|
text-align: center; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.add { |
||||||
|
margin: 174rpx 0 0; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
line-height: 88rpx; |
||||||
|
text-align: center; |
||||||
|
background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); |
||||||
|
border-radius: 84rpx 84rpx 84rpx 84rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.list { |
||||||
|
padding: 32rpx 40rpx; |
||||||
|
.total { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
.red { |
||||||
|
color: rgba(246, 74, 58, 1); |
||||||
|
font-size: 40rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.list-card { |
||||||
|
padding: 16rpx 0; |
||||||
|
margin-top: 24rpx; |
||||||
|
background: #ffffff; |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
.item { |
||||||
|
padding: 16rpx 32rpx; |
||||||
|
display: flex; |
||||||
|
.item-title { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 5em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.item-content { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.add { |
||||||
|
position: fixed; |
||||||
|
left: 50%; |
||||||
|
bottom: 142rpx; |
||||||
|
transform: translateX(-50%); |
||||||
|
width: 156rpx; |
||||||
|
height: 156rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,62 @@ |
|||||||
|
const app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
patientId: '', |
||||||
|
period: '', |
||||||
|
|
||||||
|
list: [] as any[], |
||||||
|
total: 0, |
||||||
|
pagination: { |
||||||
|
page: 1, |
||||||
|
pages: 1, |
||||||
|
count: 1, |
||||||
|
}, |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
this.setData({ |
||||||
|
period: options.period || '', |
||||||
|
patientId: options.id || '', |
||||||
|
}) |
||||||
|
}, |
||||||
|
onShow() { |
||||||
|
app.waitLogin().then(() => { |
||||||
|
this.getList() |
||||||
|
}) |
||||||
|
}, |
||||||
|
getList(newPage = 1) { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-immune-list', |
||||||
|
data: { |
||||||
|
page: newPage, |
||||||
|
patientId: this.data.patientId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
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) |
||||||
|
} |
||||||
|
}, |
||||||
|
handleEdit(e: any) { |
||||||
|
// const { id, period } = e.currentTarget.dataset
|
||||||
|
// wx.navigateTo({
|
||||||
|
// url: `/patient/pages/inhibitorsManageDetail/index?id=${id}&peroid=${period}`,
|
||||||
|
// })
|
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
@ -0,0 +1,34 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="list"> |
||||||
|
<view class="total"> |
||||||
|
已记录剂量处方 |
||||||
|
<text class="red">{{total}}</text> |
||||||
|
次 |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="list-card" |
||||||
|
wx:for="{{list}}" |
||||||
|
bind:tap="handleEdit" |
||||||
|
data-id="{{item.recordId}}" |
||||||
|
data-period="{{item.period}}" |
||||||
|
> |
||||||
|
<view class="item"> |
||||||
|
<view class="item-title">用药时间</view> |
||||||
|
<view class="item-content">{{item.recordDate}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="item-title">药物名称</view> |
||||||
|
<view class="item-content">{{item.drugName}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="item-title">用药方式</view> |
||||||
|
<view class="item-content">{{item.typeName}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="item-title">用药剂量</view> |
||||||
|
<view class="item-content">{{item.dosage}}{{item.dosageUnitName}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<pagination pagination="{{pagination}}"></pagination> |
||||||
|
</view> |
||||||
|
</view> |
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "最新复诊检查记录", |
||||||
|
"usingComponents": { |
||||||
|
"uploadFile": "/components/uploadFile/index", |
||||||
|
"popup": "/components/popup/index" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,322 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.page { |
||||||
|
padding: 32rpx 30rpx 240rpx; |
||||||
|
.date-form { |
||||||
|
padding: 24rpx 32rpx; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 24rpx; |
||||||
|
.title { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.icon { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 48rpx; |
||||||
|
height: 48rpx; |
||||||
|
} |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
margin-left: 16rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(0, 0, 0, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
margin-left: 32rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.range { |
||||||
|
margin-top: 24rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 18rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(207, 209, 213, 1); |
||||||
|
.picker { |
||||||
|
flex: 1; |
||||||
|
.picker-content { |
||||||
|
padding: 22rpx 32rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
border-radius: 12rpx; |
||||||
|
.content { |
||||||
|
flex: 1; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
&:empty::after { |
||||||
|
content: attr(data-place); |
||||||
|
color: rgba(161, 164, 172, 0.5); |
||||||
|
} |
||||||
|
} |
||||||
|
.tril { |
||||||
|
width: 0; |
||||||
|
height: 0; |
||||||
|
border-style: solid; |
||||||
|
border-width: 12rpx 12rpx 0 12rpx; |
||||||
|
border-color: rgba(207, 209, 213, 1) transparent transparent transparent; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.select-hostipal { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 28rpx 32rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 24rpx; |
||||||
|
gap: 32rpx; |
||||||
|
.label { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(0, 0, 0, 1); |
||||||
|
} |
||||||
|
.picker { |
||||||
|
flex: 1; |
||||||
|
.picker-content { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
color: rgba(161, 164, 172, 0.5); |
||||||
|
.content { |
||||||
|
flex: 1; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
&:empty::after { |
||||||
|
content: attr(data-place); |
||||||
|
color: rgba(161, 164, 172, 0.5); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.form { |
||||||
|
margin-top: 48rpx; |
||||||
|
.form-card { |
||||||
|
display: flex; |
||||||
|
gap: 24rpx; |
||||||
|
.aside { |
||||||
|
flex-shrink: 0; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
align-items: center; |
||||||
|
.line-top { |
||||||
|
flex-shrink: 0; |
||||||
|
height: 32rpx; |
||||||
|
border-left: 1px dashed rgba(207, 209, 213, 1); |
||||||
|
} |
||||||
|
.order { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 40rpx; |
||||||
|
height: 40rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
background-color: rgba(207, 209, 213, 1); |
||||||
|
border-radius: 50%; |
||||||
|
} |
||||||
|
.line-bottom { |
||||||
|
flex: 1; |
||||||
|
height: 20rpx; |
||||||
|
border-left: 1px dashed rgba(207, 209, 213, 1); |
||||||
|
} |
||||||
|
&.active { |
||||||
|
.order { |
||||||
|
color: #fff; |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
.line-bottom, |
||||||
|
.line-top { |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.container { |
||||||
|
flex: 1; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 24rpx; |
||||||
|
margin-bottom: 24rpx; |
||||||
|
.c-header { |
||||||
|
padding: 32rpx 32rpx 32rpx 0; |
||||||
|
.wrap { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.left { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 12rpx; |
||||||
|
.title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
gap: 24rpx; |
||||||
|
align-items: center; |
||||||
|
&::before { |
||||||
|
content: ''; |
||||||
|
width: 8rpx; |
||||||
|
height: 36rpx; |
||||||
|
border-radius: 0 8rpx 8rpx 0; |
||||||
|
background: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.icon { |
||||||
|
width: 32rpx; |
||||||
|
height: 32rpx; |
||||||
|
transition: transform 0.3s; |
||||||
|
&.turn { |
||||||
|
transform: rotate(180deg); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.status { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(137, 141, 151, 1); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 12rpx; |
||||||
|
.icon { |
||||||
|
width: 32rpx; |
||||||
|
height: 32rpx; |
||||||
|
} |
||||||
|
&.active { |
||||||
|
color: rgba(14, 209, 167, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.content { |
||||||
|
padding: 16rpx 32rpx 0; |
||||||
|
font-size: 24rpx; |
||||||
|
color: rgba(96, 97, 99, 1); |
||||||
|
line-height: 36rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.c-body { |
||||||
|
max-height: 100vh; |
||||||
|
transition: all 0.3s; |
||||||
|
&.fold { |
||||||
|
max-height: 0; |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
.module1 { |
||||||
|
padding: 16rpx 32rpx 32rpx; |
||||||
|
.m-input-area { |
||||||
|
padding: 0 32rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
.m-input { |
||||||
|
padding: 32rpx 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 32rpx; |
||||||
|
border-bottom: 1px solid rgba(241, 241, 244, 1); |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
width: 7em; |
||||||
|
.sub-label { |
||||||
|
font-size: 20rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.input { |
||||||
|
width: 3em; |
||||||
|
font-size: 32rpx; |
||||||
|
height: 72rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.place-input { |
||||||
|
color: rgba(161, 164, 172, 0.5); |
||||||
|
} |
||||||
|
.sub { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.m-title { |
||||||
|
margin-top: 48rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.module2 { |
||||||
|
padding: 0 32rpx 32rpx; |
||||||
|
.m-input { |
||||||
|
padding: 0 32rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 32rpx; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
border-radius: 24rpx; |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.input { |
||||||
|
flex: 1; |
||||||
|
font-size: 32rpx; |
||||||
|
height: 96rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.place-input { |
||||||
|
color: rgba(161, 164, 172, 0.5); |
||||||
|
} |
||||||
|
.sub { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.text-area { |
||||||
|
padding: 24rpx 32rpx; |
||||||
|
width: 100%; |
||||||
|
height: 182rpx; |
||||||
|
border-radius: 12rpx; |
||||||
|
box-sizing: border-box; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
.m-title { |
||||||
|
margin-top: 48rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.module3 { |
||||||
|
padding: 0 32rpx 32rpx; |
||||||
|
.text-area { |
||||||
|
padding: 24rpx 32rpx; |
||||||
|
width: 100%; |
||||||
|
height: 182rpx; |
||||||
|
border-radius: 12rpx; |
||||||
|
box-sizing: border-box; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
.m-title { |
||||||
|
margin-top: 48rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,240 @@ |
|||||||
|
const app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
popupShow: false, |
||||||
|
popupType: 'preDiagnosisReportDate', // 确认绑定曾经扫码医生
|
||||||
|
popupParams: {}, |
||||||
|
|
||||||
|
edit: false, |
||||||
|
|
||||||
|
fold1: true, |
||||||
|
fold2: true, |
||||||
|
fold3: true, |
||||||
|
|
||||||
|
hospitalName: '', |
||||||
|
|
||||||
|
patientId: '', |
||||||
|
examId: '', |
||||||
|
period: '1', |
||||||
|
|
||||||
|
beginDate: '', |
||||||
|
endDate: '', |
||||||
|
hospitalId: '', |
||||||
|
isBiochemical: 2, |
||||||
|
alt: '', |
||||||
|
ast: '', |
||||||
|
bilirubin: '', |
||||||
|
isCFIxActivity: 2, |
||||||
|
clottingFactor: '', |
||||||
|
isOther: 2, |
||||||
|
otherInfo: '', |
||||||
|
|
||||||
|
attachmentList2: [], |
||||||
|
attachmentList3: [], |
||||||
|
attachmentList10: [], |
||||||
|
|
||||||
|
formKeys: [ |
||||||
|
'beginDate', |
||||||
|
'endDate', |
||||||
|
'hospitalId', |
||||||
|
'isBiochemical', |
||||||
|
'alt', |
||||||
|
'ast', |
||||||
|
'bilirubin', |
||||||
|
'isCFIxActivity', |
||||||
|
'clottingFactor', |
||||||
|
'isOther', |
||||||
|
'otherInfo', |
||||||
|
], |
||||||
|
|
||||||
|
dict: { |
||||||
|
result: {}, |
||||||
|
number: {}, |
||||||
|
}, |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
this.setData({ |
||||||
|
examId: options.examid || '', |
||||||
|
period: options.period || '1', |
||||||
|
patientId: options.id || '', |
||||||
|
edit: options.edit === '1', |
||||||
|
}) |
||||||
|
}, |
||||||
|
onShow() { |
||||||
|
app.waitLogin({ type: 2 }).then(() => { |
||||||
|
this.getDict() |
||||||
|
this.getDetail() |
||||||
|
}) |
||||||
|
}, |
||||||
|
getDict() { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/treatment/get-dict', |
||||||
|
data: {}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
dict: res, |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
getDetail() { |
||||||
|
const { examId, formKeys } = this.data |
||||||
|
if (!examId) return |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-exam-detail', |
||||||
|
data: { |
||||||
|
examId: examId, |
||||||
|
patientId: this.data.patientId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
const reset = formKeys.reduce((pre, cur) => { |
||||||
|
pre[cur] = res[cur] || '' |
||||||
|
return pre |
||||||
|
}, {}) |
||||||
|
this.setData({ |
||||||
|
...reset, |
||||||
|
attachmentList2: res.attachmentList[2] || [], |
||||||
|
attachmentList3: res.attachmentList[3] || [], |
||||||
|
attachmentList10: res.attachmentList[10] || [], |
||||||
|
hospitalName: res.hospitalName || '', |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleSelectHospital() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/patient/pages/selectHostipal/index?select=1&id=${this.data.hospitalId}`, |
||||||
|
events: { |
||||||
|
acceptDataFromOpenedPage: (data) => { |
||||||
|
this.setData({ |
||||||
|
hospitalId: data.hospitalId, |
||||||
|
hospitalName: data.hospitalName, |
||||||
|
}) |
||||||
|
this.updateSave() |
||||||
|
}, |
||||||
|
}, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleToggleFold(e: any) { |
||||||
|
const { fold } = e.currentTarget.dataset |
||||||
|
this.setData({ |
||||||
|
[fold]: !this.data[fold], |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleToggleCheck(e: any) { |
||||||
|
const { check, fold } = e.currentTarget.dataset |
||||||
|
let foldValue = this.data[fold] |
||||||
|
if (this.data[check] == 2) { |
||||||
|
foldValue = false |
||||||
|
} |
||||||
|
this.setData({ |
||||||
|
[check]: this.data[check] == 1 ? 2 : 1, |
||||||
|
[fold]: foldValue, |
||||||
|
}) |
||||||
|
this.updateSave() |
||||||
|
}, |
||||||
|
updateSave(e = null) { |
||||||
|
let isBack = false |
||||||
|
if (e) { |
||||||
|
const { back } = (e as any).currentTarget.dataset |
||||||
|
isBack = back == 1 |
||||||
|
} |
||||||
|
const { formKeys, period, examId, ...reset } = this.data |
||||||
|
const form = formKeys.reduce((pre, cur) => { |
||||||
|
pre[cur] = reset[cur] |
||||||
|
return pre |
||||||
|
}, {}) |
||||||
|
wx.ajax({ |
||||||
|
method: 'POST', |
||||||
|
url: '?r=wtx/exam/save-record', |
||||||
|
data: { |
||||||
|
examId, |
||||||
|
period, |
||||||
|
...form, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
examId: res, |
||||||
|
}) |
||||||
|
if (isBack) { |
||||||
|
wx.navigateBack() |
||||||
|
} |
||||||
|
}) |
||||||
|
}, |
||||||
|
setFile(e: any) { |
||||||
|
const { type, key } = e.currentTarget.dataset |
||||||
|
const { examId, period } = this.data |
||||||
|
const detail = e.detail || [] |
||||||
|
let apiArr: any[] = [] |
||||||
|
const fileList = this.data[key] || [] |
||||||
|
detail.forEach((item: any) => { |
||||||
|
const params: any = { |
||||||
|
examId, |
||||||
|
period, |
||||||
|
type, |
||||||
|
fileType: item.fileType, |
||||||
|
name: item.name, |
||||||
|
url: item.url, |
||||||
|
videoUrl: item.videoUrl, |
||||||
|
duration: item.duration, |
||||||
|
} |
||||||
|
fileList.push(params) |
||||||
|
apiArr.push(this.saveAttachment(params)) |
||||||
|
}) |
||||||
|
this.setData({ |
||||||
|
[key]: fileList, |
||||||
|
}) |
||||||
|
Promise.all(apiArr).then((res) => { |
||||||
|
console.log(res) |
||||||
|
}) |
||||||
|
}, |
||||||
|
saveAttachment(params: any) { |
||||||
|
return wx.ajax({ |
||||||
|
method: 'POST', |
||||||
|
url: '?r=wtx/treatment/save-attachment', |
||||||
|
data: params, |
||||||
|
}) |
||||||
|
}, |
||||||
|
delFile(e: any) { |
||||||
|
const { key } = e.currentTarget.dataset |
||||||
|
const { index, item } = e.detail |
||||||
|
if (item.attachmentId) { |
||||||
|
wx.ajax({ |
||||||
|
method: 'POST', |
||||||
|
url: '?r=wtx/treatment/del-attachment', |
||||||
|
data: { |
||||||
|
attachmentId: item.attachmentId, |
||||||
|
}, |
||||||
|
}) |
||||||
|
} |
||||||
|
const fileList = this.data[key] |
||||||
|
const newFileList = fileList.filter((_, i) => i !== index) |
||||||
|
this.setData({ |
||||||
|
[key]: newFileList, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleDel() { |
||||||
|
const { examId } = this.data |
||||||
|
wx.showModal({ |
||||||
|
title: '确认删除?', |
||||||
|
confirmColor: 'rgba(246, 74, 58, 1)', |
||||||
|
success: (res) => { |
||||||
|
if (res.confirm) { |
||||||
|
wx.ajax({ |
||||||
|
method: 'POST', |
||||||
|
url: '?r=wtx/exam/del', |
||||||
|
data: { examId }, |
||||||
|
}).then(() => { |
||||||
|
wx.navigateBack() |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleBack() { |
||||||
|
wx.navigateBack() |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
@ -0,0 +1,201 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="date-form"> |
||||||
|
<view class="title"> |
||||||
|
<image class="icon" src="{{imageUrl}}icon110.png?t={{Timestamp}}"></image> |
||||||
|
<view class="label">检查时间</view> |
||||||
|
<view class="content" wx:if="{{beginDate && endDate}}">{{beginDate}}至{{endDate}}</view> |
||||||
|
<view class="content" wx:else>--</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="select-hostipal"> |
||||||
|
<view class="label">检查医院</view> |
||||||
|
<div class="picker" bind:tap="handleSelectHospital"> |
||||||
|
<view class="picker-content"> |
||||||
|
<view class="content" data-place="--">{{hospitalName}}</view> |
||||||
|
</view> |
||||||
|
</div> |
||||||
|
</view> |
||||||
|
<view class="form"> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isBiochemical==1 && 'active'}}"> |
||||||
|
<view class="line-top" style="border: none"></view> |
||||||
|
<view class="order">1</view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold1"> |
||||||
|
<view class="title">生化检查</view> |
||||||
|
<image class="icon {{fold1 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="status {{isBiochemical==1 && 'active'}}">{{isBiochemical==1?'已检查':'未检查'}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold1 && 'fold'}}"> |
||||||
|
<view class="module1"> |
||||||
|
<view class="m-input-area"> |
||||||
|
<view class="m-input"> |
||||||
|
<view class="label"> |
||||||
|
ALT |
||||||
|
<view class="sub-label">丙氨酸氨基转移酶</view> |
||||||
|
</view> |
||||||
|
<input |
||||||
|
disabled |
||||||
|
bind:blur="updateSave" |
||||||
|
bind:blur="updateSave" |
||||||
|
type="number" |
||||||
|
maxlength="5" |
||||||
|
model:value="{{alt}}" |
||||||
|
placeholder="--" |
||||||
|
class="input" |
||||||
|
placeholder-class="place-input" |
||||||
|
/> |
||||||
|
<view class="sub">U/L</view> |
||||||
|
</view> |
||||||
|
<view class="m-input"> |
||||||
|
<view class="label"> |
||||||
|
AST |
||||||
|
<view class="sub-label">天门冬氨酸氨基转移酶</view> |
||||||
|
</view> |
||||||
|
<input |
||||||
|
disabled |
||||||
|
bind:blur="updateSave" |
||||||
|
type="number" |
||||||
|
maxlength="5" |
||||||
|
model:value="{{ast}}" |
||||||
|
placeholder="--" |
||||||
|
class="input" |
||||||
|
placeholder-class="place-input" |
||||||
|
/> |
||||||
|
<view class="sub">U/L</view> |
||||||
|
</view> |
||||||
|
<view class="m-input"> |
||||||
|
<view class="label">总胆红素</view> |
||||||
|
<input |
||||||
|
disabled |
||||||
|
bind:blur="updateSave" |
||||||
|
type="number" |
||||||
|
maxlength="4" |
||||||
|
model:value="{{bilirubin}}" |
||||||
|
placeholder="--" |
||||||
|
class="input" |
||||||
|
placeholder-class="place-input" |
||||||
|
/> |
||||||
|
<view class="sub">μmol/L</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="m-title" wx:if="{{attachmentList2.length}}">请上传您的检查报告</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList2}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList2" |
||||||
|
data-type="2" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isCFIxActivity==1 && 'active'}}"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order">2</view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold2"> |
||||||
|
<view class="title">凝血因子 IX 活性</view> |
||||||
|
<image class="icon {{fold2 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="status {{isCFIxActivity==1 && 'active'}}">{{isCFIxActivity==1?'已检查':'未检查'}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold2 && 'fold'}}"> |
||||||
|
<view class="module2"> |
||||||
|
<view class="m-input"> |
||||||
|
<view class="label">您的凝血因子水平</view> |
||||||
|
<input |
||||||
|
disabled |
||||||
|
bind:blur="updateSave" |
||||||
|
type="number" |
||||||
|
maxlength="3" |
||||||
|
model:value="{{clottingFactor}}" |
||||||
|
placeholder="--" |
||||||
|
class="input" |
||||||
|
placeholder-class="place-input" |
||||||
|
/> |
||||||
|
<view class="sub">%</view> |
||||||
|
</view> |
||||||
|
<view class="m-title" wx:if="{{attachmentList3.length}}">请上传您的检查报告</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList3}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList3" |
||||||
|
data-type="3" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isOther==1 && 'active'}}"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order" style="font-size: 24rpx">3</view> |
||||||
|
<view class="line-bottom" style="border: none"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold3"> |
||||||
|
<view class="title">其他检查</view> |
||||||
|
<image class="icon {{fold3 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="status {{isOther==1 && 'active'}}">{{isOther==1?'已检查':'未检查'}}</view> |
||||||
|
</view> |
||||||
|
<view class="content">您的其他项检查</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold3 && 'fold'}}"> |
||||||
|
<view class="module3"> |
||||||
|
<textarea |
||||||
|
disabled |
||||||
|
class="text-area" |
||||||
|
model:value="{{otherInfo}}" |
||||||
|
placeholder="--" |
||||||
|
disable-default-padding |
||||||
|
bind:blur="updateSave" |
||||||
|
></textarea> |
||||||
|
<view class="m-title" wx:if="{{attachmentList10.length}}">提交您的检测报告</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList10}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList10" |
||||||
|
data-type="10" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
|
||||||
|
<popup |
||||||
|
show="{{popupShow}}" |
||||||
|
type="{{popupType}}" |
||||||
|
params="{{popupParams}}" |
||||||
|
bind:ok="handlePopupOk" |
||||||
|
bind:cancel="handlePopupCancel" |
||||||
|
></popup> |
@ -1,7 +1,6 @@ |
|||||||
{ |
{ |
||||||
"navigationStyle": "custom", |
"navigationStyle": "custom", |
||||||
"usingComponents": { |
"usingComponents": { |
||||||
"navbar": "/components/navbar/index", |
"navbar": "/components/navbar/index" |
||||||
"doctor-tab-bar": "/doctor/components/doctor-tab-bar/index" |
|
||||||
} |
} |
||||||
} |
} |
||||||
|
@ -0,0 +1,7 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "我的诊前检查报告", |
||||||
|
"usingComponents": { |
||||||
|
"uploadFile": "/components/uploadFile/index", |
||||||
|
"popup": "/components/popup/index" |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,483 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.page-tip { |
||||||
|
padding: 20rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(255, 163, 112, 1); |
||||||
|
line-height: 40rpx; |
||||||
|
text-align: center; |
||||||
|
background-color: rgba(255, 247, 232, 1); |
||||||
|
} |
||||||
|
.page { |
||||||
|
padding: 32rpx 30rpx; |
||||||
|
.date-form { |
||||||
|
padding: 24rpx 32rpx; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 24rpx; |
||||||
|
.title { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
.icon { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 48rpx; |
||||||
|
height: 48rpx; |
||||||
|
} |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
margin-left: 16rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(0, 0, 0, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
margin-left: 32rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.form { |
||||||
|
margin-top: 48rpx; |
||||||
|
.form-header { |
||||||
|
padding-bottom: 24rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.form-title { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.order { |
||||||
|
display: flex; |
||||||
|
align-items: baseline; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
font-size: 28rpx; |
||||||
|
.green { |
||||||
|
font-size: 44rpx; |
||||||
|
color: rgba(14, 209, 167, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.all { |
||||||
|
font-size: 28rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.form-card { |
||||||
|
display: flex; |
||||||
|
gap: 24rpx; |
||||||
|
.aside { |
||||||
|
flex-shrink: 0; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
align-items: center; |
||||||
|
.line-top { |
||||||
|
flex-shrink: 0; |
||||||
|
height: 32rpx; |
||||||
|
border-left: 1px dashed rgba(207, 209, 213, 1); |
||||||
|
} |
||||||
|
.order { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 40rpx; |
||||||
|
height: 40rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
background-color: rgba(207, 209, 213, 1); |
||||||
|
border-radius: 50%; |
||||||
|
} |
||||||
|
.line-bottom { |
||||||
|
flex: 1; |
||||||
|
height: 20rpx; |
||||||
|
border-left: 1px dashed rgba(207, 209, 213, 1); |
||||||
|
} |
||||||
|
&.active { |
||||||
|
.order { |
||||||
|
color: #fff; |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
.line-bottom, |
||||||
|
.line-top { |
||||||
|
background-color: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.container { |
||||||
|
flex: 1; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 24rpx; |
||||||
|
margin-bottom: 24rpx; |
||||||
|
.c-header { |
||||||
|
padding: 32rpx 32rpx 32rpx 0; |
||||||
|
.wrap { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.left { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 12rpx; |
||||||
|
.title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
gap: 24rpx; |
||||||
|
align-items: center; |
||||||
|
&::before { |
||||||
|
content: ''; |
||||||
|
width: 8rpx; |
||||||
|
height: 36rpx; |
||||||
|
border-radius: 0 8rpx 8rpx 0; |
||||||
|
background: rgba(28, 107, 255, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.icon { |
||||||
|
width: 32rpx; |
||||||
|
height: 32rpx; |
||||||
|
transition: transform 0.3s; |
||||||
|
&.turn { |
||||||
|
transform: rotate(180deg); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.status { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(137, 141, 151, 1); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 12rpx; |
||||||
|
.icon { |
||||||
|
width: 32rpx; |
||||||
|
height: 32rpx; |
||||||
|
} |
||||||
|
&.active { |
||||||
|
color: rgba(14, 209, 167, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.content { |
||||||
|
padding: 16rpx 32rpx 0; |
||||||
|
font-size: 24rpx; |
||||||
|
color: rgba(96, 97, 99, 1); |
||||||
|
line-height: 36rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.c-body { |
||||||
|
max-height: 100vh; |
||||||
|
transition: all 0.3s; |
||||||
|
&.fold { |
||||||
|
max-height: 0; |
||||||
|
overflow: hidden; |
||||||
|
} |
||||||
|
.module1 { |
||||||
|
padding: 16rpx 32rpx 32rpx; |
||||||
|
.m-title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.module2 { |
||||||
|
padding: 16rpx 32rpx 32rpx; |
||||||
|
.m-input-area { |
||||||
|
padding: 0 32rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
.m-input { |
||||||
|
padding: 32rpx 0; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 32rpx; |
||||||
|
border-bottom: 1px solid rgba(241, 241, 244, 1); |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
width: 7em; |
||||||
|
.sub-label { |
||||||
|
font-size: 20rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.input { |
||||||
|
width: 3em; |
||||||
|
font-size: 32rpx; |
||||||
|
height: 72rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.place-input { |
||||||
|
color: rgba(161, 164, 172, 0.5); |
||||||
|
} |
||||||
|
.sub { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.m-title { |
||||||
|
margin-top: 48rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.module3 { |
||||||
|
padding: 0 32rpx 32rpx; |
||||||
|
.m-input { |
||||||
|
padding: 0 32rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 32rpx; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
border-radius: 24rpx; |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.input { |
||||||
|
flex: 1; |
||||||
|
font-size: 32rpx; |
||||||
|
height: 96rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.place-input { |
||||||
|
color: rgba(161, 164, 172, 0.5); |
||||||
|
} |
||||||
|
.sub { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.m-title { |
||||||
|
margin-top: 48rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.module4 { |
||||||
|
padding: 0 32rpx 32rpx; |
||||||
|
.m-select { |
||||||
|
display: flex; |
||||||
|
flex-wrap: wrap; |
||||||
|
gap: 28rpx; |
||||||
|
.m-item { |
||||||
|
padding: 12rpx 24rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(137, 141, 151, 1); |
||||||
|
background: #f7f7fa; |
||||||
|
border-radius: 12rpx 12rpx 12rpx 12rpx; |
||||||
|
&.active { |
||||||
|
color: #fff; |
||||||
|
background-color: rgba(246, 74, 58, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.m-title { |
||||||
|
margin-top: 48rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.module5 { |
||||||
|
padding: 0 32rpx 32rpx; |
||||||
|
.m-select-title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.m-select { |
||||||
|
margin-top: 24rpx; |
||||||
|
display: flex; |
||||||
|
flex-wrap: wrap; |
||||||
|
gap: 28rpx; |
||||||
|
.m-item { |
||||||
|
padding: 12rpx 24rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(137, 141, 151, 1); |
||||||
|
background: #f7f7fa; |
||||||
|
border-radius: 12rpx 12rpx 12rpx 12rpx; |
||||||
|
&.active { |
||||||
|
color: #fff; |
||||||
|
background-color: rgba(246, 74, 58, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.m-title { |
||||||
|
margin-top: 48rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.module6 { |
||||||
|
padding: 0 32rpx 32rpx; |
||||||
|
.m-select-title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.m-select { |
||||||
|
margin-top: 24rpx; |
||||||
|
display: flex; |
||||||
|
flex-wrap: wrap; |
||||||
|
gap: 28rpx; |
||||||
|
.m-item { |
||||||
|
padding: 12rpx 24rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(137, 141, 151, 1); |
||||||
|
background: #f7f7fa; |
||||||
|
border-radius: 12rpx 12rpx 12rpx 12rpx; |
||||||
|
&.active { |
||||||
|
color: #fff; |
||||||
|
background-color: rgba(246, 74, 58, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.m-title { |
||||||
|
margin-top: 48rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.module7 { |
||||||
|
padding: 0 32rpx 32rpx; |
||||||
|
.m-select-title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.m-select { |
||||||
|
margin-top: 24rpx; |
||||||
|
display: flex; |
||||||
|
flex-wrap: wrap; |
||||||
|
gap: 28rpx; |
||||||
|
.m-item { |
||||||
|
padding: 12rpx 24rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(137, 141, 151, 1); |
||||||
|
background: #f7f7fa; |
||||||
|
border-radius: 12rpx 12rpx 12rpx 12rpx; |
||||||
|
&.active { |
||||||
|
color: #fff; |
||||||
|
background-color: rgba(246, 74, 58, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.m-title { |
||||||
|
margin-top: 48rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.module8 { |
||||||
|
padding: 0 32rpx 32rpx; |
||||||
|
.m-input { |
||||||
|
padding: 0 32rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 32rpx; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
border-radius: 24rpx; |
||||||
|
.label { |
||||||
|
flex-shrink: 0; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.input { |
||||||
|
flex: 1; |
||||||
|
font-size: 32rpx; |
||||||
|
height: 96rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.place-input { |
||||||
|
color: rgba(161, 164, 172, 0.5); |
||||||
|
} |
||||||
|
.sub { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.m-title { |
||||||
|
margin-top: 48rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.module9 { |
||||||
|
padding: 0 32rpx 32rpx; |
||||||
|
.m-select-title { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.m-select { |
||||||
|
margin-top: 24rpx; |
||||||
|
display: flex; |
||||||
|
flex-wrap: wrap; |
||||||
|
gap: 28rpx; |
||||||
|
.m-item { |
||||||
|
padding: 12rpx 24rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(137, 141, 151, 1); |
||||||
|
background: #f7f7fa; |
||||||
|
border-radius: 12rpx 12rpx 12rpx 12rpx; |
||||||
|
&.active { |
||||||
|
color: #fff; |
||||||
|
background-color: rgba(246, 74, 58, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.m-title { |
||||||
|
margin-top: 48rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.module10 { |
||||||
|
padding: 0 32rpx 32rpx; |
||||||
|
.text-area { |
||||||
|
padding: 24rpx 32rpx; |
||||||
|
width: 100%; |
||||||
|
height: 182rpx; |
||||||
|
border-radius: 12rpx; |
||||||
|
box-sizing: border-box; |
||||||
|
background-color: rgba(247, 247, 250, 1); |
||||||
|
} |
||||||
|
.m-title { |
||||||
|
margin-top: 48rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
.file-list { |
||||||
|
margin-top: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,224 @@ |
|||||||
|
const app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
popupShow: false, |
||||||
|
popupType: 'preDiagnosisReportDate', // 确认绑定曾经扫码医生
|
||||||
|
popupParams: {}, |
||||||
|
|
||||||
|
fold1: true, |
||||||
|
fold2: true, |
||||||
|
fold3: true, |
||||||
|
fold4: true, |
||||||
|
fold5: true, |
||||||
|
fold6: true, |
||||||
|
fold7: true, |
||||||
|
fold8: true, |
||||||
|
fold9: true, |
||||||
|
fold10: true, |
||||||
|
|
||||||
|
// form
|
||||||
|
examId: '', |
||||||
|
period: '1', |
||||||
|
patientId: '', |
||||||
|
|
||||||
|
beginDate: '', |
||||||
|
endDate: '', |
||||||
|
isBloodRoutine: 2, |
||||||
|
isBiochemical: 2, |
||||||
|
alt: '', |
||||||
|
ast: '', |
||||||
|
bilirubin: '', |
||||||
|
isCFIxActivity: 2, |
||||||
|
clottingFactor: '', |
||||||
|
isCFIxInhibitor: 2, |
||||||
|
cFII: '', |
||||||
|
isHepatitisB: 2, |
||||||
|
hbsAg: '', |
||||||
|
hbvDNA: '', |
||||||
|
isHepatitisC: 2, |
||||||
|
hcvAntibody: '', |
||||||
|
hcvRNA: '', |
||||||
|
isHivAntibody: 2, |
||||||
|
hiv: '', |
||||||
|
isAfp: 2, |
||||||
|
afp: '', |
||||||
|
isAav: 2, |
||||||
|
aav: '', |
||||||
|
isOther: 2, |
||||||
|
otherInfo: '', |
||||||
|
|
||||||
|
attachmentList1: [], |
||||||
|
attachmentList2: [], |
||||||
|
attachmentList3: [], |
||||||
|
attachmentList4: [], |
||||||
|
attachmentList5: [], |
||||||
|
attachmentList6: [], |
||||||
|
attachmentList7: [], |
||||||
|
attachmentList8: [], |
||||||
|
attachmentList9: [], |
||||||
|
attachmentList10: [], |
||||||
|
|
||||||
|
formKeys: [ |
||||||
|
'beginDate', |
||||||
|
'endDate', |
||||||
|
'isBloodRoutine', |
||||||
|
'isBiochemical', |
||||||
|
'alt', |
||||||
|
'ast', |
||||||
|
'bilirubin', |
||||||
|
'isCFIxActivity', |
||||||
|
'clottingFactor', |
||||||
|
'isCFIxInhibitor', |
||||||
|
'cFII', |
||||||
|
'isHepatitisB', |
||||||
|
'hbsAg', |
||||||
|
'hbvDNA', |
||||||
|
'isHepatitisC', |
||||||
|
'hcvAntibody', |
||||||
|
'hcvRNA', |
||||||
|
'isHivAntibody', |
||||||
|
'hiv', |
||||||
|
'isAfp', |
||||||
|
'afp', |
||||||
|
'isAav', |
||||||
|
'aav', |
||||||
|
'isOther', |
||||||
|
'otherInfo', |
||||||
|
], |
||||||
|
|
||||||
|
checkNum: 0, |
||||||
|
checkList: [ |
||||||
|
'isBloodRoutine', |
||||||
|
'isBiochemical', |
||||||
|
'isCFIxActivity', |
||||||
|
'isCFIxInhibitor', |
||||||
|
'isHepatitisB', |
||||||
|
'isHepatitisC', |
||||||
|
'isHivAntibody', |
||||||
|
'isAfp', |
||||||
|
'isAav', |
||||||
|
'isOther', |
||||||
|
], |
||||||
|
|
||||||
|
dict: { |
||||||
|
result: {}, |
||||||
|
number: {}, |
||||||
|
}, |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
this.setData({ |
||||||
|
examId: options.examid || '', |
||||||
|
period: options.period || '1', |
||||||
|
patientId: options.id || '', |
||||||
|
}) |
||||||
|
if (options.period === '2') { |
||||||
|
wx.setNavigationBarTitle({ |
||||||
|
title: '我的检查报告', |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
onShow() { |
||||||
|
const { formKeys, period } = this.data |
||||||
|
app.waitLogin().then(() => { |
||||||
|
this.getDict() |
||||||
|
this.getDetail() |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleInput(e) { |
||||||
|
const { key, length } = e.currentTarget.dataset |
||||||
|
const value = e.detail.value |
||||||
|
this.setData({ |
||||||
|
[`${key}`]: this.validateInput(value, length), |
||||||
|
}) |
||||||
|
}, |
||||||
|
validateInput(val, integerLimit) { |
||||||
|
let num = val.toString() |
||||||
|
// 清除“数字”和“.”以外的字符
|
||||||
|
num = num.replace(/[^\d.]/g, '') |
||||||
|
// 只保留第一个.,清除多余的
|
||||||
|
num = num.replace(/\.{2,}/g, '.') |
||||||
|
// 限制整数位位数
|
||||||
|
const index = num.indexOf('.') |
||||||
|
if (index !== -1) { |
||||||
|
num = num.slice(0, index + integerLimit + 1) |
||||||
|
} else { |
||||||
|
num = num.slice(0, integerLimit) |
||||||
|
} |
||||||
|
return num |
||||||
|
}, |
||||||
|
getDict() { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/treatment/get-dict', |
||||||
|
data: {}, |
||||||
|
}).then((res) => { |
||||||
|
this.setData({ |
||||||
|
dict: res, |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
getDetail() { |
||||||
|
const { examId, formKeys } = this.data |
||||||
|
if (!examId) return |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-exam-detail', |
||||||
|
data: { |
||||||
|
examId: examId, |
||||||
|
patientId: this.data.patientId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
const reset = formKeys.reduce((pre, cur) => { |
||||||
|
pre[cur] = res[cur] || '' |
||||||
|
return pre |
||||||
|
}, {}) |
||||||
|
this.setData({ |
||||||
|
...reset, |
||||||
|
attachmentList1: res.attachmentList[1] || [], |
||||||
|
attachmentList2: res.attachmentList[2] || [], |
||||||
|
attachmentList3: res.attachmentList[3] || [], |
||||||
|
attachmentList4: res.attachmentList[4] || [], |
||||||
|
attachmentList5: res.attachmentList[5] || [], |
||||||
|
attachmentList6: res.attachmentList[6] || [], |
||||||
|
attachmentList7: res.attachmentList[7] || [], |
||||||
|
attachmentList8: res.attachmentList[8] || [], |
||||||
|
attachmentList9: res.attachmentList[9] || [], |
||||||
|
attachmentList10: res.attachmentList[10] || [], |
||||||
|
}) |
||||||
|
this.getCheckNum() |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleToggleFold(e: any) { |
||||||
|
const { fold } = e.currentTarget.dataset |
||||||
|
this.setData({ |
||||||
|
[fold]: !this.data[fold], |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleToggleCheck(e: any) { |
||||||
|
const { check, fold } = e.currentTarget.dataset |
||||||
|
let foldValue = this.data[fold] |
||||||
|
if (this.data[check] == 2 || !this.data[check]) { |
||||||
|
foldValue = false |
||||||
|
} |
||||||
|
this.setData({ |
||||||
|
[check]: this.data[check] == 1 ? 2 : 1, |
||||||
|
[fold]: foldValue, |
||||||
|
}) |
||||||
|
this.getCheckNum() |
||||||
|
}, |
||||||
|
getCheckNum() { |
||||||
|
const { checkList } = this.data |
||||||
|
let num = 0 |
||||||
|
checkList.forEach((item) => { |
||||||
|
if (this.data[item] == 1) { |
||||||
|
num += 1 |
||||||
|
} |
||||||
|
}) |
||||||
|
this.setData({ |
||||||
|
checkNum: num, |
||||||
|
}) |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
@ -0,0 +1,557 @@ |
|||||||
|
<view class="page-tip">以下内容仅供参考,不作为任何临床诊断依据</view> |
||||||
|
<view class="page"> |
||||||
|
<view class="date-form"> |
||||||
|
<view class="title"> |
||||||
|
<image class="icon" src="{{imageUrl}}icon110.png?t={{Timestamp}}"></image> |
||||||
|
<view class="label">检查时间</view> |
||||||
|
<view class="content" wx:if="{{beginDate && endDate}}">{{beginDate}}至{{endDate}}</view> |
||||||
|
<view class="content" wx:else>--</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form"> |
||||||
|
<view class="form-header"> |
||||||
|
<view class="form-title">您的诊前检查项目</view> |
||||||
|
<view class="order"> |
||||||
|
<view class="green">{{checkNum}}</view> |
||||||
|
/ |
||||||
|
<view class="all">10</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isBloodRoutine==1 && 'active'}}"> |
||||||
|
<view class="line-top" style="border: none"></view> |
||||||
|
<view class="order">1</view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold1"> |
||||||
|
<view class="title">血常规检查</view> |
||||||
|
<image class="icon {{fold1 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="status {{isBloodRoutine==1 && 'active'}} {{isBloodRoutine==1 && 'active'}}" |
||||||
|
catch:tap="handleToggleCheck" |
||||||
|
data-check="isBloodRoutine" |
||||||
|
data-fold="fold1" |
||||||
|
> |
||||||
|
{{isBloodRoutine==1?'已检查':'未检查'}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="content">重点检查项目:白细胞计数)WBC)血红蛋白(HGB)血小板计数(PLT)</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold1 && 'fold'}}"> |
||||||
|
<view class="module1"> |
||||||
|
<view class="m-title" wx:if="{{attachmentList1.length}}">请上传您的检查报告</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList1}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList1" |
||||||
|
data-type="1" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isBiochemical==1 && 'active'}}"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order">2</view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold2"> |
||||||
|
<view class="title">生化检查</view> |
||||||
|
<image class="icon {{fold2 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="status {{isBiochemical==1 && 'active'}} {{isBiochemical==1 && 'active'}}" |
||||||
|
catch:tap="handleToggleCheck" |
||||||
|
data-check="isBiochemical" |
||||||
|
data-fold="fold2" |
||||||
|
> |
||||||
|
{{isBiochemical==1?'已检查':'未检查'}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold2 && 'fold'}}"> |
||||||
|
<view class="module2"> |
||||||
|
<view class="m-input-area"> |
||||||
|
<view class="m-input"> |
||||||
|
<view class="label"> |
||||||
|
ALT |
||||||
|
<view class="sub-label">丙氨酸氨基转移酶</view> |
||||||
|
</view> |
||||||
|
<input |
||||||
|
disabled |
||||||
|
bind:blur="updateSave" |
||||||
|
type="digit" |
||||||
|
bind:input="handleInput" |
||||||
|
data-key="alt" |
||||||
|
data-length="5" |
||||||
|
value="{{alt}}" |
||||||
|
placeholder="--" |
||||||
|
class="input" |
||||||
|
placeholder-class="place-input" |
||||||
|
/> |
||||||
|
<view class="sub">U/L</view> |
||||||
|
</view> |
||||||
|
<view class="m-input"> |
||||||
|
<view class="label"> |
||||||
|
AST |
||||||
|
<view class="sub-label">天门冬氨酸氨基转移酶</view> |
||||||
|
</view> |
||||||
|
<input |
||||||
|
disabled |
||||||
|
bind:blur="updateSave" |
||||||
|
type="digit" |
||||||
|
bind:input="handleInput" |
||||||
|
data-key="ast" |
||||||
|
data-length="5" |
||||||
|
value="{{ast}}" |
||||||
|
placeholder="--" |
||||||
|
class="input" |
||||||
|
placeholder-class="place-input" |
||||||
|
/> |
||||||
|
<view class="sub">U/L</view> |
||||||
|
</view> |
||||||
|
<view class="m-input"> |
||||||
|
<view class="label">总胆红素</view> |
||||||
|
<input |
||||||
|
disabled |
||||||
|
bind:blur="updateSave" |
||||||
|
type="digit" |
||||||
|
bind:input="handleInput" |
||||||
|
data-key="bilirubin" |
||||||
|
data-length="4" |
||||||
|
value="{{bilirubin}}" |
||||||
|
placeholder="--" |
||||||
|
class="input" |
||||||
|
placeholder-class="place-input" |
||||||
|
/> |
||||||
|
<view class="sub">μmol/L</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="m-title" wx:if="{{attachmentList2.length}}">请上传您的检查报告</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList2}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList2" |
||||||
|
data-type="2" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isCFIxActivity==1 && 'active'}}"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order">3</view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold3"> |
||||||
|
<view class="title">凝血因子 IX 活性</view> |
||||||
|
<image class="icon {{fold3 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="status {{isCFIxActivity==1 && 'active'}}" |
||||||
|
catch:tap="handleToggleCheck" |
||||||
|
data-check="isCFIxActivity" |
||||||
|
data-fold="fold3" |
||||||
|
> |
||||||
|
{{isCFIxActivity==1?'已检查':'未检查'}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold3 && 'fold'}}"> |
||||||
|
<view class="module3"> |
||||||
|
<view class="m-input"> |
||||||
|
<view class="label">您的凝血因子水平</view> |
||||||
|
<input |
||||||
|
disabled |
||||||
|
bind:blur="updateSave" |
||||||
|
type="digit" |
||||||
|
bind:input="handleInput" |
||||||
|
data-key="clottingFactor" |
||||||
|
data-length="3" |
||||||
|
value="{{clottingFactor}}" |
||||||
|
placeholder="--" |
||||||
|
class="input" |
||||||
|
placeholder-class="place-input" |
||||||
|
/> |
||||||
|
<view class="sub">%</view> |
||||||
|
</view> |
||||||
|
<view class="m-title" wx:if="{{attachmentList3.length}}">请上传您的检查报告</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList3}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList3" |
||||||
|
data-type="3" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isCFIxInhibitor==1 && 'active'}}"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order">4</view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold4"> |
||||||
|
<view class="title">凝血因子 IX 抑制物检测</view> |
||||||
|
<image class="icon {{fold4 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="status {{isCFIxInhibitor==1 && 'active'}}" |
||||||
|
catch:tap="handleToggleCheck" |
||||||
|
data-check="isCFIxInhibitor" |
||||||
|
data-fold="fold4" |
||||||
|
> |
||||||
|
{{isCFIxInhibitor==1?'已检查':'未检查'}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold4 && 'fold'}}"> |
||||||
|
<view class="module4"> |
||||||
|
<view class="m-select"> |
||||||
|
<view class="m-item {{cFII==index && 'active'}}" wx:for="{{dict.result}}" wx:key="index">{{item}}</view> |
||||||
|
</view> |
||||||
|
<view class="m-title" wx:if="{{attachmentList4.length}}">可上传您的抑制物检查结果</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList4}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList4" |
||||||
|
data-type="4" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isHepatitisB==1 && 'active'}}"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order">5</view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold5"> |
||||||
|
<view class="title">乙型肝炎相关检查</view> |
||||||
|
<image class="icon {{fold5 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="status {{isHepatitisB==1 && 'active'}}" |
||||||
|
catch:tap="handleToggleCheck" |
||||||
|
data-check="isHepatitisB" |
||||||
|
data-fold="fold5" |
||||||
|
> |
||||||
|
{{isHepatitisB==1?'已检查':'未检查'}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold5 && 'fold'}}"> |
||||||
|
<view class="module5"> |
||||||
|
<view class="m-select-title">乙型肝炎病毒表面抗原(HBsAg)</view> |
||||||
|
<view class="m-select"> |
||||||
|
<view class="m-item {{hbsAg==index && 'active'}}" wx:for="{{dict.result}}" wx:key="index">{{item}}</view> |
||||||
|
</view> |
||||||
|
<view class="m-select-title" style="margin-top: 48rpx">乙型肝炎病毒脱氧核糖核酸(HBV - DNA)</view> |
||||||
|
<view class="m-select"> |
||||||
|
<view class="m-item {{hbvDNA==index && 'active'}}" wx:for="{{dict.number}}" wx:key="index">{{item}}</view> |
||||||
|
</view> |
||||||
|
<view class="m-title" wx:if="{{attachmentList5.length}}">请上传乙型肝炎检查报告</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList5}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList5" |
||||||
|
data-type="5" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isHepatitisC==1 && 'active'}}"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order">6</view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold6"> |
||||||
|
<view class="title">丙型肝炎相关检查</view> |
||||||
|
<image class="icon {{fold6 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="status {{isHepatitisC==1 && 'active'}}" |
||||||
|
catch:tap="handleToggleCheck" |
||||||
|
data-check="isHepatitisC" |
||||||
|
data-fold="fold6" |
||||||
|
> |
||||||
|
{{isHepatitisC==1?'已检查':'未检查'}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold6 && 'fold'}}"> |
||||||
|
<view class="module6"> |
||||||
|
<view class="m-select-title">丙型肝炎病毒抗体(抗 - HCV)</view> |
||||||
|
<view class="m-select"> |
||||||
|
<view class="m-item {{hcvAntibody==index && 'active'}}" wx:for="{{dict.result}}" wx:key="index"> |
||||||
|
{{item}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="m-select-title" style="margin-top: 48rpx">丙型肝炎病毒核糖核酸(HCV - RNA)</view> |
||||||
|
<view class="m-select"> |
||||||
|
<view class="m-item {{hcvRNA==index && 'active'}}" wx:for="{{dict.result}}" wx:key="index">{{item}}</view> |
||||||
|
</view> |
||||||
|
<view class="m-title" wx:if="{{attachmentList6.length}}">请上传丙型肝炎检查报告</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList6}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList6" |
||||||
|
data-type="6" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isHivAntibody==1 && 'active'}}"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order">7</view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold7"> |
||||||
|
<view class="title">HIV抗体</view> |
||||||
|
<image class="icon {{fold7 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="status {{isHivAntibody==1 && 'active'}}" |
||||||
|
catch:tap="handleToggleCheck" |
||||||
|
data-check="isHivAntibody" |
||||||
|
data-fold="fold7" |
||||||
|
> |
||||||
|
{{isHivAntibody==1?'已检查':'未检查'}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="content">类免疫缺陷病毒抗体(HIV - Ab)</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold7 && 'fold'}}"> |
||||||
|
<view class="module7"> |
||||||
|
<view class="m-select-title">填选您的HIV检查结果</view> |
||||||
|
<view class="m-select"> |
||||||
|
<view class="m-item {{hiv==index && 'active'}}" wx:for="{{dict.result}}" wx:key="index">{{item}}</view> |
||||||
|
</view> |
||||||
|
<view class="m-title" wx:if="{{attachmentList7.length}}">提交您的HIV检测报告</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList7}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList7" |
||||||
|
data-type="7" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isAfp==1 && 'active'}}"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order">8</view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold8"> |
||||||
|
<view class="title">甲胎蛋白(AFP)检测</view> |
||||||
|
<image class="icon {{fold8 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="status {{isAfp==1 && 'active'}}" |
||||||
|
catch:tap="handleToggleCheck" |
||||||
|
data-check="isAfp" |
||||||
|
data-fold="fold8" |
||||||
|
> |
||||||
|
{{isAfp==1?'已检查':'未检查'}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold8 && 'fold'}}"> |
||||||
|
<view class="module8"> |
||||||
|
<view class="m-input"> |
||||||
|
<view class="label">您的(AFP)检测</view> |
||||||
|
<input |
||||||
|
disabled |
||||||
|
bind:blur="updateSave" |
||||||
|
type="digit" |
||||||
|
bind:input="handleInput" |
||||||
|
data-key="afp" |
||||||
|
data-length="3" |
||||||
|
value="{{afp}}" |
||||||
|
placeholder="--" |
||||||
|
class="input" |
||||||
|
placeholder-class="place-input" |
||||||
|
/> |
||||||
|
<view class="sub">μg/L</view> |
||||||
|
</view> |
||||||
|
<view class="m-title" wx:if="{{attachmentList8.length}}">提交您的AFP 检测报告</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList8}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList8" |
||||||
|
data-type="8" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isAav==1 && 'active'}}"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order">9</view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold9"> |
||||||
|
<view class="title">AAV 抗体检查</view> |
||||||
|
<image class="icon {{fold9 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="status {{isAav==1 && 'active'}}" |
||||||
|
catch:tap="handleToggleCheck" |
||||||
|
data-check="isAav" |
||||||
|
data-fold="fold9" |
||||||
|
> |
||||||
|
{{isAav==1?'已检查':'未检查'}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="content">提交您的AAV抗体检查报告</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold9 && 'fold'}}"> |
||||||
|
<view class="module9"> |
||||||
|
<view class="m-select-title">填选您的AAV检查结果</view> |
||||||
|
<view class="m-select"> |
||||||
|
<view class="m-item {{aav==index && 'active'}}" wx:for="{{dict.result}}" wx:key="index">{{item}}</view> |
||||||
|
</view> |
||||||
|
<view class="m-title" wx:if="{{attachmentList9.length}}">提交您的AAV检测报告</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList9}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList9" |
||||||
|
data-type="9" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="aside {{isOther==1 && 'active'}}"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="order" style="font-size: 24rpx">10</view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="left" bind:tap="handleToggleFold" data-fold="fold10"> |
||||||
|
<view class="title">其他检查</view> |
||||||
|
<image class="icon {{fold10 && 'turn'}}" src="{{imageUrl}}icon63.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view |
||||||
|
class="status {{isOther==1 && 'active'}}" |
||||||
|
catch:tap="handleToggleCheck" |
||||||
|
data-check="isOther" |
||||||
|
data-fold="fold10" |
||||||
|
> |
||||||
|
{{isOther==1?'已检查':'未检查'}} |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="content">您的其他项检查</view> |
||||||
|
</view> |
||||||
|
<view class="c-body {{fold10 && 'fold'}}"> |
||||||
|
<view class="module10"> |
||||||
|
<textarea |
||||||
|
disabled |
||||||
|
class="text-area" |
||||||
|
model:value="{{otherInfo}}" |
||||||
|
placeholder="--" |
||||||
|
disable-default-padding |
||||||
|
></textarea> |
||||||
|
<view class="m-title" wx:if="{{attachmentList10.length}}">提交您的检测报告</view> |
||||||
|
<view class="file-list"> |
||||||
|
<uploadFile |
||||||
|
upload="{{false}}" |
||||||
|
delete="{{false}}" |
||||||
|
fileList="{{attachmentList10}}" |
||||||
|
maxNum="{{9}}" |
||||||
|
data-key="attachmentList10" |
||||||
|
data-type="10" |
||||||
|
></uploadFile> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
|
||||||
|
<popup |
||||||
|
show="{{popupShow}}" |
||||||
|
type="{{popupType}}" |
||||||
|
params="{{popupParams}}" |
||||||
|
bind:ok="handlePopupOk" |
||||||
|
bind:cancel="handlePopupCancel" |
||||||
|
></popup> |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "我的复诊记录", |
||||||
|
"usingComponents": {} |
||||||
|
} |
@ -0,0 +1,43 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(246, 246, 246, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.page { |
||||||
|
.list { |
||||||
|
padding: 32rpx 40rpx; |
||||||
|
.total { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
.red { |
||||||
|
color: rgba(28, 107, 255, 1); |
||||||
|
font-size: 40rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.list-card { |
||||||
|
padding: 16rpx 0; |
||||||
|
margin-top: 24rpx; |
||||||
|
background: linear-gradient( 349deg, #FFFFFF 0%, #F1F6FF 100%); |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
.item { |
||||||
|
padding: 16rpx 32rpx; |
||||||
|
display: flex; |
||||||
|
.item-title { |
||||||
|
width: 5em; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(161, 164, 172, 1); |
||||||
|
} |
||||||
|
.item-content { |
||||||
|
color: rgba(1, 1, 5, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.add { |
||||||
|
position: fixed; |
||||||
|
left: 50%; |
||||||
|
bottom: 142rpx; |
||||||
|
transform: translateX(-50%); |
||||||
|
width: 156rpx; |
||||||
|
height: 156rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,64 @@ |
|||||||
|
const app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
list: [], |
||||||
|
pagination: { |
||||||
|
page: 1, |
||||||
|
pages: 1, |
||||||
|
count: 1, |
||||||
|
}, |
||||||
|
|
||||||
|
patientId: '', |
||||||
|
examId: '', |
||||||
|
period: '1', |
||||||
|
}, |
||||||
|
onLoad(options) { |
||||||
|
this.setData({ |
||||||
|
examId: options.examid || '', |
||||||
|
period: options.period || '1', |
||||||
|
patientId: options.id || '', |
||||||
|
}) |
||||||
|
}, |
||||||
|
onShow() { |
||||||
|
app.waitLogin({ type: 2 }).then(() => { |
||||||
|
this.getList() |
||||||
|
}) |
||||||
|
}, |
||||||
|
getList(newPage = 1) { |
||||||
|
wx.ajax({ |
||||||
|
method: 'GET', |
||||||
|
url: '?r=wtx/doctor/treatment/get-exam-list', |
||||||
|
data: { |
||||||
|
page: newPage, |
||||||
|
period: 4, |
||||||
|
patientId: this.data.patientId, |
||||||
|
}, |
||||||
|
}).then((res) => { |
||||||
|
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) |
||||||
|
} |
||||||
|
}, |
||||||
|
handleEdit(e) { |
||||||
|
const { id } = e.currentTarget.dataset |
||||||
|
wx.navigateTo({ |
||||||
|
url: `/doctor/pages/lastDiagnosisReport/index?period=${this.data.period}&examid=${id}&edit=1&id=${this.data.patientId}`, |
||||||
|
}) |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
@ -0,0 +1,27 @@ |
|||||||
|
<view class="page"> |
||||||
|
<view class="list"> |
||||||
|
<view class="total" wx:if="{{pagination.count>0}}"> |
||||||
|
随访次数: |
||||||
|
<text class="red">{{pagination.count}}</text> |
||||||
|
次 |
||||||
|
</view> |
||||||
|
<view class="list-card" wx:for="{{list}}" wx:key="examId" bind:tap="handleEdit" data-id="{{item.examId}}"> |
||||||
|
<view class="item"> |
||||||
|
<view class="item-title">日期</view> |
||||||
|
<view class="item-content"> |
||||||
|
<block wx:if="{{item.beginDate && item.endDate}}">{{item.beginDate}}-{{item.endDate}}</block> |
||||||
|
<block wx:else>---</block> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="item-title">诊疗医院</view> |
||||||
|
<view class="item-content">{{item.hospitalName || '---'}}</view> |
||||||
|
</view> |
||||||
|
<view class="item"> |
||||||
|
<view class="item-title">检查项目</view> |
||||||
|
<view class="item-content">{{item.totalNum}}/{{item.allNum}}</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<pagination pagination="{{pagination}}"></pagination> |
||||||
|
</view> |
||||||
|
</view> |
After Width: | Height: | Size: 225 KiB |
After Width: | Height: | Size: 62 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1017 B |
After Width: | Height: | Size: 883 B |
Loading…
Reference in new issue