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