Browse Source

激素量表上线

dev
kola-web 1 month ago
parent
commit
0824e8f811
  1. 2
      project.config.json
  2. 4
      project.private.config.json
  3. BIN
      src/images/bg36.png
  4. 23
      src/pages/d_patientDetail/index.ts
  5. 8
      src/pages/d_patientDetail/index.wxml
  6. 2
      src/pages/d_patientHormones/index.scss
  7. 2
      src/pages/d_patientHormones/index.wxml
  8. 6
      src/pages/my/index.ts
  9. 39
      src/patient/pages/hormones/index.scss
  10. 104
      src/patient/pages/hormones/index.ts
  11. 80
      src/patient/pages/hormones/index.wxml
  12. 19
      src/patient/pages/hormonesResult/index.scss
  13. 5
      src/patient/pages/hormonesResult/index.wxml
  14. 2
      src/patient/pages/hormonesStart/index.ts
  15. 11
      src/patient/pages/hormonesStart/index.wxml
  16. 49
      src/patient/pages/index/index.scss
  17. 15
      src/patient/pages/index/index.wxml
  18. 4
      src/patient/pages/live/index.scss
  19. 2
      src/patient/pages/live/index.wxml
  20. 3
      src/patient/pages/my/index.ts
  21. 9
      src/patient/pages/my/index.wxml
  22. 9
      src/patient/pages/qolAdd/index.ts
  23. 2
      src/patient/pages/qolAdd/index.wxml
  24. 65
      src/patient/pages/qolReport/index.scss
  25. 62
      src/patient/pages/qolReport/index.ts
  26. 25
      src/patient/pages/qolReport/index.wxml

2
project.config.json

@ -71,5 +71,5 @@ @@ -71,5 +71,5 @@
}
]
},
"appid": "wxf9ce8010f1ad24aa"
"appid": "wx71ac9c27c3c3e3f4"
}

4
project.private.config.json

@ -24,8 +24,8 @@ @@ -24,8 +24,8 @@
"list": [
{
"name": "patient/pages/hormonesResult/index",
"pathName": "patient/pages/hormonesResult/index",
"query": "medicationMethod=1&oralMonth=2&injectionWeek=0&injectionTimes=0&dosage=5",
"pathName": "patient/pages/hormonesStart/index",
"query": "",
"scene": null,
"launchMode": "default"
},

BIN
src/images/bg36.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 207 KiB

After

Width:  |  Height:  |  Size: 197 KiB

23
src/pages/d_patientDetail/index.ts

@ -156,6 +156,10 @@ Page({ @@ -156,6 +156,10 @@ Page({
},
],
list4Show: true,
list5Show: true,
list6Show: true,
pagination: {
page: 1,
pages: 1,
@ -317,7 +321,21 @@ Page({ @@ -317,7 +321,21 @@ Page({
const list4: any[] = []
const list5: any[] = []
const list6: any[] = []
let list4Show = false
let list5Show = false
let list6Show = false
res.forEach((item: any) => {
if (item.dosage) {
if (item.medicationMethod == 1) {
list4Show = true
}
if (item.medicationMethod == 2) {
list5Show = true
}
if (item.medicationMethod == 3) {
list6Show = true
}
}
list4.push({
Date: item.recordDate,
value: item.medicationMethod == 1 ? item.dosage : '',
@ -331,6 +349,11 @@ Page({ @@ -331,6 +349,11 @@ Page({
value: item.medicationMethod == 3 ? item.dosage : '',
})
})
this.setData({
list4Show,
list5Show,
list6Show,
})
this.initChartHormone(list4, 'chartComponent4', '#1ec580')
this.initChartHormone(list5, 'chartComponent5', '#B982FF')

8
src/pages/d_patientDetail/index.wxml

@ -110,23 +110,23 @@ @@ -110,23 +110,23 @@
<ec-canvas id="chart3" ec="{{ ec }}"></ec-canvas>
</view>
</view>
<view class="chart-card chart-card-legend">
<view class="chart-card chart-card-legend" wx:if="{{list4Show || list5Show || list6Show}}">
<view class="title">我的激素周用量记录曲线</view>
<view class="chart">
<view class="chart" wx:if="{{list4Show}}">
<view class="legend">
<view class="dot dot4"></view>
口服
</view>
<ec-canvas id="chart4" ec="{{ ec }}"></ec-canvas>
</view>
<view class="chart">
<view class="chart" wx:if="{{list5Show}}">
<view class="legend">
<view class="dot dot5"></view>
大剂量冲击治疗
</view>
<ec-canvas id="chart5" ec="{{ ec }}"></ec-canvas>
</view>
<view class="chart">
<view class="chart" wx:if="{{list6Show}}">
<view class="legend">
<view class="dot dot6"></view>
眶内或眼睑局部注射

2
src/pages/d_patientHormones/index.scss

@ -19,7 +19,7 @@ page { @@ -19,7 +19,7 @@ page {
flex-direction: column;
align-items: center;
.line-top {
height: 58rpx;
height: 52rpx;
border-right: 1px dashed rgba(185, 130, 255, 0.29);
}
.side {

2
src/pages/d_patientHormones/index.wxml

@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
bind:longpress="handleDelete"
>
<view class="aside">
<view class="line-top" style="opacity: 0"></view>
<view class="line-top" style="opacity: {{index==0 ? 0 : 1}}"></view>
<view class="side"></view>
<view class="line"></view>
</view>

6
src/pages/my/index.ts

@ -15,7 +15,7 @@ Page({ @@ -15,7 +15,7 @@ Page({
},
onShow() {
app.waitLogin({ type: [2] }).then(() => {
app.mpBehavior({ doctor:true, PageName: 'PG_DoctorPersonalCenter' })
app.mpBehavior({ doctor: true, PageName: 'PG_DoctorPersonalCenter' })
this.getUserInfo()
})
},
@ -120,7 +120,7 @@ Page({ @@ -120,7 +120,7 @@ Page({
})
},
handleUserInfo() {
app.mpBehavior({ doctor:true, PageName: 'BTN_DoctorPersonalCenterInfo' })
app.mpBehavior({ doctor: true, PageName: 'BTN_DoctorPersonalCenterInfo' })
wx.navigateTo({
url: '/pages/d_userInfo/index',
})
@ -131,7 +131,7 @@ Page({ @@ -131,7 +131,7 @@ Page({
})
},
handleInvite() {
app.mpBehavior({ doctor:true, PageName: 'BTN_DoctorPersonalCenterCode' })
app.mpBehavior({ doctor: true, PageName: 'BTN_DoctorPersonalCenterCode' })
wx.navigateTo({
url: '/pages/d_invite/index',
})

39
src/patient/pages/hormones/index.scss

@ -30,6 +30,12 @@ page { @@ -30,6 +30,12 @@ page {
text-align: center;
line-height: 68rpx;
}
.title-tip{
margin-top: 16rpx;
font-size: 32rpx;
color: #211D2E;
text-align: center;
}
.spread {
flex: 1;
.num {
@ -129,23 +135,22 @@ page { @@ -129,23 +135,22 @@ page {
display: flex;
align-items: center;
justify-content: center;
gap: 32rpx;
gap: 16rpx;
line-height: 108rpx;
.input {
padding: 0;
height: 108rpx;
text-align: center;
min-width: 3em;
max-width: 4em;
color: #211D2E;
width: 3em;
color: #B982FF;
font-size: 40rpx;
}
.palce-input{
color: #ADACB2;
.palce-input {
color: #adacb2;
}
.sub{
.sub {
font-size: 40rpx;
color: #211D2E;
color: #211d2e;
}
}
.description {
@ -203,14 +208,14 @@ page { @@ -203,14 +208,14 @@ page {
}
.popup {
padding: 44rpx 40rpx;
padding: 44rpx 40rpx 120rpx;
.p-title {
font-size: 32rpx;
font-size: 40rpx;
color: #333333;
font-weight: bold;
}
.input-wrap {
margin-top: 28rpx;
margin-top: 32rpx;
padding: 0 20rpx;
display: flex;
align-items: center;
@ -219,16 +224,20 @@ page { @@ -219,16 +224,20 @@ page {
.input {
flex: 1;
height: 84rpx;
font-size: 28rpx;
font-size: 40rpx;
color: #B982FF;
}
.input-place{
color: #ccc;
}
.sub {
flex-shrink: 0;
font-size: 28rpx;
color: #cccccc;
font-size: 32rpx;
color: #211d2e;
}
}
.p-footer {
margin-top: 38rpx;
margin-top: 68rpx;
padding: 0 24rpx;
display: flex;
align-items: center;

104
src/patient/pages/hormones/index.ts

@ -1,3 +1,5 @@ @@ -1,3 +1,5 @@
import { isExpressionWithTypeArguments } from 'typescript'
const app = getApp<IAppOption>()
Page({
@ -17,6 +19,10 @@ Page({ @@ -17,6 +19,10 @@ Page({
injectionWeek: '',
injectionTimes: '',
dosage: '',
custom_injectionWeek: '',
custom_injectionTimes: '',
custom_dosage: '',
},
question: {
nav0: {
@ -29,17 +35,19 @@ Page({ @@ -29,17 +35,19 @@ Page({
},
nav12: {
key: 'dosage',
custom_key: 'custom_dosage',
list: {
5: '1片',
10: '2片',
15: '3片',
20: '4片',
25: '5片',
other: '其他',
other: '自定义',
},
},
nav21: {
key: 'injectionWeek',
custom_key: 'custom_injectionWeek',
list: {
1: '1周',
2: '2周',
@ -51,6 +59,7 @@ Page({ @@ -51,6 +59,7 @@ Page({
},
nav22: {
key: 'dosage',
custom_key: 'custom_dosage',
list: {
250: '250mg',
500: '500mg',
@ -60,6 +69,7 @@ Page({ @@ -60,6 +69,7 @@ Page({
},
nav31: {
key: 'injectionTimes',
custom_key: 'custom_injectionTimes',
list: {
1: '1次',
2: '2次',
@ -68,6 +78,7 @@ Page({ @@ -68,6 +78,7 @@ Page({
},
nav32: {
key: 'dosage',
custom_key: 'custom_dosage',
list: {
20: '20mg',
30: '30mg',
@ -83,7 +94,6 @@ Page({ @@ -83,7 +94,6 @@ Page({
focus: false,
},
onLoad(options) {
console.log("DEBUGPRINT[139]: index.ts:85: options=", options)
app.waitLogin({ type: [1] }).then(() => {
this.getBaseInfo()
if (Number(options.id) > 0) {
@ -110,6 +120,7 @@ Page({ @@ -110,6 +120,7 @@ Page({
})
},
getDetail(id) {
const { question } = this.data
wx.ajax({
method: 'GET',
url: '?r=xd/hormone-dosage/get-record',
@ -117,12 +128,34 @@ Page({ @@ -117,12 +128,34 @@ Page({
recordId: id,
},
}).then((res) => {
let custom_injectionWeek = ''
let custom_injectionTimes = ''
let custom_dosage = ''
if (res.medicationMethod == 2) {
if (!Object.keys(question.nav21.list).includes(res.injectionWeek)) {
custom_injectionWeek = res.injectionWeek
}
if (!Object.keys(question.nav22.list).includes(res.dosage)) {
custom_dosage = res.dosage
}
}
if (res.medicationMethod == 3) {
if (!Object.keys(question.nav31.list).includes(res.injectionTimes)) {
custom_injectionTimes = res.injectionTimes
}
if (!Object.keys(question.nav32.list).includes(res.dosage)) {
custom_dosage = res.dosage
}
}
const form = {
medicationMethod: res.medicationMethod,
oralMonth: res.oralMonth,
injectionWeek: res.injectionWeek,
injectionTimes: res.injectionTimes,
oralMonth: res.oralMonth > 0 ? res.oralMonth : '',
injectionWeek: res.injectionWeek > 0 ? res.injectionWeek : '',
injectionTimes: res.injectionTimes > 0 ? res.injectionTimes : '',
dosage: res.dosage,
custom_injectionWeek,
custom_injectionTimes,
custom_dosage,
}
this.setData({
id,
@ -131,19 +164,30 @@ Page({ @@ -131,19 +164,30 @@ Page({
})
},
handleSelect(e) {
const { key, value } = e.currentTarget.dataset
const { key, value, custom } = e.currentTarget.dataset
const { nav } = this.data
if (key === 'medicationMethod' && value !== this.data.form.medicationMethod) {
this.setData({
'form.dosage': '',
'form.custom_dosage': '',
})
}
if (value == 'other') {
this.setData({
popupShow: true,
popupFocus: true,
})
setTimeout(() => {
this.setData({
popupFocus: true,
})
}, 300)
return
}
this.setData({
[`form.${key}`]: value,
[`form.${custom}`]: '',
})
setTimeout(() => {
this.setData({
@ -162,6 +206,25 @@ Page({ @@ -162,6 +206,25 @@ Page({
nav: nav - 1,
})
},
handleNext() {
const { nav } = this.data
this.setData({
nav: nav + 1,
})
},
handleInput(e) {
const { length, key } = e.currentTarget.dataset
const value = e.detail.value
if (value.length > length) {
wx.showToast({
icon: 'none',
title: '输入数字已超限',
})
this.setData({
[`form.custom_${key}`]: value.slice(0, length),
})
}
},
handleBlur(e) {
const { nav } = this.data
const { key } = e.currentTarget.dataset
@ -200,11 +263,28 @@ Page({ @@ -200,11 +263,28 @@ Page({
})
},
handleBack() {
wx.navigateBack({
fail() {
wx.reLaunch({
url: '/patient/pages/index/index',
})
const { id, form } = this.data
const isEmpry = Object.values(form).every(item => !item)
if (isEmpry || id) {
wx.navigateBack()
return
}
wx.showModal({
content: '已答问题将被清空,是否放弃自评?',
confirmColor: '#8c75d0',
cancelColor: '#141515',
cancelText: '放弃',
confirmText: '继续',
success: (e) => {
if (e.cancel) {
wx.navigateBack({
fail() {
wx.reLaunch({
url: '/patient/pages/index/index',
})
},
})
}
},
})
},

80
src/patient/pages/hormones/index.wxml

@ -29,6 +29,9 @@ @@ -29,6 +29,9 @@
</view>
</view>
</view>
<view class="end">
<view wx:if="{{id && form[question['nav0'].key]}}" class="pre" bind:tap="handleNext">下一页</view>
</view>
</view>
</swiper-item>
<block wx:if="{{form.medicationMethod==1}}">
@ -57,7 +60,10 @@ @@ -57,7 +60,10 @@
</view>
</view>
</view>
<view class="pre-btn" bind:tap="handlePrev">上一页</view>
<view class="end">
<view class="pre" bind:tap="handlePrev">上一页</view>
<view wx:if="{{id && form[question['nav11'].key]}}" class="pre" bind:tap="handleNext">下一页</view>
</view>
</view>
</swiper-item>
<!-- 12 -->
@ -80,8 +86,9 @@ @@ -80,8 +86,9 @@
<view
wx:for="{{question['nav12'].list}}"
wx:key="index"
class="lm-item {{index=='other' && 'other'}} {{form[question['nav12'].key]==index && 'active'}}"
class="lm-item {{index=='other' && 'other'}} {{form[question['nav12'].key]==index && 'active'}} {{ index=='other' && form[question['nav12'].key]>0 && form[question['nav12'].key]!=5 && form[question['nav12'].key]!=10 && form[question['nav12'].key]!=15 && form[question['nav12'].key]!=20 && form[question['nav12'].key]!=25 && 'active' }}"
data-key="{{question['nav12'].key}}"
data-custom="{{question['nav32'].custom_key}}"
data-value="{{index}}"
bind:tap="handleSelect"
>
@ -96,7 +103,7 @@ @@ -96,7 +103,7 @@
</view>
</view>
<view class="end">
<view class="pre" bind:tap="handlePrev">上一</view>
<view class="pre" bind:tap="handlePrev">上一</view>
<view class="submit" bind:tap="handleSubmit">提交</view>
</view>
</view>
@ -121,6 +128,7 @@ @@ -121,6 +128,7 @@
wx:key="index"
class="lt-item {{form[question['nav21'].key]==index && 'active'}}"
data-key="{{question['nav21'].key}}"
data-custom="{{question['nav21'].custom_key}}"
data-value="{{index}}"
bind:tap="handleSelect"
>
@ -133,17 +141,21 @@ @@ -133,17 +141,21 @@
class="input"
placeholder-class="palce-input"
confirm-type="done"
maxlength="{{2}}"
placeholder="请输入"
data-length="{{2}}"
bind:input="handleInput"
placeholder="自定义"
cursor-spacing="{{140}}"
data-key="{{question['nav21'].key}}"
value="{{form[question['nav21'].key]}}"
value="{{form[question['nav21'].custom_key]}}"
bindblur="handleBlur"
/>
<view class="sub">周</view>
</view>
</view>
<view class="pre-btn" bind:tap="handlePrev">上一页</view>
<view class="end">
<view class="pre" bind:tap="handlePrev">上一页</view>
<view wx:if="{{id && form[question['nav21'].key]}}" class="pre" bind:tap="handleNext">下一页</view>
</view>
</view>
</swiper-item>
<!-- 22 -->
@ -152,11 +164,7 @@ @@ -152,11 +164,7 @@
class="container"
style="background: url('{{imageUrl}}bg38.png?t={{Timestamp}}') no-repeat top center/100%"
>
<view class="title">
最近一周
<view></view>
您的激素用量
</view>
<view class="title">最近一周您的激素用量</view>
<view class="spread">
<view class="list-two">
<view
@ -164,6 +172,7 @@ @@ -164,6 +172,7 @@
wx:key="index"
class="lt-item {{form[question['nav22'].key]==index && 'active'}}"
data-key="{{question['nav22'].key}}"
data-custom="{{question['nav22'].custom_key}}"
data-value="{{index}}"
bind:tap="handleSelect"
>
@ -176,18 +185,20 @@ @@ -176,18 +185,20 @@
class="input"
placeholder-class="palce-input"
confirm-type="done"
maxlength="{{4}}"
placeholder="请输入"
data-length="{{4}}"
bind:input="handleInput"
placeholder="自定义"
cursor-spacing="{{140}}"
value="{{form[question['nav22'].key]}}"
value="{{form[question['nav22'].custom_key]}}"
bindblur="handleBlur"
data-key="{{question['nav22'].key}}"
/>
<view class="sub">mg</view>
</view>
</view>
<view class="title-tip">说明:此处按曲安奈德注射剂量计算</view>
<view class="end">
<view class="pre" bind:tap="handlePrev">上一</view>
<view class="pre" bind:tap="handlePrev">上一</view>
<view class="submit" bind:tap="handleSubmit">提交</view>
</view>
</view>
@ -208,6 +219,7 @@ @@ -208,6 +219,7 @@
wx:key="index"
class="l-item {{form[question['nav31'].key]==index && 'active'}}"
data-key="{{question['nav31'].key}}"
data-custom="{{question['nav31'].custom_key}}"
data-value="{{index}}"
bind:tap="handleSelect"
>
@ -220,17 +232,21 @@ @@ -220,17 +232,21 @@
class="input"
placeholder-class="palce-input"
confirm-type="done"
maxlength="{{2}}"
placeholder="请输入"
data-length="{{2}}"
bind:input="handleInput"
placeholder="自定义"
cursor-spacing="{{140}}"
data-key="{{question['nav31'].key}}"
value="{{form[question['nav31'].key]}}"
value="{{form[question['nav31'].custom_key]}}"
bindblur="handleBlur"
/>
<view class="sub">次</view>
</view>
</view>
<view class="pre-btn" bind:tap="handlePrev">上一页</view>
<view class="end">
<view class="pre" bind:tap="handlePrev">上一页</view>
<view wx:if="{{id && form[question['nav31'].key]}}" class="pre" bind:tap="handleNext">下一页</view>
</view>
</view>
</swiper-item>
<!-- 32 -->
@ -247,6 +263,7 @@ @@ -247,6 +263,7 @@
wx:key="index"
class="l-item {{form[question['nav32'].key]==index && 'active'}}"
data-key="{{question['nav32'].key}}"
data-custom="{{question['nav32'].custom_key}}"
data-value="{{index}}"
bind:tap="handleSelect"
>
@ -259,18 +276,20 @@ @@ -259,18 +276,20 @@
class="input"
placeholder-class="palce-input"
confirm-type="done"
maxlength="{{3}}"
placeholder="请输入"
data-length="{{3}}"
bind:input="handleInput"
placeholder="自定义"
cursor-spacing="{{140}}"
value="{{form[question['nav32'].key]}}"
value="{{form[question['nav32'].custom_key]}}"
bindblur="handleBlur"
data-key="{{question['nav32'].key}}"
/>
<view class="sub">mg</view>
</view>
</view>
<view class="title-tip">说明:此处按曲安奈德注射剂量计算</view>
<view class="end">
<view class="pre" bind:tap="handlePrev">上一</view>
<view class="pre" bind:tap="handlePrev">上一</view>
<view class="submit" bind:tap="handleSubmit">提交</view>
</view>
</view>
@ -281,19 +300,22 @@ @@ -281,19 +300,22 @@
<van-popup show="{{ popupShow }}" position="bottom" bind:close="handlePopupCancel" round>
<view class="popup">
<view class="p-title">请输入天的激素用量</view>
<view class="p-title">请输入天的激素用量</view>
<view class="input-wrap">
<input
class="input"
placeholder-class="input-place"
type="number"
maxlength="{{3}}"
placeholder="请输入"
data-length="{{3}}"
bind:input="handleInput"
placeholder="请输入数字"
focus="{{popupFocus}}"
cursor-spacing="{{140}}"
always-embed
data-key="{{question['nav12'].key}}"
value="{{form.dosage}}"
bind:input="handleBlur"
value="{{form[question['nav12'].custom_key]}}"
bind:input="handleInput"
bind:blur="handleBlur"
/>
<view class="sub">mg/天</view>
</view>

19
src/patient/pages/hormonesResult/index.scss

@ -10,11 +10,19 @@ page { @@ -10,11 +10,19 @@ page {
}
.page {
padding: 0 40rpx calc(env(safe-area-inset-bottom) + 200rpx);
padding: 0 40rpx calc(env(safe-area-inset-bottom) + 280rpx);
.banner {
position: relative;
padding: 32rpx;
height: 280rpx;
box-sizing: border-box;
.badge {
position: absolute;
width: 150rpx;
height: 150rpx;
top: -10rpx;
right: -10rpx;
}
.title {
font-size: 32rpx;
color: #ffffff;
@ -74,6 +82,7 @@ page { @@ -74,6 +82,7 @@ page {
margin-top: 32rpx;
font-size: 36rpx;
color: #211d2e;
line-height: 60rpx;
}
.w-footer {
margin-top: 32rpx;
@ -108,8 +117,10 @@ page { @@ -108,8 +117,10 @@ page {
.content {
font-size: 36rpx;
color: #211d2e;
line-height: 60rpx;
.a {
color: #b982ff;
font-weight: bold;
}
}
.container {
@ -173,13 +184,13 @@ page { @@ -173,13 +184,13 @@ page {
position: fixed;
bottom: 0;
left: 0;
padding: 32rpx 30rpx calc(env(safe-area-inset-bottom) + 20rpx);
padding: 32rpx 30rpx 120rpx;
width: 100vw;
box-sizing: border-box;
background-color: #fff;
background-color: transparent;
.btn {
height: 88rpx;
font-size: 32rpx;
font-size: 36rpx;
color: #ffffff;
display: flex;
align-items: center;

5
src/patient/pages/hormonesResult/index.wxml

@ -8,6 +8,9 @@ @@ -8,6 +8,9 @@
style="background: url('{{imageUrl}}bg10.png?t={{Timestamp}}') no-repeat top center/100% 610rpx;padding-top:{{pageTop+22}}px;"
>
<view class="banner" style="background: url('{{imageUrl}}bg39.png?t={{Timestamp}}') no-repeat center/100%">
<image wx:if="{{medicationMethod==1}}" class="badge" src="{{imageUrl}}icon105.png?t={{Timestamp}}"></image>
<image wx:elif="{{medicationMethod==2}}" class="badge" src="{{imageUrl}}icon106.png?t={{Timestamp}}"></image>
<image wx:elif="{{medicationMethod==3}}" class="badge" src="{{imageUrl}}icon107.png?t={{Timestamp}}"></image>
<view class="title">本次激素用量为</view>
<view class="content">
<view class="num">
@ -99,7 +102,7 @@ @@ -99,7 +102,7 @@
<view class="t-body">
<view class="content">
眶内注射可改善眼外肌增粗、复视等症状。眼睑注射可改善眼睑肿胀、上睑退缩等症状。
<view></view>
<view style="height: 24rpx"></view>
局部注射可能出现局部皮下组织萎缩、局部药物沉积等不良反应。其中,眶内注射还可能出现眼球破裂、动脉阻塞、视网膜毒性作用、眼压增高等不良反应,应慎重使用。
</view>
</view>

2
src/patient/pages/hormonesStart/index.ts

@ -14,7 +14,7 @@ Page({ @@ -14,7 +14,7 @@ Page({
})
},
handleAdd() {
wx.navigateTo({
wx.redirectTo({
url: `/patient/pages/hormones/index?id=${this.data.id}`,
})
},

11
src/patient/pages/hormonesStart/index.wxml

@ -9,10 +9,15 @@ @@ -9,10 +9,15 @@
<view class="body" style="background: url('{{imageUrl}}bg40.png?t={{Timestamp}}') no-repeat top center/100% 423rpx">
<view class="contaienr">
<view class="title">
糖皮质激素具有强大的抗炎和免疫抑制作用,能够减轻眼睑、泪腺等眼眶周围组织炎性反应,改善眼外肌水肿等症状。
<view>糖皮质激素具有抗炎和免疫抑制作用,能够减轻眼睑、泪腺等眼眶周围组织炎性反应,改善眼外肌水肿等症状。</view>
<view>
<text style="font-weight: bold">需关注剂量越高,不良反应也越大</text>
;记录激素用量,对健康做到心中有数。
</view>
</view>
<view class="progress">
<view class="p-header">日常记录用量的必要性</view>
<view class="p-header">每周记录用量的必要性</view>
<view class="row">
<view class="aside">
<view class="line-top op0"></view>
@ -27,7 +32,7 @@ @@ -27,7 +32,7 @@
<view class="order"></view>
<view class="line"></view>
</view>
<view class="r-content">补充钙剂和维生素D</view>
<view class="r-content">医护调整方案的重要依据</view>
</view>
<view class="row">
<view class="aside">

49
src/patient/pages/index/index.scss

@ -127,34 +127,44 @@ page { @@ -127,34 +127,44 @@ page {
}
.qol {
margin: $page-margin;
padding: 188rpx 36rpx 0;
height: 280rpx;
padding: 142rpx 36rpx 0;
height: 234rpx;
box-sizing: border-box;
position: relative;
.date {
position: absolute;
width: 320rpx;
height: 48rpx;
top: 0;
top: -28rpx;
right: 0;
display: flex;
align-items: center;
justify-content: center;
padding: 0 28rpx;
line-height: 52rpx;
font-size: 24rpx;
color: #b982ff;
border-radius: 86rpx;
background: linear-gradient(90deg, #ffffff 0%, #f2e7ff 100%);
border: 1px solid #fff;
&::after {
position: absolute;
right: 86rpx;
bottom: -24rpx;
content: '';
width: 0;
height: 0;
border-style: solid;
border-width: 32rpx 16rpx 0 16rpx;
border-color: #f4edff transparent transparent transparent;
}
}
.btn {
width: 216rpx;
height: 60rpx;
height: 70rpx;
font-size: 32rpx;
color: #b982ff;
display: flex;
align-items: center;
justify-content: center;
gap: 8rpx;
background: linear-gradient(98deg, #ffffff 0%, #f7f1ff 100%);
background: transparent;
border-radius: 48rpx 48rpx 48rpx 48rpx;
border: 1rpx solid #ffffff;
.icon {
width: 44rpx;
height: 44rpx;
@ -164,7 +174,7 @@ page { @@ -164,7 +174,7 @@ page {
.hormones {
margin: $page-margin;
position: relative;
height: 228rpx;
height: 232rpx;
.date {
position: absolute;
top: -28rpx;
@ -172,9 +182,10 @@ page { @@ -172,9 +182,10 @@ page {
padding: 0 28rpx;
line-height: 52rpx;
font-size: 24rpx;
color: #ffffff;
color: #b982ff;
border-radius: 86rpx;
background: linear-gradient(177deg, #ffd650 0%, #f48e00 100%);
background: linear-gradient(90deg, #ffffff 0%, #f2e7ff 100%);
border: 1px solid #fff;
&::after {
position: absolute;
right: 86rpx;
@ -184,22 +195,22 @@ page { @@ -184,22 +195,22 @@ page {
height: 0;
border-style: solid;
border-width: 32rpx 16rpx 0 16rpx;
border-color: #f59609 transparent transparent transparent;
border-color: #f4edff transparent transparent transparent;
}
}
.btn {
position: absolute;
right: 54rpx;
bottom: 18rpx;
top: 140rpx;
left: 30rpx;
width: 236rpx;
height: 80rpx;
height: 70rpx;
}
}
.banner {
margin: $page-margin;
.swiper {
width: 100%;
height: 224rpx;
height: 214rpx;
.swiper-item {
display: block;
width: 100%;

15
src/patient/pages/index/index.wxml

@ -69,15 +69,12 @@ @@ -69,15 +69,12 @@
<view
class="qol"
wx:if="{{card.code == 'adl' && card.showStatus == 1}}"
style="background: url('{{imageUrl}}bg{{qolDetail.CreateTime ? 14 : 19}}.png?t={{Timestamp}}') no-repeat top center/100%"
style="background: url('{{imageUrl}}bg41.png?t={{Timestamp}}') no-repeat top center/100%"
bind:tap="routerTo"
data-url="/patient/pages/qolReport/index"
>
<view class="date" wx:if="{{qolDetail.CreateTime}}">最近一次评测 {{qolDetail.CreateDate}}</view>
<view class="btn" catch:tap="routerTo" data-url="/patient/pages/qol/index">
立即自测
<image class="icon" src="{{imageUrl}}icon73.png?t={{Timestamp}}"></image>
</view>
<view class="date" wx:if="{{qolDetail.CreateTime}}">最近记录 {{qolDetail.CreateDate}}</view>
<view class="btn" catch:tap="routerTo" data-url="/patient/pages/qol/index"></view>
</view>
<view
class="hormones"
@ -87,7 +84,7 @@ @@ -87,7 +84,7 @@
data-url="/patient/pages/qolReport/index?scrollId=proit-hormone"
>
<view class="date" wx:if="{{hormoneDetail && hormoneDetail.createTime}}">
最近一次录入时间 {{hormoneDetail.createTime}}
最近记录 {{hormoneDetail.createTime}}
</view>
<view
wx:if="{{hormoneDetail.recordId>0}}"
@ -100,10 +97,6 @@ @@ -100,10 +97,6 @@
<view class="live-up-new" wx:if="{{card.code == 'activity2' && card.showStatus == 1 }}">
<view class="header" wx:if="{{card.name}}">
<view class="title">{{card.name}}</view>
<!-- <view bind:tap="routerTo" class="more" data-url="/patient/pages/repository/index" data-code="{{card.code}}"> -->
<!-- 查看全部 -->
<!-- <van-icon name="arrow" /> -->
<!-- </view> -->
</view>
<view
class="l-banner"

4
src/patient/pages/live/index.scss

@ -164,6 +164,10 @@ page { @@ -164,6 +164,10 @@ page {
color: #484848;
background: #e7e7e7;
}
&.active1 {
color: #b982ff;
background: #f2e8ff;
}
.icon {
width: 24rpx;
height: 24rpx;

2
src/patient/pages/live/index.wxml

@ -64,7 +64,7 @@ @@ -64,7 +64,7 @@
<view class="btn active" wx:if="{{item.SignUpStatus==1}}">审核中</view>
<block wx:elif="{{item.SignUpStatus==2}}">
<view class="btn" wx:if="{{item.BeginTimeValue * 1 < dateValue * 1}}">点此进入</view>
<view class="btn active" wx:else>已报名</view>
<view class="btn active1" wx:else>已报名</view>
</block>
<block wx:elif="{{item.SignUpStatus==3}}">
<view

3
src/patient/pages/my/index.ts

@ -94,13 +94,10 @@ Page({ @@ -94,13 +94,10 @@ Page({
if (url === '/patient/pages/personalInformation/index') {
app.mpBehavior({ PageName: 'BTN_PatientPersonalCenterInfo' })
}
if (url === '/patient/pages/storyList/index') {
}
wx.navigateTo({
url,
})
},
handleMiniDoctor() {
wx.navigateTo({
url: '/patient/pages/webview/index',

9
src/patient/pages/my/index.wxml

@ -25,6 +25,15 @@ @@ -25,6 +25,15 @@
</view>
</view>
<view class="options-list">
<view bind:tap="routerTo" class="row" data-url="/patient/pages/qolReport/index">
<view class="col">
<image class="icon" src="{{imageUrl}}icon104.png?t={{Timestamp}}"></image>
我的健康报告
</view>
<view class="more">
<van-icon name="arrow" />
</view>
</view>
<view bind:tap="routerTo" class="row" data-url="/patient/pages/myLive/index">
<view class="col">
<image class="icon" src="{{imageUrl}}icon32.png?t={{Timestamp}}"></image>

9
src/patient/pages/qolAdd/index.ts

@ -194,7 +194,8 @@ Page({ @@ -194,7 +194,8 @@ Page({
},
handleSelect(e) {
const { id } = this.data
if (id) return
if (id)
return
const { list, key, index } = e.currentTarget.dataset
this.setData({
[`${list}[${index}].answer`]: key,
@ -260,9 +261,9 @@ Page({ @@ -260,9 +261,9 @@ Page({
})
},
handleBack() {
const { qolList0, qolList1 } = this.data
const isEmpry = [...qolList0, ...qolList1].every((item) => !item.answer)
if (isEmpry) {
const { id, qolList0, qolList1 } = this.data
const isEmpry = [...qolList0, ...qolList1].every(item => !item.answer)
if (isEmpry || id) {
wx.navigateBack()
return
}

2
src/patient/pages/qolAdd/index.wxml

@ -61,7 +61,7 @@ @@ -61,7 +61,7 @@
</view>
<view class="btn" wx:if="{{id}}" bind:tap="handleReset">重新测评</view>
<view class="btn" wx:else bind:tap="handleSubmit">提交(2/2)</view>
<view class="prev" bind:tap="handlePrev">上一</view>
<view class="prev" bind:tap="handlePrev">上一</view>
</view>
</view>

65
src/patient/pages/qolReport/index.scss

@ -141,7 +141,7 @@ page { @@ -141,7 +141,7 @@ page {
gap: 22rpx;
border-bottom: 1px dashed rgba(33, 29, 46, 0.05);
.num {
font-size: 104rpx;
font-size: 76rpx;
color: var(--color);
font-weight: bold;
line-height: 1;
@ -159,7 +159,7 @@ page { @@ -159,7 +159,7 @@ page {
.name {
margin-top: 12rpx;
font-size: 28rpx;
color: #adacb2;
color: #211d2e;
}
}
}
@ -170,12 +170,12 @@ page { @@ -170,12 +170,12 @@ page {
justify-content: space-between;
.s-item {
font-size: 32rpx;
color: #adacb2;
color: #211d2e;
display: flex;
align-items: center;
gap: 24rpx;
.score {
color: #211d2e;
color: #b982ff;
}
}
}
@ -196,19 +196,19 @@ page { @@ -196,19 +196,19 @@ page {
align-items: baseline;
gap: 48rpx;
.num {
font-size: 72rpx;
font-size: 76rpx;
color: #b982ff;
font-weight: bold;
display: flex;
align-items: baseline;
.sub {
font-size: 32rpx;
font-size: 28rpx;
font-weight: normal;
}
}
.tip {
font-size: 28rpx;
color: #211d2e;
color: #b982ff;
}
}
.rch-footer {
@ -226,38 +226,43 @@ page { @@ -226,38 +226,43 @@ page {
}
}
}
.back-home {
position: fixed;
z-index: 10;
right: 26rpx;
bottom: 280rpx;
width: 84rpx;
height: 84rpx;
box-shadow: 0 4rpx 24rpx 0 rgba(20, 0, 44, 0.11);
border-radius: 50%;
}
.page-footer {
padding: 0 40rpx;
position: fixed;
bottom: 0;
z-index: 10;
bottom: 80rpx;
left: 0;
z-index: 100000;
width: 100%;
box-sizing: border-box;
padding: 20rpx 40rpx calc(20rpx + env(safe-area-inset-bottom));
background-color: #fff;
box-shadow: 0 8rpx 32rpx rgba(25, 0, 57, 0.07);
display: flex;
align-items: center;
.home {
padding: 0 34rpx;
text-align: center;
font-size: 28rpx;
color: #b982ff;
.icon {
width: 44rpx;
height: 44rpx;
}
}
.btn {
justify-content: space-between;
width: 100%;
box-sizing: border-box;
gap: 22rpx;
.pf-item {
flex: 1;
height: 88rpx;
font-size: 38rpx;
color: #ffffff;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(197deg, #ffbcf9 0%, #b982ff 100%);
border-radius: 100rpx 100rpx 100rpx 100rpx;
line-height: 88rpx;
background: linear-gradient(344deg, #ffbcf9 0%, #b982ff 100%);
border-radius: 104rpx;
font-size: 34rpx;
color: #ffffff;
.icon {
width: 40rpx;
height: 40rpx;
}
}
}
}

62
src/patient/pages/qolReport/index.ts

@ -5,6 +5,9 @@ let echarts: any = null @@ -5,6 +5,9 @@ let echarts: any = null
Page({
data: {
footerBtnShow: false,
hormoneDetail: { recordId: '' },
type: '1',
BeginMonth: '',
EndMonth: '',
@ -15,6 +18,10 @@ Page({ @@ -15,6 +18,10 @@ Page({
3: 'year',
},
list4Show: true,
list5Show: true,
list6Show: true,
list: [],
pagination: {
page: 1,
@ -40,11 +47,26 @@ Page({ @@ -40,11 +47,26 @@ Page({
app.waitLogin({ type: [1] }).then(() => {
this.handleChangeType()
this.getList()
this.getHormone()
if (options.scrollId) {
this.scrollPoint(`#${options.scrollId}`)
}
})
},
getHormone() {
wx.ajax({
method: 'GET',
url: '?r=xd/hormone-dosage/get-last-record',
data: {},
}).then((res) => {
this.setData({
hormoneDetail: {
...res,
createTime: dayjs(res.createTime).format('YYYY-MM-DD'),
},
})
})
},
scrollPoint(id) {
wx.createSelectorQuery()
.select(id)
@ -148,7 +170,21 @@ Page({ @@ -148,7 +170,21 @@ Page({
const list4: any[] = []
const list5: any[] = []
const list6: any[] = []
let list4Show = false
let list5Show = false
let list6Show = false
res.forEach((item: any) => {
if (item.dosage) {
if (item.medicationMethod == 1) {
list4Show = true
}
if (item.medicationMethod == 2) {
list5Show = true
}
if (item.medicationMethod == 3) {
list6Show = true
}
}
list4.push({
Date: item.recordDate,
value: item.medicationMethod == 1 ? item.dosage : '',
@ -162,6 +198,11 @@ Page({ @@ -162,6 +198,11 @@ Page({
value: item.medicationMethod == 3 ? item.dosage : '',
})
})
this.setData({
list4Show,
list5Show,
list6Show,
})
this.initChartHormone(list4, 'chartComponent4', '#1ec580')
this.initChartHormone(list5, 'chartComponent5', '#B982FF')
@ -500,6 +541,7 @@ Page({ @@ -500,6 +541,7 @@ Page({
})
},
handleQol() {
this.handleHideFooterBtn()
wx.navigateTo({
url: '/patient/pages/qol/index',
})
@ -512,6 +554,26 @@ Page({ @@ -512,6 +554,26 @@ Page({
url: `/patient/pages/hormonesResult/index?medicationMethod=${form.medicationMethod}&oralMonth=${form.oralMonthName}&injectionWeek=${form.injectionWeek}&injectionTimes=${form.injectionTimes}&dosage=${form.dosage}&report=1`,
})
},
handleFooterBtn() {
this.setData({
footerBtnShow: true,
})
},
handleHideFooterBtn() {
this.setData({
footerBtnShow: false,
})
},
handleHormones() {
const hormoneDetail = this.data.hormoneDetail
this.handleHideFooterBtn()
const url = hormoneDetail.recordId
? `/patient/pages/hormones/index?id=${hormoneDetail.recordId}`
: '/patient/pages/hormonesStart/index'
wx.navigateTo({
url,
})
},
handleHome() {
wx.reLaunch({
url: '/patient/pages/index/index',

25
src/patient/pages/qolReport/index.wxml

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
<view class="page">
<view class="page" bind:tap="handleHideFooterBtn">
<view class="page-header">
<van-tabs
active="{{ active }}"
@ -61,23 +61,23 @@ @@ -61,23 +61,23 @@
<ec-canvas id="chart3" ec="{{ ec }}"></ec-canvas>
</view>
</view>
<view class="chart-card chart-card-legend" id="proit-hormone">
<view class="chart-card chart-card-legend" id="proit-hormone" wx:if="{{list4Show || list5Show || list6Show}}">
<view class="title">我的激素周用量记录曲线</view>
<view class="chart">
<view class="chart" wx:if="{{list4Show}}">
<view class="legend">
<view class="dot dot4"></view>
口服
</view>
<ec-canvas id="chart4" ec="{{ ec }}"></ec-canvas>
</view>
<view class="chart">
<view class="chart" wx:if="{{list5Show}}">
<view class="legend">
<view class="dot dot5"></view>
大剂量冲击治疗
</view>
<ec-canvas id="chart5" ec="{{ ec }}"></ec-canvas>
</view>
<view class="chart">
<view class="chart" wx:if="{{list6Show}}">
<view class="legend">
<view class="dot dot6"></view>
眶内或眼睑局部注射
@ -96,7 +96,7 @@ @@ -96,7 +96,7 @@
wx:key="index"
>
<view class="aside">
<view class="line-top" style="opacity: 0"></view>
<view class="line-top" style="opacity: {{index==0 ? 0 : 1}}"></view>
<view class="side"></view>
<view class="line"></view>
</view>
@ -165,11 +165,16 @@ @@ -165,11 +165,16 @@
</view>
</view>
<image class="back-home" src="{{imageUrl}}icon109.png?t={{Timestamp}}" bind:tap="handleHome"></image>
<view class="page-footer">
<view class="home" bind:tap="handleHome">
<image class="icon" src="{{imageUrl}}icon74.png?t={{Timestamp}}"></image>
<view>首页</view>
<view class="pf-item" catch:tap="handleQol">
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image>
生活质量测评
</view>
<view class="pf-item" catch:tap="handleHormones">
<image class="icon" src="{{imageUrl}}icon108.png?t={{Timestamp}}"></image>
每周激素记录
</view>
<view class="btn" bind:tap="handleQol">评测</view>
</view>
<!-- bind:tap="handleQol" -->
</view>

Loading…
Cancel
Save