You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

157 lines
4.5 KiB
Vue

9 months ago
<template>
<div class="main">
<u-button type="primary" :text="'审核员 ' + name" shape="circle" color="#AB2F23" style="width:700rpx "></u-button>
<image :src="ticketsInfo.ticketCoverPic" mode="scaleToFill" class="img" />
<card>
<template #l1>
<div class="box-left">
姓名
</div>
</template>
<template #r1>
{{ userInfo.userName || '' }}
</template>
<template #l2>
<div class="box-left">
身份证号
</div>
</template>
<template #r2>
<div class="box-right">
{{ userInfo.idCard || '' }}
</div>
</template>
<template #l3>
<div class="box-left">
领票日期
</div>
</template>
<template #r3>
{{ ticketsInfo.drawDay }}
</template>
<template #l4>
<div class="box-left">
核验项目
</div>
</template>
<template #r4>
{{ ticketsInfo.ticketName }}
</template>
<template #l5 v-if="userInfo.checkTime">
<div class="box-left">
核验日期
</div>
</template>
<template #r5 v-if="userInfo.checkTime">
{{ userInfo.checkTime }}
</template>
</card>
<u-button type="primary" text="核验人像" shape="circle" color="#000" style="width:436rpx " @click="openPicUrl"
v-if="ticketsInfo.status === 1"></u-button>
</div>
</template>
<script>
import card from '@/components/card/moreDataCard'
export default {
components: {
card
},
data() {
return {
appointmentUid: '',
ticketsInfo: {},
userInfo: {},
name: uni.getStorageSync('nickName')
}
},
onLoad(option) {
console.log(option.qrcode)
this.appointmentUid = option.qrcode
this.getQrInfo()
},
methods: {
getQrInfo() {
this.$request.qrCodeInfo({ appointmentUid: this.appointmentUid }).then((res) => {
if (res.status === 0) {
this.ticketsInfo = res.data.ticketsInfo
this.userInfo = res.data.userInfo[0]
} else {
uni.$u.toast(res.msg);
}
})
},
checkPerson() {
uni.connectSocket({
url: `wss://warehouse.szjixun.cn/ticket/api/smart/check/issue/msg?AppointmentUid=${this.appointmentUid}`,
success: function () {
console.log('WebSocket连接已创建成功');
}
});
uni.onSocketOpen((res) => {
console.log(res, 'onSocketOpen')
});
uni.onSocketMessage((res) => {
console.log('WebSocket接收到消息', res);
if (res.data) {
this.checkQr(res.data)
}
});
uni.onSocketError(function (res) {
console.log(res);
});
uni.onSocketClose(function (res) {
console.log('WebSocket 已关闭!', res);
});
},
openPicUrl() {
this.$request.openPicUrl({ appointmentUid: this.appointmentUid }).then((res) => {
if (res.status === 0) {
this.checkPerson()
} else {
uni.$u.toast(res.msg);
}
})
},
checkQr(img) {
this.$request.checkQr({
appointmentUid: this.appointmentUid,
imageUrl: img
}).then((res) => {
if (res.status === 0) {
this.getQrInfo()
} else {
uni.$u.toast(res.msg);
}
})
}
},
}
</script>
<style lang="scss" scoped>
.main {
width: 100%;
height: 100vh;
display: flex;
flex-direction: column;
justify-content: space-around;
background: url('@/static/bg.png');
background-size: cover;
box-sizing: border-box;
padding: 42rpx 26rpx;
.img {
width: 100%;
height: 354rpx;
margin-top: 40rpx;
}
.box-left {
font-size: 28rpx;
}
}
</style>