diff --git a/project.private.config.json b/project.private.config.json
index 703c707..64cb977 100644
--- a/project.private.config.json
+++ b/project.private.config.json
@@ -23,13 +23,27 @@
"miniprogram": {
"list": [
{
- "name": "patient/pages/hormonesResult/index",
- "pathName": "patient/pages/hormonesStart/index",
- "query": "",
+ "name": "patient/pages/liveDetail/index",
+ "pathName": "patient/pages/liveDetail/index",
+ "query": "id=35",
"scene": null,
"launchMode": "default"
},
{
+ "name": "医保-详情",
+ "pathName": "patient/pages/medicalDetail/index",
+ "query": "",
+ "launchMode": "default",
+ "scene": null
+ },
+ {
+ "name": "患者-医保",
+ "pathName": "patient/pages/medical/index",
+ "query": "",
+ "launchMode": "default",
+ "scene": null
+ },
+ {
"name": "医生-激素用药详情",
"pathName": "pages/d_patientHormones/index",
"query": "",
@@ -65,13 +79,6 @@
"scene": null
},
{
- "name": "patient/pages/liveDetail/index",
- "pathName": "patient/pages/liveDetail/index",
- "query": "id=33",
- "launchMode": "default",
- "scene": null
- },
- {
"name": "患者-个人信息",
"pathName": "patient/pages/personalInformation/index",
"query": "bottom=1",
@@ -79,13 +86,6 @@
"scene": null
},
{
- "name": "patient/pages/liveResult/index",
- "pathName": "patient/pages/liveResult/index",
- "query": "id=30&rewardScore=undefined",
- "launchMode": "default",
- "scene": null
- },
- {
"name": "医生-患者详情",
"pathName": "pages/d_patientDetail/index",
"query": "id=21",
diff --git a/src/app.json b/src/app.json
index 7179316..1933a37 100644
--- a/src/app.json
+++ b/src/app.json
@@ -68,7 +68,9 @@
"pages/qolReport/index",
"pages/hormonesStart/index",
"pages/hormones/index",
- "pages/hormonesResult/index"
+ "pages/hormonesResult/index",
+ "pages/medical/index",
+ "pages/medicalDetail/index"
]
},
{
diff --git a/src/components/popup/index.scss b/src/components/popup/index.scss
index dbf4649..a95a6cc 100644
--- a/src/components/popup/index.scss
+++ b/src/components/popup/index.scss
@@ -288,6 +288,157 @@
}
}
+.popup12 {
+ .popup-container {
+ padding: 0 40rpx 40rpx;
+ width: 630rpx;
+ height: 860rpx;
+ box-sizing: border-box;
+ .container {
+ padding: 236rpx 0 0;
+ .c-header {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ .avatar {
+ width: 76rpx;
+ height: 76rpx;
+ border-radius: 50%;
+ }
+ .name {
+ margin-left: 20rpx;
+ font-size: 32rpx;
+ color: #211d2e;
+ font-weight: bold;
+ line-height: 44rpx;
+ }
+ }
+ .code {
+ margin: 60rpx auto 0;
+ display: block;
+ width: 260rpx;
+ height: 260rpx;
+ border-radius: 24rpx;
+ }
+ .tip {
+ margin-top: 60rpx;
+ text-align: center;
+ font-size: 32rpx;
+ color: #211d2e;
+ line-height: 44rpx;
+ }
+ }
+ }
+}
+
+.popup13 {
+ .popup-container {
+ padding: 48rpx 32rpx 32rpx;
+ width: 670rpx;
+ height: 1124rpx;
+ background: linear-gradient(180deg, #f1e6ff 0%, #ffffff 12.03%, #ffffff 100%);
+ border-radius: 32rpx 32rpx 32rpx 32rpx;
+ border: 2rpx solid #ffffff;
+ box-sizing: border-box;
+ .title {
+ font-size: 44rpx;
+ color: #b982ff;
+ text-align: center;
+ font-weight: bold;
+ }
+ .scroll {
+ margin-top: 32rpx;
+ padding: 32rpx 32rpx 32rpx 0;
+ background: #f6f8f9;
+ border-radius: 32rpx 32rpx 32rpx 32rpx;
+ height: 844rpx;
+ overflow-y: auto;
+ box-sizing: border-box;
+ .s-title {
+ font-size: 36rpx;
+ line-height: 60rpx;
+ padding: 0 32rpx;
+ color: #ffffff;
+ border-radius: 0 32rpx 32rpx 0;
+ display: inline-block;
+ background: linear-gradient(344deg, #ffbcf9 0%, #b982ff 100%);
+ margin-top: 28rpx;
+ &:first-of-type {
+ margin-top: 0;
+ }
+ }
+ .content {
+ margin-top: 32rpx;
+ padding: 0 32rpx;
+ font-size: 32rpx;
+ color: #69686e;
+ line-height: 48rpx;
+ .high {
+ color: #b982ff;
+ font-weight: bold;
+ }
+ }
+ .title {
+ margin-top: 32rpx;
+ padding: 0 32rpx;
+ font-size: 32rpx;
+ color: #211d2e;
+ line-height: 48rpx;
+ display: flex;
+ align-items: center;
+ gap: 8rpx;
+ &::before {
+ content: '';
+ width: 8rpx;
+ height: 30rpx;
+ background: #b982ff;
+ border-radius: 2rpx 2rpx 2rpx 2rpx;
+ }
+ }
+ .row {
+ padding: 0 32rpx;
+ .col {
+ margin-top: 24rpx;
+ display: flex;
+ gap: 12rpx;
+ .order {
+ margin-top: 10rpx;
+ flex-shrink: 0;
+ width: 36rpx;
+ height: 36rpx;
+ text-align: center;
+ line-height: 36rpx;
+ font-size: 28rpx;
+ color: #ffffff;
+ border-radius: 50%;
+ background: linear-gradient(344deg, #ffbcf9 0%, #b982ff 100%);
+ }
+ .c-content {
+ font-size: 32rpx;
+ color: #69686e;
+ line-height: 48rpx;
+ .high {
+ color: #b982ff;
+ font-weight: bold;
+ }
+ }
+ }
+ }
+ }
+ .btn {
+ margin-top: 32rpx;
+ width: 606rpx;
+ height: 88rpx;
+ font-size: 36rpx;
+ color: #ffffff;
+ line-height: 88rpx;
+ text-align: center;
+ background: linear-gradient(344deg, #ffbcf9 0%, #b982ff 100%);
+ border-radius: 100rpx 100rpx 100rpx 100rpx;
+ }
+ }
+}
+
.close {
margin: 48rpx auto 0;
display: block;
diff --git a/src/components/popup/index.wxml b/src/components/popup/index.wxml
index db8f18f..2d215d1 100644
--- a/src/components/popup/index.wxml
+++ b/src/components/popup/index.wxml
@@ -105,6 +105,93 @@
+
+
{
+ app.waitLogin({ type: [0, 1, 2] }).then(() => {
+ // 拦截医生直接访问直播详情页
+ if (app.globalData.loginType == 2 && app.globalData.isLogin == 1) {
+ this.doctorLoginOut()
+ return
+ }
app.mpBehavior({
PageName: 'PG_PatientLiveDetails',
detailId: this.data.id,
@@ -77,6 +82,35 @@ Page({
})
})
},
+ doctorLoginOut() {
+ wx.showModal({
+ title: '访问直播活动页需切换至患者端',
+ content: '请问是否继续',
+ confirmColor: '#8c75d0',
+ cancelText: '取消',
+ confirmText: '继续',
+ success: (res) => {
+ if (res.confirm) {
+ wx.ajax({
+ method: 'POST',
+ url: '?r=xd/user/reg-logout',
+ data: {},
+ }).then(() => {
+ app.startLogin(() => {
+ wx.restartMiniProgram({
+ path: `/patient/pages/liveDetail/index?id=${this.data.id}`,
+ })
+ })
+ })
+ }
+ if (res.cancel) {
+ wx.reLaunch({
+ url: '/pages/home/index',
+ })
+ }
+ },
+ })
+ },
onReady() {
this.videoContext = wx.createVideoContext('video')
},
@@ -335,25 +369,24 @@ Page({
})
},
handleDownload() {
- const that = this
wx.getSetting({
- success(res) {
+ success: (res) => {
if (
res.authSetting['scope.writePhotosAlbum'] != undefined
&& res.authSetting['scope.writePhotosAlbum'] == true
) {
- that.saveImage()
+ this.saveImage()
}
else if (res.authSetting['scope.writePhotosAlbum'] == undefined) {
// 获取当前位置
- that.saveImage()
+ this.saveImage()
}
else {
wx.showModal({
title: '请求授权相册权限',
content: '需要保存海报到相册,请确认授权',
confirmColor: '#8c75d0',
- success(res) {
+ success: (res) => {
if (res.cancel) {
// 取消授权
wx.showToast({
@@ -365,9 +398,9 @@ Page({
else if (res.confirm) {
// 确定授权,通过wx.openSetting发起授权请求
wx.openSetting({
- success(res) {
+ success: (res) => {
if (res.authSetting['scope.writePhotosAlbum'] == true) {
- that.saveImage()
+ this.saveImage()
}
else {
wx.showToast({
diff --git a/src/patient/pages/medical/index.json b/src/patient/pages/medical/index.json
new file mode 100644
index 0000000..5c3ccc3
--- /dev/null
+++ b/src/patient/pages/medical/index.json
@@ -0,0 +1,6 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "pickerArea": "/components/pickerArea/index"
+ }
+}
diff --git a/src/patient/pages/medical/index.scss b/src/patient/pages/medical/index.scss
new file mode 100644
index 0000000..4ddecba
--- /dev/null
+++ b/src/patient/pages/medical/index.scss
@@ -0,0 +1,112 @@
+page {
+ background-color: #f6f8f9;
+}
+
+.page {
+ padding-bottom: 80rpx;
+ .page-title {
+ padding-top: 78rpx;
+ padding-left: 60rpx;
+ font-size: 56rpx;
+ color: #b982ff;
+ font-weight: bold;
+ }
+ .page-sub-title {
+ margin-top: 12rpx;
+ padding-left: 60rpx;
+ font-size: 32rpx;
+ color: #4c426b;
+ display: flex;
+ align-items: center;
+ gap: 8rpx;
+ .icon {
+ width: 36rpx;
+ height: 36rpx;
+ }
+ }
+ .form {
+ margin: 32rpx 40rpx 0;
+ padding: 0 32rpx 48rpx;
+ background: linear-gradient(180deg, rgba(243, 233, 255, 0.64) 0%, #ffffff 15.75%, #ffffff 100%);
+ box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(70, 67, 81, 0.06);
+ border-radius: 32rpx 32rpx 32rpx 32rpx;
+ border: 2rpx solid #ffffff;
+ .form-item {
+ padding: 48rpx 0 0;
+ .title {
+ display: flex;
+ align-items: center;
+ gap: 16rpx;
+ font-size: 36rpx;
+ color: #211d2e;
+ font-weight: bold;
+ .icon {
+ width: 16rpx;
+ height: 24rpx;
+ }
+ }
+ .picker-content {
+ position: relative;
+ margin-top: 16rpx;
+ padding: 20rpx 32rpx;
+ background: #f6f8f9;
+ border-radius: 24rpx 24rpx 24rpx 24rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ color: #adacb2;
+ font-size: 36rpx;
+ .disable{
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ }
+ }
+ }
+ .submit-btn {
+ margin-top: 48rpx;
+ height: 88rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 36rpx;
+ color: #ffffff;
+ background: linear-gradient(344deg, #ffbcf9 0%, #b982ff 100%);
+ border-radius: 100rpx 100rpx 100rpx 100rpx;
+ }
+ }
+ .list {
+ margin: 24rpx 40rpx 0;
+ padding: 32rpx;
+ background: linear-gradient(0, #ffffff 0%, #ffffff 83.92%, #f4effd 100%);
+ box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(70, 67, 81, 0.06);
+ border-radius: 32rpx 32rpx 32rpx 32rpx;
+ border: 2rpx solid #ffffff;
+ .list-title {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 16rpx;
+ .content {
+ font-size: 36rpx;
+ color: #211d2e;
+ font-weight: bold;
+ }
+ .icon {
+ width: 68rpx;
+ height: 12rpx;
+ }
+ .icon-rotate {
+ transform: rotate(180deg);
+ }
+ }
+ .card {
+ margin: 24rpx 0 0;
+ display: block;
+ height: 208rpx;
+ border-radius: 24rpx;
+ }
+ }
+}
diff --git a/src/patient/pages/medical/index.ts b/src/patient/pages/medical/index.ts
new file mode 100644
index 0000000..faf4821
--- /dev/null
+++ b/src/patient/pages/medical/index.ts
@@ -0,0 +1,57 @@
+const _app = getApp()
+
+Page({
+ data: {
+ ProvinceName: '',
+ ProvinceId: '',
+ CityName: '',
+ CityId: '',
+
+ hostipalName: '',
+ hostipalId: '',
+ hostipalList: [
+ {
+ id: '1',
+ name: '北京医院',
+ },
+ ],
+ },
+ onLoad() {},
+ handleChangeSite(e: WechatMiniprogram.CustomEvent) {
+ const detail = e.detail
+ this.setData({
+ ProvinceId: detail.ProvinceId,
+ ProvinceName: detail.ProvinceName,
+ CityId: detail.CityId,
+ CityName: detail.CityName,
+ })
+ },
+ handleChange(e) {
+ const { hostipalList } = this.data
+ const hItem = hostipalList[e.detail.value]
+ this.setData({
+ hostipalName: hItem.name,
+ hostipalId: hItem.id,
+ })
+ },
+ handleHostipalDisable() {
+ wx.showToast({
+ title: '请先选择所在城市',
+ icon: 'none',
+ })
+ },
+ handleSubmit() {
+ if (!this.data.hostipalId) {
+ wx.showToast({
+ icon: 'none',
+ title: '请先选择医院',
+ })
+ return
+ }
+ wx.navigateTo({
+ url: '/patient/pages/medicalDetail/index',
+ })
+ },
+})
+
+export {}
diff --git a/src/patient/pages/medical/index.wxml b/src/patient/pages/medical/index.wxml
new file mode 100644
index 0000000..9b85ed6
--- /dev/null
+++ b/src/patient/pages/medical/index.wxml
@@ -0,0 +1,57 @@
+
+
+
+
+ 医保报销查询
+
+
+ 医保政策轻松查询
+
+
+
+
+
+ 我的医保所在城市
+
+
+
+ {{ProvinceName}}{{CityName}}
+ 选择省份城市
+
+
+
+
+
+
+
+ 我就诊的医院
+
+
+
+ {{hostipalName}}
+ 选择就诊医院
+
+
+
+
+
+ 医保查询
+
+
+
+
+ 关于替妥尤单抗
+
+
+
+
+
diff --git a/src/patient/pages/medicalDetail/index.json b/src/patient/pages/medicalDetail/index.json
new file mode 100644
index 0000000..c81a320
--- /dev/null
+++ b/src/patient/pages/medicalDetail/index.json
@@ -0,0 +1,8 @@
+{
+ "usingComponents": {
+ "navbar": "/components/navbar/index",
+ "pickerArea": "/components/pickerArea/index",
+ "van-popup": "@vant/weapp/popup/index",
+ "popup": "/components/popup/index"
+ }
+}
diff --git a/src/patient/pages/medicalDetail/index.scss b/src/patient/pages/medicalDetail/index.scss
new file mode 100644
index 0000000..272f57d
--- /dev/null
+++ b/src/patient/pages/medicalDetail/index.scss
@@ -0,0 +1,189 @@
+page {
+ background-color: #f6f8f9;
+}
+
+.page {
+ padding-bottom: 200rpx;
+ background: linear-gradient(to bottom, #f3ecf8 0%, #f6f8f9 100%) no-repeat top center/100% 412rpx;
+ .banner {
+ margin: 0 40rpx 0;
+ position: relative;
+ padding: 102rpx 32rpx 32rpx;
+ background: linear-gradient(0, #ffffff 0%, #ffffff 81.72%, #f2ebff 100%);
+ box-shadow: 0rpx 4rpx 24rpx 0rpx rgba(70, 67, 81, 0.04);
+ border-radius: 32rpx 32rpx 32rpx 32rpx;
+ border: 2rpx solid #ffffff;
+ .badge {
+ position: absolute;
+ top: -78rpx;
+ left: calc(50% - 78rpx);
+ width: 156rpx;
+ height: 156rpx;
+ background: #ffffff;
+ border-radius: 0rpx 0rpx 0rpx 0rpx;
+ border: 2rpx solid #ece4fa;
+ border-radius: 50%;
+ overflow: hidden;
+ padding: 10rpx;
+ box-sizing: border-box;
+ .b-img {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ .name {
+ font-size: 36rpx;
+ color: #211d2e;
+ text-align: center;
+ font-weight: bold;
+ }
+ .title {
+ padding-top: 12rpx;
+ padding-left: 12rpx;
+ margin-left: -12rpx;
+ margin-top: 32rpx;
+ font-size: 36rpx;
+ color: #211d2e;
+ font-weight: bold;
+ }
+ .content {
+ margin-top: 24rpx;
+ padding: 20rpx 32rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ font-size: 32rpx;
+ color: #211d2e;
+ line-height: 48rpx;
+ background: #f6f8f9;
+ border-radius: 24rpx 24rpx 24rpx 24rpx;
+ border: 2rpx solid #ffffff;
+ .icon {
+ width: 32rpx;
+ height: 32rpx;
+ }
+ }
+ }
+ .container {
+ margin: 24rpx 40rpx 0;
+ position: relative;
+ padding: 0 32rpx 32rpx;
+ background: linear-gradient(0, #ffffff 0%, #ffffff 81.72%, #f2ebff 100%);
+ box-shadow: 0rpx 4rpx 24rpx 0rpx rgba(70, 67, 81, 0.04);
+ border-radius: 32rpx 32rpx 32rpx 32rpx;
+ border: 2rpx solid #ffffff;
+ .c-header {
+ padding: 12rpx 0 12rpx 12rpx;
+ margin-left: -12rpx;
+ margin-top: 32rpx;
+ font-size: 36rpx;
+ color: #211d2e;
+ font-weight: bold;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ .status {
+ font-size: 32rpx;
+ color: #1ec580;
+ font-weight: normal;
+ display: flex;
+ align-items: center;
+ gap: 12rpx;
+ .icon {
+ width: 36rpx;
+ height: 36rpx;
+ }
+ }
+ }
+ .row {
+ margin-top: 32rpx;
+ .r-title {
+ font-size: 32rpx;
+ color: #211d2e;
+ font-weight: bold;
+ display: flex;
+ align-items: center;
+ gap: 12rpx;
+ &::before {
+ content: '';
+ width: 6rpx;
+ height: 32rpx;
+ background-color: #b982ff;
+ border-radius: 32rpx;
+ }
+ }
+ .r-content {
+ margin-top: 24rpx;
+ padding-bottom: 32rpx;
+ font-size: 32rpx;
+ color: #211d2e;
+ line-height: 40rpx;
+ white-space: pre-line;
+ word-break: break-all;
+ border-bottom: 1px solid #f6f8f9;
+ }
+ }
+ .tip {
+ margin-top: 32rpx;
+ font-size: 28rpx;
+ color: #211d2e;
+ }
+ .feedback {
+ margin: 24rpx 0 0;
+ font-size: 32rpx;
+ color: #b982ff;
+ text-align: center;
+ }
+ }
+ .page-footer {
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ box-sizing: border-box;
+ padding: 12rpx 40rpx 80rpx;
+ background-color: #fff;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 22rpx;
+ box-shadow: 0 -10rpx 10rpx #f6f8f9;
+ .btn {
+ height: 88rpx;
+ text-align: center;
+ line-height: 88rpx;
+ flex: 1;
+ font-size: 36rpx;
+ color: #ffffff;
+ background: linear-gradient(344deg, #ffbcf9 0%, #b982ff 100%);
+ border-radius: 100rpx 100rpx 100rpx 100rpx;
+ }
+ }
+}
+
+.popup-consult {
+ padding: 88rpx 50rpx 80rpx;
+ display: flex;
+ align-content: inherit;
+ gap: 30rpx;
+ background: #f6f8f9 linear-gradient(180deg, #f1e6ff 0%, #f6f8f9 49.07%, #f6f8f9 100%);
+ .item {
+ flex: 1;
+ padding: 20rpx;
+ background: #ffffff;
+ border-radius: 24rpx 24rpx 24rpx 24rpx;
+ border: 2rpx solid #ffffff;
+ text-align: center;
+ .icon {
+ margin: 0 auto;
+ display: block;
+ width: 116rpx;
+ height: 104rpx;
+ }
+ .name {
+ margin-top: 10rpx;
+ font-size: 32rpx;
+ color: #211d2e;
+ }
+ }
+}
diff --git a/src/patient/pages/medicalDetail/index.ts b/src/patient/pages/medicalDetail/index.ts
new file mode 100644
index 0000000..040a6a5
--- /dev/null
+++ b/src/patient/pages/medicalDetail/index.ts
@@ -0,0 +1,68 @@
+const _app = getApp()
+
+Page({
+ data: {
+ show: false,
+
+ popupShow: false,
+ // popupType: 'popup12', // 医保客服弹窗
+ popupType: 'popup13', // 医保介绍弹窗
+ popupParams: {
+ close: true,
+ } as any,
+ },
+ onLoad() {},
+ handleInfo() {
+ this.setData({
+ popupShow: true,
+ popupType: 'popup13',
+ })
+ },
+ handleFeedback() {
+ wx.showToast({
+ title: '已收到您的报错反馈',
+ icon: 'none',
+ })
+ },
+ handleConsult() {
+ this.setData({
+ show: true,
+ })
+ },
+ onClose() {
+ this.setData({
+ show: false,
+ })
+ },
+ handlePhone() {
+ wx.makePhoneCall({
+ phoneNumber: '123',
+ })
+ this.onClose()
+ },
+ handleCustomerService() {
+ this.setData({
+ popupShow: true,
+ popupType: 'popup12',
+ })
+ this.onClose()
+ },
+ handleHostipal() {
+ wx.navigateTo({
+ url: `/patient/pages/hospital/index?id=1`,
+ })
+ },
+ handlePopupOk() {
+ const { popupType } = this.data
+ if (popupType === 'popup13') {
+ }
+ this.handlePopupCancel()
+ },
+ handlePopupCancel() {
+ this.setData({
+ popupShow: false,
+ })
+ },
+})
+
+export {}
diff --git a/src/patient/pages/medicalDetail/index.wxml b/src/patient/pages/medicalDetail/index.wxml
new file mode 100644
index 0000000..14bffe7
--- /dev/null
+++ b/src/patient/pages/medicalDetail/index.wxml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+ 北京同仁医院(崇文门院区)
+ 用药方式
+
+ 双通道
+
+
+
+
+
+
+ 起付线
+ 600元,第二次及以上,起付线300元
+
+
+ 个人先行自付比例
+ 20%
+
+
+ 职工医保
+ 报销比例:90%(退休95%)
+
+
+ 居民医保
+
+ 参保人一个年度内因同一病种在同一家医疗机构住院的支付一次起付标准,未经转诊跨县(市)域在省属三级医疗机构住院治疗的,起付线增加0.5倍。报销比例:三级医院75%,省属三级医院70%。
+
+
+
+ 其他信息
+ 1号以后可以申请使用高值药品备案备案成功后方可报销
+
+ 注:各地医保报销比例和具体政策请以当地执行为准
+ 信息有误?点击反馈
+
+
+
+
+
+
+
+
+