<template>
    <scroll-view scroll-y class="main-scroll">
        <view v-if="unreadMsgList.length" class="scrollmain">
            <view
                class="list-card press-button"
                v-for="(item, index) in unreadMsgList"
                :key="index"
                @click="seeDetail(item)"
            >
                <view class="card-img">
                    <image
                        class="card-img-flame"
                        v-if="item.title === '招聘会预约提醒'"
                        src="/static/icon/msgtype.png"
                    ></image>
                    <image
                        class="card-img-flame"
                        v-else-if="item.title === '职位上新'"
                        src="/static/icon/msgtype2.png"
                    ></image>
                    <image
                        class="card-img-flame"
                        v-else-if="item.title === '系统通知'"
                        src="/static/icon/msgtype3.png"
                    ></image>
                    <image class="card-img-flame" v-else src="/static/icon/msgtype3.png"></image>
                    <view class="subscript" v-if="item.notReadCount">{{ item.notReadCount }}</view>
                </view>
                <view class="card-info">
                    <view class="info-title">
                        <text>{{ item.title }}</text>
                        <view class="card-time">{{ item.date }}</view>
                    </view>
                    <view class="info-text line_2">{{ item.subTitle || '消息' }}</view>
                </view>
            </view>
            <empty v-if="!unreadMsgList.length"></empty>
        </view>
        <empty v-else pdTop="200" content="暂无消息~"></empty>
    </scroll-view>
</template>

<script setup>
import { reactive, inject, ref } from 'vue';
const { $api, navTo, debounce } = inject('globalFunction');
import { storeToRefs } from 'pinia';
import { useReadMsg } from '@/stores/useReadMsg';
const { unreadMsgList } = storeToRefs(useReadMsg());
const isLoaded = ref(false);

async function loadData() {
    try {
        if (isLoaded.value) return;
        isLoaded.value = true;
    } catch (err) {
        isLoaded.value = false; // 重置状态允许重试
        throw err;
    }
}

function seeDetail(item) {
    console.log(item);
    switch (item.title) {
        case '职位上新':
            useReadMsg().markAsRead(item, index);
            navTo('/packageA/pages/newJobPosition/newJobPosition');
            break;
        case '招聘会预约提醒':
            useReadMsg().markAsRead(item, index);
            navTo('/packageA/pages/reservation/reservation');
            break;
        case '系统通知':
            navTo('/packageA/pages/systemNotification/systemNotification');
            break;
    }
}

defineExpose({ loadData });
</script>

<style lang="stylus" scoped>
.main-scroll {
    width: 100%
    height: 100%;
}
.scrollmain{
    padding: 28rpx
    height: calc(100% - 56rpx)
}
.read{

}
.list-card
    background: #FFFFFF;
    border-radius: 17rpx;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding: 26rpx 36rpx;
    margin: 0 0 28rpx 0
    .card-img
        width: 96rpx;
        height: 96rpx;
        border-radius: 50%
        display: grid;
        place-items: center;
        margin-right: 30rpx;
        position: relative;
        .card-img-flame
            width: 100%;
            height: 100%
        .subscript
            position: absolute;
            right: 0;
            top: 0;
            min-width: 26rpx;
            height: 26rpx;
            padding: 0 8rpx; /* 横向内边距控制宽度自适应 */
            border-radius: 1000rpx; /* 实现椭圆形/圆角 */
            text-align: center;
            line-height: 26rpx;
            background: #F73636;
            font-weight: 600;
            font-size: 20rpx;
            color: #FFFFFF;
            box-sizing: border-box;
    .card-info
        flex: 1;
        display: flex;
        align-items: flex-start;
        flex-direction: column;
        .info-title
            font-weight: 500;
            font-size: 32rpx;
            color: #333333;
            display: flex;
            justify-content: space-between;
            width: 100%
            text
                font-family: 'PingFangSC-Medium', 'PingFang SC', 'Helvetica Neue', Helvetica, Arial, 'Microsoft YaHei', sans-serif;
            .card-time
                font-weight: 400;
                font-size: 28rpx;
                color: #AAAAAA;
                height: 100%
                margin: 4rpx;
        .info-text
            font-weight: 400;
            font-size: 28rpx;
            color: #6C7282;
            margin-top: 4rpx;
</style>
