From 7e78bde32705e8545bd8c045f29586f8a4264cf4 Mon Sep 17 00:00:00 2001 From: kola-web Date: Wed, 10 Jun 2026 18:24:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=94=E8=B0=83=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/popup/index.wxml | 2 +- src/components/toast/index.wxml | 2 +- src/pages/d_interactiveDoctor/index.scss | 71 ++- src/pages/d_interactiveDoctor/index.ts | 33 +- src/pages/d_interactiveDoctor/index.wxml | 82 ++- src/patient/pages/follow/index.json | 4 +- src/patient/pages/follow/index.scss | 46 +- src/patient/pages/follow/index.ts | 120 +++- src/patient/pages/follow/index.wxml | 27 +- src/patient/pages/followForm/index.ts | 214 ++++++- src/patient/pages/followForm/index.wxml | 51 +- src/patient/pages/index/index.scss | 17 +- src/patient/pages/index/index.ts | 142 ++++- src/patient/pages/index/index.wxml | 28 +- src/patient/pages/interactivePatient/index.scss | 66 +- src/patient/pages/interactivePatient/index.ts | 190 +++++- src/patient/pages/interactivePatient/index.wxml | 73 ++- src/patient/pages/my/index.wxml | 4 +- 接口文档.md | 766 +----------------------- 19 files changed, 1034 insertions(+), 904 deletions(-) diff --git a/src/components/popup/index.wxml b/src/components/popup/index.wxml index 71c5abc..64d7c0b 100644 --- a/src/components/popup/index.wxml +++ b/src/components/popup/index.wxml @@ -252,7 +252,7 @@ - + 档案已保存 下次就医时可出示该卡给医生 diff --git a/src/components/toast/index.wxml b/src/components/toast/index.wxml index 10d24d1..fa0cb4a 100644 --- a/src/components/toast/index.wxml +++ b/src/components/toast/index.wxml @@ -854,7 +854,7 @@ - + 记录复诊信息 diff --git a/src/pages/d_interactiveDoctor/index.scss b/src/pages/d_interactiveDoctor/index.scss index ce4a11a..d931dc6 100644 --- a/src/pages/d_interactiveDoctor/index.scss +++ b/src/pages/d_interactiveDoctor/index.scss @@ -186,6 +186,49 @@ page { } } } + .follow-result-reason { + margin-bottom: 32rpx; + padding: 32rpx; + border-radius: 32rpx; + background-color: #fff; + .title { + font-size: 32rpx; + color: rgba(33, 29, 46, 1); + } + .info { + margin-top: 20rpx; + padding: 24rpx; + background-color: rgba(246, 248, 249, 1); + border-radius: 16rpx; + .info-item { + font-size: 32rpx; + padding-left: 50rpx; + color: rgba(33, 29, 46, 1); + .label { + display: inline; + font-weight: bold; + } + .value { + display: inline; + } + &::before { + margin-left: -30rpx; + margin-right: 20rpx; + margin-top: 20rpx; + display: inline-block; + flex-shrink: 0; + content: ''; + width: 10rpx; + height: 10rpx; + border-radius: 50%; + background-color: #7d7d82; + } + &:not(:first-of-type) { + margin-top: 24rpx; + } + } + } + } .follow-result { margin-bottom: 32rpx; padding: 32rpx; @@ -522,14 +565,22 @@ page { display: flex; align-items: center; justify-content: center; + &.disabled { + color: rgba(105, 104, 110, 1); + border-color: rgba(105, 104, 110, 1); + } } .btn2 { padding: 0; - background: linear-gradient(344deg, #ffbcf9 0%, #b982ff 100%); + background: linear-gradient(180deg, #ffbcf9 0%, #b982ff 100%); color: #ffffff; display: flex; align-items: center; justify-content: center; + &.disabled { + background: rgba(246, 248, 249, 1); + color: rgba(105, 104, 110, 1); + } } } } @@ -572,8 +623,12 @@ page { display: flex; align-items: center; justify-content: center; - background: linear-gradient(180deg, #e98ff8 0%, #b073ff 100%); + background: linear-gradient(180deg, #ffbcf9 0%, #b982ff 100%); border-radius: 64rpx 64rpx 64rpx 64rpx; + &.disabled { + background: rgba(246, 248, 249, 1); + color: rgba(105, 104, 110, 1); + } } } .follow-reset { @@ -593,8 +648,12 @@ page { display: flex; align-items: center; justify-content: center; - background: linear-gradient(180deg, #e98ff8 0%, #b073ff 100%); + background: linear-gradient(180deg, #ffbcf9 0%, #b982ff 100%); border-radius: 64rpx 64rpx 64rpx 64rpx; + &.disabled { + background: rgba(246, 248, 249, 1); + color: rgba(105, 104, 110, 1); + } } } .follow-next { @@ -614,8 +673,12 @@ page { display: flex; align-items: center; justify-content: center; - background: linear-gradient(180deg, #e98ff8 0%, #b073ff 100%); + background: linear-gradient(180deg, #ffbcf9 0%, #b982ff 100%); border-radius: 64rpx 64rpx 64rpx 64rpx; + &.disabled { + background: rgba(246, 248, 249, 1); + color: rgba(105, 104, 110, 1); + } } } } diff --git a/src/pages/d_interactiveDoctor/index.ts b/src/pages/d_interactiveDoctor/index.ts index aecac39..91a0a58 100644 --- a/src/pages/d_interactiveDoctor/index.ts +++ b/src/pages/d_interactiveDoctor/index.ts @@ -4,7 +4,7 @@ const app = getApp() interface IMessageItem { msgId: string - msgContentType: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' // 1:文本 2: 出诊时间 3: adl卡片 4: 语音 5: 欢迎语 6:补充真实姓名 7: 提醒完善信息 8: 复诊卡片 9:患者恢复复诊消息 12:复诊提醒 13:复诊提醒-快速问答 14:复诊提醒-未复诊鼓励 15:复诊提醒-已复诊结果 + msgContentType: '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' | '11' | '12' | '13' | '14' | '15' | '16' | '17' // 1:文本 2: 出诊时间 3: adl卡片 4: 语音 5: 欢迎语 6:补充真实姓名 7: 提醒完善信息 8: 复诊卡片 9:患者恢复复诊消息 12:复诊提醒 13:复诊提醒-快速问答 14:未复诊原因 15:未复诊原因回复 16:未复诊鼓励 17:下一步 msgContent: any msgVisitTime: string msgVisitTimeType?: string @@ -13,7 +13,13 @@ interface IMessageItem { msgCreateTime: string // 消息创建时间 msgCreateTimeName?: string // 消息创建时间 showTime?: boolean + ReVisitInfo?: any msgCustomSendStatus?: number | string + msgTipsInfo?: string + followUpStatus?: number // 复诊状态,>0 表示已回复 + replyMsgId?: number // 回复消息ID,>0 表示已回复 + followUpTitle?: string // 复诊原因标题 + followUpTitleChoice?: string // 复诊原因多选提示 } interface Item { @@ -136,6 +142,31 @@ Page({ item.ReVisitInfo = JSON.parse(item.ReVisitInfo) item.ReVisitInfo.visitDateName = dayjs(item.ReVisitInfo.visitDate).format('YYYY年M月DD日') } + if (item.msgContentType === '13') { + const rawInfo = JSON.parse(item.ReVisitInfo) + // 解析结构:{title, lastVisitTitle, visitDate, mySolutionTitle, reVisitSolution} + item.ReVisitInfo = rawInfo + } + if (item.msgContentType === '14') { + const rawInfo = JSON.parse(item.ReVisitInfo) + // 解析结构:{title, titleChoice, missionReasonList, reasonList} + const missionReasonList = rawInfo.missionReasonList || {} + const reasonList = rawInfo.reasonList || [] + item.ReVisitInfo = Object.keys(missionReasonList).map(key => ({ + key, + label: missionReasonList[key], + isSelected: reasonList.includes(key), + })) + item.followUpTitle = rawInfo.title || '请问您没能按时复诊的主要原因是?' + item.followUpTitleChoice = rawInfo.titleChoice || '(多选)' + } + if (item.msgContentType === '15') { + const rawInfo = JSON.parse(item.ReVisitInfo) + // 解析结构:{title, reasonInfoList} + const reasonInfoList = rawInfo.reasonInfoList || {} + item.followUpTitle = rawInfo.title || '没能按时复诊的主要原因是?' + item.ReVisitInfo = Object.keys(reasonInfoList).map(key => reasonInfoList[key]) + } return item }) diff --git a/src/pages/d_interactiveDoctor/index.wxml b/src/pages/d_interactiveDoctor/index.wxml index d6122f8..a467a98 100644 --- a/src/pages/d_interactiveDoctor/index.wxml +++ b/src/pages/d_interactiveDoctor/index.wxml @@ -69,20 +69,24 @@ 9.其他 + - - - 您最近有按照医生的 提醒,定期复诊吗? - +