export default async function (to, from) {
    //获得全局url
    const { $webUrl, $CwebUrl } = useNuxtApp();
    if(getRouteWhiteList(to.path)){
        //如果目标路由是/,或者/404 无需验证
    }else{
        // to是目标路由对象，from是来源路由对象
        console.log('进入路由中间件，目标路由：', to.path,"当前路由:",from.path);
        //拆分目标路由
        let parts = parseRoute(to.path)
        console.log(parts)

        const responseRoute = await $fetch($webUrl + '/web/checkWebsiteRoute', {
            headers: {
                'Content-Type': 'application/json',
                'Userurl': $CwebUrl,
                'Origin': $CwebUrl
            },
            query: parts
        })
        console.log(responseRoute)
        if(responseRoute.code == 200){
            //如果路由存在，不做任何操作
        }else{
            return navigateTo('/404')
        }
    }
}

//提取路由
function parseRoute(url) {
    const parts = url.split('/').filter(Boolean); // 分割并过滤空字符串
    const lastPart = parts[parts.length - 1];
    
    // 提取 id（数字.html 的数字部分）
    const idMatch = lastPart.match(/^(\d+)\.html$/);
    const id = idMatch ? idMatch[1] : undefined;
    
    // 如果最后是数字.html、index.html 或 list-数字.html，则去掉它
    const isSpecialRoute = idMatch || lastPart === "index.html" || lastPart.startsWith("list-");
    if (isSpecialRoute) {
        parts.pop();
    }
    
    let all_route, last_route, other_route;

    // 如果路径以 xiangcunshangcheng 开头
    // if (parts[0] === "xiangcunshangcheng") {
    //     if( parts.length > 1){
    //         if(parts[parts.length - 1] != 'gongying' && parts[parts.length - 1] != 'qiugou'){
    //             // 否则按原逻辑处理
    //             all_route = parts.join('/');
    //             last_route = parts.length > 0 ? parts[parts.length - 1] : null;
    //         }else{
    //             // all_route = 去掉最后一层
    //             all_route = parts.slice(0, -1).join('/');
    //             // last_route = 新的最后一层
    //             last_route = parts.length > 1 ? parts[parts.length - 2] : null;
    //         }
    //     }else{
    //         // 否则按原逻辑处理
    //         all_route = parts.join('/');
    //         last_route = parts.length > 0 ? parts[parts.length - 1] : null;
    //     }
    // } else {
    //     // 否则按原逻辑处理
    //     all_route = parts.join('/');
    //     last_route = parts.length > 0 ? parts[parts.length - 1] : null;
    // }

    all_route = parts.join('/');
    last_route = parts.length > 0 ? parts[parts.length - 1] : null;
    other_route = parts[0]

    // 返回结果（只有数字.html 时才包含 id）
    const result = {
        all_route,
        last_route,
        other_route,
    };
    if (id !== undefined) {
        result.id = id;
    }
    return result;
}

//获得路由白名单列表
function getRouteWhiteList(path){
    if(path=='/'){
        console.log('白名单路由！允许访问！')
        //如果用户进入的是首页，直接返回true
        return true
    }else{
        //如果用户进入的不是首页，则需要判断第一层路由是否在白名单
        const parts = path.split('/').filter(Boolean); // 分割并过滤空字符串
        console.log(parts[0])
        let whiteList = [
            // "404",
            // "search",//搜索页
            // "xiangcunshangcheng",//乡村商城搜索页
            // "topic",//商圈
            // "advertising",//广告
            // "about",//关于我们
        ]

        if(whiteList.includes(parts[0])){
            console.log('白名单路由！允许访问！')
            return true
        }else{
            return false
        }
    }
}
