Browse Source

就诊人挂号信息列表页面交互

master
kuaileWu 1 year ago
parent
commit
7067602e4b
  1. 8
      components/pop.vue
  2. 8
      main.js
  3. 2
      manifest.json
  4. 2
      pages/index/index.vue
  5. 120
      pages/visitors/visitors.vue

8
components/pop.vue

@ -35,6 +35,10 @@ export default {
content: {
type: String,
default: ""
},
index: {
type: Number,
default: 0
}
},
data() {
@ -50,8 +54,8 @@ export default {
this.show_pop = false;
},
Confirm(e) {
this.$emit("confirm", e);
this.close();
this.close();
this.$emit("confirm", e, this.index);
},
Cancel(e) {
this.$emit("cancel", e);

8
main.js

@ -175,7 +175,7 @@ if(Vue.prototype.provider == Vue.prototype.provider_weixin) {
const CODE_SUCCESS = 2000;
const CODE_ERROR = 40001;
const CODE_LOGIN_EXIPRE = 4000;
const CODE_LOGIN_EXIPRE = 401;
Vue.prototype.user_preview = 1;
Vue.prototype.edit_preview = 2;
@ -224,7 +224,7 @@ function req(url, data={}, method = 'POST', header={}) {
try{
var rdata = res.data;
if(rdata.code != CODE_SUCCESS) {
if((rdata.msg.indexOf('Signature verification failed')>-1 || rdata.msg.indexOf('身份认证信息未提供'))>-1 && rdata.code==CODE_LOGIN_EXIPRE && data.xcx_scource == Vue.prototype.USER_SOURCE_WX_H5 && url != getWxH5LoginConfigUri && data.repeat != 1){
if((rdata.code==CODE_LOGIN_EXIPRE || rdata.msg.indexOf('Signature verification failed')>-1 || rdata.msg.indexOf('身份认证信息未提供')>-1) && data.xcx_scource == Vue.prototype.USER_SOURCE_WX_H5 && url != getWxH5LoginConfigUri && data.repeat != 1){
removeLogin();
var logindatac = new Object();
@ -243,9 +243,9 @@ function req(url, data={}, method = 'POST', header={}) {
uni.showModal({
title: '提示',
showCancel: false,
content: rdata.msg ? rdata.msg : '网络错误,请重试|'+res.statusCode,
content: rdata.msg ? rdata.msg+'|'+rdata.code : '网络错误,请重试|'+res.statusCode,
success: function (rs) {
if (rs.confirm && rdata.code==CODE_LOGIN_EXIPRE && (rdata.msg.indexOf('Signature verification failed')>-1 || rdata.msg.indexOf('身份认证信息未提供')>-1)) {
if (rs.confirm && (rdata.code==CODE_LOGIN_EXIPRE || rdata.msg.indexOf('Signature verification failed')>-1 || rdata.msg.indexOf('身份认证信息未提供')>-1)) {
removeLogin();
const pages = getCurrentPages();
const currentPage = pages[pages.length - 1];

2
manifest.json

@ -50,7 +50,7 @@
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "",
"appid" : "wxba76fd01dab5e1d8",
"setting" : {
"urlCheck" : false
},

2
pages/index/index.vue

@ -144,7 +144,7 @@
});
},
login() {
this.$http.req('client/user/login/', {code:this.code}, 'POST').then(data=>{
this.$http.req('client/user/login', {code:this.code}, 'POST').then(data=>{
if(data == -1) return
uni.setStorageSync('token', data.token)
var rebackPagePath = uni.getStorageSync('rebackPagePath')

120
pages/visitors/visitors.vue

@ -26,20 +26,19 @@
<view class="list-wrapper2" v-if="type == 2">
<view class="item block" v-for="(item,key) in visitUsers">
<view class="top flex">
<view class="PfScSemibold">{{item.name}}</view>
<view class="PfScSemibold">{{item.real_name}}</view>
<view>身份证尾号{{item.id_no}}</view>
</view>
<view class="bt">
<view class="bt-item flex">
<view class="left flex"><view class="over3">广安门中医医院西单门诊部</view><view class="status2">10周未看病</view></view>
<view class="more right" v-if="res">剩余<text>2</text></view>
<view class="owe right" v-else><text>10</text></view>
</view>
<view class="bt-item flex" v-for="(item2,key2) in item.hospital_info">
<view class="left flex">
<view class="over3">{{item2.hospital_name}} {{item2.hospital_dept}}</view>
<view class="status2" v-if="!item2.hospital_state">停诊</view>
<view class="status2" v-else-if="item2.is_expire">{{item2.expire_day}}未看病</view>
</view>
<view class="bt-item flex">
<view class="left flex"><view class="over3">顺天德中医医院</view><view class="status2">停诊</view></view>
<view class="more right" v-if="res">剩余<text>20</text></view>
<view class="owe right" v-else><text>10</text></view>
<view class="more right" v-if="item2.times>=0">剩余<text>{{item2.times}}</text></view>
<view class="owe right" v-else><text>{{-item2.times}}</text></view>
</view>
</view>
</view>
@ -49,6 +48,7 @@
ref="popcom"
:content="popContent"
:title="popTitle"
:index="popIndex"
:showCancel='popShowCancel'
@confirm="popConfirm"
@cancel="popCancel"
@ -71,17 +71,26 @@
visitUsers:false,
selectCount:0,
hospitalId:false,
activeVisitors:[]
activeVisitors:[],
popMsgs:[],
popIndex:0
}
},
components:{
pop
},
onLoad(option) {
if(option.type) this.type = option.type
if(option.type) {
this.type = option.type
}else{
var type = uni.getStorageSync('visitor_type')
if(type) this.type = type
}
uni.setStorageSync('visitor_type', this.type)
this.getVisitors()
this.hospitalId = uni.getStorageSync('hospital_id')
if(!this.hospitalId) {
if(!this.hospitalId && this.type == 1) {
this.$pop.modelShow('请先选择要预约的医院', '/pages/index/index')
return
}
@ -103,22 +112,103 @@
param.limit = 10000
this.$http.req('client/user/visit_user/', param, 'GET').then(data=>{
if(data == -1) return
var server_time = data.server_time
this.visitUsers = data.data
this.popMsgs = []
for (var i = 0; i < this.visitUsers.length; i++) {
this.visitUsers[i].select = false
// this.visitUsers[i].hospital_info = [
// {
// "times": -1,
// "hospital_name": "",
// "hospital_dept": "",
// "hospital_state": true,
// "is_expire":true,
// "last_visit_time": "2021-01-12 13:16:26"
// },
// {
// "times": 10,
// "hospital_name": "",
// "hospital_dept": "",
// "hospital_state": true,
// "is_expire":true,
// "last_visit_time": "2021-01-12 13:16:26"
// }
// ]
try{
var dateService = new Date(server_time.replaceAll('-', "/"));
var timestampService = Math.floor(dateService)/1000;
var hospitalInfo = this.visitUsers[i].hospital_info
for (var j = 0; j < hospitalInfo.length; j++) {
var datestr = new Date(hospitalInfo[j].last_visit_time.replaceAll('-', "/"));
var timestamp = Math.floor(datestr)/1000;
var visitTimeDayTotal = Math.floor((timestampService-timestamp)/3600/24)
if(visitTimeDayTotal>0 && visitTimeDayTotal < 7) hospitalInfo[j].expire_day = visitTimeDayTotal+'天'
if(visitTimeDayTotal>=7) hospitalInfo[j].expire_day = Math.floor(visitTimeDayTotal/7)+'周'
if(visitTimeDayTotal>=365) hospitalInfo[j].expire_day = Math.floor(visitTimeDayTotal/365)+'年'
if(!hospitalInfo[j].expire_day) {
var visitTimeMinute = Math.floor((timestampService-timestamp)/60)
if(visitTimeMinute <= 0) hospitalInfo[j].expire_day = (timestampService-timestamp)+'秒'
if(visitTimeMinute >= 1 && visitTimeMinute<60) hospitalInfo[j].expire_day = Math.floor((timestampService-timestamp)/60)+''
if(visitTimeMinute>=60) hospitalInfo[j].expire_day = Math.floor((visitTimeMinute)/60)+'小时'
}
if(!hospitalInfo[j].hospital_state) continue
var popobj = new Object()
popobj.popShowCancel = false
if(hospitalInfo[j].is_expire){
popobj.popContent = this.visitUsers[i].real_name+'已<span style="color:red;">'+hospitalInfo[j].expire_day+'</span>没有来'+hospitalInfo[j].hospital_name+hospitalInfo[j].hospital_dept+'针灸。如还需要,请尽快安排'
popobj.popTitle = "提醒"
}
if(hospitalInfo[j].times < 0){
popobj.popContent = this.visitUsers[i].real_name+'在'+hospitalInfo[j].hospital_name+hospitalInfo[j].hospital_dept+'须补挂号啦,请挂号缴费后告知医生'
popobj.popTitle = "挂号提醒"
}
this.popMsgs.push(popobj)
}
}catch(et){
}
}
if(this.popMsgs.length > 0 && !uni.getStorageSync('has_noticed')){
this.popIndex = 0
var popinfo = this.popMsgs[this.popIndex]
this.popContent = popinfo.popContent
this.popTitle = popinfo.popTitle
this.popIndex = popinfo.popIndex
this.popShowCancel = popinfo.popShowCancel
this.showPopCom()
}
});
},
showPopCom() {
this.$refs.popcom.open()
},
popConfirm(e){
closePopCom() {
this.$refs.popcom.close()
},
popConfirm(e, index){
if(this.popMsgs.length > 0 && index<(this.popMsgs.length-1)){
this.popIndex = index+1
var popinfo = this.popMsgs[this.popIndex]
this.popContent = popinfo.popContent
this.popTitle = popinfo.popTitle
this.popShowCancel = popinfo.popShowCancel
this.showPopCom()
}else{
uni.setStorageSync('has_noticed', 1)
this.closePopCom()
}
},
popCancel(e){
},
addVisitor(){
uni.navigateTo({
url:"/pages/modify_visitor/modify_visitor"
url:"/pages/modify_visitor/modify_visitor?type="+this.type
})
},
toPrebook(){

Loading…
Cancel
Save