From 63b2432286110be1f270672a223c8fb9ddc24233 Mon Sep 17 00:00:00 2001
From: Houjie <714924425@qq.com>
Date: 星期三, 21 五月 2025 11:39:39 +0800
Subject: [PATCH] 修改 点检-作业指导书
---
plugin/uni-simple-router/helpers/urlQuery.js | 332 +++++++++++++++++++++++++++++++-----------------------
1 files changed, 190 insertions(+), 142 deletions(-)
diff --git a/plugin/uni-simple-router/helpers/urlQuery.js b/plugin/uni-simple-router/helpers/urlQuery.js
index a2b1c69..0644f2f 100644
--- a/plugin/uni-simple-router/helpers/urlQuery.js
+++ b/plugin/uni-simple-router/helpers/urlQuery.js
@@ -1,157 +1,205 @@
-import { Global } from './config';
-import { warn, err } from './warn';
+import {
+ Global
+} from './config';
+import {
+ warn,
+ err
+} from './warn';
const nodeURL = require('query-string');
class ParseQuery {
- get queryName() {
- return nodeURL;
- }
+ get queryName() {
+ return nodeURL;
+ }
- /**
- * 鍒ゆ柇褰撳墠杩欎釜瀵硅薄鏄惁涓烘繁搴﹀璞�
- * @param {Object} obj
- */
- isDepthObject(obj) {
- const str = JSON.stringify(obj);
- return str.match(/}/g).length > 1;
- }
+ /**
+ * 鍒ゆ柇褰撳墠杩欎釜瀵硅薄鏄惁涓烘繁搴﹀璞�
+ * @param {Object} obj
+ */
+ isDepthObject(obj) {
+ const str = JSON.stringify(obj);
+ return str.match(/}/g).length > 1;
+ }
- /**
- * 浠嶶RL涓彁鍙栨煡璇㈠瓧绗︿覆
- * @param {String} url
- */
- extract(url) {
- return nodeURL.extract(url);
- }
+ /**
+ * 浠嶶RL涓彁鍙栨煡璇㈠瓧绗︿覆
+ * @param {String} url
+ */
+ extract(url) {
+ return nodeURL.extract(url);
+ }
- /**
- * 鎶婁竴涓� key=value&key1=value 鐨勫瓧绗︿覆杞垚瀵硅薄
- * @param {string} strQuery key=value&key1=value 绫诲瀷鐨勫瓧绗︿覆
- */
- parse(strQuery) {
- return nodeURL.parse(strQuery);
- }
+ /**
+ * 鎶婁竴涓� key=value&key1=value 鐨勫瓧绗︿覆杞垚瀵硅薄
+ * @param {string} strQuery key=value&key1=value 绫诲瀷鐨勫瓧绗︿覆
+ */
+ parse(strQuery) {
+ return nodeURL.parse(strQuery);
+ }
- /**
- * 鎶婁竴涓璞¤浆鎴� key=value&key1=value 绫诲瀷鐨勫瓧绗︿覆
- * @param {Object} ObjQuery 绗﹀悎js鏍囨敞鐨勫璞�
- * @param {Boolean} intact 鏄惁鍦ㄨ浆鎴愮殑瀛楃涓插墠娣诲姞锛熷彿
- */
- stringify(ObjQuery, intact = true) {
- const strQuery = nodeURL.stringify(ObjQuery);
- if (intact) {
- return `?${strQuery}`;
- }
- return strQuery;
- }
+ /**
+ * 鎶婁竴涓璞¤浆鎴� key=value&key1=value 绫诲瀷鐨勫瓧绗︿覆
+ * @param {Object} ObjQuery 绗﹀悎js鏍囨敞鐨勫璞�
+ * @param {Boolean} intact 鏄惁鍦ㄨ浆鎴愮殑瀛楃涓插墠娣诲姞锛熷彿
+ */
+ stringify(ObjQuery, intact = true) {
+ const strQuery = nodeURL.stringify(ObjQuery);
+ if (intact) {
+ return `?${strQuery}`;
+ }
+ return strQuery;
+ }
- /**
- * 鎶婁竴涓璞℃垨鑰� key=value&key1=value 绫诲瀷鐨勬暟鎹姞瀵嗘垚 query=encodeURIComponent(value)
- * @param {Object|String} query 绗﹀悎js鏍囨敞鐨勫璞� 鎴栬�� key=value&key1=value 瀛楃涓�
- * @param {Boolean} intact 鏄惁鍦ㄨ浆鎴愮殑瀛楃涓插墠娣诲姞锛熷彿
- */
- encode(query, intact = true) {
- let [strQuery, formatQuery] = ['', ''];
- if (query == null) {
- warn('鍔犲瘑鍙傛暟娌℃湁浼犻�掞紝浣犵煡閬擄紵', true);
- return '';
- }
- if (query.constructor === String) { // 瀛楃涓� 灏濊瘯 杞垚 瀵硅薄
- strQuery = JSON.stringify(this.parse(query));
- } else if (query.constructor === Object) { // 鐩存帴杞垚瀛楃涓插璞″嵆鍙�
- if (Object.keys(query).length === 0) {
- warn('褰撳墠鍙傛暟涓嶆弧瓒冲姞瀵嗚鑼冿紒');
- return '';
- }
- strQuery = JSON.stringify(query);
- }
- if (intact) {
- formatQuery = '?';
- }
- formatQuery += `query=${encodeURIComponent(strQuery)}`;
- return formatQuery;
- }
+ /**
+ * 鎶婁竴涓璞℃垨鑰� key=value&key1=value 绫诲瀷鐨勬暟鎹姞瀵嗘垚 query=encodeURIComponent(value)
+ * @param {Object|String} query 绗﹀悎js鏍囨敞鐨勫璞� 鎴栬�� key=value&key1=value 瀛楃涓�
+ * @param {Boolean} intact 鏄惁鍦ㄨ浆鎴愮殑瀛楃涓插墠娣诲姞锛熷彿
+ */
+ encode(query, intact = true) {
+ let [strQuery, formatQuery] = ['', ''];
+ if (query == null) {
+ warn('鍔犲瘑鍙傛暟娌℃湁浼犻�掞紝浣犵煡閬擄紵', true);
+ return '';
+ }
+ if (query.constructor === String) { // 瀛楃涓� 灏濊瘯 杞垚 瀵硅薄
+ strQuery = JSON.stringify(this.parse(query));
+ } else if (query.constructor === Object) { // 鐩存帴杞垚瀛楃涓插璞″嵆鍙�
+ if (Object.keys(query).length === 0) {
+ warn('褰撳墠鍙傛暟涓嶆弧瓒冲姞瀵嗚鑼冿紒');
+ return '';
+ }
+ strQuery = JSON.stringify(query);
+ }
+ if (intact) {
+ formatQuery = '?';
+ }
+ formatQuery += `query=${encodeURIComponent(strQuery)}`;
+ return formatQuery;
+ }
- /**
- * 鎶婁竴涓凡缁忓姞瀵嗗ソ鐨勫瓧绗︿覆 query=encodeURIComponent(value) 瑙e瘑鎴� 瀵硅薄
- * @param {string} strQuery 宸茬粡鍔犲瘑濂界殑瀛楃涓� query=encodeURIComponent(value)
- */
- decode(strQuery) {
- if (strQuery == null) {
- warn('瑙e瘑鍙傛暟娌℃湁浼犻�掞紝浣犵煡閬擄紵', true);
- return {};
- }
- let jsonQuery = strQuery;
- if (strQuery.constructor === Object) { // 濡傛灉鏄璞� 鐪嬭兘涓嶈兘婊¤冻瑕佹眰
- jsonQuery = strQuery.query;
- if (jsonQuery == null) {
- warn('褰撳墠瑙e瘑鍙傛暟涓嶆弧瓒崇紪鐮佽鍒�');
- return {};
- }
- jsonQuery = `query=${jsonQuery}`;
- }
- let decode = {};
- // query 闀胯繖涓牱 query=encodeURIComponent(value)
- const decodeStr = decodeURIComponent(jsonQuery);
- const { query } = this.parse(decodeStr); // 杞垚 json 鑾峰彇鍒版鐪熺殑json瀛楃涓�
- if (query == null) {
- warn('褰撳墠瑙e瘑鍙傛暟涓嶆弧瓒崇紪鐮佽鍒�');
- } else {
- try {
- decode = JSON.parse(query);
- } catch (error) {
- warn('褰撳墠瑙e瘑鍙傛暟涓嶆弧瓒崇紪鐮佽鍒�');
- }
- }
- return decode;
- }
+ /**
+ * 鎶婁竴涓凡缁忓姞瀵嗗ソ鐨勫瓧绗︿覆 query=encodeURIComponent(value) 瑙e瘑鎴� 瀵硅薄
+ * @param {string} strQuery 宸茬粡鍔犲瘑濂界殑瀛楃涓� query=encodeURIComponent(value)
+ */
+ decode(strQuery) {
+ if (strQuery == null) {
+ warn('瑙e瘑鍙傛暟娌℃湁浼犻�掞紝浣犵煡閬擄紵', true);
+ return {};
+ }
+ let jsonQuery = strQuery;
+ if (strQuery.constructor === Object) { // 濡傛灉鏄璞� 鐪嬭兘涓嶈兘婊¤冻瑕佹眰
+ jsonQuery = strQuery.query;
+ if (jsonQuery == null) {
+ warn('褰撳墠瑙e瘑鍙傛暟涓嶆弧瓒崇紪鐮佽鍒�');
+ return {};
+ }
+ jsonQuery = `query=${jsonQuery}`;
+ }
+ let decode = {};
+ // query 闀胯繖涓牱 query=encodeURIComponent(value)
+ const decodeStr = decodeURIComponent(jsonQuery);
+ const {
+ query
+ } = this.parse(decodeStr); // 杞垚 json 鑾峰彇鍒版鐪熺殑json瀛楃涓�
+ if (query == null) {
+ warn('褰撳墠瑙e瘑鍙傛暟涓嶆弧瓒崇紪鐮佽鍒�');
+ } else {
+ try {
+ decode = JSON.parse(query);
+ } catch (error) {
+ warn('褰撳墠瑙e瘑鍙傛暟涓嶆弧瓒崇紪鐮佽鍒�');
+ }
+ }
+ return 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); { //-> 浠g爜 杩欐槸淇敼鐨勫唴瀹� 娣诲姞鎴戜滑鑷畾涔夊鐞�
+ 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)),
+ };
+ break;
+ }
+ case false: { // 涓嶅姞瀵嗘ā寮�
+ strQuery = this.stringify(query);
+ break;
+ }
+ default: {
+ err('鏈煡鍙傛暟妯″紡锛岃妫�鏌� \'encodeURI\'', true);
+ }
+ }
- 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 };
- }
+ 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 };
+ // }
- /**
- * 瀵归渶瑕佷紶閫掔殑鍙傛暟杩涜鍔犲瘑瑙e瘑
- * @param {Object|String} query get涓篺alse 蹇呴』涓� Object 绫诲瀷
- * @param {String} get 鏄彇鍊� 杩樻槸閫氳繃api浼犲��
- */
- transfer(query = {}) {
- const { encodeURI } = Global.Router.CONFIG; // 鑾峰彇鍒拌矾鐢遍厤缃�
- switch (encodeURI) {
- case true: {
- // 鍔犲瘑妯″紡
- return this.encode(query, false);
- }
- case false: {
- // 涓嶅姞瀵嗘ā寮�
- return this.stringify(query);
- }
- default: {
- err('鏈煡鍙傛暟妯″紡锛岃妫�鏌� \'encodeURI\' ', true);
- }
- }
- }
+ /**
+ * 瀵归渶瑕佷紶閫掔殑鍙傛暟杩涜鍔犲瘑瑙e瘑
+ * @param {Object|String} query get涓篺alse 蹇呴』涓� Object 绫诲瀷
+ * @param {String} get 鏄彇鍊� 杩樻槸閫氳繃api浼犲��
+ */
+ transfer(query = {}) {
+ const {
+ encodeURI
+ } = Global.Router.CONFIG; // 鑾峰彇鍒拌矾鐢遍厤缃�
+ switch (encodeURI) {
+ case true: {
+ // 鍔犲瘑妯″紡
+ return this.encode(query, false);
+ }
+ case false: {
+ // 涓嶅姞瀵嗘ā寮�
+ return this.stringify(query);
+ }
+ default: {
+ err('鏈煡鍙傛暟妯″紡锛岃妫�鏌� \'encodeURI\' ', true);
+ }
+ }
+ }
}
-export default ParseQuery;
+export default ParseQuery;
\ No newline at end of file
--
Gitblit v1.9.3