@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/dist/index.esm.js CHANGED
@@ -2680,6 +2680,10 @@ class indexedDB {
2680
2680
  code: 401,
2681
2681
  msg: "操作失败",
2682
2682
  },
2683
+ empty: {
2684
+ code: 201,
2685
+ msg: "操作成功,但是没有数据",
2686
+ },
2683
2687
  openFailed: { code: 91001, msg: "打开数据库失败" },
2684
2688
  saveFailed: { code: 91002, msg: "保存数据失败" },
2685
2689
  getFailed: { code: 91003, msg: "获取数据失败" },
@@ -2868,11 +2872,11 @@ class indexedDB {
2868
2872
  /* result 返回的是 {key: string, value: any} */
2869
2873
  /* 键值对存储 */
2870
2874
  let data = result ? result.value : void 0;
2871
- if (data) {
2875
+ if (data == null) {
2872
2876
  resolve({
2873
2877
  success: true,
2874
- code: that.#statusCode.operationSuccess.code,
2875
- msg: that.#statusCode.operationSuccess.msg,
2878
+ code: that.#statusCode.empty.code,
2879
+ msg: that.#statusCode.empty.msg,
2876
2880
  data: data,
2877
2881
  event: event,
2878
2882
  result: result,
@@ -2880,10 +2884,10 @@ class indexedDB {
2880
2884
  }
2881
2885
  else {
2882
2886
  resolve({
2883
- success: false,
2884
- code: that.#statusCode.operationFailed.code,
2885
- msg: that.#statusCode.operationFailed.msg,
2886
- data: void 0,
2887
+ success: true,
2888
+ code: that.#statusCode.operationSuccess.code,
2889
+ msg: that.#statusCode.operationSuccess.msg,
2890
+ data: data,
2887
2891
  event: event,
2888
2892
  result: result,
2889
2893
  });
@@ -4097,22 +4101,33 @@ class Utils {
4097
4101
  if (!UtilsContext.isDOM(element)) {
4098
4102
  throw new Error("Utils.checkUserClickInNode 参数 targetNode 必须为 Element|Node 类型");
4099
4103
  }
4100
- let mouseClickPosX = Number(window.event.clientX.toString()); /* 鼠标相对屏幕横坐标 */
4101
- let mouseClickPosY = Number(window.event.clientY.toString()); /* 鼠标相对屏幕纵坐标 */
4102
- let elementPosXLeft = Number(element.getBoundingClientRect().left); /* 要检测的元素的相对屏幕的横坐标最左边 */
4103
- let elementPosXRight = Number(element.getBoundingClientRect().right); /* 要检测的元素的相对屏幕的横坐标最右边 */
4104
- let elementPosYTop = Number(element.getBoundingClientRect().top); /* 要检测的元素的相对屏幕的纵坐标最上边 */
4105
- let elementPosYBottom = Number(element.getBoundingClientRect().bottom); /* 要检测的元素的相对屏幕的纵坐标最下边 */
4106
- let clickNodeHTML = this.windowApi.window.event.target
4107
- .innerHTML;
4108
- if (mouseClickPosX >= elementPosXLeft &&
4109
- mouseClickPosX <= elementPosXRight &&
4110
- mouseClickPosY >= elementPosYTop &&
4111
- mouseClickPosY <= elementPosYBottom) {
4104
+ let clickEvent = UtilsContext.windowApi.window.event;
4105
+ let touchEvent = UtilsContext.windowApi.window.event;
4106
+ let $click = clickEvent?.composedPath()?.[0];
4107
+ // 点击的x坐标
4108
+ let clickPosX = clickEvent?.clientX != null
4109
+ ? clickEvent.clientX
4110
+ : touchEvent.touches[0].clientX;
4111
+ // 点击的y坐标
4112
+ let clickPosY = clickEvent?.clientY != null
4113
+ ? clickEvent.clientY
4114
+ : touchEvent.touches[0].clientY;
4115
+ let {
4116
+ /* 要检测的元素的相对屏幕的横坐标最左边 */
4117
+ left: elementPosXLeft,
4118
+ /* 要检测的元素的相对屏幕的横坐标最右边 */
4119
+ right: elementPosXRight,
4120
+ /* 要检测的元素的相对屏幕的纵坐标最上边 */
4121
+ top: elementPosYTop,
4122
+ /* 要检测的元素的相对屏幕的纵坐标最下边 */
4123
+ bottom: elementPosYBottom, } = element.getBoundingClientRect();
4124
+ if (clickPosX >= elementPosXLeft &&
4125
+ clickPosX <= elementPosXRight &&
4126
+ clickPosY >= elementPosYTop &&
4127
+ clickPosY <= elementPosYBottom) {
4112
4128
  return true;
4113
4129
  }
4114
- else if (clickNodeHTML &&
4115
- element.innerHTML.includes(clickNodeHTML)) {
4130
+ else if (($click && element.contains($click)) || $click == element) {
4116
4131
  /* 这种情况是应对在界面中隐藏的元素,getBoundingClientRect获取的都是0 */
4117
4132
  return true;
4118
4133
  }