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 0000000..3f5f889 Binary files /dev/null and b/static/images/yishi/tabbar_icon/eye.png differ diff --git a/static/images/yishi/tabbar_icon/yuyue.png b/static/images/yishi/tabbar_icon/yuyue.png new file mode 100644 index 0000000..96d1c87 Binary files /dev/null and b/static/images/yishi/tabbar_icon/yuyue.png differ diff --git a/static/images/yishi/tabbar_icon/yuyue_star.png b/static/images/yishi/tabbar_icon/yuyue_star.png new file mode 100644 index 0000000..602d481 Binary files /dev/null and b/static/images/yishi/tabbar_icon/yuyue_star.png differ diff --git a/utils/network/api.js b/utils/network/api.js index 5455ddd..383358c 100644 --- a/utils/network/api.js +++ b/utils/network/api.js @@ -346,7 +346,7 @@ class API extends HTTP { //医生问诊开关 putDoctorInquiryOpen(params) { return this.request({ - url: `${this.baseUrl}/doctor/inquiry/open`, + url: `${this.baseUrl}/doctor/inquiry/config/open`, method: 'PUT', data: { ...params @@ -910,6 +910,34 @@ getJob() {//获取职业 method: 'GET' }) } +getServiceConfig(params) {//获取医生问诊配置-服务设置 + return this.request({ + url: `${this.baseUrl}/doctor/inquiry/config/service`, + method: 'GET', + data: { + ...params + } + }) + } + +postServiceConfig(params) {//新增医生问诊配置-服务设置 + return this.request({ + url: `${this.baseUrl}/doctor/inquiry/config/service`, + method: 'POST', + data: { + ...params + } + }) + } + putServiceConfig(params,id) {//修改医生问诊配置-服务设置 + return this.request({ + url: `${this.baseUrl}/doctor/inquiry/config/service/${id}`, + method: 'PUT', + data: { + ...params + } + }) + }