From 0c84707e31f52f6eb169482734c430484f17688b Mon Sep 17 00:00:00 2001 From: kola Date: Fri, 1 Nov 2024 19:46:11 +0800 Subject: [PATCH] =?UTF-8?q?=E7=97=85=E5=8E=86=E8=81=94=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app.json | 1 + src/components/customRecord/index.ts | 2 +- src/components/uploadFile/index.ts | 6 +- src/module1/pages/casesDetail/index.scss | 154 +++++++++----- src/module1/pages/casesDetail/index.ts | 198 +++++++++++++++++- src/module1/pages/casesDetail/index.wxml | 196 +++++++++++------- src/module1/pages/casesFeedback/index.json | 8 +- src/module1/pages/casesFeedback/index.scss | 279 ++++++++++++++++++++++++++ src/module1/pages/casesFeedback/index.ts | 198 +++++++++++++++++- src/module1/pages/casesFeedback/index.wxml | 99 ++++++++- src/module1/pages/entryCases/index.json | 6 +- src/module1/pages/entryCases/index.scss | 3 + src/module1/pages/entryCases/index.ts | 165 ++++++++++++--- src/module1/pages/entryCases/index.wxml | 31 ++- src/module1/pages/entryCasesResult/index.ts | 24 ++- src/module1/pages/entryCasesResult/index.wxml | 11 +- src/module1/pages/sHostipal/index.ts | 20 +- src/module1/pages/setCaseDoctor/index.json | 11 + src/module1/pages/setCaseDoctor/index.scss | 192 ++++++++++++++++++ src/module1/pages/setCaseDoctor/index.ts | 252 +++++++++++++++++++++++ src/module1/pages/setCaseDoctor/index.wxml | 92 +++++++++ src/module1/pages/setDoctor/index.scss | 1 + src/module1/pages/userInfo/index.wxml | 2 +- src/pages/cases/index.ts | 13 +- src/pages/cases/index.wxml | 10 +- 25 files changed, 1780 insertions(+), 194 deletions(-) create mode 100644 src/module1/pages/setCaseDoctor/index.json create mode 100644 src/module1/pages/setCaseDoctor/index.scss create mode 100644 src/module1/pages/setCaseDoctor/index.ts create mode 100644 src/module1/pages/setCaseDoctor/index.wxml diff --git a/src/app.json b/src/app.json index d27de95..f4a3949 100644 --- a/src/app.json +++ b/src/app.json @@ -26,6 +26,7 @@ "pages/org3/index", "pages/org4/index", "pages/entryCases/index", + "pages/setCaseDoctor/index", "pages/entryCasesResult/index", "pages/casesDetail/index", "pages/casesFeedback/index", diff --git a/src/components/customRecord/index.ts b/src/components/customRecord/index.ts index 0f6e9c8..899b1c7 100644 --- a/src/components/customRecord/index.ts +++ b/src/components/customRecord/index.ts @@ -146,7 +146,7 @@ Component({ const data = JSON.parse(res.data); const expandJson = { fileId: "", - name: data.data.Url, + name: "文件", size: (item.size / 1024).toFixed(2), fileUrl: data.data.Url, suffix: this.GetExtensionFileName(data.data.Url), diff --git a/src/components/uploadFile/index.ts b/src/components/uploadFile/index.ts index 6e75f06..70b43e4 100644 --- a/src/components/uploadFile/index.ts +++ b/src/components/uploadFile/index.ts @@ -148,7 +148,7 @@ Component({ const suffix = this.GetExtensionFileName(data.data.Url); const expandJson = { fileId: "", - name: data.data.Url, + name: "文件", size: (item.size / 1024).toFixed(2), fileUrl: data.data.Url, suffix: this.GetExtensionFileName(data.data.Url), @@ -156,15 +156,15 @@ Component({ imgUrl: "", duration: 0, fileType: this.data.fileTypeList[suffix] || 99, + videoUrl: "", }; if (item.fileType === "image") { expandJson.imgUrl = data.data.Url; } else if (item.fileType === "video") { - expandJson.imgUrl = data.data.SnapshotUrl; + expandJson.videoUrl = data.data.SnapshotUrl; } else if (item.fileType === "audio") { expandJson.duration = Number.parseInt(String(item.duration / 1000)); } - console.log(expandJson); resolve(expandJson); }, fail() { diff --git a/src/module1/pages/casesDetail/index.scss b/src/module1/pages/casesDetail/index.scss index ce885db..83a1a98 100644 --- a/src/module1/pages/casesDetail/index.scss +++ b/src/module1/pages/casesDetail/index.scss @@ -2,7 +2,7 @@ page { background-color: #f6f6f6; } .page { - padding: 24rpx 24rpx 240rpx; + padding: 24rpx 24rpx 340rpx; .detail-card { padding-bottom: 16rpx; position: relative; @@ -28,7 +28,7 @@ page { justify-content: space-between; &::before { flex-shrink: 0; - content: ''; + content: ""; width: 10rpx; height: 40rpx; background: #00b4c5; @@ -142,7 +142,7 @@ page { } } .w-footer { - margin-top: 24rpx; + margin-top: 12rpx; .hostipal { margin-right: 12rpx; display: inline; @@ -177,6 +177,7 @@ page { border-radius: 16rpx; .tags { display: flex; + margin-bottom: 32rpx; .t-label { width: 3em; font-size: 28rpx; @@ -198,7 +199,6 @@ page { } } .photos { - margin-top: 32rpx; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12rpx; @@ -209,7 +209,6 @@ page { } } .remark { - margin-top: 32rpx; .r-title { font-size: 32rpx; color: rgba(20, 21, 21, 1); @@ -227,7 +226,6 @@ page { } } .audio-list { - margin-top: 32rpx; .audio-row { display: flex; gap: 28rpx; @@ -254,7 +252,6 @@ page { } } .files { - margin-top: 32rpx; .f-title { font-size: 32rpx; color: #000; @@ -297,6 +294,9 @@ page { } } } + > view:not(:last-of-type) { + margin-bottom: 32rpx; + } } } .feedback-card { @@ -407,7 +407,7 @@ page { } } .w-footer { - margin-top: 24rpx; + margin-top: 12rpx; .hostipal { margin-right: 12rpx; display: inline; @@ -691,6 +691,7 @@ page { align-items: center; gap: 52rpx; .w-item { + position: relative; text-align: center; .icon { width: 48rpx; @@ -700,6 +701,45 @@ page { font-size: 24rpx; color: rgba(153, 153, 153, 1); } + .tip { + position: absolute; + top: -25rpx; + transform: translateY(-100%); + left: 0; + border-radius: 12rpx; + width: 686rpx; + box-sizing: border-box; + padding: 18rpx 24rpx; + background-color: rgba(255, 247, 232, 1); + .t-header { + display: flex; + align-items: center; + justify-content: space-between; + gap: 20rpx; + font-size: 28rpx; + color: rgba(255, 125, 0, 1); + .date { + flex-shrink: 0; + } + } + .content { + margin-top: 12rpx; + font-size: 28rpx; + color: rgba(255, 125, 0, 1); + text-align: left; + } + &::after { + position: absolute; + bottom: -12rpx; + left: 20rpx; + content: ""; + width: 0; + height: 0; + border-style: solid; + border-width: 27rpx 27rpx 0 27rpx; + border-color: rgba(255, 247, 232, 1) transparent transparent transparent; + } + } } } .btn-wrap { @@ -745,43 +785,6 @@ page { justify-content: space-between; align-items: center; gap: 24rpx; - .tip { - position: absolute; - top: -150rpx; - left: 0; - border-radius: 12rpx; - width: 686rpx; - box-sizing: border-box; - padding: 18rpx 24rpx; - background-color: rgba(255, 247, 232, 1); - .t-header { - display: flex; - align-items: center; - justify-content: space-between; - gap: 20rpx; - font-size: 28rpx; - color: rgba(255, 125, 0, 1); - .date { - flex-shrink: 0; - } - } - .content { - margin-top: 12rpx; - font-size: 28rpx; - color: rgba(255, 125, 0, 1); - } - &::after { - position: absolute; - bottom: -12rpx; - left: 178rpx; - content: ''; - width: 0; - height: 0; - border-style: solid; - border-width: 27rpx 27rpx 0 27rpx; - border-color: rgba(255, 247, 232, 1) transparent transparent transparent; - } - } .cancel { width: 332rpx; height: 84rpx; @@ -1001,7 +1004,7 @@ page { border-radius: 60rpx 60rpx 60rpx 60rpx; border: 1px solid #01b4c5; } - .btn3{ + .btn3 { margin-top: 22rpx; text-align: center; padding: 22rpx; @@ -1009,3 +1012,62 @@ page { color: rgba(0, 180, 197, 1); } } + +.dialog7 { + position: relative; + padding: 32rpx 32rpx; + .close { + position: absolute; + top: 32rpx; + right: 32rpx; + font-size: 40rpx; + color: #000; + } + .title { + font-size: 36rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + text-align: center; + } + .sub-title { + padding: 32rpx 0 16rpx; + font-size: 32rpx; + color: #141515; + } + .tags { + display: flex; + flex-wrap: wrap; + gap: 20rpx; + .tag { + padding: 6rpx 44rpx; + font-size: 32rpx; + color: rgba(133, 133, 133, 1); + line-height: 44rpx; + background-color: #fff; + border: 1px solid #f6f6f6; + border-radius: 8rpx; + background: #f6f6f6; + &.active { + background-color: #fff; + border-color: rgba(1, 180, 197, 1); + color: rgba(1, 180, 197, 1); + } + } + &.tags1 { + .tag { + border-radius: 90rpx; + } + } + } + .submit { + margin-top: 32rpx; + padding: 22rpx; + text-align: center; + font-size: 32rpx; + color: rgba(255, 255, 255, 1); + line-height: 44rpx; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 84rpx; + font-weight: bold; + } +} diff --git a/src/module1/pages/casesDetail/index.ts b/src/module1/pages/casesDetail/index.ts index 802cbd1..60f33a2 100644 --- a/src/module1/pages/casesDetail/index.ts +++ b/src/module1/pages/casesDetail/index.ts @@ -1,4 +1,4 @@ -const _app = getApp() +const app = getApp(); Page({ data: { @@ -8,6 +8,198 @@ Page({ show4: false, // 取消优质病例 show5: false, // 取消归档 show6: false, // 创建聊天室 + show7: false, // 更改标签 + + showRejectReason: false, + + deptList: [] as any, + labelList: [] as any, + deptId: "", + labelIds: [] as any, + + id: "", + auth: {}, + userInfo: {}, + dealDoctorInfo: {}, + dealInfo: {}, + detail: { + dealCaseInfo: { + dealDoctorInfo: {}, + dealInfo: {}, + }, + createDoctorInfo: {}, + caseLabels: {}, + caseImages: {}, + caseAudios: {}, + caseFiles: {}, + feedbackList: [], + }, + rejectReason: {}, + }, + onLoad(options) { + this.setData({ + id: options.id, + }); + app.waitLogin().then(() => { + this.handleResoure(); + this.getDoctorDict(); + app.getUserInfo(this); + }); + }, + handleResoure() { + this.getDetail(); + this.getAuth(); + }, + getDetail() { + wx.ajax({ + method: "GET", + url: "?r=takeda/case/get-case-detail", + data: { + caseId: this.data.id, + }, + }).then((res) => { + this.setData({ + detail: res, + dealDoctorInfo: res.dealCaseInfo.dealDoctorInfo, + dealInfo: res.dealCaseInfo.dealInfo, + }); + }); + }, + getAuth() { + wx.ajax({ + method: "GET", + url: "?r=takeda/case/get-case-detail-op-auth", + data: { caseId: this.data.id }, + }).then((res) => { + this.setData({ + auth: res, + }); + if (res.canViewRejectReason) { + this.getRejectReason(); + } + }); + }, + onClose() { + this.setData({ + show1: false, + show2: false, + show3: false, + show4: false, + show5: false, + show6: false, + show7: false, + }); + }, + + handleImagePreview(e) { + const { url } = e.currentTarget.dataset; + wx.previewImage({ + urls: [url], + }); + }, + + getRejectReason() { + wx.ajax({ + method: "GET", + url: "?r=takeda/case/view-reject-reason", + data: { + caseId: this.data.id, + }, + }).then((res) => { + this.setData({ + rejectReason: res, + }); + }); }, - onLoad() {}, -}) + handleShowRejectReason() { + this.setData({ + showRejectReason: !this.data.showRejectReason, + }); + }, + + handleShowLable() { + this.setData({ + show7: true, + }); + }, + getDoctorDict() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/doctor-dict", + data: {}, + }).then((res) => { + this.setData({ + deptList: res.DoctorSpecialtyLabel, + }); + }); + }, + handleDept(e) { + const { params } = e.currentTarget.dataset; + this.setData({ + deptId: params.value, + labelList: params.options, + labelIds: [], + }); + }, + handleLabel(e) { + const { params } = e.currentTarget.dataset; + const labelIds = this.data.labelIds; + const newLabelId = labelIds.includes(params.value) + ? labelIds.filter((item: any) => item !== params.value) + : [...labelIds, ...params.value]; + this.setData({ + labelIds: newLabelId, + }); + }, + handleLableSubmit() { + const { id, deptId, labelIds } = this.data; + if (!deptId) { + wx.showToast({ + title: "请选择科室", + icon: "none", + }); + return; + } + if (!labelIds.length) { + wx.showToast({ + title: "请选择标签", + icon: "none", + }); + return; + } + wx.ajax({ + method: "POST", + url: "?r=takeda/case/save-case-label", + data: { + caseId: id, + deptId, + labelIds: JSON.stringify(labelIds), + }, + }).then(() => { + this.setData({ + show7: false, + }); + this.handleResoure(); + }); + }, + + handleInvite() { + wx.navigateTo({ + url: `/module1/pages/setCaseDoctor/index`, + success: (res) => { + res.eventChannel.emit("acceptDataFromOpenerPage", { + caseId: this.data.id, + detailInvite: true, + }); + }, + }); + }, + + handleFeedBack() { + wx.navigateTo({ + url: `/module1/pages/casesFeedback/index?id=${this.data.id}`, + }); + }, +}); + +export {}; diff --git a/src/module1/pages/casesDetail/index.wxml b/src/module1/pages/casesDetail/index.wxml index a229e5f..1c1f4fe 100644 --- a/src/module1/pages/casesDetail/index.wxml +++ b/src/module1/pages/casesDetail/index.wxml @@ -1,9 +1,14 @@ + - ID:2024020913049204001 - 新病历 + ID:{{detail.caseId}} + {{detail.caseStatusName}} + {{detail.caseStatusName}} + {{detail.caseStatusName}} + {{detail.caseStatusName}} + 已公开 收起 @@ -12,64 +17,68 @@ 提交时间 - 2024-02-09 12:04:23 + {{detail.createTime}} - 徐萌 - 主治医师 + {{detail.createDoctorInfo.doctorName}} + + {{detail.createDoctorInfo.doctorTitleName || detail.createDoctorInfo.doctorOtherTitle}} + - 北京天坛医院 - 三甲 - 广州市/番禺区 + {{detail.createDoctorInfo.hospitalName}} + + {{detail.createDoctorInfo.hospitalClassificationName}}{{detail.createDoctorInfo.hospitalLevelName}} + + {{detail.createDoctorInfo.cityName}}/{{detail.createDoctorInfo.countyName}} - + 标签 - 心律失常 - 心衰 + {{item.labelName}} + 编辑标签 - + 病历备注 - - 此患者已经做了基因检测,根据基因检测的流程判断已排除,但是其他的检测档案指向性较强,请帮忙判断 - + {{detail.description}} - - - + + + 转文字 - + 病历相关文件 - + - 基因检测报告.pdf + {{item.name}} @@ -80,7 +89,7 @@ - - + 已提交给 - 提交时间:2024-10-01 12:34:34 + 提交时间:{{dealInfo.createTime}} - 徐萌 - 主任医师 - - 心内科 + {{dealDoctorInfo.doctorName}} + {{dealDoctorInfo.doctorTitleName || dealDoctorInfo.doctorOtherTitle}} + + + {{item.DepartmentName}} + - 北京天坛医院 - 三甲 - 广州市/番禺区 + {{dealDoctorInfo.hospitalName}} + {{dealDoctorInfo.hospitalClassificationName}}{{dealDoctorInfo.hospitalLevelName}} + {{dealDoctorInfo.cityName}}/{{dealDoctorInfo.countyName}} - 心律失常 - 心律失常 - 心律失常 - 心律失常 + + {{item.SpecialtyName}} + - + - + 驳回 - - + + + + {{rejectReason.doctorName}}医生驳回了您的病历 + {{rejectReason.rejectTime}} + + 原因:{{rejectReason.remark}} + + 驳回原因 - + 创建聊天室 - - - 更多操作 - - + 归档 - + - 创建聊天室 + 进入聊天室 - + 标为优质 + + + 邀约上级 + + + + + + - 更多操作 - - @质控医生 - 提交反馈 - - - 创建聊天室 - 提交反馈 - + 提交反馈 - - - - 李俊医生驳回了您的病历 - 2024.09.12 - - 原因:资料待补充 - - 驳回记录 - 提交 - + + + + + + @@ -341,6 +350,7 @@ + 取消 + + + + + 更改标签 + 所属科室 + + + {{item.label}} + + + 标签 + + + {{item.label}} + + + 提交 + + diff --git a/src/module1/pages/casesFeedback/index.json b/src/module1/pages/casesFeedback/index.json index e8c091d..f0d801d 100644 --- a/src/module1/pages/casesFeedback/index.json +++ b/src/module1/pages/casesFeedback/index.json @@ -1,5 +1,11 @@ { "navigationBarTitleText": "病历反馈", "navigationStyle": "default", - "usingComponents": {} + "usingComponents": { + "uploadFile": "/components/uploadFile/index", + "van-icon": "@vant/weapp/icon/index", + "customRecord": "/components/customRecord/index", + "customAudioBar": "/components/customAudioBar/index", + "van-popup": "@vant/weapp/popup/index" + } } diff --git a/src/module1/pages/casesFeedback/index.scss b/src/module1/pages/casesFeedback/index.scss index 2a08559..f095546 100644 --- a/src/module1/pages/casesFeedback/index.scss +++ b/src/module1/pages/casesFeedback/index.scss @@ -2,6 +2,282 @@ page { background-color: #f6f6f6; } .page { + padding: 24rpx 32rpx 300rpx; + .card { + margin-bottom: 24rpx; + padding: 32rpx; + background-color: #fff; + border-radius: 16rpx; + .card-title { + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + line-height: 56rpx; + .limit { + color: rgba(153, 153, 153, 1); + } + .message-select-wrap { + float: right; + } + .message-select { + padding: 8rpx 24rpx; + font-size: 28rpx; + color: rgba(255, 255, 255, 1); + line-height: 40rpx; + background: #01b4c5; + border-radius: 60rpx 60rpx 60rpx 60rpx; + } + &.required { + &::before { + display: inline; + content: "*"; + color: rgba(255, 87, 51, 1); + } + } + } + .image-files { + margin-top: 32rpx; + display: flex; + gap: 14rpx; + .upload-file { + width: 144rpx; + height: 144rpx; + background: #f6f6f6; + border-radius: 8rpx 8rpx 8rpx 8rpx; + display: flex; + align-items: center; + justify-content: center; + .add { + color: #cdcdcd; + font-size: 30px; + } + } + .photo { + position: relative; + width: 144rpx; + height: 144rpx; + border-radius: 8rpx 8rpx 8rpx 8rpx; + .p-img { + width: 100%; + height: 100%; + border-radius: inherit; + } + .del { + position: absolute; + top: 0; + right: 0; + z-index: 1; + color: #fff; + width: 32rpx; + height: 32rpx; + text-align: center; + line-height: 32rpx; + font-size: 20rpx; + border-radius: 8rpx; + background-color: rgba(0, 0, 0, 0.3); + } + .repeat { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + border-radius: inherit; + background-color: rgba(0, 0, 0, 0.3); + .icon { + width: 36rpx; + height: 36rpx; + } + .r-title { + margin-top: 8rpx; + font-size: 20rpx; + color: rgba(237, 79, 57, 1); + } + } + } + } + .remark { + margin-top: 32rpx; + padding: 32rpx; + border-radius: 16rpx; + background-color: rgba(246, 246, 246, 1); + .textarea { + font-size: 28rpx; + line-height: 32rpx; + min-height: 200rpx; + color: #000; + } + .limit { + font-size: 28rpx; + color: rgba(205, 205, 205, 1); + line-height: 32rpx; + text-align: right; + } + } + .audio-list { + margin-top: 32rpx; + .row { + margin-bottom: 24rpx; + display: flex; + gap: 28rpx; + align-items: center; + .audio-bar { + flex: 1; + border-radius: 104rpx; + background-color: rgba(246, 246, 246, 1); + } + .options { + flex-shrink: 0; + gap: 20rpx; + display: flex; + align-items: center; + .del { + width: 36rpx; + height: 36rpx; + } + .trans { + font-size: 28rpx; + color: rgba(128, 128, 128, 1); + } + } + } + } + .record { + margin: 24rpx -30rpx -30rpx; + height: 198rpx; + border-radius: 16rpx; + background: linear-gradient(to bottom, #fff 0%, #fff 34%, #f6f6f6 34%, #f6f6f6 100%); + .record-btn { + display: flex; + justify-content: center; + } + .r-title { + margin-top: 12rpx; + font-size: 28rpx; + color: rgba(133, 133, 133, 1); + text-align: center; + } + } + .none-file { + margin-top: 24rpx; + padding: 26rpx; + border-radius: 16rpx; + background-color: rgba(246, 246, 246, 1); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + .nf-icon { + width: 96rpx; + height: 66rpx; + } + .nf-title { + margin-top: 14rpx; + font-size: 24rpx; + color: rgba(205, 205, 205, 1); + } + } + .file-list { + margin-top: 8rpx; + .fl-row { + margin-top: 24rpx; + display: flex; + align-content: inherit; + justify-content: space-between; + .wrap { + flex: 1; + padding: 20rpx 24rpx; + border-radius: 16rpx; + background-color: rgba(246, 246, 246, 1); + display: flex; + align-items: center; + .icon { + flex-shrink: 0; + width: 56rpx; + height: 56rpx; + } + .name { + flex: 1; + margin-left: 30rpx; + font-size: 32rpx; + color: rgba(128, 128, 128, 1); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + max-width: 10em; + } + } + .option { + display: flex; + align-items: center; + .icon { + margin-left: 16rpx; + width: 36rpx; + height: 36rpx; + } + } + } + } + } + .tags { + margin-top: 24rpx; + padding: 22rpx 32rpx; + border-radius: 16rpx; + background-color: #fff; + display: flex; + .label { + padding-top: 8rpx; + flex-shrink: 0; + width: 3em; + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + } + .wrap { + flex: 1; + .tag-wrap { + display: flex; + gap: 16rpx; + flex-wrap: wrap; + .tag { + padding: 10rpx 32rpx; + font-size: 32rpx; + line-height: 44rpx; + color: rgba(133, 133, 133, 1); + background: #f6f6f6; + border-radius: 84rpx 84rpx 84rpx 84rpx; + &.active { + color: #fff; + background-color: rgba(1, 180, 197, 1); + } + } + } + .sub-tag-wrap { + margin-top: 32rpx; + padding: 32rpx; + border-radius: 16rpx; + background-color: rgba(246, 250, 250, 1); + display: flex; + flex-wrap: wrap; + gap: 16rpx; + .sub-tag { + padding: 6rpx 32rpx; + border-radius: 8rpx; + font-size: 32rpx; + color: rgba(133, 133, 133, 1); + line-height: 44rpx; + border: 1px solid rgba(255, 255, 255, 1); + background-color: rgba(255, 255, 255, 1); + &.active { + border-color: rgba(1, 180, 197, 1); + color: rgba(1, 180, 197, 1); + } + } + } + } + } .footer { position: fixed; bottom: 0; @@ -24,6 +300,9 @@ page { border-radius: 96rpx 96rpx 96rpx 96rpx; border: 1rpx solid #01b4c5; } + .disabled { + opacity: 0.3; + } .submit { width: 330rpx; height: 88rpx; diff --git a/src/module1/pages/casesFeedback/index.ts b/src/module1/pages/casesFeedback/index.ts index 2f29371..778c324 100644 --- a/src/module1/pages/casesFeedback/index.ts +++ b/src/module1/pages/casesFeedback/index.ts @@ -1,12 +1,198 @@ -const _app = getApp() +const app = getApp(); Page({ data: { show1: false, show2: false, - show3: false, - show4: false, - show5: false, + + images: [] as any, + info: "", + audios: [] as any, + files: [] as any, + + DoctorLevel: 1, + }, + onLoad() { + app.waitLogin().then(() => { + app.getUserInfo(this, (res) => { + this.setData({ + DoctorLevel: res.DoctorLevel, + }); + }); + }); + }, + handlePhoto(e) { + const detail = e.detail; + const images = this.data.images; + this.setData({ + images: [ + ...images, + { + name: detail.name, + url: detail.fileUrl, + isRepeat: 2, + }, + ], + }); + }, + handleDelPhoto(e) { + const { index } = e.currentTarget.dataset; + this.setData({ + images: this.data.images.filter((_, i) => i !== Number(index)), + }); + }, + handleAudio(e) { + this.setData({ + audios: [ + ...this.data.audios, + { + name: e.detail.name, + url: e.detail.fileUrl, + duration: e.detail.duration, + isRepeat: 2, + }, + ], + }); + }, + handleDelAudio(e) { + const { index } = e.currentTarget.dataset; + this.setData({ + audios: this.data.audios.filter((_, i) => i !== Number(index)), + }); + }, + handleFile(e) { + this.setData({ + files: [ + ...this.data.files, + { + fileType: e.detail.fileType, + name: e.detail.name, + url: e.detail.fileUrl, + size: e.detail.size, + isRepeat: 2, + videoUrl: e.detail.videoUrl, + duration: e.detail.duration, + }, + ], + }); + }, + handleDelFile(e) { + const { index } = e.currentTarget.dataset; + this.setData({ + files: this.data.files.filter((_, i) => i !== Number(index)), + }); }, - onLoad() {}, -}) + handlePreviewFile(e) { + const { index } = e.currentTarget.dataset; + const item = this.data.files[index]; + wx.downloadFile({ + url: item.url, + success(res) { + wx.openDocument({ + filePath: res.tempFilePath, + fail() { + wx.showToast({ + title: "该文件无法预览", + icon: "none", + }); + }, + }); + }, + }); + }, + handleDownloadFile(e) { + const { index } = e.currentTarget.dataset; + const item = this.data.files[index]; + wx.downloadFile({ + url: item.url, + success(res) { + if (res.statusCode === 200) { + wx.hideLoading(); + const tempFilePath = res.tempFilePath; + const FileSystemManager = wx.getFileSystemManager(); + FileSystemManager.saveFile({ + tempFilePath, + success() { + wx.showToast({ + title: "下载成功", + icon: "none", + mask: true, + }); + }, + fail() { + wx.showToast({ + title: "下载失败,请重新尝试", + icon: "none", + mask: true, + }); + }, + }); + } + }, + }); + }, + formatParams() { + const { images, info, audios, files } = this.data; + return { + images: JSON.stringify(images), + info, + audios: JSON.stringify(audios), + files: JSON.stringify(files), + }; + }, + onClose() { + this.setData({ + show1: false, + }); + }, + handleCache() { + const params = this.formatParams(); + wx.ajax({ + method: "POST", + url: "?r=takeda/case/create-case", + data: { + ...params, + isSubmit: 2, + }, + }).then(() => { + wx.navigateBack(); + }); + }, + handleInvite() { + const params = this.formatParams(); + const images = this.data.images; + if (images.length === 0) { + wx.showToast({ + title: "请上传病例图片", + icon: "none", + }); + return; + } + wx.navigateTo({ + url: `/module1/pages/setCaseDoctor/index`, + success(res) { + res.eventChannel.emit("acceptDataFromOpenerPage", { + params, + }); + }, + }); + }, + handleSave() {}, + handleSubmit() {}, + handleBack() { + wx.showModal({ + title: "您的病历还未保存,是否要存为草稿?", + confirmText: "存为草稿", + cancelColor: "退出", + success: (res) => { + if (res.confirm) { + this.handleCache(); + } else { + wx.navigateBack(); + } + }, + }); + }, +}); + +export {}; diff --git a/src/module1/pages/casesFeedback/index.wxml b/src/module1/pages/casesFeedback/index.wxml index 694b71a..1d222e0 100644 --- a/src/module1/pages/casesFeedback/index.wxml +++ b/src/module1/pages/casesFeedback/index.wxml @@ -1,6 +1,101 @@ + + 我的批注 + + + {{description.length}}/3000 + + + + + + + + + + + + + 您也可以长按录入语音 + + + + + 上传图片建议 + (0/9) + + + + + + + + + + + + + + + + + + + 病历相关文件 + + 从聊天记录选择文件 + + + + + + + {{item.name}} + + + + + + + + + + + 还没有文件哦! + + - 返回 - 保存并提交 + 返回 + 保存并提交 diff --git a/src/module1/pages/entryCases/index.json b/src/module1/pages/entryCases/index.json index b3443a9..ba30c17 100644 --- a/src/module1/pages/entryCases/index.json +++ b/src/module1/pages/entryCases/index.json @@ -1,11 +1,11 @@ { "navigationBarTitleText": "录入新病历", - "navigationStyle": "default", "usingComponents": { "uploadFile": "/components/uploadFile/index", "van-icon": "@vant/weapp/icon/index", "customRecord": "/components/customRecord/index", - "customAudioBar":"/components/customAudioBar/index", - "van-popup": "@vant/weapp/popup/index" + "customAudioBar": "/components/customAudioBar/index", + "van-popup": "@vant/weapp/popup/index", + "van-nav-bar": "@vant/weapp/nav-bar/index" } } diff --git a/src/module1/pages/entryCases/index.scss b/src/module1/pages/entryCases/index.scss index ec5435a..b572b74 100644 --- a/src/module1/pages/entryCases/index.scss +++ b/src/module1/pages/entryCases/index.scss @@ -300,6 +300,9 @@ page { border-radius: 96rpx 96rpx 96rpx 96rpx; border: 1rpx solid #01b4c5; } + .disabled{ + opacity: 0.3; + } .submit { width: 330rpx; height: 88rpx; diff --git a/src/module1/pages/entryCases/index.ts b/src/module1/pages/entryCases/index.ts index a8e1b35..78c7ec9 100644 --- a/src/module1/pages/entryCases/index.ts +++ b/src/module1/pages/entryCases/index.ts @@ -5,6 +5,8 @@ Page({ show1: false, show2: false, + isInvite: false, + deptList: [] as any, labelList: [] as any, @@ -14,10 +16,18 @@ Page({ files: [] as any, deptId: "", labelIds: [] as any, + + DoctorLevel: 1, }, onLoad() { app.waitLogin().then(() => { this.getDoctorDict(); + this.getInviteDoctorList(); + app.getUserInfo(this, (res) => { + this.setData({ + DoctorLevel: res.DoctorLevel, + }); + }); }); }, getDoctorDict() { @@ -31,32 +41,17 @@ Page({ }); }); }, - formatParams() { - const { images, description, audios, files, deptId, labelIds } = this.data; - return { - images: JSON.stringify(images), - description, - audios: JSON.stringify(audios), - files: JSON.stringify(files), - deptId, - labelIds: JSON.stringify(labelIds), - }; - }, - handleCache() { - const params = this.formatParams(); - }, - handleSave() { - this.setData({ - show1: true, + getInviteDoctorList() { + wx.ajax({ + method: "GET", + url: "?r=takeda/case/get-invite-doctor-list", + data: {}, + }).then((res) => { + this.setData({ + isInvite: Boolean(res.list.length), + }); }); }, - handleSubmit() { - const params = this.formatParams(); - // wx.navigateTo({ - // url: "/module1/pages/entryCasesResult/index", - // }); - }, - handleInvite() {}, handlePhoto(e) { const detail = e.detail; const images = this.data.images; @@ -106,10 +101,67 @@ Page({ url: e.detail.fileUrl, size: e.detail.size, isRepeat: 2, + videoUrl: e.detail.videoUrl, + duration: e.detail.duration, }, ], }); }, + handleDelFile(e) { + const { index } = e.currentTarget.dataset; + this.setData({ + files: this.data.files.filter((_, i) => i !== Number(index)), + }); + }, + handlePreviewFile(e) { + const { index } = e.currentTarget.dataset; + const item = this.data.files[index]; + wx.downloadFile({ + url: item.url, + success(res) { + wx.openDocument({ + filePath: res.tempFilePath, + fail() { + wx.showToast({ + title: "该文件无法预览", + icon: "none", + }); + }, + }); + }, + }); + }, + handleDownloadFile(e) { + const { index } = e.currentTarget.dataset; + const item = this.data.files[index]; + wx.downloadFile({ + url: item.url, + success(res) { + if (res.statusCode === 200) { + wx.hideLoading(); + const tempFilePath = res.tempFilePath; + const FileSystemManager = wx.getFileSystemManager(); + FileSystemManager.saveFile({ + tempFilePath, + success() { + wx.showToast({ + title: "下载成功", + icon: "none", + mask: true, + }); + }, + fail() { + wx.showToast({ + title: "下载失败,请重新尝试", + icon: "none", + mask: true, + }); + }, + }); + } + }, + }); + }, handleDept(e) { const { params } = e.currentTarget.dataset; this.setData({ @@ -128,6 +180,71 @@ Page({ labelIds: newLabelId, }); }, + + formatParams() { + const { images, description, audios, files, deptId, labelIds } = this.data; + return { + images: JSON.stringify(images), + description, + audios: JSON.stringify(audios), + files: JSON.stringify(files), + deptId, + labelIds: JSON.stringify(labelIds), + }; + }, + onClose() { + this.setData({ + show1: false, + }); + }, + handleCache() { + const params = this.formatParams(); + wx.ajax({ + method: "POST", + url: "?r=takeda/case/create-case", + data: { + ...params, + isSubmit: 2, + }, + }).then(() => { + wx.navigateBack(); + }); + }, + handleInvite() { + const params = this.formatParams(); + const images = this.data.images; + if (images.length === 0) { + wx.showToast({ + title: "请上传病例图片", + icon: "none", + }); + return; + } + wx.navigateTo({ + url: `/module1/pages/setCaseDoctor/index`, + success(res) { + res.eventChannel.emit("acceptDataFromOpenerPage", { + params, + }); + }, + }); + }, + handleSave() {}, + handleSubmit() {}, + handleBack() { + wx.showModal({ + title: "您的病历还未保存,是否要存为草稿?", + confirmText: "存为草稿", + cancelColor: "退出", + success: (res) => { + if (res.confirm) { + this.handleCache(); + } else { + wx.navigateBack(); + } + }, + }); + }, }); export {}; diff --git a/src/module1/pages/entryCases/index.wxml b/src/module1/pages/entryCases/index.wxml index 5fd6abc..4641cc6 100644 --- a/src/module1/pages/entryCases/index.wxml +++ b/src/module1/pages/entryCases/index.wxml @@ -1,5 +1,8 @@ - + + + + 上传病历图片 @@ -34,7 +37,7 @@ auto-height maxlength="{{3000}}" > - 0/3000 + {{description.length}}/3000 @@ -69,9 +72,24 @@ {{item.name}} - - - + + + @@ -109,7 +127,8 @@ 存为草稿 - 保存并提交 + 保存并提交 + 保存并提交 diff --git a/src/module1/pages/entryCasesResult/index.ts b/src/module1/pages/entryCasesResult/index.ts index b792ee4..2591f70 100644 --- a/src/module1/pages/entryCasesResult/index.ts +++ b/src/module1/pages/entryCasesResult/index.ts @@ -1,6 +1,26 @@ const _app = getApp(); Page({ - data: {}, - onLoad() {}, + data: { + caseId: "", + codeUrl: "", + isFollow: "", + }, + onLoad(options) { + this.setData({ + caseId: options.cid, + codeUrl: options.wxi, + isFollow: options.isf, + }); + }, + handleReSubmit() { + wx.navigateTo({ + url: "/module1/pages/entryCases/index", + }); + }, + handleDetail() { + wx.navigateTo({ + url: `/module1/pages/casesDetail/index?id=${this.data.caseId}`, + }); + }, }); diff --git a/src/module1/pages/entryCasesResult/index.wxml b/src/module1/pages/entryCasesResult/index.wxml index 374bbe0..9604a1b 100644 --- a/src/module1/pages/entryCasesResult/index.wxml +++ b/src/module1/pages/entryCasesResult/index.wxml @@ -1,13 +1,8 @@ 病历提交后医生将收到消息提醒 - 查看我提交的病历 - 继续录入新的病历 - + 查看我提交的病历 + 继续录入新的病历 + 关注公众号接收病例反馈消息 diff --git a/src/module1/pages/sHostipal/index.ts b/src/module1/pages/sHostipal/index.ts index 1f99af3..ca0d86c 100644 --- a/src/module1/pages/sHostipal/index.ts +++ b/src/module1/pages/sHostipal/index.ts @@ -121,11 +121,21 @@ Page({ handleSelect(e: any) { const { index } = e.currentTarget.dataset; - const item: any = this.data.list[index]; - const isParams = this.data.prev.includes("?"); - wx.redirectTo({ - url: `${this.data.prev}${isParams ? "&" : "?"}hid=${item.HospitalId}&hname=${item.ShortName || item.Name}`, - }); + const { prev, list } = this.data; + const item: any = list[index]; + if (prev) { + const isParams = this.data.prev.includes("?"); + wx.redirectTo({ + url: `${this.data.prev}${isParams ? "&" : "?"}hid=${item.HospitalId}&hname=${item.ShortName || item.Name}`, + }); + } else { + const eventChannel = this.getOpenerEventChannel(); + eventChannel.emit("acceptDataFromOpenedPage", { + hid: item.HospitalId, + hname: item.ShortName || item.Name, + }); + wx.navigateBack(); + } }, handlePushDoctor() { wx.navigateTo({ diff --git a/src/module1/pages/setCaseDoctor/index.json b/src/module1/pages/setCaseDoctor/index.json new file mode 100644 index 0000000..f80c83f --- /dev/null +++ b/src/module1/pages/setCaseDoctor/index.json @@ -0,0 +1,11 @@ +{ + "navigationBarTitleText": "指派医生", + "navigationStyle": "default", + "usingComponents": { + "popupDoctorDetail": "/components/popupDoctorDetail/index", + "doctorAvatar": "/components/doctorAvatar/index", + "van-cascader": "@vant/weapp/cascader/index", + "van-popup": "@vant/weapp/popup/index", + "van-dialog": "@vant/weapp/dialog/index" + } +} diff --git a/src/module1/pages/setCaseDoctor/index.scss b/src/module1/pages/setCaseDoctor/index.scss new file mode 100644 index 0000000..87ef51c --- /dev/null +++ b/src/module1/pages/setCaseDoctor/index.scss @@ -0,0 +1,192 @@ +page { + background-color: rgba(246, 246, 246, 1); +} +.page { + .header { + padding: 32rpx 32rpx 2rpx; + background-color: #fff; + .tip { + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + .link { + color: rgba(0, 180, 197, 1); + } + } + .search { + margin-top: 32rpx; + padding: 20rpx 30rpx; + display: flex; + align-items: center; + gap: 20rpx; + border-radius: 122rpx; + background-color: rgba(246, 246, 246, 1); + .icon { + width: 32rpx; + height: 32rpx; + } + .input { + flex: 1; + text-align: center; + font-size: 28rpx; + color: #000; + } + .place-input { + color: rgba(205, 205, 205, 1); + } + } + .options { + display: flex; + align-items: center; + justify-content: space-between; + .option-wrap { + flex: 1; + .option { + padding: 30rpx 10rpx; + display: flex; + align-items: center; + justify-content: center; + .option-text { + max-width: 4em; + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } + .icon { + width: 24rpx; + height: 24rpx; + } + } + } + } + } + .list { + padding: 26rpx 32rpx; + .list-item { + display: flex; + align-items: center; + .radio { + transform: scale(0.7); + } + .card { + flex: 1; + padding: 32rpx; + border-radius: 16rpx; + background-color: #fff; + display: flex; + gap: 24rpx; + .avatar { + flex-shrink: 0; + position: relative; + width: 112rpx; + height: 112rpx; + } + .wrap { + flex: 1; + .w-header { + .name { + margin-right: 10rpx; + display: inline; + font-size: 36rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .label { + display: inline; + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + } + .line { + margin: 0 10rpx; + display: inline-block; + width: 1px; + height: 24rpx; + background-color: rgba(205, 205, 205, 1); + } + } + .w-container { + margin-top: 24rpx; + .hostipal { + margin-right: 12rpx; + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + } + .tag { + margin-right: 12rpx; + display: inline-block; + padding: 0 8rpx; + border-radius: 4rpx; + font-size: 24rpx; + color: rgba(255, 255, 255, 1); + line-height: 32rpx; + background-color: rgba(0, 180, 197, 1); + } + .site { + display: inline-block; + padding: 0 8rpx; + font-size: 24rpx; + color: rgba(148, 87, 30, 1); + line-height: 32rpx; + border-radius: 4rpx; + background-color: rgba(250, 229, 206, 1); + } + } + .w-footer { + margin-top: 14rpx; + display: flex; + gap: 12rpx; + flex-wrap: wrap; + .wf-label { + flex-shrink: 0; + width: 48rpx; + height: 32rpx; + } + .wf-tag { + flex-shrink: 0; + padding: 0 8rpx; + font-size: 22rpx; + color: rgba(0, 180, 197, 1); + line-height: 32rpx; + border: 1rpx solid rgba(191, 239, 244, 1); + } + } + } + } + } + } + .footer { + position: fixed; + bottom: 0; + left: 0; + padding: 32rpx 32rpx calc(env(safe-area-inset-bottom) + 32rpx); + width: 100%; + box-sizing: border-box; + display: flex; + gap: 26rpx; + align-items: center; + justify-content: space-between; + background-color: #fff; + box-shadow: 0 -10rpx 20rpx rgba(0, 0, 0, 0.1); + .cancel { + width: 230rpx; + height: 84rpx; + text-align: center; + line-height: 88rpx; + font-size: 32rpx; + color: rgba(1, 180, 197, 1); + border-radius: 96rpx 96rpx 96rpx 96rpx; + border: 1rpx solid #01b4c5; + } + .submit { + flex: 1; + height: 88rpx; + text-align: center; + line-height: 88rpx; + font-size: 32rpx; + color: #fff; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 96rpx; + } + } +} diff --git a/src/module1/pages/setCaseDoctor/index.ts b/src/module1/pages/setCaseDoctor/index.ts new file mode 100644 index 0000000..072a1aa --- /dev/null +++ b/src/module1/pages/setCaseDoctor/index.ts @@ -0,0 +1,252 @@ +const app = getApp(); + +Page({ + data: { + showDetail: false, + popupDoctorDetail: {}, + + showResolve: false, + + showArea: false, + fieldNames: { text: "label", value: "value", children: "children" }, + area: [], + + id: "", + + DoctorTitleType: {}, + hospitalClassification: {}, + hospitalLevel: {}, + SpecialtyList: [], + + search: "", + hospitalId: "", + HospitalName: "", + provinceId: "", + cityId: "", + countyId: "", + ProvinceName: "", + CityName: "", + CountyName: "", + specialtyId: "", + SpecialtyName: "", + + list: [], + + DoctorId: "", + + params: {}, + + caseId: "", + detailInvite: false, + }, + onLoad(options) { + if (options.hid) { + this.setData({ + hospitalId: options.hid, + HospitalName: options.hname, + }); + } + const eventChannel = this.getOpenerEventChannel(); + eventChannel.on("acceptDataFromOpenerPage", (data) => { + this.setData({ + params: data.params, + caseId: data.caseId, + detailInvite: data.detailInvite, + }); + }); + app.waitLogin().then(() => { + this.getList(); + this.getDoctorDict(); + this.getHostipalDict(); + this.getArea(); + }); + }, + getDoctorDict() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/doctor-dict", + data: {}, + }).then((res) => { + const SpecialtyList: any = []; + res.DoctorSpecialtyLabel.forEach((item: any) => { + SpecialtyList.push(...item.options); + }); + this.setData({ + DoctorTitleType: res.DoctorTitleType, + SpecialtyList, + }); + }); + }, + getHostipalDict() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/hospital-dict", + data: {}, + }).then((res) => { + this.setData({ + hospitalClassification: res.hospitalClassification, + hospitalLevel: res.hospitalLevel, + }); + }); + }, + getArea() { + wx.ajax({ + method: "GET", + url: "/js/area.json", + isJSON: true, + }).then((res) => { + this.setData({ + area: res, + }); + }); + }, + handleSearch() { + this.setData({ + list: [], + }); + this.getList(); + }, + getList() { + const { search, hospitalId, provinceId, cityId, countyId, specialtyId } = this.data; + wx.ajax({ + method: "GET", + url: "?r=takeda/case/get-invite-doctor-list", + data: { + search, + hospitalId, + provinceId, + cityId, + countyId, + specialtyId, + }, + }).then((res) => { + this.setData({ + list: res.list, + }); + }); + }, + handlePopupDetail(e) { + const { index } = e.currentTarget.dataset; + const { list, hospitalClassification } = this.data; + const item: any = list[index]; + this.setData({ + showDetail: true, + popupDoctorDetail: { + DoctorLevel: item.doctorLevel, + DoctorImg: item.doctorImg, + DoctorName: item.doctorName, + DoctorTitleName: item.doctorTitleName || item.doctorOtherTitle, + HospitalName: item.hospitalName, + HospitalClassificationName: hospitalClassification[item.HospitalClassification], + HospitalLevelName: item.hospitalLevelName, + CityName: item.cityName, + CountyName: item.countyName, + Introduce: item.doctorIntroduce, + department: item.doctorDept, + specialty: item.doctorSpecialty, + }, + }); + }, + handlePopupClose() { + this.setData({ + showDetail: false, + }); + }, + handleHostipal() { + wx.navigateTo({ + url: `/module1/pages/sHostipal/index`, + events: { + acceptDataFromOpenedPage: (data: any) => { + this.setData({ + HospitalId: data.hid, + HospitalName: data.hname, + }); + this.handleSearch(); + }, + }, + }); + }, + handleArea() { + this.setData({ + showArea: true, + }); + }, + onClose() { + this.setData({ + showArea: false, + showResolve: false, + }); + }, + onFinish(e: any) { + this.setData({ + provinceId: e.detail.selectedOptions[0].value, + ProvinceName: e.detail.selectedOptions[0].label, + cityId: e.detail.selectedOptions[1].value, + CityName: e.detail.selectedOptions[1].label, + countyId: e.detail.selectedOptions[2].value, + CountyName: e.detail.selectedOptions[2].label, + showArea: false, + }); + this.handleSearch(); + }, + handleSpecialChange(e: any) { + const index = e.detail.value; + const { SpecialtyList } = this.data; + const item: any = SpecialtyList[index]; + this.setData({ + specialtyId: item.value, + SpecialtyName: item.label, + }); + this.handleSearch(); + }, + + handleRadio(e) { + const { index } = e.currentTarget.dataset; + const { list } = this.data; + this.setData({ + DoctorId: (list as any)[index].doctorId, + }); + }, + handleSubmit() { + const { caseId, DoctorId, params, detailInvite } = this.data; + if (!DoctorId) { + wx.showToast({ + title: "请选择指派医生", + icon: "none", + }); + } + if (detailInvite) { + wx.ajax({ + method: "POST", + url: "?r=takeda/case/invite-doctor", + data: { + caseId, + dealDoctorId: DoctorId, + }, + }).then((res) => { + wx.navigateTo({ + url: `/module1/pages/entryCasesResult/index?isf=${res.isSubscribe}&wxi=${encodeURIComponent(res.wxImg)}&cid=${res.caseId}`, + }); + }); + return; + } + wx.ajax({ + method: "POST", + url: "?r=takeda/case/create-case", + data: { + ...params, + isSubmit: 1, + dealDoctorId: DoctorId, + }, + }).then((res) => { + wx.navigateTo({ + url: `/module1/pages/entryCasesResult/index?isf=${res.isSubscribe}&wxi=${encodeURIComponent(res.wxImg)}&cid=${res.caseId}`, + }); + }); + }, + handleBack() { + wx.navigateBack(); + }, +}); + +export {}; diff --git a/src/module1/pages/setCaseDoctor/index.wxml b/src/module1/pages/setCaseDoctor/index.wxml new file mode 100644 index 0000000..23a4e63 --- /dev/null +++ b/src/module1/pages/setCaseDoctor/index.wxml @@ -0,0 +1,92 @@ + + + 邀请医生进行病历反馈,提交后医生将收到消息提醒 + + + + + + + + {{HospitalName || '医院'}} + + + + + + {{CountyName || '地区'}} + + + + + + {{SpecialtyName || '医生专长'}} + + + + + + + + + + + + + + + {{item.doctorName}} + {{item.doctorTitleName || item.doctorOtherTitle}} + + + {{depart.DepartmentName}} + + + + {{item.hospitalName}} + {{item.hospitalClassificationName}}{{item.hospitalLevelName}} + {{item.cityName}}/{{item.countyName}} + + + + + {{spec.SpecialtyName}} + + + + + + + + + + 返回 + 确认提交 + + + + + + + + diff --git a/src/module1/pages/setDoctor/index.scss b/src/module1/pages/setDoctor/index.scss index 7bc0368..eb236f2 100644 --- a/src/module1/pages/setDoctor/index.scss +++ b/src/module1/pages/setDoctor/index.scss @@ -70,6 +70,7 @@ page { transform: scale(0.7); } .card { + flex: 1; padding: 32rpx; border-radius: 16rpx; background-color: #fff; diff --git a/src/module1/pages/userInfo/index.wxml b/src/module1/pages/userInfo/index.wxml index a3fdd83..daafbed 100644 --- a/src/module1/pages/userInfo/index.wxml +++ b/src/module1/pages/userInfo/index.wxml @@ -44,7 +44,7 @@ -退出登录 +退出登录 更换手机号 注销账号 diff --git a/src/pages/cases/index.ts b/src/pages/cases/index.ts index 5e9cd2f..a10c531 100644 --- a/src/pages/cases/index.ts +++ b/src/pages/cases/index.ts @@ -61,12 +61,15 @@ Page({ isOpen: "", needDeal: "", orderType: "", + + myCaseCount: 0, }, onLoad() { this.getTabBar().setData({ active: 2, }); - + }, + onShow() { app.waitLogin().then(() => { this.getBaseInfo(); this.getList(); @@ -136,6 +139,7 @@ Page({ }).then((res) => { const list = res.page === 1 ? res.list : [...this.data.list, ...res.list]; this.setData({ + myCaseCount: res.myCaseCount, list, pagination: { page: res.page, @@ -204,9 +208,10 @@ Page({ urls: [url], }); }, - handleDetail() { + handleDetail(e) { + const { params } = e.currentTarget.dataset; wx.navigateTo({ - url: "/module1/pages/casesDetail/index", + url: `/module1/pages/casesDetail/index?id=${params.caseId}`, }); }, @@ -268,7 +273,7 @@ Page({ getDoctorDict() { wx.ajax({ - method: "POST", + method: "GET", url: "?r=takeda/reg/doctor-dict", data: {}, }).then((res) => { diff --git a/src/pages/cases/index.wxml b/src/pages/cases/index.wxml index 9276b45..dab44f1 100644 --- a/src/pages/cases/index.wxml +++ b/src/pages/cases/index.wxml @@ -158,8 +158,8 @@ - 共有{{pagination.count}}条病历 - + 共有{{myCaseCount}}条病历 + @@ -187,10 +187,10 @@ {{item.doctorName}} | - {{item.hospitalName}} {{item.doctorTitleName}} + {{item.hospitalName}} {{item.doctorTitleName || item.doctorOtherTitle}} - + 标签 @@ -234,7 +234,7 @@ 没有找到您搜索的医院哦! - + 你还没有病例哦!