diff --git a/README.md b/README.md index 01e9615..9daf6e2 100644 --- a/README.md +++ b/README.md @@ -19,5 +19,6 @@ https://pic1.zhimg.com/50/v2-8cfef5f9ea7d15963af2277c6814f152_720w.jpg?source=2c wx.showModal({ title: '确认解绑?', confirmColor: 'rgba(246, 74, 58, 1)', + // confirmColor: 'rgba(29, 107, 255, 1)', }) ``` diff --git a/project.private.config.json b/project.private.config.json index ecc8995..7eb50fb 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -23,13 +23,20 @@ "miniprogram": { "list": [ { - "name": "医生-修改手机号", - "pathName": "doctor/pages/changeTel/index", + "name": "患者-我的复诊记录", + "pathName": "patient/pages/revisitRecord/index", "query": "", "scene": null, "launchMode": "default" }, { + "name": "医生-修改手机号", + "pathName": "doctor/pages/changeTel/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { "name": "医生-账号管理", "pathName": "doctor/pages/userInfo/index", "query": "", diff --git a/src/app.json b/src/app.json index 1345758..d619c92 100644 --- a/src/app.json +++ b/src/app.json @@ -50,7 +50,8 @@ "pages/knowledgeDetailVideo/index", "pages/blood/index", "pages/bloodDetail/index", - "pages/bloodAdd/index" + "pages/bloodAdd/index", + "pages/revisitRecord/index" ] }, { diff --git a/src/app.ts b/src/app.ts index b5e631d..8d6fac5 100644 --- a/src/app.ts +++ b/src/app.ts @@ -100,9 +100,7 @@ App({ return new Promise((resolve) => { const checkLogin = () => { if (this.globalData.loginState) { - if (type === 'any') { - resolve() - } else if (this.checkLoginType(type)) { + if (this.checkLoginType(type)) { resolve() } return @@ -114,19 +112,23 @@ App({ checkLogin() }) }, - checkLoginType(type: 0 | 1 | 2) { + checkLoginType(type: 0 | 1 | 2 | 'any') { const { loginType, isLogin, isReg } = this.globalData.initLoginInfo - if (type === 0) { + if (type === 'any') { return true } if (isLogin !== 1) { + if (type === 0) { + return true + } wx.reLaunch({ url: '/pages/index/index', }) return false } + if (isReg !== 1) { const typePageUrl = { 1: '/patient/pages/entryInfo/index', @@ -146,6 +148,7 @@ App({ wx.reLaunch({ url: typePageUrl, }) + return false } return true diff --git a/src/components/pickerArea/index.ts b/src/components/pickerArea/index.ts index e41ffd4..9aa5bbc 100644 --- a/src/components/pickerArea/index.ts +++ b/src/components/pickerArea/index.ts @@ -14,7 +14,7 @@ Component({ data: { imageUrl: app.globalData.imageUrl, - Timestamp:app.globalData.Timestamp, + Timestamp: app.globalData.Timestamp, show: false, options: [], @@ -60,7 +60,7 @@ Component({ }) }) }, - onFinish(e) { + onFinish(e: any) { this.triggerEvent('change', e.detail.selectedOptions) this.setData({ show: false, diff --git a/src/components/popup/index.scss b/src/components/popup/index.scss index 2e322c7..ae238f0 100644 --- a/src/components/popup/index.scss +++ b/src/components/popup/index.scss @@ -129,12 +129,13 @@ margin-top: 16rpx; line-height: 28rpx; .content { + display: inline; margin-right: 8rpx; - display: inline-block; font-size: 28rpx; color: rgba(161, 164, 172, 1); } .tag { + vertical-align: 2rpx; display: inline-block; font-size: 20rpx; color: rgba(255, 255, 255, 1); @@ -1049,6 +1050,71 @@ } } +.popup17 { + .icon { + position: relative; + z-index: 1; + margin: 0 auto; + display: block; + width: 144rpx; + height: 144rpx; + } + .container { + margin-top: -94rpx; + padding: 108rpx 32rpx 32rpx; + width: 604rpx; + background: linear-gradient(7deg, #ffffff 19%, #ffe8e4 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + box-sizing: border-box; + .title{ + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + text-align: center; + } + .hostipal{ + margin-top: 32rpx; + font-size: 36rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + text-align: center; + } + .address{ + margin-top: 12rpx; + text-align: center; + font-size: 28rpx; + color: rgba(161, 164, 172, 1); + } + .footer { + margin-top: 32rpx; + display: flex; + gap: 26rpx; + .cancel { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + .submit { + flex: 1; + padding: 22rpx; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: #fff; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx; + border: 1px solid #f64a3a; + } + } + } +} + .close { margin: 32rpx auto 0; display: block; diff --git a/src/components/popup/index.wxml b/src/components/popup/index.wxml index 891cca1..1536181 100644 --- a/src/components/popup/index.wxml +++ b/src/components/popup/index.wxml @@ -298,6 +298,18 @@ + + + + 确认为您的检查医院? + {{params.hospitalName}} + {{params.provinceName}}{{params.cityName}}{{params.countyName}}{{params.address}} + + 取消 + 确定 + + + { if (!res.confirm) return const { mobile, code } = this.data diff --git a/src/doctor/pages/login/index.json b/src/doctor/pages/login/index.json index 17c750f..9ad5bf3 100644 --- a/src/doctor/pages/login/index.json +++ b/src/doctor/pages/login/index.json @@ -1,6 +1,7 @@ { "navigationStyle": "custom", "usingComponents": { - "van-divider": "@vant/weapp/divider/index" + "van-divider": "@vant/weapp/divider/index", + "navbar": "/components/navbar/index" } } diff --git a/src/doctor/pages/login/index.scss b/src/doctor/pages/login/index.scss index 0a5a778..85afdfa 100644 --- a/src/doctor/pages/login/index.scss +++ b/src/doctor/pages/login/index.scss @@ -117,6 +117,11 @@ page { margin-top: -8rpx; transform: scale(0.8); } + .wx-checkbox-input.wx-checkbox-input-checked { + background: rgba(28, 107, 255, 1); + border-color: rgba(28, 107, 255, 1); + color: #ffffff; + } } .link { color: rgba(28, 107, 255, 1); diff --git a/src/doctor/pages/login/index.ts b/src/doctor/pages/login/index.ts index a4f11a9..d07e370 100644 --- a/src/doctor/pages/login/index.ts +++ b/src/doctor/pages/login/index.ts @@ -100,7 +100,7 @@ Page({ } }, submitCallback() { - app.getUserInfo(2).then(() => { + app.updateLoginInfo(() => { wx.reLaunch({ url: `/doctor/pages/index/index`, }) @@ -111,6 +111,9 @@ Page({ showTel: !this.data.showTel, }) }, + handleBack() { + wx.navigateBack() + }, }) export {} diff --git a/src/doctor/pages/login/index.wxml b/src/doctor/pages/login/index.wxml index 1f765cc..9144eca 100644 --- a/src/doctor/pages/login/index.wxml +++ b/src/doctor/pages/login/index.wxml @@ -1,3 +1,6 @@ + + + - + 我已阅读并同意 《个人信息及隐私协议政策》 - + 我已阅读并同意 《个人信息共享知情同意书》 diff --git a/src/doctor/pages/my/index.json b/src/doctor/pages/my/index.json index 09f6f75..6209e25 100644 --- a/src/doctor/pages/my/index.json +++ b/src/doctor/pages/my/index.json @@ -2,6 +2,6 @@ "navigationStyle": "custom", "usingComponents": { "popup": "/components/popup/index", - "patient-tab-bar":"/patient/components/patient-tab-bar/index" + "doctor-tab-bar": "/doctor/components/doctor-tab-bar/index" } } diff --git a/src/doctor/pages/my/index.scss b/src/doctor/pages/my/index.scss index 5ba463c..d1ed190 100644 --- a/src/doctor/pages/my/index.scss +++ b/src/doctor/pages/my/index.scss @@ -46,6 +46,7 @@ page { font-size: 28rpx; color: rgba(161, 164, 172, 1); .tag { + margin-left: 10rpx; display: inline-block; padding: 0 8rpx; font-size: 24rpx; diff --git a/src/doctor/pages/my/index.ts b/src/doctor/pages/my/index.ts index 2c2c281..b0a04f5 100644 --- a/src/doctor/pages/my/index.ts +++ b/src/doctor/pages/my/index.ts @@ -34,7 +34,7 @@ Page({ const avatarUrl = data.data.Url wx.ajax({ method: 'POST', - url: '?r=wtx/user/update-avatar', + url: '?r=wtx/doctor/account/update-avatar', data: { Avatar: avatarUrl, }, @@ -46,7 +46,7 @@ Page({ icon: 'none', }) this.setData({ - 'userInfo.Avatar': avatarUrl, + 'userInfo.doctorAvatar': avatarUrl, }) }) .catch(() => { diff --git a/src/doctor/pages/my/index.wxml b/src/doctor/pages/my/index.wxml index e87fa12..6bcd8cb 100644 --- a/src/doctor/pages/my/index.wxml +++ b/src/doctor/pages/my/index.wxml @@ -4,15 +4,15 @@ > - {{userInfo.Name}} + {{userInfo.doctorName}} - {{userInfo.HospitalName}} - 随访医院 + {{userInfo.hospitalName}} + {{userInfo.hospitalClassificationName}}{{userInfo.hospitalLevelName}} @@ -35,4 +35,4 @@ - + diff --git a/src/doctor/pages/userInfo/index.ts b/src/doctor/pages/userInfo/index.ts index 25d0e78..674d0f4 100644 --- a/src/doctor/pages/userInfo/index.ts +++ b/src/doctor/pages/userInfo/index.ts @@ -11,7 +11,7 @@ Page({ handleLoginOut() { wx.showModal({ title: '确定退出登录吗?', - confirmColor: 'rgba(246, 74, 58, 1)', + confirmColor: 'rgba(29, 107, 255, 1)', success: (res) => { if (res.confirm) { wx.ajax({ @@ -19,7 +19,7 @@ Page({ url: '?r=wtx/doctor/account/reg-logout', data: {}, }).then(() => { - app.startLogin(() => { + app.updateLoginInfo(() => { wx.reLaunch({ url: '/pages/index/index', }) diff --git a/src/images/bg21.png b/src/images/bg21.png new file mode 100644 index 0000000..0219f85 Binary files /dev/null and b/src/images/bg21.png differ diff --git a/src/images/icon17.png b/src/images/icon17.png index 54ff407..9ab190f 100644 Binary files a/src/images/icon17.png and b/src/images/icon17.png differ diff --git a/src/images/icon91.png b/src/images/icon91.png new file mode 100644 index 0000000..f1bdfa6 Binary files /dev/null and b/src/images/icon91.png differ diff --git a/src/images/icon92.png b/src/images/icon92.png new file mode 100644 index 0000000..515ea2d Binary files /dev/null and b/src/images/icon92.png differ diff --git a/src/images/icon93.png b/src/images/icon93.png new file mode 100644 index 0000000..4c2438f Binary files /dev/null and b/src/images/icon93.png differ diff --git a/src/images/icon94.png b/src/images/icon94.png new file mode 100644 index 0000000..4705171 Binary files /dev/null and b/src/images/icon94.png differ diff --git a/src/images/icon95.png b/src/images/icon95.png new file mode 100644 index 0000000..aed735f Binary files /dev/null and b/src/images/icon95.png differ diff --git a/src/images/icon96.png b/src/images/icon96.png new file mode 100644 index 0000000..815e0d5 Binary files /dev/null and b/src/images/icon96.png differ diff --git a/src/images/index-title2.png b/src/images/index-title2.png index 56093f2..191d777 100644 Binary files a/src/images/index-title2.png and b/src/images/index-title2.png differ diff --git a/src/images/index-title3.png b/src/images/index-title3.png index 1495d4f..4e88fe8 100644 Binary files a/src/images/index-title3.png and b/src/images/index-title3.png differ diff --git a/src/pages/applyFrom/index.ts b/src/pages/applyFrom/index.ts index 72e7a2b..335cffa 100644 --- a/src/pages/applyFrom/index.ts +++ b/src/pages/applyFrom/index.ts @@ -20,7 +20,7 @@ Page({ Argument: false, }, onLoad() { - app.waitLogin().then(() => { + app.waitLogin({ type: 0 }).then(() => { app.mpBehavior({ PageName: 'PG_PREAPPLY' }) app.getUserInfo().then((userInfo) => { if (userInfo.ApplyIntentionId) { diff --git a/src/pages/applyFromResult/index.ts b/src/pages/applyFromResult/index.ts index fc713c8..6299f50 100644 --- a/src/pages/applyFromResult/index.ts +++ b/src/pages/applyFromResult/index.ts @@ -6,7 +6,7 @@ Page({ background: 'transparent', }, onLoad() { - app.waitLogin().then(() => { + app.waitLogin({ type: 0 }).then(() => { this.getCodeImg() }) }, diff --git a/src/pages/ask/index.json b/src/pages/ask/index.json index 4dba397..f138d08 100644 --- a/src/pages/ask/index.json +++ b/src/pages/ask/index.json @@ -1,6 +1,7 @@ { "navigationStyle": "custom", "usingComponents": { + "van-overlay": "@vant/weapp/overlay/index", "van-loading": "@vant/weapp/loading/index", "navbar": "/components/navbar/index" } diff --git a/src/pages/ask/index.scss b/src/pages/ask/index.scss index a05ae5b..06bd9ac 100644 --- a/src/pages/ask/index.scss +++ b/src/pages/ask/index.scss @@ -442,6 +442,7 @@ page { } .page-footer { position: relative; + z-index: 2; flex-shrink: 0; padding: 18rpx 30rpx calc(env(safe-area-inset-bottom) + 30rpx); border-radius: 24rpx 24rpx 0 0; diff --git a/src/pages/ask/index.ts b/src/pages/ask/index.ts index 812b770..546ab3c 100644 --- a/src/pages/ask/index.ts +++ b/src/pages/ask/index.ts @@ -45,7 +45,7 @@ Page({ userInfo: {}, }, onLoad(options) { - app.waitLogin().then(() => { + app.waitLogin({ type: 0 }).then(() => { app.mpBehavior({ PageName: 'PG_FAQ' }) app.getUserInfo().then((userInfo) => { this.setData({ diff --git a/src/pages/ask/index.wxml b/src/pages/ask/index.wxml index 6b95af5..0c9f3d7 100644 --- a/src/pages/ask/index.wxml +++ b/src/pages/ask/index.wxml @@ -85,6 +85,7 @@ + diff --git a/src/pages/index/index.ts b/src/pages/index/index.ts index f4a657b..1eeefe2 100644 --- a/src/pages/index/index.ts +++ b/src/pages/index/index.ts @@ -27,7 +27,7 @@ Page({ guideList: ['2-1', '2-2', '2-3'], }, onLoad() { - app.waitLogin().then(() => { + app.waitLogin({ type: 0 }).then(() => { app.getUserInfo().then((userInfo) => { this.setData({ userInfo, diff --git a/src/pages/knowledge/index.ts b/src/pages/knowledge/index.ts index 8eba592..4153947 100644 --- a/src/pages/knowledge/index.ts +++ b/src/pages/knowledge/index.ts @@ -12,8 +12,8 @@ Page({ }, }, onShow() { - app.waitLogin().then(() => { - app.mpBehavior({ PageName: 'PG_EDUCATION' }) + app.waitLogin({ type: 0 }).then(() => { + app.mpBehavior({ PageName: 'PG_EDUCATION' }) this.getList() }) }, diff --git a/src/pages/knowledgeDetail/index.ts b/src/pages/knowledgeDetail/index.ts index cb2cc92..011d055 100644 --- a/src/pages/knowledgeDetail/index.ts +++ b/src/pages/knowledgeDetail/index.ts @@ -14,7 +14,7 @@ Page({ this.setData({ id: options.id, }) - app.waitLogin().then(() => { + app.waitLogin({ type: 0 }).then(() => { this.handleView() }) }, diff --git a/src/pages/knowledgeDetailVideo/index.ts b/src/pages/knowledgeDetailVideo/index.ts index 8a8734d..afe94ef 100644 --- a/src/pages/knowledgeDetailVideo/index.ts +++ b/src/pages/knowledgeDetailVideo/index.ts @@ -23,7 +23,7 @@ Page({ id: options.id, activeId: options.id, }) - app.waitLogin().then(() => { + app.waitLogin({ type: 0 }).then(() => { this.handleView() }) }, diff --git a/src/pages/my/index.ts b/src/pages/my/index.ts index 79a97df..9a9b32d 100644 --- a/src/pages/my/index.ts +++ b/src/pages/my/index.ts @@ -9,7 +9,7 @@ Page({ showPatient: false, }, onShow() { - app.waitLogin().then(() => { + app.waitLogin({ type: 0 }).then(() => { app.mpBehavior({ PageName: 'BTN_MY_NAV' }) app.getUserInfo().then((userInfo) => { this.setData({ @@ -75,24 +75,15 @@ Page({ popupShow: false, }) }, - routerTo(e) { - const { url } = e.currentTarget.dataset + routerTo(e: any) { + const { url, pname } = e.currentTarget.dataset + if (pname) { + app.mpBehavior({ PageName: pname }) + } wx.navigateTo({ url, }) }, - handleNone(e: any) { - const { index } = e.currentTarget.dataset - const PageName = { - 1: 'BTN_MY_SWITCHPATIENT', - 2: 'BTN_MY_SWITCH_DOCTOR', - }[index] - app.mpBehavior({ PageName }) - this.setData({ - popupShow: true, - popupType: 'stayTuned', - }) - }, }) export {} diff --git a/src/pages/my/index.wxml b/src/pages/my/index.wxml index 0f771c2..e4485ee 100644 --- a/src/pages/my/index.wxml +++ b/src/pages/my/index.wxml @@ -31,10 +31,16 @@ > - + 切换身份 - + 我已开启基因治疗 @@ -42,7 +48,7 @@ - + 我是医生 diff --git a/src/pages/start/index.ts b/src/pages/start/index.ts index 50cfc26..8898870 100644 --- a/src/pages/start/index.ts +++ b/src/pages/start/index.ts @@ -23,7 +23,7 @@ Page({ return } wx.reLaunch({ - url: '/patient/pages/entryInfo/login', + url: '/pages/index/index', }) } if (initLoginInfo.loginType === 2) { diff --git a/src/patient/pages/askPatient/index.json b/src/patient/pages/askPatient/index.json index f9a997e..c9c8ea4 100644 --- a/src/patient/pages/askPatient/index.json +++ b/src/patient/pages/askPatient/index.json @@ -1,6 +1,7 @@ { "navigationStyle": "custom", "usingComponents": { + "van-overlay": "@vant/weapp/overlay/index", "van-loading": "@vant/weapp/loading/index", "navbar": "/components/navbar/index", "popup": "/components/popup/index" diff --git a/src/patient/pages/askPatient/index.scss b/src/patient/pages/askPatient/index.scss index 7258338..b7fe61f 100644 --- a/src/patient/pages/askPatient/index.scss +++ b/src/patient/pages/askPatient/index.scss @@ -125,8 +125,10 @@ page { position: absolute; top: 68rpx; left: 0; + padding: 0 8rpx; width: 84rpx; height: 28rpx; + box-sizing: border-box; line-height: 28rpx; font-size: 20rpx; color: rgba(255, 255, 255, 1); @@ -134,6 +136,8 @@ page { background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); border-radius: 35rpx 35rpx 35rpx 35rpx; overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; } } .d-container { @@ -293,15 +297,20 @@ page { } .page-footer { position: relative; + z-index: 2; flex-shrink: 0; transition: all 0.3s; height: calc(112rpx + env(safe-area-inset-bottom)); box-sizing: border-box; box-shadow: 0rpx 2rpx 28rpx 0rpx rgba(0, 0, 0, 0.08); - border-radius: 24rpx 24rpx 24rpx; + border-radius: 24rpx 24rpx 0 0; background-color: rgba(247, 247, 250, 1); &.expend { height: 50vh; + .options{ + padding-bottom: 50rpx; + + } .container { margin-top: -20rpx; } @@ -334,7 +343,7 @@ page { position: relative; z-index: 1; border-radius: 24rpx 24rpx 0 0; - padding: 32rpx 30rpx calc(env(safe-area-inset-bottom) + 30rpx); + padding: 0 30rpx calc(env(safe-area-inset-bottom) + 30rpx); background-color: rgba(247, 247, 250, 1); .tabs { margin-top: 12rpx; diff --git a/src/patient/pages/askPatient/index.ts b/src/patient/pages/askPatient/index.ts index 86c2ce4..84d9d9a 100644 --- a/src/patient/pages/askPatient/index.ts +++ b/src/patient/pages/askPatient/index.ts @@ -13,10 +13,9 @@ interface IMessageItem { msgCreateTimeName?: string // 消息创建时间 showTime?: boolean questionId?: string // 问题ID - Reference?: string // 参考资料 - LikeTimes?: number // 点赞次数 - IsLike?: boolean // 是否点赞 - HasAnswer?: boolean // 是否有答案 + doctorId?: string + doctorName?: string + doctorAvatar?: string } Page({ @@ -191,10 +190,13 @@ Page({ { msgId: new Date().getTime().toString(), msgContentType: '2', - msgContent: aName, + msgContent: aName.answer, msgVisitTime: '', msgFromType: '2', msgCreateTime: dayjs().format('YYYY-MM-DD HH:mm:ss'), + doctorId: aName.answer, + doctorName: aName.doctorName, + doctorAvatar: aName.doctorAvatar, }, ], }) diff --git a/src/patient/pages/askPatient/index.wxml b/src/patient/pages/askPatient/index.wxml index 64d0447..7780420 100644 --- a/src/patient/pages/askPatient/index.wxml +++ b/src/patient/pages/askPatient/index.wxml @@ -54,9 +54,9 @@ - 刘湖飞 + {{message.doctorName}} {{message.msgContent }} @@ -118,6 +118,7 @@ + diff --git a/src/patient/pages/changeTel/index.scss b/src/patient/pages/changeTel/index.scss index 3864527..eb048cb 100644 --- a/src/patient/pages/changeTel/index.scss +++ b/src/patient/pages/changeTel/index.scss @@ -21,6 +21,7 @@ page { display: flex; align-items: center; justify-content: space-between; + gap: 10rpx; .input { padding: 32rpx 0; font-size: 32rpx; diff --git a/src/patient/pages/changeTel/index.wxml b/src/patient/pages/changeTel/index.wxml index 4101d77..8db7ed2 100644 --- a/src/patient/pages/changeTel/index.wxml +++ b/src/patient/pages/changeTel/index.wxml @@ -6,6 +6,7 @@ {{codeText}} diff --git a/src/patient/pages/coltStat/index.ts b/src/patient/pages/coltStat/index.ts index 378c3a3..98561ed 100644 --- a/src/patient/pages/coltStat/index.ts +++ b/src/patient/pages/coltStat/index.ts @@ -436,6 +436,9 @@ Page({ tabActve: active, }) }, + handleBack() { + wx.navigateBack() + }, }) export {} diff --git a/src/patient/pages/course/index.ts b/src/patient/pages/course/index.ts index 747db30..267fb66 100644 --- a/src/patient/pages/course/index.ts +++ b/src/patient/pages/course/index.ts @@ -1,4 +1,4 @@ -const _app = getApp() +const app = getApp() Page({ data: { @@ -12,8 +12,30 @@ Page({ }, current: 0, + + periodInfo1: {}, + periodInfo2: {}, + periodInfo3: {}, + periodInfo4: {}, + }, + onShow() { + app.waitLogin({ type: 1 }).then(() => { + this.getPeriodInfo(1, 'periodInfo1') + }) + }, + getPeriodInfo(period: 1 | 2 | 3 | 4, key: string) { + wx.ajax({ + method: 'GET', + url: '?r=wtx/treatment/get-period-info', + data: { + period, + }, + }).then((res) => { + this.setData({ + [key]: res, + }) + }) }, - onLoad() {}, handleSwiperChange(e) { this.setData({ current: e.detail.current, diff --git a/src/patient/pages/course/index.wxml b/src/patient/pages/course/index.wxml index 5b4411d..8c9902d 100644 --- a/src/patient/pages/course/index.wxml +++ b/src/patient/pages/course/index.wxml @@ -29,15 +29,19 @@ - - + + 1.您的诊前检查医院 - 唐山市人民医院 + {{periodInfo1.hospitalName}} @@ -47,7 +51,12 @@ - + + @@ -62,7 +71,12 @@ - + + @@ -240,7 +254,7 @@ - + 下一阶段 @@ -322,7 +336,7 @@ - + diff --git a/src/patient/pages/entryInfo/index.ts b/src/patient/pages/entryInfo/index.ts index b6f9a11..d0307c1 100644 --- a/src/patient/pages/entryInfo/index.ts +++ b/src/patient/pages/entryInfo/index.ts @@ -1,12 +1,15 @@ +import dayjs from 'dayjs' + const app = getApp() Page({ data: { - relationType: '', + relationType: '0', name: '', birthMonth: '', provinceId: '', cityId: '', + endDate: dayjs().format('YYYY-MM'), provinceName: '', cityName: '', @@ -96,7 +99,21 @@ Page({ }) }, handleBack() { - wx.navigateBack() + wx.ajax({ + method: 'POST', + url: '?r=wtx/user/reg-logout', + data: {}, + }).then(() => { + app.updateLoginInfo(() => { + wx.navigateBack({ + fail() { + wx.reLaunch({ + url: '/pages/index/index', + }) + }, + }) + }) + }) }, }) diff --git a/src/patient/pages/entryInfo/index.wxml b/src/patient/pages/entryInfo/index.wxml index 79a2163..5bfa551 100644 --- a/src/patient/pages/entryInfo/index.wxml +++ b/src/patient/pages/entryInfo/index.wxml @@ -28,14 +28,14 @@ model:value="{{name}}" placeholder-class="place-input" type="text" - placeholder="请输入{{relationType == 1 ? '您' : '亲友'}}的姓名" + placeholder="请输入{{relationType == 2 ? '亲友' : '您'}}的姓名" /> - + - {{birthMonth}} + {{birthMonth}} @@ -44,7 +44,7 @@ - {{provinceName ? provinceName+ '/' : provinceName }}{{cityName}} + {{provinceName ? provinceName+ '/' : provinceName }}{{cityName}} diff --git a/src/patient/pages/family/index.ts b/src/patient/pages/family/index.ts index 6feba60..056c9af 100644 --- a/src/patient/pages/family/index.ts +++ b/src/patient/pages/family/index.ts @@ -6,7 +6,7 @@ Page({ qrCode: '', }, onLoad() { - app.waitLogin().then(() => { + app.waitLogin({type:1}).then(() => { this.getMpInfo() this.getQrCode() }) diff --git a/src/patient/pages/family/index.wxml b/src/patient/pages/family/index.wxml index 99ac2df..9572371 100644 --- a/src/patient/pages/family/index.wxml +++ b/src/patient/pages/family/index.wxml @@ -6,10 +6,7 @@ style="padding-top:{{pageTop}}px;background: url('{{imageUrl}}bg6.png?t={{Timestamp}}') no-repeat top center/100% 668rpx" > - + {{mpInfo.PatientName}} diff --git a/src/patient/pages/familyList/index.ts b/src/patient/pages/familyList/index.ts index e525c65..f679ce8 100644 --- a/src/patient/pages/familyList/index.ts +++ b/src/patient/pages/familyList/index.ts @@ -6,7 +6,7 @@ Page({ list: [], }, onLoad() { - app.waitLogin().then(() => { + app.waitLogin({ type: 1 }).then(() => { this.getList() app.getUserInfo(1).then((res) => { this.setData({ @@ -26,24 +26,24 @@ Page({ }) }) }, - handleUnbind() { + handleUnbind(e) { + const { id } = e.currentTarget.dataset wx.showModal({ title: '确认解绑?', confirmColor: 'rgba(246, 74, 58, 1)', success: (res) => { if (res.confirm) { - this.handleUnbinOk() + this.handleUnbinOk(id) } }, }) }, - handleUnbinOk() { - const { UserId } = this.data.userInfo + handleUnbinOk(id) { wx.ajax({ method: 'POST', url: '?r=wtx/account/unbind-user', data: { - UserId, + UserId: id, }, loading: true, }).then(() => { diff --git a/src/patient/pages/familyList/index.wxml b/src/patient/pages/familyList/index.wxml index 4548ea6..a1d67ae 100644 --- a/src/patient/pages/familyList/index.wxml +++ b/src/patient/pages/familyList/index.wxml @@ -2,12 +2,14 @@ - {{userInfo.PatientName}} + {{userInfo.PatientName}} {{userInfo.PatientName}}亲友 - 本人 + 本人 绑定时间:{{item.BindPatientTime}} - 解绑 + + 解绑 + diff --git a/src/patient/pages/familyScan/index.scss b/src/patient/pages/familyScan/index.scss index 6a8a8d8..8e56cd4 100644 --- a/src/patient/pages/familyScan/index.scss +++ b/src/patient/pages/familyScan/index.scss @@ -116,12 +116,12 @@ background-color: #f9f7fa; .icon { width: 122rpx; - height: 106rpx; + height: 102rpx; } .icon-active { display: none; width: 122rpx; - height: 106rpx; + height: 102rpx; } .name { margin-top: 14rpx; @@ -131,7 +131,7 @@ } .active { .name { - color: #E04775; + color: #f23a2f; } .icon { display: none; @@ -203,7 +203,7 @@ .submit { color: #fff; - background-color: #E04775; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); } } } diff --git a/src/patient/pages/familyScan/index.ts b/src/patient/pages/familyScan/index.ts index ae56c92..d3b7697 100644 --- a/src/patient/pages/familyScan/index.ts +++ b/src/patient/pages/familyScan/index.ts @@ -20,7 +20,7 @@ Page({ }, onShow() { app.waitLogin().then(() => { - if (app.globalData.initLoginInfo.loginType === 2) { + if (app.globalData.initLoginInfo.isLogin === 1 && app.globalData.initLoginInfo.loginType === 2) { wx.reLaunch({ url: '/doctor/pages/index/index', }) @@ -87,7 +87,8 @@ Page({ }, loading: true, }).then(() => { - app.updateLoginInfo().then(() => { + app.globalData.waitBindDoctorId = '' + app.updateLoginInfo(() => { wx.reLaunch({ url: '/pages/start/index', }) diff --git a/src/patient/pages/familyScan/index.wxml b/src/patient/pages/familyScan/index.wxml index 98f8bbd..c302058 100644 --- a/src/patient/pages/familyScan/index.wxml +++ b/src/patient/pages/familyScan/index.wxml @@ -1,6 +1,6 @@ - + - - + + 本人 - - + + 亲友 diff --git a/src/patient/pages/file/index.scss b/src/patient/pages/file/index.scss index 821b5b1..caf95d9 100644 --- a/src/patient/pages/file/index.scss +++ b/src/patient/pages/file/index.scss @@ -2,7 +2,7 @@ page { background-color: rgba(246, 246, 246, 1); } .page { - padding: 40rpx; + padding: 40rpx 40rpx 200rpx; .user { padding-top: 34rpx; display: flex; @@ -24,21 +24,42 @@ page { flex: 1; .w-header { display: flex; - justify-content: space-between; + align-items: center; gap: 16rpx; .name { font-size: 36rpx; color: rgba(1, 1, 5, 1); font-weight: bold; + } + .age { + padding: 0 14rpx; + border-radius: 20rpx; + background-color: rgba(32, 196, 255, 1); + display: flex; + align-items: center; + gap: 6rpx; + font-size: 24rpx; + color: rgba(255, 255, 255, 1); + line-height: 32rpx; .icon { - width: 36rpx; - height: 36rpx; + width: 28rpx; + height: 28rpx; } } - .date { - flex-shrink: 0; - font-size: 28rpx; - color: rgba(161, 164, 172, 1); + .site { + padding: 0 14rpx; + border-radius: 20rpx; + background-color: rgba(248, 166, 133, 1); + display: flex; + align-items: center; + gap: 6rpx; + font-size: 24rpx; + color: rgba(255, 255, 255, 1); + line-height: 32rpx; + .icon { + width: 28rpx; + height: 28rpx; + } } } .w-footer { @@ -82,7 +103,7 @@ page { .container0 { padding: 8rpx 0 0; - .card { + .card1 { margin-top: 24rpx; border-radius: 24rpx 24rpx 24rpx 24rpx; border: 2rpx solid #ffffff; @@ -145,6 +166,7 @@ page { padding: 16rpx 0; display: flex; gap: 32rpx; + line-height: 56rpx; .label { width: 4em; font-size: 32rpx; @@ -169,13 +191,170 @@ page { text-align: center; } } + .card2 { + margin-top: 24rpx; + border-radius: 24rpx 24rpx 24rpx 24rpx; + border: 2rpx solid #ffffff; + background: linear-gradient(346deg, #ffffff 0%, #fff9f9 85%, #ffebe9 100%); + padding-bottom: 32rpx; + .c-header { + padding: 32rpx 16rpx 0 0; + display: flex; + align-items: center; + justify-content: space-between; + .left { + display: flex; + align-items: center; + gap: 16rpx; + .title { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + display: flex; + align-items: center; + gap: 22rpx; + &::before { + content: ''; + width: 8rpx; + height: 32rpx; + border-radius: 0 32rpx 32rpx 0; + background: #f64a3a; + } + } + .fold-icon { + width: 60rpx; + height: 60rpx; + } + } + } + .c-body { + margin: 24rpx 32rpx 0; + padding: 16rpx 0 0; + background: #f6f6f6; + border-radius: 24rpx 24rpx 24rpx 24rpx; + position: relative; + + .row { + padding: 16rpx 32rpx; + display: flex; + gap: 32rpx; + line-height: 56rpx; + .label { + width: 6em; + font-size: 32rpx; + color: rgba(161, 164, 172, 1); + } + .content { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + } + } + .options { + display: flex; + align-items: center; + border-top: 1px solid rgba(232, 233, 237, 1); + .item { + flex: 1; + padding: 22rpx 0; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + text-align: center; + &:first-of-type { + border-right: 1px solid rgba(232, 233, 237, 1); + } + } + } + } + } + .card3, + .card4 { + margin-top: 24rpx; + border-radius: 24rpx 24rpx 24rpx 24rpx; + border: 2rpx solid #ffffff; + background: linear-gradient(346deg, #ffffff 0%, #fff9f9 85%, #ffebe9 100%); + padding-bottom: 32rpx; + .c-header { + padding: 32rpx 16rpx 0 0; + display: flex; + align-items: center; + justify-content: space-between; + .left { + display: flex; + align-items: center; + gap: 16rpx; + .title { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + display: flex; + align-items: center; + gap: 22rpx; + &::before { + content: ''; + width: 8rpx; + height: 32rpx; + border-radius: 0 32rpx 32rpx 0; + background: #f64a3a; + } + } + .fold-icon { + width: 60rpx; + height: 60rpx; + } + } + } + .c-body { + margin: 24rpx 32rpx 0; + padding: 16rpx 0 0; + background: #f6f6f6; + border-radius: 24rpx 24rpx 24rpx 24rpx; + position: relative; + + .row { + padding: 16rpx 32rpx; + display: flex; + gap: 32rpx; + line-height: 56rpx; + .label { + width: 4em; + font-size: 32rpx; + color: rgba(161, 164, 172, 1); + } + .content { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + } + } + .options { + display: flex; + align-items: center; + border-top: 1px solid rgba(232, 233, 237, 1); + .item { + flex: 1; + padding: 22rpx 0; + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + color: rgba(246, 74, 58, 1); + text-align: center; + &:first-of-type { + border-right: 1px solid rgba(232, 233, 237, 1); + } + } + } + } + } } .container1 { padding: 8rpx 0 0; - .card { + .c1_card1 { margin-top: 24rpx; padding: 16rpx 32rpx; - background: linear-gradient(349deg, #ffffff 60%, #fff1ef 100%); + background: linear-gradient(180deg, #fffaf9 0%, #ffffff 14%, #ffffff 100%); border-radius: 24rpx 24rpx 24rpx 24rpx; border: 2rpx solid #ffffff; .row { @@ -193,12 +372,76 @@ page { } } } + .c1_card2 { + margin-top: 24rpx; + padding: 0 32rpx; + background: linear-gradient(180deg, #fffaf9 0%, #ffffff 14%, #ffffff 100%); + border-radius: 24rpx 24rpx 24rpx 24rpx; + border: 2rpx solid #ffffff; + .row { + padding: 32rpx 0; + border-bottom: 1px solid rgba(247, 247, 250, 1); + .wrap { + display: flex; + gap: 32rpx; + .label { + width: 9em; + font-size: 32rpx; + color: rgba(161, 164, 172, 1); + } + .content { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + } + } + .remark { + margin-top: 24rpx; + padding: 22rpx 32rpx; + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + border-radius: 12rpx; + background-color: rgba(247, 247, 250, 1); + } + } + .row1 { + padding: 32rpx 0; + border-bottom: 1px solid rgba(247, 247, 250, 1); + .wrap { + display: flex; + align-items: center; + gap: 32rpx; + .label { + width: 11em; + font-size: 32rpx; + color: rgba(161, 164, 172, 1); + } + .line { + width: 1px; + height: 88rpx; + background-color: rgba(247, 247, 250, 1); + } + .content { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + } + } + .remark { + margin-top: 24rpx; + padding: 22rpx 32rpx; + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + border-radius: 12rpx; + background-color: rgba(247, 247, 250, 1); + } + } + } } .container2 { .date-card { margin-top: 32rpx; padding: 18rpx 32rpx; - background: linear-gradient(19.87deg, #ffffff 55.08%, #ffe8e6 129.24%); + background: linear-gradient(355deg, #ffffff 0%, #ffebe9 100%); + box-shadow: 0rpx 4rpx 24rpx 0rpx rgba(0, 0, 0, 0.08); border-radius: 84rpx 84rpx 84rpx 84rpx; border: 2px solid #ffffff; display: flex; @@ -213,25 +456,95 @@ page { color: rgba(1, 1, 5, 1); } } + .notic { + position: relative; + margin-top: 32rpx; + height: 168rpx; + box-sizing: border-box; + padding: 24rpx 32rpx; + .title { + font-size: 32rpx; + color: rgba(255, 255, 255, 1); + font-weight: bold; + } + .content { + margin-top: 6rpx; + font-size: 28rpx; + color: rgba(255, 255, 255, 1); + } + .sub-content { + margin-top: 6rpx; + padding: 0 10rpx; + height: 36rpx; + display: inline-block; + font-size: 28rpx; + border-radius: 6rpx; + color: rgba(246, 74, 58, 1); + background-color: #fff; + } + .badge { + position: absolute; + right: 6rpx; + top: -14rpx; + width: 180rpx; + height: 180rpx; + border-radius: 50%; + box-shadow: inset 0rpx -1rpx 0rpx 0rpx rgba(255, 255, 255, 0.25); + } + } .card { + position: relative; margin-top: 32rpx; border-radius: 24rpx; border: 1px solid #ffffff; background: rgba(255, 244, 243, 1); - .c-header { - padding: 22rpx; - text-align: center; - font-size: 32rpx; - color: rgba(246, 74, 58, 1); - } .c-calendar { - padding: 40rpx 0 0; + position: relative; + z-index: 1; + padding: 40rpx 32rpx 0; background-color: #fff; border-radius: 24rpx; + .lengend { + padding: 32rpx 0; + display: flex; + align-items: center; + gap: 32rpx; + border-top: 1px solid rgba(247, 247, 250, 1); + .l-item { + display: flex; + align-items: center; + gap: 12rpx; + font-size: 28rpx; + color: rgba(161, 164, 172, 1); + .dot { + width: 12rpx; + height: 12rpx; + border-radius: 50%; + &.dot1 { + background-color: rgba(246, 74, 58, 1); + } + &.dot2 { + background-color: rgba(255, 163, 112, 1); + } + &.dot3 { + background-color: rgba(255, 207, 135, 1); + } + } + } + } + } + .c-sub-card { + position: absolute; + bottom: -24rpx; + left: 40rpx; + width: 590rpx; + height: 636rpx; + background: #e2e3e6; + border-radius: 24rpx 24rpx 24rpx 24rpx; } } .btn { - margin: 32rpx 0 0; + margin: 52rpx 0 0; padding: 20rpx; font-size: 32rpx; line-height: 48rpx; diff --git a/src/patient/pages/file/index.ts b/src/patient/pages/file/index.ts index b074d4f..55f814a 100644 --- a/src/patient/pages/file/index.ts +++ b/src/patient/pages/file/index.ts @@ -26,6 +26,11 @@ Page({ nav, }) }, + handleRevisitRecord() { + wx.navigateTo({ + url: '/patient/pages/revisitRecord/index', + }) + }, }) export {} diff --git a/src/patient/pages/file/index.wxml b/src/patient/pages/file/index.wxml index fc27279..546d0c9 100644 --- a/src/patient/pages/file/index.wxml +++ b/src/patient/pages/file/index.wxml @@ -11,16 +11,22 @@ - - 刘能 - - + 刘能 + + + 32岁 + + + + 北京 - 入组时间:2025年6月12日 - 32岁 | 北京 - 查看详细档案 > + 入组时间:2025年6月12日 + + 查看档案 + + @@ -30,13 +36,13 @@ 随访日历 - + 随访期 - 添加随访记录 + 添加随访记录 @@ -61,9 +67,105 @@ + + + + 注射日 + + + + + + 注射日期 + 2025-06-01 + + + BBM-H901 + + 体重 45kg + 用药 89ml + 预期用药 45 瓶 + + + + + 诊疗阶段详情 + + + + 查看全部 + + + + + + + + + 基因治疗中心检查 + + + + + + 日期 + 2025-06-01 + + + 诊疗医院 + 体重 45kg + + + 检查项目 + 8/10 + + + + 诊疗阶段详情 + + + + 查看全部 + + + + + + + + + 诊前筛查 + + + + + + 日期 + 2025-06-01 + + + 定点医院 + 体重 45kg + + + 检查项目 + 8/10 + + + + 诊疗阶段详情 + + + + 查看全部 + + + + + - + 出生年月 1980 年 12 月(44 岁) @@ -77,14 +179,90 @@ 69 kg + + + 凝血因子 + 1% 轻度 + + + 治疗方案 + 预防治疗 + + + FIX暴露日 + 198 个 + + + + + + 既往FIX抑制物病史 + + + + + + 既往肝脏疾病病史 + + + 乙肝、肝硬化 + + + + 您是否有饮酒史 + 从不 + + + + + 您是否有过敏史 + + + 对空气中的毛絮过敏 + + + + + 您是否可能存在不适合 + 使用糖皮质激素的情况? + + + + + 有高血压 + + + + + + 靶关节 + 左腿膝盖 左脚脚踝 + + + + + 最近6个月出血 + + + 症状1、关节积血:血友病比较多见于膝关节,在就是踝、髋、肘、腕、肩以及手足小关节。 性期关节肿痛,局部发 + + + 注射日:2025 年5月28日 星期三 + + 最近1个月没有您的复诊信息哦! + 本周是注射后第12周 + 建议每周复诊1次~ + + + + - 注射后第1周 建议本周2次复诊 + + + + 注射日 + + + + 已复诊 + + + + 建议复诊 + + + - 向医生询问出诊时间 + 添加复诊检查记录 diff --git a/src/patient/pages/index/index.scss b/src/patient/pages/index/index.scss index b228022..a28dfee 100644 --- a/src/patient/pages/index/index.scss +++ b/src/patient/pages/index/index.scss @@ -112,6 +112,7 @@ page { background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); border-radius: 28rpx 28rpx 28rpx 28rpx; max-width: 5em; + text-align: center; box-sizing: border-box; overflow: hidden; white-space: nowrap; @@ -158,144 +159,188 @@ page { } } } - .process { - margin-top: 32rpx; - background: rgba(255, 255, 255, 0.68); - border-radius: 24rpx 24rpx 24rpx 24rpx; - border: 2rpx solid #ffffff; - .header { - padding: 28rpx 32rpx; - display: flex; - align-items: center; - justify-content: space-between; - .title { - font-size: 32rpx; - color: rgba(242, 58, 47, 1); - font-weight: bold; - } - .dots { + .swiper { + transition: height 0.3s ease; + .process { + margin-top: 32rpx; + background: rgba(255, 255, 255, 0.68); + border-radius: 24rpx 24rpx 24rpx 24rpx; + border: 2rpx solid #ffffff; + .header { + padding: 28rpx 32rpx; display: flex; align-items: center; - gap: 12rpx; - .item { - width: 40rpx; - height: 40rpx; - font-size: 24rpx; - color: rgba(225, 36, 42, 1); + justify-content: space-between; + .title { + font-size: 32rpx; + color: rgba(242, 58, 47, 1); + font-weight: bold; + } + .dots { display: flex; align-items: center; - justify-content: center; - border-radius: 50%; - &.active { - background-color: rgba(242, 58, 47, 1); - color: #fff; + gap: 12rpx; + .item { + width: 40rpx; + height: 40rpx; + font-size: 24rpx; + color: rgba(225, 36, 42, 1); + display: flex; + align-items: center; + justify-content: center; + border-radius: 50%; + &.active { + background-color: rgba(242, 58, 47, 1); + color: #fff; + } } } } - } - .container1 { - padding: 40rpx 58rpx; - background: #ffffff; - box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(40, 0, 0, 0.06); - border-radius: 24rpx 24rpx 24rpx 24rpx; - border: 2rpx solid #ffffff; - .c-header { - display: flex; - .num { - flex-shrink: 0; - width: 40rpx; - height: 40rpx; + .container1 { + padding: 40rpx 58rpx; + background: #ffffff; + box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(40, 0, 0, 0.06); + border-radius: 24rpx 24rpx 24rpx 24rpx; + border: 2rpx solid #ffffff; + .c-header { display: flex; - align-items: center; - justify-content: center; - background: #f23a2f; - border-radius: 50%; - font-size: 35rpx; - color: #fff; - } - .wrap { - padding-left: 16rpx; - .title { - font-size: 32rpx; - color: rgba(1, 1, 5, 1); - font-weight: bold; + .num { + flex-shrink: 0; + width: 40rpx; + height: 40rpx; + display: flex; + align-items: center; + justify-content: center; + background: #f23a2f; + border-radius: 50%; + font-size: 35rpx; + color: #fff; } - .content { - margin-top: 10rpx; - font-size: 28rpx; - color: rgba(161, 164, 172, 1); + .wrap { + padding-left: 16rpx; + .title { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + } + .content { + margin-top: 10rpx; + font-size: 28rpx; + color: rgba(161, 164, 172, 1); + } } } - } - .btn { - margin-top: 22rpx; - font-size: 28rpx; - color: rgba(255, 255, 255, 1); - width: 556rpx; - height: 64rpx; - display: flex; - align-items: center; - justify-content: center; - background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); - border-radius: 84rpx 84rpx 84rpx 84rpx; - } - } - .container4 { - display: flex; - padding: 32rpx; - background: #ffffff; - box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(40, 0, 0, 0.06); - border-radius: 24rpx 24rpx 24rpx 24rpx; - border: 2rpx solid #ffffff; - .left { - padding-right: 30rpx; - border-right: 1px dashed rgba(207, 209, 213, 1); - flex: 1; - .title { + .btn { + margin-top: 22rpx; font-size: 28rpx; - color: rgba(161, 164, 172, 1); - line-height: 44rpx; - } - .date { - font-size: 48rpx; - color: rgba(1, 1, 5, 1); - font-weight: bold; + color: rgba(255, 255, 255, 1); + width: 556rpx; + height: 64rpx; + display: flex; + align-items: center; + justify-content: center; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx 84rpx 84rpx 84rpx; } - .footer { + } + .container4 { + padding: 40rpx 58rpx; + background: #ffffff; + box-shadow: 0rpx 4rpx 32rpx 0rpx rgba(40, 0, 0, 0.06); + border-radius: 24rpx 24rpx 24rpx 24rpx; + border: 2rpx solid #ffffff; + .c-header { display: flex; - justify-content: space-between; - align-items: flex-end; - .date-name { - font-size: 28rpx; - color: rgba(242, 58, 47, 1); + .num { + flex-shrink: 0; + width: 40rpx; + height: 40rpx; + display: flex; + align-items: center; + justify-content: center; + background: #f23a2f; + border-radius: 50%; + font-size: 35rpx; + color: #fff; } - .add { - width: 68rpx; - height: 68rpx; + .wrap { + padding-left: 16rpx; + .title { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + } } } - } - .right { - padding-left: 18rpx; - flex: 1; - .title { - font-size: 28rpx; - color: rgba(161, 164, 172, 1); - line-height: 44rpx; - } - .content { + .c-body { + margin-top: 24rpx; + background: linear-gradient(180deg, #fff4f4 0%, #ffffff 52%, #ffffff 100%); + border-radius: 28rpx 28rpx 28rpx 28rpx; + border: 2rpx solid #ffffff; display: flex; - align-items: flex-end; - justify-content: space-between; - .status { - width: 136rpx; - height: 136rpx; + padding: 32rpx; + .item1 { + .title { + font-size: 28rpx; + color: rgba(161, 164, 172, 1); + display: flex; + align-items: baseline; + .num { + font-size: 64rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + } + } + .tip { + margin-top: 14rpx; + display: flex; + align-items: center; + gap: 10rpx; + font-size: 24rpx; + color: rgba(255, 163, 112, 1); + background-color: rgba(255, 244, 228, 1); + border-radius: 78rpx; + padding: 0 10rpx; + .icon { + width: 24rpx; + height: 24rpx; + } + } } - .add { - width: 68rpx; - height: 68rpx; - margin-bottom: 6rpx; + .line { + margin: 0 30rpx; + flex-shrink: 0; + border-right: 1px dashed rgba(207, 209, 213, 1); } + .item2 { + .title { + font-size: 28rpx; + color: rgba(161, 164, 172, 1); + display: flex; + align-items: baseline; + .num { + font-size: 64rpx; + color: rgba(1, 1, 5, 1); + font-weight: bold; + } + } + .content { + margin-top: 10rpx; + font-size: 28rpx; + color: rgba(161, 164, 172, 1); + } + } + } + .btn { + font-size: 28rpx; + color: rgba(255, 255, 255, 1); + width: 556rpx; + height: 64rpx; + display: flex; + align-items: center; + justify-content: center; + background: linear-gradient(356deg, #f23a2f 0%, #fc684f 100%); + border-radius: 84rpx 84rpx 84rpx 84rpx; } } } diff --git a/src/patient/pages/index/index.ts b/src/patient/pages/index/index.ts index f800e57..164a7ea 100644 --- a/src/patient/pages/index/index.ts +++ b/src/patient/pages/index/index.ts @@ -14,21 +14,29 @@ Page({ doctorList: [], progress: 1, + treatment: { + followUpWeekInfo: {}, + examDiffDays: '', + }, Days: '', userInfo: {} as any, + + isLoad: false, }, onLoad() { - app.waitLogin().then(() => { + app.waitLogin({ type: 1 }).then(() => { app.getUserInfo(1).then((userInfo) => { this.setData({ userInfo, + isLoad: true, Days: userInfo.Days.replace( /(\d+)/g, '$1', ), }) this.getBindDoctorList() + this.getTeratmentInfo() const waitBindDoctorId = app.globalData.waitBindDoctorId if (waitBindDoctorId) { this.handleWaitBindDoctor(waitBindDoctorId) @@ -39,8 +47,9 @@ Page({ }) }, onShow() { - if (app.globalData.loginState) { + if (this.data.isLoad) { this.getBindDoctorList() + this.getTeratmentInfo() } }, getBindDoctorList() { @@ -54,6 +63,23 @@ Page({ }) }) }, + getTeratmentInfo() { + wx.ajax({ + method: 'GET', + url: '?r=wtx/treatment/get-index-info', + data: {}, + }).then((res) => { + this.setData({ + treatment: res, + progress: res.period, + }) + }) + }, + handleSwiperChange(e) { + this.setData({ + progress: e.detail.current, + }) + }, handleCondormBindDoctor(id) { app.getDoctorInfo(id).then((res) => { this.setData({ diff --git a/src/patient/pages/index/index.wxml b/src/patient/pages/index/index.wxml index 1adfd50..4f9136c 100644 --- a/src/patient/pages/index/index.wxml +++ b/src/patient/pages/index/index.wxml @@ -51,64 +51,132 @@ 扫一扫绑定 - - - 我的专属诊疗流程 - - 1 - 2 - 3 - 4 - - - - - 1 - - 准备您的诊前筛查 - 了解您筛查全部流程和注意事项 + + + + + 我的专属诊疗流程 + + 1 + 2 + 3 + 4 + - - 查看我的诊疗计划 - - - - 2 - - 基于治疗中心检查 - 做好每一步检查,向美好生活继续! + + + 1 + + 准备您的诊前筛查 + 了解您筛查全部流程和注意事项 + + + 查看我的诊疗计划 - 查看我的诊疗计划 - - - - 3 - - 基因治疗-注射日 - 重要的日子终于到来了~ + + + + + 我的专属诊疗流程 + + 1 + 2 + 3 + 4 + + + + + 2 + + 基于治疗中心检查 + 做好每一步检查,向美好生活继续! + + + 查看我的诊疗计划 - 查看我的诊疗计划 - - - - 最近一次随访 - 2025.6.15 - - 2天后 - + + + + + 我的专属诊疗流程 + + 1 + 2 + 3 + 4 + + + + + 3 + + 基因治疗-注射日 + 重要的日子终于到来了~ + + + 查看我的诊疗计划 - - 最近状态状态 - - - + + + + + 我的专属诊疗流程 + + 1 + 2 + 3 + 4 + + + + + 4 + + 长期随访 + + + + + + 注射后 + + + {{treatment.followUpWeekInfo.iYear}} + 年 + + + {{treatment.followUpWeekInfo.iYearDay}} + 天 + + + + {{treatment.followUpWeekInfo.iWeek}} + 周 + + + + + 建议每2周复查一次 + + + + + + {{treatment.followUpWeekInfo.examDiffDays}} + 天前 + + 最近一次复诊 + + + 查看我的诊疗计划 - - + + 为他们加油 @@ -125,25 +193,22 @@ - - 13% + + + 50% + 上次凝血因子水平(IX) - 07月23日 - + 7月23日 - - - 50 - 分钟 - - 最近一次运动 + + 13天前 + 最近一次出血 - 4月12日 - + 07月23日 diff --git a/src/patient/pages/injectDate/index.ts b/src/patient/pages/injectDate/index.ts index 28a2ecd..6fa7c0c 100644 --- a/src/patient/pages/injectDate/index.ts +++ b/src/patient/pages/injectDate/index.ts @@ -23,7 +23,7 @@ Page({ }, onLoad() { this.loadGifImage() - app.waitLogin().then(() => { + app.waitLogin({type:1}).then(() => { this.setArea() }) }, diff --git a/src/patient/pages/knowledge/index.ts b/src/patient/pages/knowledge/index.ts index 0b9c7f1..f341bba 100644 --- a/src/patient/pages/knowledge/index.ts +++ b/src/patient/pages/knowledge/index.ts @@ -12,7 +12,7 @@ Page({ }, }, onShow() { - app.waitLogin().then(() => { + app.waitLogin({type:1}).then(() => { app.mpBehavior({ PageName: 'PG_EDUCATION' }) this.getList() }) diff --git a/src/patient/pages/knowledgeDetail/index.ts b/src/patient/pages/knowledgeDetail/index.ts index cb2cc92..2050cb3 100644 --- a/src/patient/pages/knowledgeDetail/index.ts +++ b/src/patient/pages/knowledgeDetail/index.ts @@ -14,7 +14,7 @@ Page({ this.setData({ id: options.id, }) - app.waitLogin().then(() => { + app.waitLogin({type:1}).then(() => { this.handleView() }) }, diff --git a/src/patient/pages/knowledgeDetailVideo/index.ts b/src/patient/pages/knowledgeDetailVideo/index.ts index 8a8734d..975fe2f 100644 --- a/src/patient/pages/knowledgeDetailVideo/index.ts +++ b/src/patient/pages/knowledgeDetailVideo/index.ts @@ -23,7 +23,7 @@ Page({ id: options.id, activeId: options.id, }) - app.waitLogin().then(() => { + app.waitLogin({type:1}).then(() => { this.handleView() }) }, diff --git a/src/patient/pages/login/index.ts b/src/patient/pages/login/index.ts index c10239b..0b02289 100644 --- a/src/patient/pages/login/index.ts +++ b/src/patient/pages/login/index.ts @@ -111,8 +111,10 @@ Page({ if (this.data.backPage) { wx.navigateBack() } else if (res.PatientId) { - wx.reLaunch({ - url: `/patient/pages/index/index`, + app.updateLoginInfo(() => { + wx.reLaunch({ + url: '/patient/pages/index/index', + }) }) } else { wx.navigateTo({ diff --git a/src/patient/pages/my/index.ts b/src/patient/pages/my/index.ts index 04bd0a6..ce156d9 100644 --- a/src/patient/pages/my/index.ts +++ b/src/patient/pages/my/index.ts @@ -10,7 +10,7 @@ Page({ Days: '', }, onLoad() { - app.waitLogin().then(() => { + app.waitLogin({type:1}).then(() => { app.getUserInfo(1).then((userInfo) => { this.setData({ userInfo, diff --git a/src/patient/pages/revisitRecord/index.json b/src/patient/pages/revisitRecord/index.json new file mode 100644 index 0000000..2df42aa --- /dev/null +++ b/src/patient/pages/revisitRecord/index.json @@ -0,0 +1,4 @@ +{ + "navigationBarTitleText": "免疫抑制剂管理", + "usingComponents": {} +} diff --git a/src/patient/pages/revisitRecord/index.scss b/src/patient/pages/revisitRecord/index.scss new file mode 100644 index 0000000..604387f --- /dev/null +++ b/src/patient/pages/revisitRecord/index.scss @@ -0,0 +1,42 @@ +page { + background-color: rgba(247, 247, 250, 1); +} +.page { + .list { + padding: 32rpx 40rpx; + .total { + font-size: 32rpx; + color: rgba(1, 1, 5, 1); + .red { + color: rgba(246, 74, 58, 1); + font-size: 40rpx; + } + } + .list-card { + padding: 16rpx 0; + margin-top: 24rpx; + background: #ffffff; + border-radius: 24rpx 24rpx 24rpx 24rpx; + .item { + padding: 16rpx 32rpx; + display: flex; + .item-title { + width: 5em; + font-size: 32rpx; + color: rgba(161, 164, 172, 1); + } + .item-content { + color: rgba(1, 1, 5, 1); + } + } + } + .add { + position: fixed; + left: 50%; + bottom: 142rpx; + transform: translateX(-50%); + width: 156rpx; + height: 156rpx; + } + } +} diff --git a/src/patient/pages/revisitRecord/index.ts b/src/patient/pages/revisitRecord/index.ts new file mode 100644 index 0000000..382e254 --- /dev/null +++ b/src/patient/pages/revisitRecord/index.ts @@ -0,0 +1,52 @@ +const _app = getApp() + +Page({ + data: { + list: [], + pagination: { + page: 1, + pages: 1, + count: 1, + }, + }, + onLoad() {}, + getList(newPage = 1) { + wx.ajax({ + method: 'GET', + url: '?r=wtx/knowledge/list', + data: { + page: newPage, + }, + }).then((res) => { + const list = res.page === 1 ? res.list : [...this.data.list, ...res.list] + this.setData({ + total: res.count, + list, + pagination: { + page: res.page, + pages: res.pages, + count: res.count, + }, + }) + }) + }, + onReachBottom() { + const { page, pages } = this.data.pagination + if (pages > page) { + this.getList(page + 1) + } + }, + handleEdit(e) { + const { id } = e.currentTarget.dataset + wx.navigateTo({ + url: `/patient/pages/inhibitorsManage/index?id=${id}`, + }) + }, + handleAdd() { + wx.navigateTo({ + url: '/patient/pages/inhibitorsManage/index', + }) + }, +}) + +export {} diff --git a/src/patient/pages/revisitRecord/index.wxml b/src/patient/pages/revisitRecord/index.wxml new file mode 100644 index 0000000..f0e0029 --- /dev/null +++ b/src/patient/pages/revisitRecord/index.wxml @@ -0,0 +1,25 @@ + + + + 随访次数: + 2 + 次 + + + + 日期 + 2025-06-13 + + + 诊疗医院 + 唐山人民医院 + + + 检查项目 + 2/3 + + + + + + diff --git a/src/patient/pages/selectDoctorList/index.json b/src/patient/pages/selectDoctorList/index.json index ad4d4ef..100f6f6 100644 --- a/src/patient/pages/selectDoctorList/index.json +++ b/src/patient/pages/selectDoctorList/index.json @@ -1,6 +1,7 @@ { "navigationStyle": "custom", "usingComponents": { - "navbar": "/components/navbar/index" + "navbar": "/components/navbar/index", + "popup": "/components/popup/index" } } diff --git a/src/patient/pages/selectDoctorList/index.scss b/src/patient/pages/selectDoctorList/index.scss index 2fdefb2..361b278 100644 --- a/src/patient/pages/selectDoctorList/index.scss +++ b/src/patient/pages/selectDoctorList/index.scss @@ -4,6 +4,8 @@ page { .page { padding: 0 40rpx 40rpx; + min-height: 100vh; + box-sizing: border-box; background: linear-gradient(180deg, #ffffff 0%, rgba(255, 255, 255, 0) 100%); .card { margin-top: 40rpx; @@ -40,7 +42,7 @@ page { } .tag { margin-top: 12rpx; - vertical-align: middle; + vertical-align: 2rpx; display: inline-block; padding: 0 8rpx; font-size: 20rpx; diff --git a/src/patient/pages/selectDoctorList/index.ts b/src/patient/pages/selectDoctorList/index.ts index 4a1473a..bbaacf3 100644 --- a/src/patient/pages/selectDoctorList/index.ts +++ b/src/patient/pages/selectDoctorList/index.ts @@ -1,14 +1,65 @@ -const _app = getApp() +const app = getApp() Page({ - data: {}, - onLoad() {}, - handleUnbind() { - wx.showModal({ - title: '确认解绑?', - confirmColor: 'rgba(246, 74, 58, 1)', + data: { + popupShow: false, + // popupType:'selectHostipal', + popupType: 'selectHostipalComplete', + popupParams: {} as any, + + doctorList: [] as any, + }, + onLoad() { + app.waitLogin({ type: 1 }).then(() => { + this.getBindDoctorList() + }) + }, + getBindDoctorList() { + wx.ajax({ + method: 'GET', + url: '?r=wtx/account/get-bind-doctor-list', + data: {}, + }).then((res) => { + this.setData({ + doctorList: res, + }) }) }, + hadnleSelect(e) { + const { index } = e.currentTarget.dataset + const item = this.data.doctorList[index] + wx.ajax({ + method: 'POST', + url: '?r=wtx/treatment/save-d-hospital', + data: { + hospitalId: item.hospitalId, + }, + }).then(() => { + this.setData({ + popupShow: true, + popupType: 'selectHostipalComplete', + popupParams: { + close: true, + }, + }) + }) + }, + handlePopupOk() { + const { popupType } = this.data + if (popupType === 'selectHostipal') { + this.setData({ + popupShow: false, + }) + } + }, + handlePopupCancel() { + const { popupType } = this.data + if (popupType === 'selectHostipalComplete') { + wx.navigateBack({ + delta: 2, + }) + } + }, handleBack() { wx.navigateBack() }, diff --git a/src/patient/pages/selectDoctorList/index.wxml b/src/patient/pages/selectDoctorList/index.wxml index 78094de..242929f 100644 --- a/src/patient/pages/selectDoctorList/index.wxml +++ b/src/patient/pages/selectDoctorList/index.wxml @@ -5,24 +5,26 @@ class="page" style="background: url('{{imageUrl}}bg7.png?t={{Timestamp}}') no-repeat top center/100% 602rpx;padding-top:{{pageTop}}px;" > - + - + - 王青 + {{item.doctorName}} - 北京积水潭医院龙泽院区 - 三甲 + {{item.hospitalName}} + {{item.hospitalClassificationName}}{{item.hospitalLevelName}} - 选择 - - - 北京积水潭医院龙泽院区副主任医师,有 12 年的 - 治疗经验。中华医学会血液学分会血栓与止血学组副组长,中国罕见病联盟血友病学组副秘书长,中国血友病青年协作组常务理事长, + 选择 + {{item.introduce}} + + diff --git a/src/patient/pages/selectHostipal/index.scss b/src/patient/pages/selectHostipal/index.scss index aee252c..4f087d0 100644 --- a/src/patient/pages/selectHostipal/index.scss +++ b/src/patient/pages/selectHostipal/index.scss @@ -2,7 +2,7 @@ page { background-color: rgba(247, 247, 250, 1); } .page { - padding: 32rpx 30rpx; + padding: 32rpx 30rpx 80rpx; .bind-doctor { padding: 30rpx 32rpx; background: linear-gradient(40deg, #ffffff 0%, #fff3f2 100%); diff --git a/src/patient/pages/selectHostipal/index.ts b/src/patient/pages/selectHostipal/index.ts index d82f77a..017f756 100644 --- a/src/patient/pages/selectHostipal/index.ts +++ b/src/patient/pages/selectHostipal/index.ts @@ -1,16 +1,116 @@ -const _app = getApp() +const app = getApp() Page({ data: { popupShow: false, + // popupType:'selectHostipal', popupType: 'selectHostipalComplete', - popupParams: { - close: true, - content: '', + popupParams: {} as any, + + selectId: '', + + list: [] as any[], + total: 0, + pagination: { + page: 1, + pages: 1, + count: 1, }, + + search: '', + provinceId: '', + provinceName: '', + cityId: '', + cityName: '', + }, + onLoad() { + app.waitLogin({ type: 1 }).then(() => { + this.getHospitalList() + }) + }, + handleSearch() { + this.getHospitalList(1) + }, + handleAreaChange(e) { + const value = e.detail + this.setData({ + provinceId: value[0].value, + cityId: value[1] ? value[1].value : '', + provinceName: value[0].label, + cityName: value[1] ? value[1].label : '', + }) + this.getHospitalList(1) + }, + getHospitalList(newPage = 1) { + const { search, provinceId, cityId } = this.data + wx.ajax({ + method: 'GET', + url: '?r=wtx/common/get-hospital-list', + data: { + search, + provinceId, + cityId, + page: newPage, + }, + }).then((res) => { + const list = res.page === 1 ? res.list : [...this.data.list, ...res.list] + this.setData({ + total: res.count, + list, + pagination: { + page: res.page, + pages: res.pages, + count: res.count, + }, + }) + }) + }, + onReachBottom() { + const { page, pages } = this.data.pagination + if (pages > page) { + this.getHospitalList(page + 1) + } + }, + handleSelect(e) { + const { index } = e.currentTarget.dataset + const item = this.data.list[index] + this.setData({ + selectId: item.hospitalId, + popupShow: true, + popupType: 'selectHostipal', + popupParams: { + ...item, + }, + }) + }, + handlePopupOk() { + const { popupType } = this.data + if (popupType === 'selectHostipal') { + this.setData({ + popupShow: false, + }) + wx.ajax({ + method: 'POST', + url: '?r=wtx/treatment/save-d-hospital', + data: { + hospitalId: this.data.selectId, + }, + }).then(() => { + this.setData({ + popupShow: true, + popupType: 'selectHostipalComplete', + popupParams: { + close: true, + }, + }) + }) + } }, - onLoad() {}, handlePopupCancel() { + const { popupType } = this.data + if (popupType === 'selectHostipalComplete') { + wx.navigateBack() + } this.setData({ popupShow: false, }) diff --git a/src/patient/pages/selectHostipal/index.wxml b/src/patient/pages/selectHostipal/index.wxml index 87b3275..0cfe93c 100644 --- a/src/patient/pages/selectHostipal/index.wxml +++ b/src/patient/pages/selectHostipal/index.wxml @@ -9,31 +9,35 @@ - + - + - 省份 - 城市 + {{provinceName || '省份'}} + {{cityName || '城市'}} - + - + - 唐山市人民医院 - 河北省唐山市路南区胜利路65号 + {{item.hospitalName}} + {{item.provinceName}}{{item.cityName}}{{item.countyName}}{{item.address}} diff --git a/src/patient/pages/userInfo/index.scss b/src/patient/pages/userInfo/index.scss index 9250283..8cbb1e5 100644 --- a/src/patient/pages/userInfo/index.scss +++ b/src/patient/pages/userInfo/index.scss @@ -5,6 +5,7 @@ page { .page { padding: 48rpx 40rpx; .form { + margin-bottom: 72rpx; padding: 0 32rpx; background-color: #fff; border-radius: 24rpx; @@ -56,16 +57,16 @@ page { } } } - &.form-family{ - .row{ - .label{ + &.form-family { + .row { + .label { width: 7em; } } } } .login-out { - margin-top: 72rpx; + margin-top: 32rpx; padding: 22rpx; line-height: 44rpx; font-size: 32rpx; @@ -73,8 +74,5 @@ page { text-align: center; background-color: #fff; border-radius: 96rpx; - &:last-of-type { - margin-top: 32rpx; - } } } diff --git a/src/patient/pages/userInfo/index.ts b/src/patient/pages/userInfo/index.ts index 0f35aad..54e02cf 100644 --- a/src/patient/pages/userInfo/index.ts +++ b/src/patient/pages/userInfo/index.ts @@ -14,8 +14,8 @@ Page({ userInfo: {}, }, - onLoad() { - app.waitLogin().then(() => { + onShow() { + app.waitLogin({type:1}).then(() => { app.getUserInfo(1).then((userInfo) => { this.setData({ name: userInfo.PatientName, @@ -79,7 +79,7 @@ Page({ url: '?r=wtx/user/reg-logout', data: {}, }).then(() => { - app.startLogin(() => { + app.updateLoginInfo(() => { wx.reLaunch({ url: '/pages/index/index', }) diff --git a/src/patient/pages/userInfo/index.wxml b/src/patient/pages/userInfo/index.wxml index d51bed4..36233f5 100644 --- a/src/patient/pages/userInfo/index.wxml +++ b/src/patient/pages/userInfo/index.wxml @@ -1,5 +1,5 @@ - + {{userInfo.RelationType == 1 ? '我的' : '亲友'}}姓名 @@ -45,6 +45,6 @@ - + diff --git a/typings/index.d.ts b/typings/index.d.ts index 624cda7..d718459 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -47,7 +47,7 @@ interface IAppOption { getUserInfo: (type?: 0 | 1 | 2) => Promise startLogin: (callback?: () => void) => void waitLogin: (params?: { type?: 0 | 1 | 2 | 'any' }) => Promise - checkLoginType: (type: 0 | 1 | 2) => boolean + checkLoginType: (type: 0 | 1 | 2 | 'any') => boolean mpBehavior: (data: { PageName: string; type?: 0 | 1 | 2 | 3 }) => void globalSystemInfo?: globalSystemInfo [propName: string]: any