Browse Source

Merge pull request '首次预约相关' (#15) from visitor_first_preview into master

Reviewed-on: kuaileadmin/acupuncture_register_system_uniapp#15
master
超级管理员 2 months ago
parent
commit
517640eac1
  1. 8
      components/SelectYear.vue
  2. 1
      pages/index/index.vue
  3. 2
      pages/usercenter/usercenter.vue
  4. 197
      pages/visitors/visitors.vue

8
components/SelectYear.vue

@ -30,13 +30,15 @@ export default {
const date = new Date() const date = new Date()
const years = [] const years = []
const year = date.getFullYear() const year = date.getFullYear()
for (let i = 1900; i <= date.getFullYear(); i++) { for (let i = 1900; i <= year; i++) {
years.push(i) years.push(i)
} }
var currentYear = year - 10
var value = [years.indexOf(currentYear)]
return { return {
value,
currentYear,
cssUrl:this.cssUrl, cssUrl:this.cssUrl,
value:[90],
currentYear: 1990,
years: years, years: years,
}; };
}, },

1
pages/index/index.vue

@ -343,7 +343,6 @@ export default {
uni.setStorageSync('depart', JSON.stringify(hospital)) uni.setStorageSync('depart', JSON.stringify(hospital))
uni.setStorageSync('doctor_info', JSON.stringify(this.doctorInfo)) uni.setStorageSync('doctor_info', JSON.stringify(this.doctorInfo))
this.$nav.navToPath("/pages/visitors/visitors?type=1&is_preview=1") this.$nav.navToPath("/pages/visitors/visitors?type=1&is_preview=1")
}, },
toPrebookList() { toPrebookList() {
this.$nav.navToPath("/pages/prebook_list/prebook_list") this.$nav.navToPath("/pages/prebook_list/prebook_list")

2
pages/usercenter/usercenter.vue

@ -26,7 +26,7 @@
<view class="menu"> <view class="menu">
<view class="item" @click="toVisitors"> <view class="item" @click="toVisitors">
<img :src="cssUrl+'user_icon.svg'" alt=""> <img :src="cssUrl+'user_icon.svg'" alt="">
<view>就诊</view> <view>预约</view>
</view> </view>
<view class="item" @click="toPrebookList"> <view class="item" @click="toPrebookList">

197
pages/visitors/visitors.vue

@ -13,11 +13,12 @@
<view class="top flex"> <view class="top flex">
<view class="name PfScSemibold over2">{{item.name}}</view> <view class="name PfScSemibold over2">{{item.name}}</view>
<view class="book-date" v-if="type == 0 && item.visit_time && !is_preview">已预约今日 {{ item.visit_time.split('-')[0] }} 预约</view> <view class="book-date" v-if="type == 0 && item.visit_time && !is_preview">已预约今日 {{ item.visit_time.split('-')[0] }} 预约</view>
<view class="book-date-first" v-if="is_preview && item.first_visit">初诊/初访</view>
</view> </view>
<view class="bot line36 flex"> <view class="bot line36 flex">
<!-- <view class="flex"> <view class="gap">|</view> 25</view> <!-- <view class="flex"> <view class="gap">|</view> 25</view>
<view v-if="item.phone" class="flex"><view class="gap">|</view> 手机号1778989678</view> --> <view v-if="item.phone" class="flex"><view class="gap">|</view> 手机号1778989678</view> -->
<view class="flex">{{item.sex}}<view class="gap">|</view> {{ item.age }}</view> <view class="flex">{{item.sex}}<view class="gap">|</view> {{ item.age }}</view>
<view v-if="item.phone" class="flex"><view class="gap">|</view>手机号{{ item.phone }}</view> <view v-if="item.phone" class="flex"><view class="gap">|</view>手机号{{ item.phone }}</view>
</view> </view>
<img class="status" :src="cssUrl+'visitor_select_active.svg'"> <img class="status" :src="cssUrl+'visitor_select_active.svg'">
@ -89,6 +90,39 @@
@confirm="popConfirm" @confirm="popConfirm"
@cancel="popCancel" @cancel="popCancel"
></pop> ></pop>
<uni-popup ref="kefu" :safe-area="false">
<view class="popup-container">
<view class="popup-container-inner">
<image class="close-icon" @click="closeKefu" :src="cssUrl + 'close.svg'" />
<view class="kefu-header PfScSemibold">初诊/初访咨询</view>
<view class="kefu-desc">首次到访请向工作人员说明个人情况</view>
<view class="kefu-title" v-if="doctorInfo.doctor_info.approver_phone"><view></view>联系电话</view>
<view class="kefu-phone" v-if="doctorInfo.doctor_info.approver_phone">
<view class="phonenum">{{doctorInfo.doctor_info.approver_phone}}</view>
<view class="callphone" @click="callPhone(doctorInfo.doctor_info.approver_phone)">
<img :src="cssUrl+'phone_icon.svg'">
拨打
</view>
</view>
<view class="kefu-line" v-if="doctorInfo.doctor_info.approver_phone"></view>
<view class="kefu-title" v-if="doctorInfo.doctor_info.approver_wechat"><view></view>联系微信</view>
<view class="kefu-wechat" v-if="doctorInfo.doctor_info.approver_wechat">
<image :src="doctorInfo.doctor_info.approver_wechat" :show-menu-by-longpres="true" show-menu-by-longpress="true"/>
<view>长按识别或保存到相册微信扫一扫二维码添加微信</view>
</view>
</view>
<view class="kefu-btn btPadding">
<view class="btn primary" hover-class="hover" @click="closeKefu">我知道了</view>
</view>
</view>
</uni-popup>
</view> </view>
</template> </template>
@ -192,6 +226,13 @@
}, },
methods: { methods: {
callPhone(number) {
uni.makePhoneCall({
phoneNumber: number,
success: () => console.log('拨打成功'),
fail: (err) => console.error('失败:', err)
})
},
reback(){ reback(){
this.$nav.navToPath('/pages/index/index') this.$nav.navToPath('/pages/index/index')
}, },
@ -265,7 +306,16 @@
} }
}); });
}, },
closeKefu() {
this.$refs.kefu.close()
},
chooseVisitor(info, key){ chooseVisitor(info, key){
if(this.is_preview && info.first_visit) {
if(this.doctorInfo.doctor_info.approver_phone || this.doctorInfo.doctor_info.approver_wechat) this.$refs.kefu.open('bottom')
return
}
this.selectCount = 0 this.selectCount = 0
this.visitUsers[key].select = !this.visitUsers[key].select this.visitUsers[key].select = !this.visitUsers[key].select
this.$set(this.visitUsers, key, this.visitUsers[key]) this.$set(this.visitUsers, key, this.visitUsers[key])
@ -282,6 +332,11 @@
this.$http.req('api/user/get_visitors', obj, 'POST').then(data=>{ this.$http.req('api/user/get_visitors', obj, 'POST').then(data=>{
this.visitUsers = data; this.visitUsers = data;
if(this.visitUsers.length == 0) {
this.addVisitor()
return;
}
this.visitUsers = [...this.visitUsers] this.visitUsers = [...this.visitUsers]
this.popMsgs = [] this.popMsgs = []
this.selectCount = 0 this.selectCount = 0
@ -415,6 +470,19 @@
color: #30C563; color: #30C563;
flex-shrink: 0; flex-shrink: 0;
} }
.book-date-first{
width: 160rpx;
height: 40rpx;
line-height: 40rpx;
box-sizing: border-box;
padding: 0rpx 16rpx;
border-radius: 6rpx;
background: #FFFAF7;
border: 1rpx solid #FE6710;
font-size: 26rpx;
color: #FE6710;
text-align:center;
}
.aam_times{ .aam_times{
color: #79624A; color: #79624A;
text-align:center; text-align:center;
@ -471,7 +539,6 @@
font-size: 28rpx; font-size: 28rpx;
font-weight: normal; font-weight: normal;
line-height: normal; line-height: normal;
text-align: center;
letter-spacing: 0; letter-spacing: 0;
color: #AEB0B8; color: #AEB0B8;
width:100%; width:100%;
@ -618,5 +685,131 @@
} }
} }
} }
.popup-container {
position: relative;
max-height: calc(100vh - 200rpx);
overflow-y: scroll;
background: #ffffff;
border-radius: 40rpx 40rpx 0px 0px;
.popup-container-inner{
padding: 42rpx 54rpx 14rpx;
box-sizing: border-box;
width: 100%;
overflow: hidden;
}
.close-icon{
width: 40rpx;
height: 40rpx;
position: absolute;
top: 48rpx;
right: 54rpx;
z-index: 2;
}
.kefu-header{
font-size: 36rpx;
line-height: 50rpx;
text-align: center;
color: #333333;
}
.kefu-desc{
font-size: 28rpx;
line-height: 38rpx;
color: #666666;
margin-top:12rpx;
margin-bottom: 70rpx;
text-align: center;
}
.kefu-title{
height: 45rpx;
font-size: 32rpx;
color: #000000;
display: flex;
align-items: center;
column-gap: 12rpx;
view{
width: 8rpx;
height: 34rpx;
border-radius: 10rpx;
background: #58CA7F;
}
}
.kefu-phone{
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 20rpx;
box-sizing: border-box;
margin-top: 12rpx;
.phonenum{
font-size: 30rpx;
color: #666666;
}
.callphone{
display: flex;
align-items: center;
justify-content: space-between;
column-gap: 12rpx;
font-size: 28rpx;
color: #39D067;
img{
width: 34rpx;
height: 34rpx;
}
}
}
.kefu-line{
height: 2rpx;
background: #F1F1F1;
width: 100%;
margin: 46rpx 0;
}
.kefu-wechat{
width: 100%;
height: 414rpx;
padding: 24rpx 0px;
box-sizing: border-box;
background: #F8F8F8;
margin-bottom: 42rpx;
margin-top: 24rpx;
image{
width: 320rpx;
height: 320rpx;
margin: 0 auto;
display: block;
}
view{
height: 34rpx;
text-align:center;
margin-top: 12rpx;
font-size: 24rpx;
color: #999999;
}
}
}
.kefu-btn{
justify-content: center;
display: flex;
align-items: center;
width: 100%;
height: 124rpx;
background: #FFFFFF;
backdrop-filter: blur(54.4rpx);
box-shadow: 0rpx -2rpx 6rpx 0rpx rgba(181, 181, 181, 0.1319);
.btn{
border-radius: 12rpx;
width: 666rpx;
height: 90rpx;
line-height: 90rpx;
border-radius: 16rpx;
background: #39D067;
font-size: 32rpx;
font-weight: 500;
text-align: center;
color: #FFFFFF;
}
}
} }
</style> </style>

Loading…
Cancel
Save