el-plus2 0.0.0

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 (299) hide show
  1. package/dist/index.full.js +2204 -0
  2. package/dist/index.full.min.js +2 -0
  3. package/dist/index.full.min.js.map +1 -0
  4. package/dist/index.full.min.mjs +2 -0
  5. package/dist/index.full.min.mjs.map +1 -0
  6. package/dist/index.full.mjs +2176 -0
  7. package/env.d.ts +17 -0
  8. package/es/components/buttons/index.d.ts +359 -0
  9. package/es/components/buttons/index.mjs +8 -0
  10. package/es/components/buttons/index.mjs.map +1 -0
  11. package/es/components/buttons/src/buttons-vue.d.ts +142 -0
  12. package/es/components/buttons/src/buttons-vue.mjs +70 -0
  13. package/es/components/buttons/src/buttons-vue.mjs.map +1 -0
  14. package/es/components/buttons/src/buttons.d.ts +57 -0
  15. package/es/components/buttons/src/buttons.mjs +23 -0
  16. package/es/components/buttons/src/buttons.mjs.map +1 -0
  17. package/es/components/form/index.d.ts +291 -0
  18. package/es/components/form/index.mjs +10 -0
  19. package/es/components/form/index.mjs.map +1 -0
  20. package/es/components/form/src/form-item-vue.d.ts +135 -0
  21. package/es/components/form/src/form-item-vue.mjs +40 -0
  22. package/es/components/form/src/form-item-vue.mjs.map +1 -0
  23. package/es/components/form/src/form-item.d.ts +68 -0
  24. package/es/components/form/src/form-item.mjs +33 -0
  25. package/es/components/form/src/form-item.mjs.map +1 -0
  26. package/es/components/form/src/form.d.ts +66 -0
  27. package/es/components/form/src/form.mjs +50 -0
  28. package/es/components/form/src/form.mjs.map +1 -0
  29. package/es/components/form/src/form.vue.d.ts +161 -0
  30. package/es/components/form/src/form.vue.mjs +6 -0
  31. package/es/components/form/src/form.vue.mjs.map +1 -0
  32. package/es/components/form/src/form.vue2.mjs +124 -0
  33. package/es/components/form/src/form.vue2.mjs.map +1 -0
  34. package/es/components/form/src/hooks/use-form-item.d.ts +12 -0
  35. package/es/components/form/src/hooks/use-form-item.mjs +97 -0
  36. package/es/components/form/src/hooks/use-form-item.mjs.map +1 -0
  37. package/es/components/form/src/hooks/use-form.d.ts +25 -0
  38. package/es/components/form/src/hooks/use-form.mjs +53 -0
  39. package/es/components/form/src/hooks/use-form.mjs.map +1 -0
  40. package/es/components/index.d.ts +6 -0
  41. package/es/components/index.mjs +9 -0
  42. package/es/components/index.mjs.map +1 -0
  43. package/es/components/input/index.d.ts +468 -0
  44. package/es/components/input/index.mjs +8 -0
  45. package/es/components/input/index.mjs.map +1 -0
  46. package/es/components/input/src/input.d.ts +122 -0
  47. package/es/components/input/src/input.mjs +28 -0
  48. package/es/components/input/src/input.mjs.map +1 -0
  49. package/es/components/input/src/input.vue.d.ts +268 -0
  50. package/es/components/input/src/input.vue.mjs +6 -0
  51. package/es/components/input/src/input.vue.mjs.map +1 -0
  52. package/es/components/input/src/input.vue2.mjs +144 -0
  53. package/es/components/input/src/input.vue2.mjs.map +1 -0
  54. package/es/components/searchListPage/index.d.ts +8583 -0
  55. package/es/components/searchListPage/index.mjs +8 -0
  56. package/es/components/searchListPage/index.mjs.map +1 -0
  57. package/es/components/searchListPage/src/searchListPage.d.ts +64 -0
  58. package/es/components/searchListPage/src/searchListPage.mjs +61 -0
  59. package/es/components/searchListPage/src/searchListPage.mjs.map +1 -0
  60. package/es/components/searchListPage/src/searchListPage.vue.d.ts +2760 -0
  61. package/es/components/searchListPage/src/searchListPage.vue.mjs +6 -0
  62. package/es/components/searchListPage/src/searchListPage.vue.mjs.map +1 -0
  63. package/es/components/searchListPage/src/searchListPage.vue2.mjs +99 -0
  64. package/es/components/searchListPage/src/searchListPage.vue2.mjs.map +1 -0
  65. package/es/components/searchListPage/src/use-search-list-page.d.ts +2671 -0
  66. package/es/components/searchListPage/src/use-search-list-page.mjs +177 -0
  67. package/es/components/searchListPage/src/use-search-list-page.mjs.map +1 -0
  68. package/es/components/select/index.d.ts +664 -0
  69. package/es/components/select/index.mjs +8 -0
  70. package/es/components/select/index.mjs.map +1 -0
  71. package/es/components/select/src/select.d.ts +283 -0
  72. package/es/components/select/src/select.mjs +47 -0
  73. package/es/components/select/src/select.mjs.map +1 -0
  74. package/es/components/select/src/select.vue.d.ts +384 -0
  75. package/es/components/select/src/select.vue.mjs +6 -0
  76. package/es/components/select/src/select.vue.mjs.map +1 -0
  77. package/es/components/select/src/select.vue2.mjs +113 -0
  78. package/es/components/select/src/select.vue2.mjs.map +1 -0
  79. package/es/components/select/src/use-select.d.ts +12 -0
  80. package/es/components/select/src/use-select.mjs +87 -0
  81. package/es/components/select/src/use-select.mjs.map +1 -0
  82. package/es/components/table/index.d.ts +2975 -0
  83. package/es/components/table/index.mjs +8 -0
  84. package/es/components/table/index.mjs.map +1 -0
  85. package/es/components/table/src/table.d.ts +781 -0
  86. package/es/components/table/src/table.mjs +81 -0
  87. package/es/components/table/src/table.mjs.map +1 -0
  88. package/es/components/table/src/table.vue.d.ts +1708 -0
  89. package/es/components/table/src/table.vue.mjs +6 -0
  90. package/es/components/table/src/table.vue.mjs.map +1 -0
  91. package/es/components/table/src/table.vue2.mjs +204 -0
  92. package/es/components/table/src/table.vue2.mjs.map +1 -0
  93. package/es/components/table/src/use-table.d.ts +241 -0
  94. package/es/components/table/src/use-table.mjs +260 -0
  95. package/es/components/table/src/use-table.mjs.map +1 -0
  96. package/es/components.d.ts +3 -0
  97. package/es/components.mjs +11 -0
  98. package/es/components.mjs.map +1 -0
  99. package/es/directives/index.d.ts +2 -0
  100. package/es/directives/index.mjs +3 -0
  101. package/es/directives/index.mjs.map +1 -0
  102. package/es/directives/permission/index.d.ts +6 -0
  103. package/es/directives/permission/index.mjs +55 -0
  104. package/es/directives/permission/index.mjs.map +1 -0
  105. package/es/directives/repeat-click/index.d.ts +16 -0
  106. package/es/directives/repeat-click/index.mjs +68 -0
  107. package/es/directives/repeat-click/index.mjs.map +1 -0
  108. package/es/directives/vite.config.d.ts +2 -0
  109. package/es/hooks/index.d.ts +1 -0
  110. package/es/hooks/index.mjs +2 -0
  111. package/es/hooks/index.mjs.map +1 -0
  112. package/es/hooks/use-request.d.ts +20 -0
  113. package/es/hooks/use-request.mjs +82 -0
  114. package/es/hooks/use-request.mjs.map +1 -0
  115. package/es/index.d.ts +9 -0
  116. package/es/index.mjs +24 -0
  117. package/es/index.mjs.map +1 -0
  118. package/es/package.json.mjs +4 -0
  119. package/es/package.json.mjs.map +1 -0
  120. package/es/theme-chalk/gulpfile.d.ts +0 -0
  121. package/es/theme-chalk/gulpfile.mjs +2 -0
  122. package/es/theme-chalk/gulpfile.mjs.map +1 -0
  123. package/es/types/env.d.mjs +2 -0
  124. package/es/types/env.d.mjs.map +1 -0
  125. package/es/types/global.d.mjs +2 -0
  126. package/es/types/global.d.mjs.map +1 -0
  127. package/es/types/vue-shim.d.mjs +2 -0
  128. package/es/types/vue-shim.d.mjs.map +1 -0
  129. package/es/utils/bem.d.ts +10 -0
  130. package/es/utils/bem.mjs +31 -0
  131. package/es/utils/bem.mjs.map +1 -0
  132. package/es/utils/cookie.d.ts +7 -0
  133. package/es/utils/cookie.mjs +29 -0
  134. package/es/utils/cookie.mjs.map +1 -0
  135. package/es/utils/env.d.ts +3 -0
  136. package/es/utils/env.mjs +27 -0
  137. package/es/utils/env.mjs.map +1 -0
  138. package/es/utils/props.d.ts +37 -0
  139. package/es/utils/props.mjs +66 -0
  140. package/es/utils/props.mjs.map +1 -0
  141. package/es/utils/request.d.ts +6 -0
  142. package/es/utils/request.mjs +157 -0
  143. package/es/utils/request.mjs.map +1 -0
  144. package/es/utils/type.d.ts +15 -0
  145. package/es/utils/type.mjs +2 -0
  146. package/es/utils/type.mjs.map +1 -0
  147. package/es/utils/with-install.d.ts +4 -0
  148. package/es/utils/with-install.mjs +9 -0
  149. package/es/utils/with-install.mjs.map +1 -0
  150. package/es/version.d.ts +1 -0
  151. package/es/version.mjs +4 -0
  152. package/es/version.mjs.map +1 -0
  153. package/global.d.ts +13 -0
  154. package/lib/components/buttons/index.d.ts +359 -0
  155. package/lib/components/buttons/index.js +13 -0
  156. package/lib/components/buttons/index.js.map +1 -0
  157. package/lib/components/buttons/src/buttons-vue.d.ts +142 -0
  158. package/lib/components/buttons/src/buttons-vue.js +74 -0
  159. package/lib/components/buttons/src/buttons-vue.js.map +1 -0
  160. package/lib/components/buttons/src/buttons.d.ts +57 -0
  161. package/lib/components/buttons/src/buttons.js +25 -0
  162. package/lib/components/buttons/src/buttons.js.map +1 -0
  163. package/lib/components/form/index.d.ts +291 -0
  164. package/lib/components/form/index.js +21 -0
  165. package/lib/components/form/index.js.map +1 -0
  166. package/lib/components/form/src/form-item-vue.d.ts +135 -0
  167. package/lib/components/form/src/form-item-vue.js +44 -0
  168. package/lib/components/form/src/form-item-vue.js.map +1 -0
  169. package/lib/components/form/src/form-item.d.ts +68 -0
  170. package/lib/components/form/src/form-item.js +36 -0
  171. package/lib/components/form/src/form-item.js.map +1 -0
  172. package/lib/components/form/src/form.d.ts +66 -0
  173. package/lib/components/form/src/form.js +55 -0
  174. package/lib/components/form/src/form.js.map +1 -0
  175. package/lib/components/form/src/form.vue.d.ts +161 -0
  176. package/lib/components/form/src/form.vue.js +10 -0
  177. package/lib/components/form/src/form.vue.js.map +1 -0
  178. package/lib/components/form/src/form.vue2.js +128 -0
  179. package/lib/components/form/src/form.vue2.js.map +1 -0
  180. package/lib/components/form/src/hooks/use-form-item.d.ts +12 -0
  181. package/lib/components/form/src/hooks/use-form-item.js +101 -0
  182. package/lib/components/form/src/hooks/use-form-item.js.map +1 -0
  183. package/lib/components/form/src/hooks/use-form.d.ts +25 -0
  184. package/lib/components/form/src/hooks/use-form.js +56 -0
  185. package/lib/components/form/src/hooks/use-form.js.map +1 -0
  186. package/lib/components/index.d.ts +6 -0
  187. package/lib/components/index.js +35 -0
  188. package/lib/components/index.js.map +1 -0
  189. package/lib/components/input/index.d.ts +468 -0
  190. package/lib/components/input/index.js +15 -0
  191. package/lib/components/input/index.js.map +1 -0
  192. package/lib/components/input/src/input.d.ts +122 -0
  193. package/lib/components/input/src/input.js +32 -0
  194. package/lib/components/input/src/input.js.map +1 -0
  195. package/lib/components/input/src/input.vue.d.ts +268 -0
  196. package/lib/components/input/src/input.vue.js +10 -0
  197. package/lib/components/input/src/input.vue.js.map +1 -0
  198. package/lib/components/input/src/input.vue2.js +148 -0
  199. package/lib/components/input/src/input.vue2.js.map +1 -0
  200. package/lib/components/searchListPage/index.d.ts +8583 -0
  201. package/lib/components/searchListPage/index.js +13 -0
  202. package/lib/components/searchListPage/index.js.map +1 -0
  203. package/lib/components/searchListPage/src/searchListPage.d.ts +64 -0
  204. package/lib/components/searchListPage/src/searchListPage.js +63 -0
  205. package/lib/components/searchListPage/src/searchListPage.js.map +1 -0
  206. package/lib/components/searchListPage/src/searchListPage.vue.d.ts +2760 -0
  207. package/lib/components/searchListPage/src/searchListPage.vue.js +10 -0
  208. package/lib/components/searchListPage/src/searchListPage.vue.js.map +1 -0
  209. package/lib/components/searchListPage/src/searchListPage.vue2.js +103 -0
  210. package/lib/components/searchListPage/src/searchListPage.vue2.js.map +1 -0
  211. package/lib/components/searchListPage/src/use-search-list-page.d.ts +2671 -0
  212. package/lib/components/searchListPage/src/use-search-list-page.js +179 -0
  213. package/lib/components/searchListPage/src/use-search-list-page.js.map +1 -0
  214. package/lib/components/select/index.d.ts +664 -0
  215. package/lib/components/select/index.js +17 -0
  216. package/lib/components/select/index.js.map +1 -0
  217. package/lib/components/select/src/select.d.ts +283 -0
  218. package/lib/components/select/src/select.js +53 -0
  219. package/lib/components/select/src/select.js.map +1 -0
  220. package/lib/components/select/src/select.vue.d.ts +384 -0
  221. package/lib/components/select/src/select.vue.js +10 -0
  222. package/lib/components/select/src/select.vue.js.map +1 -0
  223. package/lib/components/select/src/select.vue2.js +117 -0
  224. package/lib/components/select/src/select.vue2.js.map +1 -0
  225. package/lib/components/select/src/use-select.d.ts +12 -0
  226. package/lib/components/select/src/use-select.js +89 -0
  227. package/lib/components/select/src/use-select.js.map +1 -0
  228. package/lib/components/table/index.d.ts +2975 -0
  229. package/lib/components/table/index.js +16 -0
  230. package/lib/components/table/index.js.map +1 -0
  231. package/lib/components/table/src/table.d.ts +781 -0
  232. package/lib/components/table/src/table.js +86 -0
  233. package/lib/components/table/src/table.js.map +1 -0
  234. package/lib/components/table/src/table.vue.d.ts +1708 -0
  235. package/lib/components/table/src/table.vue.js +10 -0
  236. package/lib/components/table/src/table.vue.js.map +1 -0
  237. package/lib/components/table/src/table.vue2.js +208 -0
  238. package/lib/components/table/src/table.vue2.js.map +1 -0
  239. package/lib/components/table/src/use-table.d.ts +241 -0
  240. package/lib/components/table/src/use-table.js +264 -0
  241. package/lib/components/table/src/use-table.js.map +1 -0
  242. package/lib/components.d.ts +3 -0
  243. package/lib/components.js +15 -0
  244. package/lib/components.js.map +1 -0
  245. package/lib/directives/index.d.ts +2 -0
  246. package/lib/directives/index.js +10 -0
  247. package/lib/directives/index.js.map +1 -0
  248. package/lib/directives/permission/index.d.ts +6 -0
  249. package/lib/directives/permission/index.js +60 -0
  250. package/lib/directives/permission/index.js.map +1 -0
  251. package/lib/directives/repeat-click/index.d.ts +16 -0
  252. package/lib/directives/repeat-click/index.js +72 -0
  253. package/lib/directives/repeat-click/index.js.map +1 -0
  254. package/lib/directives/vite.config.d.ts +2 -0
  255. package/lib/hooks/index.d.ts +1 -0
  256. package/lib/hooks/index.js +8 -0
  257. package/lib/hooks/index.js.map +1 -0
  258. package/lib/hooks/use-request.d.ts +20 -0
  259. package/lib/hooks/use-request.js +84 -0
  260. package/lib/hooks/use-request.js.map +1 -0
  261. package/lib/index.d.ts +9 -0
  262. package/lib/index.js +53 -0
  263. package/lib/index.js.map +1 -0
  264. package/lib/package.json.js +6 -0
  265. package/lib/package.json.js.map +1 -0
  266. package/lib/theme-chalk/gulpfile.d.ts +0 -0
  267. package/lib/theme-chalk/gulpfile.js +3 -0
  268. package/lib/theme-chalk/gulpfile.js.map +1 -0
  269. package/lib/types/env.d.js +3 -0
  270. package/lib/types/env.d.js.map +1 -0
  271. package/lib/types/global.d.js +3 -0
  272. package/lib/types/global.d.js.map +1 -0
  273. package/lib/types/vue-shim.d.js +3 -0
  274. package/lib/types/vue-shim.d.js.map +1 -0
  275. package/lib/utils/bem.d.ts +10 -0
  276. package/lib/utils/bem.js +33 -0
  277. package/lib/utils/bem.js.map +1 -0
  278. package/lib/utils/cookie.d.ts +7 -0
  279. package/lib/utils/cookie.js +33 -0
  280. package/lib/utils/cookie.js.map +1 -0
  281. package/lib/utils/env.d.ts +3 -0
  282. package/lib/utils/env.js +30 -0
  283. package/lib/utils/env.js.map +1 -0
  284. package/lib/utils/props.d.ts +37 -0
  285. package/lib/utils/props.js +73 -0
  286. package/lib/utils/props.js.map +1 -0
  287. package/lib/utils/request.d.ts +6 -0
  288. package/lib/utils/request.js +162 -0
  289. package/lib/utils/request.js.map +1 -0
  290. package/lib/utils/type.d.ts +15 -0
  291. package/lib/utils/type.js +3 -0
  292. package/lib/utils/type.js.map +1 -0
  293. package/lib/utils/with-install.d.ts +4 -0
  294. package/lib/utils/with-install.js +11 -0
  295. package/lib/utils/with-install.js.map +1 -0
  296. package/lib/version.d.ts +1 -0
  297. package/lib/version.js +6 -0
  298. package/lib/version.js.map +1 -0
  299. package/package.json +27 -0
@@ -0,0 +1,264 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var useRequest = require('../../../hooks/use-request.js');
5
+ var props = require('../../../utils/props.js');
6
+
7
+ const useTable = (props) => {
8
+ const elFormRef = vue.useTemplateRef("elFormRef");
9
+ const elTableRef = vue.useTemplateRef("elTableRef");
10
+ const customData = vue.ref([]);
11
+ const {
12
+ loading,
13
+ requestFn
14
+ } = useRequest.useRequest({
15
+ api: props.api,
16
+ method: props.method,
17
+ reqData: props.reqData,
18
+ reqParams: props.reqParams,
19
+ reqBefore: props.reqBefore,
20
+ reqAfter: props.reqAfter,
21
+ cancelToken: true,
22
+ hooks: {
23
+ success(data) {
24
+ if (Array.isArray(data)) {
25
+ customData.value = data;
26
+ } else if (data && typeof data === "object") {
27
+ const rawData = data;
28
+ customData.value = rawData?.list || rawData?.data || [];
29
+ } else {
30
+ customData.value = [];
31
+ }
32
+ if (props.showPagination) {
33
+ pagination.total = (props.isFrontPage ? customData.value.length : data.total) || 0;
34
+ }
35
+ },
36
+ fail(error) {
37
+ console.error(error);
38
+ }
39
+ }
40
+ });
41
+ const search = (init = false, isPagination = false) => {
42
+ if (init) {
43
+ pagination.pageNo = 1;
44
+ }
45
+ if (isPagination && props.isFrontPage) {
46
+ const {
47
+ pageNo,
48
+ pageSize
49
+ } = pagination;
50
+ const data = customData.value.filter((item, index) => {
51
+ return index < pageNo * pageSize && index >= (pageNo - 1) * pageSize;
52
+ });
53
+ customData.value = data;
54
+ } else {
55
+ if (props.api) {
56
+ requestFn({
57
+ pageNo: pagination.pageNo,
58
+ pageSize: pagination.pageSize
59
+ });
60
+ } else if (props.data?.length) {
61
+ customData.value = props.data;
62
+ }
63
+ }
64
+ };
65
+ const {
66
+ pagination,
67
+ paginationProps
68
+ } = usePagination(props, search);
69
+ search(true);
70
+ const validate = () => {
71
+ return elFormRef.value.validate();
72
+ };
73
+ const resetFields = (props2) => {
74
+ return elFormRef.value.resetFields(props2);
75
+ };
76
+ const clearValidate = (props2) => {
77
+ return elFormRef.value.clearValidate(props2);
78
+ };
79
+ const formatActionButtons = (list, scope) => {
80
+ return list.map((item) => {
81
+ if (item.onClick) {
82
+ item.onClick = item.onClick.bind(null, scope);
83
+ }
84
+ return item;
85
+ });
86
+ };
87
+ return {
88
+ loading,
89
+ data: customData,
90
+ search,
91
+ pagination,
92
+ paginationProps,
93
+ validate,
94
+ resetFields,
95
+ clearValidate,
96
+ elFormRef,
97
+ elTableRef,
98
+ formatActionButtons
99
+ };
100
+ };
101
+ const usePagination = function(props, search) {
102
+ const pageSizes = [20, 50, 100, 200];
103
+ const pagination = vue.reactive({
104
+ total: 0,
105
+ pageNo: 1,
106
+ pageSize: pageSizes[0]
107
+ });
108
+ const paginationProps = vue.computed(() => {
109
+ const defaultPaginationProps = props.paginationProps || {};
110
+ const onSizeChange = defaultPaginationProps.onSizeChange;
111
+ const onCurrentChange = defaultPaginationProps.onCurrentChange;
112
+ return {
113
+ ...defaultPaginationProps,
114
+ pageSizes,
115
+ layout: "total, sizes, prev, pager, next, jumper",
116
+ onSizeChange: (value) => {
117
+ onSizeChange && onSizeChange(value);
118
+ search(true, true);
119
+ },
120
+ onCurrentChange: (value) => {
121
+ onCurrentChange && onCurrentChange(value);
122
+ search(false, true);
123
+ }
124
+ };
125
+ });
126
+ return {
127
+ pagination,
128
+ paginationProps
129
+ };
130
+ };
131
+ const useTableColumn = (props$1, tableData) => {
132
+ const columnProps = (column) => {
133
+ const attrs = {
134
+ align: column.align || props$1.align
135
+ // ...prepareEvents<TableEmits>(emit, tableEmits),
136
+ };
137
+ if (!column.renderHeader) {
138
+ let required = column.required;
139
+ if (typeof column.required === "function") {
140
+ required = column.required();
141
+ }
142
+ if (required) {
143
+ attrs["renderHeader"] = (data) => {
144
+ const {
145
+ column: column2
146
+ } = data;
147
+ return vue.createVNode("span", null, [vue.createVNode("span", {
148
+ "style": "color:var(--el-color-danger)"
149
+ }, [vue.createTextVNode(" * ")]), column2.label]);
150
+ };
151
+ }
152
+ }
153
+ if (column.headerRender) {
154
+ attrs.renderHeader = column.headerRender;
155
+ }
156
+ if (column.filter) {
157
+ const arr = tableData.value.map((item) => item[column.prop]);
158
+ attrs.filters = [...new Set(arr)].map((item) => {
159
+ return {
160
+ text: item,
161
+ value: item
162
+ };
163
+ });
164
+ attrs.filterMethod = (value, row) => {
165
+ return row[column.prop] === value;
166
+ };
167
+ }
168
+ return {
169
+ ...attrs,
170
+ ...props.prepareProps(column)
171
+ };
172
+ };
173
+ const columnList = vue.computed(() => {
174
+ return props$1.columns.filter((column) => {
175
+ if (props$1.linkProps.length) {
176
+ const linkColumn = props$1.linkProps.find((item) => item.prop === column.prop);
177
+ if (linkColumn) {
178
+ column.type = "EpButtons";
179
+ column.className = "table-column-link";
180
+ column.props = {
181
+ list: [linkColumn],
182
+ type: "text",
183
+ ...column.props
184
+ };
185
+ }
186
+ }
187
+ if ("show" in column) {
188
+ return typeof column.show === "function" ? column.show(column) : column.show;
189
+ } else if ("hide" in column) {
190
+ return typeof column.hide === "function" ? !column.hide(column) : !column.hide;
191
+ }
192
+ return true;
193
+ });
194
+ });
195
+ return {
196
+ columnProps,
197
+ columnList
198
+ };
199
+ };
200
+ const useTableFormItem = (props$1) => {
201
+ const formItemProps = (scope, item) => {
202
+ let required = item.required;
203
+ if (typeof required === "function") {
204
+ required = required();
205
+ }
206
+ if (item.cellRequired) {
207
+ required = item.cellRequired(scope);
208
+ }
209
+ let disabled = props$1.disabled;
210
+ if ("disabled" in item) {
211
+ if (typeof item.disabled === "function") {
212
+ disabled = item.disabled(scope);
213
+ } else {
214
+ disabled = item.disabled || false;
215
+ }
216
+ }
217
+ if (item.type === "EpSelect" && item.props) {
218
+ if ("options" in item.props && typeof item.props.options === "function") {
219
+ item.props.options = item.props.options(scope);
220
+ }
221
+ if ("disabledOption" in item.props && typeof item.props.disabledOption === "function") {
222
+ const disabledOption = item.props.disabledOption;
223
+ item.props.disabledOption = (...args) => disabledOption(...args, scope);
224
+ }
225
+ }
226
+ if (item.type === "EpButtons" && item.props) {
227
+ item.props.list.forEach((btnItem) => {
228
+ if (btnItem.prop) {
229
+ btnItem.name = scope.row[btnItem.prop];
230
+ }
231
+ if (btnItem.onClick) {
232
+ btnItem.onClick = btnItem.onClick.bind(null, scope);
233
+ }
234
+ });
235
+ }
236
+ for (const key in item) {
237
+ if (key.startsWith("on") && typeof item[key] === "function") {
238
+ const fn = item[key];
239
+ item[key] = (...args) => fn(...args, scope);
240
+ }
241
+ }
242
+ return {
243
+ ...props.prepareProps(item),
244
+ isShowLabel: false,
245
+ required,
246
+ hideRequiredAsterisk: "cellRequired" in item ? false : required,
247
+ prop: `table.${scope.$index}.${item.prop}`,
248
+ tableProp: item.prop,
249
+ // table里的表单需要绑定的prop
250
+ props: {
251
+ ...item.props,
252
+ disabled
253
+ }
254
+ };
255
+ };
256
+ return {
257
+ formItemProps
258
+ };
259
+ };
260
+
261
+ exports.useTable = useTable;
262
+ exports.useTableColumn = useTableColumn;
263
+ exports.useTableFormItem = useTableFormItem;
264
+ //# sourceMappingURL=use-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-table.js","sources":["../../../../../../packages/components/table/src/use-table.tsx"],"sourcesContent":["import type { FormInstance, TableInstance, FormItemProp } from 'element-plus'\nimport { ref, computed, type Ref, reactive, useTemplateRef } from 'vue'\nimport { useRequest } from '@el-plus/hooks/use-request'\nimport type { TableColumn, TableProps, TableScope } from './table'\nimport type { ButtonProps } from '@el-plus/components/buttons'\nimport {\n prepareProps,\n prepareEvents,\n prepareClassNames,\n prepareStyles,\n} from '@el-plus/utils/props'\nexport type ISearch = (init: boolean, isPagination?: boolean) => void\nexport const useTable = (props: TableProps) => {\n const elFormRef = useTemplateRef<FormInstance>('elFormRef')\n const elTableRef = useTemplateRef<TableInstance>('elTableRef')\n const customData = ref<Record<string, unknown>[]>([])\n const { loading, requestFn } = useRequest({\n api: props.api,\n method: props.method,\n reqData: props.reqData,\n reqParams: props.reqParams,\n reqBefore: props.reqBefore,\n reqAfter: props.reqAfter,\n cancelToken: true,\n hooks: {\n success(data) {\n if (Array.isArray(data)) {\n customData.value = data\n } else if (data && typeof data === 'object') {\n const rawData = data as Record<string, any>\n customData.value = rawData?.list || rawData?.data || []\n } else {\n customData.value = []\n }\n if (props.showPagination) {\n pagination.total =\n (props.isFrontPage\n ? customData.value.length\n : (data as { total: number }).total) || 0\n }\n },\n fail(error) {\n console.error(error)\n },\n },\n })\n // 加载下拉列表\n const search: ISearch = (init = false, isPagination = false) => {\n if (init) {\n pagination.pageNo = 1\n }\n // 前端分页\n if (isPagination && props.isFrontPage) {\n const { pageNo, pageSize } = pagination\n const data = customData.value.filter((item, index) => {\n return index < pageNo * pageSize && index >= (pageNo - 1) * pageSize\n })\n customData.value = data\n } else {\n if (props.api) {\n requestFn!({\n pageNo: pagination.pageNo,\n pageSize: pagination.pageSize,\n })\n } else if (props.data?.length) {\n customData.value = props.data\n }\n }\n }\n const { pagination, paginationProps } = usePagination(props, search)\n search(true)\n // 校验\n const validate = () => {\n return elFormRef.value!.validate()\n }\n // 重置校验\n const resetFields = (props: FormItemProp) => {\n return elFormRef.value!.resetFields(props)\n }\n // 清理某个字段的表单验证信息\n const clearValidate = (props: FormItemProp) => {\n return elFormRef.value!.clearValidate(props)\n }\n // 格式化操作按钮\n const formatActionButtons = (list: ButtonProps[], scope: TableScope) => {\n return list.map((item) => {\n if (item.onClick) {\n item.onClick = item.onClick.bind(null, scope)\n }\n return item\n })\n }\n\n return {\n loading,\n data: customData,\n search,\n pagination,\n paginationProps,\n validate,\n resetFields,\n clearValidate,\n elFormRef,\n elTableRef,\n formatActionButtons,\n }\n}\nconst usePagination = function (props: TableProps, search: ISearch) {\n const pageSizes = [20, 50, 100, 200]\n const pagination = reactive({\n total: 0,\n pageNo: 1,\n pageSize: pageSizes[0],\n })\n const paginationProps = computed(() => {\n const defaultPaginationProps = props.paginationProps || {}\n const onSizeChange = defaultPaginationProps.onSizeChange\n const onCurrentChange = defaultPaginationProps.onCurrentChange\n return {\n ...defaultPaginationProps,\n pageSizes,\n layout: 'total, sizes, prev, pager, next, jumper',\n onSizeChange: (value: number) => {\n onSizeChange && onSizeChange(value)\n search(true, true)\n },\n onCurrentChange: (value: number) => {\n onCurrentChange && onCurrentChange(value)\n search(false, true)\n },\n }\n })\n return {\n pagination,\n paginationProps,\n }\n}\n\nexport const useTableColumn = (\n props: TableProps,\n tableData: Ref<TableProps['data']>,\n) => {\n const columnProps = (column: TableColumn) => {\n const attrs = {\n align: column.align || props.align,\n // ...prepareEvents<TableEmits>(emit, tableEmits),\n } as TableColumn\n // console.log(attrs)\n\n if (!column.renderHeader) {\n let required = column.required\n if (typeof column.required === 'function') {\n required = column.required()\n }\n if (required) {\n attrs['renderHeader'] = (data) => {\n const { column } = data\n return (\n <span>\n <span style=\"color:var(--el-color-danger)\"> * </span>\n {column.label}\n </span>\n )\n }\n }\n }\n if (column.headerRender) {\n attrs.renderHeader = column.headerRender\n }\n if (column.filter) {\n const arr = tableData.value!.map((item) => item[column.prop!])\n attrs.filters = [...new Set(arr)].map((item) => {\n return {\n text: item,\n value: item,\n }\n })\n attrs.filterMethod = (value, row) => {\n return row[column.prop!] === value\n }\n }\n return {\n ...attrs,\n ...prepareProps(column),\n }\n }\n const columnList = computed(() => {\n return props.columns!.filter((column: TableColumn) => {\n if (props.linkProps!.length) {\n const linkColumn = props.linkProps!.find(\n (item) => item.prop === column.prop,\n )\n if (linkColumn) {\n column.type = 'EpButtons'\n column.className = 'table-column-link'\n column.props = {\n list: [linkColumn],\n type: 'text',\n ...column.props,\n }\n }\n }\n if ('show' in column) {\n return typeof column.show === 'function'\n ? column.show(column)\n : column.show\n } else if ('hide' in column) {\n return typeof column.hide === 'function'\n ? !column.hide(column)\n : !column.hide\n }\n return true\n })\n })\n return {\n columnProps,\n columnList,\n }\n}\n\nexport const useTableFormItem = (props: TableProps) => {\n const formItemProps = (scope: TableScope, item: TableColumn) => {\n let required = item.required\n if (typeof required === 'function') {\n required = required()\n }\n if (item.cellRequired) {\n required = item.cellRequired(scope)\n }\n let disabled = props.disabled\n if ('disabled' in item) {\n if (typeof item.disabled === 'function') {\n disabled = item.disabled(scope)\n } else {\n disabled = item.disabled || false\n }\n }\n if (item.type === 'EpSelect' && item.props) {\n if ('options' in item.props && typeof item.props.options === 'function') {\n item.props.options = item.props.options(scope)\n }\n if (\n 'disabledOption' in item.props &&\n typeof item.props.disabledOption === 'function'\n ) {\n const disabledOption = item.props.disabledOption\n item.props.disabledOption = (...args: unknown[]) =>\n disabledOption(...args, scope)\n }\n }\n\n if (item.type === 'EpButtons' && item.props) {\n item.props.list.forEach((btnItem: ButtonProps) => {\n if (btnItem.prop) {\n btnItem.name = scope.row[btnItem.prop] as string\n }\n if (btnItem.onClick) {\n btnItem.onClick = btnItem.onClick.bind(null, scope)\n }\n })\n }\n for (const key in item) {\n if (key.startsWith('on') && typeof item[key] === 'function') {\n const fn = item[key]\n item[key] = (...args: unknown[]) => fn(...args, scope)\n }\n }\n return {\n ...prepareProps(item),\n isShowLabel: false,\n required,\n hideRequiredAsterisk: 'cellRequired' in item ? false : required,\n prop: `table.${scope.$index}.${item.prop}`,\n tableProp: item.prop, // table里的表单需要绑定的prop\n props: {\n ...item.props,\n disabled,\n },\n }\n }\n return {\n formItemProps,\n }\n}\n"],"names":["useTable","props","elFormRef","useTemplateRef","elTableRef","customData","ref","loading","requestFn","useRequest","api","method","reqData","reqParams","reqBefore","reqAfter","cancelToken","hooks","success","data","Array","isArray","value","rawData","list","showPagination","pagination","total","isFrontPage","length","fail","error","console","search","init","isPagination","pageNo","pageSize","filter","item","index","paginationProps","usePagination","validate","resetFields","clearValidate","formatActionButtons","scope","map","onClick","bind","pageSizes","reactive","computed","defaultPaginationProps","onSizeChange","onCurrentChange","layout","useTableColumn","tableData","columnProps","column","attrs","align","renderHeader","required","_createVNode","_createTextVNode","label","headerRender","arr","prop","filters","Set","text","filterMethod","row","prepareProps","columnList","columns","linkProps","linkColumn","find","type","className","show","hide","useTableFormItem","formItemProps","cellRequired","disabled","options","disabledOption","args","forEach","btnItem","name","key","startsWith","fn","isShowLabel","hideRequiredAsterisk","$index","tableProp"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Plugin } from 'vue';
2
+ declare const _default: Plugin[];
3
+ export default _default;
@@ -0,0 +1,15 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var index = require('./components/buttons/index.js');
6
+ var index$1 = require('./components/form/index.js');
7
+ var index$2 = require('./components/input/index.js');
8
+ var index$3 = require('./components/searchListPage/index.js');
9
+ var index$4 = require('./components/select/index.js');
10
+ var index$5 = require('./components/table/index.js');
11
+
12
+ var components = [index.default, index$1.default, index$2.default, index$3.default, index$4.default, index$5.default];
13
+
14
+ exports.default = components;
15
+ //# sourceMappingURL=components.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.js","sources":["../../../packages/el-plus/components.ts"],"sourcesContent":["import type { Plugin } from 'vue'\nimport Buttons from '@el-plus/components/buttons'\nimport Form from '@el-plus/components/form'\nimport Input from '@el-plus/components/input'\nimport SearchListPage from '@el-plus/components/searchListPage'\nimport Select from '@el-plus/components/select'\nimport Table from '@el-plus/components/table'\n\nexport default [Buttons, Form, Input, SearchListPage, Select, Table] as Plugin[]\n"],"names":["Buttons","Form","Input","SearchListPage","Select","Table"],"mappings":";;;;;;;;;;;AAQA,iBAAe,CAACA,aAAA,EAASC,eAAA,EAAMC,eAAA,EAAOC,eAAA,EAAgBC,iBAAQC,eAAK,CAAA;;;;"}
@@ -0,0 +1,2 @@
1
+ export { default as vRepeatClick } from './repeat-click';
2
+ export { default as vPermission } from './permission';
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ var index = require('./repeat-click/index.js');
4
+ var index$1 = require('./permission/index.js');
5
+
6
+
7
+
8
+ exports.vRepeatClick = index.default;
9
+ exports.vPermission = index$1.default;
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,6 @@
1
+ import type { Directive } from 'vue';
2
+ declare const vPermisson: Directive<HTMLElement> & {
3
+ name: string;
4
+ };
5
+ export declare function checkPermission(permission: string, el: HTMLElement): Promise<boolean>;
6
+ export default vPermisson;
@@ -0,0 +1,60 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var request = require('../../utils/request.js');
6
+
7
+ const vPermisson = {
8
+ name: "permission",
9
+ mounted(el, binding) {
10
+ const { arg, value } = binding.value;
11
+ if (!arg && !value) {
12
+ return;
13
+ }
14
+ el.style.display = "none";
15
+ const permission = `${arg}:${value}`;
16
+ checkPermission(permission, el);
17
+ },
18
+ updated(el, binding) {
19
+ const { arg, value } = binding.value;
20
+ if (!arg && !value) {
21
+ if (el.style.display === "none") {
22
+ el.style.display = "";
23
+ }
24
+ return;
25
+ }
26
+ const permission = `${arg}:${value}`;
27
+ checkPermission(permission, el);
28
+ }
29
+ };
30
+ async function checkPermission(permission, el) {
31
+ const { data: roles = [] } = await queryRoles();
32
+ const hasPermission = roles.indexOf(permission) > -1;
33
+ if (!hasPermission) {
34
+ el && el.parentNode && el.parentNode.removeChild(el);
35
+ } else {
36
+ el.style.display = "";
37
+ }
38
+ return hasPermission;
39
+ }
40
+ let requestPromise = null;
41
+ async function queryRoles() {
42
+ try {
43
+ if (requestPromise) {
44
+ return requestPromise;
45
+ }
46
+ requestPromise = request.default({
47
+ url: "/api-u/api/saas/user/appButtonRoleList",
48
+ loading: true,
49
+ noErrorMsg: true
50
+ });
51
+ return requestPromise;
52
+ } catch (error) {
53
+ console.error(error);
54
+ return { data: [] };
55
+ }
56
+ }
57
+
58
+ exports.checkPermission = checkPermission;
59
+ exports.default = vPermisson;
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/directives/permission/index.ts"],"sourcesContent":["import type { Directive } from 'vue'\nimport request from '@el-plus/utils/request'\n\n// v-permisson:CGXQD:QXSP\nconst vPermisson: Directive<HTMLElement> & { name: string } = {\n name: 'permission',\n mounted(el, binding) {\n const { arg, value } = binding.value\n if (!arg && !value) {\n return\n }\n el.style.display = 'none'\n const permission = `${arg}:${value}`\n checkPermission(permission, el)\n },\n updated(el, binding) {\n const { arg, value } = binding.value\n if (!arg && !value) {\n if (el.style.display === 'none') {\n el.style.display = ''\n }\n return\n }\n const permission = `${arg}:${value}`\n checkPermission(permission, el)\n },\n}\n\nexport async function checkPermission(permission: string, el: HTMLElement) {\n const { data: roles = [] } = await queryRoles()\n const hasPermission = roles.indexOf(permission) > -1\n if (!hasPermission) {\n el && el.parentNode && el.parentNode.removeChild(el)\n } else {\n el.style.display = ''\n }\n return hasPermission\n}\ntype RequestPromise = Promise<{ data: string[] }>\nlet requestPromise: RequestPromise | null = null\nasync function queryRoles(): RequestPromise {\n try {\n if (requestPromise) {\n return requestPromise\n }\n requestPromise = request({\n url: '/api-u/api/saas/user/appButtonRoleList',\n loading: true,\n noErrorMsg: true,\n })\n return requestPromise\n } catch (error) {\n console.error(error)\n return { data: [] }\n }\n}\n\nexport default vPermisson\n"],"names":["request"],"mappings":";;;;;;AAIA,MAAM,UAAA,GAAwD;AAAA,EAC5D,IAAA,EAAM,YAAA;AAAA,EACN,OAAA,CAAQ,IAAI,OAAA,EAAS;AACnB,IAAA,MAAM,EAAE,GAAA,EAAK,KAAA,EAAM,GAAI,OAAA,CAAQ,KAAA;AAC/B,IAAA,IAAI,CAAC,GAAA,IAAO,CAAC,KAAA,EAAO;AAClB,MAAA;AAAA,IACF;AACA,IAAA,EAAA,CAAG,MAAM,OAAA,GAAU,MAAA;AACnB,IAAA,MAAM,UAAA,GAAa,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAClC,IAAA,eAAA,CAAgB,YAAY,EAAE,CAAA;AAAA,EAChC,CAAA;AAAA,EACA,OAAA,CAAQ,IAAI,OAAA,EAAS;AACnB,IAAA,MAAM,EAAE,GAAA,EAAK,KAAA,EAAM,GAAI,OAAA,CAAQ,KAAA;AAC/B,IAAA,IAAI,CAAC,GAAA,IAAO,CAAC,KAAA,EAAO;AAClB,MAAA,IAAI,EAAA,CAAG,KAAA,CAAM,OAAA,KAAY,MAAA,EAAQ;AAC/B,QAAA,EAAA,CAAG,MAAM,OAAA,GAAU,EAAA;AAAA,MACrB;AACA,MAAA;AAAA,IACF;AACA,IAAA,MAAM,UAAA,GAAa,CAAA,EAAG,GAAG,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAClC,IAAA,eAAA,CAAgB,YAAY,EAAE,CAAA;AAAA,EAChC;AACF;AAEA,eAAsB,eAAA,CAAgB,YAAoB,EAAA,EAAiB;AACzE,EAAA,MAAM,EAAE,IAAA,EAAM,KAAA,GAAQ,EAAC,EAAE,GAAI,MAAM,UAAA,EAAW;AAC9C,EAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA,GAAI,EAAA;AAClD,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA,EAAA,IAAM,EAAA,CAAG,UAAA,IAAc,EAAA,CAAG,UAAA,CAAW,YAAY,EAAE,CAAA;AAAA,EACrD,CAAA,MAAO;AACL,IAAA,EAAA,CAAG,MAAM,OAAA,GAAU,EAAA;AAAA,EACrB;AACA,EAAA,OAAO,aAAA;AACT;AAEA,IAAI,cAAA,GAAwC,IAAA;AAC5C,eAAe,UAAA,GAA6B;AAC1C,EAAA,IAAI;AACF,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,OAAO,cAAA;AAAA,IACT;AACA,IAAA,cAAA,GAAiBA,eAAA,CAAQ;AAAA,MACvB,GAAA,EAAK,wCAAA;AAAA,MACL,OAAA,EAAS,IAAA;AAAA,MACT,UAAA,EAAY;AAAA,KACb,CAAA;AACD,IAAA,OAAO,cAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AACnB,IAAA,OAAO,EAAE,IAAA,EAAM,EAAC,EAAE;AAAA,EACpB;AACF;;;;;"}
@@ -0,0 +1,16 @@
1
+ import type { Directive } from 'vue';
2
+ declare const SCOPE = "_RepeatClick";
3
+ export interface RepeatClickEl extends HTMLElement {
4
+ [SCOPE]: null | {
5
+ start?: (evt: MouseEvent) => void;
6
+ };
7
+ }
8
+ export interface RepeatClickOptions {
9
+ immediate?: boolean;
10
+ delay?: number;
11
+ handler: (...args: unknown[]) => unknown;
12
+ }
13
+ declare const vRepeatClick: Directive<RepeatClickEl, RepeatClickOptions> & {
14
+ name: string;
15
+ };
16
+ export default vRepeatClick;
@@ -0,0 +1,72 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const SCOPE = "_RepeatClick";
6
+ const vRepeatClick = {
7
+ name: "repeatClick",
8
+ // 在绑定元素的 attribute 前
9
+ // 或事件监听器应用前调用
10
+ // created(el, binding, vnode) {
11
+ // // el.style.display = 'none'
12
+ // // 下面会介绍各个参数的细节
13
+ // console.log('created', el, binding, vnode)
14
+ // },
15
+ // 在元素被插入到 DOM 前调用
16
+ beforeMount(el, binding) {
17
+ const { delay = 300, immediate } = typeof binding.value === "object" ? binding.value : {};
18
+ const handler = typeof binding.value === "object" ? binding.value.handler : binding.value;
19
+ let isPending = false;
20
+ let timer;
21
+ const start = (e) => {
22
+ if (e.button !== 0) return;
23
+ timer && clearTimeout(timer);
24
+ timer = setTimeout(() => {
25
+ if (immediate) {
26
+ isPending = false;
27
+ } else {
28
+ handler?.(e);
29
+ }
30
+ }, delay);
31
+ if (immediate) {
32
+ if (isPending) {
33
+ return;
34
+ }
35
+ isPending = true;
36
+ handler?.(e);
37
+ }
38
+ };
39
+ el[SCOPE] = { start };
40
+ el.addEventListener("click", start);
41
+ },
42
+ // // 在绑定元素的父组件
43
+ // // 及他自己的所有子节点都挂载完成后调用
44
+ // mounted(el, binding, vnode) {
45
+ // console.log('mounted', el, binding, vnode)
46
+ // },
47
+ // // 绑定元素的父组件更新前调用
48
+ // beforeUpdate(el, binding, vnode, prevVnode) {
49
+ // console.log('beforeUpdate', el, binding, vnode, prevVnode)
50
+ // },
51
+ // // 在绑定元素的父组件
52
+ // // 及他自己的所有子节点都更新后调用
53
+ // updated(el, binding, vnode, prevVnode) {
54
+ // console.log('updated', el, binding, vnode, prevVnode)
55
+ // },
56
+ // // 绑定元素的父组件卸载前调用
57
+ // beforeUnmount(el, binding, vnode) {
58
+ // console.log('beforeUnmount', el, binding, vnode)
59
+ // },
60
+ // 绑定元素的父组件卸载后调用
61
+ unmounted(el) {
62
+ if (!el[SCOPE]) return;
63
+ const { start } = el[SCOPE];
64
+ if (start) {
65
+ el.removeEventListener("mousedown", start);
66
+ }
67
+ el[SCOPE] = null;
68
+ }
69
+ };
70
+
71
+ exports.default = vRepeatClick;
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../packages/directives/repeat-click/index.ts"],"sourcesContent":["import type { Directive } from 'vue'\nconst SCOPE = '_RepeatClick'\nexport interface RepeatClickEl extends HTMLElement {\n [SCOPE]: null | {\n start?: (evt: MouseEvent) => void\n }\n}\nexport interface RepeatClickOptions {\n immediate?: boolean\n delay?: number\n handler: (...args: unknown[]) => unknown\n}\nconst vRepeatClick: Directive<RepeatClickEl, RepeatClickOptions> & {\n name: string\n} = {\n name: 'repeatClick',\n // 在绑定元素的 attribute 前\n // 或事件监听器应用前调用\n // created(el, binding, vnode) {\n // // el.style.display = 'none'\n // // 下面会介绍各个参数的细节\n // console.log('created', el, binding, vnode)\n // },\n\n // 在元素被插入到 DOM 前调用\n beforeMount(el, binding) {\n const { delay = 300, immediate } =\n typeof binding.value === 'object' ? binding.value : {}\n const handler =\n typeof binding.value === 'object' ? binding.value.handler : binding.value\n let isPending = false\n let timer: ReturnType<typeof setTimeout>\n const start = (e: MouseEvent) => {\n if (e.button !== 0) return // 只处理左键点击\n timer && clearTimeout(timer)\n timer = setTimeout(() => {\n if (immediate) {\n isPending = false\n } else {\n handler?.(e)\n }\n }, delay)\n if (immediate) {\n if (isPending) {\n return\n }\n isPending = true\n handler?.(e)\n }\n }\n el[SCOPE] = { start }\n el.addEventListener('click', start)\n },\n // // 在绑定元素的父组件\n // // 及他自己的所有子节点都挂载完成后调用\n // mounted(el, binding, vnode) {\n // console.log('mounted', el, binding, vnode)\n // },\n // // 绑定元素的父组件更新前调用\n // beforeUpdate(el, binding, vnode, prevVnode) {\n // console.log('beforeUpdate', el, binding, vnode, prevVnode)\n // },\n // // 在绑定元素的父组件\n // // 及他自己的所有子节点都更新后调用\n // updated(el, binding, vnode, prevVnode) {\n // console.log('updated', el, binding, vnode, prevVnode)\n // },\n // // 绑定元素的父组件卸载前调用\n // beforeUnmount(el, binding, vnode) {\n // console.log('beforeUnmount', el, binding, vnode)\n // },\n // 绑定元素的父组件卸载后调用\n unmounted(el) {\n if (!el[SCOPE]) return\n const { start } = el[SCOPE]\n\n if (start) {\n el.removeEventListener('mousedown', start)\n }\n el[SCOPE] = null\n },\n}\nexport default vRepeatClick\n"],"names":[],"mappings":";;;;AACA,MAAM,KAAA,GAAQ,cAAA;AAWd,MAAM,YAAA,GAEF;AAAA,EACF,IAAA,EAAM,aAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUN,WAAA,CAAY,IAAI,OAAA,EAAS;AACvB,IAAA,MAAM,EAAE,KAAA,GAAQ,GAAA,EAAK,SAAA,EAAU,GAC7B,OAAO,OAAA,CAAQ,KAAA,KAAU,QAAA,GAAW,OAAA,CAAQ,KAAA,GAAQ,EAAC;AACvD,IAAA,MAAM,OAAA,GACJ,OAAO,OAAA,CAAQ,KAAA,KAAU,WAAW,OAAA,CAAQ,KAAA,CAAM,UAAU,OAAA,CAAQ,KAAA;AACtE,IAAA,IAAI,SAAA,GAAY,KAAA;AAChB,IAAA,IAAI,KAAA;AACJ,IAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,KAAkB;AAC/B,MAAA,IAAI,CAAA,CAAE,WAAW,CAAA,EAAG;AACpB,MAAA,KAAA,IAAS,aAAa,KAAK,CAAA;AAC3B,MAAA,KAAA,GAAQ,WAAW,MAAM;AACvB,QAAA,IAAI,SAAA,EAAW;AACb,UAAA,SAAA,GAAY,KAAA;AAAA,QACd,CAAA,MAAO;AACL,UAAA,OAAA,GAAU,CAAC,CAAA;AAAA,QACb;AAAA,MACF,GAAG,KAAK,CAAA;AACR,MAAA,IAAI,SAAA,EAAW;AACb,QAAA,IAAI,SAAA,EAAW;AACb,UAAA;AAAA,QACF;AACA,QAAA,SAAA,GAAY,IAAA;AACZ,QAAA,OAAA,GAAU,CAAC,CAAA;AAAA,MACb;AAAA,IACF,CAAA;AACA,IAAA,EAAA,CAAG,KAAK,CAAA,GAAI,EAAE,KAAA,EAAM;AACpB,IAAA,EAAA,CAAG,gBAAA,CAAiB,SAAS,KAAK,CAAA;AAAA,EACpC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBA,UAAU,EAAA,EAAI;AACZ,IAAA,IAAI,CAAC,EAAA,CAAG,KAAK,CAAA,EAAG;AAChB,IAAA,MAAM,EAAE,KAAA,EAAM,GAAI,EAAA,CAAG,KAAK,CAAA;AAE1B,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,EAAA,CAAG,mBAAA,CAAoB,aAAa,KAAK,CAAA;AAAA,IAC3C;AACA,IAAA,EAAA,CAAG,KAAK,CAAA,GAAI,IAAA;AAAA,EACd;AACF;;;;"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
@@ -0,0 +1 @@
1
+ export * from './use-request';
@@ -0,0 +1,8 @@
1
+ 'use strict';
2
+
3
+ var useRequest = require('./use-request.js');
4
+
5
+
6
+
7
+ exports.useRequest = useRequest.useRequest;
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,20 @@
1
+ import { type Ref } from 'vue';
2
+ import type { Api, ReqAfter, ReqBefore, Method } from 'el-plus/es/utils/type';
3
+ type UseRequest = (config: {
4
+ api?: Api;
5
+ method?: Method;
6
+ reqData?: Record<string, unknown>;
7
+ reqParams?: Record<string, unknown>;
8
+ reqBefore?: ReqBefore;
9
+ reqAfter?: ReqAfter;
10
+ cancelToken?: boolean;
11
+ hooks?: {
12
+ success?: (data: unknown) => void;
13
+ fail?: (error: unknown) => void;
14
+ };
15
+ }) => {
16
+ loading?: Ref<boolean>;
17
+ requestFn?: (data?: Record<string, unknown>) => Promise<void>;
18
+ };
19
+ export declare const useRequest: UseRequest;
20
+ export {};
@@ -0,0 +1,84 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var request = require('../utils/request.js');
5
+
6
+ const useRequest = ({
7
+ api,
8
+ method,
9
+ reqData,
10
+ reqParams,
11
+ reqBefore,
12
+ reqAfter,
13
+ cancelToken,
14
+ hooks
15
+ }) => {
16
+ if (!api) return {};
17
+ const loading = vue.ref(false);
18
+ let cancelRequest;
19
+ let apiFn;
20
+ if (typeof api === "string") {
21
+ const config = {
22
+ url: api,
23
+ method
24
+ };
25
+ if (cancelToken) {
26
+ config.cancelRequest = (cancel) => {
27
+ cancelRequest = cancel;
28
+ };
29
+ }
30
+ apiFn = (data = {}, params) => {
31
+ if (config.method === "get") {
32
+ config.params = data;
33
+ } else {
34
+ config.data = data;
35
+ config.params = params;
36
+ }
37
+ config.data = {
38
+ ...reqData,
39
+ ...config.data
40
+ };
41
+ config.params = {
42
+ ...reqParams,
43
+ ...config.params
44
+ };
45
+ if (data.$query) {
46
+ config.data[data.$query] = data.$searchValue;
47
+ delete data.$searchValue;
48
+ }
49
+ if (reqBefore) {
50
+ reqBefore(config);
51
+ }
52
+ return request.default(config);
53
+ };
54
+ } else {
55
+ apiFn = api;
56
+ }
57
+ const requestFn = async (data = {}) => {
58
+ if (loading.value && !cancelToken) return;
59
+ loading.value = true;
60
+ try {
61
+ cancelRequest && cancelRequest();
62
+ const res = await apiFn(data);
63
+ if (reqAfter) {
64
+ reqAfter(res);
65
+ }
66
+ if (hooks?.success) {
67
+ hooks.success(res.data);
68
+ }
69
+ } catch (error) {
70
+ if (hooks?.fail) {
71
+ hooks.fail(error);
72
+ }
73
+ } finally {
74
+ loading.value = false;
75
+ }
76
+ };
77
+ return {
78
+ loading,
79
+ requestFn
80
+ };
81
+ };
82
+
83
+ exports.useRequest = useRequest;
84
+ //# sourceMappingURL=use-request.js.map