157 lines
4.5 KiB
Vue
157 lines
4.5 KiB
Vue
|
<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>
|