@ -0,0 +1,9 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "就诊记录", |
||||||
|
"navigationBarBackgroundColor": "#F6F6F6", |
||||||
|
"usingComponents": { |
||||||
|
"uploadFile": "/components/uploadFile/index", |
||||||
|
"van-icon": "@vant/weapp/icon/index", |
||||||
|
"toast": "/components/toast/index" |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,590 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(246, 246, 246, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.page { |
||||||
|
.page-header { |
||||||
|
padding: 50rpx 64rpx 0; |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
.item { |
||||||
|
flex-shrink: 0; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
align-items: center; |
||||||
|
.order { |
||||||
|
width: 52rpx; |
||||||
|
height: 52rpx; |
||||||
|
text-align: center; |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 0.3); |
||||||
|
line-height: 52rpx; |
||||||
|
border-radius: 50%; |
||||||
|
background-color: rgba(236, 236, 236, 1); |
||||||
|
border: 8rpx solid rgba(255, 255, 255, 0); |
||||||
|
background-clip: content-box; |
||||||
|
.icon { |
||||||
|
width: 28rpx; |
||||||
|
height: 28rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.order-end { |
||||||
|
width: 52rpx; |
||||||
|
height: 52rpx; |
||||||
|
} |
||||||
|
.name { |
||||||
|
margin-top: 4rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(34, 34, 34, 0.4); |
||||||
|
&.current { |
||||||
|
color: rgba(14, 182, 109, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
&.active { |
||||||
|
.order { |
||||||
|
background-color: rgba(14, 182, 109, 1); |
||||||
|
border: 8rpx solid #e5f2ec; |
||||||
|
color: #fff; |
||||||
|
opacity: 1; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.line { |
||||||
|
margin: 30rpx -10rpx 0; |
||||||
|
flex: 1; |
||||||
|
border-top: 1px dashed rgba(34, 34, 34, 0.1); |
||||||
|
&.active { |
||||||
|
border-color: rgba(14, 182, 109, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.step1 { |
||||||
|
margin: 32rpx; |
||||||
|
background-color: rgba(255, 255, 255, 0.9); |
||||||
|
border-radius: 24rpx; |
||||||
|
.s-header { |
||||||
|
padding: 20rpx 0; |
||||||
|
display: flex; |
||||||
|
align-items: start; |
||||||
|
justify-content: center; |
||||||
|
.title { |
||||||
|
margin-top: 48rpx; |
||||||
|
width: 410rpx; |
||||||
|
height: 122rpx; |
||||||
|
} |
||||||
|
.badge { |
||||||
|
margin-left: -24rpx; |
||||||
|
width: 224rpx; |
||||||
|
height: 188rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.s-form { |
||||||
|
padding: 24rpx 40rpx 40rpx; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 16rpx; |
||||||
|
box-shadow: 0rpx 4rpx 40rpx 0rpx rgba(0, 0, 0, 0.08); |
||||||
|
.form-item { |
||||||
|
margin-top: 32rpx; |
||||||
|
padding-bottom: 32rpx; |
||||||
|
border-bottom: 1px dashed rgba(34, 34, 34, 0.1); |
||||||
|
.label { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 12rpx; |
||||||
|
&::before { |
||||||
|
content: ''; |
||||||
|
width: 8rpx; |
||||||
|
height: 36rpx; |
||||||
|
background: #0eb66d; |
||||||
|
border-radius: 44rpx 44rpx 44rpx 44rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.date { |
||||||
|
margin-top: 24rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
padding: 0 32rpx; |
||||||
|
height: 96rpx; |
||||||
|
background: #f6f6f6; |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
gap: 24rpx; |
||||||
|
.icon1 { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 44rpx; |
||||||
|
height: 44rpx; |
||||||
|
} |
||||||
|
.icon2 { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 40rpx; |
||||||
|
height: 40rpx; |
||||||
|
} |
||||||
|
.content { |
||||||
|
flex: 1; |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
|
||||||
|
&:empty::after { |
||||||
|
content: attr(data-place); |
||||||
|
color: rgba(34, 34, 34, 0.7); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.step1-btn { |
||||||
|
margin: 82rpx 40rpx 0; |
||||||
|
height: 96rpx; |
||||||
|
font-size: 40rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
background: linear-gradient(86deg, #0eb66d 0%, #00d277 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
} |
||||||
|
|
||||||
|
.step2 { |
||||||
|
.tip-card { |
||||||
|
margin: 32rpx; |
||||||
|
padding: 16rpx 32rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(248, 167, 28, 1); |
||||||
|
line-height: 48rpx; |
||||||
|
background-color: rgba(255, 248, 236, 1); |
||||||
|
border-radius: 24rpx; |
||||||
|
border: 1px solid #fff; |
||||||
|
} |
||||||
|
.form-card { |
||||||
|
margin: 32rpx; |
||||||
|
padding: 32rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: #fff; |
||||||
|
.f-header { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.label { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
line-height: 48rpx; |
||||||
|
&::before { |
||||||
|
margin-right: 24rpx; |
||||||
|
margin-left: -32rpx; |
||||||
|
width: 8rpx; |
||||||
|
height: 36rpx; |
||||||
|
background: #0eb66d; |
||||||
|
content: ''; |
||||||
|
border-radius: 0 8rpx 8rpx 0; |
||||||
|
} |
||||||
|
&.required::after { |
||||||
|
display: inline; |
||||||
|
content: '*'; |
||||||
|
color: rgba(211, 62, 48, 1); |
||||||
|
bottom: none; |
||||||
|
padding: 0; |
||||||
|
background: transparent; |
||||||
|
} |
||||||
|
&::after { |
||||||
|
padding: 0 16rpx; |
||||||
|
line-height: 40rpx; |
||||||
|
content: '选填'; |
||||||
|
background-color: rgba(34, 34, 34, 0.06); |
||||||
|
border-radius: 8rpx; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
font-weight: normal; |
||||||
|
} |
||||||
|
} |
||||||
|
.example { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(14, 182, 109, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.content { |
||||||
|
margin-top: 16rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(34, 34, 34, 0.5); |
||||||
|
} |
||||||
|
.upload-container { |
||||||
|
margin-top: 32rpx; |
||||||
|
padding: 0; |
||||||
|
width: 300rpx; |
||||||
|
height: 168rpx; |
||||||
|
box-sizing: border-box; |
||||||
|
background: #f3fffa; |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx dashed #0eb66d; |
||||||
|
overflow: hidden; |
||||||
|
.icon { |
||||||
|
display: block; |
||||||
|
margin: 28rpx auto 0; |
||||||
|
width: 48rpx; |
||||||
|
height: 48rpx; |
||||||
|
} |
||||||
|
.name { |
||||||
|
margin-top: 18rpx; |
||||||
|
text-align: center; |
||||||
|
font-size: 28rpx; |
||||||
|
color: rgba(14, 182, 109, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.upload-preview { |
||||||
|
position: relative; |
||||||
|
margin-top: 32rpx; |
||||||
|
width: 300rpx; |
||||||
|
height: 168rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
.upload-img { |
||||||
|
display: block; |
||||||
|
width: 100%; |
||||||
|
height: 100%; |
||||||
|
border-radius: 24rpx; |
||||||
|
} |
||||||
|
.del { |
||||||
|
position: absolute; |
||||||
|
top: 0; |
||||||
|
right: 0; |
||||||
|
color: #fff; |
||||||
|
font-size: 28rpx; |
||||||
|
padding: 4rpx 12rpx; |
||||||
|
background-color: rgba(0, 0, 0, 0.8); |
||||||
|
border-radius: 0 24rpx 0 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.step2-footer { |
||||||
|
position: sticky; |
||||||
|
bottom: 0; |
||||||
|
left: 0; |
||||||
|
width: 100%; |
||||||
|
padding: 32rpx 32rpx calc(env(safe-area-inset-bottom)); |
||||||
|
background-color: #fff; |
||||||
|
box-sizing: border-box; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 26rpx; |
||||||
|
.prev { |
||||||
|
flex: 1; |
||||||
|
height: 96rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(14, 182, 109, 1); |
||||||
|
background: #ffffff; |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #0eb66d; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
.next { |
||||||
|
flex: 1; |
||||||
|
height: 96rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 36rpx; |
||||||
|
color: #fff; |
||||||
|
background: linear-gradient(86deg, #0eb66d 0%, #00d277 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.step3 { |
||||||
|
.tip-card { |
||||||
|
margin: 32rpx; |
||||||
|
padding: 16rpx 32rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(248, 167, 28, 1); |
||||||
|
line-height: 48rpx; |
||||||
|
background-color: rgba(255, 248, 236, 1); |
||||||
|
border-radius: 24rpx; |
||||||
|
border: 1px solid #fff; |
||||||
|
} |
||||||
|
.form-card { |
||||||
|
margin: 32rpx; |
||||||
|
padding: 32rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: #fff; |
||||||
|
.f-header { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.label { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
font-weight: bold; |
||||||
|
line-height: 48rpx; |
||||||
|
display: flex; |
||||||
|
&::before { |
||||||
|
display: inline-block; |
||||||
|
margin-right: 24rpx; |
||||||
|
margin-left: -32rpx; |
||||||
|
width: 8rpx; |
||||||
|
height: 36rpx; |
||||||
|
background: #0eb66d; |
||||||
|
content: ''; |
||||||
|
border-radius: 0 8rpx 8rpx 0; |
||||||
|
} |
||||||
|
&.doboule::before { |
||||||
|
height: 84rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.num { |
||||||
|
margin-top: 24rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 20rpx; |
||||||
|
.wrap { |
||||||
|
padding: 0 32rpx; |
||||||
|
background: #f6f6f6; |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 24rpx; |
||||||
|
.input { |
||||||
|
flex: 1; |
||||||
|
height: 96rpx; |
||||||
|
line-height: 96rpx; |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(0, 0, 0, 1); |
||||||
|
} |
||||||
|
.place-input { |
||||||
|
color: rgba(0, 0, 0, 0.4); |
||||||
|
} |
||||||
|
.icon { |
||||||
|
width: 44rpx; |
||||||
|
height: 44rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.sub { |
||||||
|
flex-shrink: 0; |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 0.3); |
||||||
|
} |
||||||
|
} |
||||||
|
.check-group { |
||||||
|
margin-top: 32rpx; |
||||||
|
display: grid; |
||||||
|
gap: 24rpx; |
||||||
|
&.col1 { |
||||||
|
grid-template-columns: repeat(1, 1fr); |
||||||
|
} |
||||||
|
&.col2 { |
||||||
|
grid-template-columns: repeat(2, 1fr); |
||||||
|
} |
||||||
|
.check-item { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 24rpx; |
||||||
|
padding: 0 32rpx; |
||||||
|
height: 96rpx; |
||||||
|
border-radius: 16rpx; |
||||||
|
background-color: rgba(248, 248, 248, 1); |
||||||
|
border: 1px solid rgba(248, 248, 248, 1); |
||||||
|
box-sizing: border-box; |
||||||
|
.check { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 40rpx; |
||||||
|
height: 40rpx; |
||||||
|
border-radius: 8rpx; |
||||||
|
border: 1px solid rgba(34, 34, 34, 0.2); |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
.icon { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
} |
||||||
|
.content { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 0.7); |
||||||
|
} |
||||||
|
&.active { |
||||||
|
border-color: rgba(14, 182, 109, 1); |
||||||
|
background-color: rgba(14, 182, 109, 0.08); |
||||||
|
.check { |
||||||
|
border-color: rgba(14, 182, 109, 1); |
||||||
|
background-color: rgba(14, 182, 109, 1); |
||||||
|
.icon { |
||||||
|
color: #fff; |
||||||
|
display: block; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.num-select { |
||||||
|
margin-top: 32rpx; |
||||||
|
display: grid; |
||||||
|
grid-template-columns: repeat(3, 1fr); |
||||||
|
gap: 24rpx 22rpx; |
||||||
|
.n-item { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
gap: 24rpx; |
||||||
|
height: 96rpx; |
||||||
|
border-radius: 16rpx; |
||||||
|
background-color: rgba(248, 248, 248, 1); |
||||||
|
border: 1px solid rgba(248, 248, 248, 1); |
||||||
|
box-sizing: border-box; |
||||||
|
.content { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 0.7); |
||||||
|
} |
||||||
|
&.active { |
||||||
|
border-color: rgba(14, 182, 109, 1); |
||||||
|
background-color: rgba(14, 182, 109, 0.08); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.custom-num { |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 0 32rpx; |
||||||
|
background: #f6f6f6; |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 24rpx; |
||||||
|
.input { |
||||||
|
flex: 1; |
||||||
|
height: 96rpx; |
||||||
|
line-height: 96rpx; |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(0, 0, 0, 1); |
||||||
|
} |
||||||
|
.place-input { |
||||||
|
color: rgba(0, 0, 0, 0.4); |
||||||
|
} |
||||||
|
.sub { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(0, 0, 0, 0.8); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.step3-footer { |
||||||
|
position: sticky; |
||||||
|
bottom: 0; |
||||||
|
left: 0; |
||||||
|
width: 100%; |
||||||
|
padding: 32rpx 32rpx calc(env(safe-area-inset-bottom)); |
||||||
|
background-color: #fff; |
||||||
|
box-sizing: border-box; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 26rpx; |
||||||
|
.prev { |
||||||
|
flex: 1; |
||||||
|
height: 96rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(14, 182, 109, 1); |
||||||
|
background: #ffffff; |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
border: 2rpx solid #0eb66d; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
.submit { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 406rpx; |
||||||
|
height: 96rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
font-size: 36rpx; |
||||||
|
color: #fff; |
||||||
|
background: linear-gradient(86deg, #0eb66d 0%, #00d277 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#drug-page { |
||||||
|
.page-header { |
||||||
|
.name.current { |
||||||
|
color: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
.item.active { |
||||||
|
.order { |
||||||
|
background-image: linear-gradient(274deg, #5956e9 0%, #b384f4 100%); |
||||||
|
border-color: rgba(89, 86, 233, 0.08); |
||||||
|
} |
||||||
|
} |
||||||
|
.line.active { |
||||||
|
border-color: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.step1 { |
||||||
|
.label::before { |
||||||
|
background: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.step1-btn { |
||||||
|
background: linear-gradient(274deg, #5956e9 0%, #b384f4 100%); |
||||||
|
} |
||||||
|
.step2 { |
||||||
|
.form-card { |
||||||
|
.label::before { |
||||||
|
background: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
.example { |
||||||
|
color: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
.upload-container { |
||||||
|
border-color: rgba(89, 86, 233, 1); |
||||||
|
background-color: rgba(249, 249, 255, 1); |
||||||
|
.name { |
||||||
|
color: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.step2-footer { |
||||||
|
.prev { |
||||||
|
color: rgba(89, 86, 233, 1); |
||||||
|
border-color: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
.next { |
||||||
|
background: linear-gradient(274deg, #5956e9 0%, #b384f4 100%); |
||||||
|
} |
||||||
|
} |
||||||
|
.step3 { |
||||||
|
.f-header { |
||||||
|
.label::before { |
||||||
|
background: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.check-group { |
||||||
|
.check-item.active { |
||||||
|
border-color: rgba(89, 86, 233, 1); |
||||||
|
background-color: rgba(89, 86, 233, 0.08); |
||||||
|
.check { |
||||||
|
border-color: rgba(89, 86, 233, 1); |
||||||
|
background-color: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.step3-footer { |
||||||
|
.prev { |
||||||
|
color: rgba(89, 86, 233, 1); |
||||||
|
border-color: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
.submit { |
||||||
|
background: linear-gradient(274deg, #5956e9 0%, #b384f4 100%); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,39 @@ |
|||||||
|
const _app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: { |
||||||
|
step: 3, |
||||||
|
|
||||||
|
toastShow: false, |
||||||
|
toastType: '', |
||||||
|
// toastType: 'oneWrite',
|
||||||
|
// toastType: 'noWrite', // 用户信息未填全的提醒弹窗
|
||||||
|
toastParams: {} as any, |
||||||
|
}, |
||||||
|
onLoad() {}, |
||||||
|
handleSetData(e: WechatMiniprogram.CustomEvent) { |
||||||
|
const imgUrl = e.detail[0].imgUrl |
||||||
|
this.setData({ |
||||||
|
uploadImg: imgUrl, |
||||||
|
audit: true, |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleExample(e) { |
||||||
|
wx.previewImage({ |
||||||
|
urls: [e.currentTarget.dataset.url], |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleToastOk() { |
||||||
|
const { toastType } = this.data |
||||||
|
}, |
||||||
|
handleToastCancel(_e = null) { |
||||||
|
const { toastType } = this.data |
||||||
|
this.setData({ |
||||||
|
toastShow: false, |
||||||
|
toastType: '', |
||||||
|
toastParams: '', |
||||||
|
}) |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
||||||
@ -0,0 +1,227 @@ |
|||||||
|
<view class="page" id="{{theme === 'DRUG' && 'drug-page'}}"> |
||||||
|
<view class="page-header"> |
||||||
|
<view class="item active"> |
||||||
|
<view class="order"> |
||||||
|
<block wx:if="{{step<=1}}">1</block> |
||||||
|
<image wx:else class="icon" src="{{imageUrl}}icon112.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="name {{step==1 && 'current'}}">时间记录</view> |
||||||
|
</view> |
||||||
|
<view class="line {{step>1 &&'active'}}"></view> |
||||||
|
<view class="item {{step>1 &&'active'}}"> |
||||||
|
<view class="order"> |
||||||
|
<block wx:if="{{step<=2}}">2</block> |
||||||
|
<image wx:else class="icon" src="{{imageUrl}}icon112.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="name {{step==2 && 'current'}}">上传资料</view> |
||||||
|
</view> |
||||||
|
<view class="line {{step>2 &&'active'}}"></view> |
||||||
|
<view class="item {{step>2 &&'active'}}"> |
||||||
|
<view class="order">3</view> |
||||||
|
<view class="name {{step==3 && 'current'}}">核对指标</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<block wx:if="{{step==1}}"> |
||||||
|
<view class="step1"> |
||||||
|
<view class="s-header"> |
||||||
|
<image class="title" src="{{imageUrl}}{{theme === 'DRUG' ? 'title5' : 'title4'}}.png?t={{Timestamp}}"></image> |
||||||
|
<image class="badge" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon133' : 'icon113'}}.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="s-form"> |
||||||
|
<view class="form-item"> |
||||||
|
<view class="label">我的本次就诊时间</view> |
||||||
|
<picker> |
||||||
|
<view class="date"> |
||||||
|
<image class="icon1" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon134' : 'icon114'}}.png?t={{Timestamp}}"></image> |
||||||
|
<view class="content" data-place="选择开始时间"></view> |
||||||
|
<image class="icon2" src="{{imageUrl}}icon115.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</picker> |
||||||
|
</view> |
||||||
|
<view class="form-item"> |
||||||
|
<view class="label">我的下次就诊时间</view> |
||||||
|
<picker> |
||||||
|
<view class="date"> |
||||||
|
<image class="icon1" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon134' : 'icon114'}}.png?t={{Timestamp}}"></image> |
||||||
|
<view class="content" data-place="选择开始时间"></view> |
||||||
|
<image class="icon2" src="{{imageUrl}}icon115.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</picker> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="step1-btn">下一步</view> |
||||||
|
</block> |
||||||
|
<view class="step2" wx:if="{{step==2}}"> |
||||||
|
<view class="tip-card">门诊材料会分类存储到 "我的-健康档案",方便您查看对比。</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="f-header"> |
||||||
|
<view class="label required">门诊病历及处方</view> |
||||||
|
<view class="example" bind:tap="handleExample" data-url="{{imageUrl}}{{theme === 'DRUG' ? 'bg42' : 'bg40'}}.png?t={{Timestamp}}">示意</view> |
||||||
|
</view> |
||||||
|
<view class="content">医生手写或电脑打印的病历、处方</view> |
||||||
|
<uploadFile fileTypes="{{['image']}}" bind:setData="handleSetData" maxNum="{{1}}" isSlot="{{true}}"> |
||||||
|
<view class="upload-container" wx:if="{{!uploadImg}}"> |
||||||
|
<image class="icon" wx:if="{{!uploadImg}}" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon135' : 'icon48'}}.png?t={{Timestamp}}"></image> |
||||||
|
<view class="name" wx:if="{{!uploadImg}}">添加文件照片</view> |
||||||
|
</view> |
||||||
|
<view class="upload-preview" wx:else> |
||||||
|
<image class="upload-img" mode="aspectFill" src="{{uploadImg}}"></image> |
||||||
|
<view class="del"> |
||||||
|
<van-icon name="cross" /> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</uploadFile> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="f-header"> |
||||||
|
<view class="label required">检验报告(IgG4化验单等)</view> |
||||||
|
<view class="example" bind:tap="handleExample" data-url="{{imageUrl}}{{theme === 'DRUG' ? 'bg41' : 'bg39'}}.png?t={{Timestamp}}">示意</view> |
||||||
|
</view> |
||||||
|
<view class="content">抽血检测的IgG4、总免疫球蛋白、ESR等</view> |
||||||
|
<uploadFile fileTypes="{{['image']}}" bind:setData="handleSetData" maxNum="{{1}}" isSlot="{{true}}"> |
||||||
|
<view class="upload-container" wx:if="{{!uploadImg}}"> |
||||||
|
<image class="icon" wx:if="{{!uploadImg}}" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon135' : 'icon48'}}.png?t={{Timestamp}}"></image> |
||||||
|
<view class="name" wx:if="{{!uploadImg}}">添加文件照片</view> |
||||||
|
</view> |
||||||
|
<view class="upload-preview" wx:else> |
||||||
|
<image class="upload-img" mode="aspectFill" src="{{uploadImg}}"></image> |
||||||
|
</view> |
||||||
|
</uploadFile> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="f-header"> |
||||||
|
<view class="label">影像学检查(CT/超声/核磁)</view> |
||||||
|
</view> |
||||||
|
<view class="content">超声、CT、核磁共振的描述结论、电子胶片</view> |
||||||
|
<uploadFile fileTypes="{{['image']}}" bind:setData="handleSetData" maxNum="{{1}}" isSlot="{{true}}"> |
||||||
|
<view class="upload-container" wx:if="{{!uploadImg}}"> |
||||||
|
<image class="icon" wx:if="{{!uploadImg}}" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon135' : 'icon48'}}.png?t={{Timestamp}}"></image> |
||||||
|
<view class="name" wx:if="{{!uploadImg}}">添加文件照片</view> |
||||||
|
</view> |
||||||
|
<view class="upload-preview" wx:else> |
||||||
|
<image class="upload-img" mode="aspectFill" src="{{uploadImg}}"></image> |
||||||
|
</view> |
||||||
|
</uploadFile> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="f-header"> |
||||||
|
<view class="label">病理诊断及活检</view> |
||||||
|
</view> |
||||||
|
<view class="content">受累组织穿刺或切除免疫组化报告</view> |
||||||
|
<uploadFile fileTypes="{{['image']}}" bind:setData="handleSetData" maxNum="{{1}}" isSlot="{{true}}"> |
||||||
|
<view class="upload-container" wx:if="{{!uploadImg}}"> |
||||||
|
<image class="icon" wx:if="{{!uploadImg}}" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon135' : 'icon48'}}.png?t={{Timestamp}}"></image> |
||||||
|
<view class="name" wx:if="{{!uploadImg}}">添加文件照片</view> |
||||||
|
</view> |
||||||
|
<view class="upload-preview" wx:else> |
||||||
|
<image class="upload-img" mode="aspectFill" src="{{uploadImg}}"></image> |
||||||
|
</view> |
||||||
|
</uploadFile> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="f-header"> |
||||||
|
<view class="label">外周血免疫功能评估</view> |
||||||
|
</view> |
||||||
|
<view class="content">免疫细胞亚群、淋巴细胞比例测定</view> |
||||||
|
<uploadFile fileTypes="{{['image']}}" bind:setData="handleSetData" maxNum="{{1}}" isSlot="{{true}}"> |
||||||
|
<view class="upload-container" wx:if="{{!uploadImg}}"> |
||||||
|
<image class="icon" wx:if="{{!uploadImg}}" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon135' : 'icon48'}}.png?t={{Timestamp}}"></image> |
||||||
|
<view class="name" wx:if="{{!uploadImg}}">添加文件照片</view> |
||||||
|
</view> |
||||||
|
<view class="upload-preview" wx:else> |
||||||
|
<image class="upload-img" mode="aspectFill" src="{{uploadImg}}"></image> |
||||||
|
</view> |
||||||
|
</uploadFile> |
||||||
|
</view> |
||||||
|
<view class="step2-footer"> |
||||||
|
<view class="prev">上一页</view> |
||||||
|
<view class="next">下一页</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="step3" wx:if="{{step==3}}"> |
||||||
|
<view class="tip-card">请填写本次就诊的以下信息,方便医生关注您的健康情况</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="f-header"> |
||||||
|
<view class="label doboule"> |
||||||
|
<view> |
||||||
|
本次就诊检验的 |
||||||
|
<view></view> |
||||||
|
IgG4(免疫球蛋白G4亚类) |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="num"> |
||||||
|
<view class="wrap"> |
||||||
|
<input class="input" placeholder-class="place-input" type="number" placeholder="请输入" maxlength="{{5}}" /> |
||||||
|
<image class="icon" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon136' : 'icon117'}}.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="sub">mg/dL</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="f-header"> |
||||||
|
<view class="label">本次就诊已使用的药物</view> |
||||||
|
</view> |
||||||
|
|
||||||
|
<view class="check-group"> |
||||||
|
<view class="check-item active"> |
||||||
|
<view class="check"> |
||||||
|
<van-icon name="success" class="icon" /> |
||||||
|
</view> |
||||||
|
<view class="content">没有使用激素</view> |
||||||
|
</view> |
||||||
|
<view class="check-item"> |
||||||
|
<view class="check"> |
||||||
|
<van-icon name="success" class="icon" /> |
||||||
|
</view> |
||||||
|
<view class="content">没有使用激素</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="f-header"> |
||||||
|
<view class="label">最近一周,口服激素的每日用量</view> |
||||||
|
</view> |
||||||
|
<view class="num-select"> |
||||||
|
<view class="n-item" wx:for="{{6}}" wx:key="index">8片</view> |
||||||
|
</view> |
||||||
|
<view class="custom-num"> |
||||||
|
<input class="input" placeholder-class="place-input" type="number" maxlength="{{5}}" placeholder="请输入" /> |
||||||
|
<view class="sub">片</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="form-card"> |
||||||
|
<view class="f-header"> |
||||||
|
<view class="label">正在使用的免疫抑制剂名称</view> |
||||||
|
</view> |
||||||
|
|
||||||
|
<view class="check-group"> |
||||||
|
<view class="check-item active"> |
||||||
|
<view class="check"> |
||||||
|
<van-icon name="success" class="icon" /> |
||||||
|
</view> |
||||||
|
<view class="content">没有使用激素</view> |
||||||
|
</view> |
||||||
|
<view class="check-item"> |
||||||
|
<view class="check"> |
||||||
|
<van-icon name="success" class="icon" /> |
||||||
|
</view> |
||||||
|
<view class="content">没有使用激素</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="step3-footer"> |
||||||
|
<view class="prev">上一页</view> |
||||||
|
<view class="submit">提交</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
|
||||||
|
<toast |
||||||
|
bind:cancel="handleToastCancel" |
||||||
|
bind:ok="handleToastOk" |
||||||
|
show="{{toastShow}}" |
||||||
|
type="{{toastType}}" |
||||||
|
params="{{toastParams}}" |
||||||
|
></toast> |
||||||
@ -0,0 +1,8 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "就诊记录详情页", |
||||||
|
"navigationBarBackgroundColor": "#F6F6F6", |
||||||
|
"usingComponents": { |
||||||
|
"uploadFile": "/components/uploadFile/index", |
||||||
|
"van-icon": "@vant/weapp/icon/index" |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,167 @@ |
|||||||
|
page { |
||||||
|
background-color: #f6f6f6; |
||||||
|
} |
||||||
|
.page { |
||||||
|
padding: 32rpx; |
||||||
|
.banner { |
||||||
|
padding: 28rpx 32rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: #fff; |
||||||
|
.row { |
||||||
|
display: flex; |
||||||
|
gap: 32rpx; |
||||||
|
&:last-of-type { |
||||||
|
margin-top: 52rpx; |
||||||
|
} |
||||||
|
.icon { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 96rpx; |
||||||
|
height: 96rpx; |
||||||
|
} |
||||||
|
.col { |
||||||
|
.name { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(34, 34, 34, 0.6); |
||||||
|
} |
||||||
|
.date { |
||||||
|
margin-top: 12rpx; |
||||||
|
font-size: 40rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.switch-wrap { |
||||||
|
margin-top: 32rpx; |
||||||
|
padding: 28rpx 32rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: #fff; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.name { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.switch { |
||||||
|
} |
||||||
|
} |
||||||
|
.photos { |
||||||
|
margin-top: 32rpx; |
||||||
|
padding: 28rpx 32rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: #fff; |
||||||
|
.p-header { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 24rpx; |
||||||
|
margin-left: -32rpx; |
||||||
|
&::before { |
||||||
|
content: ''; |
||||||
|
width: 8rpx; |
||||||
|
height: 36rpx; |
||||||
|
border-radius: 0 8rpx 8rpx 0; |
||||||
|
background: #0eb66d; |
||||||
|
} |
||||||
|
} |
||||||
|
.p-container { |
||||||
|
margin-top: 24rpx; |
||||||
|
display: grid; |
||||||
|
grid-template-columns: repeat(2, 1fr); |
||||||
|
gap: 22rpx; |
||||||
|
.photo { |
||||||
|
display: block; |
||||||
|
width: 100%; |
||||||
|
height: 168rpx; |
||||||
|
border-radius: 16rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.container { |
||||||
|
margin-top: 32rpx; |
||||||
|
padding: 0 32rpx 28rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: #fff; |
||||||
|
.row { |
||||||
|
padding-top: 32rpx; |
||||||
|
border-bottom: 1px solid rgba(34, 34, 34, 0.08); |
||||||
|
&:last-of-type { |
||||||
|
border: none; |
||||||
|
} |
||||||
|
.name { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 24rpx; |
||||||
|
margin-left: -32rpx; |
||||||
|
&::before { |
||||||
|
content: ''; |
||||||
|
width: 8rpx; |
||||||
|
height: 36rpx; |
||||||
|
border-radius: 0 8rpx 8rpx 0; |
||||||
|
background: #0eb66d; |
||||||
|
} |
||||||
|
} |
||||||
|
.content { |
||||||
|
margin-top: 16rpx; |
||||||
|
padding-bottom: 28rpx; |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.footer { |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
.col { |
||||||
|
flex: 1; |
||||||
|
padding: 50rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
gap: 12rpx; |
||||||
|
.icon { |
||||||
|
width: 44rpx; |
||||||
|
height: 44rpx; |
||||||
|
} |
||||||
|
.name { |
||||||
|
font-size: 36rpx; |
||||||
|
color: #222222; |
||||||
|
&.name1 { |
||||||
|
color: #0eb66d; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.line { |
||||||
|
width: 1px; |
||||||
|
height: 36rpx; |
||||||
|
background: rgba(34, 34, 34, 0.1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#drug-page { |
||||||
|
.photos { |
||||||
|
.p-header::before { |
||||||
|
background: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.container { |
||||||
|
.name::before { |
||||||
|
background: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
.footer{ |
||||||
|
.name1{ |
||||||
|
color: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,8 @@ |
|||||||
|
const _app = getApp<IAppOption>(); |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: {}, |
||||||
|
onLoad() {}, |
||||||
|
}); |
||||||
|
|
||||||
|
export {} |
||||||
@ -0,0 +1,57 @@ |
|||||||
|
<view class="page" id="{{theme === 'DRUG' && 'drug-page'}}"> |
||||||
|
<view class="banner"> |
||||||
|
<view class="row"> |
||||||
|
<image class="icon" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon137' : 'icon121'}}.png?t={{Timestamp}}"></image> |
||||||
|
<view class="col"> |
||||||
|
<view class="name">我的本次就诊时间</view> |
||||||
|
<view class="date">2026-06-23</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<image class="icon" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon138' : 'icon122'}}.png?t={{Timestamp}}"></image> |
||||||
|
<view class="col"> |
||||||
|
<view class="name">我的下次就诊时间</view> |
||||||
|
<view class="date">2026-07-23</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="switch-wrap"> |
||||||
|
<view class="name">复诊提醒</view> |
||||||
|
<switch class="switch" color="{{theme === 'DRUG' ? 'rgba(89, 86, 233, 1)' : 'rgba(14, 182, 109, 1)'}}"></switch> |
||||||
|
</view> |
||||||
|
<view class="photos"> |
||||||
|
<view class="p-header">门诊病历及处方</view> |
||||||
|
<view class="p-container"> |
||||||
|
<image class="photo" src="{{imageUrl}}bg1.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="row"> |
||||||
|
<view class="name">IgG4值</view> |
||||||
|
<view class="content">115 mg/dL</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="name">本次就诊已使用的药物</view> |
||||||
|
<view class="content">激素免疫抑制剂</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="name">最近一周,每日激素使用剂量</view> |
||||||
|
<view class="content">5mg/天</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="name">正在使用的免疫抑制剂名称</view> |
||||||
|
<view class="content">吗替麦考酚酯(骁悉、麦考芬)</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="footer"> |
||||||
|
<view class="col"> |
||||||
|
<image class="icon" src="{{imageUrl}}icon123.png?t={{Timestamp}}"></image> |
||||||
|
<view class="name">删除</view> |
||||||
|
</view> |
||||||
|
<view class="line"></view> |
||||||
|
<view class="col"> |
||||||
|
<image class="icon" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon139' : 'icon124'}}.png?t={{Timestamp}}"></image> |
||||||
|
<view class="name name1">编辑</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
@ -0,0 +1,9 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "就诊记录", |
||||||
|
"navigationBarBackgroundColor": "#F6F6F6", |
||||||
|
"usingComponents": { |
||||||
|
"uploadFile": "/components/uploadFile/index", |
||||||
|
"van-icon": "@vant/weapp/icon/index", |
||||||
|
"ec-canvas": "/components/ec-canvas/ec-canvas" |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,281 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(246, 246, 246, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.page { |
||||||
|
padding: 32rpx 32rpx 300rpx; |
||||||
|
.user { |
||||||
|
.name { |
||||||
|
font-size: 44rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 12rpx; |
||||||
|
.icon { |
||||||
|
width: 57rpx; |
||||||
|
height: 73rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.content { |
||||||
|
margin-top: 12rpx; |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
.high { |
||||||
|
color: rgba(14, 182, 109, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.chart { |
||||||
|
.chart-header { |
||||||
|
margin-top: 48rpx; |
||||||
|
display: flex; |
||||||
|
gap: 24rpx; |
||||||
|
.type { |
||||||
|
padding: 8rpx 32rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(105, 104, 110, 1); |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 58rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 14rpx; |
||||||
|
.icon { |
||||||
|
font-size: 24rpx; |
||||||
|
color: rgba(105, 104, 110, 1); |
||||||
|
transform: rotate(90deg); |
||||||
|
} |
||||||
|
} |
||||||
|
.date { |
||||||
|
padding: 8rpx 32rpx; |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(105, 104, 110, 1); |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 58rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 14rpx; |
||||||
|
.line { |
||||||
|
margin: 0 10rpx; |
||||||
|
} |
||||||
|
.icon { |
||||||
|
transform: rotate(90deg); |
||||||
|
color: rgba(105, 104, 110, 1); |
||||||
|
font-size: 24rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.chart-container { |
||||||
|
margin-top: 32rpx; |
||||||
|
padding: 32rpx; |
||||||
|
background: linear-gradient(180deg, #f5f4f4 0%, #ffffff 17.72%, #ffffff 100%); |
||||||
|
border-radius: 24rpx 24rpx 24rpx 24rpx; |
||||||
|
border: 2rpx solid #ffffff; |
||||||
|
.c-header { |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
.title { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(0, 0, 0, 1); |
||||||
|
font-weight: bold; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 24rpx; |
||||||
|
&::before { |
||||||
|
content: ''; |
||||||
|
width: 8rpx; |
||||||
|
height: 36rpx; |
||||||
|
background: #0eb66d; |
||||||
|
border-radius: 32rpx 32rpx 32rpx 32rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.sub { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(34, 34, 34, 0.4); |
||||||
|
} |
||||||
|
} |
||||||
|
.w-chart { |
||||||
|
height: 460rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.list { |
||||||
|
margin-top: 56rpx; |
||||||
|
.l-header { |
||||||
|
padding-bottom: 32rpx; |
||||||
|
.title { |
||||||
|
font-size: 36rpx; |
||||||
|
color: #000; |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
} |
||||||
|
.card { |
||||||
|
display: flex; |
||||||
|
gap: 20rpx; |
||||||
|
.aside { |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
align-items: center; |
||||||
|
flex-shrink: 0; |
||||||
|
.line-top, |
||||||
|
.line-bottom { |
||||||
|
border-right: 1px dashed rgba(34, 34, 34, 0.2); |
||||||
|
} |
||||||
|
.line-top { |
||||||
|
flex-shrink: 0; |
||||||
|
} |
||||||
|
.line-bottom { |
||||||
|
flex: 1; |
||||||
|
} |
||||||
|
.circle { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 20rpx; |
||||||
|
height: 20rpx; |
||||||
|
border-radius: 50%; |
||||||
|
background-color: rgba(14, 182, 109, 1); |
||||||
|
background-clip: content-box; |
||||||
|
border: 6rpx solid #e1f0e9; |
||||||
|
} |
||||||
|
} |
||||||
|
.wrap { |
||||||
|
flex: 1; |
||||||
|
min-width: 0; |
||||||
|
padding-bottom: 48rpx; |
||||||
|
.date { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
.container { |
||||||
|
position: relative; |
||||||
|
margin-top: 24rpx; |
||||||
|
padding: 32rpx; |
||||||
|
border-radius: 24rpx; |
||||||
|
background-color: #fff; |
||||||
|
.del { |
||||||
|
position: absolute; |
||||||
|
top: 1px; |
||||||
|
right: 1px; |
||||||
|
padding: 8rpx 16rpx; |
||||||
|
background-color: rgba(246, 246, 246, 1); |
||||||
|
font-size: 28rpx; |
||||||
|
font-weight: bold; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
border-radius: 0 24rpx 0 24rpx; |
||||||
|
} |
||||||
|
.name { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
} |
||||||
|
.content { |
||||||
|
margin-top: 16rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: space-between; |
||||||
|
.c-left { |
||||||
|
display: flex; |
||||||
|
gap: 8rpx; |
||||||
|
align-items: baseline; |
||||||
|
line-height: 84rpx; |
||||||
|
.num { |
||||||
|
font-size: 72rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
font-weight: bold; |
||||||
|
} |
||||||
|
.sub { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
} |
||||||
|
.icon { |
||||||
|
width: 44rpx; |
||||||
|
height: 51rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.status { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(14, 182, 109, 1); |
||||||
|
padding: 0 12rpx; |
||||||
|
background-color: rgba(14, 182, 109, 0.08); |
||||||
|
border-radius: 8rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
.row { |
||||||
|
margin-top: 32rpx; |
||||||
|
padding: 32rpx; |
||||||
|
background-color: rgba(246, 246, 246, 1); |
||||||
|
border-radius: 16rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
gap: 8rpx; |
||||||
|
.col { |
||||||
|
flex: 1; |
||||||
|
.c-name { |
||||||
|
font-size: 32rpx; |
||||||
|
color: rgba(34, 34, 34, 0.5); |
||||||
|
} |
||||||
|
.c-content { |
||||||
|
margin-top: 16rpx; |
||||||
|
font-size: 40rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.page-footer { |
||||||
|
position: fixed; |
||||||
|
bottom: 0; |
||||||
|
left: 0; |
||||||
|
width: 100%; |
||||||
|
box-sizing: border-box; |
||||||
|
padding: 32rpx 32rpx calc(env(safe-area-inset-bottom) + 32rpx); |
||||||
|
background-color: #fff; |
||||||
|
box-shadow: 0rpx -10rpx 30rpx 0rpx rgba(0, 0, 0, 0.01); |
||||||
|
.btn { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
height: 96rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
background: linear-gradient(86deg, #0eb66d 0%, #00d277 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#drug-page { |
||||||
|
.user { |
||||||
|
.content { |
||||||
|
.high { |
||||||
|
color: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.chart { |
||||||
|
.c-header { |
||||||
|
.title::before { |
||||||
|
background: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.list { |
||||||
|
.card { |
||||||
|
.circle { |
||||||
|
background-color: rgba(89, 86, 233, 1); |
||||||
|
border-color: rgba(89, 86, 233, 0.08); |
||||||
|
} |
||||||
|
.status{ |
||||||
|
background-color: rgba(89, 86, 233, 0.08); |
||||||
|
color: rgba(89, 86, 233, 1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.page-footer { |
||||||
|
.btn { |
||||||
|
background: linear-gradient(274deg, #5956e9 0%, #b384f4 100%); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,164 @@ |
|||||||
|
import dayjs from 'dayjs' |
||||||
|
const _app = getApp<IAppOption>() |
||||||
|
let echarts: any = null |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: {}, |
||||||
|
ecDataTrendComponent: null as any, |
||||||
|
async onLoad() { |
||||||
|
echarts = await require.async('../../../resource/components/echart/echarts.js') |
||||||
|
this.ecDataTrendComponent = this.selectComponent('#chart1') |
||||||
|
this.initChart() |
||||||
|
}, |
||||||
|
|
||||||
|
initChart(defaultList = []) { |
||||||
|
const list: any = [ |
||||||
|
...defaultList, |
||||||
|
{ Date: '2026-7-7', TotalScore: 100, InjectionBottles: false }, |
||||||
|
{ Date: '2026-7-8', TotalScore: 1000, InjectionBottles: false }, |
||||||
|
] |
||||||
|
return new Promise((reslove) => { |
||||||
|
const { theme } = this.data |
||||||
|
this.ecDataTrendComponent.init((canvas, width, height, dpr) => { |
||||||
|
const chart = echarts.init(canvas, null, { |
||||||
|
width, |
||||||
|
height, |
||||||
|
devicePixelRatio: dpr, // new
|
||||||
|
}) |
||||||
|
canvas.setChart(chart) |
||||||
|
|
||||||
|
const option: any = { |
||||||
|
tooltip: { |
||||||
|
show: false, |
||||||
|
trigger: 'axis', |
||||||
|
axisPointer: { |
||||||
|
type: 'shadow', |
||||||
|
}, |
||||||
|
confine: true, |
||||||
|
backgroundColor: 'rgba(0, 0, 0, 0.5)', |
||||||
|
textStyle: { |
||||||
|
color: '#fff', |
||||||
|
fontSize: 10, |
||||||
|
}, |
||||||
|
order: 'seriesDesc', |
||||||
|
}, |
||||||
|
grid: { |
||||||
|
top: '30', |
||||||
|
left: '0', |
||||||
|
right: '0', |
||||||
|
bottom: '10', |
||||||
|
containLabel: true, |
||||||
|
}, |
||||||
|
xAxis: [ |
||||||
|
{ |
||||||
|
type: 'category', |
||||||
|
axisTick: { |
||||||
|
alignWithLabel: true, |
||||||
|
}, |
||||||
|
axisLine: { |
||||||
|
lineStyle: { |
||||||
|
color: 'rgba(34, 34, 34, 0.20)', |
||||||
|
type: 'dashed', |
||||||
|
}, |
||||||
|
}, |
||||||
|
data: list.map((item) => dayjs(item.Date).format('MM-DD')), |
||||||
|
}, |
||||||
|
], |
||||||
|
yAxis: [ |
||||||
|
{ |
||||||
|
type: 'value', |
||||||
|
minInterval: 1, |
||||||
|
axisLabel: { |
||||||
|
color: 'rgba(34, 34, 34, 0.40)', |
||||||
|
}, |
||||||
|
splitLine: { |
||||||
|
lineStyle: { |
||||||
|
color: 'rgba(34, 34, 34, 0.20)', |
||||||
|
type: 'dashed', |
||||||
|
}, |
||||||
|
}, |
||||||
|
}, |
||||||
|
], |
||||||
|
series: [ |
||||||
|
{ |
||||||
|
name: '总分', |
||||||
|
data: list.length ? list.map((item) => item.TotalScore) : [25], |
||||||
|
barWidth: '16', |
||||||
|
label: { |
||||||
|
show: true, |
||||||
|
position: 'top', |
||||||
|
color: theme === 'DRUG' ? 'rgba(89, 86, 233, 1)' : 'rgba(14, 182, 109, 1)', |
||||||
|
}, |
||||||
|
type: 'line', |
||||||
|
symbol: 'circle', |
||||||
|
symbolSize: 8, |
||||||
|
showSymbol: list.length >= 1, |
||||||
|
connectNulls: true, |
||||||
|
z: 10, |
||||||
|
itemStyle: { |
||||||
|
color: theme === 'DRUG' ? 'rgba(89, 86, 233, 1)' : 'rgba(14, 182, 109, 1)', |
||||||
|
}, |
||||||
|
markLine: { |
||||||
|
symbol: ['none', 'none'], |
||||||
|
data: [ |
||||||
|
{ |
||||||
|
name: '135 安全区', |
||||||
|
yAxis: 135, |
||||||
|
label: { |
||||||
|
formatter: '{b}', |
||||||
|
position: 'insideMiddle', |
||||||
|
color: theme === 'DRUG' ? 'rgba(89, 86, 233, 1)' : 'rgba(14, 182, 109, 1)', |
||||||
|
fontSize: '10', |
||||||
|
}, |
||||||
|
lineStyle: { |
||||||
|
cap: '', |
||||||
|
color: theme === 'DRUG' ? 'rgba(89, 86, 233, 1)' : 'rgba(14, 182, 109, 1)', |
||||||
|
type: 'dashed', |
||||||
|
}, |
||||||
|
}, |
||||||
|
], |
||||||
|
}, |
||||||
|
markArea: { |
||||||
|
itemStyle: { |
||||||
|
color: theme === 'DRUG' ? 'rgba(89, 86, 233, 0.06)' : 'rgba(14, 182, 109, 0.06)', |
||||||
|
}, |
||||||
|
data: [ |
||||||
|
[ |
||||||
|
{ |
||||||
|
yAxis: 0, |
||||||
|
}, |
||||||
|
{ |
||||||
|
yAxis: 135, |
||||||
|
}, |
||||||
|
], |
||||||
|
], |
||||||
|
}, |
||||||
|
}, |
||||||
|
], |
||||||
|
dataZoom: { |
||||||
|
type: 'inside', // 有type这个属性,滚动条在最下面,也可以不行,写y:36,这表示距离顶端36px,一般就是在图上面。
|
||||||
|
startValue: 0, |
||||||
|
endValue: 4, |
||||||
|
filterMode: 'none', |
||||||
|
}, |
||||||
|
} |
||||||
|
|
||||||
|
chart.setOption(option) |
||||||
|
reslove(chart) |
||||||
|
return chart |
||||||
|
}) |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleDetail() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/gift/pages/recordDetail/index', |
||||||
|
}) |
||||||
|
}, |
||||||
|
handleAdd() { |
||||||
|
wx.navigateTo({ |
||||||
|
url: '/gift/pages/record/index', |
||||||
|
}) |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
||||||
@ -0,0 +1,97 @@ |
|||||||
|
<view class="page" id="{{theme === 'DRUG' && 'drug-page'}}"> |
||||||
|
<view class="user"> |
||||||
|
<view class="name"> |
||||||
|
张先生,您好 |
||||||
|
<image class="icon" src="{{imageUrl}}{{theme === 'DRUG' ? 'icon131' : 'icon119'}}.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="content"> |
||||||
|
您的最近一次IgG4数值为: |
||||||
|
<text class="high">115 mg/dL</text> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="chart"> |
||||||
|
<view class="chart-header"> |
||||||
|
<picker> |
||||||
|
<view class="type"> |
||||||
|
按年 |
||||||
|
<van-icon class="icon" name="play" /> |
||||||
|
</view> |
||||||
|
</picker> |
||||||
|
<view class="date"> |
||||||
|
<picker |
||||||
|
bindchange="handleChange" |
||||||
|
class="start" |
||||||
|
end="{{EndMonth}}" |
||||||
|
fields="day" |
||||||
|
mode="date" |
||||||
|
model:value="{{BeginMonth}}" |
||||||
|
> |
||||||
|
2025.08 |
||||||
|
</picker> |
||||||
|
<view class="line">-</view> |
||||||
|
<picker |
||||||
|
bindchange="handleChange" |
||||||
|
class="end" |
||||||
|
fields="day" |
||||||
|
mode="date" |
||||||
|
model:value="{{EndMonth}}" |
||||||
|
start="{{BeginMonth}}" |
||||||
|
> |
||||||
|
2025.09 |
||||||
|
</picker> |
||||||
|
<van-icon class="icon" name="play" /> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="chart-container"> |
||||||
|
<view class="c-header"> |
||||||
|
<view class="title">血清IgG4趋势监测</view> |
||||||
|
<view class="sub">单位mg/dL</view> |
||||||
|
</view> |
||||||
|
<view class="w-chart"> |
||||||
|
<ec-canvas id="chart1" ec="{{ ec }}"></ec-canvas> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="list"> |
||||||
|
<view class="l-header"> |
||||||
|
<view class="title">我的就诊历史总轴(按日期)</view> |
||||||
|
</view> |
||||||
|
<view class="card" wx:for="{{10}}" wx:key="index" bind:tap="handleDetail"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="circle"></view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="date">2025-06-11</view> |
||||||
|
<view class="container"> |
||||||
|
<view class="del"><van-icon name="cross" /></view> |
||||||
|
<view class="name">lgG4值</view> |
||||||
|
<view class="content"> |
||||||
|
<view class="c-left"> |
||||||
|
<view class="num">385</view> |
||||||
|
<view class="sub">mg/dL</view> |
||||||
|
<image class="icon" src="{{imageUrl}}icon118.png?t={{Timestamp}}"></image> |
||||||
|
<image class="icon" src="{{imageUrl}}icon132.png?t={{Timestamp}}"></image> |
||||||
|
<image class="icon" src="{{imageUrl}}icon120.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
<view class="status">草稿</view> |
||||||
|
</view> |
||||||
|
<view class="row"> |
||||||
|
<view class="col"> |
||||||
|
<view class="c-name">激素用量</view> |
||||||
|
<view class="c-content">10mg/天</view> |
||||||
|
</view> |
||||||
|
<view class="col"> |
||||||
|
<view class="c-name">下次复诊时间</view> |
||||||
|
<view class="c-content">2025.06.11</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
<view class="page-footer" bind:tap="handleAdd"> |
||||||
|
<view class="btn">新增就诊记录</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
After Width: | Height: | Size: 563 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 51 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 1008 B |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 896 B |
|
After Width: | Height: | Size: 461 B |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 372 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 48 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 800 B |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 995 B After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 28 KiB |
@ -0,0 +1,4 @@ |
|||||||
|
{ |
||||||
|
"navigationBarTitleText": "病例报告", |
||||||
|
"usingComponents": {} |
||||||
|
} |
||||||
@ -0,0 +1,96 @@ |
|||||||
|
page { |
||||||
|
background-color: rgba(246, 246, 246, 1); |
||||||
|
} |
||||||
|
|
||||||
|
.page { |
||||||
|
padding: 32rpx 32rpx 300rpx; |
||||||
|
.list { |
||||||
|
.card { |
||||||
|
display: flex; |
||||||
|
gap: 20rpx; |
||||||
|
.aside { |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
align-items: center; |
||||||
|
flex-shrink: 0; |
||||||
|
.line-top, |
||||||
|
.line-bottom { |
||||||
|
border-right: 1px dashed rgba(34, 34, 34, 0.2); |
||||||
|
} |
||||||
|
.line-top { |
||||||
|
flex-shrink: 0; |
||||||
|
} |
||||||
|
.line-bottom { |
||||||
|
flex: 1; |
||||||
|
} |
||||||
|
.circle { |
||||||
|
flex-shrink: 0; |
||||||
|
width: 20rpx; |
||||||
|
height: 20rpx; |
||||||
|
border-radius: 50%; |
||||||
|
background-color: rgba(14, 182, 109, 1); |
||||||
|
background-clip: content-box; |
||||||
|
border: 6rpx solid #e1f0e9; |
||||||
|
} |
||||||
|
} |
||||||
|
.wrap { |
||||||
|
flex: 1; |
||||||
|
min-width: 0; |
||||||
|
padding-bottom: 48rpx; |
||||||
|
.date { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(34, 34, 34, 1); |
||||||
|
line-height: 1; |
||||||
|
} |
||||||
|
.container { |
||||||
|
margin-top: 20rpx; |
||||||
|
padding: 32rpx; |
||||||
|
background-color: #fff; |
||||||
|
border-radius: 12rpx; |
||||||
|
display: grid; |
||||||
|
grid-template-columns: repeat(2, 1fr); |
||||||
|
gap: 24rpx; |
||||||
|
.photo { |
||||||
|
display: block; |
||||||
|
width: 100%; |
||||||
|
height: 154rpx; |
||||||
|
border-radius: 12rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
.page-footer { |
||||||
|
position: fixed; |
||||||
|
bottom: 0; |
||||||
|
left: 0; |
||||||
|
width: 100%; |
||||||
|
box-sizing: border-box; |
||||||
|
padding: 32rpx 32rpx calc(env(safe-area-inset-bottom) + 32rpx); |
||||||
|
background-color: #fff; |
||||||
|
box-shadow: 0rpx -10rpx 30rpx 0rpx rgba(0, 0, 0, 0.01); |
||||||
|
.btn { |
||||||
|
font-size: 36rpx; |
||||||
|
color: rgba(255, 255, 255, 1); |
||||||
|
height: 96rpx; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
justify-content: center; |
||||||
|
background: linear-gradient(86deg, #0eb66d 0%, #00d277 100%); |
||||||
|
border-radius: 16rpx 16rpx 16rpx 16rpx; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
#drug-page { |
||||||
|
.list { |
||||||
|
.card { |
||||||
|
.aside { |
||||||
|
.circle { |
||||||
|
background-color: rgba(89, 86, 233, 1); |
||||||
|
border-color: rgba(89, 86, 233, 0.1); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,14 @@ |
|||||||
|
const _app = getApp<IAppOption>() |
||||||
|
|
||||||
|
Page({ |
||||||
|
data: {}, |
||||||
|
onLoad(options) { |
||||||
|
if (options.name) { |
||||||
|
wx.setNavigationBarTitle({ |
||||||
|
title: options.name, |
||||||
|
}) |
||||||
|
} |
||||||
|
}, |
||||||
|
}) |
||||||
|
|
||||||
|
export {} |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
<view class="page" id="{{theme === 'DRUG' && 'drug-page'}}"> |
||||||
|
<view class="list"> |
||||||
|
<view class="card" wx:for="{{10}}" wx:key="index" bind:tap="handleDetail"> |
||||||
|
<view class="aside"> |
||||||
|
<view class="line-top"></view> |
||||||
|
<view class="circle"></view> |
||||||
|
<view class="line-bottom"></view> |
||||||
|
</view> |
||||||
|
<view class="wrap"> |
||||||
|
<view class="date">2025-06-11</view> |
||||||
|
<view class="container"> |
||||||
|
<image class="photo" src="{{imageUrl}}bg1.png?t={{Timestamp}}"></image> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
|
</view> |
||||||
@ -1,6 +0,0 @@ |
|||||||
{ |
|
||||||
"navigationBarTitleText": "复诊记录", |
|
||||||
"usingComponents": { |
|
||||||
"referralFrom": "/components/referralFrom/index" |
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,82 +0,0 @@ |
|||||||
page { |
|
||||||
background-color: #f2f4f5; |
|
||||||
} |
|
||||||
.page { |
|
||||||
padding: 30rpx; |
|
||||||
.card { |
|
||||||
margin-bottom: 24rpx; |
|
||||||
padding: 32rpx 32rpx 0; |
|
||||||
background: linear-gradient(1deg, #ffffff 0%, #e7f1f3 100%); |
|
||||||
border-radius: 24rpx 24rpx 24rpx 24rpx; |
|
||||||
border: 2rpx solid #ffffff; |
|
||||||
.date { |
|
||||||
display: flex; |
|
||||||
font-weight: bold; |
|
||||||
.label { |
|
||||||
flex-shrink: 0; |
|
||||||
width: 5em; |
|
||||||
font-size: 32rpx; |
|
||||||
color: #1d2021; |
|
||||||
line-height: 36rpx; |
|
||||||
} |
|
||||||
|
|
||||||
.content { |
|
||||||
font-size: 32rpx; |
|
||||||
color: #283031; |
|
||||||
line-height: 36rpx; |
|
||||||
} |
|
||||||
} |
|
||||||
.container { |
|
||||||
margin-top: 32rpx; |
|
||||||
padding-bottom: 24rpx; |
|
||||||
display: flex; |
|
||||||
.label { |
|
||||||
flex-shrink: 0; |
|
||||||
width: 5em; |
|
||||||
font-size: 32rpx; |
|
||||||
color: #9aa1a2; |
|
||||||
line-height: 48rpx; |
|
||||||
} |
|
||||||
|
|
||||||
.content { |
|
||||||
font-size: 32rpx; |
|
||||||
color: #283031; |
|
||||||
line-height: 48rpx; |
|
||||||
counter-reset: item; |
|
||||||
&:empty::after { |
|
||||||
display: inline; |
|
||||||
content: '---'; |
|
||||||
} |
|
||||||
.item { |
|
||||||
display: flex; |
|
||||||
&::before { |
|
||||||
flex-shrink: 0; |
|
||||||
width: 1.2em; |
|
||||||
counter-increment: item; /* 递增计数器 */ |
|
||||||
content: counter(item) '.'; /* 显示计数器值 */ |
|
||||||
margin-right: 8px; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
.adl { |
|
||||||
border-top: 1px solid rgba(0, 0, 0, 0.04); |
|
||||||
padding: 24rpx 0; |
|
||||||
font-size: 32rpx; |
|
||||||
color: rgba(154, 161, 162, 1); |
|
||||||
display: flex; |
|
||||||
align-items: center; |
|
||||||
justify-content: space-between; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
.record { |
|
||||||
position: fixed; |
|
||||||
bottom: 112rpx; |
|
||||||
left: 50%; |
|
||||||
transform: translateX(-50%); |
|
||||||
z-index: 1; |
|
||||||
width: 148rpx; |
|
||||||
height: 148rpx; |
|
||||||
} |
|
||||||
@ -1,118 +0,0 @@ |
|||||||
import dayjs from 'dayjs' |
|
||||||
|
|
||||||
const app = getApp<IAppOption>() |
|
||||||
|
|
||||||
Page({ |
|
||||||
data: { |
|
||||||
list: [] as any[], |
|
||||||
total: 0, |
|
||||||
pagination: { |
|
||||||
page: 1, |
|
||||||
pages: 1, |
|
||||||
count: 1, |
|
||||||
}, |
|
||||||
|
|
||||||
referralFromShow: false, |
|
||||||
referralFromParams: null as any, |
|
||||||
}, |
|
||||||
onLoad(options) { |
|
||||||
app.waitLogin().then(() => { |
|
||||||
// 强制疾病患者以上身份
|
|
||||||
app.permissionVerification(3, 0, `/pages/referral/index`).then(() => { |
|
||||||
this.getList() |
|
||||||
if (options.pushId) { |
|
||||||
this.updatePush(options.pushId) |
|
||||||
} |
|
||||||
}) |
|
||||||
}) |
|
||||||
}, |
|
||||||
updatePush(id) { |
|
||||||
wx.ajax({ |
|
||||||
method: 'POST', |
|
||||||
url: '?r=igg4/push-click/update-click-status', |
|
||||||
data: { |
|
||||||
pushId: id, |
|
||||||
}, |
|
||||||
}) |
|
||||||
}, |
|
||||||
getList(newPage = 1) { |
|
||||||
wx.ajax({ |
|
||||||
method: 'GET', |
|
||||||
url: '?r=igg4/re-visit/get-list', |
|
||||||
data: { |
|
||||||
page: newPage, |
|
||||||
}, |
|
||||||
}).then((res) => { |
|
||||||
res.list = res.list.map((item: any) => { |
|
||||||
item.adlDate = dayjs(item.LastAdlDate).format('YYYY-MM-DD') |
|
||||||
return item |
|
||||||
}) |
|
||||||
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 { index } = e.currentTarget.dataset |
|
||||||
const { list } = this.data |
|
||||||
const { |
|
||||||
Id, |
|
||||||
VisitDate, |
|
||||||
Hormone, |
|
||||||
TraditionalInhibitor, |
|
||||||
GammaGlobulin, |
|
||||||
PlasmaExchange, |
|
||||||
BCellInhibitor, |
|
||||||
FcRnAntagonists, |
|
||||||
C5ComplementInhibitor, |
|
||||||
ChineseMedicine, |
|
||||||
Other, |
|
||||||
} = list[index] |
|
||||||
|
|
||||||
this.setData({ |
|
||||||
referralFromShow: true, |
|
||||||
referralFromParams: { |
|
||||||
recordId: Id, |
|
||||||
visitDate: VisitDate, |
|
||||||
hormone: Number(Hormone), |
|
||||||
traditionalInhibitor: Number(TraditionalInhibitor), |
|
||||||
gammaGlobulin: Number(GammaGlobulin), |
|
||||||
plasmaExchange: Number(PlasmaExchange), |
|
||||||
bCellInhibitor: Number(BCellInhibitor), |
|
||||||
fcRnAntagonists: Number(FcRnAntagonists), |
|
||||||
c5ComplementInhibitor: Number(C5ComplementInhibitor), |
|
||||||
chineseMedicine: Number(ChineseMedicine), |
|
||||||
other: Number(Other), |
|
||||||
}, |
|
||||||
}) |
|
||||||
}, |
|
||||||
handleRecord() { |
|
||||||
this.setData({ |
|
||||||
referralFromShow: true, |
|
||||||
referralFromParams: null, |
|
||||||
}) |
|
||||||
}, |
|
||||||
handleRefrech() { |
|
||||||
this.getList() |
|
||||||
}, |
|
||||||
handleAdl() { |
|
||||||
wx.navigateTo({ |
|
||||||
url: '/gift/pages/myHealthRecord/index', |
|
||||||
}) |
|
||||||
}, |
|
||||||
}) |
|
||||||
|
|
||||||
export {} |
|
||||||
@ -1,40 +0,0 @@ |
|||||||
<page-meta page-style="{{ referralFromShow ? 'overflow: hidden;' : '' }}" /> |
|
||||||
|
|
||||||
<view class="page" id="{{theme === 'DRUG' && 'drug-page'}}"> |
|
||||||
<view class="card" wx:for="{{list}}" wx:key="Id" bind:tap="handleEdit" data-index="{{index}}"> |
|
||||||
<view class="date"> |
|
||||||
<view class="label">复诊时间</view> |
|
||||||
<view class="content">{{item.VisitDate}}</view> |
|
||||||
</view> |
|
||||||
<view class="container"> |
|
||||||
<view class="label">复诊方案</view> |
|
||||||
<view class="content"> |
|
||||||
<view class="item" wx:if="{{item.Hormone==1}}">激素</view> |
|
||||||
<view class="item" wx:if="{{item.TraditionalInhibitor==1}}">传统免疫抑制剂(如他克莫司、吗 替麦考酚酯等)</view> |
|
||||||
<view class="item" wx:if="{{item.GammaGlobulin==1}}">静脉输注丙种球蛋白</view> |
|
||||||
<view class="item" wx:if="{{item.PlasmaExchange==1}}">血浆置换</view> |
|
||||||
<view class="item" wx:if="{{item.BCellInhibitor==1}}">B细胞抑制剂(如:利妥昔单抗、泰 它西普、伊奈利珠单抗)</view> |
|
||||||
<view class="item" wx:if="{{item.FcRnAntagonists==1}}">FcRn拮抗剂(如:艾加莫德)</view> |
|
||||||
<view class="item" wx:if="{{item.C5ComplementInhibitor==1}}">C5补体抑制剂(如:依库珠单抗)</view> |
|
||||||
<view class="item" wx:if="{{item.ChineseMedicine==1}}">中药或中成药</view> |
|
||||||
<view class="item" wx:if="{{item.Other==1}}">其他</view> |
|
||||||
</view> |
|
||||||
</view> |
|
||||||
<view wx:if="{{item.LastAdlScore}}" class="adl" catch:tap="handleAdl" data-id="{{item.LastAdlId}}"> |
|
||||||
<view class="content"> |
|
||||||
最近一次ADL得分: |
|
||||||
<text class="num">{{item.LastAdlScore}}分</text> |
|
||||||
</view> |
|
||||||
<view class="a-date">{{item.adlDate}}</view> |
|
||||||
</view> |
|
||||||
</view> |
|
||||||
<pagination pagination="{{pagination}}"></pagination> |
|
||||||
</view> |
|
||||||
|
|
||||||
<image class="record" src="{{imageUrl}}5/record-btn.png?t={{Timestamp}}" bind:tap="handleRecord"></image> |
|
||||||
|
|
||||||
<referralFrom |
|
||||||
model:show="{{referralFromShow}}" |
|
||||||
params="{{referralFromParams}}" |
|
||||||
bind:refresh="handleRefrech" |
|
||||||
></referralFrom> |
|
||||||