@bdsoft/element 1.1.25 → 1.1.27

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 (183) hide show
  1. package/dist/BdElement.js +22921 -0
  2. package/dist/cjs/_virtual/_plugin-vue_export-helper.cjs +9 -0
  3. package/dist/cjs/global/index.cjs +14 -0
  4. package/dist/cjs/index.cjs +18276 -0
  5. package/dist/cjs/node_modules/.pnpm/splitpanes@4.0.4_vue@3.5.25_typescript@5.4.5_/node_modules/splitpanes/dist/splitpanes.css.cjs +1 -0
  6. package/dist/cjs/src/assets/css/element.scss.cjs +1 -0
  7. package/dist/cjs/src/assets/css/layout.scss.cjs +1 -0
  8. package/dist/cjs/src/assets/css/tailwind.scss.cjs +1 -0
  9. package/dist/cjs/src/assets/images/ff.png.cjs +3 -0
  10. package/dist/cjs/src/assets/images/menu/add.png.cjs +3 -0
  11. package/dist/cjs/src/assets/images/menu/del.png.cjs +3 -0
  12. package/dist/cjs/src/assets/images/menu/edit.png.cjs +3 -0
  13. package/dist/cjs/src/components/3dcloudwords/index.cjs +344 -0
  14. package/dist/cjs/src/components/3dcloudwords/index.vue.cjs +125 -0
  15. package/dist/cjs/src/components/badge/index.vue.cjs +96 -0
  16. package/dist/cjs/src/components/badge/index.vue2.cjs +1 -0
  17. package/dist/cjs/src/components/basic/Finish.vue.cjs +55 -0
  18. package/dist/cjs/src/components/basic/Finish.vue2.cjs +1 -0
  19. package/dist/cjs/src/components/button/index.vue.cjs +44 -0
  20. package/dist/cjs/src/components/carousel/index.vue.cjs +97 -0
  21. package/dist/cjs/src/components/carousel/index.vue2.cjs +1 -0
  22. package/dist/cjs/src/components/chartconfig/index.vue.cjs +327 -0
  23. package/dist/cjs/src/components/contextMenu/index.vue.cjs +152 -0
  24. package/dist/cjs/src/components/contextMenu/index.vue2.cjs +1 -0
  25. package/dist/cjs/src/components/countup/countUp.cjs +165 -0
  26. package/dist/cjs/src/components/countup/index.vue.cjs +116 -0
  27. package/dist/cjs/src/components/empty/assets/build.png.cjs +3 -0
  28. package/dist/cjs/src/components/empty/assets/emptybg.gif.cjs +3 -0
  29. package/dist/cjs/src/components/empty/assets/emptybg.png.cjs +3 -0
  30. package/dist/cjs/src/components/empty/assets/emptybg2.jpg.cjs +3 -0
  31. package/dist/cjs/src/components/empty/assets/emptybg3.jpg.cjs +3 -0
  32. package/dist/cjs/src/components/empty/assets/wuxiao.png.cjs +3 -0
  33. package/dist/cjs/src/components/empty/assets/wuxiao.webp.cjs +3 -0
  34. package/dist/cjs/src/components/empty/building.vue.cjs +95 -0
  35. package/dist/cjs/src/components/empty/building.vue2.cjs +1 -0
  36. package/dist/cjs/src/components/empty/empty.vue.cjs +108 -0
  37. package/dist/cjs/src/components/empty/empty.vue2.cjs +1 -0
  38. package/dist/cjs/src/components/empty/invalid.vue.cjs +20 -0
  39. package/dist/cjs/src/components/empty/invalid.vue2.cjs +1 -0
  40. package/dist/cjs/src/components/error/Error.vue.cjs +47 -0
  41. package/dist/cjs/src/components/error/Error.vue2.cjs +1 -0
  42. package/dist/cjs/src/components/form/Form.vue.cjs +92 -0
  43. package/dist/cjs/src/components/form/FormItem.vue.cjs +107 -0
  44. package/dist/cjs/src/components/form/FormItem.vue2.cjs +3 -0
  45. package/dist/cjs/src/components/layout/bar.vue.cjs +45 -0
  46. package/dist/cjs/src/components/layout/bar.vue2.cjs +1 -0
  47. package/dist/cjs/src/components/layout/layout1.vue.cjs +79 -0
  48. package/dist/cjs/src/components/layout/layout2.vue.cjs +174 -0
  49. package/dist/cjs/src/components/layout/layout2.vue2.cjs +1 -0
  50. package/dist/cjs/src/components/layout/layout3.vue.cjs +111 -0
  51. package/dist/cjs/src/components/layout/layout3.vue2.cjs +1 -0
  52. package/dist/cjs/src/components/layout/layout4.vue.cjs +70 -0
  53. package/dist/cjs/src/components/layout/layout4.vue2.cjs +1 -0
  54. package/dist/cjs/src/components/layout/nav.vue.cjs +222 -0
  55. package/dist/cjs/src/components/layout/nav.vue2.cjs +1 -0
  56. package/dist/cjs/src/components/layout/nav.vue3.cjs +1 -0
  57. package/dist/cjs/src/components/loading/index.vue.cjs +26 -0
  58. package/dist/cjs/src/components/loading/index.vue2.cjs +1 -0
  59. package/dist/cjs/src/components/notice/NoticeList.vue.cjs +202 -0
  60. package/dist/cjs/src/components/notice/NoticeList.vue2.cjs +1 -0
  61. package/dist/cjs/src/components/notice/NoticeListPaging.vue.cjs +343 -0
  62. package/dist/cjs/src/components/notice/NoticeListPaging.vue2.cjs +1 -0
  63. package/dist/cjs/src/components/notice/NoticeView.vue.cjs +134 -0
  64. package/dist/cjs/src/components/notice/NoticeView.vue2.cjs +1 -0
  65. package/dist/cjs/src/components/pagination/index.vue.cjs +97 -0
  66. package/dist/cjs/src/components/pagination/index.vue2.cjs +1 -0
  67. package/dist/cjs/src/components/pagination/scroll-to.cjs +40 -0
  68. package/dist/cjs/src/components/progress/bar.vue.cjs +64 -0
  69. package/dist/cjs/src/components/progress/bar.vue2.cjs +1 -0
  70. package/dist/cjs/src/components/progress/progress.vue.cjs +51 -0
  71. package/dist/cjs/src/components/progress/progress.vue2.cjs +1 -0
  72. package/dist/cjs/src/components/statisticalCount/index.vue.cjs +88 -0
  73. package/dist/cjs/src/components/statisticalCount/index.vue2.cjs +1 -0
  74. package/dist/cjs/src/components/username/index.vue.cjs +59 -0
  75. package/dist/cjs/src/components/username/index.vue2.cjs +1 -0
  76. package/dist/cjs/src/index.cjs +68 -0
  77. package/dist/cjs/src/utils/coms/load.cjs +23 -0
  78. package/dist/cjs/src/utils/func.cjs +48 -0
  79. package/dist/cjs/src/utils/hookDialog.cjs +27 -0
  80. package/dist/cjs/src/utils/hookPage.cjs +42 -0
  81. package/dist/cjs/src/utils/message.cjs +164 -0
  82. package/dist/cjs/src/xm_components/HeadSearch/hook/hookSearch.cjs +64 -0
  83. package/dist/cjs/src/xm_components/HeadSearch/index.vue.cjs +139 -0
  84. package/dist/cjs/src/xm_components/HeadSearch/index.vue2.cjs +1 -0
  85. package/dist/cjs/src/xm_components/Milestone/index.vue.cjs +88 -0
  86. package/dist/cjs/src/xm_components/Milestone/index.vue2.cjs +1 -0
  87. package/dist/cjs/src/xm_components/MultiStatisticalCard/index.vue.cjs +88 -0
  88. package/dist/cjs/src/xm_components/MultiStatisticalCard/index.vue2.cjs +1 -0
  89. package/dist/cjs/src/xm_components/StatisticalCard/index.vue.cjs +163 -0
  90. package/dist/cjs/src/xm_components/StatisticalCard/index.vue2.cjs +1 -0
  91. package/dist/es/_virtual/_plugin-vue_export-helper.js +10 -0
  92. package/dist/es/global/index.js +14 -0
  93. package/dist/es/index.js +18247 -0
  94. package/dist/es/node_modules/.pnpm/splitpanes@4.0.4_vue@3.5.25_typescript@5.4.5_/node_modules/splitpanes/dist/splitpanes.css.js +1 -0
  95. package/dist/es/src/assets/css/element.scss.js +1 -0
  96. package/dist/es/src/assets/css/layout.scss.js +1 -0
  97. package/dist/es/src/assets/css/tailwind.scss.js +1 -0
  98. package/dist/es/src/assets/images/ff.png.js +4 -0
  99. package/dist/es/src/assets/images/menu/add.png.js +4 -0
  100. package/dist/es/src/assets/images/menu/del.png.js +4 -0
  101. package/dist/es/src/assets/images/menu/edit.png.js +4 -0
  102. package/dist/es/src/components/3dcloudwords/index.js +345 -0
  103. package/dist/es/src/components/3dcloudwords/index.vue.js +126 -0
  104. package/dist/es/src/components/badge/index.vue.js +97 -0
  105. package/dist/es/src/components/badge/index.vue2.js +1 -0
  106. package/dist/es/src/components/basic/Finish.vue.js +56 -0
  107. package/dist/es/src/components/basic/Finish.vue2.js +1 -0
  108. package/dist/es/src/components/button/index.vue.js +45 -0
  109. package/dist/es/src/components/carousel/index.vue.js +98 -0
  110. package/dist/es/src/components/carousel/index.vue2.js +1 -0
  111. package/dist/es/src/components/chartconfig/index.vue.js +328 -0
  112. package/dist/es/src/components/contextMenu/index.vue.js +153 -0
  113. package/dist/es/src/components/contextMenu/index.vue2.js +1 -0
  114. package/dist/es/src/components/countup/countUp.js +165 -0
  115. package/dist/es/src/components/countup/index.vue.js +117 -0
  116. package/dist/es/src/components/empty/assets/build.png.js +4 -0
  117. package/dist/es/src/components/empty/assets/emptybg.gif.js +4 -0
  118. package/dist/es/src/components/empty/assets/emptybg.png.js +4 -0
  119. package/dist/es/src/components/empty/assets/emptybg2.jpg.js +4 -0
  120. package/dist/es/src/components/empty/assets/emptybg3.jpg.js +4 -0
  121. package/dist/es/src/components/empty/assets/wuxiao.png.js +4 -0
  122. package/dist/es/src/components/empty/assets/wuxiao.webp.js +4 -0
  123. package/dist/es/src/components/empty/building.vue.js +95 -0
  124. package/dist/es/src/components/empty/building.vue2.js +1 -0
  125. package/dist/es/src/components/empty/empty.vue.js +108 -0
  126. package/dist/es/src/components/empty/empty.vue2.js +1 -0
  127. package/dist/es/src/components/empty/invalid.vue.js +21 -0
  128. package/dist/es/src/components/empty/invalid.vue2.js +1 -0
  129. package/dist/es/src/components/error/Error.vue.js +48 -0
  130. package/dist/es/src/components/error/Error.vue2.js +1 -0
  131. package/dist/es/src/components/form/Form.vue.js +93 -0
  132. package/dist/es/src/components/form/FormItem.vue.js +108 -0
  133. package/dist/es/src/components/form/FormItem.vue2.js +4 -0
  134. package/dist/es/src/components/layout/bar.vue.js +46 -0
  135. package/dist/es/src/components/layout/bar.vue2.js +1 -0
  136. package/dist/es/src/components/layout/layout1.vue.js +80 -0
  137. package/dist/es/src/components/layout/layout2.vue.js +175 -0
  138. package/dist/es/src/components/layout/layout2.vue2.js +1 -0
  139. package/dist/es/src/components/layout/layout3.vue.js +112 -0
  140. package/dist/es/src/components/layout/layout3.vue2.js +1 -0
  141. package/dist/es/src/components/layout/layout4.vue.js +71 -0
  142. package/dist/es/src/components/layout/layout4.vue2.js +1 -0
  143. package/dist/es/src/components/layout/nav.vue.js +223 -0
  144. package/dist/es/src/components/layout/nav.vue2.js +1 -0
  145. package/dist/es/src/components/layout/nav.vue3.js +1 -0
  146. package/dist/es/src/components/loading/index.vue.js +27 -0
  147. package/dist/es/src/components/loading/index.vue2.js +1 -0
  148. package/dist/es/src/components/notice/NoticeList.vue.js +203 -0
  149. package/dist/es/src/components/notice/NoticeList.vue2.js +1 -0
  150. package/dist/es/src/components/notice/NoticeListPaging.vue.js +344 -0
  151. package/dist/es/src/components/notice/NoticeListPaging.vue2.js +1 -0
  152. package/dist/es/src/components/notice/NoticeView.vue.js +135 -0
  153. package/dist/es/src/components/notice/NoticeView.vue2.js +1 -0
  154. package/dist/es/src/components/pagination/index.vue.js +98 -0
  155. package/dist/es/src/components/pagination/index.vue2.js +1 -0
  156. package/dist/es/src/components/pagination/scroll-to.js +40 -0
  157. package/dist/es/src/components/progress/bar.vue.js +65 -0
  158. package/dist/es/src/components/progress/bar.vue2.js +1 -0
  159. package/dist/es/src/components/progress/progress.vue.js +52 -0
  160. package/dist/es/src/components/progress/progress.vue2.js +1 -0
  161. package/dist/es/src/components/statisticalCount/index.vue.js +89 -0
  162. package/dist/es/src/components/statisticalCount/index.vue2.js +1 -0
  163. package/dist/es/src/components/username/index.vue.js +60 -0
  164. package/dist/es/src/components/username/index.vue2.js +1 -0
  165. package/dist/es/src/index.js +68 -0
  166. package/dist/es/src/utils/coms/load.js +24 -0
  167. package/dist/es/src/utils/func.js +48 -0
  168. package/dist/es/src/utils/hookDialog.js +27 -0
  169. package/dist/es/src/utils/hookPage.js +42 -0
  170. package/dist/es/src/utils/message.js +153 -0
  171. package/dist/es/src/xm_components/HeadSearch/hook/hookSearch.js +65 -0
  172. package/dist/es/src/xm_components/HeadSearch/index.vue.js +140 -0
  173. package/dist/es/src/xm_components/HeadSearch/index.vue2.js +1 -0
  174. package/dist/es/src/xm_components/Milestone/index.vue.js +89 -0
  175. package/dist/es/src/xm_components/Milestone/index.vue2.js +1 -0
  176. package/dist/es/src/xm_components/MultiStatisticalCard/index.vue.js +89 -0
  177. package/dist/es/src/xm_components/MultiStatisticalCard/index.vue2.js +1 -0
  178. package/dist/es/src/xm_components/StatisticalCard/index.vue.js +164 -0
  179. package/dist/es/src/xm_components/StatisticalCard/index.vue2.js +1 -0
  180. package/global/index.js +1 -1
  181. package/package.json +26 -10
  182. package/index.html +0 -13
  183. package/vite.config.js +0 -51
@@ -0,0 +1,153 @@
1
+ const { ref: ref, computed: computed, provide: provide, onMounted: onMounted, onUnmounted: onUnmounted, watch: watch, createElementBlock: createElementBlock, openBlock: openBlock, renderSlot: renderSlot, createBlock: createBlock, Teleport: Teleport, createVNode: createVNode, Transition: Transition, withCtx: withCtx, createCommentVNode: createCommentVNode, normalizeStyle: normalizeStyle, createElementVNode: createElementVNode, Fragment: Fragment, renderList: renderList, createTextVNode: createTextVNode, toDisplayString: toDisplayString, normalizeClass: normalizeClass } = Vue;
2
+ import "./index.vue2.js";
3
+ import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.js";
4
+ const _hoisted_1 = { class: "context-menu-container" };
5
+ const _hoisted_2 = ["onClick"];
6
+ const _sfc_main = {
7
+ __name: "index",
8
+ props: {
9
+ options: {
10
+ type: Array,
11
+ default: () => []
12
+ }
13
+ },
14
+ emits: ["menu-click", "show-menu", "hide-menu"],
15
+ setup(__props, { expose: __expose, emit: __emit }) {
16
+ const props = __props;
17
+ const emit = __emit;
18
+ const menuRef = ref(null);
19
+ const isMenuVisible = ref(false);
20
+ const menuX = ref(0);
21
+ const menuY = ref(0);
22
+ const currentItem = ref(null);
23
+ const menuOptions = computed(() => props.options);
24
+ const currentItemData = ref(null);
25
+ provide("showContextMenu", (itemData, event) => {
26
+ event.preventDefault();
27
+ currentItemData.value = itemData;
28
+ const { clientX, clientY } = event;
29
+ const menuWidth = 180;
30
+ const menuHeight = props.options.length * 40;
31
+ let x = clientX;
32
+ if (x + menuWidth > window.innerWidth) {
33
+ x = Math.max(0, window.innerWidth - menuWidth);
34
+ }
35
+ let y = clientY;
36
+ if (y + menuHeight > window.innerHeight) {
37
+ y = Math.max(0, window.innerHeight - menuHeight);
38
+ }
39
+ menuX.value = x;
40
+ menuY.value = y;
41
+ isMenuVisible.value = true;
42
+ });
43
+ const showMenu = (item, event) => {
44
+ event.preventDefault();
45
+ currentItem.value = item;
46
+ const { x, y } = calculateMenuPosition(event.clientX, event.clientY);
47
+ menuX.value = x;
48
+ menuY.value = y;
49
+ isMenuVisible.value = true;
50
+ emit("show-menu", { item, x, y });
51
+ };
52
+ const calculateMenuPosition = (clientX, clientY) => {
53
+ const menuWidth = 180;
54
+ const menuHeight = 40 * menuOptions.value.length;
55
+ let x = clientX;
56
+ let y = clientY;
57
+ if (x + menuWidth > window.innerWidth) {
58
+ x = window.innerWidth - menuWidth;
59
+ }
60
+ if (y + menuHeight > window.innerHeight) {
61
+ y = window.innerHeight - menuHeight;
62
+ }
63
+ return { x, y };
64
+ };
65
+ const handleMenuItemClick = (item, index2) => {
66
+ isMenuVisible.value = false;
67
+ emit("menu-click", { item, index: index2, data: currentItem.value });
68
+ if (typeof item.click === "function") {
69
+ item.click(currentItem.value);
70
+ }
71
+ };
72
+ const handleEnter = (el) => {
73
+ el.style.opacity = "0";
74
+ el.style.transform = "translateY(-10px)";
75
+ el.style.transition = "opacity 0.2s, transform 0.2s";
76
+ setTimeout(() => {
77
+ el.style.opacity = "1";
78
+ el.style.transform = "translateY(0)";
79
+ }, 10);
80
+ };
81
+ const closeMenuOnClickOutside = (event) => {
82
+ if (menuRef.value && !menuRef.value.contains(event.target)) {
83
+ isMenuVisible.value = false;
84
+ emit("hide-menu");
85
+ }
86
+ };
87
+ const closeMenuOnEsc = (event) => {
88
+ if (event.key === "Escape") {
89
+ isMenuVisible.value = false;
90
+ emit("hide-menu");
91
+ }
92
+ };
93
+ onMounted(() => {
94
+ document.addEventListener("click", closeMenuOnClickOutside);
95
+ document.addEventListener("keydown", closeMenuOnEsc);
96
+ });
97
+ onUnmounted(() => {
98
+ document.removeEventListener("click", closeMenuOnClickOutside);
99
+ document.removeEventListener("keydown", closeMenuOnEsc);
100
+ });
101
+ __expose({
102
+ showMenu
103
+ });
104
+ watch(() => props.options, (newOptions) => {
105
+ if (isMenuVisible.value && menuRef.value) {
106
+ const menuHeight = 40 * newOptions.length;
107
+ menuRef.value.style.height = `${menuHeight}px`;
108
+ }
109
+ });
110
+ return (_ctx, _cache) => {
111
+ return openBlock(), createElementBlock("div", _hoisted_1, [
112
+ renderSlot(_ctx.$slots, "default", {}, void 0, true),
113
+ (openBlock(), createBlock(Teleport, { to: "body" }, [
114
+ createVNode(Transition, {
115
+ name: "menu-fade",
116
+ onEnter: handleEnter
117
+ }, {
118
+ default: withCtx(() => [
119
+ isMenuVisible.value ? (openBlock(), createElementBlock("div", {
120
+ key: 0,
121
+ class: "context-menu",
122
+ ref_key: "menuRef",
123
+ ref: menuRef,
124
+ style: normalizeStyle({ top: menuY.value + "px", left: menuX.value + "px" })
125
+ }, [
126
+ createElementVNode("ul", null, [
127
+ (openBlock(true), createElementBlock(Fragment, null, renderList(menuOptions.value, (item, index2) => {
128
+ return openBlock(), createElementBlock("li", {
129
+ key: index2,
130
+ class: "menu-item",
131
+ onClick: ($event) => handleMenuItemClick(item, index2)
132
+ }, [
133
+ createTextVNode(toDisplayString(item.label) + " ", 1),
134
+ item.icon ? (openBlock(), createElementBlock("span", {
135
+ key: 0,
136
+ class: normalizeClass(item.icon)
137
+ }, null, 2)) : createCommentVNode("", true)
138
+ ], 8, _hoisted_2);
139
+ }), 128))
140
+ ])
141
+ ], 4)) : createCommentVNode("", true)
142
+ ]),
143
+ _: 1
144
+ })
145
+ ]))
146
+ ]);
147
+ };
148
+ }
149
+ };
150
+ const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-d29d1e99"]]);
151
+ export {
152
+ index as default
153
+ };
@@ -0,0 +1,165 @@
1
+ var CountUp = function(target, startVal, endVal, decimals, duration, options) {
2
+ var lastTime = 0;
3
+ var vendors = ["webkit", "moz", "ms", "o"];
4
+ for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
5
+ window.requestAnimationFrame = window[vendors[x] + "RequestAnimationFrame"];
6
+ window.cancelAnimationFrame = window[vendors[x] + "CancelAnimationFrame"] || window[vendors[x] + "CancelRequestAnimationFrame"];
7
+ }
8
+ if (!window.requestAnimationFrame) {
9
+ window.requestAnimationFrame = function(callback, element) {
10
+ var currTime = (/* @__PURE__ */ new Date()).getTime();
11
+ var timeToCall = Math.max(0, 16 - (currTime - lastTime));
12
+ var id = window.setTimeout(function() {
13
+ callback(currTime + timeToCall);
14
+ }, timeToCall);
15
+ lastTime = currTime + timeToCall;
16
+ return id;
17
+ };
18
+ }
19
+ if (!window.cancelAnimationFrame) {
20
+ window.cancelAnimationFrame = function(id) {
21
+ clearTimeout(id);
22
+ };
23
+ }
24
+ var self = this;
25
+ self.options = {
26
+ useEasing: true,
27
+ // toggle easing
28
+ useGrouping: true,
29
+ // 1,000,000 vs 1000000
30
+ separator: ",",
31
+ // character to use as a separator
32
+ decimal: ".",
33
+ // character to use as a decimal
34
+ easingFn: null,
35
+ // optional custom easing closure function, default is Robert Penner's easeOutExpo
36
+ formattingFn: null
37
+ // optional custom formatting function, default is self.formatNumber below
38
+ };
39
+ for (var key in options) {
40
+ if (options.hasOwnProperty(key)) {
41
+ self.options[key] = options[key];
42
+ }
43
+ }
44
+ if (self.options.separator === "") {
45
+ self.options.useGrouping = false;
46
+ }
47
+ if (!self.options.prefix)
48
+ self.options.prefix = "";
49
+ if (!self.options.suffix)
50
+ self.options.suffix = "";
51
+ self.d = typeof target === "string" ? document.getElementById(target) : target;
52
+ self.startVal = Number(startVal);
53
+ self.endVal = Number(endVal);
54
+ self.countDown = self.startVal > self.endVal;
55
+ self.frameVal = self.startVal;
56
+ self.decimals = Math.max(0, decimals || 0);
57
+ self.dec = Math.pow(10, self.decimals);
58
+ self.duration = Number(duration) * 1e3 || 2e3;
59
+ self.formatNumber = function(nStr) {
60
+ nStr = nStr.toFixed(self.decimals);
61
+ nStr += "";
62
+ var x2, x1, x22, rgx;
63
+ x2 = nStr.split(".");
64
+ x1 = x2[0];
65
+ x22 = x2.length > 1 ? self.options.decimal + x2[1] : "";
66
+ rgx = /(\d+)(\d{3})/;
67
+ if (self.options.useGrouping) {
68
+ while (rgx.test(x1)) {
69
+ x1 = x1.replace(rgx, "$1" + self.options.separator + "$2");
70
+ }
71
+ }
72
+ return self.options.prefix + x1 + x22 + self.options.suffix;
73
+ };
74
+ self.easeOutExpo = function(t, b, c, d) {
75
+ return c * (-Math.pow(2, -10 * t / d) + 1) * 1024 / 1023 + b;
76
+ };
77
+ self.easingFn = self.options.easingFn ? self.options.easingFn : self.easeOutExpo;
78
+ self.formattingFn = self.options.formattingFn ? self.options.formattingFn : self.formatNumber;
79
+ self.version = function() {
80
+ return "1.7.1";
81
+ };
82
+ self.printValue = function(value) {
83
+ var _a, _b, _c;
84
+ var result = self.formattingFn(value);
85
+ if (((_a = self.d) == null ? void 0 : _a.tagName) === "INPUT") {
86
+ this.d.value = result;
87
+ } else if (((_b = self.d) == null ? void 0 : _b.tagName) === "text" || ((_c = self.d) == null ? void 0 : _c.tagName) === "tspan") {
88
+ this.d.textContent = result;
89
+ } else {
90
+ this.d.innerHTML = result;
91
+ }
92
+ };
93
+ self.count = function(timestamp) {
94
+ if (!self.startTime) {
95
+ self.startTime = timestamp;
96
+ }
97
+ self.timestamp = timestamp;
98
+ var progress = timestamp - self.startTime;
99
+ self.remaining = self.duration - progress;
100
+ if (self.options.useEasing) {
101
+ if (self.countDown) {
102
+ self.frameVal = self.startVal - self.easingFn(progress, 0, self.startVal - self.endVal, self.duration);
103
+ } else {
104
+ self.frameVal = self.easingFn(progress, self.startVal, self.endVal - self.startVal, self.duration);
105
+ }
106
+ } else {
107
+ if (self.countDown) {
108
+ self.frameVal = self.startVal - (self.startVal - self.endVal) * (progress / self.duration);
109
+ } else {
110
+ self.frameVal = self.startVal + (self.endVal - self.startVal) * (progress / self.duration);
111
+ }
112
+ }
113
+ if (self.countDown) {
114
+ self.frameVal = self.frameVal < self.endVal ? self.endVal : self.frameVal;
115
+ } else {
116
+ self.frameVal = self.frameVal > self.endVal ? self.endVal : self.frameVal;
117
+ }
118
+ self.frameVal = Math.round(self.frameVal * self.dec) / self.dec;
119
+ self.printValue(self.frameVal);
120
+ if (progress < self.duration) {
121
+ self.rAF = requestAnimationFrame(self.count);
122
+ } else {
123
+ if (self.callback) {
124
+ self.callback();
125
+ }
126
+ }
127
+ };
128
+ self.start = function(callback) {
129
+ self.callback = callback;
130
+ self.rAF = requestAnimationFrame(self.count);
131
+ return false;
132
+ };
133
+ self.pauseResume = function() {
134
+ if (!self.paused) {
135
+ self.paused = true;
136
+ cancelAnimationFrame(self.rAF);
137
+ } else {
138
+ self.paused = false;
139
+ delete self.startTime;
140
+ self.duration = self.remaining;
141
+ self.startVal = self.frameVal;
142
+ requestAnimationFrame(self.count);
143
+ }
144
+ };
145
+ self.reset = function() {
146
+ self.paused = false;
147
+ delete self.startTime;
148
+ self.startVal = startVal;
149
+ cancelAnimationFrame(self.rAF);
150
+ self.printValue(self.startVal);
151
+ };
152
+ self.update = function(newEndVal) {
153
+ cancelAnimationFrame(self.rAF);
154
+ self.paused = false;
155
+ delete self.startTime;
156
+ self.startVal = self.frameVal;
157
+ self.endVal = Number(newEndVal);
158
+ self.countDown = self.startVal > self.endVal;
159
+ self.rAF = requestAnimationFrame(self.count);
160
+ };
161
+ self.printValue(self.startVal);
162
+ };
163
+ export {
164
+ CountUp
165
+ };
@@ -0,0 +1,117 @@
1
+ const { ref: ref, watch: watch, onMounted: onMounted, nextTick: nextTick, createElementBlock: createElementBlock, openBlock: openBlock, createCommentVNode: createCommentVNode, createElementVNode: createElementVNode, renderSlot: renderSlot, toDisplayString: toDisplayString, normalizeStyle: normalizeStyle, normalizeClass: normalizeClass } = Vue;
2
+ import { CountUp } from "./countUp.js";
3
+ const _hoisted_1 = {
4
+ key: 0,
5
+ style: { "color": "#606266" }
6
+ };
7
+ const _hoisted_2 = ["id"];
8
+ const _sfc_main = {
9
+ __name: "index",
10
+ props: {
11
+ idName: {
12
+ type: String,
13
+ default: ""
14
+ },
15
+ // 标题显示
16
+ title: {
17
+ type: String,
18
+ default: ""
19
+ },
20
+ startVal: {
21
+ type: Number,
22
+ default: 0
23
+ },
24
+ endVal: {
25
+ type: Number,
26
+ default: 0
27
+ },
28
+ iconType: {
29
+ type: String,
30
+ default: ""
31
+ },
32
+ color: {
33
+ type: String,
34
+ default: "#3b3a3a"
35
+ // D9524E
36
+ },
37
+ introText: {
38
+ type: String,
39
+ default: ""
40
+ },
41
+ docTypeText: {
42
+ type: String,
43
+ default: ""
44
+ },
45
+ countSize: {
46
+ type: String,
47
+ default: `30px`
48
+ },
49
+ countWeight: {
50
+ type: Number,
51
+ default: 700
52
+ },
53
+ delay: {
54
+ type: Number,
55
+ default: 500
56
+ }
57
+ },
58
+ setup(__props) {
59
+ const props = __props;
60
+ const className = ref("");
61
+ function transformValue(val) {
62
+ let endVal = 0;
63
+ let unit = "";
64
+ if (val < 1e3) {
65
+ endVal = val;
66
+ } else if (val >= 1e3 && val < 1e6) {
67
+ endVal = parseInt(val / 1e3);
68
+ unit = "K+";
69
+ } else if (val >= 1e6 && val < 1e10) {
70
+ endVal = parseInt(val / 1e6);
71
+ unit = "M+";
72
+ } else {
73
+ endVal = parseInt(val / 1e9);
74
+ unit = "B+";
75
+ }
76
+ return {
77
+ val: endVal,
78
+ unit
79
+ };
80
+ }
81
+ let demo = {};
82
+ watch(() => props.endVal, (val) => {
83
+ const endVal = val;
84
+ if (demo.update) {
85
+ demo.update(endVal);
86
+ }
87
+ });
88
+ onMounted(() => {
89
+ nextTick(() => {
90
+ setTimeout(() => {
91
+ transformValue(props.endVal);
92
+ const endVal = props.endVal;
93
+ props.idName;
94
+ demo = new CountUp(props.idName, props.startVal, endVal, props.decimals, props.duration, props.options);
95
+ if (!demo.error) {
96
+ demo.start();
97
+ }
98
+ }, props.delay);
99
+ });
100
+ });
101
+ return (_ctx, _cache) => {
102
+ return openBlock(), createElementBlock("div", null, [
103
+ __props.title ? (openBlock(), createElementBlock("div", _hoisted_1, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
104
+ createElementVNode("div", {
105
+ class: normalizeClass(className.value),
106
+ style: normalizeStyle({ textAlign: "center", color: __props.color, fontSize: __props.countSize, fontWeight: __props.countWeight, fontFamily: "PingFang SC" })
107
+ }, [
108
+ createElementVNode("span", { id: __props.idName }, toDisplayString(__props.startVal), 9, _hoisted_2)
109
+ ], 6),
110
+ renderSlot(_ctx.$slots, "intro")
111
+ ]);
112
+ };
113
+ }
114
+ };
115
+ export {
116
+ _sfc_main as default
117
+ };