From efb6a9aacf95d264fe974ffef40e90f533601218 Mon Sep 17 00:00:00 2001 From: zoujiandong <10130823232@qq.com> Date: Wed, 10 Jan 2024 08:57:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BB=E7=94=9F1.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Pages/yishi/kuaisusetup/index.wxml | 11 +- Pages/yishi/onlinesetup/index.js | 101 ++++- Pages/yishi/onlinesetup/index.json | 2 + Pages/yishi/onlinesetup/index.wxml | 268 +++++++++--- Pages/yishi/onlinesetup/index.wxss | 32 +- Pages/yishi/onlinesetupprice/index.js | 19 +- Pages/yishi/onlinesetupprice/index.wxml | 17 +- Pages/yishi/onlinesetupprice/index.wxss | 3 + Pages/yishi/service_setting/index.js | 386 ++++++++++++++++++ Pages/yishi/service_setting/index.json | 13 + Pages/yishi/service_setting/index.wxml | 193 +++++++++ Pages/yishi/service_setting/index.wxss | 292 +++++++++++++ Pages/yishi/sickform/index.json | 2 +- Pages/yishi/wenzhen_v2/wenzhen.js | 5 +- Pages/yishi/wenzhen_v2/wenzhen.wxml | 2 + Pages/yishi/wenzhen_v2/wenzhen.wxss | 36 +- Pages/yishi/yizhensetup/index.wxml | 2 +- .../TUIChat/components/MessageInput/index.js | 45 +- .../components/MessageInput/index.json | 2 + .../components/MessageInput/index.wxml | 17 + .../components/MessageInput/index.wxss | 6 + TUIKit/components/TUIChat/index.js | 17 + TUIKit/components/TUIChat/index.json | 1 + TUIKit/components/TUIChat/index.wxml | 30 +- TUIKit/components/TUIChat/index.wxss | 80 +++- app.json | 3 +- project.private.config.json | 2 +- static/images/yishi/tabbar_icon/eye.png | Bin 0 -> 1216 bytes static/images/yishi/tabbar_icon/yuyue.png | Bin 0 -> 14734 bytes .../images/yishi/tabbar_icon/yuyue_star.png | Bin 0 -> 4469 bytes utils/network/api.js | 30 +- 31 files changed, 1526 insertions(+), 91 deletions(-) create mode 100644 Pages/yishi/service_setting/index.js create mode 100644 Pages/yishi/service_setting/index.json create mode 100644 Pages/yishi/service_setting/index.wxml create mode 100644 Pages/yishi/service_setting/index.wxss create mode 100644 static/images/yishi/tabbar_icon/eye.png create mode 100644 static/images/yishi/tabbar_icon/yuyue.png create mode 100644 static/images/yishi/tabbar_icon/yuyue_star.png diff --git a/Pages/yishi/kuaisusetup/index.wxml b/Pages/yishi/kuaisusetup/index.wxml index de6c3d4..e017d82 100644 --- a/Pages/yishi/kuaisusetup/index.wxml +++ b/Pages/yishi/kuaisusetup/index.wxml @@ -35,9 +35,14 @@ - 提示:服务开启后,您将有机会接收到平台自动分配的在线患者快速问诊订单 - 1、快速问诊价格为平台统一设定 - 2、快速问诊服务时间为{{config.duration}}分钟,期间不限制交流次数 + + 提示:服务开通后,患者可以通过快速问诊找到您 +1、快速问诊价格为平台统一定价; +2、优先分配给好评率高、响应时间快的医生; +3、平台分配成功后,要求医生在5分钟内接诊 ,如5分钟内未接诊,将自动取消订单,消息列表中也将删除此订单; +4、接诊后{{config.duration}}分钟内,患者可以和您不限制回合数沟通; +5、如果时间不允许请慎重开通快速问诊,出现两次漏接,平台将主动关闭您的此项服务。 + diff --git a/Pages/yishi/onlinesetup/index.js b/Pages/yishi/onlinesetup/index.js index 8e22fd0..2e05c9e 100644 --- a/Pages/yishi/onlinesetup/index.js +++ b/Pages/yishi/onlinesetup/index.js @@ -11,16 +11,18 @@ Page({ title: '在线问诊设置', //导航栏 中间的标题 }, height: app.globalData.height, - open_note: "已开启,患者可以向您发起图文问诊", - close_note: "已关闭,暂不接诊", + // open_note: "已开启,患者可以向您发起图文问诊", + // close_note: "已关闭,暂不接诊", note: "", inquiry_type: 1, inquiry_mode: 1, + config_setting:{}, info:{ is_open: false, inquiry_price: 0, work_num_day: 0 }, + active:0, myprice: "", config:{ "max_work_num_day": 30, @@ -36,28 +38,35 @@ Page({ ] }, sub_visible: false, + showSetting:false }, onLoad(){ - + }, onShow(){ - let params = {}; - params.inquiry_type = this.data.inquiry_type;//接诊类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) - params.inquiry_mode = this.data.inquiry_mode;//接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员) + this.getDoctorconfig(); + }, + getDoctorconfig(){ + let {inquiry_type,inquiry_mode}=this.data; + //接诊类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) + //接诊方式(1:图文 2:视频 3:语音 4:电话 5:会员) //获取医生我的账户数据 - api.getDoctorInquiryConfig(params).then(response => { + api.getDoctorInquiryConfig({ + inquiry_type, + inquiry_mode + }).then(response => { console.log(response); this.setData({ info: response.data.info, config: response.data.config, - note: response.data.info.is_open == 1? this.data.open_note : this.data.close_note + note: response.data.info.is_open }) }).catch(errors => {console.error(errors);}) }, changeON(){ let is_open = this.data.info.is_open console.log("changeON:", is_open) - let detail = false + let detail = false; if(is_open == 0){ detail = true }else{ @@ -68,13 +77,42 @@ Page({ onChange({ detail }) { this.doChange(detail) }, + getConfig(){ + let {inquiry_type,inquiry_mode}=this.data; + api.getServiceConfig({ + inquiry_type, + inquiry_mode + }).then(response => { + let result=response.data; + if(result){ + this.setData({ + 'config_setting.service_content':result.service_content, + 'config_setting.service_process':result.service_process, + 'config_setting.service_period':result.service_period, + 'config_setting.service_rounds':result.service_rounds, + 'config_setting.config_service_id':result.config_service_id + }) + } + }).catch(errors => {console.error(errors);}) + }, doChange(detail){ console.log("onChange: ", detail); let is_open = 0; if(detail){ let inquiry_price = this.data.info.inquiry_price; - let check = this.checkPrice(inquiry_price); - if(!check) return; + console.log(this.data.active); + if(this.data.active==0){ + let check = this.checkPrice(inquiry_price); + if(!check) return; + } + if(this.data.active==1 || this.data.active==2){ + if(!this.data.info.work_num_day || !this.data.info.inquiry_price){ + this.setData({ + showSetting:true + }) + return false; + } + } this.setData({ note: this.data.open_note }); wx.vibrateShort({ "type": "heavy" @@ -130,6 +168,47 @@ Page({ } }) }, + settingcancelDialog(){ + this.setData({ + showSetting: false + }) + }, + settingconfirmDialog(){ + let {active}=this.data; + this.setData({ + showSetting: false + }) + if(active==1){ + app.go("/Pages/yishi/onlinesetupprice/index?inquiry_mode=1") + }else if(active==2){ + app.go("/Pages/yishi/onlinesetupprice/index?inquiry_mode=6") + } + + }, + onChangeInquiry(event) { + let index=event.detail.name; + this.setData({ + active:index + }) + if(index==0){ + this.setData({ + inquiry_type:1, + inquiry_mode:1, + }) + }else if(index==1){ + this.setData({ + inquiry_type:1, + inquiry_mode:2, + }) + }else{ + this.setData({ + inquiry_type:1, + inquiry_mode:6, + }) + this.getConfig(); + } + this.getDoctorconfig(); + }, putDoctorInquiryConfig(){ //修改医生问诊配置 // let params = {}; diff --git a/Pages/yishi/onlinesetup/index.json b/Pages/yishi/onlinesetup/index.json index 932d65d..968a4e4 100644 --- a/Pages/yishi/onlinesetup/index.json +++ b/Pages/yishi/onlinesetup/index.json @@ -8,6 +8,8 @@ "van-switch": "@vant/weapp/switch/index", "van-button": "@vant/weapp/button/index", "t-toast": "tdesign-miniprogram/toast/toast", + "van-tab": "@vant/weapp/tab/index", + "van-tabs": "@vant/weapp/tabs/index", "t-dialog": "tdesign-miniprogram/dialog/dialog" } } \ No newline at end of file diff --git a/Pages/yishi/onlinesetup/index.wxml b/Pages/yishi/onlinesetup/index.wxml index a3f2bd4..ba2946a 100644 --- a/Pages/yishi/onlinesetup/index.wxml +++ b/Pages/yishi/onlinesetup/index.wxml @@ -1,67 +1,223 @@ - + - - - - 接诊开关 - - + + + + + + + + 接诊开关 + + + + + {{ note==1?'已开启,患者可以向您发起图文问诊':'已关闭,暂不接诊' }} + + + + + + + + 价格设置 + + + + {{info.work_num_day}} + + + + + {{info.inquiry_price}} + + + + + + + + 提示:服务开启后,患者按照所设置的价格向您购买图文问诊服务 + 1、接诊后,患者可与您在{{config.duration/60}}小时内进行{{config.times_number}}回合沟通 + 2、若开启公益问诊,图文问诊价格以公益问诊价格为准 + 3、每日接诊数量和问诊价格每日仅限调整1次,每月仅限调整5次 + 4、价格修改后立即生效,不影响修改之前已生成的问诊订单 + + - - {{ note }} - - - - - + - - 价格设置 - - - - {{info.work_num_day}} + + 去接诊 + + + + + + + + 接诊开关 + + + + + {{ note==1?'已开启,患者可以向您发起视频问诊':'已关闭,暂不接诊'}} + + + + + + + + 价格设置 + + + + {{info.work_num_day}} + + + + + {{info.inquiry_price}} + + + + + + + + 提示:服务开通后,患者可以向您购买视频问诊服务,接诊后需要您主动和患者预约视频时间并同步设置预约时间 + 1、视频问诊价格每日仅限调整1次,每自然月仅限调整5次 + 2、单价修改后立即生效,不影响当日已生成的问诊订单 + 3、24小时不接诊,订单自动取消,并不展示在您的接诊列表中 + 4、接诊后,您与患者沟通有效期为48小时,同时提供无回合限制图文、语音形式交流 + 5、患者因服务不满意等原因要求退款时,平台会和您协商处理 + + + + + + + + + 去接诊 + + + + + + + + 接诊开关 + + + + + {{ note==1?'已开启,患者可以向您发起疑难会诊':'已关闭,暂不接诊'}} + + + + + + + + 价格设置 + + + + {{info.work_num_day}} + + + + + {{info.inquiry_price}} + + + + + + + 服务设置 + + + + + 去查看 + + + 去设置 + + + + + + + 去查看 + + + 去设置 + + + + + {{config_setting.service_period}} + + + 去设置 + + + + + {{config_setting.service_rounds}} + + + 去设置 + + + + + + + 提示:服务开通后,患者可以向您购买疑难会诊服务,接诊后需要与患者进行图文沟通。 + 1、问诊价格每日仅限调整1次,每自然月仅限调整5次 + 2、单价修改后立即生效,不影响当日已生成的问诊订单 + 3、接诊后,患者根据您设定的服务周期和服务次数进行问诊沟通 + 4、接诊后出现争议时,平台客服会根据实际问诊情况与您协商进行退款 + + + + + + + 去接诊 + + + + + + + + + + 取消 - - - - {{info.inquiry_price}} - + + 确定 - - - - - - - 提示:服务开启后,患者按照所设置的价格向您购买图文问诊服务 - 1、接诊后,患者可与您在{{config.duration/60}}小时内进行{{config.times_number}}回合沟通 - 2、若开启公益问诊,图文问诊价格以公益问诊价格为准 - 3、每日接诊数量和问诊价格每日仅限调整1次,每月仅限调整5次 - 4、价格修改后立即生效,不影响修改之前已生成的问诊订单 - - - - - 去接诊 - - - - - + - + 取消 - - 确定 + + 去设置 \ No newline at end of file diff --git a/Pages/yishi/onlinesetup/index.wxss b/Pages/yishi/onlinesetup/index.wxss index 826b82a..b3a66de 100644 --- a/Pages/yishi/onlinesetup/index.wxss +++ b/Pages/yishi/onlinesetup/index.wxss @@ -3,7 +3,7 @@ page{ } .container{ width: 100vw; - padding-top: 30rpx; + } .switch_box{ display: flex; @@ -13,6 +13,7 @@ page{ border-radius: 20rpx; margin: 0 auto; background-color: rgb(255, 255, 255); + margin-top: 20rpx; } .switch_box_top{ position: relative; @@ -64,7 +65,6 @@ page{ padding-top: 10rpx; display: flex; width: 90vw; - height: 180rpx; margin: 0 auto; border-radius: 20rpx; flex-direction: column; @@ -113,7 +113,7 @@ page{ } .bottom{ width: 90vw; - margin: -20rpx auto; + margin: 0rpx auto 20rpx; color: #999; letter-spacing: 2rpx; font-size: 28rpx; @@ -123,7 +123,7 @@ page{ position: fixed; left: 50%; transform: translateX(-50%); - bottom: 100rpx; + bottom: 80rpx; width: 90vw; } .weui-input{ @@ -138,6 +138,9 @@ page{ .cell_value{ color: #000; } +.cell_value_seting{ + color: rgba(0,0,0,0.45); + } .dialog{ width: 50%; text-align: center; @@ -151,4 +154,23 @@ page{ .dialog_confirm_btn{ border-top: 1px solid #E9E9E9; color: #3CC7C0; -} \ No newline at end of file +} + +.van-tab{ + color: rgba(0,0,0,0.45)!important; +} +.van-tab--active{ + font-weight: bold!important; + color: rgba(0,0,0,0.85)!important; +} +.tabcon{ + overflow-y: scroll; + -webkit-overflow-scrolling: touch; + height: calc(100vh - 400rpx); + display: flex; + flex-direction: column; + +} +.green{ + color:#3CC7C0; +} diff --git a/Pages/yishi/onlinesetupprice/index.js b/Pages/yishi/onlinesetupprice/index.js index 5918caa..b78afe5 100644 --- a/Pages/yishi/onlinesetupprice/index.js +++ b/Pages/yishi/onlinesetupprice/index.js @@ -31,6 +31,13 @@ Page({ ] } }, + onLoad(options){ + if(options.inquiry_mode){ + this.setData({ + inquiry_mode:options.inquiry_mode + }) + } + }, onShow(){ let params = {}; params.inquiry_type = this.data.inquiry_type;//接诊类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) @@ -90,11 +97,15 @@ Page({ } }, async updateConfig(){ - let check = this.checkPrice(this.data.info.inquiry_price); - console.log("checkcheckcheck:", check); - if(!check){ - return; + + if(this.data.inquiry_mode==1){ + let check = this.checkPrice(this.data.info.inquiry_price); + console.log("checkcheckcheck:", check); + if(!check){ + return; + } } + //修改医生问诊配置 let params = {}; params.inquiry_type = this.data.inquiry_type;//接诊类型(1:专家问诊 2:快速问诊 3:公益问诊 4:问诊购药) diff --git a/Pages/yishi/onlinesetupprice/index.wxml b/Pages/yishi/onlinesetupprice/index.wxml index ae9c138..a552881 100644 --- a/Pages/yishi/onlinesetupprice/index.wxml +++ b/Pages/yishi/onlinesetupprice/index.wxml @@ -18,13 +18,28 @@ - + 提示:服务开启后,患者按照所设置的价格向您购买图文问诊服务 1、接诊后,患者可与您在{{config.duration/60}}小时内进行{{config.times_number}}回合沟通 2、若开启公益问诊,图文问诊价格以公益问诊价格为准 3、每日接诊数量和问诊价格每日仅限调整1次,每月仅限调整5次 4、价格修改后立即生效,不影响修改之前已生成的问诊订单 + + 提示:服务开通后,患者可以向您购买视频问诊服务,接诊后需要您主动和患者预约视频时间并同步设置预约时间 + 1、视频问诊价格每日仅限调整1次,每自然月仅限调整5次 + 2、单价修改后立即生效,不影响当日已生成的问诊订单 + 3、24小时不接诊,订单自动取消,并不展示在您的接诊列表中 + 4、接诊后,您与患者沟通有效期为48小时,同时提供无回合限制图文、语音形式交流 + 5、患者因服务不满意等原因要求退款时,平台会和您协商处理 + + + 提示:服务开通后,患者可以向您购买疑难会诊服务,接诊后需要与患者进行图文沟通。 +1、问诊价格每日仅限调整1次,每自然月仅限调整5次 +2、单价修改后立即生效,不影响当日已生成的问诊订单 +3、接诊后,患者根据您设定的服务周期和服务次数进行问诊沟通 +4、接诊后出现争议时,平台客服会根据实际问诊情况与您协商进行退款 + diff --git a/Pages/yishi/onlinesetupprice/index.wxss b/Pages/yishi/onlinesetupprice/index.wxss index abac331..d16ccde 100644 --- a/Pages/yishi/onlinesetupprice/index.wxss +++ b/Pages/yishi/onlinesetupprice/index.wxss @@ -85,4 +85,7 @@ page{ .price{ text-align: center; flex: 1; +} +.green{ + color:#3CC7C0; } \ No newline at end of file diff --git a/Pages/yishi/service_setting/index.js b/Pages/yishi/service_setting/index.js new file mode 100644 index 0000000..967d3d4 --- /dev/null +++ b/Pages/yishi/service_setting/index.js @@ -0,0 +1,386 @@ +import { API } from './../../../utils/network/api' +import Toast from 'tdesign-miniprogram/toast/index'; +let api = new API() +const app = getApp() +Page({ + + /** + * 页面的初始数据 + */ + data: { + navbarData: { + showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示 + title: '服务设置', //导航栏 中间的标题 + }, + show:false, + content_message:'', + process_message:'', + showCycle:false, + customRounds:null, + columnsRound:false, + showProcess:false, + showCustom:false, + showSave:false, + showDraft:false, + showPreview:false, + contentradio:'', + processradio:'', + columnsCycle:[], + columnsRound:[50,100,200,'不限次','自定义'], + autosize:{minHeight: 80}, + cycle:'', + config_service_id:'', + rounds:null + }, + onChangeContent(event){ + this.setData({ + contentradio: event.detail, + }); + }, + onChangeProcess(event){ + this.setData({ + processradio: event.detail, + }); + }, + openDialog(e){ + let {id}=e.currentTarget.dataset; + if(id==1){ + this.setData({ + show:true, + }) + }else{ + this.setData({ + showProcess:true, + }) + } + }, + onClickHide(){ + this.setData({ + show:false + }); + if(this.data.contentradio==1){ + this.setData({ + content_message:'1、服务包含肝脏病理切片解读,需患者邮寄肝脏切片;\n'+ + '2、针对病例切片多学科会诊,包含:临床、影像、肝脏病理等学科;\n'+ + '3、给出分析报告与治疗方案;\n'+ + '4、服务周期,大概7~15天,期间可以不限次(医生自己定义)沟通病情。' + }) + }else{ + this.setData({ + content_message:'1、概述服务所包含内容,如报告解读(可包含超声报告、CT报告、肝脏病理报告及其他常规报告)或者病情解析;\n2、详细描述服务所包含的具体服务或者形\n3、请给出服务周期;\n4、描述该项所提供服务的特点。' + }) + } + }, + closeCustom(){ + console.log(this.data.customRounds); + if(!this.data.customRounds && this.data.customRounds!==0){ + wx.showToast({ + title: '请输入回合数', + icon:'none' + }) + return false + }; + if(!(this.data.customRounds>=1 && this.data.customRounds<=300) ){ + wx.showToast({ + title: '回合数需要在1~300之间', + icon:'none' + }) + return false + } + this.setData({ + showCustom:false, + rounds:this.data.customRounds + }) + }, + changeCustomIpt(event){ + let {value}= event.detail; + console.log(value); + this.setData({ + customRounds:value + }) + }, + onClickHideshowProcess(){ + this.setData({ + showProcess:false + }) + if(this.data.processradio==1){ + this.setData({ + process_message:'1、医生与患者线上沟通确定肝脏病理切片解读事项\n'+ + '2、患者按要求线下邮寄切片并线上提醒医生已寄出;\n'+ + '3、医生线下收到切片后阅片解读或组织多学科会诊;\n'+ + '4、医生线上给出分析报告和治疗方案。' + }) + }else{ + this.setData({ + process_message:'1、针对本项目服务,医生与患者各自需要所作事情;\n'+ + '2、所做事情用1、2、3点按照时间顺序进行详细描述。' + }) + } + }, + openCycle(){ + this.setData({ + showCycle:true + }) + }, + onCancelCycle(){ + this.setData({ + showCycle:false + }) + }, + onConfirmCycle(event){ + const { value} = event.detail; + this.setData({ + showCycle:false , + cycle: value + }); + }, + openRound(){ + this.setData({ + showRound:true + }) + }, + onCancelRound(){ + this.setData({ + showRound:false + }) + }, + onConfirmRound(event){ + const { value} = event.detail; + if(value=='自定义'){ + this.setData({ + showCustom:true, + showRound:false + }) + }else{ + this.setData({ + showRound:false, + rounds:value + }) + } + + }, + savecancelDialog(){ + this.setData({ + showSave:false + }) + + }, + saveconfirmDialog(){ + + let {cycle,rounds,content_message,process_message,config_service_id}=this.data; + wx.setStorageSync('service_setting',{ + cycle, + rounds, + content_message, + process_message, + + }) + + this.setData({ + showSave:false + }) + if(config_service_id){ + this.putConfig(); + }else{ + this.postConfig(); + } + + }, + draftcancelDialog(){ + this.setData({ + showDraft:false + }) + this.getConfig(); + }, + draftconfirmDialog(){ + const service_setting=wx.getStorageSync('service_setting'); + this.setData({ + cycle:service_setting.cycle, + rounds:service_setting.rounds, + content_message:service_setting.content_message, + process_message:service_setting.process_message, + showDraft:false + }) + }, + previewcancelDialog(){ + this.setData({ + showPreview:false + }) + }, + previewconfirmDialog(){ + this.setData({ + showPreview:false + }) + }, + save(){ + let {cycle,rounds,content_message,process_message}=this.data; + if(cycle || rounds || content_message || process_message){ + this.setData({ + showSave:true + }) + + } + }, + validate(){ + let {process_message,content_message,cycle,rounds}=this.data; + if(content_message.length<10){ + wx.showToast({ + title: '服务内容不少于10个字符', + icon:'none' + }) + return false + }; + if(process_message.length<10){ + wx.showToast({ + title: '服务流程不少于10个字符', + icon:'none' + }) + return false + } + if(!cycle){ + wx.showToast({ + title: '请设置服务周期', + icon:'none' + }) + return false + } + if(!rounds){ + wx.showToast({ + title: '请设置服务回合数', + icon:'none' + }) + return false + } + return true + }, + postConfig(){//新增 + let {process_message,content_message,cycle,rounds}=this.data; + if(this.validate()){ + api.postServiceConfig({ + service_content:content_message, + service_process:process_message, + service_period:cycle, + service_rounds:rounds=='不限次'?0:rounds + }).then(response => { + if(response.data==200){ + wx.showToast({ + title: 'title', + icon:'新增成功' + }) + wx.navigateBack() + } + }).catch(errors => {console.error(errors);}) + } + + }, + putConfig(){ //修改 + let {config_service_id,process_message,content_message,cycle,rounds}=this.data; + if(this.validate()){ + api.putServiceConfig({ + service_content:content_message, + service_process:process_message, + service_period:cycle, + service_rounds:rounds=='不限次'?0:rounds + },config_service_id).then(response => { + if(response.data==200){ + wx.showToast({ + title: 'title', + icon:'修改成功' + }) + wx.navigateBack() + } + }).catch(errors => {console.error(errors);}) + } + + }, + getConfig(){ + let {inquiry_type,inquiry_mode}=this.data; + api.getServiceConfig({ + inquiry_type:1, + inquiry_mode:6 + }).then(response => { + let result=response.data; + if(result){ + this.setData({ + 'content_message':result.service_content, + 'process_message':result.service_process, + 'cycle':result.service_period, + 'rounds':result.service_rounds + }) + } + }).catch(errors => {console.error(errors);}) + }, + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + const service_setting=wx.getStorageSync('service_setting'); + let arr=[]; + for (let i =2; i < 31; i++) { + arr.push(i) + } + this.setData({ + columnsCycle:arr + }) + if(options.config_service_id){ + this.setData({ + config_service_id:options.config_service_id + }) + } + if(service_setting){ + this.setData({ + showDraft:true + }) + + } + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + } +}) \ No newline at end of file diff --git a/Pages/yishi/service_setting/index.json b/Pages/yishi/service_setting/index.json new file mode 100644 index 0000000..4e14b46 --- /dev/null +++ b/Pages/yishi/service_setting/index.json @@ -0,0 +1,13 @@ +{ + "usingComponents": { + "te-nav-bar": "/commpents/te_navbar", + "van-icon": "@vant/weapp/icon/index", + "van-radio": "@vant/weapp/radio/index", + "van-picker": "@vant/weapp/picker/index", + "van-popup": "@vant/weapp/popup/index", + "t-dialog": "tdesign-miniprogram/dialog/dialog", + "van-radio-group": "@vant/weapp/radio-group/index", + "van-overlay": "@vant/weapp/overlay/index", + "van-field": "@vant/weapp/field/index" + } +} \ No newline at end of file diff --git a/Pages/yishi/service_setting/index.wxml b/Pages/yishi/service_setting/index.wxml new file mode 100644 index 0000000..d2fb5df --- /dev/null +++ b/Pages/yishi/service_setting/index.wxml @@ -0,0 +1,193 @@ + + + + + + + + 服务内容 + 使用模板 > + + + + + + 服务流程 + 使用模板 > + + + + + 服务周期 + + {{cycle}}天 + 去设置 + + + + + 服务回合数 + + {{rounds}} + 去设置 + + + + + + 预览效果 + + + + 保存 + + + + + + + + 服务内容 + 内容会展示给患者,请仔细编写并删除 + 相关提示语 + + + + + 模板1 + 选择此模板 + + + 1、服务包含肝脏病理切片解读,需患者邮寄肝脏切片 + 2、针对病例切片多学科会诊,包含:临床、影像、肝脏病理等学科; + 3、给出分析报告与治疗方案; + 4、服务周期,大概7~15天,期间可以不限次(医生自己定义)沟通病情。 + + + + + + 模板2 + 选择此模板 + + + 1、概述服务所包含内容,如报告解读(可包含超声报告、CT报告、肝脏病理报告及其他常规报告)或者病情解析; + 2、详细描述服务所包含的具体服务或者形式; + 3、请给出服务周期; + 4、描述该项所提供服务的特点。 + + + + + + 确认选择 + + + + + + + + 服务流程 + 内容会展示给患者,请仔细编写并删除 + 相关提示语 + + + + + 模板1 + 选择此模板 + + + 1、医生与患者线上沟通确定肝脏病理切片解读事项 + 2、患者按要求线下邮寄切片并线上提醒医生已寄出; + 3、医生线下收到切片后阅片解读或组织多学科会诊; + 4、医生线上给出分析报告和治疗方案。 + + + + + + 模板2 + 选择此模板 + + + 1、针对本项目服务,医生与患者各自需要所作事情; + 2、所做事情用1、2、3点按照时间顺序进行详细描述。 + + + + + + 确认选择 + + + + + + + + + + + + + 自定义服务回合数 + + 回合数 + + + 确认 + + + + + + 取消 + + + 保存 + + + + + 取消 + + + 加载 + + + + + 取消 + + + 前往 + + \ No newline at end of file diff --git a/Pages/yishi/service_setting/index.wxss b/Pages/yishi/service_setting/index.wxss new file mode 100644 index 0000000..1cbea42 --- /dev/null +++ b/Pages/yishi/service_setting/index.wxss @@ -0,0 +1,292 @@ +/* Pages/service_setting/index.wxss */ +.page { + height: 100vh; + display: flex; + overflow: hidden; + flex-direction: column; +} + +.container { + + display: flex; + flex-direction: column; + height: calc(100vh - 138rpx); + background-color: #F6F6F6; +} + +.brandbox { + padding: 32rpx 30rpx 0; + flex: 1; + overflow-y: scroll; + -webkit-overflow-scrolling: touch; +} + +.titlebox { + margin-top: 20rpx; + display: flex; + align-items: flex-end; + justify-content: space-between; +} + +.brand { + margin-bottom: 24rpx; + padding: 30rpx; + background: #FFFFFF; + border-radius: 14rpx; +} + +.titlebox .name { + font-size: 32rpx; + font-weight: 500; + color: rgba(0, 0, 0, 0.85); +} + +.titlebox .moban { + width: 151rpx; + height: 48rpx; + display: flex; + align-items: center; + justify-content: center; + background: #FFFFFF; + border-radius: 50rpx; + border: 1rpx solid #3CC7C0; + font-size: 24rpx; + font-weight: 500; + color: #3CC7C0; +} + +.van-cell { + padding: 13rpx 0 !important; +} + +.cell { + margin-bottom: 24rpx; + padding: 30rpx; + background: #FFFFFF; + border-radius: 14rpx; + display: flex; + justify-content: space-between; + align-items: center; +} + +.right { + display: flex; + font-size: 28rpx; + font-weight: 400; + color: rgba(0, 0, 0, 0.45); + align-items: center; +} + +.icon { + margin-top: 2rpx; +} + +.eyebox { + padding-top: 20rpx; + display: flex; + align-items: center; + margin-bottom: 20rpx; + justify-content: center; +} + +.eye { + margin-top: 2rpx; + width: 40rpx; + height: 40rpx; +} + +.eyebox .text { + font-size: 32rpx; + margin-left: 5rpx; + font-weight: 500; + color: #3BB5FE; + +} + +.btnbox { + margin-bottom: 20rpx; +} + +.btn { + + margin: 0 30rpx; + height: 88rpx; + display: flex; + justify-content: center; + align-items: center; + background: #3CC7C0; + border-radius: 8rpx; + font-size: 32rpx; + font-weight: 500; + color: #FFFFFF; +} + +.wrapper { + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + height:100vh; +} + +.configbox { + box-sizing: border-box; + padding: 24rpx 30rpx; + background-color: #fff; + width: 90%; + border-radius: 16rpx; +} + +.configbox .title { + font-size: 36rpx; + font-weight: 500; + color: rgba(0, 0, 0, 0.85); + text-align: center; +} + +.tipmsg { + margin-top: 12rpx; + font-size: 28rpx; + font-weight: 400; + color: #3BB5FE; + line-height: 44rpx; + text-align: center; + padding: 10rpx 60rpx; + background: #F2F8FF; +} + +.tipbox { + margin-top: 20rpx; + background: #EEEEF0; + border-radius: 8rpx; + padding:24rpx; + box-sizing: border-box; + font-size: 28rpx; + font-weight: 400; + margin-bottom: 5rpx; + color: rgba(0, 0, 0, 0.65); + line-height: 44rpx; + border: 1rpx solid #EEEEF0 ; +} +.tipbox.active{ + margin-top: 20rpx; + background: #FFFFFF; + border-radius: 8rpx; + padding:24rpx; + box-sizing: border-box; + font-size: 28rpx; + font-weight: 400; + margin-bottom: 5rpx; + color: rgba(0, 0, 0, 0.65); + line-height: 44rpx; + border: 1rpx solid #3CC7C0; +} +.van-radio{ + display: flex; + flex-direction: row-reverse; +} +.van-radio__icon{ + margin-left: 10rpx; +} +.van-radio__label{ + color: rgba(0,0,0,0.45)!important; + font-size: 28rpx!important; +} +.confirm{ + display: flex; + align-items: center; + justify-content: center; +height: 88rpx; +background: linear-gradient(90deg, #3CC7C0 0%, #62EBE4 100%); +border-radius: 8rpx; +font-size: 32rpx; +margin-top: 24rpx; +font-weight: 500; +color: #FFFFFF; +} +.custom-class{ + position: absolute; + bottom:0; +} +.van-picker__cancel{ + color: rgba(0,0,0,0.65)!important; +} +.van-picker__confirm{ + color: #3CC7C0!important; +} +.custombox{ + padding:32rpx; + width:70%; + border-radius: 16rpx; + background-color: #fff; +} +.roundBox{ + margin: 56rpx 0; + display: flex; + justify-content: space-between; +} +.custombox .title{ + text-align: center; + font-size: 36rpx; +font-weight: 500; +color: rgba(0,0,0,0.85) +} +.custombox .name{ + font-size: 32rpx; +font-weight: 400; +color: rgba(0,0,0,0.85); +} +.custombox .ipt{ + text-align: right; +} +.btnround{ + width:100%; +height: 88rpx; +background: #3CC7C0; +border-radius: 8rpx; +font-size: 32rpx; +font-weight: 500; +color: #FFFFFF; +display: flex; +align-items: center; +justify-content: center; +} +.dialog{ + width: 50%; + text-align: center; + height: 100rpx; + line-height: 100rpx; + } + .dialog_cancel_btn{ + position: relative; + } + .dialog_cancel_btn::before { + content: ' '; + position: absolute; + box-sizing: border-box; + top: 0; + left: 0; + border-top: 2px solid var(--td-border-color, #e7e7e7); + border-right: 2px solid var(--td-border-color, #e7e7e7); + transform: scale(0.5); + transform-origin: 0 0; + width: 200%; + height: 200%; + border-radius: 0; + border-top-left-radius: 0px; + border-top-right-radius: 0px; + border-bottom-right-radius: 0px; + border-bottom-left-radius: 0px; + } + .dialog_confirm_btn{ + border-top: 1px solid #E9E9E9; + color: #3CC7C0; + } + .t-button__content{ + color: #3CC7C0 !important; + } + .t-dialog__button--text:before { + border-top: 2px solid #E9E9E9 !important; + border-left: 2px solid var(--td-border-color, #E9E9E9); + border-top-color: #E9E9E9 !important; + } \ No newline at end of file diff --git a/Pages/yishi/sickform/index.json b/Pages/yishi/sickform/index.json index 6a36619..bdec5bb 100644 --- a/Pages/yishi/sickform/index.json +++ b/Pages/yishi/sickform/index.json @@ -1,6 +1,6 @@ { "usingComponents": { - "te-nav-bar": "/commpents/te_navbar", + "van-radio": "@vant/weapp/radio/index", "van-radio-group": "@vant/weapp/radio-group/index" diff --git a/Pages/yishi/wenzhen_v2/wenzhen.js b/Pages/yishi/wenzhen_v2/wenzhen.js index 2897e4a..266bd13 100644 --- a/Pages/yishi/wenzhen_v2/wenzhen.js +++ b/Pages/yishi/wenzhen_v2/wenzhen.js @@ -366,7 +366,7 @@ Page({ conversationList: new_conversationList }) }).then(() => { - // console.log("开始格式化formatConversationList") + console.log("开始格式化formatConversationList") this.formatConversationList(); }).catch(errors => {console.error(errors);}) }, @@ -404,6 +404,7 @@ Page({ let order_inquiry_id = cloudCustomDataJson.order_inquiry_id; if(!order_inquiry_id) return; let inquiry_type = cloudCustomDataJson.inquiry_type; + let inquiry_mode=cloudCustomDataJson.inquiry_mode; if(!inquiry_type) return; if(inquiry_type > 5) return; if(inquiry_type < message_inquiry_type){ @@ -441,6 +442,7 @@ Page({ session_item.message_type = type; session_item.order_inquiry_id = order_inquiry_id; session_item.inquiry_type = inquiry_type; + session_item.inquiry_mode = inquiry_mode; session_item.patient_age = patient_family_data.patient_age; session_item.patient_name = patient_family_data.patient_name; session_item.patient_sex = patient_family_data.patient_sex; @@ -465,6 +467,7 @@ Page({ session_item.message_dot = false; } } + session_list[inquiry_type - 1].push(session_item); console.log("--------------------") console.log(session_list) diff --git a/Pages/yishi/wenzhen_v2/wenzhen.wxml b/Pages/yishi/wenzhen_v2/wenzhen.wxml index e4fe8fa..520a457 100644 --- a/Pages/yishi/wenzhen_v2/wenzhen.wxml +++ b/Pages/yishi/wenzhen_v2/wenzhen.wxml @@ -177,6 +177,7 @@ + {{item.inquiry_mode==1?'图文':item.inquiry_mode==2?'视频':item.inquiry_mode==6?'疑难问诊':'其他'}} 就诊人: {{item.patient_name}} {{item.patient_sex==1?'男':'女'}}|{{item.patient_age}} @@ -272,6 +273,7 @@ + 就诊人: {{item.patient_name}} {{item.patient_sex==1?'男':'女'}}|{{item.patient_age}} diff --git a/Pages/yishi/wenzhen_v2/wenzhen.wxss b/Pages/yishi/wenzhen_v2/wenzhen.wxss index ddfbe73..bca92af 100644 --- a/Pages/yishi/wenzhen_v2/wenzhen.wxss +++ b/Pages/yishi/wenzhen_v2/wenzhen.wxss @@ -77,7 +77,7 @@ page{ font-size: 30rpx; color: #666666; height: 50rpx; - line-height: 50rpx; + align-items: center; display: flex; } .date{ @@ -142,3 +142,37 @@ page{ align-items: center; flex-direction: column; } +.parallelogram { + margin-top: 4rpx; + margin-left: 10rpx; + margin-right:15rpx; + padding:0 20rpx; + height: 44rpx; + z-index: 1; + display: flex; + justify-content: center; + align-items: center; + color: #fff; + font-size: 28rpx; + position: relative; + text-decoration: none; +} + +/* 添加伪元素作为平行四边形的角点 */ +.parallelogram::before { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: -1; + background:#007cff; + transform: skewX(-20deg); +} +.parallelogram.video.parallelogram::before{ + background:#00c986; +} +.parallelogram.yinan.parallelogram::before{ + background:#ffb700; +} \ No newline at end of file diff --git a/Pages/yishi/yizhensetup/index.wxml b/Pages/yishi/yizhensetup/index.wxml index 79e7df9..bc038a2 100644 --- a/Pages/yishi/yizhensetup/index.wxml +++ b/Pages/yishi/yizhensetup/index.wxml @@ -52,7 +52,7 @@ 提示:服务开启后,您将参与到平台爱心公益问诊活动中 1、从平台统一设定的多种公益问诊价格中选择您的公益问诊价格 - 2、接诊后,患者可与您在{{config.duration/60}}小时内进行{{config.times_number}}回合沟通 + 2、接诊后,患者可与您在{{config.duration/60}}小时内进行{{config.times_number}}回合沟通 diff --git a/TUIKit/components/TUIChat/components/MessageInput/index.js b/TUIKit/components/TUIChat/components/MessageInput/index.js index 2e1a81d..25da60f 100644 --- a/TUIKit/components/TUIChat/components/MessageInput/index.js +++ b/TUIKit/components/TUIChat/components/MessageInput/index.js @@ -1,6 +1,7 @@ import logger from '../../../../utils/logger'; import constant from '../../../../utils/constant'; import { API } from '../../../../../utils/network/api'; +import dayjs from '../../../../utils/dayjs'; import { requestSubscribeMessage } from '../../../../../utils/requestSubscribeUtil'; const api = new API() let app = getApp() @@ -93,6 +94,8 @@ Component({ title: ' ', notShow: false, isShow: true, + currentDate: null, + minDate:null, commonFunction: [ { name: '查看完整病历', key: '10' }, { name: '在线开处方', key: '11' }, @@ -116,7 +119,25 @@ Component({ dialog_message: "在线开处方需先进行多点执业认证", message_rounds: 0, networkstatus: "wifi", - static_host: api.getStaticHost() + static_host: api.getStaticHost(), + formatter(type, value) { + if (type === 'year') { + return `${value}年`; + } + if (type === 'month') { + return `${value}月`; + } + if (type === 'day') { + return `${value}日`; + } + if (type === 'hour') { + return `${value}时`; + } + if (type === 'minute') { + return `${value}分`; + } + return value; + }, }, lifetimes: { @@ -186,6 +207,7 @@ Component({ const mycloudCustomData = JSON.stringify({ order_inquiry_id: this.data.order_inquiry_id, inquiry_type: this.data.inquiry_type, + inquiry_mode:this.data.baseInfo.inquiry_mode, message_type: 0, is_system: 0, message_rounds: message_rounds, @@ -292,7 +314,7 @@ Component({ }); }); }, - + // 打开录音开关 switchAudio() { wx.hideKeyboard(); @@ -595,6 +617,7 @@ Component({ const mycloudCustomData = JSON.stringify({ order_inquiry_id: this.data.order_inquiry_id, inquiry_type: this.data.inquiry_type, + inquiry_mode:this.data.baseInfo.inquiry_mode, message_type: 0, is_system: 0, message_rounds: message_rounds, @@ -686,10 +709,27 @@ Component({ } }) break; + case '12'://预约视频时间 + this.setData({ + currentDate:new Date().getTime(), + minDate:new Date().getTime(), + showTimepicker:true + }) default: break; } }, + cancelTimepicker(){ + this.setData({ + showTimepicker:false + }) + }, + confirmTimepicker(event){ + console.log(dayjs(event.detail).format('YYYY-MM-DD HH:mm')); + this.setData({ + showTimepicker:false + }) + }, goCase(){ let order_inquiry_id = this.data.order_inquiry_id @@ -978,6 +1018,7 @@ Component({ const mycloudCustomData = JSON.stringify({ order_inquiry_id: this.data.order_inquiry_id, inquiry_type: this.data.inquiry_type, + inquiry_mode:this.data.baseInfo.inquiry_mode, message_type: 0, is_system: 0, message_rounds: message_rounds, diff --git a/TUIKit/components/TUIChat/components/MessageInput/index.json b/TUIKit/components/TUIChat/components/MessageInput/index.json index 9e27a6f..f507e03 100644 --- a/TUIKit/components/TUIChat/components/MessageInput/index.json +++ b/TUIKit/components/TUIChat/components/MessageInput/index.json @@ -4,6 +4,8 @@ "Emoji": "../MessageElements/Emoji/index", "CommonWords": "../MessagePrivate/CommonWords/index", "OrderList": "../MessagePrivate/OrderList/index", + "van-popup": "@vant/weapp/popup/index", + "van-datetime-picker": "@vant/weapp/datetime-picker/index", "ServiceEvaluation": "../MessagePrivate/ServiceEvaluation/index", "t-dialog": "tdesign-miniprogram/dialog/dialog" } diff --git a/TUIKit/components/TUIChat/components/MessageInput/index.wxml b/TUIKit/components/TUIChat/components/MessageInput/index.wxml index 1b9ac44..64c82f2 100644 --- a/TUIKit/components/TUIChat/components/MessageInput/index.wxml +++ b/TUIKit/components/TUIChat/components/MessageInput/index.wxml @@ -2,6 +2,7 @@ 查看完整病历 在线开处方 + 预约视频时间 + + + + diff --git a/TUIKit/components/TUIChat/components/MessageInput/index.wxss b/TUIKit/components/TUIChat/components/MessageInput/index.wxss index a175394..584a699 100644 --- a/TUIKit/components/TUIChat/components/MessageInput/index.wxss +++ b/TUIKit/components/TUIChat/components/MessageInput/index.wxss @@ -213,4 +213,10 @@ .dialog_confirm_btn{ border-top: 1px solid #E9E9E9; color: #3CC7C0; +} +.van-picker__cancel{ + color: rgba(0,0,0,0.65)!important; +} +.van-picker__confirm{ + color: #3CC7C0!important; } \ No newline at end of file diff --git a/TUIKit/components/TUIChat/index.js b/TUIKit/components/TUIChat/index.js index 5d1ac3e..43f9799 100644 --- a/TUIKit/components/TUIChat/index.js +++ b/TUIKit/components/TUIChat/index.js @@ -107,6 +107,16 @@ Component({ }, ready() { + let hasTip=wx.getStorageSync('showNewerTip'); + if(hasTip){ + this.setData({ + showTip:false + }) + }else{ + this.setData({ + showTip:true + }) + } //修改为组件传值 // this.getInquiryMessageBasic() // console.log("app.globalData.scene from TUIchat ready: ", app.globalData.scene); @@ -148,6 +158,7 @@ Component({ rest_time:0, total_rounds:0, timeData:{}, + showTip:false, conversationName: '', conversation: {}, messageList: [], @@ -209,6 +220,12 @@ Component({ // } }, + onClickHide() { + this.setData({ showTip: false }); + wx.setStorageSync('showNewerTip',true) + }, + + noop() {}, onChangeTime(e) { this.setData({ 'timeData': e.detail, diff --git a/TUIKit/components/TUIChat/index.json b/TUIKit/components/TUIChat/index.json index 617f126..0b8e6b9 100644 --- a/TUIKit/components/TUIChat/index.json +++ b/TUIKit/components/TUIChat/index.json @@ -4,6 +4,7 @@ "MessageList": "./components/MessageList/index", "MessageInput": "./components/MessageInput/index", "TUIGroup": "../TUIGroup/index", + "van-overlay": "@vant/weapp/overlay/index", "van-count-down": "@vant/weapp/count-down/index", "te-nav-bar": "/commpents/te_navbar", "t-dialog": "tdesign-miniprogram/dialog/dialog" diff --git a/TUIKit/components/TUIChat/index.wxml b/TUIKit/components/TUIChat/index.wxml index 86b13ce..79038a1 100644 --- a/TUIKit/components/TUIChat/index.wxml +++ b/TUIKit/components/TUIChat/index.wxml @@ -81,4 +81,32 @@ 确定 - \ No newline at end of file + + + + + + 视频问诊新手指引 + + 1、主动与患者确定视频时间,并点击下发【预约视频时间】按钮进行设置; + +2、如需修改视频时间,可在聊天页的上方点击黄色区域修改; +3、请设置视频时间,方便给双方下发短信; +4、请在预约的视频时间前进入聊天页,准时发起视频。 + + + + + + + 不再提醒 + 确 定 + + + + \ No newline at end of file diff --git a/TUIKit/components/TUIChat/index.wxss b/TUIKit/components/TUIChat/index.wxss index ac0f562..6b176b6 100644 --- a/TUIKit/components/TUIChat/index.wxss +++ b/TUIKit/components/TUIChat/index.wxss @@ -226,4 +226,82 @@ .dialog_confirm_btn{ border-top: 1px solid #E9E9E9; color: #3CC7C0; -} \ No newline at end of file +} + +.wrapper { + + width:100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + } + + .block .title{ + text-align: center; + font-size: 48rpx; + + font-weight: 500; + color: #FFFFFF; + } + .wrapper .con{ + margin-top: 30rpx; + background-color: #f2fcff; + border-radius: 20rpx; + padding: 50rpx 40rpx 30rpx; + } + .msgcell{ + margin-top: 10rpx; + font-size: 32rpx; + } + .yuyue{ + width:343rpx; + height:274rpx; + } + .wrapper .block{ + margin-top:400rpx; + position: relative; + width:90%; +} + .imgcon{ + margin-top: 0rpx; + display: flex; + justify-content: flex-end; + } + .btnwraper{ + display: flex; + justify-content: center; + } + .tipcancel{ + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; +font-weight: 500; +color: #FFFFFF; + width: 240rpx; + height: 88rpx; + background: rgba(255,255,255,0.12); + border-radius: 44rpx; + border: 1rpx solid #FFFFFF; + } + .tipok{ + display: flex; + align-items: center; + justify-content: center; + font-size: 32rpx; + font-weight: 500; + width: 240rpx; +height: 88rpx; +background: #3CC7C0; +border-radius: 50rpx; +color: #FFFFFF; +margin-left: 32rpx; + } + .star{ + left:50rpx; + top:25rpx; + position: absolute; + width: 150rpx; + height: 150rpx; + } \ No newline at end of file diff --git a/app.json b/app.json index b0c5fe1..25fa4a1 100644 --- a/app.json +++ b/app.json @@ -63,7 +63,8 @@ "Pages/yishi/notify/notify", "Pages/yishi/patient_sick/index", "Pages/yishi/write_sickform/index", - "Pages/yishi/sickform/index" + "Pages/yishi/sickform/index", + "Pages/yishi/service_setting/index" ], "window": { "navigationBarBackgroundColor": "#ffffff", diff --git a/project.private.config.json b/project.private.config.json index f83046b..ba3a899 100644 --- a/project.private.config.json +++ b/project.private.config.json @@ -18,5 +18,5 @@ ] } }, - "libVersion": "3.0.1" + "libVersion": "3.3.0" } \ No newline at end of file diff --git a/static/images/yishi/tabbar_icon/eye.png b/static/images/yishi/tabbar_icon/eye.png new file mode 100644 index 0000000000000000000000000000000000000000..3f5f889c7bb25c6493350f104d1d18667c0a1895 GIT binary patch literal 1216 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