Houjie
2025-04-18 ae3855638dba0c927236c1a1b1a85d5b048c40e2
plugin/uni-simple-router/helpers/urlQuery.js
@@ -1,5 +1,10 @@
import { Global } from './config';
import { warn, err } from './warn';
import {
   Global
} from './config';
import {
   warn,
   err
} from './warn';
const nodeURL = require('query-string');
@@ -94,7 +99,9 @@
        let decode = {};
        // query 长这个样  query=encodeURIComponent(value)
        const decodeStr = decodeURIComponent(jsonQuery);
        const { query } = this.parse(decodeStr); // 转成 json 获取到正真的json字符串
      const {
         query
      } = this.parse(decodeStr); // 转成 json 获取到正真的json字符串
        if (query == null) {
            warn('当前解密参数不满足编码规则');
        } else {
@@ -106,14 +113,26 @@
        }
        return decode;
    }
    queryGet(query) {
        const { encodeURI } = Global.Router.CONFIG; // 获取到路由配置
      const {
         encodeURI
      } = Global.Router.CONFIG; // 获取到路由配置
        let [decode, historyObj, strQuery] = [query, query, ''];
        switch (encodeURI) {
        case true: { // 加密模式
            decode = this.decode(query);
            strQuery = this.encode(decode);
            strQuery = this.encode(decode); { //-> 代码 这是修改的内容 添加我们自定义处理
               if (strQuery === '' && query) {
                  //-> junjie
                  //-| 需要注意 ,我们的是自定义对象 , 是不包含 query 的,
                  //-| 按照我们自己的规则解析
                  let newstrQuery = Object.keys(query).map(key => key.concat("=").concat(query[key])).join(
                     "&")
                  if (newstrQuery) {
                     strQuery = "?" + newstrQuery;
                  }
               }
            }
            historyObj = {
                query: encodeURIComponent(JSON.stringify(decode)),
            };
@@ -127,8 +146,35 @@
            err('未知参数模式,请检查 \'encodeURI\'', true);
        }
        }
        return { strQuery, historyObj, decode };
      return {
         strQuery,
         historyObj,
         decode
      };
    }
   // queryGet(query) {
   //     const { encodeURI } = Global.Router.CONFIG; // 获取到路由配置
   //     let [decode, historyObj, strQuery] = [query, query, ''];
   //     switch (encodeURI) {
   //     case true: { // 加密模式
   //         decode = this.decode(query);
   //         strQuery = this.encode(decode);
   //         historyObj = {
   //             query: encodeURIComponent(JSON.stringify(decode)),
   //         };
   //         break;
   //     }
   //     case false: { // 不加密模式
   //         strQuery = this.stringify(query);
   //         break;
   //     }
   //     default: {
   //         err('未知参数模式,请检查 \'encodeURI\'', true);
   //     }
   //     }
   //     return { strQuery, historyObj, decode };
   // }
    /**
@@ -137,7 +183,9 @@
     * @param {String} get 是取值 还是通过api传值
     */
    transfer(query = {}) {
        const { encodeURI } = Global.Router.CONFIG; // 获取到路由配置
      const {
         encodeURI
      } = Global.Router.CONFIG; // 获取到路由配置
        switch (encodeURI) {
        case true: {
            // 加密模式