@allahjs/utils 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +244 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/browser/cookieUtils/index.cjs +100 -0
- package/dist/browser/cookieUtils/index.cjs.map +1 -0
- package/dist/browser/cookieUtils/index.d.ts +55 -0
- package/dist/browser/domUtils/index.cjs +237 -0
- package/dist/browser/domUtils/index.cjs.map +1 -0
- package/dist/browser/domUtils/index.d.ts +116 -0
- package/dist/browser/index.cjs +12 -0
- package/dist/browser/index.cjs.map +1 -0
- package/dist/browser/index.d.ts +3 -0
- package/dist/browser/urlUtils/index.cjs +262 -0
- package/dist/browser/urlUtils/index.cjs.map +1 -0
- package/dist/browser/urlUtils/index.d.ts +72 -0
- package/dist/core/arrayUtils/index.cjs +109 -0
- package/dist/core/arrayUtils/index.cjs.map +1 -0
- package/dist/core/arrayUtils/index.d.ts +67 -0
- package/dist/core/asyncUtils/index.cjs +180 -0
- package/dist/core/asyncUtils/index.cjs.map +1 -0
- package/dist/core/asyncUtils/index.d.ts +80 -0
- package/dist/core/colorUtils/index.cjs +38 -0
- package/dist/core/colorUtils/index.cjs.map +1 -0
- package/dist/core/colorUtils/index.d.ts +10 -0
- package/dist/core/cryptoUtils/index.cjs +428 -0
- package/dist/core/cryptoUtils/index.cjs.map +1 -0
- package/dist/core/cryptoUtils/index.d.ts +132 -0
- package/dist/core/dateUtils/index.cjs +245 -0
- package/dist/core/dateUtils/index.cjs.map +1 -0
- package/dist/core/dateUtils/index.d.ts +117 -0
- package/dist/core/index.cjs +34 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.ts +118 -0
- package/dist/core/numberUtils/index.cjs +126 -0
- package/dist/core/numberUtils/index.cjs.map +1 -0
- package/dist/core/numberUtils/index.d.ts +91 -0
- package/dist/core/objectUtils/index.cjs +249 -0
- package/dist/core/objectUtils/index.cjs.map +1 -0
- package/dist/core/objectUtils/index.d.ts +91 -0
- package/dist/core/pageUtils/index.cjs +74 -0
- package/dist/core/pageUtils/index.cjs.map +1 -0
- package/dist/core/pageUtils/index.d.ts +52 -0
- package/dist/core/stringUtils/index.cjs +163 -0
- package/dist/core/stringUtils/index.cjs.map +1 -0
- package/dist/core/stringUtils/index.d.ts +69 -0
- package/dist/core/validationUtils/index.cjs +154 -0
- package/dist/core/validationUtils/index.cjs.map +1 -0
- package/dist/core/validationUtils/index.d.ts +87 -0
- package/dist/esm/browser/cookieUtils/index.d.ts +55 -0
- package/dist/esm/browser/cookieUtils/index.js +96 -0
- package/dist/esm/browser/cookieUtils/index.js.map +1 -0
- package/dist/esm/browser/domUtils/index.d.ts +116 -0
- package/dist/esm/browser/domUtils/index.js +233 -0
- package/dist/esm/browser/domUtils/index.js.map +1 -0
- package/dist/esm/browser/index.d.ts +3 -0
- package/dist/esm/browser/index.js +4 -0
- package/dist/esm/browser/index.js.map +1 -0
- package/dist/esm/browser/urlUtils/index.d.ts +72 -0
- package/dist/esm/browser/urlUtils/index.js +248 -0
- package/dist/esm/browser/urlUtils/index.js.map +1 -0
- package/dist/esm/core/arrayUtils/index.d.ts +67 -0
- package/dist/esm/core/arrayUtils/index.js +105 -0
- package/dist/esm/core/arrayUtils/index.js.map +1 -0
- package/dist/esm/core/asyncUtils/index.d.ts +80 -0
- package/dist/esm/core/asyncUtils/index.js +175 -0
- package/dist/esm/core/asyncUtils/index.js.map +1 -0
- package/dist/esm/core/colorUtils/index.d.ts +10 -0
- package/dist/esm/core/colorUtils/index.js +34 -0
- package/dist/esm/core/colorUtils/index.js.map +1 -0
- package/dist/esm/core/cryptoUtils/index.d.ts +132 -0
- package/dist/esm/core/cryptoUtils/index.js +424 -0
- package/dist/esm/core/cryptoUtils/index.js.map +1 -0
- package/dist/esm/core/dateUtils/index.d.ts +117 -0
- package/dist/esm/core/dateUtils/index.js +241 -0
- package/dist/esm/core/dateUtils/index.js.map +1 -0
- package/dist/esm/core/index.d.ts +118 -0
- package/dist/esm/core/index.js +30 -0
- package/dist/esm/core/index.js.map +1 -0
- package/dist/esm/core/numberUtils/index.d.ts +91 -0
- package/dist/esm/core/numberUtils/index.js +122 -0
- package/dist/esm/core/numberUtils/index.js.map +1 -0
- package/dist/esm/core/objectUtils/index.d.ts +91 -0
- package/dist/esm/core/objectUtils/index.js +245 -0
- package/dist/esm/core/objectUtils/index.js.map +1 -0
- package/dist/esm/core/pageUtils/index.d.ts +52 -0
- package/dist/esm/core/pageUtils/index.js +66 -0
- package/dist/esm/core/pageUtils/index.js.map +1 -0
- package/dist/esm/core/stringUtils/index.d.ts +69 -0
- package/dist/esm/core/stringUtils/index.js +159 -0
- package/dist/esm/core/stringUtils/index.js.map +1 -0
- package/dist/esm/core/validationUtils/index.d.ts +87 -0
- package/dist/esm/core/validationUtils/index.js +150 -0
- package/dist/esm/core/validationUtils/index.js.map +1 -0
- package/dist/esm/index.d.ts +22 -0
- package/dist/esm/index.js +26 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/request/ReqQueue/index.js +59 -0
- package/dist/esm/request/ReqQueue/index.js.map +1 -0
- package/dist/esm/request/httpCode/index.js +49 -0
- package/dist/esm/request/httpCode/index.js.map +1 -0
- package/dist/esm/request/httpUtils/index.js +359 -0
- package/dist/esm/request/httpUtils/index.js.map +1 -0
- package/dist/esm/request/index.d.ts +15 -0
- package/dist/esm/request/index.js +166 -0
- package/dist/esm/request/index.js.map +1 -0
- package/dist/esm/request/typings/index.d.ts +184 -0
- package/dist/esm/request/uniRequest/index.js +62 -0
- package/dist/esm/request/uniRequest/index.js.map +1 -0
- package/dist/esm/types/data/index.d.ts +188 -0
- package/dist/esm/types/data/index.js +13 -0
- package/dist/esm/types/data/index.js.map +1 -0
- package/dist/esm/types/index.d.ts +1 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/index.js.map +1 -0
- package/dist/esm/uniapp/Tips/index.d.ts +295 -0
- package/dist/esm/uniapp/Tips/index.js +498 -0
- package/dist/esm/uniapp/Tips/index.js.map +1 -0
- package/dist/esm/uniapp/cloudUtils/index.d.ts +56 -0
- package/dist/esm/uniapp/cloudUtils/index.js +90 -0
- package/dist/esm/uniapp/cloudUtils/index.js.map +1 -0
- package/dist/esm/uniapp/index.d.ts +3 -0
- package/dist/esm/uniapp/index.js +4 -0
- package/dist/esm/uniapp/index.js.map +1 -0
- package/dist/esm/uniapp/uniUtils/index.d.ts +113 -0
- package/dist/esm/uniapp/uniUtils/index.js +199 -0
- package/dist/esm/uniapp/uniUtils/index.js.map +1 -0
- package/dist/index.cjs +88 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/request/ReqQueue/index.cjs +63 -0
- package/dist/request/ReqQueue/index.cjs.map +1 -0
- package/dist/request/httpCode/index.cjs +52 -0
- package/dist/request/httpCode/index.cjs.map +1 -0
- package/dist/request/httpUtils/index.cjs +365 -0
- package/dist/request/httpUtils/index.cjs.map +1 -0
- package/dist/request/index.cjs +170 -0
- package/dist/request/index.cjs.map +1 -0
- package/dist/request/index.d.ts +15 -0
- package/dist/request/typings/index.d.ts +184 -0
- package/dist/request/uniRequest/index.cjs +66 -0
- package/dist/request/uniRequest/index.cjs.map +1 -0
- package/dist/types/data/index.cjs +15 -0
- package/dist/types/data/index.cjs.map +1 -0
- package/dist/types/data/index.d.ts +188 -0
- package/dist/types/index.cjs +8 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/uniapp/Tips/index.cjs +521 -0
- package/dist/uniapp/Tips/index.cjs.map +1 -0
- package/dist/uniapp/Tips/index.d.ts +295 -0
- package/dist/uniapp/cloudUtils/index.cjs +92 -0
- package/dist/uniapp/cloudUtils/index.cjs.map +1 -0
- package/dist/uniapp/cloudUtils/index.d.ts +56 -0
- package/dist/uniapp/index.cjs +53 -0
- package/dist/uniapp/index.cjs.map +1 -0
- package/dist/uniapp/index.d.ts +3 -0
- package/dist/uniapp/uniUtils/index.cjs +213 -0
- package/dist/uniapp/uniUtils/index.cjs.map +1 -0
- package/dist/uniapp/uniUtils/index.d.ts +113 -0
- package/package.json +129 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* URL工具函数
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 获取url的参数
|
|
10
|
+
* @param url - URL字符串,默认为当前页面URL
|
|
11
|
+
* @returns 参数对象
|
|
12
|
+
*/
|
|
13
|
+
function getUrlParams(url) {
|
|
14
|
+
if (!url && typeof window !== 'undefined') {
|
|
15
|
+
url = window.location.href;
|
|
16
|
+
}
|
|
17
|
+
const theRequest = {};
|
|
18
|
+
if (!url) {
|
|
19
|
+
console.error('无效的url');
|
|
20
|
+
return theRequest;
|
|
21
|
+
}
|
|
22
|
+
const queryIndex = url.indexOf('?');
|
|
23
|
+
if (queryIndex !== -1) {
|
|
24
|
+
const str = url.slice(queryIndex + 1);
|
|
25
|
+
const pairs = str.split('&');
|
|
26
|
+
for (const pair of pairs) {
|
|
27
|
+
const [key, value] = pair.split('=');
|
|
28
|
+
if (key) {
|
|
29
|
+
theRequest[decodeURIComponent(key)] = decodeURIComponent(value || '');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return theRequest;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 从url中获取指定位置的路径字符串
|
|
37
|
+
* @param url - 需要获取的url
|
|
38
|
+
* @param index - 如果是-1则是最后一个,如果是0则是第一个
|
|
39
|
+
* @returns 路径字符串
|
|
40
|
+
*/
|
|
41
|
+
const getLocalPath = (url, index = -1) => {
|
|
42
|
+
// url要去掉开头的//和后面的参数。然后用剩下的。如果它有的话
|
|
43
|
+
if (url.startsWith('http')) {
|
|
44
|
+
// 说明是完整的url。现在只需要pathname
|
|
45
|
+
url = new URL(url).pathname;
|
|
46
|
+
}
|
|
47
|
+
// 去掉开头的/
|
|
48
|
+
url = url.replace(/^\//, '');
|
|
49
|
+
// 拆成数组
|
|
50
|
+
const urlArr = url.split('/');
|
|
51
|
+
// 如果是-1则返回最后一个
|
|
52
|
+
if (index === -1) {
|
|
53
|
+
return urlArr[urlArr.length - 1];
|
|
54
|
+
}
|
|
55
|
+
return urlArr[index];
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* 从当前页面URL中获取指定位置的路径字符串
|
|
59
|
+
* @param index - 如果是-1则是最后一个,如果是0则是第一个,默认是最后一个
|
|
60
|
+
* @returns 路径字符串
|
|
61
|
+
*/
|
|
62
|
+
const getWebLocalPath = (index = -1) => {
|
|
63
|
+
if (!window) {
|
|
64
|
+
return '';
|
|
65
|
+
}
|
|
66
|
+
return getLocalPath(window.location.pathname, index);
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* 刷新url的状态
|
|
70
|
+
* @param data - 需要更新的参数对象
|
|
71
|
+
*/
|
|
72
|
+
function refreshUrlState(data) {
|
|
73
|
+
if (!window) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const searchStr = window.location.href;
|
|
77
|
+
// 问号前面的
|
|
78
|
+
const url = searchStr.substring(0, searchStr.indexOf('?'));
|
|
79
|
+
const newUrl = setUrlParams({ pathname: url, query: data });
|
|
80
|
+
window.history.replaceState(null, '', newUrl);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 设置URL参数
|
|
84
|
+
* @param params - 包含路径和查询参数的对象
|
|
85
|
+
* @returns 完整的URL字符串
|
|
86
|
+
*/
|
|
87
|
+
function setUrlParams(params) {
|
|
88
|
+
const { query } = params;
|
|
89
|
+
let { pathname } = params;
|
|
90
|
+
if (typeof query === 'object') {
|
|
91
|
+
// 开始拼接
|
|
92
|
+
Object.keys(query).forEach((key, index) => {
|
|
93
|
+
// 判断数据是否存在
|
|
94
|
+
if (query[key] !== undefined && query[key] !== null && query[key] !== '') {
|
|
95
|
+
if (index === 0) {
|
|
96
|
+
pathname = `${pathname}?${key}=${query[key]}`;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
pathname = `${pathname}&${key}=${query[key]}`;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
return pathname;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* 构建查询参数字符串
|
|
108
|
+
* 该函数接收一个对象,将对象中的键值对转换为URL编码格式的查询参数字符串。
|
|
109
|
+
* 对于对象中的数组值,采用`repeat`模式,即数组中的每个元素都会单独形成一个键值对。
|
|
110
|
+
* @param params - 包含查询参数的对象,键为字符串类型,值可以是基本类型(如string、number、boolean等)或数组类型
|
|
111
|
+
* @returns 拼接好的URL查询参数字符串
|
|
112
|
+
*/
|
|
113
|
+
function buildQueryParams(params) {
|
|
114
|
+
const paramPairs = [];
|
|
115
|
+
for (const key in params) {
|
|
116
|
+
const value = params[key];
|
|
117
|
+
if (Array.isArray(value)) {
|
|
118
|
+
value.forEach(v => {
|
|
119
|
+
paramPairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(v)}`);
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
paramPairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return paramPairs.join('&');
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* 获取页面URL中的查询参数
|
|
130
|
+
* 该函数通过解析当前页面URL中 `?` 符号后的部分,提取出所有的查询参数,并以对象形式返回。
|
|
131
|
+
* 如果URL中不存在查询参数部分,则返回一个空对象。
|
|
132
|
+
* @param queryString - 查询字符串
|
|
133
|
+
* @returns 解析后的查询参数对象,键为参数名,值为对应的参数值,重复的参数名将被合并到一个数组中
|
|
134
|
+
*/
|
|
135
|
+
function getPageQueryParams(queryString) {
|
|
136
|
+
// 如果没有查询字符串,说明没有查询参数,直接返回一个空对象
|
|
137
|
+
if (!queryString) {
|
|
138
|
+
return {};
|
|
139
|
+
}
|
|
140
|
+
const queryParams = {};
|
|
141
|
+
// 将查询字符串按 '&' 分割成多个键值对
|
|
142
|
+
const pairs = queryString.split('&');
|
|
143
|
+
pairs.forEach(pair => {
|
|
144
|
+
// 对每一个键值对按 '=' 分开,分别得到键和值
|
|
145
|
+
const [key, value] = pair.split('=');
|
|
146
|
+
// 对键和值进行URL解码
|
|
147
|
+
const decodedKey = decodeURIComponent(key);
|
|
148
|
+
const decodedValue = decodeURIComponent(value);
|
|
149
|
+
// 处理重复参数:如果某个键已经存在于 queryParams 中
|
|
150
|
+
if (queryParams[decodedKey]) {
|
|
151
|
+
// 检查它是不是数组
|
|
152
|
+
if (Array.isArray(queryParams[decodedKey])) {
|
|
153
|
+
// 如果是数组,直接把新值 push 进去
|
|
154
|
+
queryParams[decodedKey].push(decodedValue);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
// 如果不是数组,把它变成数组,再把新值 push 进去
|
|
158
|
+
queryParams[decodedKey] = [queryParams[decodedKey], decodedValue];
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
// 如果是新键,直接赋值
|
|
163
|
+
queryParams[decodedKey] = decodedValue;
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
return queryParams;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* 更新URL中的参数 -> 得到新的url
|
|
170
|
+
* @param href - 原始URL
|
|
171
|
+
* @param params - 需要更新的参数
|
|
172
|
+
* @returns 新的URL
|
|
173
|
+
*/
|
|
174
|
+
function getUpdateUrl(href, params) {
|
|
175
|
+
if (!window) {
|
|
176
|
+
return '';
|
|
177
|
+
}
|
|
178
|
+
const searchStr = href || window.location.href;
|
|
179
|
+
const oldParams = getUrlParams(searchStr);
|
|
180
|
+
const newParams = { ...oldParams, ...params };
|
|
181
|
+
// 问号前面的
|
|
182
|
+
const url = searchStr.substring(0, searchStr.indexOf('?'));
|
|
183
|
+
return setUrlParams({ pathname: url, query: newParams });
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* 将对象转换为URL参数字符串
|
|
187
|
+
* @param param - 将要转为URL参数字符串的对象
|
|
188
|
+
* @param prefix - URL参数字符串的前缀
|
|
189
|
+
* @param encode - 是否进行URL编码,默认为true
|
|
190
|
+
* @returns URL参数字符串
|
|
191
|
+
*/
|
|
192
|
+
function urlEncode(param, prefix, encode = true) {
|
|
193
|
+
if (param === null)
|
|
194
|
+
return '';
|
|
195
|
+
let paramStr = '';
|
|
196
|
+
const t = typeof param;
|
|
197
|
+
if (t === 'string' || t === 'number' || t === 'boolean') {
|
|
198
|
+
paramStr += `&${prefix}=${encode ? encodeURIComponent(param) : param}`;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
Object.keys(param).forEach(key => {
|
|
202
|
+
key = prefix === null ? key : prefix + (param instanceof Array ? `[${key}]` : `.${key}`);
|
|
203
|
+
paramStr += urlEncode(param[key], key, encode);
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
return paramStr;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* URL转换为路径列表
|
|
210
|
+
* @param url - URL字符串
|
|
211
|
+
* @returns 路径数组
|
|
212
|
+
*/
|
|
213
|
+
const urlToList = (url) => {
|
|
214
|
+
if (!url || url === '/') {
|
|
215
|
+
return ['/'];
|
|
216
|
+
}
|
|
217
|
+
// 去掉协议、域名、查询串和 hash,只保留 pathname
|
|
218
|
+
let pathname = url;
|
|
219
|
+
try {
|
|
220
|
+
// 如果是完整 URL,用 URL 对象解析
|
|
221
|
+
if (url.startsWith('http://') || url.startsWith('https://')) {
|
|
222
|
+
pathname = new URL(url).pathname;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
// 如果解析失败,继续用原字符串
|
|
227
|
+
}
|
|
228
|
+
// 去掉开头的 /
|
|
229
|
+
pathname = pathname.replace(/^\/+/, '');
|
|
230
|
+
// 拆成数组并过滤空串
|
|
231
|
+
const urlList = pathname.split('/').filter(Boolean);
|
|
232
|
+
// 逐级拼接返回
|
|
233
|
+
return urlList.map((_, index) => `/${urlList.slice(0, index + 1).join('/')}`);
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* URL工具对象
|
|
237
|
+
*/
|
|
238
|
+
const urlUtils = {
|
|
239
|
+
getUrlParams,
|
|
240
|
+
getLocalPath,
|
|
241
|
+
getWebLocalPath,
|
|
242
|
+
refreshUrlState,
|
|
243
|
+
setUrlParams,
|
|
244
|
+
buildQueryParams,
|
|
245
|
+
getPageQueryParams,
|
|
246
|
+
getUpdateUrl,
|
|
247
|
+
urlEncode,
|
|
248
|
+
urlToList
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
exports.buildQueryParams = buildQueryParams;
|
|
252
|
+
exports.default = urlUtils;
|
|
253
|
+
exports.getLocalPath = getLocalPath;
|
|
254
|
+
exports.getPageQueryParams = getPageQueryParams;
|
|
255
|
+
exports.getUpdateUrl = getUpdateUrl;
|
|
256
|
+
exports.getUrlParams = getUrlParams;
|
|
257
|
+
exports.getWebLocalPath = getWebLocalPath;
|
|
258
|
+
exports.refreshUrlState = refreshUrlState;
|
|
259
|
+
exports.setUrlParams = setUrlParams;
|
|
260
|
+
exports.urlEncode = urlEncode;
|
|
261
|
+
exports.urlToList = urlToList;
|
|
262
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/browser/urlUtils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* URL工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 获取url的参数
|
|
6
|
+
* @param url - URL字符串,默认为当前页面URL
|
|
7
|
+
* @returns 参数对象
|
|
8
|
+
*/
|
|
9
|
+
declare function getUrlParams<T = any>(url?: string): T;
|
|
10
|
+
/**
|
|
11
|
+
* 刷新url的状态
|
|
12
|
+
* @param data - 需要更新的参数对象
|
|
13
|
+
*/
|
|
14
|
+
declare function refreshUrlState(data: Record<string, string>): void;
|
|
15
|
+
type TSetUrlParams = {
|
|
16
|
+
pathname: string;
|
|
17
|
+
query: Record<string, any>;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* 设置URL参数
|
|
21
|
+
* @param params - 包含路径和查询参数的对象
|
|
22
|
+
* @returns 完整的URL字符串
|
|
23
|
+
*/
|
|
24
|
+
declare function setUrlParams(params: TSetUrlParams): string;
|
|
25
|
+
/**
|
|
26
|
+
* 构建查询参数字符串
|
|
27
|
+
* 该函数接收一个对象,将对象中的键值对转换为URL编码格式的查询参数字符串。
|
|
28
|
+
* 对于对象中的数组值,采用`repeat`模式,即数组中的每个元素都会单独形成一个键值对。
|
|
29
|
+
* @param params - 包含查询参数的对象,键为字符串类型,值可以是基本类型(如string、number、boolean等)或数组类型
|
|
30
|
+
* @returns 拼接好的URL查询参数字符串
|
|
31
|
+
*/
|
|
32
|
+
declare function buildQueryParams(params: any): string;
|
|
33
|
+
/**
|
|
34
|
+
* 获取页面URL中的查询参数
|
|
35
|
+
* 该函数通过解析当前页面URL中 `?` 符号后的部分,提取出所有的查询参数,并以对象形式返回。
|
|
36
|
+
* 如果URL中不存在查询参数部分,则返回一个空对象。
|
|
37
|
+
* @param queryString - 查询字符串
|
|
38
|
+
* @returns 解析后的查询参数对象,键为参数名,值为对应的参数值,重复的参数名将被合并到一个数组中
|
|
39
|
+
*/
|
|
40
|
+
declare function getPageQueryParams(queryString: string): any;
|
|
41
|
+
/**
|
|
42
|
+
* 更新URL中的参数 -> 得到新的url
|
|
43
|
+
* @param href - 原始URL
|
|
44
|
+
* @param params - 需要更新的参数
|
|
45
|
+
* @returns 新的URL
|
|
46
|
+
*/
|
|
47
|
+
declare function getUpdateUrl(href: string, params: Record<string, string>): string;
|
|
48
|
+
/**
|
|
49
|
+
* 将对象转换为URL参数字符串
|
|
50
|
+
* @param param - 将要转为URL参数字符串的对象
|
|
51
|
+
* @param prefix - URL参数字符串的前缀
|
|
52
|
+
* @param encode - 是否进行URL编码,默认为true
|
|
53
|
+
* @returns URL参数字符串
|
|
54
|
+
*/
|
|
55
|
+
declare function urlEncode(param: any, prefix?: string, encode?: boolean): string;
|
|
56
|
+
/**
|
|
57
|
+
* URL工具对象
|
|
58
|
+
*/
|
|
59
|
+
declare const urlUtils: {
|
|
60
|
+
getUrlParams: typeof getUrlParams;
|
|
61
|
+
getLocalPath: (url: string, index?: number) => string;
|
|
62
|
+
getWebLocalPath: (index?: number) => string;
|
|
63
|
+
refreshUrlState: typeof refreshUrlState;
|
|
64
|
+
setUrlParams: typeof setUrlParams;
|
|
65
|
+
buildQueryParams: typeof buildQueryParams;
|
|
66
|
+
getPageQueryParams: typeof getPageQueryParams;
|
|
67
|
+
getUpdateUrl: typeof getUpdateUrl;
|
|
68
|
+
urlEncode: typeof urlEncode;
|
|
69
|
+
urlToList: (url?: string) => string[];
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export { buildQueryParams, urlUtils as default, getPageQueryParams, getUpdateUrl, getUrlParams, refreshUrlState, setUrlParams, urlEncode };
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 数组工具函数
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* 数组工具对象
|
|
10
|
+
*/
|
|
11
|
+
const arrayUtils = {
|
|
12
|
+
/**
|
|
13
|
+
* 数组去重
|
|
14
|
+
* @param arr 输入数组
|
|
15
|
+
* @returns 去重后的数组
|
|
16
|
+
*/
|
|
17
|
+
unique(arr) {
|
|
18
|
+
return [...new Set(arr)];
|
|
19
|
+
},
|
|
20
|
+
/**
|
|
21
|
+
* 数组分块
|
|
22
|
+
* @param arr 输入数组
|
|
23
|
+
* @param size 每块大小
|
|
24
|
+
* @returns 分块后的二维数组
|
|
25
|
+
*/
|
|
26
|
+
chunk(arr, size) {
|
|
27
|
+
const result = [];
|
|
28
|
+
for (let i = 0; i < arr.length; i += size) {
|
|
29
|
+
result.push(arr.slice(i, i + size));
|
|
30
|
+
}
|
|
31
|
+
return result;
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* 数组扁平化
|
|
35
|
+
* @param arr 输入数组
|
|
36
|
+
* @param depth 扁平化深度,默认为 1
|
|
37
|
+
* @returns 扁平化后的数组
|
|
38
|
+
*/
|
|
39
|
+
flatten(arr, depth = 1) {
|
|
40
|
+
return depth > 0
|
|
41
|
+
? arr.reduce((acc, val) => acc.concat(Array.isArray(val) ? arrayUtils.flatten(val, depth - 1) : val), [])
|
|
42
|
+
: arr.slice();
|
|
43
|
+
},
|
|
44
|
+
/**
|
|
45
|
+
* 数组洗牌
|
|
46
|
+
* @param arr 输入数组
|
|
47
|
+
* @returns 洗牌后的新数组
|
|
48
|
+
*/
|
|
49
|
+
shuffle(arr) {
|
|
50
|
+
const result = [...arr];
|
|
51
|
+
for (let i = result.length - 1; i > 0; i--) {
|
|
52
|
+
const j = Math.floor(Math.random() * (i + 1));
|
|
53
|
+
[result[i], result[j]] = [result[j], result[i]];
|
|
54
|
+
}
|
|
55
|
+
return result;
|
|
56
|
+
},
|
|
57
|
+
/**
|
|
58
|
+
* 数组求交集
|
|
59
|
+
* @param arr1 数组1
|
|
60
|
+
* @param arr2 数组2
|
|
61
|
+
* @returns 交集数组
|
|
62
|
+
*/
|
|
63
|
+
intersection(arr1, arr2) {
|
|
64
|
+
return arr1.filter(item => arr2.includes(item));
|
|
65
|
+
},
|
|
66
|
+
/**
|
|
67
|
+
* 数组求差集
|
|
68
|
+
* @param arr1 数组1
|
|
69
|
+
* @param arr2 数组2
|
|
70
|
+
* @returns 差集数组
|
|
71
|
+
*/
|
|
72
|
+
difference(arr1, arr2) {
|
|
73
|
+
return arr1.filter(item => !arr2.includes(item));
|
|
74
|
+
},
|
|
75
|
+
/**
|
|
76
|
+
* 数组分组
|
|
77
|
+
* @param arr 输入数组
|
|
78
|
+
* @param keyFn 分组键函数
|
|
79
|
+
* @returns 分组后的对象
|
|
80
|
+
*/
|
|
81
|
+
groupBy(arr, keyFn) {
|
|
82
|
+
return arr.reduce((groups, item) => {
|
|
83
|
+
const key = keyFn(item);
|
|
84
|
+
if (!groups[key]) {
|
|
85
|
+
groups[key] = [];
|
|
86
|
+
}
|
|
87
|
+
groups[key].push(item);
|
|
88
|
+
return groups;
|
|
89
|
+
}, {});
|
|
90
|
+
},
|
|
91
|
+
/**
|
|
92
|
+
* 从optList中筛选出目标对象
|
|
93
|
+
* @param s 需要筛选的目标字符串
|
|
94
|
+
* @param optList 目标数组
|
|
95
|
+
* @param key 数据的下标
|
|
96
|
+
*/
|
|
97
|
+
getListId(s, optList, key) {
|
|
98
|
+
if (optList.length === 0 || !s)
|
|
99
|
+
return null;
|
|
100
|
+
const classList = optList.filter(item => item.text === s);
|
|
101
|
+
if (classList.length > 0) {
|
|
102
|
+
return classList[0][key];
|
|
103
|
+
}
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
exports.default = arrayUtils;
|
|
109
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/core/arrayUtils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { IOptions2 } from '../../types/data/index.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 数组工具函数
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 数组工具对象
|
|
9
|
+
*/
|
|
10
|
+
declare const arrayUtils: {
|
|
11
|
+
/**
|
|
12
|
+
* 数组去重
|
|
13
|
+
* @param arr 输入数组
|
|
14
|
+
* @returns 去重后的数组
|
|
15
|
+
*/
|
|
16
|
+
unique<T>(arr: T[]): T[];
|
|
17
|
+
/**
|
|
18
|
+
* 数组分块
|
|
19
|
+
* @param arr 输入数组
|
|
20
|
+
* @param size 每块大小
|
|
21
|
+
* @returns 分块后的二维数组
|
|
22
|
+
*/
|
|
23
|
+
chunk<T>(arr: T[], size: number): T[][];
|
|
24
|
+
/**
|
|
25
|
+
* 数组扁平化
|
|
26
|
+
* @param arr 输入数组
|
|
27
|
+
* @param depth 扁平化深度,默认为 1
|
|
28
|
+
* @returns 扁平化后的数组
|
|
29
|
+
*/
|
|
30
|
+
flatten<T>(arr: any[], depth?: number): T[];
|
|
31
|
+
/**
|
|
32
|
+
* 数组洗牌
|
|
33
|
+
* @param arr 输入数组
|
|
34
|
+
* @returns 洗牌后的新数组
|
|
35
|
+
*/
|
|
36
|
+
shuffle<T>(arr: T[]): T[];
|
|
37
|
+
/**
|
|
38
|
+
* 数组求交集
|
|
39
|
+
* @param arr1 数组1
|
|
40
|
+
* @param arr2 数组2
|
|
41
|
+
* @returns 交集数组
|
|
42
|
+
*/
|
|
43
|
+
intersection<T>(arr1: T[], arr2: T[]): T[];
|
|
44
|
+
/**
|
|
45
|
+
* 数组求差集
|
|
46
|
+
* @param arr1 数组1
|
|
47
|
+
* @param arr2 数组2
|
|
48
|
+
* @returns 差集数组
|
|
49
|
+
*/
|
|
50
|
+
difference<T>(arr1: T[], arr2: T[]): T[];
|
|
51
|
+
/**
|
|
52
|
+
* 数组分组
|
|
53
|
+
* @param arr 输入数组
|
|
54
|
+
* @param keyFn 分组键函数
|
|
55
|
+
* @returns 分组后的对象
|
|
56
|
+
*/
|
|
57
|
+
groupBy<T, K extends string | number | symbol>(arr: T[], keyFn: (item: T) => K): Record<K, T[]>;
|
|
58
|
+
/**
|
|
59
|
+
* 从optList中筛选出目标对象
|
|
60
|
+
* @param s 需要筛选的目标字符串
|
|
61
|
+
* @param optList 目标数组
|
|
62
|
+
* @param key 数据的下标
|
|
63
|
+
*/
|
|
64
|
+
getListId(s: string, optList: IOptions2[], key: string): any;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export { arrayUtils as default };
|