@whitesev/utils 2.3.7 → 2.3.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitesev/utils",
3
- "version": "2.3.7",
3
+ "version": "2.3.8",
4
4
  "description": "一个常用的工具库",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
package/src/Utils.ts CHANGED
@@ -291,37 +291,38 @@ class Utils {
291
291
  "Utils.checkUserClickInNode 参数 targetNode 必须为 Element|Node 类型"
292
292
  );
293
293
  }
294
- let mouseClickPosX = Number(
295
- (window!.event as any).clientX.toString()
296
- ); /* 鼠标相对屏幕横坐标 */
297
- let mouseClickPosY = Number(
298
- (window!.event as any).clientY.toString()
299
- ); /* 鼠标相对屏幕纵坐标 */
300
- let elementPosXLeft = Number(
301
- (element as HTMLElement).getBoundingClientRect().left
302
- ); /* 要检测的元素的相对屏幕的横坐标最左边 */
303
- let elementPosXRight = Number(
304
- (element as HTMLElement).getBoundingClientRect().right
305
- ); /* 要检测的元素的相对屏幕的横坐标最右边 */
306
- let elementPosYTop = Number(
307
- (element as HTMLElement).getBoundingClientRect().top
308
- ); /* 要检测的元素的相对屏幕的纵坐标最上边 */
309
- let elementPosYBottom = Number(
310
- (element as HTMLElement).getBoundingClientRect().bottom
311
- ); /* 要检测的元素的相对屏幕的纵坐标最下边 */
312
- let clickNodeHTML = (this.windowApi.window.event as any).target
313
- .innerHTML as string;
294
+ let clickEvent = UtilsContext.windowApi.window.event as PointerEvent;
295
+ let touchEvent = UtilsContext.windowApi.window.event as TouchEvent;
296
+ let $click = clickEvent?.composedPath()?.[0] as HTMLElement;
297
+
298
+ // 点击的x坐标
299
+ let clickPosX =
300
+ clickEvent?.clientX != null
301
+ ? clickEvent.clientX
302
+ : touchEvent.touches[0].clientX;
303
+ // 点击的y坐标
304
+ let clickPosY =
305
+ clickEvent?.clientY != null
306
+ ? clickEvent.clientY
307
+ : touchEvent.touches[0].clientY;
308
+ let {
309
+ /* 要检测的元素的相对屏幕的横坐标最左边 */
310
+ left: elementPosXLeft,
311
+ /* 要检测的元素的相对屏幕的横坐标最右边 */
312
+ right: elementPosXRight,
313
+ /* 要检测的元素的相对屏幕的纵坐标最上边 */
314
+ top: elementPosYTop,
315
+ /* 要检测的元素的相对屏幕的纵坐标最下边 */
316
+ bottom: elementPosYBottom,
317
+ } = (element as HTMLElement).getBoundingClientRect();
314
318
  if (
315
- mouseClickPosX >= elementPosXLeft &&
316
- mouseClickPosX <= elementPosXRight &&
317
- mouseClickPosY >= elementPosYTop &&
318
- mouseClickPosY <= elementPosYBottom
319
+ clickPosX >= elementPosXLeft &&
320
+ clickPosX <= elementPosXRight &&
321
+ clickPosY >= elementPosYTop &&
322
+ clickPosY <= elementPosYBottom
319
323
  ) {
320
324
  return true;
321
- } else if (
322
- clickNodeHTML &&
323
- (element as HTMLElement).innerHTML.includes(clickNodeHTML)
324
- ) {
325
+ } else if (($click && element.contains($click)) || $click == element) {
325
326
  /* 这种情况是应对在界面中隐藏的元素,getBoundingClientRect获取的都是0 */
326
327
  return true;
327
328
  } else {
package/src/indexedDB.ts CHANGED
@@ -35,6 +35,10 @@ class indexedDB {
35
35
  code: 401,
36
36
  msg: "操作失败",
37
37
  },
38
+ empty: {
39
+ code: 201,
40
+ msg: "操作成功,但是没有数据",
41
+ },
38
42
  openFailed: { code: 91001, msg: "打开数据库失败" },
39
43
  saveFailed: { code: 91002, msg: "保存数据失败" },
40
44
  getFailed: { code: 91003, msg: "获取数据失败" },
@@ -287,23 +291,21 @@ class indexedDB {
287
291
  /* result 返回的是 {key: string, value: any} */
288
292
  /* 键值对存储 */
289
293
  let data = result ? result.value : void 0;
290
- if (data) {
294
+ if (data == null) {
291
295
  resolve({
292
296
  success: true,
293
- code: that.#statusCode.operationSuccess.code,
294
- msg: that.#statusCode.operationSuccess.msg,
295
- data: data,
296
-
297
+ code: that.#statusCode.empty.code,
298
+ msg: that.#statusCode.empty.msg,
299
+ data: data!,
297
300
  event: event,
298
301
  result: result,
299
302
  });
300
303
  } else {
301
304
  resolve({
302
- success: false,
303
- code: that.#statusCode.operationFailed.code,
304
- msg: that.#statusCode.operationFailed.msg,
305
- data: void 0 as any,
306
-
305
+ success: true,
306
+ code: that.#statusCode.operationSuccess.code,
307
+ msg: that.#statusCode.operationSuccess.msg,
308
+ data: data,
307
309
  event: event,
308
310
  result: result,
309
311
  });