diff --git a/components/bookBox.vue b/components/bookBox.vue index 34bcc6f..4348faf 100644 --- a/components/bookBox.vue +++ b/components/bookBox.vue @@ -3,11 +3,11 @@ - {{item.date.substring(8,10)}} - {{item.weekday}} + {{item.date.date.substring(8,10)}} + {{item.date.weekday}} - - {{item.type_text}} + + {{item.date.type_text}} @@ -16,7 +16,7 @@ 上午预约 - + {{item.start}}-{{item.end}} ({{item.bed_count>0?item.bed_count:'满'}}) @@ -31,7 +31,7 @@ 下午预约 - + {{item.start}}-{{item.end}} ({{item.bed_count?item.bed_count:'满'}}) @@ -90,10 +90,11 @@ export default { if(book.am.length > 0 || book.pm.length > 0) this.bookTimeList = true this.timeList = book }, - confirmSubmit(times){ + confirmSubmit(times, type){ if(times.bed_count <= 0) return times.date = this.RegistrationTimeList[this.selectDay].date times.key = this.selectDay + times.type = type this.$emit('confirmSubmitEvent', times) } } diff --git a/pages/index/index.vue b/pages/index/index.vue index fe04d68..24dd3b8 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -33,7 +33,7 @@ - {{item.h_name}} + {{item.h_name}} {{item.depart_name}} @@ -141,8 +141,6 @@ 'http://api.map.baidu.com/marker?location='+baiduLngLat.lat+','+baiduLngLat.lng+'&title='+hospital.h_name+'&content=即将前往目的地&output=html&src=webapp.baidu.openAPIdemo', 'https://m.amap.com/share/index/lnglat='+hospital.h_pos+'&name='+hospital.h_name+'&src=uriapi&innersrc=uriapi', ] - console.log(mapList[res.tapIndex]) - // return; // return; location.href = mapList[res.tapIndex] }, @@ -191,8 +189,8 @@ }); }, toVisitors(hospital){ - uni.setStorageSync('hospital_id', hospital.depart_id) - uni.setStorageSync('hospital', JSON.stringify(hospital)) + uni.setStorageSync('depart_id', hospital.depart_id) + uni.setStorageSync('depart', JSON.stringify(hospital)) uni.setStorageSync('doctor_info', JSON.stringify(this.doctorInfo)) uni.navigateTo({ url:"/pages/visitors/visitors?type=1" diff --git a/pages/prebook/prebook.vue b/pages/prebook/prebook.vue index ebad003..ccbf98f 100644 --- a/pages/prebook/prebook.vue +++ b/pages/prebook/prebook.vue @@ -2,18 +2,18 @@ - {{hospital.hospital_name}} {{hospital.hospital_dept_name}} + {{depart.h_name}} {{depart.depart_name}} 预约信息确认 - 当前时段余号不足,只能预约{{times.left_count}}人 + 当前时段余号不足,只能预约{{times.remain_num}}人 - {{item.real_name}} + {{item.visitor_name}} @@ -21,21 +21,21 @@ 就诊人: - {{nums[key]}}n.{{item.real_name}} + {{nums[key]}}n.{{item.visitor_name}} 医生姓名: - {{doctorInfo.name}} + {{doctorInfo.doctor_info.name}} 就诊医院: - {{hospital.hospital_name}} {{hospital.hospital_dept_name}} + {{depart.h_name}} {{depart.depart_name}} 看诊时间: - {{times.date}} 上午 {{times.start_time}}-{{times.end_time}} + {{times.date}} {{times.time_desc}} {{times.start_time}}-{{times.end_time}} @@ -66,7 +66,10 @@ activeVisitors:[], nums:['①','②','③','④','⑤','⑥','⑦','⑧','⑨','⑩'], times:false, - chooseVisitorCount:0 + chooseVisitorCount:0, + departId:false, + depart:false, + visit_nums_id:false } }, components:{ @@ -76,26 +79,24 @@ onShow() { var activeVisitors = uni.getStorageSync('active_visitors') if(!activeVisitors){ - this.$pop.modelShow('请先选择要预约的就诊人', '/pages/visitors/visitors?type=1') + this.$func.toPage('/pages/index/index') return } - this.activeVisitors = JSON.parse(activeVisitors) - this.hospitalId = uni.getStorageSync('hospital_id') - this.hospital = uni.getStorageSync('hospital') + this.activeVisitors = JSON.parse(activeVisitors) + this.departId = uni.getStorageSync('depart_id') + this.depart = uni.getStorageSync('depart') var doctorInfo = uni.getStorageSync('doctor_info') if(!doctorInfo){ this.$pop.modelShow('请先选择要预约的医生', '/pages/index/index') return } this.doctorInfo = JSON.parse(doctorInfo) - - if(!this.hospitalId && this.hospital) { - this.$pop.modelShow('请先选择要预约的医院', '/pages/index/index') + if(!this.departId && this.depart) { + this.$pop.modelShow('请先选择要预约的医院科室', '/pages/index/index') return } - this.hospital = JSON.parse(this.hospital) - this.doctorId = getApp().globalData.doctorId + this.depart = JSON.parse(this.depart) this.getAvailabletRegistrationTime() }, methods: { @@ -116,20 +117,23 @@ this.$set(this.activeVisitors, key, visitor) }, tips(){ + uni.removeStorageSync('active_visitors') uni.showToast({ title:"成功预约"+this.chooseVisitorCount+"人", mask:true, image:this.cssUrl+'gou.svg', times:false, success() { - uni.navigateTo({ - url:"/pages/prebook_list/prebook_list" - }) + setTimeout(function(){ + uni.navigateTo({ + url:"/pages/prebook_list/prebook_list" + }) + }, 1500) } }) }, getAvailabletRegistrationTime(refresh = true, chooseDay = '') { - this.$http.req('client/doctor/visit_hospital/days/'+this.hospitalId).then(data=>{ + this.$http.req('get_appoint_times',{depart_id:this.departId}, 'GET').then(data=>{ if(data == -1) return // data.days = [ // { @@ -221,7 +225,7 @@ // ] // } - this.RegistrationTimeList = data.days + this.RegistrationTimeList = data if(this.RegistrationTimeList.length>0) { if(refresh || chooseDay>=this.RegistrationTimeList.length) { this.$refs.book.dataInit(this.RegistrationTimeList[0]) @@ -236,11 +240,8 @@ }, appoint() { var param = new Object() - param.visit_hospital_id = this.hospitalId - param.start_time = this.times.start_time - param.end_time = this.times.end_time - param.date = this.times.date - + param.depart_id = this.departId + param.visit_nums_id = this.visit_nums_id var uids = new Array() for (var i = 0; i < this.activeVisitors.length; i++) { var visitor = this.activeVisitors[i] @@ -251,44 +252,59 @@ if(!visitor.choose) continue uids.push(visitor.id) } - + if(uids.length <= 0){ this.$pop.modelShow('请选择预约就诊人') return } - this.chooseVisitorCount = uids.length - param.user_ids = JSON.stringify(uids) - param.handler_type = 1 - this.$http.req('client/user/appoint/', param).then(data=>{ + if(uids.length > this.times.remain_num){ + this.$pop.modelShow('当前时段余号不足,只能预约'+this.times.remain_num+'人') + return + } + param.visitor_ids = uids.join(',') + + this.chooseVisitorCount = uids.length + this.$http.req('appoint', param).then(data=>{ if(data == -1) return this.tips() }); }, - appointCheck(times, chooseDay=''){ + appointCheck(times, chooseDay='', visit_nums_id){ var param = new Object() - param.start_time = times.start - param.end_time = times.end - param.date = times.date - param.visit_hospital_id = this.hospitalId - param.visit_user_count = 1 + param.depart_id = this.departId + this.visit_nums_id = param.visit_nums_id = visit_nums_id + + var visitor_ids = new Array(); + for (var i = 0; i < this.activeVisitors.length; i++) { + visitor_ids.push(this.activeVisitors[i].id) + } + param.visitor_ids = visitor_ids.join(',') + this.times = param - this.$http.req('client/user/appoint/check', param).then(data=>{ + this.times.date = times.date.date + this.times.start_time = times.start + this.times.end_time = times.end + this.times.time_desc = '下午' + if(times.type == 1) this.times.time_desc = '上午' + + this.$http.req('check_appoint_nums', param).then(data=>{ if(data == -1) { this.getAvailabletRegistrationTime(false, chooseDay) return } - if(data.left_count < this.activeVisitors.length){ + + if(data.remain_num < this.activeVisitors.length){ this.needSelectMembers = true + this.$set(this.times, 'remain_num', data.remain_num) this.$refs.sliderbox.showConfirm() - this.times.left_count = data.left_count }else{ this.$refs.sliderbox.showConfirm() } }); }, showConfirm(times) { - this.appointCheck(times, times.key) + this.appointCheck(times, times.key, times.id) }, submitConfim(){ this.appoint() diff --git a/pages/visitors/visitors.vue b/pages/visitors/visitors.vue index e9fa8df..ee6821c 100644 --- a/pages/visitors/visitors.vue +++ b/pages/visitors/visitors.vue @@ -73,7 +73,8 @@ hospitalId:false, activeVisitors:[], popMsgs:[], - popIndex:0 + popIndex:0, + depart_id:0 } }, components:{ @@ -90,9 +91,9 @@ uni.setStorageSync('visitor_type', this.type) this.getVisitors() - this.hospitalId = uni.getStorageSync('hospital_id') - if(!this.hospitalId && this.type == 1) { - this.$pop.modelShow('请先选择要预约的医院', '/pages/index/index') + this.depart_id = uni.getStorageSync('depart_id') + if(!this.depart_id && this.type == 1) { + this.$pop.modelShow('请先选择要预约的医院科室', '/pages/index/index') return } },