@cowave-cli/utils 2.5.3 → 2.5.6
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/dist/js/time.d.ts +6 -1
- package/dist/js.cjs +44 -44
- package/dist/js.js +44 -44
- package/dist/node.cjs +44 -44
- package/dist/node.js +44 -44
- package/dist/vue.cjs +50 -51
- package/dist/vue.js +47 -48
- package/package.json +2 -2
package/dist/vue.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var pkg = require('lodash');
|
|
3
4
|
var axios = require('axios');
|
|
4
|
-
var lodash = require('lodash');
|
|
5
5
|
var vue = require('vue');
|
|
6
6
|
|
|
7
7
|
/*
|
|
@@ -170,6 +170,7 @@ const getTime = () => _local_time() + _time_diff;
|
|
|
170
170
|
* |mm |00-59 |分钟,2 位数字|
|
|
171
171
|
* |s |0-59| 秒钟|
|
|
172
172
|
* |ss |00-59 |秒钟,2 位数字|
|
|
173
|
+
* |x| | 时间戳 |
|
|
173
174
|
*/
|
|
174
175
|
const getDate = (date, formatStr) => {
|
|
175
176
|
if (!date)
|
|
@@ -179,6 +180,8 @@ const getDate = (date, formatStr) => {
|
|
|
179
180
|
}
|
|
180
181
|
if (!formatStr)
|
|
181
182
|
return new Date(date);
|
|
183
|
+
if (formatStr === 'x')
|
|
184
|
+
return new Date(date).getTime();
|
|
182
185
|
let ret;
|
|
183
186
|
let d = {
|
|
184
187
|
year: date.getFullYear().toString(),
|
|
@@ -187,11 +190,19 @@ const getDate = (date, formatStr) => {
|
|
|
187
190
|
hour: date.getHours().toString(),
|
|
188
191
|
minutes: date.getMinutes().toString(),
|
|
189
192
|
seconds: date.getSeconds().toString(),
|
|
190
|
-
week: [
|
|
193
|
+
week: [
|
|
194
|
+
'星期日',
|
|
195
|
+
'星期一',
|
|
196
|
+
'星期二',
|
|
197
|
+
'星期三',
|
|
198
|
+
'星期四',
|
|
199
|
+
'星期五',
|
|
200
|
+
'星期六',
|
|
201
|
+
][date.getDay()],
|
|
191
202
|
};
|
|
192
203
|
let keys = {
|
|
193
|
-
|
|
194
|
-
|
|
204
|
+
YYYY: d.year,
|
|
205
|
+
YY: d.year.slice(2),
|
|
195
206
|
'M+': d.month,
|
|
196
207
|
'D+': d.day,
|
|
197
208
|
'[Hh]+': d.hour,
|
|
@@ -214,6 +225,10 @@ const getDate = (date, formatStr) => {
|
|
|
214
225
|
*
|
|
215
226
|
* dateType:
|
|
216
227
|
*
|
|
228
|
+
* - daybefore —— 一天前
|
|
229
|
+
*
|
|
230
|
+
* - dayafter —— 一天后
|
|
231
|
+
*
|
|
217
232
|
* - weekstart —— 本周起始日期
|
|
218
233
|
*
|
|
219
234
|
* - weekend —— 本周结束日期
|
|
@@ -241,27 +256,12 @@ const getDate = (date, formatStr) => {
|
|
|
241
256
|
* @returns {Date | string}
|
|
242
257
|
*/
|
|
243
258
|
const getSpecialDate = (dateType, date, formatter) => {
|
|
244
|
-
// 是否为开始时间
|
|
245
|
-
let isStart = true;
|
|
246
259
|
let time = new Date(date || getTime());
|
|
247
|
-
const setTime = () => {
|
|
248
|
-
if (isStart) {
|
|
249
|
-
time.setHours(0);
|
|
250
|
-
time.setMinutes(0);
|
|
251
|
-
time.setSeconds(0);
|
|
252
|
-
}
|
|
253
|
-
else {
|
|
254
|
-
time.setHours(23);
|
|
255
|
-
time.setMinutes(59);
|
|
256
|
-
time.setSeconds(59);
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
260
|
switch (dateType) {
|
|
260
261
|
case 'daybefore':
|
|
261
262
|
time = new Date(time.getTime() - 24 * 60 * 60 * 1000);
|
|
262
263
|
break;
|
|
263
264
|
case 'dayafter':
|
|
264
|
-
isStart = false;
|
|
265
265
|
time = new Date(time.getTime() + 24 * 60 * 60 * 1000);
|
|
266
266
|
break;
|
|
267
267
|
case 'weekstart':
|
|
@@ -271,28 +271,24 @@ const getSpecialDate = (dateType, date, formatter) => {
|
|
|
271
271
|
time = new Date(time.getTime() - time.getDay() * 24 * 60 * 60 * 1000);
|
|
272
272
|
break;
|
|
273
273
|
case 'weekend':
|
|
274
|
-
isStart = false;
|
|
275
274
|
time = new Date(time.getTime() + (7 - time.getDay()) * 24 * 60 * 60 * 1000);
|
|
276
275
|
break;
|
|
277
276
|
case 'weekbefore':
|
|
278
277
|
time = new Date(time.getTime() - 7 * 24 * 60 * 60 * 1000);
|
|
279
278
|
break;
|
|
280
279
|
case 'weekafter':
|
|
281
|
-
|
|
282
|
-
time = (new Date(time.getTime() + 7 * 24 * 60 * 60 * 1000));
|
|
280
|
+
time = new Date(time.getTime() + 7 * 24 * 60 * 60 * 1000);
|
|
283
281
|
break;
|
|
284
282
|
case 'monthstart':
|
|
285
|
-
time =
|
|
283
|
+
time = new Date(time.getFullYear(), time.getMonth(), 1);
|
|
286
284
|
break;
|
|
287
285
|
case 'monthend':
|
|
288
|
-
isStart = false;
|
|
289
286
|
time = new Date(time.getFullYear(), time.getMonth() + 1, 0);
|
|
290
287
|
break;
|
|
291
288
|
case 'monthbefore':
|
|
292
289
|
time.setMonth(time.getMonth() - 1);
|
|
293
290
|
break;
|
|
294
291
|
case 'monthafter':
|
|
295
|
-
isStart = false;
|
|
296
292
|
time.setMonth(time.getMonth() + 1);
|
|
297
293
|
break;
|
|
298
294
|
case 'yearstart':
|
|
@@ -300,7 +296,6 @@ const getSpecialDate = (dateType, date, formatter) => {
|
|
|
300
296
|
time.setDate(1);
|
|
301
297
|
break;
|
|
302
298
|
case 'yearend':
|
|
303
|
-
isStart = false;
|
|
304
299
|
time.setMonth(11);
|
|
305
300
|
time.setDate(31);
|
|
306
301
|
break;
|
|
@@ -308,14 +303,13 @@ const getSpecialDate = (dateType, date, formatter) => {
|
|
|
308
303
|
time.setFullYear(time.getFullYear() - 1);
|
|
309
304
|
break;
|
|
310
305
|
case 'yearafter':
|
|
311
|
-
isStart = false;
|
|
312
306
|
time.setFullYear(time.getFullYear() + 1);
|
|
313
307
|
break;
|
|
314
308
|
}
|
|
315
|
-
setTime();
|
|
316
309
|
return getDate(time, formatter);
|
|
317
310
|
};
|
|
318
311
|
|
|
312
|
+
const { cloneDeep } = pkg;
|
|
319
313
|
/*
|
|
320
314
|
* @Description: 对象处理
|
|
321
315
|
* @Author: Zye
|
|
@@ -331,7 +325,9 @@ const getSpecialDate = (dateType, date, formatter) => {
|
|
|
331
325
|
*/
|
|
332
326
|
const getObject = (objectArr, keyName, keyValue, foundKeyName) => {
|
|
333
327
|
// 使用find方法查找数组中匹配的元素,如果未找到则返回一个空对象
|
|
334
|
-
let obj = objectArr.find((v) =>
|
|
328
|
+
let obj = objectArr.find((v) => typeof keyValue == 'function'
|
|
329
|
+
? keyValue(v[keyName])
|
|
330
|
+
: v[keyName] == keyValue) || new Object();
|
|
335
331
|
// 根据是否指定了foundKeyName返回不同的结果
|
|
336
332
|
return foundKeyName ? obj[foundKeyName] : obj;
|
|
337
333
|
};
|
|
@@ -346,12 +342,7 @@ const getObject = (objectArr, keyName, keyValue, foundKeyName) => {
|
|
|
346
342
|
* @template T 目标对象和源对象的类型,该类型必须是可深度写入的对象类型。
|
|
347
343
|
*/
|
|
348
344
|
const assignObject = (dist, src) => {
|
|
349
|
-
const obj =
|
|
350
|
-
for (const [key, value] of Object.entries(dist)) {
|
|
351
|
-
if (typeof value !== 'object' || value === null) {
|
|
352
|
-
obj[key] = value;
|
|
353
|
-
}
|
|
354
|
-
}
|
|
345
|
+
const obj = cloneDeep(dist);
|
|
355
346
|
for (const [key, value] of Object.entries(src)) {
|
|
356
347
|
if (!dist[key] || typeof value !== 'object' || value === null) {
|
|
357
348
|
obj[key] = value;
|
|
@@ -388,6 +379,7 @@ const expose = (option, ...refs) => {
|
|
|
388
379
|
return ref.value?.[prop];
|
|
389
380
|
}
|
|
390
381
|
}
|
|
382
|
+
return option[prop];
|
|
391
383
|
},
|
|
392
384
|
has(_, prop) {
|
|
393
385
|
for (const ref of refs) {
|
|
@@ -395,8 +387,11 @@ const expose = (option, ...refs) => {
|
|
|
395
387
|
return true;
|
|
396
388
|
}
|
|
397
389
|
}
|
|
390
|
+
if (prop in option) {
|
|
391
|
+
return true;
|
|
392
|
+
}
|
|
398
393
|
return false;
|
|
399
|
-
}
|
|
394
|
+
},
|
|
400
395
|
});
|
|
401
396
|
};
|
|
402
397
|
/**
|
|
@@ -411,7 +406,7 @@ const on = (emit, emitStrs) => {
|
|
|
411
406
|
if (!Array.isArray(emitStrs)) {
|
|
412
407
|
emitStrs = Object.keys(emitStrs);
|
|
413
408
|
}
|
|
414
|
-
emitStrs.forEach(key => {
|
|
409
|
+
emitStrs.forEach((key) => {
|
|
415
410
|
emits[key] = (...args) => {
|
|
416
411
|
emit(key, ...args);
|
|
417
412
|
};
|
|
@@ -569,9 +564,12 @@ function addPx(px) {
|
|
|
569
564
|
* @param reject 响应错误拦截 (正常情况用不到)
|
|
570
565
|
* @returns
|
|
571
566
|
*/
|
|
572
|
-
const createHttp = ({ config = {}, request = config => config, response = data => data, reject = error => Promise.reject(error), }) => {
|
|
567
|
+
const createHttp = ({ config = {}, request = (config) => config, response = (data) => data, reject = (error) => Promise.reject(error), }) => {
|
|
573
568
|
// 创建Axios
|
|
574
|
-
const axiosClone = axios.create({
|
|
569
|
+
const axiosClone = axios.create({
|
|
570
|
+
timeout: 1000 * 60 * 5,
|
|
571
|
+
...(config || {}),
|
|
572
|
+
});
|
|
575
573
|
// 请求
|
|
576
574
|
axiosClone.interceptors.request.use((config) => {
|
|
577
575
|
return request(config);
|
|
@@ -580,10 +578,11 @@ const createHttp = ({ config = {}, request = config => config, response = data =
|
|
|
580
578
|
axiosClone.interceptors.response.use((res) => {
|
|
581
579
|
// 处理文件
|
|
582
580
|
const contentType = res.headers['content-type'];
|
|
583
|
-
if ((contentType && contentType.includes('application/octet-stream')) ||
|
|
581
|
+
if ((contentType && contentType.includes('application/octet-stream')) ||
|
|
582
|
+
contentType.includes('file'))
|
|
584
583
|
return res.data;
|
|
585
584
|
// 处理数据
|
|
586
|
-
return response(res
|
|
585
|
+
return response(res?.data, res);
|
|
587
586
|
}, (error) => {
|
|
588
587
|
return Promise.reject(reject(error));
|
|
589
588
|
});
|
|
@@ -592,17 +591,17 @@ const createHttp = ({ config = {}, request = config => config, response = data =
|
|
|
592
591
|
return axiosClone(config);
|
|
593
592
|
};
|
|
594
593
|
const get = (method) => {
|
|
595
|
-
return http[method] = (url, params = {}, config = {}) => {
|
|
594
|
+
return (http[method] = (url, params = {}, config = {}) => {
|
|
596
595
|
return axiosClone[method](url, {
|
|
597
596
|
...config,
|
|
598
597
|
params,
|
|
599
598
|
});
|
|
600
|
-
};
|
|
599
|
+
});
|
|
601
600
|
};
|
|
602
601
|
const post = (method) => {
|
|
603
|
-
return http[method] = (url, data = {}, config = {}) => {
|
|
602
|
+
return (http[method] = (url, data = {}, config = {}) => {
|
|
604
603
|
return axiosClone[method](url, data, config);
|
|
605
|
-
};
|
|
604
|
+
});
|
|
606
605
|
};
|
|
607
606
|
http.get = get('get');
|
|
608
607
|
http.delete = get('delete');
|
|
@@ -1638,16 +1637,16 @@ function defineStore(storeFunction) {
|
|
|
1638
1637
|
// 备份初始store
|
|
1639
1638
|
const storeBackups = {};
|
|
1640
1639
|
const storeKeys = Object.keys(store).filter(key => vue.isRef(store[key]) || vue.isReactive(store[key]));
|
|
1641
|
-
storeKeys.forEach(key => (storeBackups[key] =
|
|
1640
|
+
storeKeys.forEach(key => (storeBackups[key] = pkg.cloneDeep(vue.isRef(store[key]) ? vue.unref(store[key]) : vue.toRaw(store[key]))));
|
|
1642
1641
|
// 初始化store
|
|
1643
1642
|
const storeInit = () => {
|
|
1644
1643
|
storeKeys.forEach((key) => {
|
|
1645
1644
|
if (vue.isRef(store[key])) {
|
|
1646
|
-
store[key].value =
|
|
1645
|
+
store[key].value = pkg.cloneDeep(storeBackups[key]);
|
|
1647
1646
|
}
|
|
1648
1647
|
else if (vue.isReactive(store[key])) {
|
|
1649
1648
|
Object.keys(store[key]).forEach(reactiveKey => delete store[key][reactiveKey]);
|
|
1650
|
-
Object.assign(store[key],
|
|
1649
|
+
Object.assign(store[key], pkg.cloneDeep(storeBackups[key]));
|
|
1651
1650
|
}
|
|
1652
1651
|
});
|
|
1653
1652
|
};
|
|
@@ -1747,7 +1746,7 @@ const initDict = (callback, throttleTime = 100) => {
|
|
|
1747
1746
|
const useDict = () => {
|
|
1748
1747
|
const dictTypes = [];
|
|
1749
1748
|
const dictArrs = {};
|
|
1750
|
-
const dict =
|
|
1749
|
+
const dict = pkg.throttle(async (cb, dictType) => {
|
|
1751
1750
|
const setDictTypes = [...new Set(dictTypes)];
|
|
1752
1751
|
const res = await callback(setDictTypes);
|
|
1753
1752
|
setDictTypes.forEach((dictType) => {
|
|
@@ -1797,8 +1796,8 @@ function dragEvent() {
|
|
|
1797
1796
|
const drag = vue.ref(false);
|
|
1798
1797
|
const _true = () => (drag.value = true);
|
|
1799
1798
|
const _false = () => (drag.value = false);
|
|
1800
|
-
const _in =
|
|
1801
|
-
const _out =
|
|
1799
|
+
const _in = pkg.throttle(_true, 200);
|
|
1800
|
+
const _out = pkg.debounce(_false, 200);
|
|
1802
1801
|
const _over = (e) => {
|
|
1803
1802
|
e.preventDefault();
|
|
1804
1803
|
_in();
|
package/dist/vue.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import pkg, { cloneDeep as cloneDeep$1, throttle, debounce } from 'lodash';
|
|
1
2
|
import axios from 'axios';
|
|
2
|
-
import { cloneDeep, throttle, debounce } from 'lodash';
|
|
3
3
|
import { isRef, isReactive, unref, toRaw, onMounted, onUnmounted, ref } from 'vue';
|
|
4
4
|
|
|
5
5
|
/*
|
|
@@ -168,6 +168,7 @@ const getTime = () => _local_time() + _time_diff;
|
|
|
168
168
|
* |mm |00-59 |分钟,2 位数字|
|
|
169
169
|
* |s |0-59| 秒钟|
|
|
170
170
|
* |ss |00-59 |秒钟,2 位数字|
|
|
171
|
+
* |x| | 时间戳 |
|
|
171
172
|
*/
|
|
172
173
|
const getDate = (date, formatStr) => {
|
|
173
174
|
if (!date)
|
|
@@ -177,6 +178,8 @@ const getDate = (date, formatStr) => {
|
|
|
177
178
|
}
|
|
178
179
|
if (!formatStr)
|
|
179
180
|
return new Date(date);
|
|
181
|
+
if (formatStr === 'x')
|
|
182
|
+
return new Date(date).getTime();
|
|
180
183
|
let ret;
|
|
181
184
|
let d = {
|
|
182
185
|
year: date.getFullYear().toString(),
|
|
@@ -185,11 +188,19 @@ const getDate = (date, formatStr) => {
|
|
|
185
188
|
hour: date.getHours().toString(),
|
|
186
189
|
minutes: date.getMinutes().toString(),
|
|
187
190
|
seconds: date.getSeconds().toString(),
|
|
188
|
-
week: [
|
|
191
|
+
week: [
|
|
192
|
+
'星期日',
|
|
193
|
+
'星期一',
|
|
194
|
+
'星期二',
|
|
195
|
+
'星期三',
|
|
196
|
+
'星期四',
|
|
197
|
+
'星期五',
|
|
198
|
+
'星期六',
|
|
199
|
+
][date.getDay()],
|
|
189
200
|
};
|
|
190
201
|
let keys = {
|
|
191
|
-
|
|
192
|
-
|
|
202
|
+
YYYY: d.year,
|
|
203
|
+
YY: d.year.slice(2),
|
|
193
204
|
'M+': d.month,
|
|
194
205
|
'D+': d.day,
|
|
195
206
|
'[Hh]+': d.hour,
|
|
@@ -212,6 +223,10 @@ const getDate = (date, formatStr) => {
|
|
|
212
223
|
*
|
|
213
224
|
* dateType:
|
|
214
225
|
*
|
|
226
|
+
* - daybefore —— 一天前
|
|
227
|
+
*
|
|
228
|
+
* - dayafter —— 一天后
|
|
229
|
+
*
|
|
215
230
|
* - weekstart —— 本周起始日期
|
|
216
231
|
*
|
|
217
232
|
* - weekend —— 本周结束日期
|
|
@@ -239,27 +254,12 @@ const getDate = (date, formatStr) => {
|
|
|
239
254
|
* @returns {Date | string}
|
|
240
255
|
*/
|
|
241
256
|
const getSpecialDate = (dateType, date, formatter) => {
|
|
242
|
-
// 是否为开始时间
|
|
243
|
-
let isStart = true;
|
|
244
257
|
let time = new Date(date || getTime());
|
|
245
|
-
const setTime = () => {
|
|
246
|
-
if (isStart) {
|
|
247
|
-
time.setHours(0);
|
|
248
|
-
time.setMinutes(0);
|
|
249
|
-
time.setSeconds(0);
|
|
250
|
-
}
|
|
251
|
-
else {
|
|
252
|
-
time.setHours(23);
|
|
253
|
-
time.setMinutes(59);
|
|
254
|
-
time.setSeconds(59);
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
258
|
switch (dateType) {
|
|
258
259
|
case 'daybefore':
|
|
259
260
|
time = new Date(time.getTime() - 24 * 60 * 60 * 1000);
|
|
260
261
|
break;
|
|
261
262
|
case 'dayafter':
|
|
262
|
-
isStart = false;
|
|
263
263
|
time = new Date(time.getTime() + 24 * 60 * 60 * 1000);
|
|
264
264
|
break;
|
|
265
265
|
case 'weekstart':
|
|
@@ -269,28 +269,24 @@ const getSpecialDate = (dateType, date, formatter) => {
|
|
|
269
269
|
time = new Date(time.getTime() - time.getDay() * 24 * 60 * 60 * 1000);
|
|
270
270
|
break;
|
|
271
271
|
case 'weekend':
|
|
272
|
-
isStart = false;
|
|
273
272
|
time = new Date(time.getTime() + (7 - time.getDay()) * 24 * 60 * 60 * 1000);
|
|
274
273
|
break;
|
|
275
274
|
case 'weekbefore':
|
|
276
275
|
time = new Date(time.getTime() - 7 * 24 * 60 * 60 * 1000);
|
|
277
276
|
break;
|
|
278
277
|
case 'weekafter':
|
|
279
|
-
|
|
280
|
-
time = (new Date(time.getTime() + 7 * 24 * 60 * 60 * 1000));
|
|
278
|
+
time = new Date(time.getTime() + 7 * 24 * 60 * 60 * 1000);
|
|
281
279
|
break;
|
|
282
280
|
case 'monthstart':
|
|
283
|
-
time =
|
|
281
|
+
time = new Date(time.getFullYear(), time.getMonth(), 1);
|
|
284
282
|
break;
|
|
285
283
|
case 'monthend':
|
|
286
|
-
isStart = false;
|
|
287
284
|
time = new Date(time.getFullYear(), time.getMonth() + 1, 0);
|
|
288
285
|
break;
|
|
289
286
|
case 'monthbefore':
|
|
290
287
|
time.setMonth(time.getMonth() - 1);
|
|
291
288
|
break;
|
|
292
289
|
case 'monthafter':
|
|
293
|
-
isStart = false;
|
|
294
290
|
time.setMonth(time.getMonth() + 1);
|
|
295
291
|
break;
|
|
296
292
|
case 'yearstart':
|
|
@@ -298,7 +294,6 @@ const getSpecialDate = (dateType, date, formatter) => {
|
|
|
298
294
|
time.setDate(1);
|
|
299
295
|
break;
|
|
300
296
|
case 'yearend':
|
|
301
|
-
isStart = false;
|
|
302
297
|
time.setMonth(11);
|
|
303
298
|
time.setDate(31);
|
|
304
299
|
break;
|
|
@@ -306,14 +301,13 @@ const getSpecialDate = (dateType, date, formatter) => {
|
|
|
306
301
|
time.setFullYear(time.getFullYear() - 1);
|
|
307
302
|
break;
|
|
308
303
|
case 'yearafter':
|
|
309
|
-
isStart = false;
|
|
310
304
|
time.setFullYear(time.getFullYear() + 1);
|
|
311
305
|
break;
|
|
312
306
|
}
|
|
313
|
-
setTime();
|
|
314
307
|
return getDate(time, formatter);
|
|
315
308
|
};
|
|
316
309
|
|
|
310
|
+
const { cloneDeep } = pkg;
|
|
317
311
|
/*
|
|
318
312
|
* @Description: 对象处理
|
|
319
313
|
* @Author: Zye
|
|
@@ -329,7 +323,9 @@ const getSpecialDate = (dateType, date, formatter) => {
|
|
|
329
323
|
*/
|
|
330
324
|
const getObject = (objectArr, keyName, keyValue, foundKeyName) => {
|
|
331
325
|
// 使用find方法查找数组中匹配的元素,如果未找到则返回一个空对象
|
|
332
|
-
let obj = objectArr.find((v) =>
|
|
326
|
+
let obj = objectArr.find((v) => typeof keyValue == 'function'
|
|
327
|
+
? keyValue(v[keyName])
|
|
328
|
+
: v[keyName] == keyValue) || new Object();
|
|
333
329
|
// 根据是否指定了foundKeyName返回不同的结果
|
|
334
330
|
return foundKeyName ? obj[foundKeyName] : obj;
|
|
335
331
|
};
|
|
@@ -344,12 +340,7 @@ const getObject = (objectArr, keyName, keyValue, foundKeyName) => {
|
|
|
344
340
|
* @template T 目标对象和源对象的类型,该类型必须是可深度写入的对象类型。
|
|
345
341
|
*/
|
|
346
342
|
const assignObject = (dist, src) => {
|
|
347
|
-
const obj =
|
|
348
|
-
for (const [key, value] of Object.entries(dist)) {
|
|
349
|
-
if (typeof value !== 'object' || value === null) {
|
|
350
|
-
obj[key] = value;
|
|
351
|
-
}
|
|
352
|
-
}
|
|
343
|
+
const obj = cloneDeep(dist);
|
|
353
344
|
for (const [key, value] of Object.entries(src)) {
|
|
354
345
|
if (!dist[key] || typeof value !== 'object' || value === null) {
|
|
355
346
|
obj[key] = value;
|
|
@@ -386,6 +377,7 @@ const expose = (option, ...refs) => {
|
|
|
386
377
|
return ref.value?.[prop];
|
|
387
378
|
}
|
|
388
379
|
}
|
|
380
|
+
return option[prop];
|
|
389
381
|
},
|
|
390
382
|
has(_, prop) {
|
|
391
383
|
for (const ref of refs) {
|
|
@@ -393,8 +385,11 @@ const expose = (option, ...refs) => {
|
|
|
393
385
|
return true;
|
|
394
386
|
}
|
|
395
387
|
}
|
|
388
|
+
if (prop in option) {
|
|
389
|
+
return true;
|
|
390
|
+
}
|
|
396
391
|
return false;
|
|
397
|
-
}
|
|
392
|
+
},
|
|
398
393
|
});
|
|
399
394
|
};
|
|
400
395
|
/**
|
|
@@ -409,7 +404,7 @@ const on = (emit, emitStrs) => {
|
|
|
409
404
|
if (!Array.isArray(emitStrs)) {
|
|
410
405
|
emitStrs = Object.keys(emitStrs);
|
|
411
406
|
}
|
|
412
|
-
emitStrs.forEach(key => {
|
|
407
|
+
emitStrs.forEach((key) => {
|
|
413
408
|
emits[key] = (...args) => {
|
|
414
409
|
emit(key, ...args);
|
|
415
410
|
};
|
|
@@ -567,9 +562,12 @@ function addPx(px) {
|
|
|
567
562
|
* @param reject 响应错误拦截 (正常情况用不到)
|
|
568
563
|
* @returns
|
|
569
564
|
*/
|
|
570
|
-
const createHttp = ({ config = {}, request = config => config, response = data => data, reject = error => Promise.reject(error), }) => {
|
|
565
|
+
const createHttp = ({ config = {}, request = (config) => config, response = (data) => data, reject = (error) => Promise.reject(error), }) => {
|
|
571
566
|
// 创建Axios
|
|
572
|
-
const axiosClone = axios.create({
|
|
567
|
+
const axiosClone = axios.create({
|
|
568
|
+
timeout: 1000 * 60 * 5,
|
|
569
|
+
...(config || {}),
|
|
570
|
+
});
|
|
573
571
|
// 请求
|
|
574
572
|
axiosClone.interceptors.request.use((config) => {
|
|
575
573
|
return request(config);
|
|
@@ -578,10 +576,11 @@ const createHttp = ({ config = {}, request = config => config, response = data =
|
|
|
578
576
|
axiosClone.interceptors.response.use((res) => {
|
|
579
577
|
// 处理文件
|
|
580
578
|
const contentType = res.headers['content-type'];
|
|
581
|
-
if ((contentType && contentType.includes('application/octet-stream')) ||
|
|
579
|
+
if ((contentType && contentType.includes('application/octet-stream')) ||
|
|
580
|
+
contentType.includes('file'))
|
|
582
581
|
return res.data;
|
|
583
582
|
// 处理数据
|
|
584
|
-
return response(res
|
|
583
|
+
return response(res?.data, res);
|
|
585
584
|
}, (error) => {
|
|
586
585
|
return Promise.reject(reject(error));
|
|
587
586
|
});
|
|
@@ -590,17 +589,17 @@ const createHttp = ({ config = {}, request = config => config, response = data =
|
|
|
590
589
|
return axiosClone(config);
|
|
591
590
|
};
|
|
592
591
|
const get = (method) => {
|
|
593
|
-
return http[method] = (url, params = {}, config = {}) => {
|
|
592
|
+
return (http[method] = (url, params = {}, config = {}) => {
|
|
594
593
|
return axiosClone[method](url, {
|
|
595
594
|
...config,
|
|
596
595
|
params,
|
|
597
596
|
});
|
|
598
|
-
};
|
|
597
|
+
});
|
|
599
598
|
};
|
|
600
599
|
const post = (method) => {
|
|
601
|
-
return http[method] = (url, data = {}, config = {}) => {
|
|
600
|
+
return (http[method] = (url, data = {}, config = {}) => {
|
|
602
601
|
return axiosClone[method](url, data, config);
|
|
603
|
-
};
|
|
602
|
+
});
|
|
604
603
|
};
|
|
605
604
|
http.get = get('get');
|
|
606
605
|
http.delete = get('delete');
|
|
@@ -1636,16 +1635,16 @@ function defineStore(storeFunction) {
|
|
|
1636
1635
|
// 备份初始store
|
|
1637
1636
|
const storeBackups = {};
|
|
1638
1637
|
const storeKeys = Object.keys(store).filter(key => isRef(store[key]) || isReactive(store[key]));
|
|
1639
|
-
storeKeys.forEach(key => (storeBackups[key] = cloneDeep(isRef(store[key]) ? unref(store[key]) : toRaw(store[key]))));
|
|
1638
|
+
storeKeys.forEach(key => (storeBackups[key] = cloneDeep$1(isRef(store[key]) ? unref(store[key]) : toRaw(store[key]))));
|
|
1640
1639
|
// 初始化store
|
|
1641
1640
|
const storeInit = () => {
|
|
1642
1641
|
storeKeys.forEach((key) => {
|
|
1643
1642
|
if (isRef(store[key])) {
|
|
1644
|
-
store[key].value = cloneDeep(storeBackups[key]);
|
|
1643
|
+
store[key].value = cloneDeep$1(storeBackups[key]);
|
|
1645
1644
|
}
|
|
1646
1645
|
else if (isReactive(store[key])) {
|
|
1647
1646
|
Object.keys(store[key]).forEach(reactiveKey => delete store[key][reactiveKey]);
|
|
1648
|
-
Object.assign(store[key], cloneDeep(storeBackups[key]));
|
|
1647
|
+
Object.assign(store[key], cloneDeep$1(storeBackups[key]));
|
|
1649
1648
|
}
|
|
1650
1649
|
});
|
|
1651
1650
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cowave-cli/utils",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.6",
|
|
4
4
|
"description": "cowave工具包",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
],
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "rollup -c",
|
|
12
|
-
"push": "npm publish --access=public
|
|
12
|
+
"push": "standard-version && npm publish --access=public"
|
|
13
13
|
},
|
|
14
14
|
"author": "",
|
|
15
15
|
"license": "ISC",
|