<!-- / ||  /index.html   首页 | 列表 | 搜索
/publish  发布
/details/{id}  详情 -->
<!-- // shared_cjs_prodExports.hasOwn; -->
<!-- npm run created -->
<template>
    <div id="append_parent"></div>
    <div id="ajaxwaitid"></div>
    <!-- <script src="https://app.gter.net/bottom?tpl=header&menukey=mj"></script> -->
    <!-- <RouterView :key="$route.fullPath"></RouterView> -->
    <NuxtPage></NuxtPage>
</template>
<script setup>
const route = useRoute();
// 是否是 生产环境
const isProduction = process.env.NODE_ENV === "production";

// watchEffect(() => {
//     if (typeof window !== "undefined" && route.path) {
//         if (window._hmt) window._hmt.push(["_trackPageview", route.fullPath])
//         if (window._czc) {
//             let location = window.location
//             let contentUrl = location.pathname + location.hash
//             let refererUrl = "/"
//             window._czc.push(["_trackPageview", contentUrl, refererUrl])
//             window._czc.push(["_setAutoPageview", false])
//         }
//     }
// })

onMounted(() => {
    // if (!isProduction) {
    //     isNeedLogin.value = false;
    //     // // setTimeout(() => isGetLoginState.value = false, 10000)
    //     userInfo.value = {
    //         username: "",
    //         uid: 256624,
    //         uin: 4171117,
    //         avatar: "https://oss.x-php.com/avatar/97K4EWIMLrsbGTWXslC1XFxTFauOikN42jDKLNjtax7HLtRjKcKMSdU9oWFhY2E~/small?random=1739160957",
    //         messagenum: 0,
    //         newprompt: 1,
    //         todaysigned: 0,
    //     };
    // } else
    // determineIsLogin();

    getUserInfoWin();
});

let isNeedLogin = ref(true); // 是否需要登录状态
let userInfo = ref({});
let isGetLoginState = ref(true); // 在获取登录状态   false 代表没有已经确定了
let realname = ref(1); // 是否已经实名

let permissions = ref([]);
let ismanager = ref(false);

// 判断是否登录状态
const determineIsLogin = () => {
    let count = 0;
    let timer = setInterval(() => {
        if (Object.keys(window["userInfoWin"]).length !== 0) {
            clearInterval(timer);
            isGetLoginState.value = false;
            if (window["userInfoWin"]["uid"] || window["userInfoWin"]["uin"]) {
                isNeedLogin.value = false;
                userInfo.value = window["userInfoWin"];
            }
        }
        count++;
        if (count >= 30) {
            clearInterval(timer);
            isGetLoginState.value = false;
        }
    }, 100);
};

// 跳转登录
const goLogin = () => {
    if (typeof window === "undefined") return;
    if (Object.keys(window["userInfoWin"]).length !== 0) {
        if (window["userInfoWin"]["uid"]) isNeedLogin.value = false;
        else ajax_login();
    } else ajax_login();
};

const getUserInfoWin = () => {
    const checkUser = () => {
        const user = window.userInfoWin;
        if (!user) return;
        document.removeEventListener("getUser", checkUser);
        if (user?.uin > 0 || user?.uid > 0) {
            isNeedLogin.value = false;
            userInfo.value = user;
        }
        isGetLoginState.value = false;
        realname.value = user.realname;

        permissions.value = user?.authority || [];
        ismanager.value = permissions.value.indexOf("topic:manager") >= 0;
    };

    document.addEventListener("getUser", checkUser);
};

const openAttest = () => {
    const handleAttestClose = () => {
        document.removeEventListener("closeAttest", handleAttestClose);
        realname.value = window.userInfoWin?.realname || 0;
    };
    // 启动认证流程时添加监听
    document.addEventListener("closeAttest", handleAttestClose);
    loadAttest(2);
};

provide("isNeedLogin", isNeedLogin);
provide("userInfo", userInfo);
provide("goLogin", goLogin);
provide("isGetLoginState", isGetLoginState);
provide("realname", realname);
provide("openAttest", openAttest);
provide("permissions", permissions);
provide("ismanager", ismanager);
</script>

<style lang="less">
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "PingFangSC-Regular", "PingFang SC", sans-serif;
}

.flexflex {
    display: flex;
}

.flex1 {
    flex: 1;
}

.flexcenter {
    display: flex;
    justify-content: center;
    align-items: center;
}

.flexacenter {
    display: flex;
    align-items: center;
}

.flexjcenter {
    display: flex;
    justify-content: center;
}

/* // 一行显示 */
.ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body {
    background-color: rgba(238, 242, 245, 1);
}

a {
    text-decoration: none !important;
}

/* Webkit浏览器（Chrome、Safari等） */
*::-webkit-scrollbar {
    width: 8px;
    background-color: transparent;
}

*::-webkit-scrollbar-thumb {
    background-color: #d7d7d7;
    border-radius: 4px;
}

*::-webkit-scrollbar-thumb:hover {
    background-color: #666;
}

/* Firefox浏览器 */
/* 注意：Firefox浏览器不支持修改滚动条的宽度 */
/* 若要修改滚动条的宽度，可以使用一些特殊的插件或者自定义滚动条的替代方案 */
/* 以下代码只是修改滚动条的颜色和背景色 */
* {
    scrollbar-width: thin;
    scrollbar-color: #d7d7d7 transparent;
}

*::-moz-scrollbar-thumb {
    background-color: #d7d7d7;
}

*::-moz-scrollbar-thumb:hover {
    background-color: #666;
}

header.page-header .box .tab-list .item.pitch {
    color: #72db86 !important;
}

header.page-header .box .tab-list .item.pitch:after {
    background-color: #72db86 !important;
}

.avatar-box {
    flex-direction: column;
    height: 101px;
    background-color: rgba(244, 248, 255, 1);
    border: 1px solid rgba(220, 224, 234, 1);
    border-radius: 10px;
    z-index: 100;

    .avatar-mask {
        width: 100%;
        height: 100%;
        position: fixed;
        top: 0;
        left: 0;
        z-index: -1;
        cursor: auto;
    }

    .avatar-item {
        font-size: 14px;
        color: #333;
        height: 50px;
        cursor: pointer;

        &:not(:last-of-type) {
            border-bottom: 1px dotted #d7d7d7;
        }
    }

    .avatar-icon {
        width: 16px;
        height: 16px;
        margin-right: 5px;
    }
}

.el-popover.el-popper.avatar-box-popper {
    min-width: 140px;
    padding: 0;
    border-radius: 10px;
    border: none;
}
</style>
