/**
 * This script power by Mure.Yang (2024/05/11)
 */

// -- 获取指定参数值 (地址链接模式) ----------------------------------------------------
function getUrlParam(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]); return null;
}

// -- 参数字符串 --------------------------------------------------------------------
const QueryString = {
    // 解析当前URL中的查询字符串，并返回一个对象
    parse: function(query) {
        const params = new URLSearchParams(query);
        const result = {};
        params.forEach((value, key) => {
            result[key] = value;
        });
        return result;
    },
    // 构建查询字符串
    build: function(params) {
        return new URLSearchParams(params).toString();
    },
    // 更新URL中的多个参数
    updateParams: function(params) {
        // 获取当前URL
        const url = new URL(window.location);
        // 解析当前URL的查询字符串
        let queryParams = this.parse(url.search);
        // 遍历传入的对象，更新参数值
        Object.keys(params).forEach(key => {
            queryParams[key] = params[key];
        });
        // 更新查询字符串
        url.search = this.build(queryParams);
        // 返回更新后的URL
        return url.href;
    }
};
// -------------------------------------------------------------------------------