diff --git a/project.private.config.json b/project.private.config.json index b0c312a..68aa6f2 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -9,6 +9,13 @@ "miniprogram": { "list": [ { + "name": "医生认证-选择医生", + "pathName": "module1/pages/setInfoDoctor/index", + "query": "", + "launchMode": "default", + "scene": null + }, + { "name": "学习窗", "pathName": "module1/pages/chatRoom/index", "query": "id=4", diff --git a/src/images/doctor-level2.png b/src/images/doctor-level2.png index f1da2d6..a7422a0 100644 Binary files a/src/images/doctor-level2.png and b/src/images/doctor-level2.png differ diff --git a/src/images/doctor-level3.png b/src/images/doctor-level3.png index 7a44db4..e8b5ce2 100644 Binary files a/src/images/doctor-level3.png and b/src/images/doctor-level3.png differ diff --git a/src/images/doctor-level4.png b/src/images/doctor-level4.png index 1a53672..2a56cf5 100644 Binary files a/src/images/doctor-level4.png and b/src/images/doctor-level4.png differ diff --git a/src/module1/pages/casesFeedback/index.ts b/src/module1/pages/casesFeedback/index.ts index 6b7f61c..ddcd49e 100644 --- a/src/module1/pages/casesFeedback/index.ts +++ b/src/module1/pages/casesFeedback/index.ts @@ -14,12 +14,15 @@ Page({ DoctorLevel: 1, auth: {} as any, + + DeleteAttachmentIds: [] as any, }, onLoad(options) { this.setData({ caseId: options.id, }); app.waitLogin().then(() => { + this.getCache(); app.getUserInfo(this, (res) => { this.setData({ DoctorLevel: res.DoctorLevel, @@ -53,11 +56,53 @@ Page({ }, ], }); + this.imageVerify(detail.fileUrl); + this.handleCache(); }, handleDelPhoto(e) { const { index } = e.currentTarget.dataset; + const { images, DeleteAttachmentIds } = this.data; + if (images[index].attachmentId) { + DeleteAttachmentIds.push(images[index].attachmentId); + } this.setData({ images: this.data.images.filter((_, i) => i !== Number(index)), + DeleteAttachmentIds, + }); + this.handleCache(); + }, + imageVerify(url: string) { + const { images, DeleteAttachmentIds } = this.data; + const LastImagesHash: any = []; + images.forEach((item) => { + if (item.hash) { + LastImagesHash.push(item.hash); + } + }); + wx.ajax({ + method: "POST", + url: "?r=takeda/common/image-verify", + data: { + ImageUrl: url, + LastImagesHash, + DeleteAttachmentIds, + }, + }).then((res) => { + const index = images.findIndex((item) => item.url === url); + const imageItem = images[index]; + if (res.Hash) { + imageItem.hash = res.Hash; + } + if (res.code === 1001) { + wx.showToast({ + title: res.msg, + icon: "none", + }); + imageItem.repeat = true; + } + this.setData({ + images, + }); }); }, handleAudio(e) { @@ -72,6 +117,7 @@ Page({ }, ], }); + this.handleCache(); }, handleDelAudio(e) { wx.showModal({ @@ -84,6 +130,7 @@ Page({ this.setData({ audios: this.data.audios.filter((_, i) => i !== Number(index)), }); + this.handleCache(); } }, }); @@ -103,6 +150,7 @@ Page({ }, ], }); + this.handleCache(); }, handleDelFile(e) { wx.showModal({ @@ -115,6 +163,7 @@ Page({ this.setData({ files: this.data.files.filter((_, i) => i !== Number(index)), }); + this.handleCache(); } }, }); @@ -214,7 +263,6 @@ Page({ handleBack() { wx.navigateBack(); }, - handleSubmit() { const { caseId, isOpen } = this.data; const params = this.formatParams(); @@ -249,6 +297,39 @@ Page({ }, }); }, + getCache() { + const { caseId } = this.data; + wx.ajax({ + method: "GET", + url: "?r=takeda/case/get-feedback-cache", + data: { + caseId, + }, + }).then((res) => { + this.setData({ + images: res.images, + info: res.info, + audios: res.audios, + files: res.files, + }); + }); + }, + handleCache() { + const { caseId, images, info, audios, files } = this.data; + const cacheParams = { + caseId, + images: JSON.stringify(images), + info: `${info}`, + audios: JSON.stringify(audios), + files: JSON.stringify(files), + }; + wx.ajax({ + method: "POST", + url: "?r=takeda/case/save-feedback-cache", + data: cacheParams, + showMsg: false, + }); + }, }); export {}; diff --git a/src/module1/pages/casesFeedback/index.wxml b/src/module1/pages/casesFeedback/index.wxml index a43760f..51209ef 100644 --- a/src/module1/pages/casesFeedback/index.wxml +++ b/src/module1/pages/casesFeedback/index.wxml @@ -9,6 +9,7 @@ placeholder="请输入您的病历备注" auto-height maxlength="{{1000}}" + bind:blur="handleCache" > {{info.length}}/1000 @@ -42,10 +43,10 @@ - + + + 重复图片 + @@ -62,7 +63,14 @@ - + {{item.name}} diff --git a/src/module1/pages/entryCases/index.ts b/src/module1/pages/entryCases/index.ts index 961b741..63b54ff 100644 --- a/src/module1/pages/entryCases/index.ts +++ b/src/module1/pages/entryCases/index.ts @@ -23,6 +23,7 @@ Page({ caseId: "", edit: true, + DeleteAttachmentIds: [] as any, }, onLoad(options) { app.waitLogin().then(async () => { @@ -123,11 +124,51 @@ Page({ }, ], }); + this.imageVerify(detail.fileUrl); }, - handleDelPhoto(e) { + handleDelPhoto(e: any) { const { index } = e.currentTarget.dataset; + const { images, DeleteAttachmentIds } = this.data; + if (images[index].attachmentId) { + DeleteAttachmentIds.push(images[index].attachmentId); + } this.setData({ images: this.data.images.filter((_, i) => i !== Number(index)), + DeleteAttachmentIds, + }); + }, + imageVerify(url: string) { + const { images, DeleteAttachmentIds } = this.data; + const LastImagesHash: any = []; + images.forEach((item) => { + if (item.hash) { + LastImagesHash.push(item.hash); + } + }); + wx.ajax({ + method: "POST", + url: "?r=takeda/common/image-verify", + data: { + ImageUrl: url, + LastImagesHash, + DeleteAttachmentIds, + }, + }).then((res) => { + const index = images.findIndex((item) => item.url === url); + const imageItem = images[index]; + if (res.Hash) { + imageItem.hash = res.Hash; + } + if (res.code === 1001) { + wx.showToast({ + title: res.msg, + icon: "none", + }); + imageItem.repeat = true; + } + this.setData({ + images, + }); }); }, handleAudio(e) { @@ -342,6 +383,11 @@ Page({ handleSave() {}, handleSubmit() {}, handleBack() { + const { images, description, audios, files, deptId, labelIds } = this.data; + if (!images.length && !description && !audios.length && !files.length && !deptId && !labelIds.length) { + wx.navigateBack() + return; + } wx.showModal({ confirmColor: "#00B4C5", cancelColor: "#141515", diff --git a/src/module1/pages/entryCases/index.wxml b/src/module1/pages/entryCases/index.wxml index 7b08381..455ff9f 100644 --- a/src/module1/pages/entryCases/index.wxml +++ b/src/module1/pages/entryCases/index.wxml @@ -14,10 +14,10 @@ - + @@ -66,7 +66,14 @@ - + {{item.name}} diff --git a/src/module1/pages/login/index.ts b/src/module1/pages/login/index.ts index 986508b..c9250f3 100644 --- a/src/module1/pages/login/index.ts +++ b/src/module1/pages/login/index.ts @@ -126,11 +126,9 @@ Page({ wx.navigateTo({ url: "/module1/pages/loginProtool/index" }); } }, - handleNavProtool() { - if (this.data.protool) { - return; - } - wx.navigateTo({ url: "/module1/pages/loginProtool/index" }); + handleNavProtool(e) { + const phone = e?.currentTarget?.dataset?.phone; + wx.navigateTo({ url: `/module1/pages/loginProtool/index?phone=${phone}` }); }, }); diff --git a/src/module1/pages/login/index.wxml b/src/module1/pages/login/index.wxml index 5bc4460..48a2807 100644 --- a/src/module1/pages/login/index.wxml +++ b/src/module1/pages/login/index.wxml @@ -36,7 +36,7 @@ 手机号快捷登录 - diff --git a/src/module1/pages/loginProtool/index.ts b/src/module1/pages/loginProtool/index.ts index bd2fdd6..f4bc810 100644 --- a/src/module1/pages/loginProtool/index.ts +++ b/src/module1/pages/loginProtool/index.ts @@ -1,13 +1,16 @@ +const app = getApp(); Page({ data: { menuButtonInfo: {}, wait: true, ismy: false, - protocol: `

罕心守护

个人信息及隐私保护政策

生效日期:2024年11月15日

罕心守护(“我们”)非常注重保护用户(“您”)的个人信息及隐私。我们希望通过本《罕心守护个人信息及隐私保护政策》(以下简称本“隐私政策”或本“政策”)向您清晰地介绍在使用我们的产品/服务时,我们如何处理您的个人信息,以及我们为您提供的查询、更正、删除以及注销账号的方式。您及您的隐私对于我们至关重要,我们非常重视您的隐私和个人信息的保护。

我们提供的产品/服务包括罕心守护小程序、微信公众号向您提供的各项服务(以下简称“本服务”),适用本隐私政策。

请您在使用本服务前,务必仔细阅读并充分理解本隐私政策。我们将逐一说明我们收集您的个人信息的类型及其对应的用途,以便您了解我们针对某一特定功能或服务所收集的具体个人信息的类别、使用理由及收集方式。需要特别说明的是,本隐私政策不适用于其他第三方向您提供的服务,第三方向您提供的服务适用其向您另行说明的隐私政策。

您在完成勾选并点击“同意”按钮后,本隐私政策即构成对双方有约束力的法律文件,即表示您同意我们按照本隐私政策收集、使用、处理和存储您的相关个人信息。如果您对本隐私政策或相关事宜有任何疑问、意见或建议,可通过本隐私政策「第九章节、如何联系我们」等方式与我们联系。

本隐私政策将帮您了解以下信息:

1.        我们如何收集和使用您的个人信息

2.        我们基于何种目的或场景,收集和使用您的个人信息

3.        我们如何使用Cookie等同类技术

4.        我们如何委托处理、共享、转让、公开披露您的个人信息

5.        我们如何保存、保护您的个人信息

6.        您查阅、更正、限制、拒绝、删除、注销个人信息的权利

7.        未成年人保护

8.        本隐私政策变更及通知

9.        如何联系我们

10.     名词定义和解释

一、我们如何收集和使用您的个人信息

(一)           我们会根据本隐私政策的约定,为实现本平台服务而对所收集的个人信息进行使用。

(二)           我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:合法、正当、必要和诚信原则,目的明确和直接相关原则,公开透明原则、准确性原则、问责性原则、数据安全原则等。同时,我们承诺将按业界成熟的安全标准,采取必要的措施保障您的个人信息的安全。

(三)           我们对您个人信息的使用建立在下述一项或多项合法依据之上:您的同意、对公开信息的合理使用、为履行双方所签署的合同所必须及为遵守我们的法律义务。

二、我们基于何种目的或场景,收集和使用您的个人信息

出于本隐私政策所描述的目的或场景,当您使用本平台服务时,我们可能会收集有关您的如下个人信息。若您不同意提供下列信息,有权拒绝提供或撤回同意,但您可能无法继续使用本平台的全部或部分服务:

(一)           注册、登录与实名认证

1.        当您关注罕心守护微信公众号时,我们会收集您的微信openID以及您关注、取消关注本公众号的行为数据,以便我们识别用户身份。

2.        当您需要使用本平台服务时,您首先需要注册本平台账号并进行实名认证。为注册本平台账号,您需要提供您的openID、手机号;为进行实名认证,您需要提供您的姓名、医院、科室、openID、头衔、证件、头像、专长、简介信息,您后续可以自主在【我的】-【个人信息】中填写或更正您的头像、手机号、科室、专长、简介信息,如果您不提供上述信息,将影响您使用罕心守护平台的基本功能。

(二)           向您提供本平台服务

1.       邀约医生

当您在罕心守护平台使用邀约医生服务时,您需要向邀约医生出示您的邀约码,对方在扫描您的邀约码加入平台时,我们将会收集、储存并发布您的如下个人信息:包括您的姓名、头像、医院、科室、专属标签、头衔、专长、简介信息,当对方被邀约成功后,您的姓名、头像、医院、科室、专属标签、头衔、专长、简介信息将展示在对方的合作医生列表中,且以上信息将向对方以及对方的上级医生公开可见。

2.       病历发布及反馈服务

您可在病历板块中,通过对病历的发布、反馈、分享和获取等方式,与平台其他医生交流病历,您可以自主选择使用以下功能:

1) 您可在罕心守护平台发布自己的病历,用于与其他医生进行交流帮助病历的诊断治疗。当您发布病历时,我们将会收集、储存并发布您的个人信息以及病历信息,个人信息包括您的姓名、头像、医院、科室、专属标签、头衔、专长、简介信息;病历信息包括病历图片、病历备注说明、病历相关文件信息。以上信息将对罕心守护平台的部分医生公开可见。

2) 您可在罕心守护平台对平台其他医生发布的病历进行反馈,当您反馈病历时,我们将会收集、储存并发布您的个人信息以及您的反馈信息,个人信息包括您的姓名、头像、医院、科室、专属标签、头衔、专长、简介信息;反馈信息包括批注内容、反馈图片、以及补充相关文件信息。以上信息将对罕心守护平台的部分医生公开可见。

如您选择在平台发布或反馈病历时,我们特向您告知以下信息:

(1)      您发布的病历内容中,可能会涉及您、您的病人或其他人的个人信息甚至敏感个人信息,如包含个人信息的照片以及包含个人健康信息的数据,请您更加谨慎地考虑,是否在我们平台上公开发布分享相关信息。为了保护您、您的病人或其他人的隐私,如无必要,建议您不要在内容中提及您、您的病人或其他人的真实身份信息。如果我们收到投诉或者得知您公开分享的内容侵犯他人的隐私或其他合法权益,我们将会立即删除相关数据;如果我们意外收集了任何儿童(不满14周岁)的个人信息而并未获得儿童监护人的知情同意,我们将会立即删除相关数据。

(2)      鉴于您上传的病历照片等信息中,将可能包含病人的身份信息、病人的健康生理信息等,这些都属于个人敏感信息,请您谨慎上传或向他人展示,若有上传需求,请在上传时使用平台提供的涂抹功能将所有个人敏感信息进行涂抹后上传。我们不会提取您或您的病人的生物识别信息用于身份识别或任何其他目的。

3.       学习窗服务

您在罕心守护平台上使用学习窗服务时,我们将会收集、储存并发布您的个人信息以及您的聊天信息,个人信息包括您的姓名、头像、医院、科室、专属标签、头衔、专长、简介信息;聊天信息包括文本、图片、视频、语音等所有聊天内容。以上信息将对学习窗中所有的医生公开可见。

您发布的聊天内容中,可能会涉及您、您的病人或其他人的个人信息甚至敏感个人信息,如包含个人信息的照片、视频以及包含个人健康信息的数据,请您谨慎上传或向他人展示。不提供该等信息不会影响您使用罕心守护平台的聊天功能。

4.       为您提供安全保障及更佳的服务体验

当您使用我们的罕心守护小程序、微信公众号等提供的产品或服务时,我们会自动收集您对我们服务的详细使用情况,作为有关网络日志保存。包括浏览、点击查看、搜索查询、分享信息、发布信息,以及IP地址、浏览器类型、电信运营商、使用语言、访问日期和时间、在罕心守护小程序以及微信公众号浏览的内容及时长、浏览记录等。为了保障您的账号安全、交易安全以及系统运行安全,防止欺诈、网络病毒、网络攻击等安全风险,满足法律法规和我们协议规则的相关要求,在您使用我们的产品/服务过程中,经您授权我们会获取您的设备信息,包括您使用的设备属性、连接和状态信息,例如设备型号、唯一设备标识符、设备 MAC 地址、电信运营商等。同时,我们会根据不同操作系统为您提供最佳的浏览体验。请注意,单独的设备信息、日志信息等是无法识别特定自然人身份的信息。如果我们将这类非个人信息与其他信息结合用于识别特定自然人身份,或者将其与个人信息结合使用,则在结合使用期间,这类非个人信息将被视为个人信息,并在取得您授权情况下进行处理。

(三)           处理投诉建议

当您向本平台提起投诉、申诉、提供建议时,为了方便与您联系或帮助您解决问题,我们可能需要您提供姓名、医院(工作单位)、科室、电话号码、电子邮箱等个人信息。如您拒绝提供上述信息,我们可能无法向您及时反馈投诉、申诉或建议结果。

(四)           需征得您同意的例外情形

您知悉并理解,在以下情形下,本平台收集、使用、共享、转让、公开披露您的个人信息无需事先征得您的授权同意:

1.        根据您的需求订立、履行您作为一方当事人的合同所必需;

2.        为履行法定义务所必需;

3.        为应对突发公共卫生事件,或者紧急情况下为保护自然人的生命健康和财产安全所必需;

4.        为公共利益实施新闻报道、舆论监督等行为,在合理的范围内处理个人信息;

5.        依据法律法规规定在合理的范围内处理个人自行公开或者其他已经合法公开的个人信息;以及法律法规规定的其他情形。

(五)           如果您对我们收集和使用您的个人信息的法律依据有任何疑问或需要提供进一步的信息,请通过本隐私政策第九章节「如何联系我们」提供的联系方式与我们联系。

(六)           当我们要将您的个人信息用于本隐私政策未载明的其他目的时,会事先征求您的同意。请您知悉,本平台向您提供的服务可能将不断更新和发展,如果您选择使用本隐私政策中尚未列明的其他功能或服务时,我们会在收集您的个人信息前通过推送通知、更为显著的弹窗等方式向您详细说明信息收集的目的、方式、范围并征求您的同意。

(七)           SDK收集个人信息

SDK名称所属机构处理目的收集个人信息类型处理方式联系方式隐私政策链接

三、我们如何使用Cookie等同类技术

(一)           依托于微信小程序提供的原生能力

为了帮助提升您的产品体验,我们会使用微信提供的一些原生能力来避免您重复登录,并存储您所在城市信息等数据,进而帮助判断您的登录状态、更好的为您提供邀约医生、病历管理及学习窗等服务、判断账户或数据安全。所有的信息获取都会经过您的授权同意才会使用,并且我们不会主动共享或转让您的信息至任何第三方,不会对外公开披露您的任何信息,您可以通过移除小程序的方式删除您已授权的信息。

(二)           Cookies 的使用

我们提供的产品服务中,包含内嵌的网页页面,这些页面会向您提供诸如邀约医生、病历管理、学习窗服务等,为了能够让您体验到更加个性化的服务内容,获得更好的浏览体验,我们会在您的微信内置浏览器上记录Cookies信息,指定给您的Cookies 是唯一的,它只能被将Cookies发布给您的域中的Web服务器读取。大部分手机的微信内置浏览器会自动接受Cookies,我们不会将Cookies用于本隐私政策所述目的之外的任何用途。您可以在微信“我-设置-通用-存储空间-缓存”中清除保存的所有 Cookies,但如果您这么做,您可能需要在每一次访问小程序内嵌网站时重新授权获取相关信息,而且您之前的相关记录信息也会被删除,并且可能会对您所使用服务的安全性有一定影响。

四、我们如何委托处理、共享、转让、公开披露您的个人信息

(一)           委托处理

我们会聘请服务提供商来协助我们提供客户支持。对我们委托处理个人信息的公司、组织和个人,我们会与其签署严格的个人信息保护条款和保密协定,要求他们按照我们的要求、本个人信息保护政策以及其他任何相关的个人信息保护、保密和信息安全措施来处理您的个人信息,并且对他们的个人信息处理活动进行监督。

(二)           共享

我们不会将任何个人信息出售给第三方。我们不会向罕心守护小程序、微信公众号运营公司以外的任何公司、组织和个人提供您的个人信息,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下共享:获得您的单独同意后,我们会与我们所披露的有关个人信息处理者共享您的相关个人信息;

d) 我们可能会根据法律法规规定,或按政府主管部门的强制性要求,向有关主管部门提供您的个人信息;

e) 接入第三方服务的情形,我们可能会接入第三方SDK服务,并将我们依照本政策收集的您某些信息共享给该等第三方服务商,以便提高更好的客户服务和用户体验。请参考阅读罕心守护小程序《第三方信息共享清单》了解详情。

(三)           转让

我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下转让:获得您的单独同意后,我们会向我们所披露的有关个人信息处理者转让您的相关个人信息;

b) 在涉及合并、分立、解散、被宣告破产时,如涉及到个人信息转让,我们会向您告知接收方的名称或者姓名和联系方式。如接收方变更原先的处理目的、处理方式的,我们将要求该接收方重新取得您的同意。

(四)           公开披露

我们仅会在获得您明确同意后,公开披露您的个人信息。

五、我们如何保存、保护您的个人信息

(一)           保存地点

我们依照法律法规的规定,将在境内运营过程中收集和产生的您的个人信息存储于中华人民共和国境内。目前,我们不会将上述信息传输至其他地区,如果我们向其他地区传输,我们将遵循相关国家规定或者征求您的同意。

(二)           保存时间

我们会采取一切合理可行的措施,确保未收集无关的个人信息。罕心守护小程序、微信公众号中个人信息储存必要期限是罕心守护小程序、微信公众号为您终止服务后3年。超出必要期限后,我们将对您的个人信息进行删除或匿名化处理,但法律法规另有规定的除外。

(三)           保护措施

我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。例如,我们会使用加密技术(例如SSL)确保数据的保密性;我们会使用受信赖的保护机制防止数据遭到恶意攻击;我们会部署访问控制机制,确保只有授权人员才可访问个人信息;以及我们会举办安全和隐私保护培训课程,加强员工对于保护个人信息重要性的认识。

互联网环境并非百分之百安全,我们将尽力确保或担保您发送给我们的任何信息的安全性。如果我们的物理、技术、或管理防护设施遭到破坏,导致信息被非授权访问、公开披露、篡改、或毁坏,导致您的合法权益受损,我们将承担相应的法律责任。

(四)           数据安全能力

我们会使用不低于行业同行的加密技术、匿名化处理及相关合理可行的手段保护您的个人信息,并使用安全保护机制防止您的个人信息遭到恶意攻击。

我们会建立专门的安全部门、安全管理制度、数据安全流程保障您的个人信息安全。我们采取严格的数据使用和访问制度,确保只有授权人员才可访问您的个人信息,并适时对数据和技术进行安全审计。

(五)           安全事件处理

在不幸发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告。 同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。

六、您查阅、更正、限制、拒绝、删除、注销个人信息的权利

我们非常重视并保护您对于个人信息处理活动中的知情权、决定权、限制权、拒绝权等权利,并为您提供了行使在个人信息处理活动中相关权利的方法。

(一)           查阅权和更正权

除法律法规规定的情形除外,您有权随时查阅和更正您的个人信息,您可以通过在本平台的【我的】-【个人信息】查阅或更正您的个人信息,包括头像、手机号、科室、专长、简介等信息。

(二)           限制或拒绝权

对于您个人信息的收集和使用,您可以在本平台上随时通过以下方式撤回授权同意,以限制或拒绝我们收集或使用您的个人信息:

您可以通过注销账号的形式撤回我们对您个人信息处理全部同意或通过「第九章节、如何联系我们」进行相应的同意撤回。请您谨慎操作,否则,因注销账号产生的数据丢失问题均由您自行承担。在注销账号之后,我们将停止为您提供本平台服务,并依据您的要求,删除您的个人信息,但法律法规另有规定的除外。

(三)           删除权

1.        您可通过微信的缓存清理功能,删除您在本平台的缓存记录提供的相关个人信息。

2.        如果您需要删除您在使用本平台过程中产生的其他个人信息,在您的合理要求并经验证核实您的身份后,我们会处理您的请求。您可以通过本隐私政策「第九章节、如何联系我们」方式向我们进行反馈。

3.        在以下情形中,您可以向我们提出删除个人信息的请求:

(1)      我们永久不再为您提供产品或服务;

(2)      您撤回对我们收集、使用您的个人信息的同意;

(3)      我们处理个人信息的行为违反法律、行政法规;

(4)      我们处理个人信息的行为违反了与您的约定;

(5)      您注销了用户帐号;

(6)      法律、行政法规规定的其他情形。

4.        您同意并理解,您删除某些您已提交的个人信息可能导致您无法使用本平台的部分或者全部服务。

(四)           注销权

您可以通过本平台【我的】-【个人信息】中进行注销操作。一旦您注销账户,我们将停止为您提供服务。请您谨慎操作,否则,因注销账号产生的数据丢失问题均由您自行承担。当您选择注销账户后,我们将停止为您提供服务,并依据您的要求,删除您的个人信息,但法律法规另有规定的除外。

七、未成年人保护

我们非常重视对未成年人个人信息的保护,本平台的注册用户仅包括供医疗卫生专业人士。不涉及18周岁以下的未成年人注册为本平台账户。若您是未成年人,不得予以注册。

八、本隐私政策变更及通知

(一)           为了向您提供更好的功能与/或服务,我们的产品/服务将不时更新与变化,因此,我们将适时修订及变更隐私政策。

(二)           未经您明确同意,我们不会削减您按照本隐私政策所应享有的权利。我们会在本页面上发布对本政策所做的任何变更。

(三)           对于重大变更,我们可能还会提供本平台公告、推送通知或更为显著的弹窗等方式,向您发送隐私政策的最新版本。本政策重大变更包括但不限于:

1.        我们的服务模式发生重大变化。如处理个人信息的目的、处理的个人信息类型、个人信息的使用方式等;

2.        我们在所有权结构、组织架构等方面发生重大变化。如业务调整、破产并购等引起的所有者变更等;

3.        个人信息共享、转让或公开披露的主要对象发生变化;

4.        您参与个人信息处理方面的权利及其行使方式发生重大变化;

5.        我们的联络方式及投诉渠道发生变化;

6.        个人信息安全影响评估报告表明存在高风险时。

九、如何联系我们

若您对本服务有任何疑问、意见或建议,您可以通过以下方式与我们联系:

邮箱:guanxin@bjhacf.org

一般情况下,我们将在7天内回复。

十、名词定义与解释

本平台:通过电子化信息平台运营和提供的数字化产品和服务,电子化信息平台包括但不限于罕心守护小程序、微信公众号提供数字化产品和服务的系统或平台等,具体以用户实际注册、访问或使用为准(对于该等数字化产品和服务,本协议统称为“电子化信息平台”或“平台”或“本平台”)

个人信息:以电子或者其他方式记录的与已识别或可识别的自然人有关的各种信息,不包括匿名化处理后的信息。如姓名、出生日期、身份证件号码、个人生物识别信息、住址、通信通讯联系方式、通信记录和内容、账号密码、财产信息、征信信息、行踪轨迹、住宿信息、健康生理信息、交易信息等。

敏感个人信息:敏感个人信息是指一旦泄露或者非法使用,容易导致自然人的人格尊严受到侵害或者人身、财产安全受到危害的个人信息,包括生物识别、宗教信仰、特定身份、医疗健康、金融账户、行踪轨迹等信息,以及不满十四周岁未成年人的个人信息。例如,个人敏感信息包括身份证件号码、个人生物识别信息、银行账号、通信内容、健康生理信息等。

IP地址:每台上网的设备都会指定一个编号,称为互联网协议(IP)地址。这些编号通常都是根据地理区域指定的。IP地址通常可用于识别设备连接至互联网时所在的位置。

OPENID:OPENID是微信用户在注册公众号后的唯一独立加密用户身份标识,此处OPENID是指本平台用户注册后的唯一加密用户身份标识。



`, + phone: false, + protocol: `

罕心守护个人信息及隐私保护政策


生效日期:2024年11月15日

罕心守护(“我们”)非常注重保护用户(“您”)的个人信息及隐私。我们希望通过本《罕心守护个人信息及隐私保护政策》(以下简称本“隐私政策”或本“政策”)向您清晰地介绍在使用我们的产品/服务时,我们如何处理您的个人信息,以及我们为您提供的查询、更正、删除以及注销账号的方式。您及您的隐私对于我们至关重要,我们非常重视您的隐私和个人信息的保护。我们提供的产品/服务包括罕心守护小程序、微信公众号向您提供的各项服务(以下简称“本服务”),适用本隐私政策。


请您在使用本服务前,务必仔细阅读并充分理解本隐私政策。我们将逐一说明我们收集您的个人信息的类型及其对应的用途,以便您了解我们针对某一特定功能或服务所收集的具体个人信息的类别、使用理由及收集方式。需要特别说明的是,本隐私政策不适用于其他第三方向您提供的服务,第三方向您提供的服务适用其向您另行说明的隐私政策。


您在完成勾选并点击“同意”按钮后,本隐私政策即构成对双方有约束力的法律文件,即表示您同意我们按照本隐私政策收集、使用、处理和存储您的相关个人信息。如果您对本隐私政策或相关事宜有任何疑问、意见或建议,可通过本隐私政策「第九章节、如何联系我们」等方式与我们联系。

本隐私政策将帮您了解以下信息:


  • 我们如何收集和使用您的个人信息
  • 我们基于何种目的或场景,收集和使用您的个人信息
  • 我们如何使用Cookie等同类技术
  • 我们如何委托处理、共享、转让、公开披露您的个人信息
  • 我们如何保存、保护您的个人信息
  • 您查阅、更正、限制、拒绝、删除、注销个人信息的权利
  • 未成年人保护
  • 本隐私政策变更及通知
  • 如何联系我们
  • 名词定义和解释

一、 我们如何收集和使用您的个人信息


(一)我们会根据本隐私政策的约定,为实现本平台服务而对所收集的个人信息进行使用。


(二) 我们深知个人信息对您的重要性,并会尽全力保护您的个人信息安全可靠。我们致力于维持您对我们的信任,恪守以下原则,保护您的个人信息:合法、正当、必要和诚信原则,目的明确和直接相关原则,公开透明原则、准确性原则、问责性原则、数据安全原则等。同时,我们承诺将按业界成熟的安全标准,采取必要的措施保障您的个人信息的安全。


(三) 我们对您个人信息的使用建立在下述一项或多项合法依据之上:您的同意、对公开信息的合理使用、为履行双方所签署的合同所必须及为遵守我们的法律义务。


二、 我们基于何种目的或场景,收集和使用您的个人信息


出于本隐私政策所描述的目的或场景,当您使用本平台服务时,我们可能会收集有关您的如下个人信息。若您不同意提供下列信息,有权拒绝提供或撤回同意,但您可能无法继续使用本平台的全部或部分服务:


(一) 注册、登录与实名认证


1. 当您关注罕心守护微信公众号时,我们会收集您的微信openID以及您关注、取消关注本公众号的行为数据,以便我们识别用户身份。


2. 当您需要使用本平台服务时,您首先需要注册本平台账号并进行实名认证。为注册本平台账号,您需要提供您的openID、手机号;为进行实名认证,您需要提供您的姓名、医院、科室、openID、头衔、证件、头像、专长、简介信息,您后续可以自主在【我的】-【个人信息】中填写或更正您的头像、手机号、科室、专长、简介信息,如果您不提供上述信息,将影响您使用罕心守护平台的基本功能。


(二) 向您提供本平台服务


1. 邀约医生

当您在罕心守护平台使用邀约医生服务时,您需要向邀约医生出示您的邀约码,对方在扫描您的邀约码加入平台时,我们将会收集、储存并发布您的如下个人信息:包括您的姓名、头像、医院、科室、专属标签、头衔、专长、简介信息,当对方被邀约成功后,您的姓名、头像、医院、科室、专属标签、头衔、专长、简介信息将展示在对方的合作医生列表中,且以上信息将向对方以及对方的上级医生公开可见。


2. 病历发布及反馈服务

您可在病历板块中,通过对病历的发布、反馈、分享和获取等方式,与平台其他医生交流病历,您可以自主选择使用以下功能:


1) 您可在罕心守护平台发布自己的病历,用于与其他医生进行交流帮助病历的诊断治疗。当您发布病历时,我们将会收集、储存并发布您的个人信息以及病历信息,个人信息包括您的姓名、头像、医院、科室、专属标签、头衔、专长、简介信息;病历信息包括病历图片、病历备注说明、病历相关文件信息。以上信息将对罕心守护平台的部分医生公开可见。


2)您可在罕心守护平台对平台其他医生发布的病历进行反馈,当您反馈病历时,我们将会收集、储存并发布您的个人信息以及您的反馈信息,个人信息包括您的姓名、头像、医院、科室、专属标签、头衔、专长、简介信息;反馈信息包括批注内容、反馈图片、以及补充相关文件信息。以上信息将对罕心守护平台的部分医生公开可见。


如您选择在平台发布或反馈病历时,我们特向您告知以下信息:


(1) 您发布的病历内容中,可能会涉及您、您的病人或其他人的个人信息甚至敏感个人信息,如包含个人信息的照片以及包含个人健康信息的数据,请您更加谨慎地考虑,是否在我们平台上公开发布分享相关信息。为了保护您、您的病人或其他人的隐私,如无必要,建议您不要在内容中提及您、您的病人或其他人的真实身份信息。如果我们收到投诉或者得知您公开分享的内容侵犯他人的隐私或其他合法权益,我们将会立即删除相关数据;如果我们意外收集了任何儿童(不满14周岁)的个人信息而并未获得儿童监护人的知情同意,我们将会立即删除相关数据。


(2) 鉴于您上传的病历照片等信息中,将可能包含病人的身份信息、病人的健康生理信息等,这些都属于个人敏感信息,请您谨慎上传或向他人展示,若有上传需求,请在上传时使用平台提供的涂抹功能将所有个人敏感信息进行涂抹后上传。我们不会提取您或您的病人的生物识别信息用于身份识别或任何其他目的。


3. 聊天室服务

您在罕心守护平台上使用聊天室服务时,我们将会收集、储存并发布您的个人信息以及您的聊天信息,个人信息包括您的姓名、头像、医院、科室、专属标签、头衔、专长、简介信息;聊天信息包括文本、图片、视频、语音等所有聊天内容。以上信息将对聊天室中所有的医生公开可见。

您发布的聊天内容中,可能会涉及您、您的病人或其他人的个人信息甚至敏感个人信息,如包含个人信息的照片、视频以及包含个人健康信息的数据,请您谨慎上传或向他人展示。不提供该等信息不会影响您使用罕心守护平台的聊天功能。


4. 为您提供安全保障及更佳的服务体验

当您使用我们的罕心守护小程序、微信公众号等提供的产品或服务时,我们会自动收集您对我们服务的详细使用情况,作为有关网络日志保存。包括浏览、点击查看、搜索查询、分享信息、发布信息,以及IP地址、浏览器类型、电信运营商、使用语言、访问日期和时间、在罕心守护小程序以及微信公众号浏览的内容及时长、浏览记录等。为了保障您的账号安全、交易安全以及系统运行安全,防止欺诈、网络病毒、网络攻击等安全风险,满足法律法规和我们协议规则的相关要求,在您使用我们的产品/服务过程中,经您授权我们会获取您的设备信息,包括您使用的设备属性、连接和状态信息,例如设备型号、唯一设备标识符、设备 MAC 地址、电信运营商等。同时,我们会根据不同操作系统为您提供最佳的浏览体验。请注意,单独的设备信息、日志信息等是无法识别特定自然人身份的信息。如果我们将这类非个人信息与其他信息结合用于识别特定自然人身份,或者将其与个人信息结合使用,则在结合使用期间,这类非个人信息将被视为个人信息,并在取得您授权情况下进行处理。


(三) 处理投诉建议


当您向本平台提起投诉、申诉、提供建议时,为了方便与您联系或帮助您解决问题,我们可能需要您提供姓名、医院(工作单位)、科室、电话号码、电子邮箱等个人信息。如您拒绝提供上述信息,我们可能无法向您及时反馈投诉、申诉或建议结果


(四) 需征得您同意的例外情形


您知悉并理解,在以下情形下,本平台收集、使用、共享、转让、公开披露您的个人信息无需事先征得您的授权同意:

1. 根据您的需求订立、履行您作为一方当事人的合同所必需;

2. 为履行法定义务所必需;

3. 为应对突发公共卫生事件,或者紧急情况下为保护自然人的生命健康和财产安全所必需;

4. 为公共利益实施新闻报道、舆论监督等行为,在合理的范围内处理个人信息;

5. 依据法律法规规定在合理的范围内处理个人自行公开或者其他已经合法公开的个人信息;以及法律法规规定的其他情形。


(五) 如果您对我们收集和使用您的个人信息的法律依据有任何疑问或需要提供进一步的信息,请通过本隐私政策第九章节「如何联系我们」提供的联系方式与我们联系。


(六) 当我们要将您的个人信息用于本隐私政策未载明的其他目的时,会事先征求您的同意。请您知悉,本平台向您提供的服务可能将不断更新和发展,如果您选择使用本隐私政策中尚未列明的其他功能或服务时,我们会在收集您的个人信息前通过推送通知、更为显著的弹窗等方式向您详细说明信息收集的目的、方式、范围并征求您的同意。



三、 我们如何使用Cookie等同类技术


(一) 依托于微信小程序提供的原生能力


为了帮助提升您的产品体验,我们会使用微信提供的一些原生能力来避免您重复登录,并存储您所在城市信息等数据,进而帮助判断您的登录状态、更好的为您提供邀约医生、病历管理及聊天室等服务、判断账户或数据安全。所有的信息获取都会经过您的授权同意才会使用,并且我们不会主动共享或转让您的信息至任何第三方,不会对外公开披露您的任何信息,您可以通过移除小程序的方式删除您已授权的信息。


(二) Cookies 的使用


我们提供的产品服务中,包含内嵌的网页页面,这些页面会向您提供诸如邀约医生、病历管理、聊天室服务等,为了能够让您体验到更加个性化的服务内容,获得更好的浏览体验,我们会在您的微信内置浏览器上记录Cookies信息,指定给您的Cookies 是唯一的,它只能被将Cookies发布给您的域中的Web服务器读取。大部分手机的微信内置浏览器会自动接受Cookies,我们不会将Cookies用于本隐私政策所述目的之外的任何用途。您可以在微信“我-设置-通用-存储空间-缓存”中清除保存的所有 Cookies,但如果您这么做,您可能需要在每一次访问小程序内嵌网站时重新授权获取相关信息,而且您之前的相关记录信息也会被删除,并且可能会对您所使用服务的安全性有一定影响。


四、 我们如何委托处理、共享、转让、公开披露您的个人信息


(一) 委托处理

我们会聘请服务提供商来协助我们提供客户支持。对我们委托处理个人信息的公司、组织和个人,我们会与其签署严格的个人信息保护条款和保密协定,要求他们按照我们的要求、本个人信息保护政策以及其他任何相关的个人信息保护、保密和信息安全措施来处理您的个人信息,并且对他们的个人信息处理活动进行监督。


(二) 共享

我们不会将任何个人信息出售给第三方。我们不会向罕心守护小程序、微信公众号运营公司以外的任何公司、组织和个人提供您的个人信息,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下共享:获得您的单独同意后,我们会与我们所披露的有关个人信息处理者共享您的相关个人信息;

d) 我们可能会根据法律法规规定,或按政府主管部门的强制性要求,向有关主管部门提供您的个人信息;

e) 接入第三方服务的情形,我们可能会接入第三方SDK服务,并将我们依照本政策收集的您某些信息共享给该等第三方服务商,以便提高更好的客户服务和用户体验。请参考阅读罕心守护小程序《第三方信息共享清单》了解详情。


(三) 转让

我们不会将您的个人信息转让给任何公司、组织和个人,但以下情况除外:

a) 在向您进行明确告知并获取您的单独同意的情况下转让:获得您的单独同意后,我们会向我们所披露的有关个人信息处理者转让您的相关个人信息;

b) 在涉及合并、分立、解散、被宣告破产时,如涉及到个人信息转让,我们会向您告知接收方的名称或者姓名和联系方式。如接收方变更原先的处理目的、处理方式的,我们将要求该接收方重新取得您的同意。


(四) 公开披露

我们仅会在获得您明确同意后,公开披露您的个人信息。


五、 我们如何保存、保护您的个人信息


(一) 保存地点

1. 我们依照法律法规的规定,将在境内运营过程中收集和产生的您的个人信息存储于中华人民共和国境内。目前,我们不会将上述信息传输至其他地区,如果我们向其他地区传输,我们将遵循相关国家规定或者征求您的同意。


(二)保存时间

我们会采取一切合理可行的措施,确保未收集无关的个人信息。罕心守护小程序、微信公众号中个人信息储存必要期限是罕心守护小程序、微信公众号为您终止服务后3年。超出必要期限后,我们将对您的个人信息进行删除或匿名化处理,但法律法规另有规定的除外。


(三) 保护措施

我们已使用符合业界标准的安全防护措施保护您提供的个人信息,防止数据遭到未经授权访问、公开披露、使用、修改、损坏或丢失。我们会采取一切合理可行的措施,保护您的个人信息。例如,我们会使用加密技术(例如SSL)确保数据的保密性;我们会使用受信赖的保护机制防止数据遭到恶意攻击;我们会部署访问控制机制,确保只有授权人员才可访问个人信息;以及我们会举办安全和隐私保护培训课程,加强员工对于保护个人信息重要性的认识。

互联网环境并非百分之百安全,我们将尽力确保或担保您发送给我们的任何信息的安全性。如果我们的物理、技术、或管理防护设施遭到破坏,导致信息被非授权访问、公开披露、篡改、或毁坏,导致您的合法权益受损,我们将承担相应的法律责任。


(四) 数据安全能力

我们会使用不低于行业同行的加密技术、匿名化处理及相关合理可行的手段保护您的个人信息,并使用安全保护机制防止您的个人信息遭到恶意攻击。

我们会建立专门的安全部门、安全管理制度、数据安全流程保障您的个人信息安全。我们采取严格的数据使用和访问制度,确保只有授权人员才可访问您的个人信息,并适时对数据和技术进行安全审计。



(五) 安全事件处理

在不幸发生个人信息安全事件后,我们将按照法律法规的要求,及时向您告知:安全事件的基本情况和可能的影响、我们已采取或将要采取的处置措施、您可自主防范和降低风险的建议、对您的补救措施等。我们将及时将事件相关情况以邮件、信函、电话、推送通知等方式告知您,难以逐一告知个人信息主体时,我们会采取合理、有效的方式发布公告。 同时,我们还将按照监管部门要求,主动上报个人信息安全事件的处置情况。


六、 您查阅、更正、限制、拒绝、删除、注销个人信息的权利

我们非常重视并保护您对于个人信息处理活动中的知情权、决定权、限制权、拒绝权等权利,并为您提供了行使在个人信息处理活动中相关权利的方法。


(一) 查阅权和更正权

1. 除法律法规规定的情形除外,您有权随时查阅和更正您的个人信息,您可以通过在本平台的【我的】-【个人信息】查阅或更正您的个人信息,包括头像、手机号、科室、专长、简介等信息。


(二) 限制或拒绝权

对于您个人信息的收集和使用,您可以在本平台上随时通过以下方式撤回授权同意,以限制或拒绝我们收集或使用您的个人信息:


1. 您可以通过注销账号的形式撤回我们对您个人信息处理全部同意或通过「第九章节、如何联系我们」进行相应的同意撤回。请您谨慎操作,否则,因注销账号产生的数据丢失问题均由您自行承担。在注销账号之后,我们将停止为您提供本平台服务,并依据您的要求,删除您的个人信息,但法律法规另有规定的除外。


(三) 删除权


1. 您可通过微信的缓存清理功能,删除您在本平台的缓存记录提供的相关个人信息。


2. 如果您需要删除您在使用本平台过程中产生的其他个人信息,在您的合理要求并经验证核实您的身份后,我们会处理您的请求。您可以通过本隐私政策「第九章节、如何联系我们」方式向我们进行反馈。


3. 在以下情形中,您可以向我们提出删除个人信息的请求:

(1) 我们永久不再为您提供产品或服务;

(2) 您撤回对我们收集、使用您的个人信息的同意;

(3) 我们处理个人信息的行为违反法律、行政法规;

(4) 我们处理个人信息的行为违反了与您的约定;

(5) 您注销了用户帐号;

(6) 法律、行政法规规定的其他情形。


4. 您同意并理解,您删除某些您已提交的个人信息可能导致您无法使用本平台的部分或者全部服务。


(四) 注销权


您可以通过本平台【我的】-【个人信息】中进行注销操作。一旦您注销账户,我们将停止为您提供服务。请您谨慎操作,否则,因注销账号产生的数据丢失问题均由您自行承担。当您选择注销账户后,我们将停止为您提供服务,并依据您的要求,删除您的个人信息,但法律法规另有规定的除外。


七、 未成年人保护


我们非常重视对未成年人个人信息的保护,本平台的注册用户仅包括供医疗卫生专业人士。不涉及18周岁以下的未成年人注册为本平台账户。若您是未成年人,不得予以注册。



八、 本隐私政策变更及通知


(一) 为了向您提供更好的功能与/或服务,我们的产品/服务将不时更新与变化,因此,我们将适时修订及变更隐私政策。


(二) 未经您明确同意,我们不会削减您按照本隐私政策所应享有的权利。我们会在本页面上发布对本政策所做的任何变更。


(三) 对于重大变更,我们可能还会提供本平台公告、推送通知或更为显著的弹窗等方式,向您发送隐私政策的最新版本。本政策重大变更包括但不限于:

1. 我们的服务模式发生重大变化。如处理个人信息的目的、处理的个人信息类型、个人信息的使用方式等;

2. 我们在所有权结构、组织架构等方面发生重大变化。如业务调整、破产并购等引起的所有者变更等;

3. 个人信息共享、转让或公开披露的主要对象发生变化;

4. 您参与个人信息处理方面的权利及其行使方式发生重大变化;

5. 我们的联络方式及投诉渠道发生变化;

6. 个人信息安全影响评估报告表明存在高风险时。


九、 如何联系我们

若您对本服务有任何疑问、意见或建议,您可以通过以下方式与我们联系:

邮箱:guanxin@bjhacf.org

一般情况下,我们将在7天内回复。


十、 名词定义与解释


本平台:通过电子化信息平台运营和提供的数字化产品和服务,电子化信息平台包括但不限于罕心守护小程序、微信公众号提供数字化产品和服务的系统或平台等,具体以用户实际注册、访问或使用为准(对于该等数字化产品和服务,本协议统称为“电子化信息平台”或“平台”或“本平台”)


个人信息:以电子或者其他方式记录的与已识别或可识别的自然人有关的各种信息,不包括匿名化处理后的信息。如姓名、出生日期、身份证件号码、个人生物识别信息、住址、通信通讯联系方式、通信记录和内容、账号密码、财产信息、征信信息、行踪轨迹、住宿信息、健康生理信息、交易信息等。


敏感个人信息:敏感个人信息是指一旦泄露或者非法使用,容易导致自然人的人格尊严受到侵害或者人身、财产安全受到危害的个人信息,包括生物识别、宗教信仰、特定身份、医疗健康、金融账户、行踪轨迹等信息,以及不满十四周岁未成年人的个人信息。例如,个人敏感信息包括身份证件号码、个人生物识别信息、银行账号、通信内容、健康生理信息等。


IP地址:每台上网的设备都会指定一个编号,称为互联网协议(IP)地址。这些编号通常都是根据地理区域指定的。IP地址通常可用于识别设备连接至互联网时所在的位置。


OPENID:OPENID是微信用户在注册公众号后的唯一独立加密用户身份标识,此处OPENID是指本平台用户注册后的唯一加密用户身份标识。


`, }, onLoad(options) { this.setData({ ismy: options.ismy === "1", + phone : options.phone === "1", }); }, handleScrollToLower(e) { @@ -33,6 +36,30 @@ Page({ }); wx.navigateBack(); }, + handleWxSubmit(e: any) { + const { iv, encryptedData } = e.detail; + 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(res); + }); + } + }, + submitCallback(res) { + app.globalData.isLogin = 1; + app.globalData.doctorId = res.doctorId; + app.waitLogin().then(() => { + wx.reLaunch({ + url: "/pages/home/index", + }); + }); + }, handleBack() { wx.navigateBack(); }, diff --git a/src/module1/pages/loginProtool/index.wxml b/src/module1/pages/loginProtool/index.wxml index 6044a8a..f96de11 100644 --- a/src/module1/pages/loginProtool/index.wxml +++ b/src/module1/pages/loginProtool/index.wxml @@ -1,4 +1,7 @@ - + @@ -10,6 +13,9 @@ 不同意 请上滑阅读完成 + 同意 diff --git a/src/module1/pages/setInfo/index.scss b/src/module1/pages/setInfo/index.scss index e80bc40..27f840a 100644 --- a/src/module1/pages/setInfo/index.scss +++ b/src/module1/pages/setInfo/index.scss @@ -34,7 +34,7 @@ width: 128rpx; height: 50rpx; font-size: 28rpx; - color: #00B4C5; + color: #00b4c5; background: #ffffff; display: flex; align-items: center; @@ -48,7 +48,6 @@ border-radius: 16rpx; background-color: #fff; .row { - padding: 32rpx 0; display: flex; align-items: top; border-bottom: 1px solid rgba(224, 224, 224, 0.5); @@ -60,7 +59,7 @@ align-items: center; } .label { - padding-right: 10rpx; + padding: 32rpx 10rpx 32rpx 0; flex-shrink: 0; width: 5.5rem; font-size: 32rpx; @@ -90,7 +89,7 @@ .content { flex: 1; .input { - padding: 0; + padding: 32rpx 0; line-height: 1; font-size: 32rpx; color: #000; @@ -100,6 +99,7 @@ } } .select-wrap { + padding: 32rpx 0; flex: 1; display: flex; align-items: center; @@ -119,6 +119,7 @@ } } .select-btn { + padding: 32rpx 0; .wrap { display: flex; gap: 16rpx 20rpx; @@ -149,6 +150,7 @@ } } .credentials { + padding: 32rpx 0; flex: 1; .c-title { display: flex; @@ -183,6 +185,7 @@ } } .avatar-wrap { + padding: 32rpx 0; flex: 1; display: flex; align-items: center; diff --git a/src/module1/pages/setInfoDoctor/index.json b/src/module1/pages/setInfoDoctor/index.json index f434f65..badfab4 100644 --- a/src/module1/pages/setInfoDoctor/index.json +++ b/src/module1/pages/setInfoDoctor/index.json @@ -1,10 +1,11 @@ { - "navigationBarTitleText": "指派医生", + "navigationBarTitleText": "绑定医生", "navigationStyle": "default", "usingComponents": { "popupDoctorDetail": "/components/popupDoctorDetail/index", "doctorAvatar": "/components/doctorAvatar/index", "van-popup": "@vant/weapp/popup/index", - "van-dialog": "@vant/weapp/dialog/index" + "van-dialog": "@vant/weapp/dialog/index", + "pagination": "/components/pagination/index" } } diff --git a/src/module1/pages/setInfoDoctor/index.ts b/src/module1/pages/setInfoDoctor/index.ts index a31bb88..9218510 100644 --- a/src/module1/pages/setInfoDoctor/index.ts +++ b/src/module1/pages/setInfoDoctor/index.ts @@ -8,13 +8,47 @@ Page({ Search: "", list: [], + pagination: { + page: 1, + pages: 1, + count: 1, + }, DoctorId: "", DoctorName: "", }, onLoad() { - app.waitLogin().then(() => { + app.waitLogin(true).then(() => { this.getList(); + this.getHostipalDict() + this.getDoctorDict() + }); + }, + 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, + }); + }); + }, + getHostipalDict() { + wx.ajax({ + method: "GET", + url: "?r=takeda/reg/hospital-dict", + data: {}, + }).then((res) => { + this.setData({ + hospitalClassification: res.hospitalClassification, + hospitalLevel: res.hospitalLevel, + }); }); }, handleSearch() { @@ -29,20 +63,33 @@ Page({ }); this.handleSearch(); }, - getList() { + getList(newPage = 1) { const { Search } = this.data; wx.ajax({ method: "GET", url: "?r=takeda/reg/second-doctor-list", data: { Search, + page: newPage, }, }).then((res) => { + const list = res.page === 1 ? res.list : [...this.data.list, ...res.list]; this.setData({ - list: res.list, + 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); + } + }, handlePopupClose() { this.setData({ showDetail: false, @@ -67,7 +114,7 @@ Page({ } const eventChannel = this.getOpenerEventChannel(); eventChannel.emit("acceptDataFromOpenedPage", { DoctorId, DoctorName }); - this.handleBack() + this.handleBack(); }, handleBack() { wx.navigateBack(); diff --git a/src/module1/pages/setInfoDoctor/index.wxml b/src/module1/pages/setInfoDoctor/index.wxml index 979c422..fbf38e3 100644 --- a/src/module1/pages/setInfoDoctor/index.wxml +++ b/src/module1/pages/setInfoDoctor/index.wxml @@ -39,7 +39,7 @@ {{item.DoctorName}} {{item.DoctorOtherTitle}} {{DoctorTitleType[item.DoctorTitleType]}} - + {{depart.DepartmentName}} @@ -53,15 +53,10 @@ {{item.CityName}}{{item.CountyName?'/':''}}{{item.CountyName}} - - - - {{spec.SpecialtyName}} - -
+
diff --git a/src/pages/chatRoomList/index.scss b/src/pages/chatRoomList/index.scss index 050bc70..2713d3c 100644 --- a/src/pages/chatRoomList/index.scss +++ b/src/pages/chatRoomList/index.scss @@ -161,6 +161,12 @@ page { background: #00b4c5; border-radius: 0rpx 0rpx 0rpx 0rpx; } + .status{ + display: inline-block; + font-size: 28rpx; + color: #999999; + margin-left: 12rpx; + } } .date { font-size: 28rpx; diff --git a/src/pages/chatRoomList/index.ts b/src/pages/chatRoomList/index.ts index 4039e3d..11e1c88 100644 --- a/src/pages/chatRoomList/index.ts +++ b/src/pages/chatRoomList/index.ts @@ -153,7 +153,9 @@ Page({ }).then((res) => { res.list.forEach((item) => { item.roomDoctors = item.roomDoctors.slice(0, 4); - item.createTime = dayjs(item.createTime).format("YYYY-MM-DD HH:mm"); + if (item.createTime) { + item.createTime = dayjs(item.createTime).format("YYYY-MM-DD HH:mm"); + } }); const list = res.page === 1 ? res.list : [...this.data.list, ...res.list]; this.setData({ @@ -440,7 +442,7 @@ Page({ this.setData({ [key]: "", }); - this.handleSearch() + this.handleSearch(); }, handleFold() { diff --git a/src/pages/chatRoomList/index.wxml b/src/pages/chatRoomList/index.wxml index 1b84330..87ee41b 100644 --- a/src/pages/chatRoomList/index.wxml +++ b/src/pages/chatRoomList/index.wxml @@ -139,8 +139,11 @@ - ID:{{item.caseNo}} - {{item.createTime}} + + ID:{{item.caseNo}} + 已归档 + + {{item.createTime}}