|
|
@@ -69,7 +69,11 @@ class ParseQuery {
|
|
|
if (intact) {
|
|
|
formatQuery = '?';
|
|
|
}
|
|
|
- formatQuery += `query=${encodeURIComponent(strQuery)}`;
|
|
|
+ // 保留query的原逻辑赋值,使用substring去除第一位的?
|
|
|
+ formatQuery += uni.$u.queryParams({
|
|
|
+ query: encodeURIComponent(strQuery),
|
|
|
+ ...query,
|
|
|
+ }).substring(1);
|
|
|
return formatQuery;
|
|
|
}
|
|
|
|
|
|
@@ -108,24 +112,26 @@ class ParseQuery {
|
|
|
}
|
|
|
|
|
|
queryGet(query) {
|
|
|
+ // 直接给原query参数进行重新赋值操作,以确保decode方法无误
|
|
|
+ query = { query: JSON.stringify(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);
|
|
|
- }
|
|
|
+ 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 };
|
|
|
}
|