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,304 @@
1
+ import { ref, computed, watchEffect, unref, nextTick } from 'vue';
2
+ import { ElLoading } from 'element-plus';
3
+ import { isString, isBoolean, isFunction, isArray, isNumber } from '../../../utils/is.mjs';
4
+ import { useLocale } from '../../../hooks/useLocale.mjs';
5
+
6
+ function tableColumnShowHandler(column) {
7
+ const show = unref(column.show);
8
+ if (isBoolean(show)) return show;
9
+ if (isFunction(show)) return show(column);
10
+ return true;
11
+ }
12
+ function tableColumnsEditableleHandler(columns, columnsEditablele, searchArr) {
13
+ const searchLabelSet = /* @__PURE__ */ new Set();
14
+ const columnsEditableleObj = {};
15
+ for (const column of columns) {
16
+ const { editable } = column;
17
+ const columnsEditableleItem = columnsEditablele[column.prop] || editable;
18
+ const { index } = columnsEditableleItem;
19
+ if (!columnsEditableleObj[index]) {
20
+ columnsEditableleObj[index] = [];
21
+ }
22
+ columnsEditableleObj[index].push({
23
+ ...columnsEditableleItem,
24
+ column
25
+ });
26
+ if (column.isSearch) {
27
+ searchLabelSet.add(column.label);
28
+ }
29
+ }
30
+ if ((searchArr == null ? void 0 : searchArr.length) > 0) {
31
+ searchArr.forEach((item) => {
32
+ searchLabelSet.add(item.label);
33
+ });
34
+ }
35
+ return Object.keys(columnsEditableleObj).reduce(
36
+ ({ columnsEditablele: columnsEditablele2, columnsList, searchText }, key) => {
37
+ const list = columnsEditableleObj[key];
38
+ for (let i = 0; i < list.length; i++) {
39
+ const target = list[i];
40
+ columnsEditablele2[target.column.prop] = {
41
+ ...target,
42
+ index: columnsList.length + i
43
+ };
44
+ columnsList.push(target.column);
45
+ }
46
+ return { columnsEditablele: columnsEditablele2, columnsList, searchText };
47
+ },
48
+ {
49
+ columnsEditablele: {},
50
+ columnsList: [],
51
+ searchText: Array.from(searchLabelSet.values()).join("\u3001")
52
+ }
53
+ );
54
+ }
55
+ function tableColumnHandler(cacheKey, columns, searchArr) {
56
+ const cacheColumnsValue = JSON.parse(sessionStorage.getItem(cacheKey) || "{}");
57
+ const cacheColumnsEditablele = columns.reduce((obj, column) => {
58
+ obj[column.prop] = {
59
+ ...column.editable,
60
+ ...cacheColumnsValue[column.prop],
61
+ lock: column.editable.lock,
62
+ edit: column.editable.edit
63
+ };
64
+ return obj;
65
+ }, {});
66
+ return tableColumnsEditableleHandler(
67
+ columns,
68
+ cacheColumnsEditablele,
69
+ searchArr
70
+ );
71
+ }
72
+ function operatorShowHandler(operator, scope) {
73
+ const show = unref(operator.show);
74
+ if (isBoolean(show)) return show;
75
+ if (isFunction(show)) return show(scope);
76
+ return true;
77
+ }
78
+ function operatorDisabledHandler(column, scope) {
79
+ const { disabled } = column;
80
+ if (isBoolean(disabled)) return disabled;
81
+ if (isFunction(disabled)) return disabled(scope);
82
+ return false;
83
+ }
84
+ function operatorDisableTextdHandler(column, scope) {
85
+ const { t } = useLocale();
86
+ const { disabledText } = column;
87
+ if (isString(disabledText)) return disabledText;
88
+ if (isFunction(disabledText)) return disabledText(scope);
89
+ return t("table.nonsupport");
90
+ }
91
+ function operatorFilterHandler(column, scope, type = "all") {
92
+ let { width } = column;
93
+ width = isString(width) ? Number(width.replace(/[a-zA-Z]+/g, "")) : width;
94
+ const operator = (column.operator || []).filter(
95
+ (item) => operatorShowHandler(item, scope)
96
+ );
97
+ if (type === "all" || operator.length <= 1 && type === "default") {
98
+ return operator;
99
+ }
100
+ const btnWidth = 28;
101
+ const gapWidth = 12;
102
+ const operatorCount = Math.floor((width - 12 * 2) / (btnWidth + gapWidth));
103
+ if (operatorCount === operator.length) {
104
+ return type === "default" ? operator : [];
105
+ }
106
+ if (type === "default") {
107
+ return operator.slice(0, operatorCount - 1);
108
+ } else {
109
+ return operator.slice(operatorCount - 1);
110
+ }
111
+ }
112
+ function operatorClickHandler(command, column, scope, type = "all") {
113
+ const operator = operatorFilterHandler(column, scope, type);
114
+ const target = operator[command];
115
+ (target == null ? void 0 : target.onClick) && target.onClick(scope);
116
+ }
117
+ const useAppTableWrapper = (hy) => {
118
+ const {
119
+ props,
120
+ emits,
121
+ containerRef,
122
+ tableRef,
123
+ tableDropdownRef,
124
+ operatorDropdownRef
125
+ } = hy;
126
+ const { t } = useLocale();
127
+ const CACHE_COLUMNS_KEY = "CACHE_COLUMNS_KEY";
128
+ const loading = ref(true);
129
+ const tableDataSource = ref([]);
130
+ const tableColumns = ref([]);
131
+ const tableColumnsEditablele = ref({});
132
+ const searchPlaceholder = ref("");
133
+ function getRowKey(row = {}) {
134
+ if (isString(props.rowKey)) return row[props.rowKey];
135
+ if (isFunction(props.rowKey)) return props.rowKey(row);
136
+ return row.id;
137
+ }
138
+ function onTableColumnsSelectHandler(value) {
139
+ const { columnsEditablele, columnsList, searchText } = tableColumnsEditableleHandler(props.tableColumns, value, props.searchArr);
140
+ tableColumns.value = columnsList;
141
+ tableColumnsEditablele.value = columnsEditablele;
142
+ searchPlaceholder.value = searchText;
143
+ sessionStorage.setItem(CACHE_COLUMNS_KEY, JSON.stringify(value));
144
+ }
145
+ function doLayout() {
146
+ var _a;
147
+ (_a = tableRef.value) == null ? void 0 : _a.doLayout();
148
+ }
149
+ let loadingInstance, loadingTimer;
150
+ function showAppTableLoading() {
151
+ if (loadingInstance || !props.showLoading) return;
152
+ closeAppTableLoading();
153
+ loadingInstance = ElLoading.service({
154
+ target: containerRef.value,
155
+ body: false,
156
+ fullscreen: false,
157
+ text: t("hy.loading"),
158
+ lock: true,
159
+ // spinner: 'el-icon-loading',
160
+ background: "rgba(0, 0, 0, 0.8)"
161
+ });
162
+ loadingTimer = setTimeout(() => {
163
+ closeAppTableLoading();
164
+ }, 60 * 1e3);
165
+ }
166
+ function closeAppTableLoading() {
167
+ loadingTimer && clearTimeout(loadingTimer);
168
+ loadingInstance == null ? void 0 : loadingInstance.close();
169
+ loadingInstance = null;
170
+ }
171
+ const tableTriggerPosition = ref({
172
+ top: 0,
173
+ left: 0,
174
+ bottom: 0,
175
+ right: 0
176
+ });
177
+ const tableTriggerRef = ref({
178
+ column: {},
179
+ scope: {},
180
+ getBoundingClientRect: () => tableTriggerPosition.value
181
+ });
182
+ function onTableRowContextmenuHandler(row, _, event) {
183
+ var _a, _b;
184
+ if (props.onRowContextmenu) {
185
+ props.onRowContextmenu(row, _, event);
186
+ return;
187
+ }
188
+ const { clientX, clientY } = event;
189
+ tableTriggerPosition.value = DOMRect.fromRect({
190
+ x: clientX,
191
+ y: clientY
192
+ });
193
+ const column = tableColumns.value.find(
194
+ (column2) => column2.prop === "operator"
195
+ );
196
+ const operator = operatorFilterHandler(column, { row });
197
+ if (!(operator == null ? void 0 : operator.length)) return;
198
+ tableTriggerRef.value.column = column;
199
+ tableTriggerRef.value.scope = { row };
200
+ event.preventDefault();
201
+ (_a = tableDropdownRef.value) == null ? void 0 : _a.handleOpen();
202
+ if (isArray(operatorDropdownRef.value)) {
203
+ operatorDropdownRef.value.forEach((item) => item.handleClose());
204
+ } else {
205
+ (_b = operatorDropdownRef.value) == null ? void 0 : _b.handleClose();
206
+ }
207
+ }
208
+ const selectedList = ref([]);
209
+ const selectedMap = computed(() => {
210
+ return (selectedList.value || []).reduce((map, row, index) => {
211
+ map.set(getRowKey(row), index);
212
+ return map;
213
+ }, /* @__PURE__ */ new Map());
214
+ });
215
+ function isSelectable(row) {
216
+ const column = tableColumns.value.find((column2) => {
217
+ return column2.type === "selection";
218
+ });
219
+ if (!isFunction(column == null ? void 0 : column.selectable)) return true;
220
+ return column.selectable(row);
221
+ }
222
+ function getSelectedIndex(row) {
223
+ let index = selectedMap.value.get(getRowKey(row));
224
+ return isNumber(index) ? index : -1;
225
+ }
226
+ function clearSelection() {
227
+ var _a;
228
+ (_a = tableRef.value) == null ? void 0 : _a.clearSelection();
229
+ }
230
+ function getSelectedList() {
231
+ return selectedList.value;
232
+ }
233
+ async function onTableRowClickHandler(row) {
234
+ emits("row-click", row);
235
+ if (tableColumns.value.some((column) => column.type === "expand")) {
236
+ tableRef.value.toggleRowExpansion(row);
237
+ }
238
+ if (!isSelectable(row)) return;
239
+ if (tableColumns.value.some((column) => column.type === "selection")) {
240
+ tableRef.value.toggleRowSelection(row);
241
+ const index = getSelectedIndex(row);
242
+ if (index !== -1) {
243
+ selectedList.value.splice(index, 1);
244
+ } else {
245
+ selectedList.value.push(row);
246
+ }
247
+ await nextTick();
248
+ emits("on-select-checkbox", selectedList.value, row);
249
+ }
250
+ }
251
+ function onTableSelectAllHandler(selectList = [], row) {
252
+ if (selectList.length === 0 && tableDataSource.value.length === 0) {
253
+ tableRef.value.clearSelection();
254
+ }
255
+ selectedList.value = [...selectList];
256
+ emits("on-select-checkbox", [...selectList], row);
257
+ }
258
+ function setTableRowClassName(obj) {
259
+ const row = obj.row;
260
+ let className = [];
261
+ if (props.rowClassName) {
262
+ className.push(props.rowClassName(obj));
263
+ }
264
+ if (getSelectedIndex(row) !== -1) {
265
+ className.push("selected");
266
+ }
267
+ return className.filter(Boolean).join(" ");
268
+ }
269
+ watchEffect(() => {
270
+ const { columnsList, columnsEditablele, searchText } = tableColumnHandler(
271
+ CACHE_COLUMNS_KEY,
272
+ props.tableColumns,
273
+ props.searchArr
274
+ );
275
+ tableColumns.value = columnsList;
276
+ tableColumnsEditablele.value = columnsEditablele;
277
+ searchPlaceholder.value = searchText;
278
+ });
279
+ return {
280
+ // 表格配置项
281
+ loading,
282
+ tableDataSource,
283
+ tableColumns,
284
+ tableColumnsEditablele,
285
+ searchPlaceholder,
286
+ doLayout,
287
+ showAppTableLoading,
288
+ closeAppTableLoading,
289
+ // 表格行操作配置
290
+ getRowKey,
291
+ selectedList,
292
+ tableTriggerRef,
293
+ setTableRowClassName,
294
+ onTableSelectAllHandler,
295
+ onTableRowContextmenuHandler,
296
+ onTableRowClickHandler,
297
+ onTableColumnsSelectHandler,
298
+ getSelectedList,
299
+ clearSelection
300
+ };
301
+ };
302
+
303
+ export { operatorClickHandler, operatorDisableTextdHandler, operatorDisabledHandler, operatorFilterHandler, tableColumnShowHandler, useAppTableWrapper };
304
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","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":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import { ref, nextTick, unref } from 'vue';
2
+ import { useAppSearch } from '../../appSearch/js/useAppSearch.mjs';
3
+ import { useApi } from '../../../hooks/useApi.mjs';
4
+ import { isEmpty, isNumber, isString } from '../../../utils/is.mjs';
5
+
6
+ function useAppTableSearch(hy) {
7
+ const {
8
+ props,
9
+ emits,
10
+ appSearchRef,
11
+ tableDataSource,
12
+ showAppTableLoading,
13
+ closeAppTableLoading,
14
+ clearSelection
15
+ } = hy;
16
+ const { api } = useApi();
17
+ const { formModel, formColumns } = useAppSearch(props.filterColumns, {
18
+ page: 1,
19
+ // 当前分页数
20
+ size: 15
21
+ // 每页数量
22
+ });
23
+ const totalElements = ref(0);
24
+ const showFilter = ref(true);
25
+ function switchShowFilter() {
26
+ showFilter.value = !showFilter.value;
27
+ }
28
+ async function getData(page = null) {
29
+ await nextTick();
30
+ showAppTableLoading();
31
+ return new Promise((resolve, reject) => {
32
+ if (!isEmpty(page)) {
33
+ if (isNumber(page) || isString(page)) {
34
+ formModel.value.page = page;
35
+ }
36
+ }
37
+ const params = getParametersFn();
38
+ if (props.controller) {
39
+ api.page(props.controller, params).then(successFun).finally(() => {
40
+ resolve();
41
+ closeAppTableLoading();
42
+ clearSelection();
43
+ });
44
+ } else if (props.url) {
45
+ api.post(props.url, params).then(successFun).finally(() => {
46
+ resolve();
47
+ closeAppTableLoading();
48
+ clearSelection();
49
+ });
50
+ } else {
51
+ closeAppTableLoading();
52
+ reject();
53
+ }
54
+ });
55
+ function successFun(res) {
56
+ var _a;
57
+ if (!((_a = res.data.content) == null ? void 0 : _a.length) && formModel.value.page !== 1) {
58
+ getData(1);
59
+ return;
60
+ }
61
+ const data = res.data.content ? res.data.content : res.data || [];
62
+ if (props.beforeDataHandler) {
63
+ tableDataSource.value = props.beforeDataHandler(data);
64
+ } else {
65
+ tableDataSource.value = data;
66
+ }
67
+ totalElements.value = res.data.totalElements;
68
+ emits("reqSuccess", tableDataSource.value);
69
+ }
70
+ }
71
+ async function resetFn() {
72
+ await nextTick();
73
+ appSearchRef.value.resetFields();
74
+ formModel.value.query = null;
75
+ getData(1);
76
+ }
77
+ function getParametersFn() {
78
+ return Object.assign(
79
+ {
80
+ ...unref(formModel),
81
+ page: unref(formModel).page - 1
82
+ },
83
+ { isJSON: props.isJsonData },
84
+ unref(props.requestParams)
85
+ );
86
+ }
87
+ function getTableDataSource() {
88
+ return tableDataSource.value;
89
+ }
90
+ function getTotalElements() {
91
+ return totalElements.value;
92
+ }
93
+ function setData(dataSource) {
94
+ tableDataSource.value = dataSource || [];
95
+ closeAppTableLoading();
96
+ }
97
+ function onSizeChangeHandler(val) {
98
+ formModel.value.page = 1;
99
+ formModel.value.size = val;
100
+ getData();
101
+ }
102
+ function onCurrentChangeHandler(val) {
103
+ formModel.value.page = val;
104
+ getData();
105
+ }
106
+ let oldQueryValue;
107
+ function onSearchQueryHandler() {
108
+ const isReset = !(isEmpty(oldQueryValue) && isEmpty(formModel.value.query) || oldQueryValue === formModel.value.query);
109
+ getData(isReset ? 1 : null);
110
+ }
111
+ return {
112
+ formModel,
113
+ formColumns,
114
+ totalElements,
115
+ showFilter,
116
+ getData,
117
+ resetFn,
118
+ switchShowFilter,
119
+ getTableDataSource,
120
+ getTotalElements,
121
+ setData,
122
+ onSizeChangeHandler,
123
+ onCurrentChangeHandler,
124
+ onSearchQueryHandler
125
+ };
126
+ }
127
+
128
+ export { useAppTableSearch };
129
+ //# sourceMappingURL=search.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.mjs","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":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import { toRef } from 'vue';
2
+ import { isEmpty, isBoolean } from '../../../utils/is.mjs';
3
+ import { useLocale } from '../../../hooks/useLocale.mjs';
4
+
5
+ function getColumnDefaultWidth(column) {
6
+ if (column.width) return column.width;
7
+ if (column.type === "index") return 80;
8
+ if (column.prop === "operator") return 132;
9
+ return;
10
+ }
11
+ function getColumnDefaultLabel(column) {
12
+ const { t } = useLocale();
13
+ if (column.label) return column.label;
14
+ if (column.type === "index") return t("table.index");
15
+ return;
16
+ }
17
+ function getColumnsEditable(column, index) {
18
+ const { editable, type, prop } = column;
19
+ if (isBoolean(editable)) {
20
+ return {
21
+ index,
22
+ lock: false,
23
+ edit: !type || type === "default",
24
+ checked: !!editable
25
+ };
26
+ }
27
+ return {
28
+ index,
29
+ lock: false,
30
+ edit: !type || type === "default",
31
+ checked: !type || type !== "default" || prop === "operator",
32
+ ...editable || {}
33
+ };
34
+ }
35
+ const useAppTable = (config = {}) => {
36
+ const { columns, filterColumns } = config || {};
37
+ const tableColumns = [];
38
+ try {
39
+ for (let i = 0; i < (columns == null ? void 0 : columns.length); i++) {
40
+ const column = columns[i];
41
+ if (isEmpty(column.prop) && column.type === "default") {
42
+ throw Error("\u3010column.prop\u3011\u4E0D\u80FD\u4E3A\u7A7A");
43
+ }
44
+ tableColumns.push({
45
+ prop: column.type !== "default" ? `${column.type}_prop` : column.prop,
46
+ ...column,
47
+ type: column.type || "default",
48
+ width: getColumnDefaultWidth(column),
49
+ label: getColumnDefaultLabel(column),
50
+ editable: getColumnsEditable(column, i)
51
+ });
52
+ }
53
+ } catch (err) {
54
+ console.error(err);
55
+ }
56
+ return {
57
+ tableColumns: toRef(tableColumns),
58
+ filterColumns: toRef(filterColumns)
59
+ };
60
+ };
61
+
62
+ export { useAppTable };
63
+ //# sourceMappingURL=useAppTable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppTable.mjs","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":[],"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,GAAG,SAAS,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,IAAI,SAAS,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,IAAI,OAAO,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,EAAE,KAAK,CAAC,YAAY,CAAC;AACrC,IAAI,aAAa,EAAE,KAAK,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
+ }
@@ -0,0 +1,94 @@
1
+ import { defineComponent, ref, computed, openBlock, createBlock, unref, mergeProps, createSlots, withCtx, createElementVNode, normalizeClass, renderSlot, createTextVNode, toDisplayString } from 'vue';
2
+ import { ElTooltip } from 'element-plus';
3
+ import { isOverflowing, isNumber } from '../../utils/is.mjs';
4
+
5
+ import "./style/appTooltip.scss";
6
+
7
+ const __default__ = defineComponent({
8
+ name: "AppTooltip"
9
+ });
10
+ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
11
+ props: {
12
+ isAlways: {
13
+ type: Boolean,
14
+ default: false
15
+ },
16
+ disabled: {
17
+ type: Boolean
18
+ },
19
+ class: {
20
+ type: String
21
+ },
22
+ overLine: {
23
+ type: [String, Number]
24
+ },
25
+ content: {
26
+ type: String
27
+ }
28
+ },
29
+ setup(__props) {
30
+ const props = __props;
31
+ const isDisabled = ref(props.disabled);
32
+ const appClass = computed(() => {
33
+ const classList = [props.class, "break-all"];
34
+ const overLine = props.overLine;
35
+ if (isNumber(overLine) && !isNaN(overLine)) {
36
+ classList.push(overLine <= 1 ? "over_one_line" : "over_any_lines");
37
+ }
38
+ return classList.filter(Boolean);
39
+ });
40
+ function onMouseenterHandler(e) {
41
+ if (props.disabled || props.isAlways) {
42
+ isDisabled.value = props.disabled;
43
+ return;
44
+ }
45
+ isDisabled.value = !isOverflowing(e.target);
46
+ }
47
+ return (_ctx, _cache) => {
48
+ return openBlock(), createBlock(unref(ElTooltip), mergeProps({
49
+ "open-delay": 500,
50
+ class: "item",
51
+ effect: "dark",
52
+ placement: "top",
53
+ "popper-class": "max-w-[300px]"
54
+ }, _ctx.$attrs, {
55
+ disabled: isDisabled.value,
56
+ content: __props.content
57
+ }), createSlots({
58
+ default: withCtx(() => [
59
+ createElementVNode(
60
+ "span",
61
+ {
62
+ class: normalizeClass(appClass.value),
63
+ onMouseenter: onMouseenterHandler
64
+ },
65
+ [
66
+ renderSlot(_ctx.$slots, "default", {}, () => [
67
+ createTextVNode(
68
+ toDisplayString(__props.content),
69
+ 1
70
+ /* TEXT */
71
+ )
72
+ ])
73
+ ],
74
+ 34
75
+ /* CLASS, NEED_HYDRATION */
76
+ )
77
+ ]),
78
+ _: 2
79
+ /* DYNAMIC */
80
+ }, [
81
+ !_ctx.$slots.content ? {
82
+ name: "content",
83
+ fn: withCtx(() => [
84
+ renderSlot(_ctx.$slots, "content")
85
+ ]),
86
+ key: "0"
87
+ } : void 0
88
+ ]), 1040, ["disabled", "content"]);
89
+ };
90
+ }
91
+ });
92
+
93
+ export { _sfc_main as default };
94
+ //# sourceMappingURL=appTooltip.vue.mjs.map