Browse Source

Merge pull request 'bug-rework-2025-0603' (#10) from bug-rework-2025-0603 into master

Reviewed-on: kuaileadmin/acupuncture_register_system_uniapp#10
master
超级管理员 5 months ago
parent
commit
87ab19cfa7
  1. 14
      App.vue
  2. 89
      components/explainPageHeader.vue
  3. 16
      components/preBookList.vue
  4. 39
      components/tabbar.vue
  5. 4
      components/userCard.vue
  6. 12
      components/visitorAccount.vue
  7. 7
      components/visitorList.vue
  8. 10
      pages.json
  9. 12
      pages/book_detail/book_detail.vue
  10. 265
      pages/explain/explain.vue
  11. 15
      pages/index/index.vue
  12. 2
      pages/modify_visitor/modify_visitor.vue
  13. 2
      pages/prebook_list/prebook_list.vue
  14. 2
      pages/usercenter/usercenter.vue
  15. 28
      pages/visit_detail/visit_detail.vue
  16. 15
      pages/visitors/visitors.vue
  17. 31
      pages/visitors_new/visitors_new.vue
  18. 13
      pages/waiting_method/waiting_method.vue

14
App.vue

@ -61,12 +61,14 @@
// #endif
// #ifdef MP-WEIXIN
uni.showModal({
title: '请扫描小程序二维码或点击小程序链接进入',
content: '',
showCancel: false,
success: ({ confirm, cancel }) => {}
})
// uni.showModal({
// title: '',
// content: '',
// showCancel: false,
// success: ({ confirm, cancel }) => {}
// })
uni.reLaunch({ url: '/pages/explain/explain' })
throw new Error('请扫描小程序二维码或点击小程序链接进入')
// #endif
}

89
components/explainPageHeader.vue

@ -0,0 +1,89 @@
<template>
<view class="">
<view class="headerbg"></view>
<view class="header-com" :style="{paddingTop:headerArea.status_height+'px'}">
<img class="logo" :src="cssUrl+'explain_logo.png'">
<view class="txt1 PfScSemibold">仁心大医·中医预约系统</view>
<view class="txt2 PfScMedium">打造智慧中医个人工作室</view>
</view>
</view>
</template>
<script>
export default {
name:'explainPageHeader',
data() {
return {
cssUrl:this.cssUrl
}
},
props:{
},
computed:{
headerArea() {
let area = uni.getSystemInfoSync();
// #ifdef MP-WEIXIN
return this.getHeaderInfo();
// #endif
// #ifndef MP-WEIXIN
return {
status_height: area.statusBarHeight
};
// #endif
}
},
methods: {
getHeaderInfo() {
let area = uni.getSystemInfoSync();
// #ifdef MP-WEIXIN
let menu = uni.getMenuButtonBoundingClientRect();
return {
status_height: menu.top
};
// #endif
},
getbarHeight() {
}
}
}
</script>
<style scoped lang="scss">
.headerbg{
position: fixed;
left: 0;
top: 0;
width: 100vw;
height: 398rpx;
background: linear-gradient(180deg, #4CAF50 1%, #62CA66 88%);
}
.header-com{
overflow: hidden;
width: 100%;
position: fixed;
z-index: 189;
.logo {
width: 100rpx;
height: 100rpx;
margin: 0 auto;
display: block;
}
.txt1{
font-size: 46rpx;
line-height: 42rpx;
color: #FFFFFF;
line-height: 46rpx;
text-align: center;
margin-top: 23rpx;
}
.txt2{
text-align: center;
margin-top: 14rpx;
font-size: 28rpx;
line-height: 42rpx;
color: #FFFFFF;
}
}
</style>

16
components/preBookList.vue

@ -10,7 +10,7 @@
</view>
</view>
<view class="right">
<view :class="statusStyleList[item.status_desc]+' status'"><view class="over">{{item.status_desc}}</view></view>
<view :class="statusStyleList[item.status_desc]+' status'"><view class="over">{{item.status_desc2 ? item.status_desc2 : item.status_desc}}</view></view>
<view class="queue-num" v-if="item.status_desc=='候诊' && item.wait_visit_count && item.wait_visit_count>0"><view>前方<text class="PfScSemibold">{{item.wait_visit_count}}</text></view> </view>
<view class="bedDesc" v-if="item.bed_desc && item.status_desc=='待就诊'">{{item.bed_desc}}</view>
</view>
@ -128,7 +128,7 @@ export default {
display: flex;
border-radius: 6rpx;
font-size: 26rpx;
line-height: 40rpx;
// line-height: 40rpx;
padding: 0 10rpx;
box-sizing: border-box;
min-width: 90rpx;
@ -142,7 +142,7 @@ export default {
&.status_wait{
view{
background: #F8FFF7;
border: 1rpx solid #58CA7F;
border: 2rpx solid #58CA7F;
color: #30C563;
}
}
@ -150,33 +150,33 @@ export default {
view{
background: #FFFAF7;
color: #FE6710;
border: 1px solid #FE6710;
border: 2rpx solid #FE6710;
}
}
&.status_down{
view{
background: #FCFCFC;
border: 1px solid #999999;
border: 2rpx solid #999999;
color: #999999;
}
}
&.status_cancle{
view{
background: #FCFCFC;
border: 1rpx solid #AEB0B8;
border: 2rpx solid #AEB0B8;
color: #B6B8BF;
}
}
&.status_expire{
view{
background: #FFEEEE;
border: 1rpx solid #FD0000;
border: 2rpx solid #FD0000;
color: #FD3B3B;
}
}
&.status_ing{
view{
border: 1rpx solid #5FA1CB;
border: 2rpx solid #5FA1CB;
background: #F7FCFF;
color: #007FD0;
}

39
components/tabbar.vue

@ -84,16 +84,37 @@
async scanCode() {
// #ifdef MP-WEIXIN
uni.scanCode({
onlyFromCamera: true,
scanType: ['qrCode'],
success: (res) => {
console.log('扫码结果:', res.result);
},
fail: (err) => {
console.error('扫码失败:', err);
// uni.showToast({ title: '', icon: 'none' });
success: (res) => {
if(res.path) {
const sceneParam = res.path.split('scene=')[1];
if (sceneParam && sceneParam.indexOf('dp=') > -1) {
var encodedScene = encodeURIComponent(sceneParam);
res.path = res.path.replace(`scene=${sceneParam}`, `scene=${encodedScene}`);
}
}
var url = `/${res.path}`;
uni.navigateTo({ url });
},
// fail: (err) => {
// uni.showToast({
// title: ''+JSON.stringify(err),
// icon: 'none'
// })
// }
complete(res) {
// console.log(':', res);
if (res.errMsg === 'scanCode:ok') {
console.log('扫码成功:', res.result);
} else if (res.errMsg === 'scanCode:fail cancel') {
console.log('用户取消扫码');
} else {
uni.showToast({
title: '扫码失败'+JSON.stringify(res.errMsg),
icon: 'none'
})
}
});
}
})
// #endif
// #ifdef H5

4
components/userCard.vue

@ -151,8 +151,8 @@ export default {
.is-input-border.is-focused {
border-color: #39D067 !important;
.uni-icons.content-clear-icon.uniui-clear {
color: #39D067 !important;
.uni-icons.uniui-clear {
color: #c0c4cc !important;
}
}
}

12
components/visitorAccount.vue

@ -1,7 +1,7 @@
<template>
<view :class="'visitor-account-com'+(open?' default-open':'')+(isOpen?' openstyle':'')">
<!-- <view class="visitor-account-com"> -->
<uni-collapse @change="change">
<uni-collapse @change="change($event)" catchtap="noop" data-type="collapse">
<uni-collapse-item :title="title ? title : ''" :thumb="thumb" :errmsg="errmsg" :disabled="disabled" :open="isOpen" v-if="visitorInfo">
<view class="collapse-list">
<view class="account-list">
@ -90,10 +90,14 @@ export default {
},
methods: {
change(e) {
if(e[0] != 0) {
this.$emit('closeEvent')
return;
this.$emit('changeOpen')
if(this.isOpen){
return
}
// if(e[0] != 0) {
// this.$emit('closeEvent')
// return;
// }
const object = {
visitor_id: this.visitor_id,
depart_id: this.depart_id

7
components/visitorList.vue

@ -19,6 +19,10 @@ export default {
add: {
type: Boolean,
default: () => false
},
has_visit: {
type: Boolean,
default: () => false
}
},
data() {
@ -47,6 +51,7 @@ export default {
param.limit = 10000
var obj = new Object()
obj.has_visit = this.has_visit ? 1 : 0
if (this.visitor_id != 0) obj.visitor_id = this.visitor_id
this.$http.req('api/user/get_visitors', obj, 'POST').then(data => {
if (data == -1) return
@ -91,7 +96,7 @@ export default {
text-align: center;
&.active {
border: 1rpx solid #5BD07A;
border: 2rpx solid #5BD07A;
color: #58CA7F;
font-weight: 500;
background: #F8FFF7;

10
pages.json

@ -2,7 +2,7 @@
"pages": [{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "就诊人"
"navigationBarTitleText": "首页"
}
},
{
@ -74,6 +74,14 @@
"style": {
"navigationBarTitleText": "就诊详情"
}
},
{
"path" : "pages/explain/explain",
"style" :
{
"navigationBarTitleText" : "",
"navigationStyle": "custom"
}
}
],
"globalStyle": {

12
pages/book_detail/book_detail.vue

@ -25,7 +25,7 @@
</view>
<view :class="'ccpop'+(popkey==0?' bed-edit-pop':'')">
<uni-popup ref="popup" type="bottom" background-color="#fff">
<uni-popup ref="popup" type="bottom" background-color="#fff" :mask-click="true">
<view class="edit-pop-title PfScSemibold">{{poptitle}}</view>
<user-card v-for="(item, key) in visitorList" :dataitem="item" @clickEvent="changeType" :index="key" :showuinfo="false"></user-card>
@ -263,7 +263,7 @@
&.status_wait{
.status_text{
background: #F8FFF7;
border: 1rpx solid #5BD07A;
border: 2rpx solid #5BD07A;
color: #58CA7F;
}
}
@ -271,26 +271,26 @@
.status_text{
background: #FFFAF7;
color: #FE6710;
border: 1px solid #FE6710;
border: 2rpx solid #FE6710;
}
}
&.status_down{
.status_text{
background: #FCFCFC;
border: 1px solid #999999;
border: 2rpx solid #999999;
color: #999999;
}
}
&.status_expire,&.status_cancle{
.status_text{
background: #FCFCFC;
border: 1rpx solid #AEB0B8;
border: 2rpx solid #AEB0B8;
color: #B6B8BF;
}
}
&.status_ing{
.status_text{
border: 1rpx solid #5FA1CB;
border: 2rpx solid #5FA1CB;
background: #F7FCFF;
color: #5FA1CB;
}

265
pages/explain/explain.vue

@ -0,0 +1,265 @@
<template>
<view class="explain index">
<Header ref="headerref"></Header>
<view class="content">
<view class="nav-bar">
<view :class="'nav-item'+(navtype==2?' active PfScMedium':'')" @click="changeType(2)">
患者用法
<view class="nav-item-bt-border" v-if="navtype==2"></view>
</view>
<view :class="'nav-item'+(navtype==1?' active PfScMedium':'')" @click="changeType(1)">
医生指南
<view class="nav-item-bt-border" v-if="navtype==1"></view>
</view>
</view>
<view class="nav-type1-content" v-if="navtype == 1">
<view class="type1-item" v-for="(item, key) in doctorDescList" :key="key">
<img :src="cssUrl+'explain_'+(key+1)+'.svg'">
<view class="type1-txt1 PfScSemibold">{{item.txt1}}</view>
<view class="type1-txt2">{{item.txt2}}</view>
</view>
</view>
<view class="nav-type2-content" v-if="navtype == 2">
<view class="step-header PfScSemibold">使用步骤</view>
<view class="step-item" v-for="(item, key) in patientStepDescList" :key="key">
<view class="step-left PfScMedium">
{{key+1}}
</view>
<view class="step-right">
<view class="type1-txt1 PfScSemibold">{{item.txt1}}</view>
<view class="type1-txt2">{{item.txt2}}</view>
</view>
</view>
</view>
<view class="step-bottom" v-if="navtype == 2">
<view class="step-bottom-desc">
<img :src="cssUrl+'explain_line_left.png'">
<text class="PfScSemibold">扫码约名医疗程随时查</text>
<img :src="cssUrl+'explain_line_right.png'">
</view>
<view class="step-bottom-list">
<view class="step-bottom-item" v-for="(item, key) in stepBottomList" :key="key">
<img :src="cssUrl+item.img">
<text class="PfScMedium">{{item.txt}}</text>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
import Header from '@/components/explainPageHeader.vue';
export default {
name:"index",
data() {
return {
pageLoad:false,
navtype:2,
cssUrl:this.cssUrl,
doctorDescList:[
{txt1:'医生个人品牌',txt2:'打造专属中医名片'},
{txt1:'处方余量管理',txt2:'自动扣除就诊次数'},
{txt1:'治疗时长闹钟',txt2:'智能计时免记录'},
{txt1:'床位标注',txt2:'医患实时同步位置'}
],
patientStepDescList:[
{txt1:'扫码或点击链接',txt2:'进入该医生的专属主页'},
{txt1:'预约就诊时间',txt2:'选择您方便的就诊时间段'},
{txt1:'就诊当天扫码报到',txt2:'扫描现场二维码,快速报到'},
{txt1:'查看疗程进度',txt2:'随时看治疗详情、剩余次数'},
],
stepBottomList:[
{txt:'名医直约',img:'explain_5.svg'},
{txt:'扫码即诊',img:'explain_6.svg'},
{txt:'疗程可查',img:'explain_7.svg'},
]
}
},
components:{
Header:Header
},
onLoad(e) {
console.log(e)
},
async onShow() {
this.pageLoad = true;
},
methods: {
changeType(type) {
this.navtype = type;
}
}
}
</script>
<style scoped lang="scss">
.explain{
height: 100vh;
box-sizing: border-box;
background: #FFFFFF;
width: 100vw;
overflow-x: hidden;
overflow-y: auto;
.content{
top: 356rpx;
position: absolute;
z-index: 198;
width: 100%;
height: auto;
overflow: hidden;
background: #FFFFFF;
border-radius: 24rpx 24rpx 0 0;
.nav-bar{
display: flex;
border-radius: 24rpx 24rpx 0rpx 0rpx;
border-radius: 24rpx 24rpx 0rpx 0rpx;
box-shadow: 0rpx 1rpx 0rpx 0rpx rgba(0, 0, 0, 0.15);
padding: 0 62rpx;
box-sizing: border-box;
width: 100%;
height: 120rpx;
.nav-item{
width: 269px;
height: 120rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 32rpx;
color: #666666;
position: relative;
.nav-item-bt-border{
position: absolute;
width:100%;
z-index: 9;
height: 4rpx;
bottom: 0rpx;
left: 0;
background: #4DC56D;
}
&.active{
color: #4DC56D;
}
}
}
.nav-type1-content{
display: flex;
flex-wrap: wrap;
justify-content: space-between;
padding: 48rpx 42rpx;
column-gap: 48rpx;
row-gap: 48rpx;
margin: 14rpx 42rpx 0 42rpx;
box-sizing: border-box;
height: auto;
.type1-item{
flex-shrink: 0;
flex-grow: 1;
img{
width: 80rpx;
height: 80rpx;
display: block;
margin: auto;
}
.type1-txt1,.type1-txt2{
text-align: center;
font-size: 28rpx;
}
.type1-txt1{
line-height: 38rpx;
color: #000000;
margin-top: 24rpx;
}
.type1-txt2{
color: #6B7280;
margin-top: 6rpx;
}
}
}
.nav-type2-content{
padding: 48rpx 42rpx 0 42rpx;
margin: 24rpx 42rpx 46rpx 42rpx;
box-sizing: border-box;
height: auto;
overflow: hidden;
.step-header{
font-size: 36rpx;
color: #000000;
margin-bottom: 48rpx;
}
.step-item{
display: flex;
column-gap: 32rpx;
margin-bottom: 48rpx;
height: 84rpx;
.step-left{
width: 64rpx;
height: 64rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 28rpx;
color: #FFFFFF;
border-radius: 100%;
background: #39D067;
}
.step-right{
.type1-txt1{
font-size: 28rpx;
color: #000000;
}
.type1-txt2{
font-size: 28rpx;
color: #6B7280;
margin-top: 6rpx
}
}
}
}
.step-bottom{
width: 618rpx;
height: auto;
margin: 46rpx auto 0;
.step-bottom-desc{
display: flex;
align-items: center;
justify-content: space-between;
img{
width: 98rpx;
height: 6rpx;
}
text{
font-size: 34rpx;
color: #82C989;
}
}
.step-bottom-list{
display: flex;
justify-content: space-between;
margin-top: 30rpx;
padding:0 38rpx;
.step-bottom-item{
display: flex;
align-items: center;
column-gap: 8rpx;
img{
width: 28rpx;
height: 28rpx;
}
text{
font-size: 28rpx;
color: #82C989;
}
}
}
}
}
}
</style>

15
pages/index/index.vue

@ -338,10 +338,11 @@
view{
width: auto;
padding: 0 15rpx;
min-width: 125rpx;
margin-top: 5rpx;
line-height: 42rpx;
text-align: center;
justify-content: center;
display: flex;
align-items: center;
height: 42rpx;
font-size: 28rpx;
background: linear-gradient( 288deg, #FFEED2 0%, #FED9A6 100%);
border-radius: 8rpx;
@ -384,6 +385,12 @@
max-height: 200rpx;
color: #666666;
}
.con::-webkit-scrollbar {
display: none;
width: 0;
height: 0;
color: transparent;
}
}
.title-wrapper{
.title{
@ -439,7 +446,7 @@
.fixed_hospital{
border-radius: 6rpx;
background: #F7FCFF;
border: 1rpx solid rgba(9, 131, 208, 0.6);
border: 2rpx solid rgba(9, 131, 208, 0.6);
box-sizing: border-box;
width: 123rpx;
height: 40rpx;

2
pages/modify_visitor/modify_visitor.vue

@ -134,7 +134,7 @@
if(this.vid){
uni.removeStorageSync('visitor_info_'+ this.vid)
}
this.$func.toPage('/pages/visitors/visitors')
this.$func.toPage('/pages/visitors_new/visitors_new')
},
submit(){
this.checkSubmit()

2
pages/prebook_list/prebook_list.vue

@ -1,6 +1,6 @@
<template>
<view class="page-prebook-list">
<visitor-list @prebookEvent="getBookData" ref="visitors"></visitor-list>
<visitor-list @prebookEvent="getBookData" ref="visitors" :has_visit="true"></visitor-list>
<pre-book-list class="preg-books" :dataList="bookList"></pre-book-list>
</view>
</template>

2
pages/usercenter/usercenter.vue

@ -3,7 +3,7 @@
<view class="user-wrapper" @click="toUserModify">
<img :src="uinfo.user_avatar" class="avator" v-if="uinfo.user_avatar">
<img :src="cssUrl+'user_grey.svg'" class="avator" v-else>
<view class="ucode PfScMedium over2">{{uinfo.user_nick}}</view>
<view class="ucode PfScMedium over2" v-if="uinfo.user_code">{{uinfo.user_code}}</view>
</view>
<view class="menu">

28
pages/visit_detail/visit_detail.vue

@ -23,13 +23,13 @@
<view class="fixedBot btPadding">
<view class="submit">
<view :class="'btn cancel'+(showCancelBook?' btn1':' btn3')" hover-class="hover" @click="reback">返回</view>
<view class="btn primary btn1" hover-class="hover" v-if="showCancelBook" @click="cancelBook">取消预约</view>
<view :class="'btn cancel btn1'+(!showCancelBook ?' btnauto': '') + (((bookInfo.status == 2 || bookInfo.status == 1) && bookInfo.is_checked != '1') ?' btn3' : '')" hover-class="hover" @click="reback">返回</view>
<view class="btn primary btn1" hover-class="hover" v-if="showCancelBook && bookInfo.status != 2" @click="cancelBook">取消预约</view>
</view>
</view>
<view :class="'ccpop'+(popkey==1?' bed-edit-pop':'')">
<uni-popup ref="popup" type="bottom" background-color="#fff">
<uni-popup ref="popup" type="bottom" background-color="#fff" :mask-click="true">
<view class="edit-pop-title PfScSemibold">{{poptitle}}</view>
<user-card :ref="'usercard_'+key" v-for="(item, key) in visitorList" :dataitem="item" @clickEvent="changeType" :index="key" :showuinfo="false"></user-card>
<view class="submit flex submit-popup">
@ -256,7 +256,7 @@
var bookInfo = data
this.bookInfo = bookInfo
this.status = this.statusStyleList[bookInfo.status]
if(bookInfo.status==0 || bookInfo.status==2){
if((bookInfo.status==0 || bookInfo.status==2) && bookInfo.is_checked != '1') {
this.showCancelBook = true
}else{
this.showCancelBook = false
@ -406,6 +406,16 @@
height: 90rpx;
}
}
.submit{
.btn.btn1.btnauto{
width: 642rpx;
height: 92rpx;
background: #F1F2F3;
border-radius: 16rpx;
font-size: 32rpx;
color: #616266;
}
}
// #ifdef H5
.list-box{
@ -438,7 +448,7 @@
&.status_wait{
.status_text{
background: #F8FFF7;
border: 1rpx solid #5BD07A;
border: 2rpx solid #5BD07A;
color: #58CA7F;
}
}
@ -446,26 +456,26 @@
.status_text{
background: #FFFAF7;
color: #FE6710;
border: 1px solid #FE6710;
border: 2rpx solid #FE6710;
}
}
&.status_down{
.status_text{
background: #FCFCFC;
border: 1px solid #999999;
border: 2rpx solid #999999;
color: #999999;
}
}
&.status_expire,&.status_cancle{
.status_text{
background: #FCFCFC;
border: 1rpx solid #AEB0B8;
border: 2rpx solid #AEB0B8;
color: #B6B8BF;
}
}
&.status_ing{
.status_text{
border: 1rpx solid #5FA1CB;
border: 2rpx solid #5FA1CB;
background: #F7FCFF;
color: #5FA1CB;
}

15
pages/visitors/visitors.vue

@ -180,7 +180,11 @@
}
},
async onShow() {
await this.getDoctorInfo();
this.selectCount = 0
this.activeVisitors = []
this.visitUsers = false
this.pageshow = false
this.getDoctorInfo();
},
onReady() {
@ -190,13 +194,11 @@
this.$nav.navToPath('/pages/index/index')
},
// --
async getDoctorInfo() {
await this.$http.req('api/user/index_info', {}, 'GET').then(data=>{
getDoctorInfo() {
this.$http.req('api/user/index_info', {}, 'GET').then(data=>{
if(data == -1) return
this.doctorInfo = data;
if(this.doctorInfo.hospital_departs && this.doctorInfo.hospital_departs.length>0) this.hospitals = this.doctorInfo.hospital_departs;
var hospital = {}
@ -210,7 +212,6 @@
}
this.hospital_depart_name = hospital.hospital_name + ' ' + hospital.depart_name
this.type = hospital.type
if(this.type == 2){
this.$pop.modelShow('该科室不允许签到', '/pages/index/index')
@ -514,7 +515,7 @@
width: 100%;
top: 82.41%;
.submitbtn{
width: 646rpx;
// width: 646rpx;
margin: 0 auto;
}
.tip{

31
pages/visitors_new/visitors_new.vue

@ -3,9 +3,9 @@
<visitor-list @clickEvent="getVisitorListData" @dataEvent="setVisitorListData" ref="visitors" :add="true"></visitor-list>
<view class="uni-card-wrapper" v-for="(item,key) in visitor_list" @click.stop="modifyVisitor" :data-item="item">
<uni-card v-if="(visitor_id==0 || (visitor_id!=0 && visitor_id==item.id)) && pageShow" :title="item.name" :extra="'身份证:'+item.idcard_txt" :class="((visitor_list && item.h_list && item.h_list.length>0)?'':'empty')" margin="0 0 0rpx 0" shadow="none" :border="false" padding="24rpx">
<uni-card v-if="(visitor_id==0 || (visitor_id!=0 && visitor_id==item.id)) && pageShow" :title="item.name" :class="((visitor_list && item.h_list && item.h_list.length>0)?'':'empty')" margin="0 0 0rpx 0" shadow="none" :border="false" padding="24rpx">
<view class="visitor-account">
<VisitorAccount @closeEvent="closeCollapse" @getinfo="get_visitor_info" :isOpen="isOpen" :title="item2.hospital+' '+item2.depart" v-for="(item2,key2) in item.h_list" :visitorInfo="visitorInfo" v-if="visitor_list && item.h_list && item.h_list.length>0" :depart_id="item2.depart_id" :visitor_id="item.id" :thumb="cssUrl+'hicon.svg'" :errmsg="(!item2.weeks ? (item2.days?(item2.days+'天未看病,请及时复诊'):'') : (' '+(item2.weeks<=10?item2.weeks:('超过10')))+'周未看病,请及时复诊')"/>
<VisitorAccount @closeEvent="closeCollapse" @getinfo="get_visitor_info" @changeOpen="changeOpenFun(key,key2)" :isOpen="item2.isOpen" :title="item2.hospital+' '+item2.depart" v-for="(item2,key2) in item.h_list" :visitorInfo="visitorInfo" v-if="visitor_list && item.h_list && item.h_list.length>0" :depart_id="item2.depart_id" :visitor_id="item.id" :thumb="cssUrl+'hicon.svg'" :errmsg="(!item2.weeks ? (item2.days?(item2.days+'天未看病,请及时复诊'):'') : (' '+(item2.weeks<=10?item2.weeks:('超过10')))+'周未看病,请及时复诊')"/>
</view>
</uni-card>
</view>
@ -39,17 +39,20 @@
this.pageInit()
},
methods: {
changeOpenFun(key,key2){
this.visitor_list[key].h_list[key2].isOpen = !this.visitor_list[key].h_list[key2].isOpen
},
modifyVisitor(e) {
var visitor = e.currentTarget.dataset.item
var is_jump = true
if(visitor.h_list && visitor.h_list.length > 0) {
is_jump = false
if(e.detail.y < 291){
is_jump = true
}
}
if(!is_jump) return
// var is_jump = true
// if(visitor.h_list && visitor.h_list.length > 0) {
// is_jump = false
// if(e.detail.y < 291){
// is_jump = true
// }
// }
// if(!is_jump) return
uni.setStorageSync('visitor_info_'+visitor.id, JSON.stringify(visitor))
this.$func.toPage("/pages/modify_visitor/modify_visitor?type="+this.type+'&vid='+visitor.id)
},
@ -63,7 +66,13 @@
this.$refs.visitors.getVisitors()
},
setVisitorListData(e) {
this.visitor_list = e
this.visitor_list = e.map(item=>{
if(item.h_list && item.h_list.length > 0){
item.h_list.forEach((item1)=>{item1.isOpen = false})
}
return item
})
this.pageShow = true
},
getVisitorListData(visitor_id){

13
pages/waiting_method/waiting_method.vue

@ -42,8 +42,6 @@
depart_info = JSON.parse(depart_info)
this.hospital_depart_name = depart_info.hospital_name + ' ' + depart_info.depart_name
}
this.getVisitors()
this.depart_id = uni.getStorageSync('depart_id')
if(!this.depart_id) {
this.$pop.modelShow('请先选择要预约的医院科室', '/pages/index/index')
@ -51,17 +49,6 @@
}
},
methods: {
getVisitors() {
this.$http.req('api/user/get_visitors', {}, 'POST').then(data=>{
this.visitUsers = data;
this.visitUsers = [...this.visitUsers]
this.popMsgs = []
for (var i = 0; i < this.visitUsers.length; i++) {
this.visitUsers[i].select = false
}
});
},
changeType(info) {
//
this.active_visitors[info.key].type = info.type;

Loading…
Cancel
Save