diff --git a/project.private.config.json b/project.private.config.json index 68aa6f2..ff2981d 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -9,6 +9,13 @@ "miniprogram": { "list": [ { + "name": "module1/pages/doctorHome/index", + "pathName": "module1/pages/doctorHome/index", + "query": "id=100", + "launchMode": "default", + "scene": null + }, + { "name": "医生认证-选择医生", "pathName": "module1/pages/setInfoDoctor/index", "query": "", diff --git a/src/app.json b/src/app.json index 9c38a47..0e0b0bd 100644 --- a/src/app.json +++ b/src/app.json @@ -33,7 +33,8 @@ "pages/casesFeedback/index", "pages/chatRoom/index", "pages/chatRoomInfo/index", - "pages/setChatDoctor/index" + "pages/setChatDoctor/index", + "pages/doctorHome/index" ] } ], diff --git a/src/components/customAudioBar/index.wxml b/src/components/customAudioBar/index.wxml index 313110f..6e0e6a2 100644 --- a/src/components/customAudioBar/index.wxml +++ b/src/components/customAudioBar/index.wxml @@ -9,5 +9,5 @@ - {{time}}” + {{time}}″ diff --git a/src/components/customRecord/index.ts b/src/components/customRecord/index.ts index d419052..a26dc57 100644 --- a/src/components/customRecord/index.ts +++ b/src/components/customRecord/index.ts @@ -10,6 +10,10 @@ Component({ type: Boolean, value: false, }, + doubleConform: { + type: Boolean, + value: false, + }, }, externalClasses: ["custom-record"], @@ -60,16 +64,19 @@ Component({ } }, handleHide() { - const { recorderManager, startShow } = this.data; + const { recorderManager, startShow, doubleConform } = this.data; if (startShow) { recorderManager?.stop(); } - this.setData({ - // startShow: false, - // show: false, - }); + if (!doubleConform) { + this.setData({ + startShow: false, + show: false, + }); + } }, recorderManagerListen(recorderManager: WechatMiniprogram.RecorderManager) { + const { doubleConform } = this.data; recorderManager.onStart(() => { this.setData({ time: 0, @@ -90,12 +97,18 @@ Component({ return; } this.setData({ - record: false, audioObj: { ...res, duration: Number.parseInt(String(res.duration / 1000)), }, }); + if (doubleConform) { + this.setData({ + record: false, + }); + } else { + this.handleConform(); + } }); }, handleCancel() { diff --git a/src/components/customRecord/index.wxml b/src/components/customRecord/index.wxml index 2c1e883..0940b45 100644 --- a/src/components/customRecord/index.wxml +++ b/src/components/customRecord/index.wxml @@ -4,8 +4,8 @@ bind:longtap="handleShow" bind:touchend="handleHide" bind:touchcancel="handleHide" + catchtouchmove="noneEnoughPeople" > - - {{time}}” + {{time}}″ diff --git a/src/components/popupDoctorDetail/index.wxml b/src/components/popupDoctorDetail/index.wxml index 3f2ff88..08d77b6 100644 --- a/src/components/popupDoctorDetail/index.wxml +++ b/src/components/popupDoctorDetail/index.wxml @@ -1,6 +1,6 @@ - + - + 医生详情 diff --git a/src/echart/components/doctorLevel1/index.json b/src/echart/components/doctorLevel1/index.json new file mode 100644 index 0000000..fe436a8 --- /dev/null +++ b/src/echart/components/doctorLevel1/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "doctorAvatar": "/components/doctorAvatar/index", + "van-icon": "@vant/weapp/icon/index" + } +} diff --git a/src/echart/components/doctorLevel1/index.scss b/src/echart/components/doctorLevel1/index.scss new file mode 100644 index 0000000..b9c4787 --- /dev/null +++ b/src/echart/components/doctorLevel1/index.scss @@ -0,0 +1,364 @@ +.page { + padding: 36rpx 32rpx 200rpx; + .user { + display: flex; + gap: 24rpx; + align-items: center; + .avatar { + flex-shrink: 0; + width: 112rpx; + height: 112rpx; + } + .wrap { + .w-header { + display: flex; + flex-wrap: wrap; + align-items: baseline; + gap: 16rpx; + .name { + font-size: 36rpx; + color: rgba(0, 180, 197, 1); + font-weight: bold; + } + .desc { + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + } + } + .w-footer { + margin-top: 24rpx; + .hostipal { + margin-right: 12rpx; + display: inline; + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + } + .tag { + margin-right: 12rpx; + display: inline-block; + padding: 0 8rpx; + border-radius: 4rpx; + background-color: rgba(0, 180, 197, 1); + font-size: 24rpx; + color: #fff; + } + .site { + display: inline-block; + padding: 0 8rpx; + font-size: 24rpx; + line-height: 32rpx; + color: rgba(148, 87, 30, 1); + border-radius: 4rpx; + background-color: rgba(250, 229, 206, 1); + } + } + } + } + .banner { + margin-top: 32rpx; + .title { + position: relative; + z-index: 1; + padding: 22rpx 30rpx 18rpx; + width: 262rpx; + height: 116rpx; + font-size: 28rpx; + font-weight: bold; + color: rgba(0, 180, 197, 1); + line-height: 1; + box-sizing: border-box; + } + .bg { + padding-top: 40rpx; + border-radius: 24rpx; + background-color: rgba(250, 229, 206, 1); + margin-top: -95rpx; + .b-container { + position: relative; + z-index: 2; + border: 1px solid #ffffff; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + display: flex; + align-items: center; + .item { + padding: 32rpx 0; + flex: 1; + text-align: center; + .name { + font-size: 28rpx; + color: #fff; + line-height: 1; + } + .num { + margin-top: 24rpx; + font-size: 56rpx; + color: #fff; + line-height: 56rpx; + } + } + .line { + flex-shrink: 0; + height: 108rpx; + border-right: 1rpx dashed #ffffff; + opacity: 0.5; + } + } + .b-container-none { + position: relative; + z-index: 1; + width: 686rpx; + height: 172rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 28rpx; + color: #fff; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 1px solid #ffffff; + } + } + } + .stat { + position: relative; + margin-top: 24rpx; + padding: 96rpx 0 32rpx; + border-radius: 16rpx; + .title { + position: absolute; + top: 0; + left: 0; + padding: 16rpx 30rpx; + font-size: 28rpx; + color: #fff; + font-weight: bold; + } + .s-container { + display: flex; + .item { + flex: 1; + text-align: center; + .name { + font-size: 28rpx; + color: rgba(128, 128, 128, 1); + line-height: 1; + } + .num { + margin-top: 24rpx; + font-size: 48rpx; + color: rgba(20, 21, 21, 1); + line-height: 56rpx; + } + } + .line { + flex-shrink: 0; + height: 108rpx; + border-right: 1rpx dashed rgba(224, 224, 224, 0.5); + } + } + } + .stat-none { + position: relative; + margin-top: 24rpx; + padding: 96rpx 0 32rpx; + border-radius: 16rpx; + .title { + position: absolute; + top: 0; + left: 0; + padding: 16rpx 30rpx; + font-size: 28rpx; + color: #fff; + font-weight: bold; + } + .s-container { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 38rpx 0; + .none { + width: 102rpx; + height: 102rpx; + } + .tip { + padding: 0 26rpx; + flex: 1; + font-size: 28rpx; + color: rgba(128, 128, 128, 1); + } + .btn { + width: 184rpx; + height: 72rpx; + text-align: center; + line-height: 72rpx; + font-size: 30rpx; + color: rgba(255, 255, 255, 1); + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 44rpx 44rpx 44rpx 44rpx; + } + } + } + .cooperate { + margin-top: 24rpx; + background: linear-gradient(180deg, #f1feff 0%, #ffffff 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + &-header { + padding: 32rpx 20rpx; + display: flex; + align-items: center; + justify-content: space-between; + .name { + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .fold { + font-size: 28rpx; + color: rgba(153, 153, 153, 1); + display: flex; + align-items: center; + gap: 12rpx; + .icon { + width: 28rpx; + height: 28rpx; + } + } + } + .doctor-list { + padding: 0 20rpx 32rpx; + transition: 0.3s max-height; + max-height: var(--fold-height); + &-fold { + padding: 0; + max-height: 0; + overflow: hidden; + } + .doctor { + margin-bottom: 20rpx; + padding: 32rpx; + display: flex; + gap: 24rpx; + background: linear-gradient(180deg, #e5f5f7 0%, #ffffff 50%); + box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.1); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + &:last-of-type { + margin-bottom: 0; + } + .avatar { + flex-shrink: 0; + position: relative; + width: 112rpx; + height: 112rpx; + } + .wrap { + padding-top: 8rpx; + .w-header { + display: flex; + flex-wrap: wrap; + align-items: baseline; + gap: 16rpx; + line-height: 1; + .name { + font-size: 36rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .label { + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + } + .line { + 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: 16rpx; + 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: 1px solid rgba(191, 239, 244, 1); + } + } + } + } + } + } + + .cooperate-none { + margin-top: 24rpx; + background: linear-gradient(180deg, #f1feff 0%, #ffffff 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + &-header { + padding: 32rpx 20rpx; + display: flex; + align-items: center; + justify-content: space-between; + .name { + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + } + } + .none { + padding-bottom: 54rpx; + text-align: center; + .none-img { + width: 240rpx; + height: 200rpx; + } + .content { + margin-top: -70rpx; + text-align: center; + font-size: 32rpx; + color: rgba(153, 153, 153, 1); + line-height: 44rpx; + .sub-content { + font-size: 28rpx; + } + } + } + } +} diff --git a/src/echart/components/doctorLevel1/index.ts b/src/echart/components/doctorLevel1/index.ts new file mode 100644 index 0000000..7030856 --- /dev/null +++ b/src/echart/components/doctorLevel1/index.ts @@ -0,0 +1,73 @@ +const _app = getApp(); + +// pages/story/a.ts +Component({ + /** + * 组件的属性列表 + */ + properties: { + userInfo: Object, + DoctorTitleType: Object, + hospitalClassification: Object, + hospitalLevel: Object, + did: String, + }, + + /** + * 组件的初始数据 + */ + data: { + take: {}, + case: {}, + cooperateList: [], + }, + + lifetimes: { + attached() { + this.getTake(); + this.getCase(); + }, + }, + /** + * 组件的方法列表 + */ + methods: { + handleEntryCase() { + wx.navigateTo({ + url: "/module1/pages/entryCases/index", + }); + }, + getTake() { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/todo", + data: { + DoctorId: this.data.did, + }, + }).then((res) => { + this.setData({ + take: res, + }); + }); + }, + getCase() { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/case", + data: { + DoctorId: this.data.did, + }, + }).then((res) => { + this.setData({ + case: res, + }); + }); + }, + handleQuestion(e) { + const { index } = e.currentTarget.dataset; + this.triggerEvent("question", index); + }, + }, +}); + +export {}; diff --git a/src/echart/components/doctorLevel1/index.wxml b/src/echart/components/doctorLevel1/index.wxml new file mode 100644 index 0000000..23c1316 --- /dev/null +++ b/src/echart/components/doctorLevel1/index.wxml @@ -0,0 +1,93 @@ + + + + + + {{userInfo.Name}} + {{userInfo.OtherTitle}} + {{DoctorTitleType[userInfo.TitleType]}} + + + {{userInfo.HospitalName}} + {{userInfo.HospitalClassificationName}}{{userInfo.HospitalLevelName}} + + {{userInfo.CityName}}{{userInfo.CountyName?'/':''}}{{userInfo.CountyName}} + + + + + + + 我提交的病历 + + + 总数 + {{case.totalCaseCount}} + + + + + 新病历 + + + {{case.newCaseCount}} + + + + + 讨论中 + + + {{case.feedbackCaseCount}} + + + + + 已归档 + + + {{case.archiveCaseCount}} + + + + + 我提交的病历 + + + 还没有提交病历 + + + diff --git a/src/echart/components/doctorLevel2/index.json b/src/echart/components/doctorLevel2/index.json new file mode 100644 index 0000000..fe436a8 --- /dev/null +++ b/src/echart/components/doctorLevel2/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "doctorAvatar": "/components/doctorAvatar/index", + "van-icon": "@vant/weapp/icon/index" + } +} diff --git a/src/echart/components/doctorLevel2/index.scss b/src/echart/components/doctorLevel2/index.scss new file mode 100644 index 0000000..7238219 --- /dev/null +++ b/src/echart/components/doctorLevel2/index.scss @@ -0,0 +1,482 @@ +.page { + padding: 36rpx 32rpx 200rpx; + .user { + margin-top: 40rpx; + position: relative; + padding: 94rpx 32rpx 32rpx; + background: linear-gradient(180deg, #f1feff 0%, #ffffff 35%, #ffffff 100%); + box-shadow: 0rpx 8rpx 24rpx 0rpx rgba(0, 66, 73, 0.09); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + .avatar { + position: absolute; + top: -38rpx; + left: 32rpx; + width: 112rpx; + height: 112rpx; + } + .code { + position: absolute; + top: 38rpx; + right: 34rpx; + width: 60rpx; + height: 60rpx; + } + .wrap { + .w-header { + display: flex; + align-items: baseline; + flex-wrap: wrap; + gap: 16rpx; + .name { + font-size: 36rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .desc { + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + .line { + margin: 0 12rpx; + display: inline-block; + height: 24rpx; + width: 1rpx; + background-color: rgba(205, 205, 205, 1); + } + } + } + .w-container { + margin-top: 24rpx; + .hostipal { + margin-right: 12rpx; + display: inline; + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + } + .tag { + margin-right: 12rpx; + display: inline-block; + padding: 0 8rpx; + border-radius: 4rpx; + background-color: rgba(0, 180, 197, 1); + font-size: 24rpx; + color: #fff; + } + .site { + display: inline-block; + padding: 0 8rpx; + font-size: 24rpx; + line-height: 32rpx; + color: rgba(148, 87, 30, 1); + border-radius: 4rpx; + background-color: rgba(250, 229, 206, 1); + } + } + .w-footer { + margin-top: 16rpx; + 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: 1px solid rgba(191, 239, 244, 1); + border-radius: 4rpx; + } + } + } + } + .banner { + margin-top: 32rpx; + .title { + position: relative; + z-index: 1; + padding: 22rpx 30rpx 18rpx; + width: 262rpx; + height: 116rpx; + font-size: 28rpx; + font-weight: bold; + color: rgba(0, 180, 197, 1); + line-height: 1; + box-sizing: border-box; + } + .bg { + padding-top: 40rpx; + border-radius: 24rpx; + background-color: rgba(250, 229, 206, 1); + margin-top: -95rpx; + .b-container { + position: relative; + z-index: 2; + border: 1px solid #ffffff; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + display: flex; + align-items: center; + .item { + padding: 32rpx 0; + flex: 1; + text-align: center; + .name { + font-size: 26rpx; + color: #fff; + line-height: 1; + } + .num { + margin-top: 24rpx; + font-size: 56rpx; + color: #fff; + line-height: 56rpx; + } + } + .line { + flex-shrink: 0; + height: 108rpx; + border-right: 1rpx dashed #ffffff; + opacity: 0.5; + } + } + .b-container-none { + position: relative; + z-index: 1; + width: 686rpx; + height: 172rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 28rpx; + color: #fff; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 1px solid #ffffff; + } + } + } + .stat { + position: relative; + margin-top: 24rpx; + padding: 96rpx 0 32rpx; + border-radius: 16rpx; + .title { + position: absolute; + top: 0; + left: 0; + padding: 16rpx 30rpx; + font-size: 28rpx; + color: #fff; + font-weight: bold; + } + .more { + position: absolute; + top: 0; + right: 0; + padding: 14rpx 20rpx; + font-size: 28rpx; + color: rgba(153, 153, 153, 1); + } + .s-container { + display: flex; + .item { + position: relative; + flex: 1; + text-align: center; + .name { + font-size: 28rpx; + color: rgba(128, 128, 128, 1); + line-height: 1; + } + .num { + margin-top: 24rpx; + font-size: 48rpx; + color: rgba(20, 21, 21, 1); + line-height: 56rpx; + } + .item-toast { + position: absolute; + left: -80rpx; + top: -20rpx; + transform: translate(0, -100%); + padding: 28rpx 0; + border-radius: 16rpx; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + display: flex; + align-items: center; + white-space: nowrap; + font-size: 28rpx; + color: #fff; + .i-row { + padding: 0 56rpx; + } + .i-line { + width: 2rpx; + height: 32rpx; + background-color: rgba(255, 255, 255, 0.29); + } + .i-clsoe { + position: absolute; + top: -10rpx; + right: -10rpx; + width: 32rpx; + height: 32rpx; + } + &::after { + position: absolute; + left: 134rpx; + bottom: -10rpx; + content: ""; + width: 0; + height: 0; + border-style: solid; + border-width: 18rpx 18rpx 0 18rpx; + border-color: #4abfc0 transparent transparent transparent; + } + } + } + .line { + flex-shrink: 0; + height: 108rpx; + border-right: 1rpx dashed rgba(224, 224, 224, 0.5); + } + } + } + .stat-none { + position: relative; + margin-top: 24rpx; + padding: 96rpx 0 32rpx; + border-radius: 16rpx; + .title { + position: absolute; + top: 0; + left: 0; + padding: 16rpx 30rpx; + font-size: 28rpx; + color: #fff; + font-weight: bold; + } + .s-container { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 38rpx 0; + .none { + width: 102rpx; + height: 102rpx; + } + .tip { + padding: 0 26rpx; + flex: 1; + font-size: 28rpx; + color: rgba(128, 128, 128, 1); + } + .btn { + width: 184rpx; + height: 72rpx; + text-align: center; + line-height: 72rpx; + font-size: 30rpx; + color: rgba(255, 255, 255, 1); + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 44rpx 44rpx 44rpx 44rpx; + } + } + } + .cooperate, + .invite { + margin-top: 24rpx; + background: linear-gradient(180deg, #f1feff 0%, #ffffff 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + &-header { + padding: 32rpx 20rpx; + display: flex; + align-items: center; + justify-content: space-between; + .name { + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .fold { + font-size: 28rpx; + color: rgba(153, 153, 153, 1); + display: flex; + align-items: center; + gap: 12rpx; + .icon { + width: 28rpx; + height: 28rpx; + } + } + } + .doctor-list { + padding: 0 20rpx 32rpx; + transition: 0.3s max-height; + max-height: var(--fold-height); + &-fold { + padding: 0; + max-height: 0; + overflow: hidden; + } + .doctor { + position: relative; + margin-bottom: 20rpx; + padding: 32rpx; + display: flex; + gap: 24rpx; + background: linear-gradient(180deg, #e5f5f7 0%, #ffffff 50%); + box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.1); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + &:last-of-type { + margin-bottom: 0; + } + .invite-doctor { + position: absolute; + top: 0; + right: 0; + padding: 2rpx 16rpx; + font-size: 22rpx; + color: #00b4c5; + line-height: 28rpx; + border-radius: 0 16rpx 0 16rpx; + background-color: #d7edee; + } + .avatar { + flex-shrink: 0; + position: relative; + width: 112rpx; + height: 112rpx; + } + .assign { + position: absolute; + top: 0; + right: 0; + padding: 2rpx 16rpx; + line-height: 28rpx; + font-size: 22rpx; + color: rgba(0, 180, 197, 1); + background-color: rgba(215, 237, 238, 1); + border-radius: 0 16rpx 0 16rpx; + } + .wrap { + padding-top: 8rpx; + .w-header { + display: flex; + align-items: baseline; + flex-wrap: wrap; + gap: 16rpx; + line-height: 1; + .name { + font-size: 36rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .label { + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + } + .line { + 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: 16rpx; + 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: 1px solid rgba(191, 239, 244, 1); + border-radius: 4rpx; + } + } + } + } + } + } + .cooperate-none, + .invite-none { + margin-top: 24rpx; + background: linear-gradient(180deg, #f1feff 0%, #ffffff 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + &-header { + padding: 32rpx 20rpx; + display: flex; + align-items: center; + justify-content: space-between; + .name { + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + } + } + .none { + padding-bottom: 54rpx; + text-align: center; + .none-img { + width: 240rpx; + height: 200rpx; + } + .none-img1 { + width: 230rpx; + height: 184rpx; + } + .content { + margin-top: -70rpx; + text-align: center; + font-size: 32rpx; + color: rgba(153, 153, 153, 1); + line-height: 44rpx; + .sub-content { + font-size: 28rpx; + } + } + } + } +} diff --git a/src/echart/components/doctorLevel2/index.ts b/src/echart/components/doctorLevel2/index.ts new file mode 100644 index 0000000..73181a6 --- /dev/null +++ b/src/echart/components/doctorLevel2/index.ts @@ -0,0 +1,81 @@ +const app = getApp(); + +// pages/story/a.ts +Component({ + /** + * 组件的属性列表 + */ + properties: { + userInfo: Object, + DoctorTitleType: Object, + hospitalClassification: Object, + hospitalLevel: Object, + did: String, + }, + + /** + * 组件的初始数据 + */ + data: { + take: {}, + case: {} as any, + cooperateList: [], + inviteList: [], + newCaseShow: false, + }, + + lifetimes: { + attached() { + this.getTake(); + this.getCase(); + }, + }, + /** + * 组件的方法列表 + */ + methods: { + getTake() { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/todo", + data: { + DoctorId: this.data.did, + }, + }).then((res) => { + this.setData({ + take: res, + }); + }); + }, + getCase() { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/case", + data: { + DoctorId: this.data.did, + }, + }).then((res) => { + this.setData({ + case: res, + }); + }); + }, + handleQuestion(e) { + const { index } = e.currentTarget.dataset; + this.triggerEvent("question", index); + }, + + handleNewCase() { + this.setData({ + newCaseShow: true, + }); + }, + handleNewCaseClose() { + this.setData({ + newCaseShow: false, + }); + }, + }, +}); + +export {}; diff --git a/src/echart/components/doctorLevel2/index.wxml b/src/echart/components/doctorLevel2/index.wxml new file mode 100644 index 0000000..2d858ac --- /dev/null +++ b/src/echart/components/doctorLevel2/index.wxml @@ -0,0 +1,124 @@ + + + + + + {{userInfo.Name}} + + {{userInfo.OtherTitle}} + {{DoctorTitleType[userInfo.TitleType]}} + + + {{item.DepartmentName}} + + + + + {{userInfo.HospitalName}} + {{userInfo.HospitalClassificationName}}{{userInfo.HospitalLevelName}} + + {{userInfo.CityName}}{{userInfo.CountyName?'/':''}}{{userInfo.CountyName}} + + + + + {{item.SpecialtyName}} + + + + + + 我管理的病历 + + + 全部 + {{case.totalCaseCount}} + + + + + 新病历 + + + {{case.newCaseCount}} + + + 本人提交:{{case.newOneCaseCount}} + + 他人提交:{{case.newTwoCaseCount}} + + + + + + 讨论中 + + + {{case.feedbackCaseCount}} + + + + + 已归档 + + + {{case.archiveCaseCount}} + + + + + 我管理病历 + + + 还没有提交病历 + + + diff --git a/src/echart/components/doctorLevel3/index.json b/src/echart/components/doctorLevel3/index.json new file mode 100644 index 0000000..fe436a8 --- /dev/null +++ b/src/echart/components/doctorLevel3/index.json @@ -0,0 +1,7 @@ +{ + "component": true, + "usingComponents": { + "doctorAvatar": "/components/doctorAvatar/index", + "van-icon": "@vant/weapp/icon/index" + } +} diff --git a/src/echart/components/doctorLevel3/index.scss b/src/echart/components/doctorLevel3/index.scss new file mode 100644 index 0000000..e391a99 --- /dev/null +++ b/src/echart/components/doctorLevel3/index.scss @@ -0,0 +1,250 @@ +.page { + padding: 36rpx 32rpx 200rpx; + .user { + margin-top: 40rpx; + position: relative; + padding: 94rpx 32rpx 32rpx; + background: linear-gradient(180deg, #f1feff 0%, #ffffff 35%, #ffffff 100%); + box-shadow: 0rpx 8rpx 24rpx 0rpx rgba(0, 66, 73, 0.09); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + .avatar { + position: absolute; + top: -38rpx; + left: 32rpx; + width: 112rpx; + height: 112rpx; + } + .code { + position: absolute; + top: 38rpx; + right: 34rpx; + width: 60rpx; + height: 60rpx; + } + .wrap { + .w-header { + display: flex; + flex-wrap: wrap; + align-items: baseline; + gap: 16rpx; + .name { + font-size: 36rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .desc { + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + .line { + margin: 0 12rpx; + display: inline-block; + height: 24rpx; + width: 1rpx; + background-color: rgba(205, 205, 205, 1); + } + } + } + .w-container { + margin-top: 24rpx; + .hostipal { + margin-right: 12rpx; + display: inline; + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + } + .tag { + margin-right: 12rpx; + display: inline-block; + padding: 0 8rpx; + border-radius: 4rpx; + background-color: rgba(0, 180, 197, 1); + font-size: 24rpx; + color: #fff; + } + .site { + display: inline-block; + padding: 0 8rpx; + font-size: 24rpx; + line-height: 32rpx; + color: rgba(148, 87, 30, 1); + border-radius: 4rpx; + background-color: rgba(250, 229, 206, 1); + } + } + .w-footer { + margin-top: 16rpx; + 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: 1px solid rgba(191, 239, 244, 1); + border-radius: 4rpx; + } + } + } + } + .banner { + margin-top: 32rpx; + .title { + position: relative; + z-index: 1; + padding: 22rpx 30rpx 18rpx; + width: 262rpx; + height: 116rpx; + font-size: 28rpx; + font-weight: bold; + color: rgba(0, 180, 197, 1); + line-height: 1; + box-sizing: border-box; + } + .bg { + padding-top: 40rpx; + border-radius: 24rpx; + background-color: rgba(250, 229, 206, 1); + margin-top: -95rpx; + .b-container { + position: relative; + z-index: 2; + border: 1px solid #ffffff; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + display: flex; + align-items: center; + .item { + padding: 32rpx 0; + flex: 1; + text-align: center; + .name { + font-size: 26rpx; + color: #fff; + line-height: 1; + } + .num { + margin-top: 24rpx; + font-size: 56rpx; + color: #fff; + line-height: 56rpx; + } + } + .line { + flex-shrink: 0; + height: 108rpx; + border-right: 1rpx dashed #ffffff; + opacity: 0.5; + } + } + .b-container-none { + position: relative; + z-index: 1; + width: 686rpx; + height: 172rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 28rpx; + color: #fff; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 1px solid #ffffff; + } + } + } + .stat { + position: relative; + margin-top: 24rpx; + padding: 96rpx 0 32rpx; + border-radius: 16rpx; + .title { + position: absolute; + top: 0; + left: 0; + padding: 16rpx 24rpx; + font-size: 28rpx; + font-weight: bold; + color: #fff; + } + .more { + position: absolute; + top: 0; + right: 0; + padding: 14rpx 20rpx; + font-size: 28rpx; + color: rgba(153, 153, 153, 1); + } + .s-container { + display: flex; + .item { + flex: 1; + text-align: center; + .name { + font-size: 28rpx; + color: rgba(128, 128, 128, 1); + line-height: 1; + } + .num { + margin-top: 24rpx; + font-size: 48rpx; + color: rgba(20, 21, 21, 1); + line-height: 56rpx; + } + } + .line { + flex-shrink: 0; + height: 108rpx; + border-right: 1rpx dashed rgba(224, 224, 224, 0.5); + } + } + } + .stat-none { + position: relative; + margin-top: 24rpx; + padding: 96rpx 0 32rpx; + border-radius: 16rpx; + .title { + position: absolute; + top: 0; + left: 0; + padding: 16rpx 30rpx; + font-size: 28rpx; + color: #fff; + font-weight: bold; + } + .s-container { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0 38rpx 0; + .none { + width: 102rpx; + height: 102rpx; + } + .tip { + padding: 0 26rpx; + flex: 1; + font-size: 28rpx; + color: rgba(128, 128, 128, 1); + } + .btn { + width: 184rpx; + height: 72rpx; + text-align: center; + line-height: 72rpx; + font-size: 30rpx; + color: rgba(255, 255, 255, 1); + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 44rpx 44rpx 44rpx 44rpx; + } + } + } +} diff --git a/src/echart/components/doctorLevel3/index.ts b/src/echart/components/doctorLevel3/index.ts new file mode 100644 index 0000000..f083630 --- /dev/null +++ b/src/echart/components/doctorLevel3/index.ts @@ -0,0 +1,82 @@ +const app = getApp(); + +// pages/story/a.ts +Component({ + /** + * 组件的属性列表 + */ + properties: { + userInfo: Object, + DoctorTitleType: Object, + hospitalClassification: Object, + hospitalLevel: Object, + did: String, + }, + + /** + * 组件的初始数据 + */ + data: { + take: {}, + case: {} as any, + doctorCount: {}, + }, + + lifetimes: { + attached() { + this.getTake(); + this.getCase(); + this.getManageDoctor(); + }, + }, + /** + * 组件的方法列表 + */ + methods: { + getTake() { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/todo", + data: { + DoctorId: this.data.did, + }, + }).then((res) => { + this.setData({ + take: res, + }); + }); + }, + getCase() { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/case", + data: { + DoctorId: this.data.did, + }, + }).then((res) => { + this.setData({ + case: res, + }); + }); + }, + getManageDoctor() { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/manage-doctor-count", + data: { + DoctorId: this.data.did, + }, + }).then((res) => { + this.setData({ + doctorCount: res.count, + }); + }); + }, + handleQuestion(e) { + const { index } = e.currentTarget.dataset; + this.triggerEvent("question", index); + }, + }, +}); + +export {}; diff --git a/src/echart/components/doctorLevel3/index.wxml b/src/echart/components/doctorLevel3/index.wxml new file mode 100644 index 0000000..7c40bc0 --- /dev/null +++ b/src/echart/components/doctorLevel3/index.wxml @@ -0,0 +1,142 @@ + + + + + + {{userInfo.Name}} + + {{userInfo.OtherTitle}} + {{DoctorTitleType[userInfo.TitleType]}} + + + {{item.DepartmentName}} + + + + + {{userInfo.HospitalName}} + {{userInfo.HospitalClassificationName}}{{userInfo.HospitalLevelName}} + + {{userInfo.CityName}}{{userInfo.CountyName?'/':''}}{{userInfo.CountyName}} + + + + + {{item.SpecialtyName}} + + + + + + 我管理的病历 + + + 全部 + {{case.totalCaseCount}} + + + + + 新病历 + + + {{case.newCaseCount}} + + + + 讨论中 + + + {{case.feedbackCaseCount}} + + + + 已归档 + + + {{case.archiveCaseCount}} + + + + + 我管理的病历 + + + 还没有提交病历 + + + + + 我管理的医生 + + + 全部 + {{doctorCount.TotalCount}} + + + + 二级医生 + {{doctorCount.TwoCount}} + + + 一级医生 + {{doctorCount.OneCount}} + + + + + 我管理的医生 + + + 还没有邀约的医生 + + + diff --git a/src/echart/components/doctorLevel4/index.json b/src/echart/components/doctorLevel4/index.json new file mode 100644 index 0000000..0e0d833 --- /dev/null +++ b/src/echart/components/doctorLevel4/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "doctorAvatar": "/components/doctorAvatar/index", + "van-icon": "@vant/weapp/icon/index", + "ec-canvas": "../ec-canvas/ec-canvas" + } +} diff --git a/src/echart/components/doctorLevel4/index.scss b/src/echart/components/doctorLevel4/index.scss new file mode 100644 index 0000000..599ddf1 --- /dev/null +++ b/src/echart/components/doctorLevel4/index.scss @@ -0,0 +1,489 @@ +.page { + padding: 36rpx 32rpx 100rpx; + .user { + margin-top: 40rpx; + position: relative; + padding: 94rpx 32rpx 32rpx; + background: linear-gradient(180deg, #f1feff 0%, #ffffff 35%, #ffffff 100%); + box-shadow: 0rpx 8rpx 24rpx 0rpx rgba(0, 66, 73, 0.09); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + .avatar { + position: absolute; + top: -38rpx; + left: 32rpx; + width: 112rpx; + height: 112rpx; + } + .code { + position: absolute; + top: 38rpx; + right: 34rpx; + width: 60rpx; + height: 60rpx; + } + .wrap { + .w-header { + display: flex; + align-items: baseline; + gap: 16rpx; + .name { + font-size: 36rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .desc { + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + .line { + margin: 0 12rpx; + display: inline-block; + height: 24rpx; + width: 1rpx; + background-color: rgba(205, 205, 205, 1); + } + } + } + .w-container { + margin-top: 24rpx; + .hostipal { + margin-right: 12rpx; + display: inline; + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + } + .tag { + margin-right: 12rpx; + display: inline-block; + padding: 0 8rpx; + border-radius: 4rpx; + background-color: rgba(0, 180, 197, 1); + font-size: 24rpx; + color: #fff; + } + .site { + display: inline-block; + padding: 0 8rpx; + font-size: 24rpx; + line-height: 32rpx; + color: rgba(148, 87, 30, 1); + border-radius: 4rpx; + background-color: rgba(250, 229, 206, 1); + } + } + .w-footer { + margin-top: 16rpx; + 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: 1px solid rgba(191, 239, 244, 1); + border-radius: 4rpx; + } + } + } + } + .banner { + margin-top: 32rpx; + .title { + position: relative; + z-index: 1; + padding: 22rpx 30rpx 18rpx; + width: 262rpx; + height: 116rpx; + font-size: 28rpx; + font-weight: bold; + color: rgba(0, 180, 197, 1); + line-height: 1; + box-sizing: border-box; + } + .bg { + padding-top: 40rpx; + border-radius: 24rpx; + background-color: rgba(250, 229, 206, 1); + margin-top: -95rpx; + .b-container { + position: relative; + z-index: 2; + border: 1px solid #ffffff; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + display: flex; + align-items: center; + .item { + padding: 32rpx 0; + flex: 1; + text-align: center; + .name { + font-size: 26rpx; + color: #fff; + line-height: 1; + } + .num { + margin-top: 24rpx; + font-size: 56rpx; + color: #fff; + line-height: 56rpx; + } + } + .line { + flex-shrink: 0; + height: 108rpx; + border-right: 1rpx dashed #ffffff; + opacity: 0.5; + } + } + .b-container-none { + position: relative; + z-index: 1; + width: 686rpx; + height: 172rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 28rpx; + color: #fff; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 1px solid #ffffff; + } + } + } + .stat { + position: relative; + margin-top: 24rpx; + padding: 96rpx 0 32rpx; + border-radius: 16rpx; + .title { + position: absolute; + top: 0; + left: 0; + padding: 16rpx 30rpx; + font-size: 26rpx; + color: #fff; + font-weight: bold; + } + .picker { + position: absolute; + top: 8rpx; + left: 296rpx; + .picker-content { + padding: 8rpx 24rpx; + display: flex; + gap: 18rpx; + font-size: 28rpx; + line-height: 40rpx; + color: rgba(133, 133, 133, 1); + background: #ffffff; + border-radius: 98rpx 98rpx 98rpx 98rpx; + border: 1px solid #f6f6f6; + } + } + .more { + position: absolute; + top: 0; + right: 0; + padding: 14rpx 20rpx; + font-size: 28rpx; + color: rgba(153, 153, 153, 1); + } + .s-container { + display: flex; + .item { + position: relative; + flex: 1; + text-align: center; + .name { + font-size: 28rpx; + color: rgba(128, 128, 128, 1); + line-height: 1; + } + .num { + margin-top: 24rpx; + font-size: 48rpx; + color: rgba(20, 21, 21, 1); + line-height: 56rpx; + } + .item-toast { + position: absolute; + left: -80rpx; + top: -20rpx; + transform: translate(0, -100%); + padding: 28rpx 0; + border-radius: 16rpx; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + display: flex; + align-items: center; + white-space: nowrap; + font-size: 28rpx; + color: #fff; + .i-row { + padding: 0 56rpx; + } + .i-line { + width: 2rpx; + height: 32rpx; + background-color: rgba(255, 255, 255, 0.29); + } + .i-clsoe { + position: absolute; + top: -10rpx; + right: -10rpx; + width: 32rpx; + height: 32rpx; + } + &::after { + position: absolute; + left: 134rpx; + bottom: -10rpx; + content: ""; + width: 0; + height: 0; + border-style: solid; + border-width: 18rpx 18rpx 0 18rpx; + border-color: #4abfc0 transparent transparent transparent; + } + } + } + .line { + flex-shrink: 0; + height: 108rpx; + border-right: 1rpx dashed rgba(224, 224, 224, 0.5); + } + } + .s-container-none { + padding: 4rpx 0; + display: flex; + align-items: center; + justify-content: center; + gap: 26rpx; + .none { + width: 102rpx; + height: 102rpx; + } + .tip { + font-size: 28rpx; + color: rgba(128, 128, 128, 1); + } + } + } + .department { + margin-top: 24rpx; + padding: 0 20rpx; + background: linear-gradient(180deg, #f1feff 0%, #ffffff 35%, #ffffff 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + .d-header { + padding: 32rpx 0; + display: flex; + align-items: center; + justify-content: space-between; + .name { + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .more { + font-size: 28rpx; + color: rgba(153, 153, 153, 1); + } + } + .d-container { + padding: 32rpx 0; + background: linear-gradient(180deg, #f3fbfd 0%, #ffffff 50%); + box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(0, 0, 0, 0.08); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + display: flex; + justify-content: space-between; + .item { + flex: 1; + text-align: center; + .name { + font-size: 28rpx; + color: rgba(128, 128, 128, 1); + line-height: 1; + } + .num { + margin-top: 24rpx; + font-size: 48rpx; + color: rgba(20, 21, 21, 1); + line-height: 56rpx; + } + } + } + .tip { + padding: 20rpx 0; + font-size: 22rpx; + color: rgba(153, 153, 153, 1); + text-align: right; + } + } + .department-none { + margin-top: 24rpx; + padding: 0 20rpx; + background: linear-gradient(180deg, #f1feff 0%, #ffffff 35%, #ffffff 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + .d-header { + padding: 32rpx 0; + display: flex; + align-items: center; + justify-content: space-between; + .name { + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + } + } + .d-container { + padding: 24rpx; + text-align: center; + .none-img { + width: 240rpx; + height: 200rpx; + } + .none-title { + margin-top: -80rpx; + font-size: 28rpx; + color: rgba(153, 153, 153, 1); + line-height: 44rpx; + } + } + } + .chart-card { + margin-top: 24rpx; + background: linear-gradient(180deg, #f1feff 0%, #ffffff 35%, #ffffff 100%); + border-radius: 16rpx 16rpx 16rpx 16rpx; + border: 2rpx solid #ffffff; + .c-header { + padding: 32rpx 20rpx; + display: flex; + align-items: center; + justify-content: space-between; + .name { + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .picker { + .picker-content { + padding: 8rpx 24rpx; + display: flex; + gap: 18rpx; + font-size: 28rpx; + color: rgba(133, 133, 133, 1); + background: #ffffff; + border-radius: 98rpx 98rpx 98rpx 98rpx; + border: 1px solid #f6f6f6; + } + } + } + .chart { + height: 450rpx; + } + .tip { + padding: 24rpx 20rpx 32rpx; + font-size: 22rpx; + color: rgba(153, 153, 153, 1); + text-align: right; + } + .chart-none { + padding: 24rpx; + text-align: center; + .none-img { + width: 240rpx; + height: 200rpx; + } + .none-title { + margin-top: -80rpx; + font-size: 28rpx; + color: rgba(153, 153, 153, 1); + line-height: 44rpx; + } + } + } + .rank { + margin: 24rpx -32rpx 0; + padding: 0 32rpx 100rpx; + background: linear-gradient(180deg, #f1feff 0%, #ffffff 14%, #ffffff 100%); + border-radius: 32rpx 32rpx 0 0; + border: 2rpx solid #ffffff; + .r-header { + padding: 32rpx 0; + display: flex; + align-items: center; + justify-content: space-between; + .title { + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .more { + font-size: 28rpx; + color: rgba(153, 153, 153, 1); + } + } + .table { + .thead { + padding: 22rpx 0; + display: flex; + font-size: 28rpx; + color: rgba(0, 180, 197, 1); + background-color: rgba(233, 246, 247, 1); + text-align: center; + border-radius: 8rpx; + .th1 { + width: 338rpx; + } + .th2, + .th3, + .th4, + .th5 { + width: 96rpx; + white-space: nowrap; + } + } + .tbody { + border-bottom: 1rpx solid rgba(224, 224, 224, 0.5); + .tr { + display: flex; + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + text-align: center; + padding: 18rpx 0; + line-height: 32rpx; + border-radius: 8rpx; + &:nth-child(even) { + background-color: rgba(248, 248, 248, 1); + } + .td1 { + padding: 12rpx 10rpx; + width: 338rpx; + text-align-last: left; + } + .td2, + .td3, + .td4, + .td5 { + padding: 12rpx 0; + width: 96rpx; + border-left: 1px dashed rgba(224, 224, 224, 1); + } + .td2 { + color: rgba(0, 180, 197, 1); + } + } + } + } + } +} diff --git a/src/echart/components/doctorLevel4/index.ts b/src/echart/components/doctorLevel4/index.ts new file mode 100644 index 0000000..0581c3a --- /dev/null +++ b/src/echart/components/doctorLevel4/index.ts @@ -0,0 +1,115 @@ +import dayjs from "dayjs"; +const app = getApp(); + +const echarts = require("../ec-canvas/echarts.js"); + +// pages/story/a.ts +Component({ + /** + * 组件的属性列表 + */ + properties: { + userInfo: Object, + DoctorTitleType: Object, + hospitalClassification: Object, + hospitalLevel: Object, + did: String, + }, + + /** + * 组件的初始数据 + */ + data: { + take: {}, + case: {} as any, + doctorCount: {}, + + DepartmentId: "", + DepartmentName: "", + + newCaseShow: false, + }, + + lifetimes: { + attached() { + const { DepartmentId, DepartmentName } = this.data.userInfo.Department[0]; + this.setData({ + Department: this.data.userInfo.Department, + DepartmentId, + DepartmentName, + }); + this.getTake(); + this.getCase(); + this.getManageDoctor(); + }, + }, + /** + * 组件的方法列表 + */ + methods: { + getTake() { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/todo", + data: { + DoctorId: this.data.did, + }, + }).then((res) => { + this.setData({ + take: res, + }); + }); + }, + handleChangeDept(e) { + const index = e.detail.value; + const { DepartmentId, DepartmentName } = this.data.userInfo.Department[index]; + this.setData({ + DepartmentId, + DepartmentName, + }); + this.getCase(); + this.getManageDoctor(); + }, + getCase() { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/case", + data: { + DepartmentId: this.data.DepartmentId, + DoctorId: this.data.did, + }, + }).then((res) => { + this.setData({ + case: res, + }); + }); + }, + getManageDoctor() { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/manage-doctor-count", + data: { DepartmentId: this.data.DepartmentId, DoctorId: this.data.did }, + }).then((res) => { + this.setData({ + doctorCount: res.count, + }); + }); + }, + handleQuestion(e) { + const { index } = e.currentTarget.dataset; + this.triggerEvent("question", index); + }, + handleNewCase() { + this.setData({ + newCaseShow: true, + }); + }, + handleNewCaseClose() { + this.setData({ + newCaseShow: false, + }); + }, + }, +}); + +export {}; diff --git a/src/echart/components/doctorLevel4/index.wxml b/src/echart/components/doctorLevel4/index.wxml new file mode 100644 index 0000000..c9d3f53 --- /dev/null +++ b/src/echart/components/doctorLevel4/index.wxml @@ -0,0 +1,140 @@ + + + + + + {{userInfo.Name}} + + {{userInfo.OtherTitle}} + {{DoctorTitleType[userInfo.TitleType]}} + + + {{item.DepartmentName}} + + + + + {{userInfo.HospitalName}} + {{userInfo.HospitalClassificationName}}{{userInfo.HospitalLevelName}} + + {{userInfo.CityName}}{{userInfo.CountyName?'/':''}}{{userInfo.CountyName}} + + + + + {{item.SpecialtyName}} + + + + + + 本科室全部病历 + + + {{DepartmentName}} + + + + + + 全部 + {{case.totalCaseCount}} + + + + + 新病历 + + + {{case.newCaseCount}} + + + 本科室:{{case.newOneCaseCount}} + + 无科室:{{case.newTwoCaseCount}} + + + + + 讨论中 + + + {{case.feedbackCaseCount}} + + + + 已归档 + + + {{case.archiveCaseCount}} + + + + + 暂时还没有医生提交病历哦~ + + + + + 本科室医生 + + + + 医生总数 + {{doctorCount.TotalCount}} + + + 质控医生 + {{doctorCount.ThreeCount}} + + + 核心医生 + {{doctorCount.TwoCount}} + + + 一级医生 + {{doctorCount.OneCount}} + + + 注:一级医生为平台全部医生,不区分科室 + + + + 本科室医生 + + + + 暂无数据 + + + diff --git a/src/images/icon-clsoe-green.png b/src/images/icon-clsoe-green.png new file mode 100644 index 0000000..3ab0111 Binary files /dev/null and b/src/images/icon-clsoe-green.png differ diff --git a/src/images/invite-title.png b/src/images/invite-title.png index 0377663..bcbd2a4 100644 Binary files a/src/images/invite-title.png and b/src/images/invite-title.png differ diff --git a/src/module1/pages/casesFeedback/index.scss b/src/module1/pages/casesFeedback/index.scss index c00951a..9bae9ec 100644 --- a/src/module1/pages/casesFeedback/index.scss +++ b/src/module1/pages/casesFeedback/index.scss @@ -121,27 +121,31 @@ page { .audio-list { margin-top: 32rpx; .row { + position: relative; margin-bottom: 24rpx; display: flex; gap: 28rpx; align-items: center; .audio-bar { flex: 1; - border-radius: 104rpx; + border-radius: 16rpx; background-color: rgba(246, 246, 246, 1); } + .del { + position: absolute; + top: -16rpx; + right: 100rpx; + width: 32rpx; + height: 32rpx; + } .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); + color: #01b4c5; } } } diff --git a/src/module1/pages/casesFeedback/index.wxml b/src/module1/pages/casesFeedback/index.wxml index 92dd655..8cd09af 100644 --- a/src/module1/pages/casesFeedback/index.wxml +++ b/src/module1/pages/casesFeedback/index.wxml @@ -16,13 +16,13 @@ + - 转文字 diff --git a/src/module1/pages/chatRoom/index.wxml b/src/module1/pages/chatRoom/index.wxml index db5ca7a..23f1d41 100644 --- a/src/module1/pages/chatRoom/index.wxml +++ b/src/module1/pages/chatRoom/index.wxml @@ -61,7 +61,7 @@ mode="aspectFit" > - {{message.content.duration}}'' + {{message.content.duration}}″ @@ -91,7 +91,7 @@ {{message.content}} - {{message.content.duration}}'' + {{message.content.duration}}″ {{sendMessage}} - 按住说话 + 按住说话 (); +export {}; + +Page({ + data: { + level: 0, + + hide: true, + + show1: false, + bindDoctorName: "", + + id: "", + userInfo: {}, + DoctorTitleType: {}, + + hospitalClassification: {}, + hospitalLevel: {}, + }, + onLoad(options) { + app.waitLogin().then(() => { + this.getDoctorDict(); + this.getHostipalDict(); + this.getDoctorDetail(options.id, (res) => { + this.setData({ + id: options.id, + level: res.IsSuper === 1 ? 4 : res.DoctorLevel, + userInfo: res, + }); + }); + }); + }, + onShow() { + this.setData({ + hide: false, + }); + }, + onHide() { + this.setData({ + hide: true, + }); + }, + getDoctorDetail(id, callback) { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/detail", + data: { + DoctorId: id, + }, + }).then((res) => { + callback(res); + }); + }, + getDoctorDict() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/doctor-dict", + data: {}, + }).then((res) => { + this.setData({ + DoctorTitleType: res.DoctorTitleType, + }); + }); + }, + getHostipalDict() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/hospital-dict", + data: {}, + }).then((res) => { + this.setData({ + hospitalClassification: res.hospitalClassification, + hospitalLevel: res.hospitalLevel, + }); + }); + }, + + handleQuestion(e) { + const index = e.detail; + const tip = { + 1: "无任何医生反馈、以及操作的病历", + 2: "有医生反馈且未归档的病历", + 3: "设为归档的病历,病历参与者不可反馈,仅可访问", + 4: "科室医生入驻情况:按月统计所在科室注册平台的医生数,并以堆叠图显示一级医生、二级医生、三级医生数;其中,一级医生为全平台的一级医生,不区分科室", + 5: "累计病历统计:按月统计所在科室累计提交的病历数,并以堆叠图显示一级医生、核心医生提交病历数", + 6: "科室新增病历统计:按月统计所在科室新提交的病历 数,并以堆叠图显示一级医生、核心医生提交的病历数", + 7: "医院活跃排行榜:按医院入驻医生数进行活跃排序,入驻医生数越多则活跃度越高,排序则越靠前", + }[index]; + wx.showModal({ + content: tip, + confirmColor: "#00B4C5", + cancelColor: "#141515", + showCancel: false, + }); + }, +}); diff --git a/src/module1/pages/doctorHome/index.wxml b/src/module1/pages/doctorHome/index.wxml new file mode 100644 index 0000000..3886fb6 --- /dev/null +++ b/src/module1/pages/doctorHome/index.wxml @@ -0,0 +1,38 @@ + + + + + + diff --git a/src/module1/pages/entryCases/index.scss b/src/module1/pages/entryCases/index.scss index 199fc19..590d374 100644 --- a/src/module1/pages/entryCases/index.scss +++ b/src/module1/pages/entryCases/index.scss @@ -121,27 +121,31 @@ page { .audio-list { margin-top: 32rpx; .row { + position: relative; margin-bottom: 24rpx; display: flex; gap: 28rpx; align-items: center; .audio-bar { flex: 1; - border-radius: 104rpx; + border-radius: 16rpx; background-color: rgba(246, 246, 246, 1); } + .del { + position: absolute; + top: -16rpx; + right: 100rpx; + width: 32rpx; + height: 32rpx; + } .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); + color: #01B4C5; } } } diff --git a/src/module1/pages/entryCases/index.wxml b/src/module1/pages/entryCases/index.wxml index 50ed95d..a87f924 100644 --- a/src/module1/pages/entryCases/index.wxml +++ b/src/module1/pages/entryCases/index.wxml @@ -42,13 +42,13 @@ + - 转文字 diff --git a/src/module1/pages/login/index.scss b/src/module1/pages/login/index.scss index cfc41b4..6480bd2 100644 --- a/src/module1/pages/login/index.scss +++ b/src/module1/pages/login/index.scss @@ -20,6 +20,7 @@ .tel { .input { padding: 24rpx 32rpx; + display: block; font-size: 32rpx; color: #000; line-height: 44rpx; @@ -36,6 +37,7 @@ align-items: center; gap: 30rpx; .input { + display: block; padding: 24rpx 32rpx; font-size: 32rpx; color: #000; diff --git a/src/module1/pages/org3/index.ts b/src/module1/pages/org3/index.ts index ce674e0..3f89da4 100644 --- a/src/module1/pages/org3/index.ts +++ b/src/module1/pages/org3/index.ts @@ -113,6 +113,12 @@ Page({ return item; }); }, + handleDoctrDetail(e) { + const { id } = e.currentTarget.dataset; + wx.navigateTo({ + url: `/module1/pages/doctorHome/index?id=${id}`, + }); + }, }); export {}; diff --git a/src/module1/pages/org3/index.wxml b/src/module1/pages/org3/index.wxml index 5592967..b679b4b 100644 --- a/src/module1/pages/org3/index.wxml +++ b/src/module1/pages/org3/index.wxml @@ -34,13 +34,13 @@ - + {{item.ChildCount}}人 @@ -60,7 +60,7 @@ {{dept.DepartmentName}} - + {{item.fold ? '全部展开':'全部收起'}} @@ -86,7 +86,7 @@ - + {{dept.DepartmentName}} - + {{item.fold ? '展开':'收起'}} @@ -149,7 +149,7 @@ - + {{dept.DepartmentName}} - + {{subItem.fold ? '展开':'收起'}} - + - + - + {{dept.DepartmentName}} - + {{item.fold ? '展开':'收起'}} @@ -390,7 +390,7 @@ - + - + - + {{dept.DepartmentName}} - + {{item.fold ? '全部展开':'全部收起'}} @@ -99,7 +99,7 @@ - + {{dept.DepartmentName}} - + {{item.fold ? '展开':'收起'}} @@ -162,7 +162,7 @@ - + {{dept.DepartmentName}} - + {{subItem.fold ? '展开':'收起'}} - + - + - + {{dept.DepartmentName}} - + {{item.fold ? '展开':'收起'}} @@ -403,7 +403,7 @@ - + - +