@ctzy-web-client/plugin-component-vue 1.0.25 → 1.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/es/_virtual/_plugin-vue_export-helper.mjs +11 -0
  2. package/es/advance-select/advance-operation.mjs +48 -51
  3. package/es/advance-select/advance-option.mjs +128 -163
  4. package/es/advance-select/advance-option.vue_vue_type_style_index_0_scoped_bc8f5626_lang.mjs +11 -5
  5. package/es/advance-select/advance-select.mjs +323 -370
  6. package/es/advance-select/events-helpers.mjs +9 -0
  7. package/es/advance-select/index.mjs +9 -0
  8. package/es/advance-select/use-advance-option.mjs +9 -0
  9. package/es/advance-select/use-advance-select.mjs +9 -0
  10. package/es/application-slot/application-slot.mjs +9 -0
  11. package/es/application-slot/breadcrumb-item.mjs +26 -20
  12. package/es/application-slot/header-tools-item.mjs +26 -20
  13. package/es/application-slot/index.mjs +9 -0
  14. package/es/breadcrumb-select/breadcrumb-select.mjs +123 -137
  15. package/es/breadcrumb-select/index.mjs +9 -0
  16. package/es/components.mjs +9 -0
  17. package/es/contextmenu/contextmenu-item.mjs +24 -19
  18. package/es/contextmenu/contextmenu.mjs +68 -73
  19. package/es/contextmenu/index.mjs +9 -0
  20. package/es/contextmenu/use-contextmenu.mjs +10 -1
  21. package/es/data-form/data-form-item.mjs +41 -49
  22. package/es/data-form/data-form.mjs +176 -213
  23. package/es/data-form/dynamic-component.mjs +9 -0
  24. package/es/data-form/form-components/Blots/AtBlot.mjs +9 -0
  25. package/es/data-form/form-components/bwa-date-picker.mjs +50 -51
  26. package/es/data-form/form-components/bwa-date-time-picker.mjs +55 -56
  27. package/es/data-form/form-components/bwa-input-float.mjs +48 -48
  28. package/es/data-form/form-components/bwa-input-integer.mjs +61 -68
  29. package/es/data-form/form-components/bwa-input.mjs +43 -43
  30. package/es/data-form/form-components/bwa-multi-select.mjs +40 -40
  31. package/es/data-form/form-components/bwa-rich-text-tinymce.mjs +230 -555
  32. package/es/data-form/form-components/bwa-rich-text.mjs +326 -404
  33. package/es/data-form/form-components/bwa-select.mjs +81 -84
  34. package/es/data-form/form-components/bwa-textarea.mjs +38 -38
  35. package/es/data-form/form-components/bwa-upload.mjs +160 -173
  36. package/es/data-form/form-components/bwa-user-multi-select.mjs +35 -35
  37. package/es/data-form/form-components/bwa-user-select.mjs +72 -86
  38. package/es/data-form/index.mjs +9 -0
  39. package/es/data-table/data-column-view.mjs +124 -146
  40. package/es/data-table/data-table-card.mjs +49 -48
  41. package/es/data-table/data-table-column.mjs +55 -58
  42. package/es/data-table/data-table.mjs +328 -404
  43. package/es/data-table/dynamic-component.mjs +9 -0
  44. package/es/data-table/index.mjs +9 -0
  45. package/es/data-table/use-datatable-drag.mjs +9 -0
  46. package/es/datatable-settings/datatable-settings.mjs +286 -328
  47. package/es/datatable-settings/index.mjs +9 -0
  48. package/es/date-range/date-picker.mjs +125 -131
  49. package/es/date-range/date-range.mjs +173 -216
  50. package/es/date-range/index.mjs +9 -0
  51. package/es/drag-list/constants.mjs +10 -0
  52. package/es/drag-list/drag-item.mjs +51 -56
  53. package/es/drag-list/drag-list.mjs +58 -60
  54. package/es/drag-list/index.mjs +9 -0
  55. package/es/drag-list/use-drag-list.mjs +10 -1
  56. package/es/dragable/constants.mjs +10 -0
  57. package/es/dragable/dragable-item.mjs +27 -23
  58. package/es/dragable/dragable-operation.mjs +33 -32
  59. package/es/dragable/dragable.mjs +33 -32
  60. package/es/dragable/index.mjs +9 -0
  61. package/es/dragable/use-dragable.mjs +9 -0
  62. package/es/filter-panel/conditions/condition.mjs +9 -0
  63. package/es/filter-panel/conditions/date-range-condition.mjs +51 -50
  64. package/es/filter-panel/conditions/department-condition/department-condition.mjs +82 -99
  65. package/es/filter-panel/conditions/department-condition/department-node.mjs +69 -73
  66. package/es/filter-panel/conditions/index.mjs +9 -0
  67. package/es/filter-panel/conditions/input-condition.mjs +88 -91
  68. package/es/filter-panel/conditions/multi-user-condition.mjs +66 -67
  69. package/es/filter-panel/conditions/multiple-menu-condition.mjs +44 -54
  70. package/es/filter-panel/conditions/single-menu-condition.mjs +71 -65
  71. package/es/filter-panel/conditions/single-user-condition.mjs +66 -67
  72. package/es/filter-panel/filter-panel-item.mjs +51 -55
  73. package/es/filter-panel/filter-panel.mjs +147 -156
  74. package/es/filter-panel/index.mjs +9 -0
  75. package/es/filter-panel/use-filter-panel-item.mjs +9 -0
  76. package/es/filter-panel/use-filter-panel.mjs +9 -0
  77. package/es/hooks/use-data/index.mjs +9 -0
  78. package/es/index.mjs +9 -0
  79. package/es/layout/index.mjs +9 -0
  80. package/es/layout/layout.mjs +87 -85
  81. package/es/make-installer.mjs +9 -0
  82. package/es/math/Rectangle.mjs +10 -0
  83. package/es/menu/index.mjs +9 -0
  84. package/es/menu/menu-item.mjs +65 -70
  85. package/es/menu/menu.mjs +64 -70
  86. package/es/node_modules/.pnpm/{@vueuse_core@9.6.0_vue@3.2.41 → @vueuse_core@9.13.0_vue@3.5.29_typescript@4.9.5_}/node_modules/@vueuse/core/index.mjs +680 -454
  87. package/es/node_modules/.pnpm/{@vueuse_shared@9.6.0_vue@3.2.41 → @vueuse_shared@9.13.0_vue@3.5.29_typescript@4.9.5_}/node_modules/@vueuse/shared/index.mjs +108 -46
  88. package/es/panel/index.mjs +9 -0
  89. package/es/panel/panel.mjs +49 -53
  90. package/es/panel-tabs/index.mjs +9 -0
  91. package/es/panel-tabs/panel-tabs.mjs +9 -0
  92. package/es/pct-filter-panel/index.mjs +9 -0
  93. package/es/pct-filter-panel/pct-compents/index.mjs +9 -0
  94. package/es/pct-filter-panel/pct-compents/pct-Input-condition.mjs +73 -75
  95. package/es/pct-filter-panel/pct-compents/pct-date-range-condition.mjs +77 -77
  96. package/es/pct-filter-panel/pct-compents/pct-multiple-menu-condition.mjs +345 -374
  97. package/es/pct-filter-panel/pct-compents/pct-multiple-menu-condition2.mjs +149 -154
  98. package/es/pct-filter-panel/pct-filter-panel-item.mjs +52 -56
  99. package/es/pct-filter-panel/pct-filter-panel.mjs +235 -248
  100. package/es/pct-filter-panel/use-filter-panel-item.mjs +9 -0
  101. package/es/pct-filter-panel/use-filter-panel.mjs +9 -0
  102. package/es/plugins.mjs +9 -0
  103. package/es/progress/index.mjs +9 -0
  104. package/es/progress/progress-item.mjs +71 -81
  105. package/es/progress/progress.mjs +74 -78
  106. package/es/progress/use-progress.mjs +9 -0
  107. package/es/utils/db.mjs +9 -0
  108. package/es/utils.css +1 -0
  109. package/es/utils.mjs +9 -0
  110. package/es/where-filter-panel/index.mjs +9 -1
  111. package/es/where-filter-panel/use-where-filter-panel.mjs +9 -0
  112. package/es/where-filter-panel/where-filter-panel.mjs +21 -15
  113. package/lib/_virtual/_plugin-vue_export-helper.js +11 -0
  114. package/lib/advance-select/advance-operation.js +47 -50
  115. package/lib/advance-select/advance-option.js +127 -162
  116. package/lib/advance-select/advance-option.vue_vue_type_style_index_0_scoped_bc8f5626_lang.js +11 -6
  117. package/lib/advance-select/advance-select.js +322 -369
  118. package/lib/advance-select/events-helpers.js +9 -0
  119. package/lib/advance-select/index.js +9 -0
  120. package/lib/advance-select/use-advance-option.js +9 -0
  121. package/lib/advance-select/use-advance-select.js +9 -0
  122. package/lib/application-slot/application-slot.js +9 -0
  123. package/lib/application-slot/breadcrumb-item.js +25 -19
  124. package/lib/application-slot/header-tools-item.js +25 -19
  125. package/lib/application-slot/index.js +9 -0
  126. package/lib/breadcrumb-select/breadcrumb-select.js +122 -136
  127. package/lib/breadcrumb-select/index.js +9 -0
  128. package/lib/components.js +9 -0
  129. package/lib/contextmenu/contextmenu-item.js +23 -18
  130. package/lib/contextmenu/contextmenu.js +67 -72
  131. package/lib/contextmenu/index.js +9 -0
  132. package/lib/contextmenu/use-contextmenu.js +10 -1
  133. package/lib/data-form/data-form-item.js +40 -48
  134. package/lib/data-form/data-form.js +175 -212
  135. package/lib/data-form/dynamic-component.js +9 -0
  136. package/lib/data-form/form-components/Blots/AtBlot.js +9 -0
  137. package/lib/data-form/form-components/bwa-date-picker.js +49 -50
  138. package/lib/data-form/form-components/bwa-date-time-picker.js +54 -55
  139. package/lib/data-form/form-components/bwa-input-float.js +47 -47
  140. package/lib/data-form/form-components/bwa-input-integer.js +60 -67
  141. package/lib/data-form/form-components/bwa-input.js +42 -42
  142. package/lib/data-form/form-components/bwa-multi-select.js +39 -39
  143. package/lib/data-form/form-components/bwa-rich-text-tinymce.js +229 -554
  144. package/lib/data-form/form-components/bwa-rich-text.js +325 -403
  145. package/lib/data-form/form-components/bwa-select.js +80 -83
  146. package/lib/data-form/form-components/bwa-textarea.js +37 -37
  147. package/lib/data-form/form-components/bwa-upload.js +159 -172
  148. package/lib/data-form/form-components/bwa-user-multi-select.js +34 -34
  149. package/lib/data-form/form-components/bwa-user-select.js +71 -85
  150. package/lib/data-form/index.js +9 -0
  151. package/lib/data-table/data-column-view.js +124 -146
  152. package/lib/data-table/data-table-card.js +49 -48
  153. package/lib/data-table/data-table-column.js +54 -57
  154. package/lib/data-table/data-table.js +327 -403
  155. package/lib/data-table/dynamic-component.js +9 -0
  156. package/lib/data-table/index.js +9 -0
  157. package/lib/data-table/use-datatable-drag.js +9 -0
  158. package/lib/datatable-settings/datatable-settings.js +285 -327
  159. package/lib/datatable-settings/index.js +9 -0
  160. package/lib/date-range/date-picker.js +124 -130
  161. package/lib/date-range/date-range.js +172 -215
  162. package/lib/date-range/index.js +9 -0
  163. package/lib/drag-list/constants.js +10 -0
  164. package/lib/drag-list/drag-item.js +50 -55
  165. package/lib/drag-list/drag-list.js +57 -59
  166. package/lib/drag-list/index.js +9 -0
  167. package/lib/drag-list/use-drag-list.js +10 -1
  168. package/lib/dragable/constants.js +10 -0
  169. package/lib/dragable/dragable-item.js +26 -22
  170. package/lib/dragable/dragable-operation.js +32 -31
  171. package/lib/dragable/dragable.js +32 -31
  172. package/lib/dragable/index.js +9 -0
  173. package/lib/dragable/use-dragable.js +9 -0
  174. package/lib/filter-panel/conditions/condition.js +9 -0
  175. package/lib/filter-panel/conditions/date-range-condition.js +50 -49
  176. package/lib/filter-panel/conditions/department-condition/department-condition.js +81 -98
  177. package/lib/filter-panel/conditions/department-condition/department-node.js +68 -72
  178. package/lib/filter-panel/conditions/index.js +9 -0
  179. package/lib/filter-panel/conditions/input-condition.js +87 -90
  180. package/lib/filter-panel/conditions/multi-user-condition.js +65 -66
  181. package/lib/filter-panel/conditions/multiple-menu-condition.js +43 -53
  182. package/lib/filter-panel/conditions/single-menu-condition.js +70 -64
  183. package/lib/filter-panel/conditions/single-user-condition.js +65 -66
  184. package/lib/filter-panel/filter-panel-item.js +50 -54
  185. package/lib/filter-panel/filter-panel.js +146 -155
  186. package/lib/filter-panel/index.js +9 -0
  187. package/lib/filter-panel/use-filter-panel-item.js +9 -0
  188. package/lib/filter-panel/use-filter-panel.js +9 -0
  189. package/lib/hooks/use-data/index.js +9 -0
  190. package/lib/index.js +9 -0
  191. package/lib/layout/index.js +9 -0
  192. package/lib/layout/layout.js +86 -84
  193. package/lib/make-installer.js +9 -0
  194. package/lib/math/Rectangle.js +10 -0
  195. package/lib/menu/index.js +9 -0
  196. package/lib/menu/menu-item.js +64 -69
  197. package/lib/menu/menu.js +63 -69
  198. package/lib/node_modules/.pnpm/{@vueuse_core@9.6.0_vue@3.2.41 → @vueuse_core@9.13.0_vue@3.5.29_typescript@4.9.5_}/node_modules/@vueuse/core/index.js +685 -451
  199. package/lib/node_modules/.pnpm/{@vueuse_shared@9.6.0_vue@3.2.41 → @vueuse_shared@9.13.0_vue@3.5.29_typescript@4.9.5_}/node_modules/@vueuse/shared/index.js +109 -44
  200. package/lib/panel/index.js +9 -0
  201. package/lib/panel/panel.js +48 -52
  202. package/lib/panel-tabs/index.js +9 -0
  203. package/lib/panel-tabs/panel-tabs.js +9 -0
  204. package/lib/pct-filter-panel/index.js +9 -0
  205. package/lib/pct-filter-panel/pct-compents/index.js +9 -0
  206. package/lib/pct-filter-panel/pct-compents/pct-Input-condition.js +72 -74
  207. package/lib/pct-filter-panel/pct-compents/pct-date-range-condition.js +76 -76
  208. package/lib/pct-filter-panel/pct-compents/pct-multiple-menu-condition.js +344 -373
  209. package/lib/pct-filter-panel/pct-compents/pct-multiple-menu-condition2.js +148 -153
  210. package/lib/pct-filter-panel/pct-filter-panel-item.js +51 -55
  211. package/lib/pct-filter-panel/pct-filter-panel.js +234 -247
  212. package/lib/pct-filter-panel/use-filter-panel-item.js +9 -0
  213. package/lib/pct-filter-panel/use-filter-panel.js +9 -0
  214. package/lib/plugins.js +9 -0
  215. package/lib/progress/index.js +9 -0
  216. package/lib/progress/progress-item.js +70 -80
  217. package/lib/progress/progress.js +73 -77
  218. package/lib/progress/use-progress.js +9 -0
  219. package/lib/utils/db.js +9 -0
  220. package/lib/utils.css +1 -0
  221. package/lib/utils.js +9 -0
  222. package/lib/where-filter-panel/index.js +9 -0
  223. package/lib/where-filter-panel/use-where-filter-panel.js +9 -0
  224. package/lib/where-filter-panel/where-filter-panel.js +20 -14
  225. package/package.json +1 -1
  226. package/style/index.css +1 -1
  227. package/es/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.mjs +0 -28
  228. package/lib/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +0 -32
@@ -12,391 +12,321 @@ var lodash = require('lodash');
12
12
  var rxjs = require('rxjs');
13
13
  var _pluginVue_exportHelper = require('../_virtual/_plugin-vue_export-helper.js');
14
14
 
15
- const _hoisted_1 = /*#__PURE__*/vue.createElementVNode("i", { class: "ptp-icon ptp-buzhou-yidong" }, null, -1 /* HOISTED */);
16
-
17
-
18
- const _sfc_main = {
19
- __name: 'data-table',
20
- props: {
21
- dataTable: {
22
- type: Object,
23
- required: true,
24
- },
25
- autoLoad: {
26
- type: Boolean,
27
- default: true,
28
- },
29
- showIndex: {
30
- type: Boolean,
31
- default: false,
32
- },
33
- indexColumnLabel: {
34
- type: String,
35
- default: '编号',
36
- },
37
- selection: {
38
- type: Boolean,
39
- default: false,
40
- },
41
- paginationLayout: {
42
- type: String,
43
- default: 'sizes, prev, pager, next, jumper',
44
- },
45
- paginationPageSizes: {
46
- type: Array,
47
- default: () => [10, 20, 50, 100, 200],
48
- },
49
- showPagination: {
50
- type: Boolean,
51
- default: true,
52
- },
53
- whereParamName: {
54
- type: String,
55
- default: '',
56
- },
57
- showDrag: {
58
- type: Boolean,
59
- default: false,
60
- },
61
- border: {
62
- type: Boolean,
63
- default: true,
64
- }
65
- },
66
- emits: ['drag'],
67
- setup(__props, { emit }) {
68
-
69
- const props = __props;
70
-
71
- defineOptions({ name: 'BwaDataTable' });
72
-
73
-
74
-
75
- const attrs = vue.useAttrs();
76
-
77
- const userService = webBaseClientVue.useService('UserService');
78
-
79
- const elTable = vue.ref(null);
80
-
81
- const dataTable = props.dataTable;
82
- dataTable._userService = userService.value?.getUserList;
83
-
84
- const dataTableEl = vue.ref(null);
85
-
86
- const displayColumns = vue.computed(
87
- () => vue.unref(dataTable).getDisplayColumns() || []
88
- );
89
-
90
- vue.watch(
91
- vue.computed(() => props.whereParamName),
92
- (whereParamName) => {
93
- dataTable.setWhereParamName(whereParamName || '');
94
- },
95
- { immediate: true, flush: 'sync' }
96
- );
97
-
98
- const searchParams = vue.computed(() => props.searchParams);
99
-
100
-
101
-
102
- const debounceDelay = webBaseClientVue.useGlobalConfig('debounceDelay', 500);
103
-
104
- //当前data table 上下文对象
105
- vue.provide(
106
- webBaseClientVue.dataTableKey,
107
- vue.reactive({
108
- dataTable,
109
- displayColumns,
110
- })
111
- );
112
-
113
- const ns = webBaseClientVue.useNamespace('datatable');
114
-
115
- const { barRectangle } = useDatatableDrag.useDataTableDrag(
116
- dataTableEl,
117
- '.bwa-datatable__drag',
118
- '.el-table__row',
119
- { emit }
120
- );
121
-
122
- const processing = vue.ref(false);
123
-
124
- const data = vue.computed(() => {
125
- return props.dataTable.data;
126
- });
127
-
128
- webBaseClientVue.useEventDispatcher(dataTable, 'load-successfully', async (res) => {
129
- if (res.code != 0) {
130
- return;
131
- }
132
-
133
- const _userService = vue.unref(userService);
134
-
135
- if (!_userService) {
136
- return;
137
- }
138
-
139
- let columns = dataTable.getColumns();
140
-
141
- const componentNames = ['BwaUserSelect', 'BwaUserMultiSelect'];
142
-
143
- columns = columns
144
- .filter((column) => componentNames.includes(column.formComponent))
145
- .filter((column) => column.visible)
146
- .filter((column) => column.isExtend);
147
-
148
- if (!columns.length) {
149
- return;
150
- }
151
-
152
- processing.value = true;
153
-
154
- const data = res.data;
155
-
156
- let ids = data
157
- .reduce((result, item) => {
158
- return result.concat(
159
- columns.reduce((result, column) => {
160
- let value = lodash.get(item, column.fullAttrName);
161
-
162
- value = Array.isArray(value) ? value : value ? [value] : [];
163
-
164
- return result.concat(value);
165
- }, [])
166
- );
167
- }, [])
168
- .map((id) => id + '');
169
-
170
- ids = [...new Set(ids)];
171
-
172
- try {
173
- const userListResult = await _userService.getUserListByIds(ids);
174
-
175
- if (userListResult.code != 0) {
176
- return;
177
- }
178
-
179
- for (const column of columns) {
180
- column.componentProps = column.componentProps || {};
181
- column.componentProps.options = (userListResult.data || []).map(
182
- (item) => ({
183
- label: item.label,
184
- value: item.value,
185
- })
186
- );
187
- }
188
-
189
- console.log(userListResult);
190
- } finally {
191
- processing.value = false;
192
- }
193
- });
194
-
195
- //手动排序
196
- const sortHandle = (column, prop, order) => {
197
- let sortColumn = '';
198
- let sortType = '';
199
- if (column.order){
200
- sortColumn = column.prop;
201
- sortType = column.order=="descending"?0:1;
202
- dataTable.setParam('sortColumn', sortColumn);
203
- dataTable.setParam('sortType', sortType);
204
- }else {
205
- dataTable.setParam('sortColumn', sortColumn);
206
- dataTable.setParam('sortType', sortType);
207
- }
208
- dataTable.load();
209
- };
210
-
211
- webBaseClientVue.useEventDispatcher(dataTable, 'load-successfully', (res) => {
212
- if (!elTable.value) {
213
- return;
214
- }
215
-
216
- vue.unref(elTable).store.updateSelectionByRowKey();
217
-
218
- if (res.code != 0) {
219
- ElementPlus.ElMessage.error(res.msg);
220
- }
221
- });
222
-
223
- function sortColumn(array) {
224
- array.forEach((item) => {
225
- item.no = item.getColumnIndex?.();
226
- if (item.children?.length) {
227
- sortColumn(item.children);
228
- }
229
- });
230
- array.sort((cur, pre) => cur.no - pre.no);
231
- }
232
-
233
- const tableSelectSubject = new rxjs.Subject();
234
- const selectionChange = tableSelectSubject.next.bind(tableSelectSubject);
235
-
236
- const totalPage = vue.computed(() => dataTable.getTotalPage());
237
-
238
- const tableSelectSubscription = tableSelectSubject
239
- .pipe(rxjs.debounceTime(debounceDelay))
240
- .subscribe(vue.unref(dataTable).setSelection.bind(vue.unref(dataTable)));
241
-
242
- const selectChangeAPIObservable = new rxjs.Observable((observer) =>
243
- webBaseClientVue.useEventDispatcher(
244
- props.dataTable,
245
- 'select-change',
246
- observer.next.bind(observer)
247
- )
248
- )
249
- .pipe(
250
- rxjs.filter((selection) => {
251
- if (!vue.unref(elTable)) {
252
- return false;
253
- }
254
-
255
- const selectionRows = vue.unref(elTable).getSelectionRows();
256
-
257
- if (selectionRows.length !== selection.length) {
258
- return true;
259
- }
260
-
261
- const primaryKey = dataTable.primaryKey;
262
- return !selectionRows.every((item) =>
263
- selection.find((itm) => item[primaryKey] === item[primaryKey])
264
- );
265
- })
266
- )
267
- .subscribe((selection) => {
268
- vue.unref(elTable).clearSelection();
269
- for (const item of selection) {
270
- vue.unref(elTable).toggleRowSelection(item, true);
271
- }
272
- });
273
-
274
- if (props.autoLoad) {
275
- //初始化加载
276
- dataTable.load();
277
- }
278
-
279
- const searchParamsSubscription = new rxjs.Observable((observer) =>
280
- webBaseClientVue.useEventDispatcher(
281
- props.dataTable.filterPanel,
282
- 'params-change',
283
- observer.next.bind(observer)
284
- )
285
- )
286
- .pipe(
287
- rxjs.filter(() => props.dataTable.filterPanel.ready),
288
- rxjs.debounceTime(vue.unref(debounceDelay))
289
- )
290
- .subscribe(() => {
291
- props.dataTable.load();
292
- });
293
-
294
- const subscription = props.dataTable
295
- .getDisplayColumnsSubject()
296
- .pipe(
297
- rxjs.map(() => vue.unref(elTable)),
298
- rxjs.delayWhen(() => rxjs.from(vue.nextTick())),
299
- rxjs.map((elTable) => elTable?.store),
300
- rxjs.skipWhile((store) => !store)
301
- )
302
- .subscribe((store) => {
303
- sortColumn(vue.unref(store.states._columns));
304
-
305
- store.updateColumns();
306
- store.scheduleLayout();
307
- });
308
-
309
- vue.onUnmounted(() => {
310
- selectChangeAPIObservable.unsubscribe();
311
- subscription.unsubscribe();
312
- tableSelectSubscription.unsubscribe();
313
- searchParamsSubscription.unsubscribe();
314
- });
315
-
316
- return (_ctx, _cache) => {
317
- return (vue.openBlock(), vue.createElementBlock("div", {
318
- class: vue.normalizeClass(vue.unref(ns).b()),
319
- ref_key: "dataTableEl",
320
- ref: dataTableEl
321
- }, [
322
- vue.renderSlot(_ctx.$slots, "default", { dataTable: vue.unref(dataTable) }, () => [
323
- vue.createVNode(vue.unref(ElementPlus.ElTable), vue.mergeProps({
324
- class: "content",
325
- height: "100%",
326
- ref_key: "elTable",
327
- ref: elTable,
328
- data: vue.unref(data),
329
- "row-key": vue.unref(dataTable).primaryKey,
330
- "show-header": "",
331
- stripe: ""
332
- }, vue.unref(attrs), {
333
- onSelectionChange: vue.unref(selectionChange),
334
- onSortChange: sortHandle,
335
- border: __props.border
336
- }), {
337
- empty: vue.withCtx(() => [
338
- vue.renderSlot(_ctx.$slots, "empty-table")
339
- ]),
340
- default: vue.withCtx(() => [
341
- (__props.showDrag)
342
- ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElTableColumn), {
15
+ // Inject __name helper
16
+ if (typeof __name === 'undefined') {
17
+ function __name(obj, name) {
18
+ Object.defineProperty(obj, "name", {
19
+ value: name,
20
+ configurable: true
21
+ });
22
+ }
23
+ }
24
+ const __default__ = vue.defineComponent({ name: "BwaDataTable" });
25
+ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
26
+ props: {
27
+ dataTable: {
28
+ type: Object,
29
+ required: true
30
+ },
31
+ autoLoad: {
32
+ type: Boolean,
33
+ default: true
34
+ },
35
+ showIndex: {
36
+ type: Boolean,
37
+ default: false
38
+ },
39
+ indexColumnLabel: {
40
+ type: String,
41
+ default: "\u7F16\u53F7"
42
+ },
43
+ selection: {
44
+ type: Boolean,
45
+ default: false
46
+ },
47
+ paginationLayout: {
48
+ type: String,
49
+ default: "sizes, prev, pager, next, jumper"
50
+ },
51
+ paginationPageSizes: {
52
+ type: Array,
53
+ default: () => [10, 20, 50, 100, 200]
54
+ },
55
+ showPagination: {
56
+ type: Boolean,
57
+ default: true
58
+ },
59
+ whereParamName: {
60
+ type: String,
61
+ default: ""
62
+ },
63
+ showDrag: {
64
+ type: Boolean,
65
+ default: false
66
+ },
67
+ border: {
68
+ type: Boolean,
69
+ default: true
70
+ }
71
+ },
72
+ emits: ["drag"],
73
+ setup(__props, { emit: __emit }) {
74
+ var _a;
75
+ ;
76
+ const props = __props;
77
+ const attrs = vue.useAttrs();
78
+ const userService = webBaseClientVue.useService("UserService");
79
+ const elTable = vue.ref(null);
80
+ const dataTable = props.dataTable;
81
+ dataTable._userService = (_a = userService.value) == null ? void 0 : _a.getUserList;
82
+ const dataTableEl = vue.ref(null);
83
+ const displayColumns = vue.computed(
84
+ () => vue.unref(dataTable).getDisplayColumns() || []
85
+ );
86
+ vue.watch(
87
+ vue.computed(() => props.whereParamName),
88
+ (whereParamName) => {
89
+ dataTable.setWhereParamName(whereParamName || "");
90
+ },
91
+ { immediate: true, flush: "sync" }
92
+ );
93
+ const searchParams = vue.computed(() => props.searchParams);
94
+ const emit = __emit;
95
+ const debounceDelay = webBaseClientVue.useGlobalConfig("debounceDelay", 500);
96
+ vue.provide(
97
+ webBaseClientVue.dataTableKey,
98
+ vue.reactive({
99
+ dataTable,
100
+ displayColumns
101
+ })
102
+ );
103
+ const ns = webBaseClientVue.useNamespace("datatable");
104
+ const { barRectangle } = useDatatableDrag.useDataTableDrag(
105
+ dataTableEl,
106
+ ".bwa-datatable__drag",
107
+ ".el-table__row",
108
+ { emit }
109
+ );
110
+ const processing = vue.ref(false);
111
+ const data = vue.computed(() => {
112
+ return props.dataTable.data;
113
+ });
114
+ webBaseClientVue.useEventDispatcher(dataTable, "load-successfully", async (res) => {
115
+ if (res.code != 0) {
116
+ return;
117
+ }
118
+ const _userService = vue.unref(userService);
119
+ if (!_userService) {
120
+ return;
121
+ }
122
+ let columns = dataTable.getColumns();
123
+ const componentNames = ["BwaUserSelect", "BwaUserMultiSelect"];
124
+ columns = columns.filter((column) => componentNames.includes(column.formComponent)).filter((column) => column.visible).filter((column) => column.isExtend);
125
+ if (!columns.length) {
126
+ return;
127
+ }
128
+ processing.value = true;
129
+ const data2 = res.data;
130
+ let ids = data2.reduce((result, item) => {
131
+ return result.concat(
132
+ columns.reduce((result2, column) => {
133
+ let value = lodash.get(item, column.fullAttrName);
134
+ value = Array.isArray(value) ? value : value ? [value] : [];
135
+ return result2.concat(value);
136
+ }, [])
137
+ );
138
+ }, []).map((id) => id + "");
139
+ ids = [...new Set(ids)];
140
+ try {
141
+ const userListResult = await _userService.getUserListByIds(ids);
142
+ if (userListResult.code != 0) {
143
+ return;
144
+ }
145
+ for (const column of columns) {
146
+ column.componentProps = column.componentProps || {};
147
+ column.componentProps.options = (userListResult.data || []).map(
148
+ (item) => ({
149
+ label: item.label,
150
+ value: item.value
151
+ })
152
+ );
153
+ }
154
+ console.log(userListResult);
155
+ } finally {
156
+ processing.value = false;
157
+ }
158
+ });
159
+ const sortHandle = (column, prop, order) => {
160
+ let sortColumn2 = "";
161
+ let sortType = "";
162
+ if (column.order) {
163
+ sortColumn2 = column.prop;
164
+ sortType = column.order == "descending" ? 0 : 1;
165
+ dataTable.setParam("sortColumn", sortColumn2);
166
+ dataTable.setParam("sortType", sortType);
167
+ } else {
168
+ dataTable.setParam("sortColumn", sortColumn2);
169
+ dataTable.setParam("sortType", sortType);
170
+ }
171
+ dataTable.load();
172
+ };
173
+ webBaseClientVue.useEventDispatcher(dataTable, "load-successfully", (res) => {
174
+ if (!elTable.value) {
175
+ return;
176
+ }
177
+ vue.unref(elTable).store.updateSelectionByRowKey();
178
+ if (res.code != 0) {
179
+ ElementPlus.ElMessage.error(res.msg);
180
+ }
181
+ });
182
+ function sortColumn(array) {
183
+ array.forEach((item) => {
184
+ var _a2, _b;
185
+ item.no = (_a2 = item.getColumnIndex) == null ? void 0 : _a2.call(item);
186
+ if ((_b = item.children) == null ? void 0 : _b.length) {
187
+ sortColumn(item.children);
188
+ }
189
+ });
190
+ array.sort((cur, pre) => cur.no - pre.no);
191
+ }
192
+ const tableSelectSubject = new rxjs.Subject();
193
+ const selectionChange = tableSelectSubject.next.bind(tableSelectSubject);
194
+ const totalPage = vue.computed(() => dataTable.getTotalPage());
195
+ const tableSelectSubscription = tableSelectSubject.pipe(rxjs.debounceTime(debounceDelay)).subscribe(vue.unref(dataTable).setSelection.bind(vue.unref(dataTable)));
196
+ const selectChangeAPIObservable = new rxjs.Observable(
197
+ (observer) => webBaseClientVue.useEventDispatcher(
198
+ props.dataTable,
199
+ "select-change",
200
+ observer.next.bind(observer)
201
+ )
202
+ ).pipe(
203
+ rxjs.filter((selection) => {
204
+ if (!vue.unref(elTable)) {
205
+ return false;
206
+ }
207
+ const selectionRows = vue.unref(elTable).getSelectionRows();
208
+ if (selectionRows.length !== selection.length) {
209
+ return true;
210
+ }
211
+ const primaryKey = dataTable.primaryKey;
212
+ return !selectionRows.every(
213
+ (item) => selection.find((itm) => item[primaryKey] === item[primaryKey])
214
+ );
215
+ })
216
+ ).subscribe((selection) => {
217
+ vue.unref(elTable).clearSelection();
218
+ for (const item of selection) {
219
+ vue.unref(elTable).toggleRowSelection(item, true);
220
+ }
221
+ });
222
+ if (props.autoLoad) {
223
+ dataTable.load();
224
+ }
225
+ const searchParamsSubscription = new rxjs.Observable(
226
+ (observer) => webBaseClientVue.useEventDispatcher(
227
+ props.dataTable.filterPanel,
228
+ "params-change",
229
+ observer.next.bind(observer)
230
+ )
231
+ ).pipe(
232
+ rxjs.filter(() => props.dataTable.filterPanel.ready),
233
+ rxjs.debounceTime(vue.unref(debounceDelay))
234
+ ).subscribe(() => {
235
+ props.dataTable.load();
236
+ });
237
+ const subscription = props.dataTable.getDisplayColumnsSubject().pipe(
238
+ rxjs.map(() => vue.unref(elTable)),
239
+ rxjs.delayWhen(() => rxjs.from(vue.nextTick())),
240
+ rxjs.map((elTable2) => elTable2 == null ? void 0 : elTable2.store),
241
+ rxjs.skipWhile((store) => !store)
242
+ ).subscribe((store) => {
243
+ sortColumn(vue.unref(store.states._columns));
244
+ store.updateColumns();
245
+ store.scheduleLayout();
246
+ });
247
+ vue.onUnmounted(() => {
248
+ selectChangeAPIObservable.unsubscribe();
249
+ subscription.unsubscribe();
250
+ tableSelectSubscription.unsubscribe();
251
+ searchParamsSubscription.unsubscribe();
252
+ });
253
+ return (_ctx, _cache) => {
254
+ return vue.openBlock(), vue.createElementBlock("div", {
255
+ class: vue.normalizeClass(vue.unref(ns).b()),
256
+ ref_key: "dataTableEl",
257
+ ref: dataTableEl
258
+ }, [
259
+ vue.renderSlot(_ctx.$slots, "default", { dataTable: vue.unref(dataTable) }, () => [
260
+ vue.createVNode(vue.unref(ElementPlus.ElTable), vue.mergeProps({
261
+ class: "content",
262
+ height: "100%",
263
+ ref_key: "elTable",
264
+ ref: elTable,
265
+ data: data.value,
266
+ "row-key": vue.unref(dataTable).primaryKey,
267
+ "show-header": "",
268
+ stripe: ""
269
+ }, vue.unref(attrs), {
270
+ onSelectionChange: vue.unref(selectionChange),
271
+ onSortChange: sortHandle,
272
+ border: __props.border
273
+ }), {
274
+ empty: vue.withCtx(() => [
275
+ vue.renderSlot(_ctx.$slots, "empty-table")
276
+ ]),
277
+ default: vue.withCtx(() => [
278
+ __props.showDrag ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElTableColumn), {
343
279
  key: 0,
344
280
  width: "40px"
345
281
  }, {
346
282
  default: vue.withCtx(() => [
347
283
  vue.createElementVNode("div", {
348
- class: vue.normalizeClass(vue.unref(ns).e('drag'))
284
+ class: vue.normalizeClass(vue.unref(ns).e("drag"))
349
285
  }, [
350
286
  vue.renderSlot(_ctx.$slots, "default", {}, () => [
351
- _hoisted_1
287
+ _cache[2] || (_cache[2] = vue.createElementVNode("i", { class: "ptp-icon ptp-buzhou-yidong" }, null, -1))
352
288
  ])
353
- ], 2 /* CLASS */)
289
+ ], 2)
354
290
  ]),
355
- _: 3 /* FORWARDED */
356
- }))
357
- : vue.createCommentVNode("v-if", true),
358
- (__props.selection)
359
- ? vue.renderSlot(_ctx.$slots, "selection", { key: 1 }, () => [
291
+ _: 3
292
+ })) : vue.createCommentVNode("v-if", true),
293
+ __props.selection ? vue.renderSlot(_ctx.$slots, "selection", { key: 1 }, () => [
360
294
  vue.createVNode(vue.unref(ElementPlus.ElTableColumn), {
361
295
  type: "selection",
362
296
  align: "center",
363
297
  width: "56",
364
298
  "reserve-selection": true
365
299
  })
366
- ])
367
- : vue.createCommentVNode("v-if", true),
368
- (__props.showIndex)
369
- ? vue.renderSlot(_ctx.$slots, "index", { key: 2 }, () => [
300
+ ]) : vue.createCommentVNode("v-if", true),
301
+ __props.showIndex ? vue.renderSlot(_ctx.$slots, "index", { key: 2 }, () => [
370
302
  vue.createVNode(vue.unref(ElementPlus.ElTableColumn), {
371
303
  type: "index",
372
304
  width: "60",
373
305
  align: "center",
374
306
  label: __props.indexColumnLabel
375
- }, null, 8 /* PROPS */, ["label"])
376
- ])
377
- : vue.createCommentVNode("v-if", true),
378
- vue.renderSlot(_ctx.$slots, "table-columns", { dataTable: vue.unref(dataTable) }, () => [
379
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(displayColumns), (item) => {
380
- return (vue.openBlock(), vue.createBlock(dataTableColumn["default"], vue.mergeProps({
381
- "column-key": item.attrName,
382
- key: item.attrName,
383
- label: item.title,
384
- prop: item.fullAttrName,
385
- "min-width": item.width,
386
- align: item.align
387
- }, item.componentProps, {
388
- sortable: item.sortable=='custom'
389
- }), {
390
- header: vue.withCtx(() => [
391
- vue.renderSlot(_ctx.$slots, `table-header-col-${item.attrName}`, {}, () => [
392
- vue.createTextVNode(vue.toDisplayString(item.title), 1 /* TEXT */)
393
- ])
394
- ]),
395
- default: vue.withCtx(({ row, $index }) => [
396
- (vue.unref(data).length)
397
- ? vue.renderSlot(_ctx.$slots, 'table-col-' + item.attrName, {
307
+ }, null, 8, ["label"])
308
+ ]) : vue.createCommentVNode("v-if", true),
309
+ vue.renderSlot(_ctx.$slots, "table-columns", { dataTable: vue.unref(dataTable) }, () => [
310
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayColumns.value, (item) => {
311
+ return vue.openBlock(), vue.createBlock(dataTableColumn["default"], vue.mergeProps({
312
+ "column-key": item.attrName,
313
+ key: item.attrName,
314
+ label: item.title,
315
+ prop: item.fullAttrName,
316
+ "min-width": item.width,
317
+ align: item.align
318
+ }, { ref_for: true }, item.componentProps, {
319
+ sortable: item.sortable == "custom"
320
+ }), {
321
+ header: vue.withCtx(() => [
322
+ vue.renderSlot(_ctx.$slots, `table-header-col-${item.attrName}`, {}, () => [
323
+ vue.createTextVNode(vue.toDisplayString(item.title), 1)
324
+ ])
325
+ ]),
326
+ default: vue.withCtx(({ row, $index }) => [
327
+ data.value.length ? vue.renderSlot(_ctx.$slots, "table-col-" + item.attrName, {
398
328
  key: 0,
399
- row: row,
329
+ row,
400
330
  index: $index,
401
331
  column: item,
402
332
  dataTable: vue.unref(dataTable)
@@ -404,56 +334,50 @@ return (_ctx, _cache) => {
404
334
  vue.createVNode(vue.unref(dynamicComponent["default"]), {
405
335
  column: item,
406
336
  record: row
407
- }, null, 8 /* PROPS */, ["column", "record"])
408
- ])
409
- : vue.createCommentVNode("v-if", true)
410
- ]),
411
- _: 2 /* DYNAMIC */
412
- }, 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["column-key", "label", "prop", "min-width", "align", "sortable"]))
413
- }), 128 /* KEYED_FRAGMENT */))
414
- ]),
415
- vue.renderSlot(_ctx.$slots, "column-append")
337
+ }, null, 8, ["column", "record"])
338
+ ]) : vue.createCommentVNode("v-if", true)
339
+ ]),
340
+ _: 2
341
+ }, 1040, ["column-key", "label", "prop", "min-width", "align", "sortable"]);
342
+ }), 128))
343
+ ]),
344
+ vue.renderSlot(_ctx.$slots, "column-append")
345
+ ]),
346
+ _: 3
347
+ }, 16, ["data", "row-key", "onSelectionChange", "border"])
416
348
  ]),
417
- _: 3 /* FORWARDED */
418
- }, 16 /* FULL_PROPS */, ["data", "row-key", "onSelectionChange", "border"])
419
- ]),
420
- (__props.showPagination)
421
- ? (vue.openBlock(), vue.createElementBlock("div", {
349
+ __props.showPagination ? (vue.openBlock(), vue.createElementBlock("div", {
422
350
  key: 0,
423
- class: vue.normalizeClass(vue.unref(ns).e('pagination'))
351
+ class: vue.normalizeClass(vue.unref(ns).e("pagination"))
424
352
  }, [
425
353
  vue.createElementVNode("div", {
426
- class: vue.normalizeClass(vue.unref(ns).e('pagination-info'))
427
- }, " " + vue.toDisplayString(vue.unref(totalPage)) + "页," + vue.toDisplayString(vue.unref(dataTable).totalRecCount) + " ", 3 /* TEXT, CLASS */),
354
+ class: vue.normalizeClass(vue.unref(ns).e("pagination-info"))
355
+ }, " \u5171" + vue.toDisplayString(totalPage.value) + "\u9875\uFF0C" + vue.toDisplayString(vue.unref(dataTable).totalRecCount) + "\u6761 ", 3),
428
356
  vue.createVNode(vue.unref(ElementPlus.ElPagination), {
429
357
  currentPage: vue.unref(dataTable).pageNum,
430
358
  "page-sizes": __props.paginationPageSizes,
431
359
  "page-size": vue.unref(dataTable).pageSize,
432
360
  layout: __props.paginationLayout,
433
361
  total: vue.unref(dataTable).totalRecCount,
434
- onSizeChange: _cache[0] || (_cache[0] = $event => (vue.unref(dataTable).setPageSize($event))),
435
- onCurrentChange: _cache[1] || (_cache[1] = $event => (vue.unref(dataTable).pageTo($event))),
362
+ onSizeChange: _cache[0] || (_cache[0] = ($event) => vue.unref(dataTable).setPageSize($event)),
363
+ onCurrentChange: _cache[1] || (_cache[1] = ($event) => vue.unref(dataTable).pageTo($event)),
436
364
  teleported: false
437
- }, null, 8 /* PROPS */, ["currentPage", "page-sizes", "page-size", "layout", "total"])
438
- ], 2 /* CLASS */))
439
- : vue.createCommentVNode("v-if", true),
440
- (vue.unref(barRectangle))
441
- ? (vue.openBlock(), vue.createElementBlock("div", {
365
+ }, null, 8, ["currentPage", "page-sizes", "page-size", "layout", "total"])
366
+ ], 2)) : vue.createCommentVNode("v-if", true),
367
+ vue.unref(barRectangle) ? (vue.openBlock(), vue.createElementBlock("div", {
442
368
  key: 1,
443
- class: vue.normalizeClass(vue.unref(ns).e('dragbar')),
444
- style: vue.normalizeStyle({
445
- left: vue.unref(barRectangle).left + 'px',
446
- top: vue.unref(barRectangle).top + 'px',
447
- width: vue.unref(barRectangle).width + 'px',
448
- height: vue.unref(barRectangle).height + 'px',
449
- })
450
- }, null, 6 /* CLASS, STYLE */))
451
- : vue.createCommentVNode("v-if", true)
452
- ], 2 /* CLASS */))
453
- }
454
- }
455
-
456
- };
457
- var DataTable = /*#__PURE__*/_pluginVue_exportHelper["default"](_sfc_main, [['__file',"data-table.vue"]]);
369
+ class: vue.normalizeClass(vue.unref(ns).e("dragbar")),
370
+ style: vue.normalizeStyle({
371
+ left: vue.unref(barRectangle).left + "px",
372
+ top: vue.unref(barRectangle).top + "px",
373
+ width: vue.unref(barRectangle).width + "px",
374
+ height: vue.unref(barRectangle).height + "px"
375
+ })
376
+ }, null, 6)) : vue.createCommentVNode("v-if", true)
377
+ ], 2);
378
+ };
379
+ }
380
+ });
381
+ var DataTable = /* @__PURE__ */ _pluginVue_exportHelper["default"](_sfc_main, [["__file", "data-table.vue"]]);
458
382
 
459
383
  exports["default"] = DataTable;