ll-plus 2.4.17 → 2.4.19

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.
Files changed (266) hide show
  1. package/es/component.mjs +6 -0
  2. package/es/component.mjs.map +1 -1
  3. package/es/components/advanced-filtering/index.d.ts +284 -284
  4. package/es/components/advanced-filtering/src/advanced-filtering.vue.d.ts +142 -142
  5. package/es/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +142 -142
  6. package/es/components/breadcrumb-card/index.d.ts +94 -0
  7. package/es/components/breadcrumb-card/src/breadcrumb-card.d.ts +28 -0
  8. package/es/components/breadcrumb-card/src/breadcrumb-card.vue.d.ts +87 -0
  9. package/es/components/cascader/index.d.ts +8 -8
  10. package/es/components/cascader/src/cascader.vue.d.ts +8 -8
  11. package/es/components/checkbox/index.d.ts +217 -217
  12. package/es/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
  13. package/es/components/checkbox/src/checkbox.d.ts +56 -56
  14. package/es/components/drawer/index.d.ts +5 -5
  15. package/es/components/drawer/src/components/second-confirmation/index.d.ts +3 -3
  16. package/es/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +3 -3
  17. package/es/components/drawer/src/drawer.vue.d.ts +5 -5
  18. package/es/components/easy-cron/index.d.ts +95 -95
  19. package/es/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +88 -88
  20. package/es/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +88 -88
  21. package/es/components/easy-cron/src/easy-cron.vue.d.ts +95 -95
  22. package/es/components/form/index.d.ts +142 -142
  23. package/es/components/form/src/components/form-component.vue.d.ts +1 -1
  24. package/es/components/form/src/config/form.d.ts +56 -56
  25. package/es/components/form/src/form.vue.d.ts +141 -141
  26. package/es/components/index.d.ts +3 -0
  27. package/es/components/input/index.d.ts +33 -33
  28. package/es/components/input/src/input.vue.d.ts +33 -33
  29. package/es/components/key-value/index.d.ts +678 -678
  30. package/es/components/key-value/src/components/key-value-item.vue.d.ts +226 -226
  31. package/es/components/key-value/src/key-value.vue.d.ts +678 -678
  32. package/es/components/modal/index.d.ts +1 -1
  33. package/es/components/modal/src/modal.vue.d.ts +1 -1
  34. package/es/components/new-drawer/index.d.ts +732 -0
  35. package/es/components/new-drawer/src/drawer.d.ts +60 -0
  36. package/es/components/new-drawer/src/drawer.vue.d.ts +725 -0
  37. package/es/components/new-modal/index.d.ts +2340 -0
  38. package/es/components/new-modal/src/modal.d.ts +58 -0
  39. package/es/components/new-modal/src/modal.vue.d.ts +2333 -0
  40. package/es/components/rich-text-editor/index.d.ts +1 -1
  41. package/es/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
  42. package/es/components/select/index.d.ts +4 -4
  43. package/es/components/select/src/select.vue.d.ts +4 -4
  44. package/es/components/select-group/index.d.ts +1 -1
  45. package/es/components/select-group/src/select-group.d.ts +1 -1
  46. package/es/components/select-group/src/select-group.vue.d.ts +1 -1
  47. package/es/components/table/index.d.ts +7 -6
  48. package/es/components/table/src/components/header-search.vue.d.ts +1 -0
  49. package/es/components/table/src/components/main-table.vue.d.ts +2 -2
  50. package/es/components/table/src/config/table.d.ts +2 -2
  51. package/es/components/table/src/table.vue.d.ts +7 -6
  52. package/es/components/textarea/index.d.ts +5 -5
  53. package/es/components/textarea/src/textarea.vue.d.ts +5 -5
  54. package/es/components/tooltip/index.d.ts +4 -4
  55. package/es/components/tooltip/src/tooltip.d.ts +1 -1
  56. package/es/components/tooltip/src/tooltip.vue.d.ts +4 -4
  57. package/es/components/tree-search/index.d.ts +1 -1
  58. package/es/components/tree-search/src/tree-search.vue.d.ts +1 -1
  59. package/es/components/upload-drag/index.d.ts +2 -2
  60. package/es/components/upload-drag/src/upload-drag.vue.d.ts +2 -2
  61. package/es/hooks/index.d.ts +1 -0
  62. package/es/hooks/use-scroll/index.d.ts +7 -0
  63. package/es/index.d.ts +3 -1
  64. package/es/index.mjs +9 -0
  65. package/es/index.mjs.map +1 -1
  66. package/es/packages/components/breadcrumb-card/index.mjs +10 -0
  67. package/es/packages/components/breadcrumb-card/index.mjs.map +1 -0
  68. package/es/packages/components/breadcrumb-card/src/breadcrumb-card.mjs +70 -0
  69. package/es/packages/components/breadcrumb-card/src/breadcrumb-card.mjs.map +1 -0
  70. package/es/packages/components/breadcrumb-card/src/breadcrumb-card.vue.mjs +8 -0
  71. package/es/packages/components/breadcrumb-card/src/breadcrumb-card.vue.mjs.map +1 -0
  72. package/es/packages/components/breadcrumb-card/src/breadcrumb-card.vue2.mjs +180 -0
  73. package/es/packages/components/breadcrumb-card/src/breadcrumb-card.vue2.mjs.map +1 -0
  74. package/es/packages/components/index.mjs +6 -0
  75. package/es/packages/components/index.mjs.map +1 -1
  76. package/es/packages/components/new-drawer/index.mjs +10 -0
  77. package/es/packages/components/new-drawer/index.mjs.map +1 -0
  78. package/es/packages/components/new-drawer/src/drawer.mjs +106 -0
  79. package/es/packages/components/new-drawer/src/drawer.mjs.map +1 -0
  80. package/es/packages/components/new-drawer/src/drawer.vue.mjs +8 -0
  81. package/es/packages/components/new-drawer/src/drawer.vue.mjs.map +1 -0
  82. package/es/packages/components/new-drawer/src/drawer.vue2.mjs +162 -0
  83. package/es/packages/components/new-drawer/src/drawer.vue2.mjs.map +1 -0
  84. package/es/packages/components/new-modal/index.mjs +10 -0
  85. package/es/packages/components/new-modal/index.mjs.map +1 -0
  86. package/es/packages/components/new-modal/src/modal.mjs +104 -0
  87. package/es/packages/components/new-modal/src/modal.mjs.map +1 -0
  88. package/es/packages/components/new-modal/src/modal.vue.mjs +8 -0
  89. package/es/packages/components/new-modal/src/modal.vue.mjs.map +1 -0
  90. package/es/packages/components/new-modal/src/modal.vue2.mjs +126 -0
  91. package/es/packages/components/new-modal/src/modal.vue2.mjs.map +1 -0
  92. package/es/packages/components/table/src/components/header-search.vue2.mjs +21 -13
  93. package/es/packages/components/table/src/components/header-search.vue2.mjs.map +1 -1
  94. package/es/packages/hooks/index.mjs +4 -0
  95. package/es/packages/hooks/index.mjs.map +1 -0
  96. package/es/packages/hooks/use-scroll/index.mjs +113 -0
  97. package/es/packages/hooks/use-scroll/index.mjs.map +1 -0
  98. package/index.full.js +964 -127
  99. package/index.full.min.js +22 -22
  100. package/index.full.min.js.map +1 -1
  101. package/index.full.min.mjs +24 -24
  102. package/index.full.min.mjs.map +1 -1
  103. package/index.full.mjs +957 -132
  104. package/lib/component.js +112 -106
  105. package/lib/component.js.map +1 -1
  106. package/lib/components/advanced-filtering/index.d.ts +284 -284
  107. package/lib/components/advanced-filtering/src/advanced-filtering.vue.d.ts +142 -142
  108. package/lib/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +142 -142
  109. package/lib/components/breadcrumb-card/index.d.ts +94 -0
  110. package/lib/components/breadcrumb-card/src/breadcrumb-card.d.ts +28 -0
  111. package/lib/components/breadcrumb-card/src/breadcrumb-card.vue.d.ts +87 -0
  112. package/lib/components/cascader/index.d.ts +8 -8
  113. package/lib/components/cascader/src/cascader.vue.d.ts +8 -8
  114. package/lib/components/checkbox/index.d.ts +217 -217
  115. package/lib/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
  116. package/lib/components/checkbox/src/checkbox.d.ts +56 -56
  117. package/lib/components/drawer/index.d.ts +5 -5
  118. package/lib/components/drawer/src/components/second-confirmation/index.d.ts +3 -3
  119. package/lib/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +3 -3
  120. package/lib/components/drawer/src/drawer.vue.d.ts +5 -5
  121. package/lib/components/easy-cron/index.d.ts +95 -95
  122. package/lib/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +88 -88
  123. package/lib/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +88 -88
  124. package/lib/components/easy-cron/src/easy-cron.vue.d.ts +95 -95
  125. package/lib/components/form/index.d.ts +142 -142
  126. package/lib/components/form/src/components/form-component.vue.d.ts +1 -1
  127. package/lib/components/form/src/config/form.d.ts +56 -56
  128. package/lib/components/form/src/form.vue.d.ts +141 -141
  129. package/lib/components/index.d.ts +3 -0
  130. package/lib/components/input/index.d.ts +33 -33
  131. package/lib/components/input/src/input.vue.d.ts +33 -33
  132. package/lib/components/key-value/index.d.ts +678 -678
  133. package/lib/components/key-value/src/components/key-value-item.vue.d.ts +226 -226
  134. package/lib/components/key-value/src/key-value.vue.d.ts +678 -678
  135. package/lib/components/modal/index.d.ts +1 -1
  136. package/lib/components/modal/src/modal.vue.d.ts +1 -1
  137. package/lib/components/new-drawer/index.d.ts +732 -0
  138. package/lib/components/new-drawer/src/drawer.d.ts +60 -0
  139. package/lib/components/new-drawer/src/drawer.vue.d.ts +725 -0
  140. package/lib/components/new-modal/index.d.ts +2340 -0
  141. package/lib/components/new-modal/src/modal.d.ts +58 -0
  142. package/lib/components/new-modal/src/modal.vue.d.ts +2333 -0
  143. package/lib/components/rich-text-editor/index.d.ts +1 -1
  144. package/lib/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
  145. package/lib/components/select/index.d.ts +4 -4
  146. package/lib/components/select/src/select.vue.d.ts +4 -4
  147. package/lib/components/select-group/index.d.ts +1 -1
  148. package/lib/components/select-group/src/select-group.d.ts +1 -1
  149. package/lib/components/select-group/src/select-group.vue.d.ts +1 -1
  150. package/lib/components/table/index.d.ts +7 -6
  151. package/lib/components/table/src/components/header-search.vue.d.ts +1 -0
  152. package/lib/components/table/src/components/main-table.vue.d.ts +2 -2
  153. package/lib/components/table/src/config/table.d.ts +2 -2
  154. package/lib/components/table/src/table.vue.d.ts +7 -6
  155. package/lib/components/textarea/index.d.ts +5 -5
  156. package/lib/components/textarea/src/textarea.vue.d.ts +5 -5
  157. package/lib/components/tooltip/index.d.ts +4 -4
  158. package/lib/components/tooltip/src/tooltip.d.ts +1 -1
  159. package/lib/components/tooltip/src/tooltip.vue.d.ts +4 -4
  160. package/lib/components/tree-search/index.d.ts +1 -1
  161. package/lib/components/tree-search/src/tree-search.vue.d.ts +1 -1
  162. package/lib/components/upload-drag/index.d.ts +2 -2
  163. package/lib/components/upload-drag/src/upload-drag.vue.d.ts +2 -2
  164. package/lib/hooks/index.d.ts +1 -0
  165. package/lib/hooks/use-scroll/index.d.ts +7 -0
  166. package/lib/index.d.ts +3 -1
  167. package/lib/index.js +129 -108
  168. package/lib/index.js.map +1 -1
  169. package/lib/packages/components/breadcrumb-card/index.js +17 -0
  170. package/lib/packages/components/breadcrumb-card/index.js.map +1 -0
  171. package/lib/packages/components/breadcrumb-card/src/breadcrumb-card.js +73 -0
  172. package/lib/packages/components/breadcrumb-card/src/breadcrumb-card.js.map +1 -0
  173. package/lib/packages/components/breadcrumb-card/src/breadcrumb-card.vue.js +12 -0
  174. package/lib/packages/components/breadcrumb-card/src/breadcrumb-card.vue.js.map +1 -0
  175. package/lib/packages/components/breadcrumb-card/src/breadcrumb-card.vue2.js +184 -0
  176. package/lib/packages/components/breadcrumb-card/src/breadcrumb-card.vue2.js.map +1 -0
  177. package/lib/packages/components/index.js +124 -108
  178. package/lib/packages/components/index.js.map +1 -1
  179. package/lib/packages/components/new-drawer/index.js +17 -0
  180. package/lib/packages/components/new-drawer/index.js.map +1 -0
  181. package/lib/packages/components/new-drawer/src/drawer.js +109 -0
  182. package/lib/packages/components/new-drawer/src/drawer.js.map +1 -0
  183. package/lib/packages/components/new-drawer/src/drawer.vue.js +12 -0
  184. package/lib/packages/components/new-drawer/src/drawer.vue.js.map +1 -0
  185. package/lib/packages/components/new-drawer/src/drawer.vue2.js +166 -0
  186. package/lib/packages/components/new-drawer/src/drawer.vue2.js.map +1 -0
  187. package/lib/packages/components/new-modal/index.js +18 -0
  188. package/lib/packages/components/new-modal/index.js.map +1 -0
  189. package/lib/packages/components/new-modal/src/modal.js +108 -0
  190. package/lib/packages/components/new-modal/src/modal.js.map +1 -0
  191. package/lib/packages/components/new-modal/src/modal.vue.js +12 -0
  192. package/lib/packages/components/new-modal/src/modal.vue.js.map +1 -0
  193. package/lib/packages/components/new-modal/src/modal.vue2.js +130 -0
  194. package/lib/packages/components/new-modal/src/modal.vue2.js.map +1 -0
  195. package/lib/packages/components/table/src/components/header-search.vue2.js +20 -12
  196. package/lib/packages/components/table/src/components/header-search.vue2.js.map +1 -1
  197. package/lib/packages/hooks/index.js +8 -0
  198. package/lib/packages/hooks/index.js.map +1 -0
  199. package/lib/packages/hooks/use-scroll/index.js +115 -0
  200. package/lib/packages/hooks/use-scroll/index.js.map +1 -0
  201. package/package.json +1 -1
  202. package/theme-chalk/css/breadcrumb-card.css +1 -0
  203. package/theme-chalk/css/index.css +2 -2
  204. package/theme-chalk/css/new-drawer.css +5 -0
  205. package/theme-chalk/css/new-modal.css +5 -0
  206. package/types/packages/components/advanced-filtering/index.d.ts +284 -284
  207. package/types/packages/components/advanced-filtering/src/advanced-filtering.vue.d.ts +142 -142
  208. package/types/packages/components/advanced-filtering/src/components/advanced-filtering-params.vue.d.ts +142 -142
  209. package/types/packages/components/breadcrumb-card/index.d.ts +94 -0
  210. package/types/packages/components/breadcrumb-card/src/breadcrumb-card.d.ts +28 -0
  211. package/types/packages/components/breadcrumb-card/src/breadcrumb-card.vue.d.ts +87 -0
  212. package/types/packages/components/cascader/index.d.ts +8 -8
  213. package/types/packages/components/cascader/src/cascader.vue.d.ts +8 -8
  214. package/types/packages/components/checkbox/index.d.ts +217 -217
  215. package/types/packages/components/checkbox/src/checkbox-group.vue.d.ts +217 -217
  216. package/types/packages/components/checkbox/src/checkbox.d.ts +56 -56
  217. package/types/packages/components/drawer/index.d.ts +5 -5
  218. package/types/packages/components/drawer/src/components/second-confirmation/index.d.ts +3 -3
  219. package/types/packages/components/drawer/src/components/second-confirmation/src/second-confirmation.vue.d.ts +3 -3
  220. package/types/packages/components/drawer/src/drawer.vue.d.ts +5 -5
  221. package/types/packages/components/easy-cron/index.d.ts +95 -95
  222. package/types/packages/components/easy-cron/src/components/easy-cron-inner.vue.d.ts +88 -88
  223. package/types/packages/components/easy-cron/src/components/easy-cron-modal.vue.d.ts +88 -88
  224. package/types/packages/components/easy-cron/src/easy-cron.vue.d.ts +95 -95
  225. package/types/packages/components/form/index.d.ts +142 -142
  226. package/types/packages/components/form/src/components/form-component.vue.d.ts +1 -1
  227. package/types/packages/components/form/src/config/form.d.ts +56 -56
  228. package/types/packages/components/form/src/form.vue.d.ts +141 -141
  229. package/types/packages/components/index.d.ts +3 -0
  230. package/types/packages/components/input/index.d.ts +33 -33
  231. package/types/packages/components/input/src/input.vue.d.ts +33 -33
  232. package/types/packages/components/key-value/index.d.ts +678 -678
  233. package/types/packages/components/key-value/src/components/key-value-item.vue.d.ts +226 -226
  234. package/types/packages/components/key-value/src/key-value.vue.d.ts +678 -678
  235. package/types/packages/components/modal/index.d.ts +1 -1
  236. package/types/packages/components/modal/src/modal.vue.d.ts +1 -1
  237. package/types/packages/components/new-drawer/index.d.ts +732 -0
  238. package/types/packages/components/new-drawer/src/drawer.d.ts +60 -0
  239. package/types/packages/components/new-drawer/src/drawer.vue.d.ts +725 -0
  240. package/types/packages/components/new-modal/index.d.ts +2340 -0
  241. package/types/packages/components/new-modal/src/modal.d.ts +58 -0
  242. package/types/packages/components/new-modal/src/modal.vue.d.ts +2333 -0
  243. package/types/packages/components/rich-text-editor/index.d.ts +1 -1
  244. package/types/packages/components/rich-text-editor/src/rich-text-editor.vue.d.ts +1 -1
  245. package/types/packages/components/select/index.d.ts +4 -4
  246. package/types/packages/components/select/src/select.vue.d.ts +4 -4
  247. package/types/packages/components/select-group/index.d.ts +1 -1
  248. package/types/packages/components/select-group/src/select-group.d.ts +1 -1
  249. package/types/packages/components/select-group/src/select-group.vue.d.ts +1 -1
  250. package/types/packages/components/table/index.d.ts +7 -6
  251. package/types/packages/components/table/src/components/header-search.vue.d.ts +1 -0
  252. package/types/packages/components/table/src/components/main-table.vue.d.ts +2 -2
  253. package/types/packages/components/table/src/config/table.d.ts +2 -2
  254. package/types/packages/components/table/src/table.vue.d.ts +7 -6
  255. package/types/packages/components/textarea/index.d.ts +5 -5
  256. package/types/packages/components/textarea/src/textarea.vue.d.ts +5 -5
  257. package/types/packages/components/tooltip/index.d.ts +4 -4
  258. package/types/packages/components/tooltip/src/tooltip.d.ts +1 -1
  259. package/types/packages/components/tooltip/src/tooltip.vue.d.ts +4 -4
  260. package/types/packages/components/tree-search/index.d.ts +1 -1
  261. package/types/packages/components/tree-search/src/tree-search.vue.d.ts +1 -1
  262. package/types/packages/components/upload-drag/index.d.ts +2 -2
  263. package/types/packages/components/upload-drag/src/upload-drag.vue.d.ts +2 -2
  264. package/types/packages/hooks/index.d.ts +1 -0
  265. package/types/packages/hooks/use-scroll/index.d.ts +7 -0
  266. package/types/packages/index.d.ts +3 -1
@@ -0,0 +1,113 @@
1
+ import { ref, watch, onUnmounted } from 'vue';
2
+
3
+ "use strict";
4
+ function useScroll() {
5
+ const scrollRef = ref();
6
+ const scrollPosition = ref();
7
+ const isHasScrollBar = ref(false);
8
+ let observer;
9
+ let timer;
10
+ const handleScroll = (event) => {
11
+ const target = event.target;
12
+ getSrcollPosition(target);
13
+ };
14
+ const getSrcollPosition = (target) => {
15
+ if (target.scrollHeight > target.offsetHeight) {
16
+ isHasScrollBar.value = true;
17
+ } else {
18
+ isHasScrollBar.value = false;
19
+ }
20
+ if (!!target.scrollTop) {
21
+ if (target.scrollTop + target.offsetHeight >= target.scrollHeight - 1) {
22
+ scrollPosition.value = "bottom";
23
+ } else {
24
+ scrollPosition.value = "scrolling";
25
+ }
26
+ } else {
27
+ scrollPosition.value = "top";
28
+ }
29
+ };
30
+ watch(
31
+ scrollRef,
32
+ () => {
33
+ if (scrollRef.value) {
34
+ timer = setTimeout(() => {
35
+ if (scrollRef.value.scrollHeight > scrollRef.value.offsetHeight) {
36
+ isHasScrollBar.value = true;
37
+ }
38
+ }, 10);
39
+ scrollRef.value.addEventListener("scroll", handleScroll);
40
+ }
41
+ },
42
+ {
43
+ immediate: true,
44
+ deep: true
45
+ }
46
+ );
47
+ const handleWindowResize = () => {
48
+ getSrcollPosition(scrollRef.value);
49
+ };
50
+ watch(
51
+ scrollRef,
52
+ () => {
53
+ if (scrollRef.value) {
54
+ window.addEventListener("resize", handleWindowResize);
55
+ }
56
+ },
57
+ {
58
+ immediate: true,
59
+ deep: true
60
+ }
61
+ );
62
+ watch(
63
+ scrollRef,
64
+ () => {
65
+ if (scrollRef.value) {
66
+ if (!observer) {
67
+ observer = new MutationObserver(function(mutations) {
68
+ mutations.forEach(function() {
69
+ if (scrollRef.value.scrollHeight > scrollRef.value.offsetHeight) {
70
+ isHasScrollBar.value = true;
71
+ }
72
+ scrollRef.value.addEventListener("scroll", handleScroll);
73
+ });
74
+ });
75
+ const config = {
76
+ childList: true,
77
+ // 观察直接子节点
78
+ subtree: true
79
+ // 及其更低的后代节点
80
+ };
81
+ observer.observe(scrollRef.value, config);
82
+ }
83
+ }
84
+ },
85
+ {
86
+ immediate: true,
87
+ deep: true
88
+ }
89
+ );
90
+ onUnmounted(() => {
91
+ if (scrollRef.value) {
92
+ scrollRef.value?.removeEventListener("scroll", handleScroll);
93
+ }
94
+ });
95
+ onUnmounted(() => {
96
+ window.removeEventListener("resize", handleWindowResize);
97
+ });
98
+ onUnmounted(() => {
99
+ if (observer) {
100
+ observer.disconnect();
101
+ }
102
+ });
103
+ onUnmounted(() => {
104
+ if (timer) {
105
+ clearTimeout(timer);
106
+ timer = null;
107
+ }
108
+ });
109
+ return { scrollRef, isHasScrollBar, scrollPosition };
110
+ }
111
+
112
+ export { useScroll };
113
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-scroll/index.ts"],"sourcesContent":["/**\n * @description: 用于监听滚动行为/window的resize监听/滚动区域内的dom动态增删dom来添加阴影\n * @return {HTMLElement} elementRef 要滚动监听的dom\n * @return {scrollPosition} IScrollPosition 监听的位置\n */\nimport { onUnmounted, ref, watch } from 'vue'\n\ntype IScrollPosition = 'top' | 'scrolling' | 'bottom' // 滚动到最顶部、滚动中、滚动到最底部\nexport function useScroll() {\n const scrollRef = ref<HTMLElement>() // 监听滚动的dom\n const scrollPosition = ref<IScrollPosition>() // 滚动到的位置\n const isHasScrollBar = ref(false) // 是否有滚动条\n let observer: MutationObserver // 监听dom内容发生变化\n let timer\n\n // 滚动事件\n const handleScroll = (event: Event) => {\n const target = event.target as HTMLElement\n getSrcollPosition(target)\n }\n // 判断滚动位置\n const getSrcollPosition = (target: HTMLElement) => {\n // 判断是否有滚动体条\n if (target.scrollHeight > target.offsetHeight) {\n isHasScrollBar.value = true\n } else {\n isHasScrollBar.value = false\n }\n if (!!target.scrollTop) {\n // 有0.5px的误差 故-1\n if (target.scrollTop + target.offsetHeight >= target.scrollHeight - 1) {\n // 在最底部\n scrollPosition.value = 'bottom'\n } else {\n // 滚动中\n scrollPosition.value = 'scrolling'\n }\n } else {\n // 在最顶部\n scrollPosition.value = 'top'\n }\n }\n\n // dom挂载完成的监听滚动事件\n watch(\n scrollRef,\n () => {\n if (scrollRef.value) {\n // 防止子元素没有加载出来没有高度\n timer = setTimeout(() => {\n if (scrollRef.value!.scrollHeight > scrollRef.value!.offsetHeight) {\n isHasScrollBar.value = true\n }\n }, 10)\n scrollRef.value.addEventListener('scroll', handleScroll)\n }\n },\n {\n immediate: true,\n deep: true\n }\n )\n\n // 监听window的resize事件\n const handleWindowResize = () => {\n getSrcollPosition(scrollRef.value!)\n }\n // 监听window的resize\n watch(\n scrollRef,\n () => {\n if (scrollRef.value) {\n window.addEventListener('resize', handleWindowResize)\n }\n },\n {\n immediate: true,\n deep: true\n }\n )\n\n // 监视对 DOM 树所做更改的能力(对dom增删改等)\n watch(\n scrollRef,\n () => {\n if (scrollRef.value) {\n if (!observer) {\n observer = new MutationObserver(function (mutations) {\n mutations.forEach(function () {\n // 检查容器的高度变化\n if (\n scrollRef.value!.scrollHeight > scrollRef.value!.offsetHeight\n ) {\n isHasScrollBar.value = true\n }\n scrollRef.value!.addEventListener('scroll', handleScroll)\n })\n })\n // 配置MutationObserver,监听子节点的变化\n const config = {\n childList: true, // 观察直接子节点\n subtree: true // 及其更低的后代节点\n }\n // 开始监听容器的变化\n observer.observe(scrollRef.value!, config)\n }\n }\n },\n {\n immediate: true,\n deep: true\n }\n )\n\n // 卸载滚动事件\n onUnmounted(() => {\n if (scrollRef.value) {\n scrollRef.value?.removeEventListener('scroll', handleScroll)\n }\n })\n // 卸载停止resize\n onUnmounted(() => {\n window.removeEventListener('resize', handleWindowResize)\n })\n // 组件卸载停止监听\n onUnmounted(() => {\n if (observer) {\n observer.disconnect()\n }\n })\n\n // 清空定时器\n onUnmounted(() => {\n if (timer) {\n clearTimeout(timer)\n timer = null\n }\n })\n\n return { scrollRef, isHasScrollBar, scrollPosition }\n}\n"],"names":[],"mappings":"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"}