<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>