diff --git a/README.md b/README.md index a0a41b7..a8a26f1 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ 1. user 打开小程序进入 身份认证页面 2. 判断图片是否涂抹 - 3. 图像识别模糊 可以反向确认 通过ocr识别接口 接入ocr同时识别不到 姓名,年龄等字样,及判断该病例已被涂抹 + +https://pic1.zhimg.com/50/v2-dcfbab1219ae4f7a7a6db168bb1580a2_720w.jpg?source=2c26e567 + images svn 地址 svn://39.106.86.127:28386/projects/takeda/proj_src/shop/frontend/web/wt diff --git a/index.html b/index.html new file mode 100644 index 0000000..17c0528 --- /dev/null +++ b/index.html @@ -0,0 +1,11 @@ + + + + + + Document + + + + + diff --git a/project.private.config.json b/project.private.config.json index 80240a4..7524b0e 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -8,6 +8,34 @@ "miniprogram": { "list": [ { + "name": "首页", + "pathName": "pages/home/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "指派医生", + "pathName": "module1/pages/setDoctor/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "医生审核详情", + "pathName": "module1/pages/auditDoctorDetail/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "医生审核列表", + "pathName": "module1/pages/auditDoctorList/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { "name": "医生认证结果页", "pathName": "module1/pages/setInfoResult/index", "query": "", diff --git a/src/app.json b/src/app.json index 80b1816..90c2480 100644 --- a/src/app.json +++ b/src/app.json @@ -1,6 +1,6 @@ { "$schema": "https://dldir1.qq.com/WechatWebDev/editor-extension/wx-json/app.schema.json", - "pages": ["pages/start/index"], + "pages": ["pages/start/index", "pages/home/index", "pages/cases/index"], "subPackages": [ { "root": "echart", @@ -16,7 +16,10 @@ "pages/setInfoResult/index", "pages/sDoctor/index", "pages/cDoctor/index", - "pages/cDoctorResult/index" + "pages/cDoctorResult/index", + "pages/auditDoctorList/index", + "pages/auditDoctorDetail/index", + "pages/setDoctor/index" ] } ], @@ -27,6 +30,19 @@ "navigationBarTextStyle": "black", "navigationStyle": "custom" }, + "tabBar": { + "custom": true, + "list": [ + { + "pagePath": "pages/home/index", + "text": "首页" + }, + { + "pagePath": "pages/cases/index", + "text": "病例" + } + ] + }, "resolveAlias": { "@/*": "/*" }, diff --git a/src/app.ts b/src/app.ts index 618fc4f..92fcf00 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,3 +1,4 @@ +import component from '@/utils/component' import relativeTime from '@/utils/dayjs/relativeTime.js' import page from '@/utils/page' @@ -26,6 +27,7 @@ App({ }, onLaunch() { Page = page as WechatMiniprogram.Page.Constructor + Component = component as WechatMiniprogram.Component.Constructor wx.ajax = licia.curry(request)({ gUrl: this.globalData.url }) diff --git a/src/components/doctorAvatar/index.json b/src/components/doctorAvatar/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/src/components/doctorAvatar/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/src/components/doctorAvatar/index.scss b/src/components/doctorAvatar/index.scss new file mode 100644 index 0000000..2b70efd --- /dev/null +++ b/src/components/doctorAvatar/index.scss @@ -0,0 +1,17 @@ +.avatar { + position: relative; + width: 100%; + height: 100%; + .a-img { + width: 100%; + height: 100%; + border-radius: 50%; + } + .mask { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } +} diff --git a/src/components/doctorAvatar/index.ts b/src/components/doctorAvatar/index.ts new file mode 100644 index 0000000..6613a4e --- /dev/null +++ b/src/components/doctorAvatar/index.ts @@ -0,0 +1,29 @@ +const _app = getApp() + +// pages/story/a.ts +Component({ + /** + * 组件的属性列表 + */ + externalClasses: true, + properties: { + src: { + type: String, + value: '', + }, + level: { + type: Number, + value: 1, + }, + }, + + /** + * 组件的初始数据 + */ + data: {}, + + /** + * 组件的方法列表 + */ + methods: {}, +}) diff --git a/src/components/doctorAvatar/index.wxml b/src/components/doctorAvatar/index.wxml new file mode 100644 index 0000000..09d1dd5 --- /dev/null +++ b/src/components/doctorAvatar/index.wxml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/components/popupDoctorDetail/index.json b/src/components/popupDoctorDetail/index.json new file mode 100644 index 0000000..fa8fca7 --- /dev/null +++ b/src/components/popupDoctorDetail/index.json @@ -0,0 +1,8 @@ +{ + "component": true, + "usingComponents": { + "van-popup": "@vant/weapp/popup/index", + "doctorAvatar": "/components/doctorAvatar/index", + "van-icon": "@vant/weapp/icon/index" + } +} diff --git a/src/components/popupDoctorDetail/index.scss b/src/components/popupDoctorDetail/index.scss new file mode 100644 index 0000000..4f42d44 --- /dev/null +++ b/src/components/popupDoctorDetail/index.scss @@ -0,0 +1,116 @@ +.doctor-detail { + padding: 48rpx 32rpx; + width: 662rpx; + height: 874rpx; + background: #ffffff; + box-sizing: border-box; + border-radius: 16rpx 16rpx 16rpx 16rpx; + .close { + position: absolute; + top: 24rpx; + right: 24rpx; + color: rgba(133, 133, 133, 1); + } + .title { + text-align: center; + font-size: 36rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .user { + display: flex; + gap: 24rpx; + .avatar { + flex-shrink: 0; + width: 112rpx; + height: 112rpx; + } + .wrap { + .name { + font-size: 36rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .w-footer { + margin-top: 16rpx; + .label { + display: inline; + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + } + .line { + vertical-align: middle; + display: inline-block; + margin: 0 12rpx; + width: 1px; + height: 24rpx; + background-color: rgba(205, 205, 205, 1); + } + } + } + } + .row { + padding: 32rpx 0; + display: flex; + border-bottom: 1px solid rgba(224, 224, 224, 0.5); + line-height: 32rpx; + .label { + padding-right: 1em; + flex-shrink: 0; + width: 4em; + font-size: 28rpx; + color: rgba(153, 153, 153, 1); + text-align: right; + } + .hostipal { + flex: 1; + .h-name { + margin-right: 12rpx; + display: inline; + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + } + .h-tag { + margin-right: 12rpx; + display: inline-block; + padding: 0 8rpx; + font-size: 24rpx; + color: rgba(255, 255, 255, 1); + border-radius: 4rpx; + background: #00b4c5; + } + .h-site { + display: inline-block; + padding: 0 8rpx; + font-size: 24rpx; + color: rgba(148, 87, 30, 1); + border-radius: 4rpx; + background-color: rgba(250, 229, 206, 1); + } + } + .specialty { + flex: 1; + display: flex; + flex-wrap: wrap; + gap: 12rpx; + .s-tag { + padding: 0 8rpx; + font-size: 22rpx; + color: rgba(0, 180, 197, 1); + line-height: 32rpx; + border-radius: 4rpx 4rpx 4rpx 4rpx; + border: 1rpx solid #bfeff4; + } + } + .brief-introduction { + flex: 1; + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + line-height: 44rpx; + white-space: pre-line; + } + &:last-of-type { + border-bottom: none; + } + } +} diff --git a/src/components/popupDoctorDetail/index.ts b/src/components/popupDoctorDetail/index.ts new file mode 100644 index 0000000..7b49439 --- /dev/null +++ b/src/components/popupDoctorDetail/index.ts @@ -0,0 +1,24 @@ +const _app = getApp() + +// pages/story/a.ts +Component({ + /** + * 组件的属性列表 + */ + properties: { + show: { + type: Boolean, + value: false, + }, + }, + + /** + * 组件的初始数据 + */ + data: {}, + + /** + * 组件的方法列表 + */ + methods: {}, +}) diff --git a/src/components/popupDoctorDetail/index.wxml b/src/components/popupDoctorDetail/index.wxml new file mode 100644 index 0000000..8a10fec --- /dev/null +++ b/src/components/popupDoctorDetail/index.wxml @@ -0,0 +1,45 @@ + + + + 医生详情 + + + + 徐萌 + + 主任医师 + + 心内科 + + + + + 所在医院 + + 四川华西医院 + 三甲 + 成都市/金牛区 + + + + 专长 + +
冠心病
+
冠心病
+
冠心病
+
冠心病
+
+
+ + 简介 + + 曾任华西医院急诊科副主任、 + 血管疾病腔内治疗中心副主任。目前担任心脏和大血管外科教授、主任医师,硕士研究生导师。曾任华西医院急诊科副主任、血管疾病腔内治疗中心副主任。目前担任心脏和大血管外科教授、主任医师,硕士研究生导师。 + + +
+
diff --git a/src/custom-tab-bar/index.json b/src/custom-tab-bar/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/src/custom-tab-bar/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/src/custom-tab-bar/index.scss b/src/custom-tab-bar/index.scss new file mode 100644 index 0000000..037271c --- /dev/null +++ b/src/custom-tab-bar/index.scss @@ -0,0 +1,54 @@ +.tabbar { + padding: 0 0 calc(env(safe-area-inset-bottom) + 12rpx); + display: flex; + justify-content: space-between; + background-color: #fff; + box-shadow: 0rpx 3rpx 27rpx 0rpx rgba(40, 48, 49, 0.1); + .custom { + flex-shrink: 0; + position: relative; + width: 94rpx; + height: 94rpx; + .add { + position: absolute; + top: -42rpx; + width: 94rpx; + height: 94rpx; + } + } + .tab-item { + flex: 1; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + + .icon { + display: block; + width: 48rpx; + height: 48rpx; + } + .icon-active { + display: none; + width: 48rpx; + height: 48rpx; + } + .name { + margin-top: 8rpx; + font-size: 22rpx; + color: rgba(20, 21, 21, 1); + line-height: 21rpx; + } + &.active { + .icon { + display: none; + } + .icon-active { + display: block; + } + .name { + color: rgba(0, 180, 197, 1); + } + } + } +} diff --git a/src/custom-tab-bar/index.ts b/src/custom-tab-bar/index.ts new file mode 100644 index 0000000..3c80b50 --- /dev/null +++ b/src/custom-tab-bar/index.ts @@ -0,0 +1,59 @@ +const _app = getApp() + +// pages/story/a.ts +Component({ + /** + * 组件的属性列表 + */ + properties: {}, + + /** + * 组件的初始数据 + */ + data: { + tabbar: [ + { + path: '/pages/home/index', + name: '首页', + icon: 'tab1.png', + iconActive: 'tab-active1.png', + }, + { + path: '/pages/home/index', + name: '首页', + icon: 'tab2.png', + iconActive: 'tab-active2.png', + }, + { + custom: true, + path: '/pages/home/index', + }, + { + path: '/pages/home/index', + name: '首页', + icon: 'tab3.png', + iconActive: 'tab-active3.png', + }, + { + path: '/pages/home/index', + name: '首页', + icon: 'tab4.png', + iconActive: 'tab-active3.png', + }, + ], + }, + attached() {}, + + /** + * 组件的方法列表 + */ + methods: { + handleTab(e: any) { + const { index } = e.currentTarget.dataset + const tab = this.data.tabbar[index] + wx.switchTab({ + url: tab.path, + }) + }, + }, +}) diff --git a/src/custom-tab-bar/index.wxml b/src/custom-tab-bar/index.wxml new file mode 100644 index 0000000..fa61949 --- /dev/null +++ b/src/custom-tab-bar/index.wxml @@ -0,0 +1,12 @@ + + + + + + + + + {{item.name}} + + + diff --git a/src/echart/components/homeLevel1/index.json b/src/echart/components/homeLevel1/index.json new file mode 100644 index 0000000..a89ef4d --- /dev/null +++ b/src/echart/components/homeLevel1/index.json @@ -0,0 +1,4 @@ +{ + "component": true, + "usingComponents": {} +} diff --git a/src/echart/components/homeLevel1/index.scss b/src/echart/components/homeLevel1/index.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/echart/components/homeLevel1/index.ts b/src/echart/components/homeLevel1/index.ts new file mode 100644 index 0000000..82539bc --- /dev/null +++ b/src/echart/components/homeLevel1/index.ts @@ -0,0 +1,25 @@ +const _app = getApp(); + +// pages/story/a.ts +Component({ + /** + * 组件的属性列表 + */ + properties: { + + }, + + /** + * 组件的初始数据 + */ + data: { + + }, + + /** + * 组件的方法列表 + */ + methods: { + + } +}) diff --git a/src/echart/components/homeLevel1/index.wxml b/src/echart/components/homeLevel1/index.wxml new file mode 100644 index 0000000..ceea2d8 --- /dev/null +++ b/src/echart/components/homeLevel1/index.wxml @@ -0,0 +1 @@ +11 diff --git a/src/images/.DS_Store b/src/images/.DS_Store index 0427456..c19762b 100644 Binary files a/src/images/.DS_Store and b/src/images/.DS_Store differ diff --git a/src/images/doctor-level2.png b/src/images/doctor-level2.png new file mode 100644 index 0000000..f1da2d6 Binary files /dev/null and b/src/images/doctor-level2.png differ diff --git a/src/images/doctor-level3.png b/src/images/doctor-level3.png new file mode 100644 index 0000000..7a44db4 Binary files /dev/null and b/src/images/doctor-level3.png differ diff --git a/src/images/home-bg.png b/src/images/home-bg.png new file mode 100644 index 0000000..eb67ed4 Binary files /dev/null and b/src/images/home-bg.png differ diff --git a/src/images/home-logo.png b/src/images/home-logo.png new file mode 100644 index 0000000..a409398 Binary files /dev/null and b/src/images/home-logo.png differ diff --git a/src/images/icon-reject.png b/src/images/icon-reject.png new file mode 100644 index 0000000..6d013c5 Binary files /dev/null and b/src/images/icon-reject.png differ diff --git a/src/images/icon-resolve.png b/src/images/icon-resolve.png new file mode 100644 index 0000000..ebde9ce Binary files /dev/null and b/src/images/icon-resolve.png differ diff --git a/src/images/tabbar/add.png b/src/images/tabbar/add.png new file mode 100644 index 0000000..4954509 Binary files /dev/null and b/src/images/tabbar/add.png differ diff --git a/src/images/tabbar/tab-active1.png b/src/images/tabbar/tab-active1.png new file mode 100644 index 0000000..927cced Binary files /dev/null and b/src/images/tabbar/tab-active1.png differ diff --git a/src/images/tabbar/tab-active2.png b/src/images/tabbar/tab-active2.png new file mode 100644 index 0000000..17b8ca7 Binary files /dev/null and b/src/images/tabbar/tab-active2.png differ diff --git a/src/images/tabbar/tab-active3.png b/src/images/tabbar/tab-active3.png new file mode 100644 index 0000000..b2caec4 Binary files /dev/null and b/src/images/tabbar/tab-active3.png differ diff --git a/src/images/tabbar/tab-active4.png b/src/images/tabbar/tab-active4.png new file mode 100644 index 0000000..3753044 Binary files /dev/null and b/src/images/tabbar/tab-active4.png differ diff --git a/src/images/tabbar/tab1.png b/src/images/tabbar/tab1.png new file mode 100644 index 0000000..377f1f4 Binary files /dev/null and b/src/images/tabbar/tab1.png differ diff --git a/src/images/tabbar/tab2.png b/src/images/tabbar/tab2.png new file mode 100644 index 0000000..08a77ba Binary files /dev/null and b/src/images/tabbar/tab2.png differ diff --git a/src/images/tabbar/tab3.png b/src/images/tabbar/tab3.png new file mode 100644 index 0000000..da38759 Binary files /dev/null and b/src/images/tabbar/tab3.png differ diff --git a/src/images/tabbar/tab4.png b/src/images/tabbar/tab4.png new file mode 100644 index 0000000..650ab86 Binary files /dev/null and b/src/images/tabbar/tab4.png differ diff --git a/src/images/text-specialty.png b/src/images/text-specialty.png new file mode 100644 index 0000000..f192f7a Binary files /dev/null and b/src/images/text-specialty.png differ diff --git a/src/module1/pages/auditDoctorDetail/index.json b/src/module1/pages/auditDoctorDetail/index.json new file mode 100644 index 0000000..bb80c7e --- /dev/null +++ b/src/module1/pages/auditDoctorDetail/index.json @@ -0,0 +1,7 @@ +{ + "navigationBarTitleText": "审核详情", + "navigationStyle": "default", + "usingComponents": { + "van-dialog": "@vant/weapp/dialog/index" + } +} diff --git a/src/module1/pages/auditDoctorDetail/index.scss b/src/module1/pages/auditDoctorDetail/index.scss new file mode 100644 index 0000000..34ee470 --- /dev/null +++ b/src/module1/pages/auditDoctorDetail/index.scss @@ -0,0 +1,228 @@ +page { + background-color: rgba(246, 246, 246, 1); +} + +.page { + padding: 24rpx 32rpx 240rpx; + .card { + margin-bottom: 24rpx; + padding: 0 32rpx; + border-radius: 16rpx; + background-color: #fff; + .row { + padding: 32rpx 0; + display: flex; + border-bottom: 1px solid rgba(224, 224, 224, 0.5); + .label { + flex-shrink: 0; + width: 5em; + font-size: 32rpx; + color: rgba(133, 133, 133, 1); + } + .content { + flex: 1; + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + } + .photo-wrap { + flex: 1; + display: grid; + gap: 24rpx; + grid-template-columns: repeat(2, 1fr); + .photo { + position: relative; + display: block; + width: 100%; + height: 152rpx; + border-radius: 16rpx; + .preview { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + padding: 4rpx 0; + font-size: 24rpx; + line-height: 32rpx; + text-align: center; + color: rgba(255, 255, 255, 1); + background: rgba(0, 0, 0, 0.57); + } + } + } + &:last-of-type { + border-bottom: none; + } + } + .user { + padding: 30rpx 0; + .avatar { + margin: 0 auto; + display: block; + width: 160rpx; + height: 160rpx; + border-radius: 50%; + } + } + } + + .footer { + position: fixed; + bottom: 0; + left: 0; + padding: 32rpx 32rpx calc(env(safe-area-inset-bottom) + 32rpx); + width: 100%; + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: space-between; + background-color: #fff; + box-shadow: 0 -10rpx 20rpx rgba(0, 0, 0, 0.1); + .cancel { + width: 332rpx; + height: 88rpx; + text-align: center; + line-height: 88rpx; + font-size: 32rpx; + color: rgba(1, 180, 197, 1); + border-radius: 96rpx 96rpx 96rpx 96rpx; + border: 1rpx solid #01b4c5; + } + .submit { + width: 330rpx; + height: 88rpx; + text-align: center; + line-height: 88rpx; + font-size: 32rpx; + color: #fff; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 96rpx; + } + } +} + +.dialog { + padding: 56rpx 32rpx; + .d-title { + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .btn1 { + margin-top: 32rpx; + padding: 14rpx; + text-align: center; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 60rpx 60rpx 60rpx 60rpx; + .title { + font-size: 32rpx; + color: rgba(255, 255, 255, 1); + } + .explanation { + font-size: 22rpx; + color: rgba(255, 255, 255, 1); + } + } + .btn2 { + margin-top: 32rpx; + padding: 12rpx; + text-align: center; + border-radius: 60rpx 60rpx 60rpx 60rpx; + box-sizing: border-box; + border: 1px solid #00b4c5; + .title { + font-size: 32rpx; + color: rgba(0, 180, 197, 1); + } + .explanation { + font-size: 22rpx; + color: rgba(0, 180, 197, 1); + } + } + .cancel { + margin: 32rpx 0 0; + font-size: 32rpx; + line-height: 44rpx; + color: rgba(0, 180, 197, 1); + text-align: center; + } +} + +.reject { + background-color: transparent; + .r-badge { + position: relative; + z-index: 1; + display: block; + margin: 0 auto; + width: 152rpx; + height: 152rpx; + } + .r-container { + margin-top: -76rpx; + padding: 78rpx 32rpx 40rpx; + background-color: #fff; + border-radius: 32rpx 32rpx 0 0; + .title { + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + text-align: center; + } + .tip { + margin-top: 32rpx; + font-size: 30rpx; + color: rgba(153, 153, 153, 1); + line-height: 44rpx; + } + .select-wrap { + margin-top: 22rpx; + display: flex; + gap: 24rpx; + flex-wrap: wrap; + .btn { + flex: 1; + padding: 10rpx; + border-radius: 84rpx; + font-size: 32rpx; + color: rgba(133, 133, 133, 1); + line-height: 44rpx; + text-align: center; + box-sizing: border-box; + background-color: rgba(246, 246, 246, 1); + &.active { + color: #fff; + background-color: rgba(0, 180, 197, 1); + } + } + } + } +} +.resolve { + background-color: transparent; + .r-badge { + position: relative; + z-index: 1; + display: block; + margin: 0 auto; + width: 152rpx; + height: 152rpx; + } + .r-container { + margin-top: -76rpx; + padding: 78rpx 32rpx 40rpx; + background-color: #fff; + border-radius: 32rpx 32rpx 0 0; + .title { + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + text-align: center; + } + .content { + margin-top: 32rpx; + font-size: 30rpx; + color: rgba(153, 153, 153, 1); + line-height: 44rpx; + } + } +} diff --git a/src/module1/pages/auditDoctorDetail/index.ts b/src/module1/pages/auditDoctorDetail/index.ts new file mode 100644 index 0000000..8681ee9 --- /dev/null +++ b/src/module1/pages/auditDoctorDetail/index.ts @@ -0,0 +1,20 @@ +const _app = getApp() + +Page({ + data: { + show: false, + showReject: false, + showResolve: true, + }, + onLoad() {}, + handleDialogClose() { + this.setData({ + show: false, + }) + }, + handleSetDoctor() { + wx.navigateTo({ + url: '/module1/pages/setDoctor/index', + }) + }, +}) diff --git a/src/module1/pages/auditDoctorDetail/index.wxml b/src/module1/pages/auditDoctorDetail/index.wxml new file mode 100644 index 0000000..1264bb4 --- /dev/null +++ b/src/module1/pages/auditDoctorDetail/index.wxml @@ -0,0 +1,110 @@ + + + + 提交人 + 王军 + + + 提交时间 + 2024-6-1 13:34:34 + + + + + + + + 姓名 + 王军 + + + 头衔 + 主任医师 + + + 证件 + + + 预览 + + + + + 所在医院 + 北医三院 + + + + 驳回 + 通过 + + + + + + 确认通过王欢医生的审核信息? + + 确认通过王欢医生的审核信息? + 您将成为王欢医生的直接上级医生 + + + 指派核心医生后通过 + 被指派医生将帮您提前审核病例 + + 取消 + + + + + + + + + 确认审核不通过? + 请选择驳回原因 + + 资料不符合要求 + 地区不合适 + + + + + + + + + + + 确定审核通过? + 审核通过后,当前医生将成为您的邀约医生,他上传的病历将可以指定您一起讨论病历 + + + + diff --git a/src/module1/pages/auditDoctorList/index.json b/src/module1/pages/auditDoctorList/index.json new file mode 100644 index 0000000..1aa061d --- /dev/null +++ b/src/module1/pages/auditDoctorList/index.json @@ -0,0 +1,5 @@ +{ + "navigationStyle": "default", + "navigationBarTitleText": "待审核医生", + "usingComponents": {} +} diff --git a/src/module1/pages/auditDoctorList/index.scss b/src/module1/pages/auditDoctorList/index.scss new file mode 100644 index 0000000..be4bca3 --- /dev/null +++ b/src/module1/pages/auditDoctorList/index.scss @@ -0,0 +1,96 @@ +page { + background-color: rgba(246, 246, 246, 1); +} +.notice { + padding: 16rpx 64rpx; + font-size: 28rpx; + text-align: center; + line-height: 40rpx; + color: rgba(247, 121, 0, 1); + background-color: rgba(255, 247, 232, 1); +} + +.page { + padding: 28rpx 32rpx; + .list { + .list-item { + margin-bottom: 24rpx; + padding: 32rpx; + border-radius: 16rpx; + background-color: #fff; + .user { + display: flex; + gap: 16rpx; + .avatar { + width: 92rpx; + height: 92rpx; + border-radius: 50%; + } + .wrap { + flex: 1; + .w-header { + display: flex; + line-height: 44rpx; + .name { + margin-right: 16rpx; + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + font-weight: bold; + } + .label { + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + } + } + .w-footer { + line-height: 32rpx; + font-size: 28rpx; + color: rgba(133, 133, 133, 1); + .tag { + padding: 0 8rpx; + display: inline-block; + font-size: 28rpx; + line-height: 32rpx; + color: #fff; + background: #00b4c5; + border-radius: 4rpx 4rpx 4rpx 4rpx; + } + } + } + } + .photo-wrap { + padding: 32rpx 0 0; + display: grid; + gap: 24rpx; + grid-template-columns: repeat(3, 1fr); + .photo { + display: block; + width: 100%; + height: 134rpx; + border-radius: 16rpx; + } + } + .l-footer { + padding-top: 32rpx; + display: flex; + justify-content: space-between; + align-items: center; + .date { + font-size: 28rpx; + color: rgba(153, 153, 153, 1); + } + .btn { + flex-shrink: 0; + width: 126rpx; + height: 48rpx; + font-size: 28rpx; + color: rgba(255, 255, 255, 1); + text-align: center; + line-height: 48rpx; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 64rpx 64rpx 64rpx 64rpx; + } + } + } + } +} diff --git a/src/module1/pages/auditDoctorList/index.ts b/src/module1/pages/auditDoctorList/index.ts new file mode 100644 index 0000000..dc02889 --- /dev/null +++ b/src/module1/pages/auditDoctorList/index.ts @@ -0,0 +1,17 @@ +const _app = getApp() + +Page({ + data: {}, + onLoad() {}, + handlePreview(e: WechatMiniprogram.BaseEvent) { + const { url } = e.currentTarget.dataset + wx.previewImage({ + urls: [url], + }) + }, + handleDetail() { + wx.navigateTo({ + url: '/module1/pages/auditDoctorDetail/index', + }) + }, +}) diff --git a/src/module1/pages/auditDoctorList/index.wxml b/src/module1/pages/auditDoctorList/index.wxml new file mode 100644 index 0000000..fc818ad --- /dev/null +++ b/src/module1/pages/auditDoctorList/index.wxml @@ -0,0 +1,41 @@ +10位医生待您审核 + + + + + + + + + 刘青 + 主任医院 + + + 北医三院 + 三甲 + + + + + + + + 提交时间:2024-09-19 + 审核 + + + + diff --git a/src/module1/pages/setDoctor/index.json b/src/module1/pages/setDoctor/index.json new file mode 100644 index 0000000..8ffd924 --- /dev/null +++ b/src/module1/pages/setDoctor/index.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "指派医生", + "navigationStyle": "default", + "usingComponents": { + "popupDoctorDetail": "/components/popupDoctorDetail/index", + "doctorAvatar":"/components/doctorAvatar/index" + } +} diff --git a/src/module1/pages/setDoctor/index.scss b/src/module1/pages/setDoctor/index.scss new file mode 100644 index 0000000..0f7bfb8 --- /dev/null +++ b/src/module1/pages/setDoctor/index.scss @@ -0,0 +1,180 @@ +page { + background-color: rgba(246, 246, 246, 1); +} +.page { + .header { + padding: 32rpx 32rpx 2rpx; + background-color: #fff; + .tip { + font-size: 28rpx; + color: rgba(20, 21, 21, 1); + .link { + color: rgba(0, 180, 197, 1); + } + } + .search { + margin-top: 32rpx; + padding: 20rpx 30rpx; + display: flex; + align-items: center; + gap: 20rpx; + border-radius: 122rpx; + background-color: rgba(246, 246, 246, 1); + .icon { + width: 32rpx; + height: 32rpx; + } + .input { + flex: 1; + text-align: center; + font-size: 28rpx; + color: #000; + } + .place-input { + color: rgba(205, 205, 205, 1); + } + } + .options { + display: flex; + align-items: center; + justify-content: space-between; + .option-wrap { + flex: 1; + .option { + padding: 30rpx 10rpx; + display: flex; + align-items: center; + justify-content: center; + .icon { + width: 24rpx; + height: 24rpx; + } + } + } + } + } + .list { + padding: 26rpx 32rpx; + .list-item { + display: flex; + align-items: center; + .radio { + transform: scale(0.7); + } + .card { + padding: 32rpx; + border-radius: 16rpx; + background-color: #fff; + display: flex; + gap: 24rpx; + .avatar { + flex-shrink: 0; + position: relative; + width: 112rpx; + height: 112rpx; + } + .wrap { + .w-header { + display: flex; + align-items: baseline; + gap: 16rpx; + .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: 14rpx; + display: flex; + gap: 12rpx; + flex-wrap: wrap; + .wf-label { + flex-shrink: 0; + width: 48rpx; + height: 32rpx; + } + .wf-tag { + flex-shrink: 0; + padding: 0 8rpx; + font-size: 22rpx; + color: rgba(0, 180, 197, 1); + line-height: 32rpx; + border: 1rpx solid rgba(191, 239, 244, 1); + } + } + } + } + } + } + .footer { + position: fixed; + bottom: 0; + left: 0; + padding: 32rpx 32rpx calc(env(safe-area-inset-bottom) + 32rpx); + width: 100%; + box-sizing: border-box; + display: flex; + gap: 26rpx; + align-items: center; + justify-content: space-between; + background-color: #fff; + box-shadow: 0 -10rpx 20rpx rgba(0, 0, 0, 0.1); + .cancel { + width: 230rpx; + height: 84rpx; + text-align: center; + line-height: 88rpx; + font-size: 32rpx; + color: rgba(1, 180, 197, 1); + border-radius: 96rpx 96rpx 96rpx 96rpx; + border: 1rpx solid #01b4c5; + } + .submit { + flex: 1; + height: 88rpx; + text-align: center; + line-height: 88rpx; + font-size: 32rpx; + color: #fff; + background: linear-gradient(90deg, #00b4c5 0%, #54e2b4 100%); + border-radius: 96rpx; + } + } +} diff --git a/src/module1/pages/setDoctor/index.ts b/src/module1/pages/setDoctor/index.ts new file mode 100644 index 0000000..b792ee4 --- /dev/null +++ b/src/module1/pages/setDoctor/index.ts @@ -0,0 +1,6 @@ +const _app = getApp(); + +Page({ + data: {}, + onLoad() {}, +}); diff --git a/src/module1/pages/setDoctor/index.wxml b/src/module1/pages/setDoctor/index.wxml new file mode 100644 index 0000000..ad8c707 --- /dev/null +++ b/src/module1/pages/setDoctor/index.wxml @@ -0,0 +1,74 @@ + + + + 您将为 + 王欢医生 + 指派核心医生,帮助TA一起反馈病例 + + + + + + + + + 医院 + + + + + + 地区 + + + + + + 医生专长 + + + + + + + + + + + + + + 徐萌 + 主任医师 + + 心内科 + + + 北京天坛医院 + 三甲 + 广州市/番禺区 + + + + 心律失常 + 心律失常 + 心律失常 + 心律失常 + + + + + + + + 返回 + 指派并审核通过 + + + + + diff --git a/src/module1/pages/setInfo/index.scss b/src/module1/pages/setInfo/index.scss index 063a53f..f405e26 100644 --- a/src/module1/pages/setInfo/index.scss +++ b/src/module1/pages/setInfo/index.scss @@ -156,7 +156,7 @@ box-shadow: 0 -10rpx 20rpx rgba(0, 0, 0, 0.1); .cancel { width: 332rpx; - height: 88rpx; + height: 84rpx; text-align: center; line-height: 88rpx; font-size: 32rpx; diff --git a/src/pages/cases/index.json b/src/pages/cases/index.json new file mode 100644 index 0000000..a97367d --- /dev/null +++ b/src/pages/cases/index.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} diff --git a/src/pages/cases/index.scss b/src/pages/cases/index.scss new file mode 100644 index 0000000..e69de29 diff --git a/src/pages/cases/index.ts b/src/pages/cases/index.ts new file mode 100644 index 0000000..b792ee4 --- /dev/null +++ b/src/pages/cases/index.ts @@ -0,0 +1,6 @@ +const _app = getApp(); + +Page({ + data: {}, + onLoad() {}, +}); diff --git a/src/pages/cases/index.wxml b/src/pages/cases/index.wxml new file mode 100644 index 0000000..a10af0e --- /dev/null +++ b/src/pages/cases/index.wxml @@ -0,0 +1,2 @@ + +pages/story/index.wxml diff --git a/src/pages/home/index.json b/src/pages/home/index.json new file mode 100644 index 0000000..69247e2 --- /dev/null +++ b/src/pages/home/index.json @@ -0,0 +1,8 @@ +{ + "usingComponents": { + "homeLevel1": "../../echart/components/homeLevel1/index" + }, + "componentPlaceholder": { + "homeLevel1": "view" + } +} diff --git a/src/pages/home/index.scss b/src/pages/home/index.scss new file mode 100644 index 0000000..63d26f5 --- /dev/null +++ b/src/pages/home/index.scss @@ -0,0 +1,7 @@ +.page { + .logo { + margin-left: 32rpx; + width: 160rpx; + height: 36rpx; + } +} diff --git a/src/pages/home/index.ts b/src/pages/home/index.ts new file mode 100644 index 0000000..b792ee4 --- /dev/null +++ b/src/pages/home/index.ts @@ -0,0 +1,6 @@ +const _app = getApp(); + +Page({ + data: {}, + onLoad() {}, +}); diff --git a/src/pages/home/index.wxml b/src/pages/home/index.wxml new file mode 100644 index 0000000..d221d76 --- /dev/null +++ b/src/pages/home/index.wxml @@ -0,0 +1,7 @@ + + + + diff --git a/src/utils/component.ts b/src/utils/component.ts new file mode 100644 index 0000000..63bb477 --- /dev/null +++ b/src/utils/component.ts @@ -0,0 +1,46 @@ +/** + * 使用方法: + * 1、app.js 引入此文件:const page = require('xx/xx/page); + * 2、app.js onLaunch 的时候 Page = page + */ + +const originalComponent = Component + +function component( + config: WechatMiniprogram.Component.Instance< + WechatMiniprogram.Component.DataOption, + WechatMiniprogram.Component.PropertyOption, + WechatMiniprogram.Component.MethodOption, + WechatMiniprogram.Component.BehaviorOption + >, +) { + const originalOnAttached = config.attached + config.attached = function (options) { + setImageParams(this) + getApp().getMenuInfo(this) + + if (originalOnAttached) { + originalOnAttached.call(this, options) + } + } + + return originalComponent(config) +} + +function setImageParams( + currPage: WechatMiniprogram.Component.Instance< + WechatMiniprogram.Component.DataOption, + WechatMiniprogram.Component.PropertyOption, + WechatMiniprogram.Component.MethodOption, + WechatMiniprogram.Component.BehaviorOption + >, +) { + const date = new Date() + const Timestamp = date.getTime() + currPage.setData({ + imageUrl: getApp().globalData.imageUrl, + Timestamp, + }) +} + +export default component diff --git a/src/utils/page.ts b/src/utils/page.ts index 9f9310e..3e91e6c 100644 --- a/src/utils/page.ts +++ b/src/utils/page.ts @@ -4,28 +4,23 @@ * 2、app.js onLaunch 的时候 Page = page */ -const originalPage = Page; +const originalPage = Page -function page( - config: WechatMiniprogram.Page.Instance< - WechatMiniprogram.IAnyObject, - WechatMiniprogram.IAnyObject - >, -) { - const originalOnLoad = config.onLoad; +function page(config: WechatMiniprogram.Page.Instance) { + const originalOnLoad = config.onLoad config.onLoad = function (options) { - setImageParams(this); + setImageParams(this) getApp().getMenuInfo(this) if (originalOnLoad) { - originalOnLoad.call(this, options); + originalOnLoad.call(this, options) } - }; + } - const originalOnShareAppMessage = config.onShareAppMessage; + const originalOnShareAppMessage = config.onShareAppMessage config.onShareAppMessage = function (options) { if (originalOnShareAppMessage) { - return originalOnShareAppMessage.call(this, options); + return originalOnShareAppMessage.call(this, options) } else { // const date = new Date(); // const Timestamp = date.getTime(); @@ -35,28 +30,25 @@ function page( // const url = currentPage.route; return { - title: "武田", - path: "/pages/start/index", + title: '武田', + path: '/pages/start/index', // imageUrl: `${getApp().globalData.imageUrl}1/1.png?t=${Timestamp}`, - }; + } } - }; + } - return originalPage(config); + return originalPage(config) } function setImageParams( - currPage: WechatMiniprogram.Page.Instance< - WechatMiniprogram.IAnyObject, - WechatMiniprogram.IAnyObject - >, + currPage: WechatMiniprogram.Page.Instance, ) { - const date = new Date(); - const Timestamp = date.getTime(); + const date = new Date() + const Timestamp = date.getTime() currPage.setData({ imageUrl: getApp().globalData.imageUrl, - Timestamp: Timestamp, - }); + Timestamp, + }) } -export default page; +export default page diff --git a/tsconfig.json b/tsconfig.json index db97630..c377e06 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,44 +1,30 @@ { "compilerOptions": { + "target": "ES2020", + "lib": ["ES2020"], + "experimentalDecorators": true, "baseUrl": ".", - "strictNullChecks": true, - "noImplicitAny": true, "module": "CommonJS", - "target": "ES2020", + "paths": { + "@vant/weapp/*": ["path/to/node_modules/@vant/weapp/dist/*"], + "@/*": ["src/*"] + }, + "typeRoots": ["./typings"], + "types": ["miniprogram-api-typings"], "allowJs": true, - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "noImplicitThis": true, - "noImplicitReturns": true, + "strict": true, + "strictNullChecks": true, + "strictPropertyInitialization": true, "alwaysStrict": true, "noFallthroughCasesInSwitch": true, + "noImplicitAny": true, + "noImplicitReturns": true, + "noImplicitThis": true, "noUnusedLocals": true, "noUnusedParameters": true, - "strict": true, - "strictPropertyInitialization": true, - "lib": [ - "ES2020" - ], - "types": [ - "miniprogram-api-typings" - ], - "typeRoots": [ - "./typings" - ], - "paths": { - "@vant/weapp/*": [ - "path/to/node_modules/@vant/weapp/dist/*" - ], - "@/*": [ - "src/*" - ] - }, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true }, - "include": [ - "./**/*.ts" - ], - "exclude": [ - "node_modules" - ] + "include": ["./**/*.ts"], + "exclude": ["node_modules"] }