diff --git a/.neoconf.json b/.neoconf.json index 437bfce..a97367d 100644 --- a/.neoconf.json +++ b/.neoconf.json @@ -1,10 +1,3 @@ { - "emmet_language_server": { - "init_options": { - "preferences": { - "css.intUnit": "rpx", - "css.floatUnitr": "rpx" - } - } - } + "usingComponents": {} } diff --git a/.prettierrc b/.prettierrc index 12e3063..5f406b8 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,10 +1,10 @@ { - "$schema": "http://json.schemastore.org/prettierrc", + "$schema":"https://json.schemastore.org/prettierrc.json", "printWidth": 120, "tabWidth": 2, "useTabs": false, - "semi": false, - "singleQuote": true, + "semi": true, + "singleQuote": false, "bracketSpacing": true, "trailingComma": "all", "arrowParens": "always", diff --git a/index.d.ts b/index.d.ts index 9d48124..a97367d 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,23 +1,3 @@ -interface IAppOption { - globalData: { - userInfo?: WechatMiniprogram.UserInfo - url: string - upFileUrl: string - imageUrl: string - } - userInfoReadyCallback?: WechatMiniprogram.GetUserInfoSuccessCallback - waitLogin: () => Promise - getMenuInfo: (arg0: WechatMiniprogram.Page.Instance) => void -} - -interface IAgaxParams extends WechatMiniprogram.RequestOption { - showMsg?: boolean - loading?: boolean - isJSON?: boolean -} - -declare namespace WechatMiniprogram { - export interface Wx { - ajax: (arg0: IAgaxParams) => Promise - } +{ + "usingComponents": {} } diff --git a/project.private.config.json b/project.private.config.json index 72f22a2..55d16ea 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -9,6 +9,34 @@ "miniprogram": { "list": [ { + "name": "指派医生", + "pathName": "module1/pages/setDoctor/index", + "query": "id=5", + "launchMode": "default", + "scene": null + }, + { + "name": "医生审核详情", + "pathName": "module1/pages/auditDoctorDetail/index", + "query": "id=5", + "launchMode": "default", + "scene": null + }, + { + "name": "医生认证结果页", + "pathName": "module1/pages/setInfoResult/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { + "name": "选择医院", + "pathName": "module1/pages/sHostipal/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { "name": "聊天室", "pathName": "module1/pages/chatRoom/index", "query": "", @@ -114,20 +142,6 @@ "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": "", @@ -135,29 +149,15 @@ "scene": null }, { - "name": "医生认证结果页", - "pathName": "module1/pages/setInfoResult/index", - "query": "", - "launchMode": "default", - "scene": null - }, - { "name": "创建医院结果页", - "pathName": "module1/pages/cDoctorResult/index", + "pathName": "module1/pages/cHostipalResult/index", "query": "", "launchMode": "default", "scene": null }, { "name": "创建医院", - "pathName": "module1/pages/cDoctor/index", - "query": "", - "launchMode": "default", - "scene": null - }, - { - "name": "选择医院", - "pathName": "module1/pages/sDoctor/index", + "pathName": "module1/pages/cHostipal/index", "query": "", "launchMode": "default", "scene": null diff --git a/src/.DS_Store b/src/.DS_Store index affbb12..42d6340 100644 Binary files a/src/.DS_Store and b/src/.DS_Store differ diff --git a/src/app.json b/src/app.json index 0c2daa3..d27de95 100644 --- a/src/app.json +++ b/src/app.json @@ -14,9 +14,9 @@ "pages/invite/index", "pages/setInfo/index", "pages/setInfoResult/index", - "pages/sDoctor/index", - "pages/cDoctor/index", - "pages/cDoctorResult/index", + "pages/sHostipal/index", + "pages/cHostipal/index", + "pages/cHostipalResult/index", "pages/auditDoctorList/index", "pages/auditDoctorDetail/index", "pages/setDoctor/index", diff --git a/src/app.ts b/src/app.ts index 92fcf00..c596b4c 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,52 +1,107 @@ -import component from '@/utils/component' -import relativeTime from '@/utils/dayjs/relativeTime.js' -import page from '@/utils/page' +import component from "@/utils/component"; +import relativeTime from "@/utils/dayjs/relativeTime.js"; +import page from "@/utils/page"; -import { request } from '@/utils/request' +import { request } from "@/utils/request"; -const dayjs = require('dayjs') -const licia = require('miniprogram-licia') -require('/utils/dayjs/day-zh-cn.js') +const dayjs = require("dayjs"); +const licia = require("miniprogram-licia"); +require("/utils/dayjs/day-zh-cn.js"); -dayjs.locale('zh-cn') // 全局使用 -dayjs.extend(relativeTime) +dayjs.locale("zh-cn"); // 全局使用 +dayjs.extend(relativeTime); App({ globalData: { // 测试号 wx2b0bb13edf717c1d // dev // appid:wxaae50c206446a964 - url: 'https://m.takeda.hbraas.com', - upFileUrl: 'https://m.takeda.hbraas.com/', - imageUrl: 'https://m.takeda.hbraas.com/wt/', + url: "https://m.takeda.hbraas.com", + upFileUrl: "https://m.takeda.hbraas.com/", + imageUrl: "https://m.takeda.hbraas.com/wt/", // pro // appid:wx96f45ca4f1fa36ec // url: 'https://m.takeda.hbraas.com', // upFileUrl: 'https://m.takeda.hbraas.com/', // imageUrl: 'https://m.takeda.hbraas.com/zd/', + + loginState: "", + isLogin: 0, + doctorId: null, }, onLaunch() { - Page = page as WechatMiniprogram.Page.Constructor - Component = component as WechatMiniprogram.Component.Constructor + Page = page as WechatMiniprogram.Page.Constructor; + Component = component as WechatMiniprogram.Component.Constructor; - wx.ajax = licia.curry(request)({ gUrl: this.globalData.url }) + wx.ajax = licia.curry(request)({ gUrl: this.globalData.url }); wx.login({ success: (res) => { - console.log('code', res) + wx.ajax({ + method: "GET", + url: "?r=takeda/user/init-login", + data: { + code: res.code, + }, + }).then((res) => { + this.globalData.loginState = res.loginState; + this.globalData.isLogin = res.isLogin; + this.globalData.doctorId = res.doctorId; + this.globalData.doctorAuditId = res.doctorAuditId; + }); }, - }) + }); }, - waitLogin() { + waitLogin(waitLoginState = false) { + let time: number; return new Promise((resolve, reject) => { - resolve(true) - reject(false) - }) + time = setInterval(() => { + if (this.globalData.loginState) { + clearInterval(time); + if (waitLoginState) { + resolve(true); + } else if (this.globalData.isLogin === 0) { + reject(new Error("未登录")); + wx.reLaunch({ url: "/module1/pages/login/index" }); + } else if (this.globalData.doctorId === null) { + this.getApplyDoctor().then((applyDoctorInfo) => { + if (applyDoctorInfo.AuditStatus === 0) { + wx.reLaunch({ url: "/module1/pages/setInfoResult/index" }); + reject(new Error("还在审核中")); + } else { + wx.reLaunch({ url: "/module1/pages/setInfo/index" }); + reject(new Error("还不是医生")); + } + }); + } else { + resolve(true); + } + } + }, 500); + }); + }, + getApplyDoctor() { + return wx.ajax({ + method: "GET", + url: "?r=takeda/reg/get-apply-doctor", + }); + }, + getUserInfo(self: WechatMiniprogram.Page.Instance, callback?: (res: any) => void) { + wx.ajax({ + method: "GET", + url: "?r=takeda/account/info", + data: {}, + }).then((res) => { + self.setData({ + userInfo: res, + }); + callback?.(res); + }); }, getMenuInfo(self) { - const menuButtonInfo = wx.getMenuButtonBoundingClientRect() + const menuButtonInfo = wx.getMenuButtonBoundingClientRect(); self.setData({ menuButtonInfo, - }) + }); }, -}) +}); diff --git a/src/components/doctorAvatar/index.wxml b/src/components/doctorAvatar/index.wxml index 09d1dd5..5e22659 100644 --- a/src/components/doctorAvatar/index.wxml +++ b/src/components/doctorAvatar/index.wxml @@ -1,5 +1,5 @@ - - + + diff --git a/src/components/pagination/index.js b/src/components/pagination/index.js new file mode 100644 index 0000000..c1a789f --- /dev/null +++ b/src/components/pagination/index.js @@ -0,0 +1,20 @@ +const app = getApp(); + +Component({ + properties: { + pagination: { + type: Object, + value() { + return {}; + }, + }, + }, + data: { + imageUrl: app.globalData.imageUrl, + }, + methods: { + handleTouchmove() { + return false; + }, + }, +}); diff --git a/src/components/pagination/index.json b/src/components/pagination/index.json new file mode 100644 index 0000000..24029b0 --- /dev/null +++ b/src/components/pagination/index.json @@ -0,0 +1,6 @@ +{ + "component": true, + "usingComponents": { + "van-divider": "@vant/weapp/divider/index" + } +} diff --git a/src/components/pagination/index.scss b/src/components/pagination/index.scss new file mode 100644 index 0000000..08a9dea --- /dev/null +++ b/src/components/pagination/index.scss @@ -0,0 +1,6 @@ +/* components/pagination/index.wxss */ +.none { + display: block; + margin: 30rpx auto; + width: 80%; +} diff --git a/src/components/pagination/index.wxml b/src/components/pagination/index.wxml new file mode 100644 index 0000000..ce7ee65 --- /dev/null +++ b/src/components/pagination/index.wxml @@ -0,0 +1,6 @@ + + + + 加载中... + +没有更多了 diff --git a/src/components/popupDoctorDetail/index.ts b/src/components/popupDoctorDetail/index.ts index 7b49439..ab0418e 100644 --- a/src/components/popupDoctorDetail/index.ts +++ b/src/components/popupDoctorDetail/index.ts @@ -1,4 +1,4 @@ -const _app = getApp() +const _app = getApp(); // pages/story/a.ts Component({ @@ -10,6 +10,10 @@ Component({ type: Boolean, value: false, }, + params: { + type: Object, + value: () => {}, + }, }, /** @@ -20,5 +24,9 @@ Component({ /** * 组件的方法列表 */ - methods: {}, -}) + methods: { + onClose() { + this.triggerEvent("close"); + }, + }, +}); diff --git a/src/components/popupDoctorDetail/index.wxml b/src/components/popupDoctorDetail/index.wxml index 8a10fec..2423b03 100644 --- a/src/components/popupDoctorDetail/index.wxml +++ b/src/components/popupDoctorDetail/index.wxml @@ -1,45 +1,37 @@ - + 医生详情 - + - 徐萌 + {{params.DoctorName}} - 主任医师 - - 心内科 + {{params.DoctorTitleName}} + + + {{depart.DepartmentName}} + 所在医院 - 四川华西医院 - 三甲 - 成都市/金牛区 + {{params.HospitalName}} + {{params.HospitalClassificationName}}{{params.HospitalLevelName}} + {{params.CityName}}/{{params.CountyName}} 专长 -
冠心病
-
冠心病
-
冠心病
-
冠心病
+
{{item.SpecialtyName}}
简介 - - 曾任华西医院急诊科副主任、 - 血管疾病腔内治疗中心副主任。目前担任心脏和大血管外科教授、主任医师,硕士研究生导师。曾任华西医院急诊科副主任、血管疾病腔内治疗中心副主任。目前担任心脏和大血管外科教授、主任医师,硕士研究生导师。 - + {{params.Introduce}}
diff --git a/src/components/uploadFile/index.ts b/src/components/uploadFile/index.ts index b6ba5f6..0a23185 100644 --- a/src/components/uploadFile/index.ts +++ b/src/components/uploadFile/index.ts @@ -1,4 +1,4 @@ -const _app = getApp() +const app = getApp(); // pages/story/a.ts Component({ @@ -20,5 +20,76 @@ Component({ /** * 组件的方法列表 */ - methods: {}, -}) + methods: { + GetExtensionFileName(pathfilename) { + const reg = /(\\+)/g; + const pString = pathfilename.replace(reg, "#"); //用正则表达式来将\或\\替换成# + const arr = pString.split("#"); // 以“#”为分隔符,将字符分解为数组 例如 D Program Files bg.png + const lastString = arr[arr.length - 1]; //取最后一个字符 + const arr2 = lastString.split("."); // 再以"."作为分隔符 + return arr2[arr2.length - 1]; //将后缀名返回出来 + }, + handleAfterRead(e) { + this.uploadFile(e.detail.file).then((res) => { + this.triggerEvent("file", res as object); + }); + }, + handleChooseAvatar(e) { + this.uploadFile({ + fileType: "image", + tempFilePath: e.detail.avatarUrl, + size: 0, + }).then((res) => { + this.triggerEvent("file", res as object); + }); + }, + uploadFile(item) { + wx.showLoading({ + title: "正在上传", + }); + return new Promise((resolve, reject) => { + let url = `${app.globalData.upFileUrl}?r=file-service/upload-`; + if (item.fileType === "image") { + url += "img"; + } else if (item.fileType === "video") { + url += "video"; + } else if (item.fileType === "audio") { + url += "audio"; + } else { + url += "doc"; + } + wx.uploadFile({ + filePath: item.tempFilePath, + name: "file", + url, + success: (res) => { + wx.hideLoading(); + const data = JSON.parse(res.data); + const expandJson = { + fileId: "", + name: data.data.Url, + size: (item.size / 1024).toFixed(2), + fileUrl: data.data.Url, + suffix: this.GetExtensionFileName(data.data.Url), + type: item.fileType, + imgUrl: "", + }; + if (item.fileType === "image") { + expandJson.imgUrl = data.data.Url; + } + if (item.fileType === "video") { + expandJson.imgUrl = data.data.SnapshotUrl; + } + resolve(expandJson); + }, + fail() { + wx.hideLoading(); + reject(new Error("上传失败")); + }, + }); + }); + }, + }, +}); + +export {}; diff --git a/src/components/uploadFile/index.wxml b/src/components/uploadFile/index.wxml index e21f98c..01e6525 100644 --- a/src/components/uploadFile/index.wxml +++ b/src/components/uploadFile/index.wxml @@ -1,4 +1,6 @@ - - + + diff --git a/src/images/none.png b/src/images/none.png new file mode 100644 index 0000000..e0c650f Binary files /dev/null and b/src/images/none.png differ diff --git a/src/images/none_1.png b/src/images/none_1.png new file mode 100644 index 0000000..e0c650f Binary files /dev/null and b/src/images/none_1.png differ diff --git a/src/images/user.png b/src/images/user.png index 4ec6bcb..35955fc 100644 Binary files a/src/images/user.png and b/src/images/user.png differ diff --git a/src/module1/pages/auditDoctorDetail/index.scss b/src/module1/pages/auditDoctorDetail/index.scss index 50a6419..7bfd36f 100644 --- a/src/module1/pages/auditDoctorDetail/index.scss +++ b/src/module1/pages/auditDoctorDetail/index.scss @@ -195,7 +195,7 @@ page { } } } - .content{ + .content { margin-top: 24rpx; padding: 32rpx; width: 100%; @@ -207,32 +207,3 @@ page { } } } -.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 index da22dee..544c21f 100644 --- a/src/module1/pages/auditDoctorDetail/index.ts +++ b/src/module1/pages/auditDoctorDetail/index.ts @@ -1,20 +1,115 @@ -const _app = getApp() +const app = getApp(); Page({ data: { show: false, - showReject: true, + showReject: false, showResolve: false, + id: "", + + userInfo: {}, + detail: {} as any, + + RejectReason: "", }, - onLoad() {}, - handleDialogClose() { + onLoad(options) { this.setData({ - show: false, - }) + id: options.id, + onBeforeReject: (e) => { + if (e === "confirm") { + if (!this.data.RejectReason && e === "confirm") { + wx.showToast({ + title: "请填写驳回原因", + icon: "none", + }); + return false; + } + this.onConfirmReject(); + } + + return true; + }, + }); + + app.waitLogin().then(() => { + this.getDetail(); + app.getUserInfo(this); + }); + }, + getDetail() { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/audit-detail", + data: { + AuditId: this.data.id, + }, + }).then((res) => { + this.setData({ + detail: { + ...res, + }, + }); + }); + }, + handleReject() { + this.setData({ + showReject: true, + }); + }, + handleAddReject(e: any) { + const { value } = e.currentTarget.dataset; + this.setData({ + RejectReason: this.data.RejectReason + value, + }); + }, + onConfirmReject() { + const { RejectReason, detail } = this.data; + wx.ajax({ + method: "POST", + url: "?r=takeda/doctor/audit-reject", + data: { + AuditId: detail.AuditId, + RejectReason, + }, + }).then(() => { + wx.navigateBack(); + }); + }, + handleResolve() { + this.setData({ + show: true, + }); + }, + handleSubmit() { + const { detail } = this.data; + wx.ajax({ + method: "POST", + url: "?r=takeda/doctor/audit-pass", + data: { + AuditId: detail.AuditId, + InviteDoctorId: 0, + }, + }).then(() => { + wx.navigateBack(); + }); }, handleSetDoctor() { + const { detail } = this.data; wx.navigateTo({ - url: '/module1/pages/setDoctor/index', - }) + url: `/module1/pages/setDoctor/index?id=${detail.AuditId}`, + }); + }, + handleDialogClose() { + this.setData({ + show: false, + }); }, -}) + handlePreview(e: any) { + const { url } = e.currentTarget.dataset; + wx.previewImage({ + urls: [url], + }); + }, +}); + +export {}; diff --git a/src/module1/pages/auditDoctorDetail/index.wxml b/src/module1/pages/auditDoctorDetail/index.wxml index 40e96c4..e0301d6 100644 --- a/src/module1/pages/auditDoctorDetail/index.wxml +++ b/src/module1/pages/auditDoctorDetail/index.wxml @@ -2,23 +2,20 @@ 提交人 - 王军 + {{detail.Name}} 提交时间 - 2024-6-1 13:34:34 + {{detail.SubmitTime}} - + 姓名 - 王军 + {{detail.Name}} 头衔 @@ -29,14 +26,28 @@ + 预览 + + + 预览 + + 预览 @@ -44,23 +55,23 @@ 所在医院 - 北医三院 + {{detail.HospitalName}} - 驳回 - 通过 + 驳回 + 通过 - 确认通过王欢医生的审核信息? - - 确认通过王欢医生的审核信息? - 您将成为王欢医生的直接上级医生 + 确认通过{{detail.Name}}医生的审核信息? + + 确认通过{{detail.Name}}医生的审核信息? + 您将成为{{detail.Name}}医生的直接上级医生 - + 指派核心医生后通过 被指派医生将帮您提前审核病历 @@ -75,7 +86,7 @@ show="{{ showReject }}" showCancelButton confirm-button-color="rgba(0, 180, 197, 1)" - bind:close="onClose" + before-close="{{onBeforeReject}}" > @@ -83,28 +94,10 @@ 确认审核不通过? 请选择驳回原因 - 资料不符合要求 - 地区不合适 + 资料不符合要求 + 地区不合适 - - - - - - - - - - - 确定审核通过? - 审核通过后,当前医生将成为您的邀约医生,他上传的病历将可以指定您一起讨论病历 + diff --git a/src/module1/pages/auditDoctorList/index.json b/src/module1/pages/auditDoctorList/index.json index 1aa061d..ff5a8af 100644 --- a/src/module1/pages/auditDoctorList/index.json +++ b/src/module1/pages/auditDoctorList/index.json @@ -1,5 +1,7 @@ { "navigationStyle": "default", "navigationBarTitleText": "待审核医生", - "usingComponents": {} + "usingComponents": { + "pagination": "/components/pagination/index" + } } diff --git a/src/module1/pages/auditDoctorList/index.ts b/src/module1/pages/auditDoctorList/index.ts index dc02889..d12bc22 100644 --- a/src/module1/pages/auditDoctorList/index.ts +++ b/src/module1/pages/auditDoctorList/index.ts @@ -1,17 +1,72 @@ -const _app = getApp() +const app = getApp(); Page({ - data: {}, - onLoad() {}, - handlePreview(e: WechatMiniprogram.BaseEvent) { - const { url } = e.currentTarget.dataset + data: { + pagination: { + page: 1, + pages: 1, + count: 1, + }, + list: [], + DoctorTitleType: {}, + }, + onLoad() { + app.waitLogin().then(() => { + this.getList(); + }); + }, + getDoctorDict() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/doctor-dict", + data: {}, + }).then((res) => { + this.setData({ + DoctorTitleType: res.DoctorTitleType, + }); + }); + }, + getList(newPage = 1) { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/audit-list", + data: { + page: newPage, + }, + }).then((res) => { + res.list.forEach((item: any) => { + item.SubmitTime = item.SubmitTime.split(" ")[0]; + }); + const list = res.page === 1 ? res.list : [...this.data.list, ...res.list]; + this.setData({ + 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); + } + }, + handlePreview(e) { + const { url } = e.currentTarget.dataset; wx.previewImage({ urls: [url], - }) + }); }, - handleDetail() { + handleDetail(e) { + const { index } = e.currentTarget.dataset; + const { AuditId } = this.data.list[index]; wx.navigateTo({ - url: '/module1/pages/auditDoctorDetail/index', - }) + url: `/module1/pages/auditDoctorDetail/index?id=${AuditId}`, + }); }, -}) +}); + +export {}; diff --git a/src/module1/pages/auditDoctorList/index.wxml b/src/module1/pages/auditDoctorList/index.wxml index fc818ad..7017705 100644 --- a/src/module1/pages/auditDoctorList/index.wxml +++ b/src/module1/pages/auditDoctorList/index.wxml @@ -1,41 +1,50 @@ -10位医生待您审核 +{{pagination.count}}位医生待您审核 - + - + - 刘青 - 主任医院 + {{item.Name}} + {{item.OtherTitle}} + {{DoctorTitleType[item.TitleType]}} - 北医三院 - 三甲 + {{item.HospitalName}} + {{item.HospitalClassificationName}}{{item.HospitalLevelName}} + + - 提交时间:2024-09-19 - 审核 + 提交时间:{{item.SubmitTime}} + 审核 + diff --git a/src/module1/pages/cDoctor/index.json b/src/module1/pages/cDoctor/index.json deleted file mode 100644 index bed339b..0000000 --- a/src/module1/pages/cDoctor/index.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "navigationBarTitleText": "提交新医院", - "navigationStyle": "default", - "usingComponents": {} -} diff --git a/src/module1/pages/cDoctor/index.ts b/src/module1/pages/cDoctor/index.ts deleted file mode 100644 index a374242..0000000 --- a/src/module1/pages/cDoctor/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -const _app = getApp() - -Page({ - data: { - selectList1: [ - { - name: '一级', - }, - { - name: '二级', - }, - { - name: '三级', - }, - ], - selectList2: [ - { - name: '特等', - }, - { - name: '甲等', - }, - { - name: '乙等', - }, - { - name: '丙等', - }, - ], - }, - onLoad() {}, - handleSubmit() { - wx.navigateTo({ - url: '/module1/pages/cDoctorResult/index', - }) - }, -}) diff --git a/src/module1/pages/cDoctor/index.wxml b/src/module1/pages/cDoctor/index.wxml deleted file mode 100644 index bbf6f23..0000000 --- a/src/module1/pages/cDoctor/index.wxml +++ /dev/null @@ -1,50 +0,0 @@ - - - 审核不通过原因:提交信息有误。 - - - - 医院名称 - - - - - - 医院简称 - - - - - - 城市地区 - - - - - - - - - 详细地址 - - - - - - 医院分级 - - {{item.name}} - - - - 医院分等 - - {{item.name}} - - - - - 取消 - 提交 - - diff --git a/src/module1/pages/cDoctorResult/index.ts b/src/module1/pages/cDoctorResult/index.ts deleted file mode 100644 index b792ee4..0000000 --- a/src/module1/pages/cDoctorResult/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -const _app = getApp(); - -Page({ - data: {}, - onLoad() {}, -}); diff --git a/src/module1/pages/cHostipal/index.json b/src/module1/pages/cHostipal/index.json new file mode 100644 index 0000000..0c863a7 --- /dev/null +++ b/src/module1/pages/cHostipal/index.json @@ -0,0 +1,8 @@ +{ + "navigationBarTitleText": "提交新医院", + "navigationStyle": "default", + "usingComponents": { + "van-cascader": "@vant/weapp/cascader/index", + "van-popup": "@vant/weapp/popup/index" + } +} diff --git a/src/module1/pages/cDoctor/index.scss b/src/module1/pages/cHostipal/index.scss similarity index 100% rename from src/module1/pages/cDoctor/index.scss rename to src/module1/pages/cHostipal/index.scss diff --git a/src/module1/pages/cHostipal/index.ts b/src/module1/pages/cHostipal/index.ts new file mode 100644 index 0000000..942511f --- /dev/null +++ b/src/module1/pages/cHostipal/index.ts @@ -0,0 +1,155 @@ +const app = getApp(); + +Page({ + data: { + hospitalClassification: {}, + hospitalLevel: {}, + applyHostipal: null, + + showArea: false, + area: [], + fieldNames: { text: "label", value: "value", children: "children" }, + + ProvinceName: "", + CityName: "", + CountyName: "", + + AuditId: 0, + Name: "", + ShortName: "", + ProvinceId: "", + CityId: "", + CountyId: "", + Address: "", + HospitalClassification: "", + HospitalLevel: "", + }, + onLoad() { + app.waitLogin(true).then(() => { + this.getHospitalDict(); + this.getArea(); + this.getApplyHostipal(); + }); + }, + getApplyHostipal() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/last-apply-hospital", + data: {}, + }).then((res) => { + if (!Array.isArray(res)) { + this.setData({ + applyHostipal: res, + + AuditId: res.AuditId, + + Name: res.Name, + ShortName: res.ShortName, + ProvinceId: res.ProvinceId, + CityId: res.CityId, + CountyId: res.CountyId, + Address: res.Address, + HospitalClassification: `${res.HospitalClassification}`, + HospitalLevel: `${res.HospitalLevel}`, + + ProvinceName: res.ProvinceName, + CityName: res.CityName, + CountyName: res.CountyName, + }); + } + }); + }, + getHospitalDict() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/hospital-dict", + data: {}, + }).then((res) => { + this.setData({ + hospitalClassification: res.hospitalClassification, + hospitalLevel: res.hospitalLevel, + }); + }); + }, + getArea() { + wx.ajax({ + method: "GET", + url: "/js/area.json", + isJSON: true, + }).then((res) => { + this.setData({ + area: res, + }); + }); + }, + + handleArea() { + this.setData({ + showArea: true, + }); + }, + onClose() { + this.setData({ + showArea: false, + }); + }, + onFinish(e: any) { + this.setData({ + ProvinceId: e.detail.selectedOptions[0].value, + ProvinceName: e.detail.selectedOptions[0].label, + CityId: e.detail.selectedOptions[1].value, + CityName: e.detail.selectedOptions[1].label, + CountyId: e.detail.selectedOptions[2].value, + CountyName: e.detail.selectedOptions[2].label, + showArea: false, + }); + }, + handleSelect(e) { + const { value, key } = e.currentTarget.dataset; + this.setData({ + [key]: value, + }); + }, + handleSubmit() { + const { AuditId, Name, ShortName, ProvinceId, CityId, CountyId, Address, HospitalClassification, HospitalLevel } = + this.data; + if (!Name) { + wx.showToast({ + title: "请输入医院名称", + icon: "none", + }); + return; + } + if (!ProvinceId) { + wx.showToast({ + title: "请选择城市地区", + icon: "none", + }); + return; + } + wx.ajax({ + method: "POST", + url: "?r=takeda/reg/apply-hospital", + data: { + AuditId, + Name, + ShortName, + ProvinceId, + CityId, + CountyId, + Address, + HospitalClassification, + HospitalLevel, + }, + }).then((res) => { + wx.redirectTo({ + url: `/module1/pages/cHostipalResult/index?isf=${res.isFollow}`, + }); + }); + }, + handleCancel() { + wx.navigateBack(); + }, +}); + +export {}; diff --git a/src/module1/pages/cHostipal/index.wxml b/src/module1/pages/cHostipal/index.wxml new file mode 100644 index 0000000..3030c8c --- /dev/null +++ b/src/module1/pages/cHostipal/index.wxml @@ -0,0 +1,100 @@ + + + 审核不通过原因:{{applyHostipal.RejectReason}}。 + + + + + 医院名称 + + + + + + 医院简称 + + + + + + 城市地区 + + + + {{ProvinceName ? ProvinceName+'/' :''}}{{CityName ? CityName+'/' : ''}}{{CountyName}} + + + + + + 详细地址 + + + + + + 医院分级 + + + {{item}} + + + + + 医院分等 + + + {{item}} + + + + + + 取消 + 提交 + + + + + + diff --git a/src/module1/pages/cDoctorResult/index.json b/src/module1/pages/cHostipalResult/index.json similarity index 100% rename from src/module1/pages/cDoctorResult/index.json rename to src/module1/pages/cHostipalResult/index.json diff --git a/src/module1/pages/cDoctorResult/index.scss b/src/module1/pages/cHostipalResult/index.scss similarity index 100% rename from src/module1/pages/cDoctorResult/index.scss rename to src/module1/pages/cHostipalResult/index.scss diff --git a/src/module1/pages/cHostipalResult/index.ts b/src/module1/pages/cHostipalResult/index.ts new file mode 100644 index 0000000..0e0e8fa --- /dev/null +++ b/src/module1/pages/cHostipalResult/index.ts @@ -0,0 +1,24 @@ +const app = getApp(); + +Page({ + data: { + isf: 0, + codeUrl: "", + }, + onLoad(options) { + app.waitLogin(true).then(() => { + const { url, loginState } = app.globalData; + this.setData({ + isf: Number(options.isf), + codeUrl: `${url}?r=takeda/common/get-channel-wx-code&ChannelType=1&loginState=${loginState}`, + }); + }); + }, + handleBack() { + wx.redirectTo({ + url: "/module1/pages/setInfo/index", + }); + }, +}); + +export {}; diff --git a/src/module1/pages/cDoctorResult/index.wxml b/src/module1/pages/cHostipalResult/index.wxml similarity index 70% rename from src/module1/pages/cDoctorResult/index.wxml rename to src/module1/pages/cHostipalResult/index.wxml index 0c7aff0..4e317ca 100644 --- a/src/module1/pages/cDoctorResult/index.wxml +++ b/src/module1/pages/cHostipalResult/index.wxml @@ -5,14 +5,11 @@ 医院信息提交成功 - + 扫码关注公众号 获取审核通知 - 回到首页 + 回到首页 diff --git a/src/module1/pages/login/index.scss b/src/module1/pages/login/index.scss index 68914d5..cfc41b4 100644 --- a/src/module1/pages/login/index.scss +++ b/src/module1/pages/login/index.scss @@ -1,4 +1,14 @@ .page { + position: relative; + .page-line { + position: absolute; + right: 0; + width: 186rpx; + height: 16rpx; + background: #00b4c5; + border-radius: 0rpx 0rpx 0rpx 0rpx; + } + .container { padding: 234rpx 30rpx 80rpx; .title { diff --git a/src/module1/pages/login/index.ts b/src/module1/pages/login/index.ts index f77c697..ca9598b 100644 --- a/src/module1/pages/login/index.ts +++ b/src/module1/pages/login/index.ts @@ -1,8 +1,131 @@ -const app = getApp() +const app = getApp(); +let timer = 0; Page({ data: { menuButtonInfo: {}, + mobile: "", + code: "", + protool: false, + codeText: "发送验证码", }, onLoad() {}, -}) + getCode() { + if (timer) return; + const mobile = this.data.mobile; + if (!mobile) { + wx.showToast({ + title: "手机号不能为空", + icon: "none", + }); + return; + } + // 验证手机号 + if (!/^1[3-9,]\d{9}$/.test(mobile)) { + wx.showToast({ + title: "手机号格式不正确", + icon: "none", + }); + return; + } + wx.ajax({ + method: "POST", + url: "?r=takeda/login/send-verify-code", + data: { + mobile, + }, + }).then(() => { + wx.showToast({ + icon: "none", + title: "验证码已发送~", + }); + let time = 60; + timer = setInterval(() => { + time--; + this.setData({ + codeText: `${time}s后重新发送`, + }); + if (time <= 0) { + clearInterval(timer as number); + timer = null; + this.setData({ + codeText: "发送验证码", + }); + } + }, 1000); + }); + }, + handleSubmit() { + const { mobile, code, protool } = this.data; + if (!protool) { + wx.showToast({ + title: "请先勾选协议", + icon: "none", + }); + return; + } + if (!mobile) { + wx.showToast({ + title: "请输入手机号", + icon: "none", + }); + return; + } + if (!code) { + wx.showToast({ + title: "请输入验证码", + icon: "none", + }); + return; + } + wx.ajax({ + method: "POST", + url: "?r=takeda/login/reg-login", + data: { + mobile, + code, + }, + }).then((_res) => { + this.submitCallback(); + }); + }, + handleWxSubmit(e: any) { + const { protool } = this.data; + const { iv, encryptedData } = e.detail; + if (!protool) { + wx.showToast({ + title: "请先勾选协议", + icon: "none", + }); + return; + } + if (iv && encryptedData) { + wx.ajax({ + method: "POST", + url: "?r=takeda/login/wx-reg-login", + data: { + iv: encodeURIComponent(iv), + encryptedData: encodeURIComponent(encryptedData), + }, + }).then((_res) => { + this.submitCallback(); + }); + } + }, + submitCallback() { + app.globalData.isLogin = 1; + app.waitLogin().then(() => { + wx.reLaunch({ url: "/module1/pages/index/index" }); + }); + }, + handleProtool() { + this.setData({ + protool: !this.data.protool, + }); + }, + handleNavProtool() { + wx.navigateTo({ url: "/module1/pages/loginProtool/index" }); + }, +}); + +export {}; diff --git a/src/module1/pages/login/index.wxml b/src/module1/pages/login/index.wxml index 725f25d..dcfa634 100644 --- a/src/module1/pages/login/index.wxml +++ b/src/module1/pages/login/index.wxml @@ -2,17 +2,30 @@ class="page" style="background: url({{imageUrl}}login-bg.png?r={{Timestamp}}) no-repeat top center/100% 300rpx;padding-top:{{menuButtonInfo.bottom}}px;" > + - + - - 发送验证码 + + {{codeText}} - 立即加入 + 立即加入 @@ -24,9 +37,9 @@ 手机号快捷登录 - + 我已阅读并同意 - 《用户隐私协议》 + 《用户隐私协议》 diff --git a/src/module1/pages/loginProtool/index.ts b/src/module1/pages/loginProtool/index.ts index 70f445d..f9e5080 100644 --- a/src/module1/pages/loginProtool/index.ts +++ b/src/module1/pages/loginProtool/index.ts @@ -1,5 +1,3 @@ -const app = getApp() - Page({ data: { menuButtonInfo: {}, @@ -7,10 +5,23 @@ Page({ }, onLoad() {}, handleScrollToLower(e) { - if (e.detail.direction === 'bottom') { + if (e.detail.direction === "bottom") { this.setData({ wait: false, - }) + }); } }, -}) + handleCancel() { + wx.navigateBack(); + }, + handleOk() { + const pages = getCurrentPages(); //获取当前页面js里面的pages里的所有信息。 + const prevPage = pages[pages.length - 2]; + prevPage.setData({ + protool: true, + }); + this.handleCancel(); + }, +}); + +export {}; diff --git a/src/module1/pages/loginProtool/index.wxml b/src/module1/pages/loginProtool/index.wxml index ed1aeb9..a129f87 100644 --- a/src/module1/pages/loginProtool/index.wxml +++ b/src/module1/pages/loginProtool/index.wxml @@ -46,390 +46,12 @@ reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, - similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti - blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde - neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis - deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias - quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa - reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae - molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. - Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam quas - fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur adipisicing - elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam corporis quisquam - quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet consectetur - adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium veniam - corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor sit, amet - consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit laudantium - veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem ipsum dolor - sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, reprehenderit - laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. Lorem - ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis sit vitae, - reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique - cumque. Lorem ipsum dolor sit, amet consectetur adipisicing elit. Architecto ipsa reiciendis deleniti blanditiis - sit vitae, reprehenderit laudantium veniam corporis quisquam quas fugiat. Beatae molestias quos unde neque et, similique cumque. - 不同意 + 不同意 请上滑阅读完成 - 同意 + 同意 diff --git a/src/module1/pages/sDoctor/index.json b/src/module1/pages/sDoctor/index.json deleted file mode 100644 index 79a895d..0000000 --- a/src/module1/pages/sDoctor/index.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "navigationBarTitleText": "选择医院", - "navigationStyle": "default", - "usingComponents": { - "van-icon": "@vant/weapp/icon/index" - } -} diff --git a/src/module1/pages/sDoctor/index.ts b/src/module1/pages/sDoctor/index.ts deleted file mode 100644 index adeb311..0000000 --- a/src/module1/pages/sDoctor/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -const _app = getApp() - -Page({ - data: {}, - onLoad() {}, - handlePushDoctor() { - wx.navigateTo({ - url: '/module1/pages/cDoctor/index', - }) - }, -}) diff --git a/src/module1/pages/sDoctor/index.wxml b/src/module1/pages/sDoctor/index.wxml deleted file mode 100644 index 852b6d0..0000000 --- a/src/module1/pages/sDoctor/index.wxml +++ /dev/null @@ -1,32 +0,0 @@ - - - - 地区 - - - - - - - - - 没找到您的医院? - 这里录入 - - - - - - 中山大学附属第一医院 - 三甲 - - - 广东省广州市越秀区中山二路58号 - - - - - 没有找到您搜索的医院哦! - 提交新医院 - - diff --git a/src/module1/pages/sHostipal/index.json b/src/module1/pages/sHostipal/index.json new file mode 100644 index 0000000..78890a5 --- /dev/null +++ b/src/module1/pages/sHostipal/index.json @@ -0,0 +1,10 @@ +{ + "navigationBarTitleText": "选择医院", + "navigationStyle": "default", + "usingComponents": { + "van-icon": "@vant/weapp/icon/index", + "pagination": "/components/pagination/index", + "van-cascader": "@vant/weapp/cascader/index", + "van-popup": "@vant/weapp/popup/index" + } +} diff --git a/src/module1/pages/sDoctor/index.scss b/src/module1/pages/sHostipal/index.scss similarity index 100% rename from src/module1/pages/sDoctor/index.scss rename to src/module1/pages/sHostipal/index.scss diff --git a/src/module1/pages/sHostipal/index.ts b/src/module1/pages/sHostipal/index.ts new file mode 100644 index 0000000..1f99af3 --- /dev/null +++ b/src/module1/pages/sHostipal/index.ts @@ -0,0 +1,137 @@ +const app = getApp(); + +Page({ + data: { + prev: "", + + showArea: false, + fieldNames: { text: "label", value: "value", children: "children" }, + + hospitalClassification: {}, + hospitalLevel: {}, + + search: "", + ProvinceId: "", + CityId: "", + CountyId: "", + ProvinceName: "", + CityName: "", + CountyName: "", + pagination: { + page: 1, + pages: 1, + count: 1, + }, + list: [], + + area: [], + }, + onLoad(options) { + if (options.prev) { + this.setData({ + prev: decodeURIComponent(options.prev), + }); + } + app.waitLogin(true).then(() => { + this.getHostipalDict(); + this.getList(); + this.getArea(); + }); + }, + getHostipalDict() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/hospital-dict", + data: {}, + }).then((res) => { + this.setData({ + hospitalClassification: res.hospitalClassification, + hospitalLevel: res.hospitalLevel, + }); + }); + }, + handleSearch() { + this.setData({ + list: [], + }); + this.getList(); + }, + getList(newPage = 1) { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/hospitals", + data: { + page: newPage, + ProvinceId: this.data.ProvinceId, + CityId: this.data.CityId, + CountyId: this.data.CountyId, + Search: this.data.search, + }, + }).then((res) => { + const list = res.page === 1 ? res.list : [...this.data.list, ...res.list]; + this.setData({ + 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); + } + }, + getArea() { + wx.ajax({ + method: "GET", + url: "/js/area.json", + isJSON: true, + }).then((res) => { + this.setData({ + area: res, + }); + }); + }, + handleArea() { + this.setData({ + showArea: true, + }); + }, + onClose() { + this.setData({ + showArea: false, + }); + }, + onFinish(e: any) { + this.setData({ + ProvinceId: e.detail.selectedOptions[0].value, + ProvinceName: e.detail.selectedOptions[0].label, + CityId: e.detail.selectedOptions[1].value, + CityName: e.detail.selectedOptions[1].label, + CountyId: e.detail.selectedOptions[2].value, + CountyName: e.detail.selectedOptions[2].label, + showArea: false, + }); + this.handleSearch(); + }, + + handleSelect(e: any) { + const { index } = e.currentTarget.dataset; + const item: any = this.data.list[index]; + const isParams = this.data.prev.includes("?"); + wx.redirectTo({ + url: `${this.data.prev}${isParams ? "&" : "?"}hid=${item.HospitalId}&hname=${item.ShortName || item.Name}`, + }); + }, + handlePushDoctor() { + wx.navigateTo({ + url: "/module1/pages/cHostipal/index", + }); + }, +}); + +export {}; diff --git a/src/module1/pages/sHostipal/index.wxml b/src/module1/pages/sHostipal/index.wxml new file mode 100644 index 0000000..b8cb980 --- /dev/null +++ b/src/module1/pages/sHostipal/index.wxml @@ -0,0 +1,58 @@ + + + + {{CountyName || '地区'}} + + + + + + + + + 没找到您的医院? + 这里录入 + + + + + + {{item.ShortName || item.Name}} + + {{hospitalClassification[item.HospitalClassification]}}{{hospitalLevel[item.HospitalLevel]}} + + + + + {{item.ProvinceName === item.CityName ? '':item.ProvinceName}} + {{item.CityName}}{{item.CountyName}}{{item.Address}} + + + + + 没有找到您搜索的医院哦! + 提交新医院 + + + + + + + + diff --git a/src/module1/pages/setDoctor/index.json b/src/module1/pages/setDoctor/index.json index 8ffd924..f80c83f 100644 --- a/src/module1/pages/setDoctor/index.json +++ b/src/module1/pages/setDoctor/index.json @@ -3,6 +3,9 @@ "navigationStyle": "default", "usingComponents": { "popupDoctorDetail": "/components/popupDoctorDetail/index", - "doctorAvatar":"/components/doctorAvatar/index" + "doctorAvatar": "/components/doctorAvatar/index", + "van-cascader": "@vant/weapp/cascader/index", + "van-popup": "@vant/weapp/popup/index", + "van-dialog": "@vant/weapp/dialog/index" } } diff --git a/src/module1/pages/setDoctor/index.scss b/src/module1/pages/setDoctor/index.scss index 0f7bfb8..7bc0368 100644 --- a/src/module1/pages/setDoctor/index.scss +++ b/src/module1/pages/setDoctor/index.scss @@ -45,6 +45,14 @@ page { display: flex; align-items: center; justify-content: center; + .option-text { + max-width: 4em; + font-size: 32rpx; + color: rgba(20, 21, 21, 1); + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + } .icon { width: 24rpx; height: 24rpx; @@ -75,19 +83,21 @@ page { } .wrap { .w-header { - display: flex; - align-items: baseline; - gap: 16rpx; .name { + margin-right: 10rpx; + display: inline; font-size: 36rpx; color: rgba(20, 21, 21, 1); font-weight: bold; } .label { + display: inline; font-size: 28rpx; color: rgba(20, 21, 21, 1); } .line { + margin: 0 10rpx; + display: inline-block; width: 1px; height: 24rpx; background-color: rgba(205, 205, 205, 1); @@ -178,3 +188,33 @@ page { } } } + +.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/setDoctor/index.ts b/src/module1/pages/setDoctor/index.ts index b792ee4..b54c154 100644 --- a/src/module1/pages/setDoctor/index.ts +++ b/src/module1/pages/setDoctor/index.ts @@ -1,6 +1,235 @@ -const _app = getApp(); +const app = getApp(); Page({ - data: {}, - onLoad() {}, + data: { + showDetail: false, + popupDoctorDetail: {}, + + showResolve: false, + + showArea: false, + fieldNames: { text: "label", value: "value", children: "children" }, + area: [], + + id: "", + + DoctorTitleType: {}, + hospitalClassification: {}, + hospitalLevel: {}, + SpecialtyList: [], + + Search: "", + HospitalId: "", + HospitalName: "", + ProvinceId: "", + CityId: "", + CountyId: "", + ProvinceName: "", + CityName: "", + CountyName: "", + SpecialtyId: "", + SpecialtyName: "", + + detail: {}, + list: [], + + DoctorId: "", + }, + onLoad(options) { + this.setData({ + id: options.id, + }); + if (options.hid) { + this.setData({ + HospitalId: options.hid, + HospitalName: options.hname, + }); + } + app.waitLogin().then(() => { + this.getDetail(); + this.getList(); + this.getDoctorDict(); + this.getHostipalDict(); + this.getArea(); + }); + }, + getDoctorDict() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/doctor-dict", + data: {}, + }).then((res) => { + const SpecialtyList: any = []; + res.DoctorSpecialtyLabel.forEach((item: any) => { + SpecialtyList.push(...item.options); + }); + this.setData({ + DoctorTitleType: res.DoctorTitleType, + SpecialtyList, + }); + }); + }, + getHostipalDict() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/hospital-dict", + data: {}, + }).then((res) => { + this.setData({ + hospitalClassification: res.hospitalClassification, + hospitalLevel: res.hospitalLevel, + }); + }); + }, + getArea() { + wx.ajax({ + method: "GET", + url: "/js/area.json", + isJSON: true, + }).then((res) => { + this.setData({ + area: res, + }); + }); + }, + getDetail() { + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/audit-detail", + data: { + AuditId: this.data.id, + }, + }).then((res) => { + this.setData({ + detail: res, + }); + }); + }, + handleSearch() { + this.setData({ + list: [], + }); + this.getList(); + }, + getList() { + const { Search, HospitalId, ProvinceId, CityId, CountyId, SpecialtyId } = this.data; + wx.ajax({ + method: "GET", + url: "?r=takeda/doctor/second-doctor-list", + data: { + Search, + HospitalId, + ProvinceId, + CityId, + CountyId, + SpecialtyId, + }, + }).then((res) => { + this.setData({ + list: res.list, + }); + }); + }, + handlePopupDetail(e) { + const { index } = e.currentTarget.dataset; + const { list, DoctorTitleType, hospitalClassification, hospitalLevel } = this.data; + const item: any = list[index]; + this.setData({ + showDetail: true, + popupDoctorDetail: { + DoctorLevel: item.DoctorLevel, + DoctorImg: item.DoctorImg, + DoctorName: item.DoctorName, + DoctorTitleName: item.DoctorTitleType === "99" ? item.DoctorOtherTitle : DoctorTitleType[item.DoctorTitleType], + HospitalName: item.HospitalName, + HospitalClassificationName: hospitalClassification[item.HospitalClassification], + HospitalLevelName: hospitalLevel[item.HospitalLevel], + CityName: item.CityName, + CountyName: item.CountyName, + Introduce: item.Introduce, + department: item.department, + specialty: item.specialty, + }, + }); + }, + handlePopupClose() { + this.setData({ + showDetail: false, + }); + }, + handleHostipal() { + const prev = encodeURIComponent(`/module1/pages/setDoctor/index?id=${this.data.id}`); + wx.redirectTo({ + url: `/module1/pages/sHostipal/index?prev=${prev}}`, + }); + }, + handleArea() { + this.setData({ + showArea: true, + }); + }, + onClose() { + this.setData({ + showArea: false, + showResolve: false, + }); + }, + onFinish(e: any) { + this.setData({ + ProvinceId: e.detail.selectedOptions[0].value, + ProvinceName: e.detail.selectedOptions[0].label, + CityId: e.detail.selectedOptions[1].value, + CityName: e.detail.selectedOptions[1].label, + CountyId: e.detail.selectedOptions[2].value, + CountyName: e.detail.selectedOptions[2].label, + showArea: false, + }); + this.handleSearch(); + }, + handleSpecialChange(e: any) { + const index = e.detail.value; + const { SpecialtyList } = this.data; + const item: any = SpecialtyList[index]; + this.setData({ + SpecialtyId: item.value, + SpecialtyName: item.label, + }); + this.handleSearch(); + }, + + handleRadio(e) { + const { index } = e.currentTarget.dataset; + const { list } = this.data; + this.setData({ + DoctorId: (list as any)[index].DoctorId, + }); + }, + handleResolve() { + const { DoctorId } = this.data; + if (!DoctorId) { + wx.showToast({ + title: "请选择指派医生", + icon: "none", + }); + return; + } + this.setData({ + showResolve: true, + }); + }, + handleSubmit() { + const { id, DoctorId } = this.data; + wx.ajax({ + method: "POST", + url: "?r=takeda/doctor/audit-pass", + data: { AuditId: id, InviteDoctorId: DoctorId }, + }).then(() => { + wx.navigateBack(); + }); + }, + handleBack() { + wx.navigateBack(); + }, }); + +export {}; diff --git a/src/module1/pages/setDoctor/index.wxml b/src/module1/pages/setDoctor/index.wxml index a8da6bf..f40275c 100644 --- a/src/module1/pages/setDoctor/index.wxml +++ b/src/module1/pages/setDoctor/index.wxml @@ -2,73 +2,117 @@ 您将为 - 王欢医生 + {{detail.Name}}医生 指派核心医生,帮助TA一起反馈病历 - + - + - 医院 + {{HospitalName || '医院'}} - - + + - 地区 + {{CountyName || '地区'}} - - + + - 医生专长 + {{SpecialtyName || '医生专长'}} - - - - - - - - 徐萌 - 主任医师 - - 心内科 - - - 北京天坛医院 - 三甲 - 广州市/番禺区 - - - - 心律失常 - 心律失常 - 心律失常 - 心律失常 + + + + + + + + + {{item.DoctorName}} + {{item.DoctorOtherTitle}} + {{DoctorTitleType[item.DoctorTitleType]}} + + + {{depart.DepartmentName}} + + + + {{item.HospitalName}} + + {{hospitalClassification[item.HospitalClassification]}}{{hospitalLevel[item.HospitalLevel]}} + + {{item.CityName}}/{{item.CountyName}} + + + + + {{spec.SpecialtyName}} + + - + - 返回 - 指派并审核通过 + 返回 + 指派并审核通过 - + + + + + + + + + + + 确定审核通过? + 审核通过后,当前医生将成为您的邀约医生,他上传的病历将可以指定您一起讨论病历 + + + diff --git a/src/module1/pages/setInfo/index.scss b/src/module1/pages/setInfo/index.scss index f405e26..2d70d4c 100644 --- a/src/module1/pages/setInfo/index.scss +++ b/src/module1/pages/setInfo/index.scss @@ -23,7 +23,7 @@ border-bottom: 1px solid rgba(224, 224, 224, 0.5); .label { flex-shrink: 0; - width: 6rem; + width: 5.5rem; font-size: 32rpx; color: rgba(133, 133, 133, 1); &.required { @@ -33,7 +33,7 @@ &::before { margin-right: 10rpx; flex-shrink: 0; - content: '*'; + content: "*"; font-size: 32rpx; color: rgba(206, 52, 31, 1); } @@ -77,20 +77,34 @@ } } .select-btn { - display: flex; - gap: 16rpx 20rpx; - flex-wrap: wrap; - .btn { - padding: 10rpx 26rpx; - font-size: 32rpx; - color: rgba(133, 133, 133, 1); - background: #f6f6f6; - border-radius: 68rpx 68rpx 68rpx 68rpx; - &.active { - color: #fff; - background-color: rgba(0, 180, 197, 1); + .wrap { + display: flex; + gap: 16rpx 20rpx; + flex-wrap: wrap; + .btn { + padding: 10rpx 26rpx; + font-size: 32rpx; + color: rgba(133, 133, 133, 1); + background: #f6f6f6; + border-radius: 68rpx 68rpx 68rpx 68rpx; + &.active { + color: #fff; + background-color: rgba(0, 180, 197, 1); + } } } + .other { + padding: 24rpx; + margin-top: 16rpx; + border-radius: 16rpx; + background: #f6f6f6; + font-size: 28rpx; + line-height: 32rpx; + color: #000; + } + .place-other { + color: rgba(205, 205, 205, 1); + } } .credentials { flex: 1; @@ -116,12 +130,12 @@ .upload { padding: 16rpx; background: #f6f6f6; - box-sizing: border-box; border-radius: 16rpx 16rpx 16rpx 16rpx; + height: 116rpx; .u-img { display: block; - width: 160rpx; - height: 103rpx; + width: 180rpx; + height: 116rpx; } } } @@ -135,6 +149,10 @@ .u-img { width: 160rpx; height: 160rpx; + display: block; + } + .u-img-round { + border-radius: 50%; } } } diff --git a/src/module1/pages/setInfo/index.ts b/src/module1/pages/setInfo/index.ts index 17043bc..47de220 100644 --- a/src/module1/pages/setInfo/index.ts +++ b/src/module1/pages/setInfo/index.ts @@ -1,34 +1,182 @@ -const app = getApp() +const app = getApp(); Page({ data: { - titleList: [ - { - name: '主任医师', - }, - { - name: '副主任医师', - }, - { - name: '主治医师', - }, - { - name: '住院医师', - }, - { - name: '其他', - }, - ], + applyDoctorInfo: null, + applyHostipalInfo: null, + invite: false, + DoctorLevel: {}, + DoctorTitleType: {}, + + AuditId: "", + Name: "", + HospitalId: "", + TitleType: "", + OtherTitle: "", + InviteDoctorId: "", + Img: "", + QualificationImg: "", + RegisterImg: "", + PositionImg: "", + }, + onLoad(options) { + if (options.hid) { + this.setData({ + HospitalId: options.hid, + HospitalName: options.hname, + }); + } + app.waitLogin(true).then(() => { + this.getApplyDoctor(); + this.getLoastApplyHostipal(); + this.getDoctorDict(); + }); + }, + getApplyDoctor() { + app.getApplyDoctor().then((res) => { + if (!Array.isArray(res)) { + this.setData({ + applyDoctorInfo: res, + + InviteDoctorName: res.InviteDoctorName, + HospitalName: res.HospitalName, + + AuditId: res.AuditId, + Name: res.Name, + HospitalId: res.HospitalId, + TitleType: `${res.TitleType}`, + OtherTitle: res.OtherTitle, + InviteDoctorId: res.InviteDoctorId, + Img: res.Img, + QualificationImg: res.QualificationImg, + RegisterImg: res.RegisterImg, + PositionImg: res.PositionImg, + }); + } + }); + }, + getLoastApplyHostipal() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/last-apply-hospital", + data: {}, + }).then((res) => { + this.setData({ + applyHostipalInfo: Array.isArray(res) ? null : res, + }); + }); + }, + getDoctorDict() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/doctor-dict", + data: {}, + }).then((res) => { + this.setData({ + DoctorLevel: res.DoctorLevel, + DoctorTitleType: res.DoctorTitleType, + }); + }); }, - onLoad() {}, - handleDoctor() { - wx.navigateTo({ - url: '/module1/pages/sDoctor/index', - }) + handleFile(e) { + const { key } = e.currentTarget.dataset; + this.setData({ + [key]: e.detail.imgUrl, + }); + }, + handleHostipal() { + wx.redirectTo({ + url: `/module1/pages/sHostipal/index?prev=${encodeURIComponent("/module1/pages/setInfo/index")}`, + }); + }, + handleTitleType(e) { + const { value } = e.currentTarget.dataset; + this.setData({ + TitleType: value, + }); }, handleSubmit() { - wx.navigateTo({ - url: '/module1/pages/setInfoResult/index', - }) + const { + AuditId, + Name, + HospitalId, + TitleType, + OtherTitle, + InviteDoctorId, + Img, + QualificationImg, + RegisterImg, + PositionImg, + } = this.data; + if (!Name) { + wx.showToast({ + title: "请输入姓名", + icon: "none", + }); + return; + } + if (!HospitalId) { + wx.showToast({ + title: "请选择医院", + icon: "none", + }); + return; + } + if (!TitleType) { + wx.showToast({ + title: "请选择头衔", + icon: "none", + }); + return; + } + if (TitleType === "99" && !OtherTitle) { + wx.showToast({ + title: "请输入自定义头衔", + icon: "none", + }); + return; + } + if (!RegisterImg) { + wx.showToast({ + icon: "none", + title: "请上传注册证", + }); + return; + } + if (!QualificationImg) { + wx.showToast({ + title: "请上传从业资格证", + icon: "none", + }); + return; + } + if (!PositionImg) { + wx.showToast({ + title: "请上传任职证书", + }); + return; + } + wx.ajax({ + method: "POST", + url: "?r=takeda/reg/apply-doctor", + data: { + AuditId, + Name, + HospitalId, + TitleType, + OtherTitle, + InviteDoctorId, + Img, + QualificationImg, + RegisterImg, + PositionImg, + }, + }).then((res) => { + wx.navigateTo({ + url: `/module1/pages/setInfoResult/index?isf=${res.isFollow}&iname=${res.InviteDoctorName}`, + }); + }); }, -}) +}); + +export {}; diff --git a/src/module1/pages/setInfo/index.wxml b/src/module1/pages/setInfo/index.wxml index b82d3be..f5a5d66 100644 --- a/src/module1/pages/setInfo/index.wxml +++ b/src/module1/pages/setInfo/index.wxml @@ -3,48 +3,80 @@ style="background: url({{imageUrl}}set-info-bg.png?r={{Timestamp}}) no-repeat top center/100% 356rpx;" > - 刘玉医生为您的邀约医生 + 刘玉医生为您的邀约医生 您的姓名 - + 所在医院 - - + + {{HospitalName}} - 您提交的北京市第三人民医院医院信息待审核 + + 您提交的{{applyHostipalInfo.ShortName || applyHostipalInfo.Name}}医院信息待审核 + + + 您提交的{{applyHostipalInfo.ShortName || applyHostipalInfo.Name}}医院信息已驳回 去修改> + 您的头衔 - {{item.name}} + + + {{item}} + + + - 您的姓名 + 您的证件 请上传高清图片 查看示例 - - + + + - - + + + - - + + + @@ -55,8 +87,9 @@ 您的头像 - - + + + diff --git a/src/module1/pages/setInfoResult/index.ts b/src/module1/pages/setInfoResult/index.ts index b792ee4..4c0c1db 100644 --- a/src/module1/pages/setInfoResult/index.ts +++ b/src/module1/pages/setInfoResult/index.ts @@ -1,6 +1,32 @@ -const _app = getApp(); +const app = getApp(); Page({ - data: {}, - onLoad() {}, + data: { + isFollow: 0, + InviteDoctorName: "", + codeUrl: "", + }, + onLoad(options) { + console.log("DEBUGPRINT[6]: index.ts:9: options=", options) + app.waitLogin(true).then(() => { + const { url, loginState } = app.globalData; + this.setData({ + isFollow: Number(options.isf), + InviteDoctorName: options.iname, + codeUrl: `${url}?r=takeda/common/get-channel-wx-code&ChannelType=2&loginState=${loginState}`, + }); + if (!options.iname) { + this.getApplyDoctor(); + } + }); + }, + getApplyDoctor() { + app.getApplyDoctor().then((res) => { + this.setData({ + InviteDoctorName: res.InviteDoctorName, + }); + }); + }, }); + +export {}; diff --git a/src/module1/pages/setInfoResult/index.wxml b/src/module1/pages/setInfoResult/index.wxml index 32b745b..2a82b3d 100644 --- a/src/module1/pages/setInfoResult/index.wxml +++ b/src/module1/pages/setInfoResult/index.wxml @@ -2,20 +2,17 @@ class="page" style="background: url({{imageUrl}}invite-bg.png?r={{Timestamp}}) no-repeat top right/832rpx 1714rpx;padding-top:{{menuButtonInfo.bottom}}px;" > - 医院信息提交成功 - 已将信息提交给 - 王大志医生 - + + 已将信息提交给 + {{InviteDoctorName}}医生 + 审核通过后,您可进入罕心守护项目 - + 扫码关注公众号 获取审核通知 diff --git a/src/pages/home/index.ts b/src/pages/home/index.ts index 8f118e0..6b0f0e3 100644 --- a/src/pages/home/index.ts +++ b/src/pages/home/index.ts @@ -1,4 +1,5 @@ -const _app = getApp() +const app = getApp(); +export {}; Page({ data: { @@ -8,6 +9,7 @@ Page({ onLoad() { this.getTabBar().setData({ active: 1, - }) + }); + app.waitLogin().then(() => {}); }, -}) +}); diff --git a/src/pages/home/index.wxml b/src/pages/home/index.wxml index 0839fbe..05e5c04 100644 --- a/src/pages/home/index.wxml +++ b/src/pages/home/index.wxml @@ -15,7 +15,10 @@ style="background: url({{imageUrl}}home-bind-doctor-bg.png?r={{Timestamp}}) no-repeat top center/100%;" > - 您已绑定陈艺莉医生 + + 您已绑定 + 陈艺莉医生 + 作为您的合作医生 diff --git a/src/pages/start/index.ts b/src/pages/start/index.ts index e40cdf3..4fe61c9 100644 --- a/src/pages/start/index.ts +++ b/src/pages/start/index.ts @@ -1,6 +1,8 @@ -const app = getApp() +const app = getApp(); Page({ data: {}, - onLoad() {}, -}) + onLoad() { + app.waitLogin(); + }, +}); diff --git a/src/pages/start/index.wxml b/src/pages/start/index.wxml index 8ce66e9..27de572 100644 --- a/src/pages/start/index.wxml +++ b/src/pages/start/index.wxml @@ -1,6 +1,6 @@ - 欢迎进入 + 欢迎进入 diff --git a/typings/index.d.ts b/typings/index.d.ts index 40715d4..0b61ca7 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -1,24 +1,69 @@ - interface IAppOption { globalData: { - userInfo?: WechatMiniprogram.UserInfo - url: string - upFileUrl: string - imageUrl: string - } - userInfoReadyCallback?: WechatMiniprogram.GetUserInfoSuccessCallback - waitLogin: () => Promise - getMenuInfo: (arg0: WechatMiniprogram.Page.Instance) => void + userInfo?: IUserInfo; + url: string; + upFileUrl: string; + imageUrl: string; + loginState: string; + isLogin: number; + doctorId: null | number; + doctorAuditId: number; + }; + userInfoReadyCallback?: WechatMiniprogram.GetUserInfoSuccessCallback; + waitLogin: (waitLoginState?: boolean) => Promise; + getMenuInfo: (arg0: WechatMiniprogram.Page.Instance) => void; + getUserInfo: (arg0: WechatMiniprogram.Page.Instance, arg1?: (arg0: any) => void) => void; + getApplyDoctor: () => Promise; } interface IAgaxParams extends WechatMiniprogram.RequestOption { - showMsg?: boolean - loading?: boolean - isJSON?: boolean + showMsg?: boolean; + loading?: boolean; + isJSON?: boolean; } declare namespace WechatMiniprogram { export interface Wx { - ajax: (arg0: IAgaxParams) => Promise + ajax: (arg0: IAgaxParams) => Promise; } } + +interface IUserInfo { + UserId: string; + IsDoctor: number; + DoctorId: number; + Name: string; + Img: string; + Telephone: string; + HospitalId: string; + TitleType: number; + OtherTitle: string; + DoctorLevel: number; + Introduce: string; + Department: IDepartment[]; + DepartmentId: string[]; + Specialty: ISpecialty[]; + SpecialtyId: string[]; + HospitalName: string; + HospitalClassification: string; + HospitalLevel: string; + ProvinceName: string; + CityName: string; + CountyName: string; + Address: string; + HospitalClassificationName: string; + HospitalLevelName: string; +} + +interface IDepartment { + DepartmentId: string; + DepartmentName: string; + DoctorId: string; +} + +interface ISpecialty { + SpecialtyId: string; + SpecialtyName: string; + DepartmentId: string; + DoctorId: string; +}