hy-dispatch-ui-v3 0.1.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 (232) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +3 -0
  3. package/dist/tailwind.css +1083 -0
  4. package/es/bussiness/index.mjs +2 -0
  5. package/es/bussiness/index.mjs.map +1 -0
  6. package/es/components/appConfirmDialog/appConfirmDialog.vue.mjs +204 -0
  7. package/es/components/appConfirmDialog/appConfirmDialog.vue.mjs.map +1 -0
  8. package/es/components/appConfirmDialog/appConfirmMethod.mjs +73 -0
  9. package/es/components/appConfirmDialog/appConfirmMethod.mjs.map +1 -0
  10. package/es/components/appConfirmDialog/index.mjs +8 -0
  11. package/es/components/appConfirmDialog/index.mjs.map +1 -0
  12. package/es/components/appConfirmDialog/style/appConfirmDialog.scss +5 -0
  13. package/es/components/appDatePicker/appDatePicker.vue.mjs +99 -0
  14. package/es/components/appDatePicker/appDatePicker.vue.mjs.map +1 -0
  15. package/es/components/appDatePicker/index.mjs +7 -0
  16. package/es/components/appDatePicker/index.mjs.map +1 -0
  17. package/es/components/appDatePicker/style/appDatePicker.scss +0 -0
  18. package/es/components/appForm/appForm.vue.mjs +331 -0
  19. package/es/components/appForm/appForm.vue.mjs.map +1 -0
  20. package/es/components/appForm/index.mjs +8 -0
  21. package/es/components/appForm/index.mjs.map +1 -0
  22. package/es/components/appForm/js/index.mjs +87 -0
  23. package/es/components/appForm/js/index.mjs.map +1 -0
  24. package/es/components/appForm/js/useAppForm.mjs +149 -0
  25. package/es/components/appForm/js/useAppForm.mjs.map +1 -0
  26. package/es/components/appForm/style/appForm.scss +16 -0
  27. package/es/components/appOrgCascader/appOrgCascader.vue.mjs +229 -0
  28. package/es/components/appOrgCascader/appOrgCascader.vue.mjs.map +1 -0
  29. package/es/components/appOrgCascader/index.mjs +7 -0
  30. package/es/components/appOrgCascader/index.mjs.map +1 -0
  31. package/es/components/appOrgCascader/style/appOrgCascader.scss +0 -0
  32. package/es/components/appSearch/appSearch.vue.mjs +408 -0
  33. package/es/components/appSearch/appSearch.vue.mjs.map +1 -0
  34. package/es/components/appSearch/index.mjs +8 -0
  35. package/es/components/appSearch/index.mjs.map +1 -0
  36. package/es/components/appSearch/js/index.mjs +114 -0
  37. package/es/components/appSearch/js/index.mjs.map +1 -0
  38. package/es/components/appSearch/js/useAppSearch.mjs +178 -0
  39. package/es/components/appSearch/js/useAppSearch.mjs.map +1 -0
  40. package/es/components/appSearch/style/appSearch.scss +53 -0
  41. package/es/components/appTable/appTable.vue.mjs +578 -0
  42. package/es/components/appTable/appTable.vue.mjs.map +1 -0
  43. package/es/components/appTable/cpns/columnSelect.vue.mjs +414 -0
  44. package/es/components/appTable/cpns/columnSelect.vue.mjs.map +1 -0
  45. package/es/components/appTable/index.mjs +8 -0
  46. package/es/components/appTable/index.mjs.map +1 -0
  47. package/es/components/appTable/js/index.mjs +304 -0
  48. package/es/components/appTable/js/index.mjs.map +1 -0
  49. package/es/components/appTable/js/search.mjs +129 -0
  50. package/es/components/appTable/js/search.mjs.map +1 -0
  51. package/es/components/appTable/js/useAppTable.mjs +63 -0
  52. package/es/components/appTable/js/useAppTable.mjs.map +1 -0
  53. package/es/components/appTable/style/appTable.scss +15 -0
  54. package/es/components/appTooltip/appTooltip.vue.mjs +94 -0
  55. package/es/components/appTooltip/appTooltip.vue.mjs.map +1 -0
  56. package/es/components/appTooltip/index.mjs +7 -0
  57. package/es/components/appTooltip/index.mjs.map +1 -0
  58. package/es/components/appTooltip/style/appTooltip.scss +0 -0
  59. package/es/components/index.mjs +12 -0
  60. package/es/components/index.mjs.map +1 -0
  61. package/es/components/svgIcon/iconBox.vue.mjs +99 -0
  62. package/es/components/svgIcon/iconBox.vue.mjs.map +1 -0
  63. package/es/components/svgIcon/index.mjs +9 -0
  64. package/es/components/svgIcon/index.mjs.map +1 -0
  65. package/es/components/svgIcon/style/iconBox.scss +13 -0
  66. package/es/components/svgIcon/style/svgIcon.scss +12 -0
  67. package/es/components/svgIcon/svgIcon.vue.mjs +47 -0
  68. package/es/components/svgIcon/svgIcon.vue.mjs.map +1 -0
  69. package/es/config/index.mjs +2 -0
  70. package/es/config/index.mjs.map +1 -0
  71. package/es/constants/index.mjs +4 -0
  72. package/es/constants/index.mjs.map +1 -0
  73. package/es/constants/keys.mjs +2 -0
  74. package/es/constants/keys.mjs.map +1 -0
  75. package/es/hooks/index.mjs +5 -0
  76. package/es/hooks/index.mjs.map +1 -0
  77. package/es/hooks/useApi.mjs +10 -0
  78. package/es/hooks/useApi.mjs.map +1 -0
  79. package/es/hooks/useGlobalConfig.mjs +56 -0
  80. package/es/hooks/useGlobalConfig.mjs.map +1 -0
  81. package/es/hooks/useLocale.mjs +34 -0
  82. package/es/hooks/useLocale.mjs.map +1 -0
  83. package/es/hooks/useMixins.mjs +19 -0
  84. package/es/hooks/useMixins.mjs.map +1 -0
  85. package/es/index.mjs +30 -0
  86. package/es/index.mjs.map +1 -0
  87. package/es/locale/en_US.mjs +67 -0
  88. package/es/locale/en_US.mjs.map +1 -0
  89. package/es/locale/index.mjs +3 -0
  90. package/es/locale/index.mjs.map +1 -0
  91. package/es/locale/zh_CN.mjs +67 -0
  92. package/es/locale/zh_CN.mjs.map +1 -0
  93. package/es/make-installer.mjs +29 -0
  94. package/es/make-installer.mjs.map +1 -0
  95. package/es/store/index.mjs +7 -0
  96. package/es/store/index.mjs.map +1 -0
  97. package/es/store/maintain.mjs +90 -0
  98. package/es/store/maintain.mjs.map +1 -0
  99. package/es/style/index.scss +46 -0
  100. package/es/style/tailwind.scss +3 -0
  101. package/es/style/theme.scss +123 -0
  102. package/es/utils/adaptive.mjs +30 -0
  103. package/es/utils/adaptive.mjs.map +1 -0
  104. package/es/utils/bus.mjs +6 -0
  105. package/es/utils/bus.mjs.map +1 -0
  106. package/es/utils/crypto.mjs +21 -0
  107. package/es/utils/crypto.mjs.map +1 -0
  108. package/es/utils/date.mjs +25 -0
  109. package/es/utils/date.mjs.map +1 -0
  110. package/es/utils/handler.mjs +83 -0
  111. package/es/utils/handler.mjs.map +1 -0
  112. package/es/utils/index.mjs +7 -0
  113. package/es/utils/index.mjs.map +1 -0
  114. package/es/utils/is.mjs +19 -0
  115. package/es/utils/is.mjs.map +1 -0
  116. package/es/version.mjs +4 -0
  117. package/es/version.mjs.map +1 -0
  118. package/lib/bussiness/index.js +3 -0
  119. package/lib/bussiness/index.js.map +1 -0
  120. package/lib/components/appConfirmDialog/appConfirmDialog.vue.js +208 -0
  121. package/lib/components/appConfirmDialog/appConfirmDialog.vue.js.map +1 -0
  122. package/lib/components/appConfirmDialog/appConfirmMethod.js +77 -0
  123. package/lib/components/appConfirmDialog/appConfirmMethod.js.map +1 -0
  124. package/lib/components/appConfirmDialog/index.js +13 -0
  125. package/lib/components/appConfirmDialog/index.js.map +1 -0
  126. package/lib/components/appConfirmDialog/style/appConfirmDialog.scss +5 -0
  127. package/lib/components/appDatePicker/appDatePicker.vue.js +103 -0
  128. package/lib/components/appDatePicker/appDatePicker.vue.js.map +1 -0
  129. package/lib/components/appDatePicker/index.js +12 -0
  130. package/lib/components/appDatePicker/index.js.map +1 -0
  131. package/lib/components/appDatePicker/style/appDatePicker.scss +0 -0
  132. package/lib/components/appForm/appForm.vue.js +335 -0
  133. package/lib/components/appForm/appForm.vue.js.map +1 -0
  134. package/lib/components/appForm/index.js +14 -0
  135. package/lib/components/appForm/index.js.map +1 -0
  136. package/lib/components/appForm/js/index.js +93 -0
  137. package/lib/components/appForm/js/index.js.map +1 -0
  138. package/lib/components/appForm/js/useAppForm.js +152 -0
  139. package/lib/components/appForm/js/useAppForm.js.map +1 -0
  140. package/lib/components/appForm/style/appForm.scss +16 -0
  141. package/lib/components/appOrgCascader/appOrgCascader.vue.js +233 -0
  142. package/lib/components/appOrgCascader/appOrgCascader.vue.js.map +1 -0
  143. package/lib/components/appOrgCascader/index.js +12 -0
  144. package/lib/components/appOrgCascader/index.js.map +1 -0
  145. package/lib/components/appOrgCascader/style/appOrgCascader.scss +0 -0
  146. package/lib/components/appSearch/appSearch.vue.js +412 -0
  147. package/lib/components/appSearch/appSearch.vue.js.map +1 -0
  148. package/lib/components/appSearch/index.js +14 -0
  149. package/lib/components/appSearch/index.js.map +1 -0
  150. package/lib/components/appSearch/js/index.js +122 -0
  151. package/lib/components/appSearch/js/index.js.map +1 -0
  152. package/lib/components/appSearch/js/useAppSearch.js +181 -0
  153. package/lib/components/appSearch/js/useAppSearch.js.map +1 -0
  154. package/lib/components/appSearch/style/appSearch.scss +53 -0
  155. package/lib/components/appTable/appTable.vue.js +582 -0
  156. package/lib/components/appTable/appTable.vue.js.map +1 -0
  157. package/lib/components/appTable/cpns/columnSelect.vue.js +418 -0
  158. package/lib/components/appTable/cpns/columnSelect.vue.js.map +1 -0
  159. package/lib/components/appTable/index.js +14 -0
  160. package/lib/components/appTable/index.js.map +1 -0
  161. package/lib/components/appTable/js/index.js +311 -0
  162. package/lib/components/appTable/js/index.js.map +1 -0
  163. package/lib/components/appTable/js/search.js +131 -0
  164. package/lib/components/appTable/js/search.js.map +1 -0
  165. package/lib/components/appTable/js/useAppTable.js +65 -0
  166. package/lib/components/appTable/js/useAppTable.js.map +1 -0
  167. package/lib/components/appTable/style/appTable.scss +15 -0
  168. package/lib/components/appTooltip/appTooltip.vue.js +98 -0
  169. package/lib/components/appTooltip/appTooltip.vue.js.map +1 -0
  170. package/lib/components/appTooltip/index.js +12 -0
  171. package/lib/components/appTooltip/index.js.map +1 -0
  172. package/lib/components/appTooltip/style/appTooltip.scss +0 -0
  173. package/lib/components/index.js +29 -0
  174. package/lib/components/index.js.map +1 -0
  175. package/lib/components/svgIcon/iconBox.vue.js +103 -0
  176. package/lib/components/svgIcon/iconBox.vue.js.map +1 -0
  177. package/lib/components/svgIcon/index.js +15 -0
  178. package/lib/components/svgIcon/index.js.map +1 -0
  179. package/lib/components/svgIcon/style/iconBox.scss +13 -0
  180. package/lib/components/svgIcon/style/svgIcon.scss +12 -0
  181. package/lib/components/svgIcon/svgIcon.vue.js +51 -0
  182. package/lib/components/svgIcon/svgIcon.vue.js.map +1 -0
  183. package/lib/config/index.js +3 -0
  184. package/lib/config/index.js.map +1 -0
  185. package/lib/constants/index.js +6 -0
  186. package/lib/constants/index.js.map +1 -0
  187. package/lib/constants/keys.js +3 -0
  188. package/lib/constants/keys.js.map +1 -0
  189. package/lib/hooks/index.js +21 -0
  190. package/lib/hooks/index.js.map +1 -0
  191. package/lib/hooks/useApi.js +13 -0
  192. package/lib/hooks/useApi.js.map +1 -0
  193. package/lib/hooks/useGlobalConfig.js +59 -0
  194. package/lib/hooks/useGlobalConfig.js.map +1 -0
  195. package/lib/hooks/useLocale.js +41 -0
  196. package/lib/hooks/useLocale.js.map +1 -0
  197. package/lib/hooks/useMixins.js +21 -0
  198. package/lib/hooks/useMixins.js.map +1 -0
  199. package/lib/index.js +85 -0
  200. package/lib/index.js.map +1 -0
  201. package/lib/locale/en_US.js +71 -0
  202. package/lib/locale/en_US.js.map +1 -0
  203. package/lib/locale/index.js +10 -0
  204. package/lib/locale/index.js.map +1 -0
  205. package/lib/locale/zh_CN.js +71 -0
  206. package/lib/locale/zh_CN.js.map +1 -0
  207. package/lib/make-installer.js +33 -0
  208. package/lib/make-installer.js.map +1 -0
  209. package/lib/store/index.js +10 -0
  210. package/lib/store/index.js.map +1 -0
  211. package/lib/store/maintain.js +92 -0
  212. package/lib/store/maintain.js.map +1 -0
  213. package/lib/style/index.scss +46 -0
  214. package/lib/style/tailwind.scss +3 -0
  215. package/lib/style/theme.scss +123 -0
  216. package/lib/utils/adaptive.js +35 -0
  217. package/lib/utils/adaptive.js.map +1 -0
  218. package/lib/utils/bus.js +8 -0
  219. package/lib/utils/bus.js.map +1 -0
  220. package/lib/utils/crypto.js +25 -0
  221. package/lib/utils/crypto.js.map +1 -0
  222. package/lib/utils/date.js +27 -0
  223. package/lib/utils/date.js.map +1 -0
  224. package/lib/utils/handler.js +89 -0
  225. package/lib/utils/handler.js.map +1 -0
  226. package/lib/utils/index.js +38 -0
  227. package/lib/utils/index.js.map +1 -0
  228. package/lib/utils/is.js +32 -0
  229. package/lib/utils/is.js.map +1 -0
  230. package/lib/version.js +6 -0
  231. package/lib/version.js.map +1 -0
  232. package/package.json +102 -0
@@ -0,0 +1,311 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var elementPlus = require('element-plus');
5
+ var is = require('../../../utils/is.js');
6
+ var useLocale = require('../../../hooks/useLocale.js');
7
+
8
+ function tableColumnShowHandler(column) {
9
+ const show = vue.unref(column.show);
10
+ if (is.isBoolean(show)) return show;
11
+ if (is.isFunction(show)) return show(column);
12
+ return true;
13
+ }
14
+ function tableColumnsEditableleHandler(columns, columnsEditablele, searchArr) {
15
+ const searchLabelSet = /* @__PURE__ */ new Set();
16
+ const columnsEditableleObj = {};
17
+ for (const column of columns) {
18
+ const { editable } = column;
19
+ const columnsEditableleItem = columnsEditablele[column.prop] || editable;
20
+ const { index } = columnsEditableleItem;
21
+ if (!columnsEditableleObj[index]) {
22
+ columnsEditableleObj[index] = [];
23
+ }
24
+ columnsEditableleObj[index].push({
25
+ ...columnsEditableleItem,
26
+ column
27
+ });
28
+ if (column.isSearch) {
29
+ searchLabelSet.add(column.label);
30
+ }
31
+ }
32
+ if ((searchArr == null ? void 0 : searchArr.length) > 0) {
33
+ searchArr.forEach((item) => {
34
+ searchLabelSet.add(item.label);
35
+ });
36
+ }
37
+ return Object.keys(columnsEditableleObj).reduce(
38
+ ({ columnsEditablele: columnsEditablele2, columnsList, searchText }, key) => {
39
+ const list = columnsEditableleObj[key];
40
+ for (let i = 0; i < list.length; i++) {
41
+ const target = list[i];
42
+ columnsEditablele2[target.column.prop] = {
43
+ ...target,
44
+ index: columnsList.length + i
45
+ };
46
+ columnsList.push(target.column);
47
+ }
48
+ return { columnsEditablele: columnsEditablele2, columnsList, searchText };
49
+ },
50
+ {
51
+ columnsEditablele: {},
52
+ columnsList: [],
53
+ searchText: Array.from(searchLabelSet.values()).join("\u3001")
54
+ }
55
+ );
56
+ }
57
+ function tableColumnHandler(cacheKey, columns, searchArr) {
58
+ const cacheColumnsValue = JSON.parse(sessionStorage.getItem(cacheKey) || "{}");
59
+ const cacheColumnsEditablele = columns.reduce((obj, column) => {
60
+ obj[column.prop] = {
61
+ ...column.editable,
62
+ ...cacheColumnsValue[column.prop],
63
+ lock: column.editable.lock,
64
+ edit: column.editable.edit
65
+ };
66
+ return obj;
67
+ }, {});
68
+ return tableColumnsEditableleHandler(
69
+ columns,
70
+ cacheColumnsEditablele,
71
+ searchArr
72
+ );
73
+ }
74
+ function operatorShowHandler(operator, scope) {
75
+ const show = vue.unref(operator.show);
76
+ if (is.isBoolean(show)) return show;
77
+ if (is.isFunction(show)) return show(scope);
78
+ return true;
79
+ }
80
+ function operatorDisabledHandler(column, scope) {
81
+ const { disabled } = column;
82
+ if (is.isBoolean(disabled)) return disabled;
83
+ if (is.isFunction(disabled)) return disabled(scope);
84
+ return false;
85
+ }
86
+ function operatorDisableTextdHandler(column, scope) {
87
+ const { t } = useLocale.useLocale();
88
+ const { disabledText } = column;
89
+ if (is.isString(disabledText)) return disabledText;
90
+ if (is.isFunction(disabledText)) return disabledText(scope);
91
+ return t("table.nonsupport");
92
+ }
93
+ function operatorFilterHandler(column, scope, type = "all") {
94
+ let { width } = column;
95
+ width = is.isString(width) ? Number(width.replace(/[a-zA-Z]+/g, "")) : width;
96
+ const operator = (column.operator || []).filter(
97
+ (item) => operatorShowHandler(item, scope)
98
+ );
99
+ if (type === "all" || operator.length <= 1 && type === "default") {
100
+ return operator;
101
+ }
102
+ const btnWidth = 28;
103
+ const gapWidth = 12;
104
+ const operatorCount = Math.floor((width - 12 * 2) / (btnWidth + gapWidth));
105
+ if (operatorCount === operator.length) {
106
+ return type === "default" ? operator : [];
107
+ }
108
+ if (type === "default") {
109
+ return operator.slice(0, operatorCount - 1);
110
+ } else {
111
+ return operator.slice(operatorCount - 1);
112
+ }
113
+ }
114
+ function operatorClickHandler(command, column, scope, type = "all") {
115
+ const operator = operatorFilterHandler(column, scope, type);
116
+ const target = operator[command];
117
+ (target == null ? void 0 : target.onClick) && target.onClick(scope);
118
+ }
119
+ const useAppTableWrapper = (hy) => {
120
+ const {
121
+ props,
122
+ emits,
123
+ containerRef,
124
+ tableRef,
125
+ tableDropdownRef,
126
+ operatorDropdownRef
127
+ } = hy;
128
+ const { t } = useLocale.useLocale();
129
+ const CACHE_COLUMNS_KEY = "CACHE_COLUMNS_KEY";
130
+ const loading = vue.ref(true);
131
+ const tableDataSource = vue.ref([]);
132
+ const tableColumns = vue.ref([]);
133
+ const tableColumnsEditablele = vue.ref({});
134
+ const searchPlaceholder = vue.ref("");
135
+ function getRowKey(row = {}) {
136
+ if (is.isString(props.rowKey)) return row[props.rowKey];
137
+ if (is.isFunction(props.rowKey)) return props.rowKey(row);
138
+ return row.id;
139
+ }
140
+ function onTableColumnsSelectHandler(value) {
141
+ const { columnsEditablele, columnsList, searchText } = tableColumnsEditableleHandler(props.tableColumns, value, props.searchArr);
142
+ tableColumns.value = columnsList;
143
+ tableColumnsEditablele.value = columnsEditablele;
144
+ searchPlaceholder.value = searchText;
145
+ sessionStorage.setItem(CACHE_COLUMNS_KEY, JSON.stringify(value));
146
+ }
147
+ function doLayout() {
148
+ var _a;
149
+ (_a = tableRef.value) == null ? void 0 : _a.doLayout();
150
+ }
151
+ let loadingInstance, loadingTimer;
152
+ function showAppTableLoading() {
153
+ if (loadingInstance || !props.showLoading) return;
154
+ closeAppTableLoading();
155
+ loadingInstance = elementPlus.ElLoading.service({
156
+ target: containerRef.value,
157
+ body: false,
158
+ fullscreen: false,
159
+ text: t("hy.loading"),
160
+ lock: true,
161
+ // spinner: 'el-icon-loading',
162
+ background: "rgba(0, 0, 0, 0.8)"
163
+ });
164
+ loadingTimer = setTimeout(() => {
165
+ closeAppTableLoading();
166
+ }, 60 * 1e3);
167
+ }
168
+ function closeAppTableLoading() {
169
+ loadingTimer && clearTimeout(loadingTimer);
170
+ loadingInstance == null ? void 0 : loadingInstance.close();
171
+ loadingInstance = null;
172
+ }
173
+ const tableTriggerPosition = vue.ref({
174
+ top: 0,
175
+ left: 0,
176
+ bottom: 0,
177
+ right: 0
178
+ });
179
+ const tableTriggerRef = vue.ref({
180
+ column: {},
181
+ scope: {},
182
+ getBoundingClientRect: () => tableTriggerPosition.value
183
+ });
184
+ function onTableRowContextmenuHandler(row, _, event) {
185
+ var _a, _b;
186
+ if (props.onRowContextmenu) {
187
+ props.onRowContextmenu(row, _, event);
188
+ return;
189
+ }
190
+ const { clientX, clientY } = event;
191
+ tableTriggerPosition.value = DOMRect.fromRect({
192
+ x: clientX,
193
+ y: clientY
194
+ });
195
+ const column = tableColumns.value.find(
196
+ (column2) => column2.prop === "operator"
197
+ );
198
+ const operator = operatorFilterHandler(column, { row });
199
+ if (!(operator == null ? void 0 : operator.length)) return;
200
+ tableTriggerRef.value.column = column;
201
+ tableTriggerRef.value.scope = { row };
202
+ event.preventDefault();
203
+ (_a = tableDropdownRef.value) == null ? void 0 : _a.handleOpen();
204
+ if (is.isArray(operatorDropdownRef.value)) {
205
+ operatorDropdownRef.value.forEach((item) => item.handleClose());
206
+ } else {
207
+ (_b = operatorDropdownRef.value) == null ? void 0 : _b.handleClose();
208
+ }
209
+ }
210
+ const selectedList = vue.ref([]);
211
+ const selectedMap = vue.computed(() => {
212
+ return (selectedList.value || []).reduce((map, row, index) => {
213
+ map.set(getRowKey(row), index);
214
+ return map;
215
+ }, /* @__PURE__ */ new Map());
216
+ });
217
+ function isSelectable(row) {
218
+ const column = tableColumns.value.find((column2) => {
219
+ return column2.type === "selection";
220
+ });
221
+ if (!is.isFunction(column == null ? void 0 : column.selectable)) return true;
222
+ return column.selectable(row);
223
+ }
224
+ function getSelectedIndex(row) {
225
+ let index = selectedMap.value.get(getRowKey(row));
226
+ return is.isNumber(index) ? index : -1;
227
+ }
228
+ function clearSelection() {
229
+ var _a;
230
+ (_a = tableRef.value) == null ? void 0 : _a.clearSelection();
231
+ }
232
+ function getSelectedList() {
233
+ return selectedList.value;
234
+ }
235
+ async function onTableRowClickHandler(row) {
236
+ emits("row-click", row);
237
+ if (tableColumns.value.some((column) => column.type === "expand")) {
238
+ tableRef.value.toggleRowExpansion(row);
239
+ }
240
+ if (!isSelectable(row)) return;
241
+ if (tableColumns.value.some((column) => column.type === "selection")) {
242
+ tableRef.value.toggleRowSelection(row);
243
+ const index = getSelectedIndex(row);
244
+ if (index !== -1) {
245
+ selectedList.value.splice(index, 1);
246
+ } else {
247
+ selectedList.value.push(row);
248
+ }
249
+ await vue.nextTick();
250
+ emits("on-select-checkbox", selectedList.value, row);
251
+ }
252
+ }
253
+ function onTableSelectAllHandler(selectList = [], row) {
254
+ if (selectList.length === 0 && tableDataSource.value.length === 0) {
255
+ tableRef.value.clearSelection();
256
+ }
257
+ selectedList.value = [...selectList];
258
+ emits("on-select-checkbox", [...selectList], row);
259
+ }
260
+ function setTableRowClassName(obj) {
261
+ const row = obj.row;
262
+ let className = [];
263
+ if (props.rowClassName) {
264
+ className.push(props.rowClassName(obj));
265
+ }
266
+ if (getSelectedIndex(row) !== -1) {
267
+ className.push("selected");
268
+ }
269
+ return className.filter(Boolean).join(" ");
270
+ }
271
+ vue.watchEffect(() => {
272
+ const { columnsList, columnsEditablele, searchText } = tableColumnHandler(
273
+ CACHE_COLUMNS_KEY,
274
+ props.tableColumns,
275
+ props.searchArr
276
+ );
277
+ tableColumns.value = columnsList;
278
+ tableColumnsEditablele.value = columnsEditablele;
279
+ searchPlaceholder.value = searchText;
280
+ });
281
+ return {
282
+ // 表格配置项
283
+ loading,
284
+ tableDataSource,
285
+ tableColumns,
286
+ tableColumnsEditablele,
287
+ searchPlaceholder,
288
+ doLayout,
289
+ showAppTableLoading,
290
+ closeAppTableLoading,
291
+ // 表格行操作配置
292
+ getRowKey,
293
+ selectedList,
294
+ tableTriggerRef,
295
+ setTableRowClassName,
296
+ onTableSelectAllHandler,
297
+ onTableRowContextmenuHandler,
298
+ onTableRowClickHandler,
299
+ onTableColumnsSelectHandler,
300
+ getSelectedList,
301
+ clearSelection
302
+ };
303
+ };
304
+
305
+ exports.operatorClickHandler = operatorClickHandler;
306
+ exports.operatorDisableTextdHandler = operatorDisableTextdHandler;
307
+ exports.operatorDisabledHandler = operatorDisabledHandler;
308
+ exports.operatorFilterHandler = operatorFilterHandler;
309
+ exports.tableColumnShowHandler = tableColumnShowHandler;
310
+ exports.useAppTableWrapper = useAppTableWrapper;
311
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../packages/components/appTable/js/index.js"],"sourcesContent":["import { nextTick, ref, computed, watchEffect, unref } from 'vue'\nimport { ElLoading } from 'element-plus'\nimport { useLocale } from '@hy-dispatch-ui-v3/hooks'\nimport {\n isNumber,\n isArray,\n isBoolean,\n isFunction,\n isString,\n} from '@hy-dispatch-ui-v3/utils'\n\nexport function tableColumnShowHandler(column) {\n const show = unref(column.show)\n if (isBoolean(show)) return show\n if (isFunction(show)) return show(column)\n return true\n}\n\n// 表格列排序处理\nfunction tableColumnsEditableleHandler(columns, columnsEditablele, searchArr) {\n const searchLabelSet = new Set()\n const columnsEditableleObj = {}\n for (const column of columns) {\n const { editable } = column\n // 获取当前项缓存排序\n const columnsEditableleItem = columnsEditablele[column.prop] || editable\n const { index } = columnsEditableleItem\n if (!columnsEditableleObj[index]) {\n columnsEditableleObj[index] = []\n }\n columnsEditableleObj[index].push({\n ...columnsEditableleItem,\n column,\n })\n // 处理搜索的placeholder\n if (column.isSearch) {\n searchLabelSet.add(column.label)\n }\n }\n if (searchArr?.length > 0) {\n searchArr.forEach((item) => {\n searchLabelSet.add(item.label)\n })\n }\n return Object.keys(columnsEditableleObj).reduce(\n ({ columnsEditablele, columnsList, searchText }, key) => {\n const list = columnsEditableleObj[key]\n for (let i = 0; i < list.length; i++) {\n const target = list[i]\n columnsEditablele[target.column.prop] = {\n ...target,\n index: columnsList.length + i,\n }\n columnsList.push(target.column)\n }\n return { columnsEditablele, columnsList, searchText }\n },\n {\n columnsEditablele: {},\n columnsList: [],\n searchText: Array.from(searchLabelSet.values()).join('、'),\n }\n )\n}\n\n// 表格columns处理器\nfunction tableColumnHandler(cacheKey, columns, searchArr) {\n const cacheColumnsValue = JSON.parse(sessionStorage.getItem(cacheKey) || '{}')\n const cacheColumnsEditablele = columns.reduce((obj, column) => {\n obj[column.prop] = {\n ...column.editable,\n ...cacheColumnsValue[column.prop],\n lock: column.editable.lock,\n edit: column.editable.edit,\n }\n return obj\n }, {})\n\n return tableColumnsEditableleHandler(\n columns,\n cacheColumnsEditablele,\n searchArr\n )\n}\n\n// 操作选项显示处理\nfunction operatorShowHandler(operator, scope) {\n const show = unref(operator.show)\n if (isBoolean(show)) return show\n if (isFunction(show)) return show(scope)\n return true\n}\n\n// 操作选项禁用字段处理\nexport function operatorDisabledHandler(column, scope) {\n const { disabled } = column\n if (isBoolean(disabled)) return disabled\n if (isFunction(disabled)) return disabled(scope)\n return false\n}\n\n// 操作选项禁用处理\nexport function operatorDisableTextdHandler(column, scope) {\n const { t } = useLocale()\n const { disabledText } = column\n if (isString(disabledText)) return disabledText\n if (isFunction(disabledText)) return disabledText(scope)\n return t('table.nonsupport')\n}\n\n// 过滤出操作选项,type:default-默认未超出不隐藏 more-超出隐藏 all-全部\nexport function operatorFilterHandler(column, scope, type = 'all') {\n let { width } = column\n width = isString(width) ? Number(width.replace(/[a-zA-Z]+/g, '')) : width\n const operator = (column.operator || []).filter((item) =>\n operatorShowHandler(item, scope)\n )\n if (type === 'all' || (operator.length <= 1 && type === 'default')) {\n return operator\n }\n const btnWidth = 28\n const gapWidth = 12\n const operatorCount = Math.floor((width - 12 * 2) / (btnWidth + gapWidth))\n if (operatorCount === operator.length) {\n return type === 'default' ? operator : []\n }\n if (type === 'default') {\n return operator.slice(0, operatorCount - 1)\n } else {\n return operator.slice(operatorCount - 1)\n }\n}\n\n// 操作选项触发处理\nexport function operatorClickHandler(command, column, scope, type = 'all') {\n const operator = operatorFilterHandler(column, scope, type)\n const target = operator[command]\n target?.onClick && target.onClick(scope)\n}\n\nexport const useAppTableWrapper = (hy) => {\n const {\n props,\n emits,\n containerRef,\n tableRef,\n tableDropdownRef,\n operatorDropdownRef,\n } = hy\n\n const { t } = useLocale()\n\n // 表格配置\n const CACHE_COLUMNS_KEY = 'CACHE_COLUMNS_KEY'\n const loading = ref(true)\n const tableDataSource = ref([])\n const tableColumns = ref([])\n const tableColumnsEditablele = ref({})\n const searchPlaceholder = ref('')\n function getRowKey(row = {}) {\n if (isString(props.rowKey)) return row[props.rowKey]\n if (isFunction(props.rowKey)) return props.rowKey(row)\n return row.id\n }\n function onTableColumnsSelectHandler(value) {\n const { columnsEditablele, columnsList, searchText } =\n tableColumnsEditableleHandler(props.tableColumns, value, props.searchArr)\n tableColumns.value = columnsList\n tableColumnsEditablele.value = columnsEditablele\n searchPlaceholder.value = searchText\n sessionStorage.setItem(CACHE_COLUMNS_KEY, JSON.stringify(value))\n }\n function doLayout() {\n tableRef.value?.doLayout()\n }\n // 表格加载处理\n let loadingInstance, loadingTimer\n function showAppTableLoading() {\n if (loadingInstance || !props.showLoading) return\n closeAppTableLoading()\n loadingInstance = ElLoading.service({\n target: containerRef.value,\n body: false,\n fullscreen: false,\n text: t('hy.loading'),\n lock: true,\n // spinner: 'el-icon-loading',\n background: 'rgba(0, 0, 0, 0.8)',\n })\n loadingTimer = setTimeout(() => {\n closeAppTableLoading()\n }, 60 * 1000)\n }\n function closeAppTableLoading() {\n loadingTimer && clearTimeout(loadingTimer)\n loadingInstance?.close()\n loadingInstance = null\n }\n\n // 表格行右击\n const tableTriggerPosition = ref({\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n })\n const tableTriggerRef = ref({\n column: {},\n scope: {},\n getBoundingClientRect: () => tableTriggerPosition.value,\n })\n function onTableRowContextmenuHandler(row, _, event) {\n if (props.onRowContextmenu) {\n props.onRowContextmenu(row, _, event)\n return\n }\n const { clientX, clientY } = event\n tableTriggerPosition.value = DOMRect.fromRect({\n x: clientX,\n y: clientY,\n })\n const column = tableColumns.value.find(\n (column) => column.prop === 'operator'\n )\n const operator = operatorFilterHandler(column, { row })\n if (!operator?.length) return\n tableTriggerRef.value.column = column\n tableTriggerRef.value.scope = { row }\n event.preventDefault()\n tableDropdownRef.value?.handleOpen()\n if (isArray(operatorDropdownRef.value)) {\n operatorDropdownRef.value.forEach((item) => item.handleClose())\n } else {\n operatorDropdownRef.value?.handleClose()\n }\n }\n\n // 表格选中\n const selectedList = ref([]) // 已选中列表\n const selectedMap = computed(() => {\n return (selectedList.value || []).reduce((map, row, index) => {\n map.set(getRowKey(row), index)\n return map\n }, new Map())\n })\n // 是否已选中\n function isSelectable(row) {\n const column = tableColumns.value.find((column) => {\n return column.type === 'selection'\n })\n if (!isFunction(column?.selectable)) return true\n return column.selectable(row)\n }\n // 获取当前选中列表下标\n function getSelectedIndex(row) {\n let index = selectedMap.value.get(getRowKey(row))\n return isNumber(index) ? index : -1\n }\n // 清除选中\n function clearSelection() {\n tableRef.value?.clearSelection()\n }\n // 获取选中列表\n function getSelectedList() {\n return selectedList.value\n }\n // 点击行处理\n async function onTableRowClickHandler(row) {\n emits('row-click', row)\n // 判断是否有展开配置,并处理\n if (tableColumns.value.some((column) => column.type === 'expand')) {\n tableRef.value.toggleRowExpansion(row)\n }\n // 判断是否可以选中\n if (!isSelectable(row)) return\n // 判断是否有选中配置,并处理\n if (tableColumns.value.some((column) => column.type === 'selection')) {\n tableRef.value.toggleRowSelection(row)\n\n const index = getSelectedIndex(row)\n if (index !== -1) {\n selectedList.value.splice(index, 1)\n } else {\n selectedList.value.push(row)\n }\n await nextTick()\n emits('on-select-checkbox', selectedList.value, row)\n }\n }\n // 全选择时触发的事件\n function onTableSelectAllHandler(selectList = [], row) {\n if (selectList.length === 0 && tableDataSource.value.length === 0) {\n tableRef.value.clearSelection()\n }\n selectedList.value = [...selectList]\n emits('on-select-checkbox', [...selectList], row)\n }\n // 设置行类名\n function setTableRowClassName(obj) {\n const row = obj.row\n let className = []\n if (props.rowClassName) {\n className.push(props.rowClassName(obj))\n }\n\n if (getSelectedIndex(row) !== -1) {\n className.push('selected')\n }\n\n return className.filter(Boolean).join(' ')\n }\n\n // 处理表格column\n watchEffect(() => {\n const { columnsList, columnsEditablele, searchText } = tableColumnHandler(\n CACHE_COLUMNS_KEY,\n props.tableColumns,\n props.searchArr\n )\n tableColumns.value = columnsList\n tableColumnsEditablele.value = columnsEditablele\n searchPlaceholder.value = searchText\n })\n\n return {\n // 表格配置项\n loading,\n tableDataSource,\n tableColumns,\n tableColumnsEditablele,\n searchPlaceholder,\n doLayout,\n showAppTableLoading,\n closeAppTableLoading,\n // 表格行操作配置\n getRowKey,\n selectedList,\n tableTriggerRef,\n setTableRowClassName,\n onTableSelectAllHandler,\n onTableRowContextmenuHandler,\n onTableRowClickHandler,\n onTableColumnsSelectHandler,\n getSelectedList,\n clearSelection,\n }\n}\n"],"names":["unref","isBoolean","isFunction","useLocale","isString","ref","ElLoading","isArray","computed","isNumber","nextTick","watchEffect"],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var useAppSearch = require('../../appSearch/js/useAppSearch.js');
5
+ var useApi = require('../../../hooks/useApi.js');
6
+ var is = require('../../../utils/is.js');
7
+
8
+ function useAppTableSearch(hy) {
9
+ const {
10
+ props,
11
+ emits,
12
+ appSearchRef,
13
+ tableDataSource,
14
+ showAppTableLoading,
15
+ closeAppTableLoading,
16
+ clearSelection
17
+ } = hy;
18
+ const { api } = useApi.useApi();
19
+ const { formModel, formColumns } = useAppSearch.useAppSearch(props.filterColumns, {
20
+ page: 1,
21
+ // 当前分页数
22
+ size: 15
23
+ // 每页数量
24
+ });
25
+ const totalElements = vue.ref(0);
26
+ const showFilter = vue.ref(true);
27
+ function switchShowFilter() {
28
+ showFilter.value = !showFilter.value;
29
+ }
30
+ async function getData(page = null) {
31
+ await vue.nextTick();
32
+ showAppTableLoading();
33
+ return new Promise((resolve, reject) => {
34
+ if (!is.isEmpty(page)) {
35
+ if (is.isNumber(page) || is.isString(page)) {
36
+ formModel.value.page = page;
37
+ }
38
+ }
39
+ const params = getParametersFn();
40
+ if (props.controller) {
41
+ api.page(props.controller, params).then(successFun).finally(() => {
42
+ resolve();
43
+ closeAppTableLoading();
44
+ clearSelection();
45
+ });
46
+ } else if (props.url) {
47
+ api.post(props.url, params).then(successFun).finally(() => {
48
+ resolve();
49
+ closeAppTableLoading();
50
+ clearSelection();
51
+ });
52
+ } else {
53
+ closeAppTableLoading();
54
+ reject();
55
+ }
56
+ });
57
+ function successFun(res) {
58
+ var _a;
59
+ if (!((_a = res.data.content) == null ? void 0 : _a.length) && formModel.value.page !== 1) {
60
+ getData(1);
61
+ return;
62
+ }
63
+ const data = res.data.content ? res.data.content : res.data || [];
64
+ if (props.beforeDataHandler) {
65
+ tableDataSource.value = props.beforeDataHandler(data);
66
+ } else {
67
+ tableDataSource.value = data;
68
+ }
69
+ totalElements.value = res.data.totalElements;
70
+ emits("reqSuccess", tableDataSource.value);
71
+ }
72
+ }
73
+ async function resetFn() {
74
+ await vue.nextTick();
75
+ appSearchRef.value.resetFields();
76
+ formModel.value.query = null;
77
+ getData(1);
78
+ }
79
+ function getParametersFn() {
80
+ return Object.assign(
81
+ {
82
+ ...vue.unref(formModel),
83
+ page: vue.unref(formModel).page - 1
84
+ },
85
+ { isJSON: props.isJsonData },
86
+ vue.unref(props.requestParams)
87
+ );
88
+ }
89
+ function getTableDataSource() {
90
+ return tableDataSource.value;
91
+ }
92
+ function getTotalElements() {
93
+ return totalElements.value;
94
+ }
95
+ function setData(dataSource) {
96
+ tableDataSource.value = dataSource || [];
97
+ closeAppTableLoading();
98
+ }
99
+ function onSizeChangeHandler(val) {
100
+ formModel.value.page = 1;
101
+ formModel.value.size = val;
102
+ getData();
103
+ }
104
+ function onCurrentChangeHandler(val) {
105
+ formModel.value.page = val;
106
+ getData();
107
+ }
108
+ let oldQueryValue;
109
+ function onSearchQueryHandler() {
110
+ const isReset = !(is.isEmpty(oldQueryValue) && is.isEmpty(formModel.value.query) || oldQueryValue === formModel.value.query);
111
+ getData(isReset ? 1 : null);
112
+ }
113
+ return {
114
+ formModel,
115
+ formColumns,
116
+ totalElements,
117
+ showFilter,
118
+ getData,
119
+ resetFn,
120
+ switchShowFilter,
121
+ getTableDataSource,
122
+ getTotalElements,
123
+ setData,
124
+ onSizeChangeHandler,
125
+ onCurrentChangeHandler,
126
+ onSearchQueryHandler
127
+ };
128
+ }
129
+
130
+ exports.useAppTableSearch = useAppTableSearch;
131
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sources":["../../../../packages/components/appTable/js/search.js"],"sourcesContent":["import { nextTick, ref, unref } from 'vue'\nimport { useAppSearch } from '@hy-dispatch-ui-v3/components'\nimport { isEmpty, isNumber, isString } from '@hy-dispatch-ui-v3/utils'\nimport { useApi } from '@hy-dispatch-ui-v3/hooks'\n\nexport function useAppTableSearch(hy) {\n const {\n props,\n emits,\n appSearchRef,\n tableDataSource,\n showAppTableLoading,\n closeAppTableLoading,\n clearSelection,\n } = hy\n\n const { api } = useApi()\n const { formModel, formColumns } = useAppSearch(props.filterColumns, {\n page: 1, // 当前分页数\n size: 15, // 每页数量\n })\n const totalElements = ref(0) // 数据总条数\n\n const showFilter = ref(true)\n function switchShowFilter() {\n showFilter.value = !showFilter.value\n }\n\n // 获取表格数据\n async function getData(page = null) {\n await nextTick()\n showAppTableLoading()\n return new Promise((resolve, reject) => {\n if (!isEmpty(page)) {\n if (isNumber(page) || isString(page)) {\n formModel.value.page = page\n }\n }\n\n const params = getParametersFn()\n if (props.controller) {\n api\n .page(props.controller, params)\n .then(successFun)\n .finally(() => {\n resolve()\n closeAppTableLoading()\n clearSelection()\n })\n } else if (props.url) {\n api\n .post(props.url, params)\n .then(successFun)\n .finally(() => {\n resolve()\n closeAppTableLoading()\n clearSelection()\n })\n } else {\n closeAppTableLoading()\n reject()\n }\n })\n function successFun(res) {\n if (!res.data.content?.length && formModel.value.page !== 1) {\n getData(1)\n return\n }\n const data = res.data.content ? res.data.content : res.data || []\n if (props.beforeDataHandler) {\n tableDataSource.value = props.beforeDataHandler(data)\n } else {\n tableDataSource.value = data\n }\n totalElements.value = res.data.totalElements\n emits('reqSuccess', tableDataSource.value)\n }\n }\n // 重置条件查询\n async function resetFn() {\n await nextTick()\n appSearchRef.value.resetFields()\n formModel.value.query = null\n getData(1)\n }\n // 获取当前请求参数\n function getParametersFn() {\n return Object.assign(\n {\n ...unref(formModel),\n page: unref(formModel).page - 1,\n },\n { isJSON: props.isJsonData },\n unref(props.requestParams)\n )\n }\n // 获取表格数据\n function getTableDataSource() {\n return tableDataSource.value\n }\n // 获取表格总数\n function getTotalElements() {\n return totalElements.value\n }\n // 自定义设置表格数据\n function setData(dataSource) {\n tableDataSource.value = dataSource || []\n closeAppTableLoading()\n }\n // 更改表格每页展示数目\n function onSizeChangeHandler(val) {\n formModel.value.page = 1\n formModel.value.size = val\n getData()\n }\n // 更改当前页码处理\n function onCurrentChangeHandler(val) {\n formModel.value.page = val\n getData()\n }\n // 查询变更处理\n let oldQueryValue\n function onSearchQueryHandler() {\n const isReset = !(\n (isEmpty(oldQueryValue) && isEmpty(formModel.value.query)) ||\n oldQueryValue === formModel.value.query\n )\n getData(isReset ? 1 : null)\n }\n\n return {\n formModel,\n formColumns,\n totalElements,\n showFilter,\n getData,\n resetFn,\n switchShowFilter,\n getTableDataSource,\n getTotalElements,\n setData,\n onSizeChangeHandler,\n onCurrentChangeHandler,\n onSearchQueryHandler,\n }\n}\n"],"names":["useApi","useAppSearch","ref","nextTick","isEmpty","isNumber","isString","unref"],"mappings":";;;;;;;AAIO,SAAS,iBAAiB,CAAC,EAAE,EAAE;AACtC,EAAE,MAAM;AACR,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,eAAe;AACnB,IAAI,mBAAmB;AACvB,IAAI,oBAAoB;AACxB,IAAI;AACJ,GAAG,GAAG,EAAE;AACR,EAAE,MAAM,EAAE,GAAG,EAAE,GAAGA,aAAM,EAAE;AAC1B,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAGC,yBAAY,CAAC,KAAK,CAAC,aAAa,EAAE;AACvE,IAAI,IAAI,EAAE,CAAC;AACX;AACA,IAAI,IAAI,EAAE;AACV;AACA,GAAG,CAAC;AACJ,EAAE,MAAM,aAAa,GAAGC,OAAG,CAAC,CAAC,CAAC;AAC9B,EAAE,MAAM,UAAU,GAAGA,OAAG,CAAC,IAAI,CAAC;AAC9B,EAAE,SAAS,gBAAgB,GAAG;AAC9B,IAAI,UAAU,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,KAAK;AACxC,EAAE;AACF,EAAE,eAAe,OAAO,CAAC,IAAI,GAAG,IAAI,EAAE;AACtC,IAAI,MAAMC,YAAQ,EAAE;AACpB,IAAI,mBAAmB,EAAE;AACzB,IAAI,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK;AAC5C,MAAM,IAAI,CAACC,UAAO,CAAC,IAAI,CAAC,EAAE;AAC1B,QAAQ,IAAIC,WAAQ,CAAC,IAAI,CAAC,IAAIC,WAAQ,CAAC,IAAI,CAAC,EAAE;AAC9C,UAAU,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI;AACrC,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,MAAM,GAAG,eAAe,EAAE;AACtC,MAAM,IAAI,KAAK,CAAC,UAAU,EAAE;AAC5B,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM;AAC1E,UAAU,OAAO,EAAE;AACnB,UAAU,oBAAoB,EAAE;AAChC,UAAU,cAAc,EAAE;AAC1B,QAAQ,CAAC,CAAC;AACV,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,EAAE;AAC5B,QAAQ,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM;AACnE,UAAU,OAAO,EAAE;AACnB,UAAU,oBAAoB,EAAE;AAChC,UAAU,cAAc,EAAE;AAC1B,QAAQ,CAAC,CAAC;AACV,MAAM,CAAC,MAAM;AACb,QAAQ,oBAAoB,EAAE;AAC9B,QAAQ,MAAM,EAAE;AAChB,MAAM;AACN,IAAI,CAAC,CAAC;AACN,IAAI,SAAS,UAAU,CAAC,GAAG,EAAE;AAC7B,MAAM,IAAI,EAAE;AACZ,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE;AACjG,QAAQ,OAAO,CAAC,CAAC,CAAC;AAClB,QAAQ;AACR,MAAM;AACN,MAAM,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE;AACvE,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE;AACnC,QAAQ,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC7D,MAAM,CAAC,MAAM;AACb,QAAQ,eAAe,CAAC,KAAK,GAAG,IAAI;AACpC,MAAM;AACN,MAAM,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa;AAClD,MAAM,KAAK,CAAC,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC;AAChD,IAAI;AACJ,EAAE;AACF,EAAE,eAAe,OAAO,GAAG;AAC3B,IAAI,MAAMH,YAAQ,EAAE;AACpB,IAAI,YAAY,CAAC,KAAK,CAAC,WAAW,EAAE;AACpC,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI;AAChC,IAAI,OAAO,CAAC,CAAC,CAAC;AACd,EAAE;AACF,EAAE,SAAS,eAAe,GAAG;AAC7B,IAAI,OAAO,MAAM,CAAC,MAAM;AACxB,MAAM;AACN,QAAQ,GAAGI,SAAK,CAAC,SAAS,CAAC;AAC3B,QAAQ,IAAI,EAAEA,SAAK,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG;AACtC,OAAO;AACP,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE;AAClC,MAAMA,SAAK,CAAC,KAAK,CAAC,aAAa;AAC/B,KAAK;AACL,EAAE;AACF,EAAE,SAAS,kBAAkB,GAAG;AAChC,IAAI,OAAO,eAAe,CAAC,KAAK;AAChC,EAAE;AACF,EAAE,SAAS,gBAAgB,GAAG;AAC9B,IAAI,OAAO,aAAa,CAAC,KAAK;AAC9B,EAAE;AACF,EAAE,SAAS,OAAO,CAAC,UAAU,EAAE;AAC/B,IAAI,eAAe,CAAC,KAAK,GAAG,UAAU,IAAI,EAAE;AAC5C,IAAI,oBAAoB,EAAE;AAC1B,EAAE;AACF,EAAE,SAAS,mBAAmB,CAAC,GAAG,EAAE;AACpC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC;AAC5B,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG;AAC9B,IAAI,OAAO,EAAE;AACb,EAAE;AACF,EAAE,SAAS,sBAAsB,CAAC,GAAG,EAAE;AACvC,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG;AAC9B,IAAI,OAAO,EAAE;AACb,EAAE;AACF,EAAE,IAAI,aAAa;AACnB,EAAE,SAAS,oBAAoB,GAAG;AAClC,IAAI,MAAM,OAAO,GAAG,EAAEH,UAAO,CAAC,aAAa,CAAC,IAAIA,UAAO,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,aAAa,KAAK,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC;AAC1H,IAAI,OAAO,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC;AAC/B,EAAE;AACF,EAAE,OAAO;AACT,IAAI,SAAS;AACb,IAAI,WAAW;AACf,IAAI,aAAa;AACjB,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,gBAAgB;AACpB,IAAI,kBAAkB;AACtB,IAAI,gBAAgB;AACpB,IAAI,OAAO;AACX,IAAI,mBAAmB;AACvB,IAAI,sBAAsB;AAC1B,IAAI;AACJ,GAAG;AACH;;;;"}
@@ -0,0 +1,65 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var is = require('../../../utils/is.js');
5
+ var useLocale = require('../../../hooks/useLocale.js');
6
+
7
+ function getColumnDefaultWidth(column) {
8
+ if (column.width) return column.width;
9
+ if (column.type === "index") return 80;
10
+ if (column.prop === "operator") return 132;
11
+ return;
12
+ }
13
+ function getColumnDefaultLabel(column) {
14
+ const { t } = useLocale.useLocale();
15
+ if (column.label) return column.label;
16
+ if (column.type === "index") return t("table.index");
17
+ return;
18
+ }
19
+ function getColumnsEditable(column, index) {
20
+ const { editable, type, prop } = column;
21
+ if (is.isBoolean(editable)) {
22
+ return {
23
+ index,
24
+ lock: false,
25
+ edit: !type || type === "default",
26
+ checked: !!editable
27
+ };
28
+ }
29
+ return {
30
+ index,
31
+ lock: false,
32
+ edit: !type || type === "default",
33
+ checked: !type || type !== "default" || prop === "operator",
34
+ ...editable || {}
35
+ };
36
+ }
37
+ const useAppTable = (config = {}) => {
38
+ const { columns, filterColumns } = config || {};
39
+ const tableColumns = [];
40
+ try {
41
+ for (let i = 0; i < (columns == null ? void 0 : columns.length); i++) {
42
+ const column = columns[i];
43
+ if (is.isEmpty(column.prop) && column.type === "default") {
44
+ throw Error("\u3010column.prop\u3011\u4E0D\u80FD\u4E3A\u7A7A");
45
+ }
46
+ tableColumns.push({
47
+ prop: column.type !== "default" ? `${column.type}_prop` : column.prop,
48
+ ...column,
49
+ type: column.type || "default",
50
+ width: getColumnDefaultWidth(column),
51
+ label: getColumnDefaultLabel(column),
52
+ editable: getColumnsEditable(column, i)
53
+ });
54
+ }
55
+ } catch (err) {
56
+ console.error(err);
57
+ }
58
+ return {
59
+ tableColumns: vue.toRef(tableColumns),
60
+ filterColumns: vue.toRef(filterColumns)
61
+ };
62
+ };
63
+
64
+ exports.useAppTable = useAppTable;
65
+ //# sourceMappingURL=useAppTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppTable.js","sources":["../../../../packages/components/appTable/js/useAppTable.js"],"sourcesContent":["import { toRef } from 'vue'\nimport { useLocale } from '@hy-dispatch-ui-v3/hooks'\nimport { isBoolean, isEmpty } from '@hy-dispatch-ui-v3/utils'\n\nfunction getColumnDefaultWidth(column) {\n if (column.width) return column.width\n if (column.type === 'index') return 80\n if (column.prop === 'operator') return 132\n return\n}\n\nfunction getColumnDefaultLabel(column) {\n const { t } = useLocale()\n if (column.label) return column.label\n if (column.type === 'index') return t('table.index')\n return\n}\n\nfunction getColumnsEditable(column, index) {\n const { editable, type, prop } = column\n if (isBoolean(editable)) {\n return {\n index,\n lock: false,\n edit: !type || type === 'default',\n checked: !!editable,\n }\n }\n return {\n index,\n lock: false,\n edit: !type || type === 'default',\n checked: !type || type !== 'default' || prop === 'operator',\n ...(editable || {}),\n }\n}\n\n// 生成表单配置\nexport const useAppTable = (config = {}) => {\n const { columns, filterColumns } = config || {}\n const tableColumns = []\n\n try {\n for (let i = 0; i < columns?.length; i++) {\n const column = columns[i]\n if (isEmpty(column.prop) && column.type === 'default') {\n throw Error('【column.prop】不能为空')\n }\n tableColumns.push({\n prop: column.type !== 'default' ? `${column.type}_prop` : column.prop,\n ...column,\n type: column.type || 'default',\n width: getColumnDefaultWidth(column),\n label: getColumnDefaultLabel(column),\n editable: getColumnsEditable(column, i),\n })\n }\n } catch (err) {\n console.error(err)\n }\n\n return {\n tableColumns: toRef(tableColumns),\n filterColumns: toRef(filterColumns),\n }\n}\n"],"names":["useLocale","isBoolean","isEmpty","toRef"],"mappings":";;;;;;AAGA,SAAS,qBAAqB,CAAC,MAAM,EAAE;AACvC,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,MAAM,CAAC,KAAK;AACvC,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,OAAO,EAAE;AACxC,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE,OAAO,GAAG;AAC5C,EAAE;AACF;AACA,SAAS,qBAAqB,CAAC,MAAM,EAAE;AACvC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAGA,mBAAS,EAAE;AAC3B,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,OAAO,MAAM,CAAC,KAAK;AACvC,EAAE,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,OAAO,CAAC,CAAC,aAAa,CAAC;AACtD,EAAE;AACF;AACA,SAAS,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE;AAC3C,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM;AACzC,EAAE,IAAIC,YAAS,CAAC,QAAQ,CAAC,EAAE;AAC3B,IAAI,OAAO;AACX,MAAM,KAAK;AACX,MAAM,IAAI,EAAE,KAAK;AACjB,MAAM,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,SAAS;AACvC,MAAM,OAAO,EAAE,CAAC,CAAC;AACjB,KAAK;AACL,EAAE;AACF,EAAE,OAAO;AACT,IAAI,KAAK;AACT,IAAI,IAAI,EAAE,KAAK;AACf,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,SAAS;AACrC,IAAI,OAAO,EAAE,CAAC,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU;AAC/D,IAAI,GAAG,QAAQ,IAAI;AACnB,GAAG;AACH;AACY,MAAC,WAAW,GAAG,CAAC,MAAM,GAAG,EAAE,KAAK;AAC5C,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,EAAE;AACjD,EAAE,MAAM,YAAY,GAAG,EAAE;AACzB,EAAE,IAAI;AACN,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1E,MAAM,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;AAC/B,MAAM,IAAIC,UAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE;AAC7D,QAAQ,MAAM,KAAK,CAAC,iDAAiD,CAAC;AACtE,MAAM;AACN,MAAM,YAAY,CAAC,IAAI,CAAC;AACxB,QAAQ,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,SAAS,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI;AAC7E,QAAQ,GAAG,MAAM;AACjB,QAAQ,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS;AACtC,QAAQ,KAAK,EAAE,qBAAqB,CAAC,MAAM,CAAC;AAC5C,QAAQ,KAAK,EAAE,qBAAqB,CAAC,MAAM,CAAC;AAC5C,QAAQ,QAAQ,EAAE,kBAAkB,CAAC,MAAM,EAAE,CAAC;AAC9C,OAAO,CAAC;AACR,IAAI;AACJ,EAAE,CAAC,CAAC,OAAO,GAAG,EAAE;AAChB,IAAI,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AACtB,EAAE;AACF,EAAE,OAAO;AACT,IAAI,YAAY,EAAEC,SAAK,CAAC,YAAY,CAAC;AACrC,IAAI,aAAa,EAAEA,SAAK,CAAC,aAAa;AACtC,GAAG;AACH;;;;"}
@@ -0,0 +1,15 @@
1
+ .el-table {
2
+ &.hideSelect {
3
+ /* 禁用全选 */
4
+ .el-table__header-wrapper .el-checkbox {
5
+ display: none !important;
6
+ }
7
+ }
8
+ .el-table__cell .cell {
9
+ display: flex;
10
+ align-items: center;
11
+ .el-table__expand-icon {
12
+ flex-shrink: 0;
13
+ }
14
+ }
15
+ }