@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
@@ -10,255 +10,201 @@ var rxjs = require('rxjs');
10
10
  var db = require('../utils/db.js');
11
11
  var _pluginVue_exportHelper = require('../_virtual/_plugin-vue_export-helper.js');
12
12
 
13
- const _sfc_main = {
14
- __name: 'datatable-settings',
15
- props: {
16
- dataTable: {
17
- type: Object,
18
- required: true,
19
- },
20
- },
21
- emits: [
22
- 'reset-columns',
23
- 'sort-change',
24
- 'close',
25
- 'visible-change',
26
- 'column-visible-change'
27
- ],
28
- setup(__props, { emit }) {
29
-
30
- const props = __props;
31
-
32
- defineOptions({ name: 'BwaDataTableSetting' });
33
-
34
-
35
-
36
-
37
-
38
- const attrs = vue.useAttrs();
39
-
40
- const ns = webBaseClientVue.useNamespace('datatable-settings');
41
-
42
- const value = vue.ref(false);
43
-
44
- const handleClose = () => {
45
- value.value = false;
46
- emit('close');
47
- };
48
-
49
- const handleColumnVisibleChange = (column, visible) => {
50
- const tableColumns = [...displaySearchedColumns.value,...hiddenSearchedColumns.value ];
51
- emit('column-visible-change', tableColumns);
52
- };
53
-
54
- // 监听value变化,emit visible-change事件
55
- vue.watch(value, (newValue) => {
56
- emit('visible-change', newValue);
57
- });
58
-
59
- const appName = webBaseClientVue.useValue('AppName');
60
- const userService = webBaseClientVue.useService('UserService');
61
-
62
- const userID = vue.computed(() => vue.unref(userService)?.userInfo?.id || '');
63
-
64
- const isShowResetColumn = vue.computed(
65
- () => !props.dataTable.isDefaultColumnSort()
66
- );
67
-
68
- const key = vue.computed(
69
- () => `${vue.unref(appName)}_${props.dataTable.name}_settings`
70
- );
71
-
72
- const search = vue.ref('');
73
-
74
- const columns = vue.computed(() =>
75
- props.dataTable
76
- .getColumns()
77
- .filter((column) => column.settings.visible)
78
- .filter((column) => column.settings.visible)
79
- );
80
-
81
- const initColumns = async () => {
82
- let persistentColumnInfos = [];
83
-
84
- const result = await db.dataModelDB.tableHeaderSettings
85
- .where('[app+tableName+userID]')
86
- .equals([vue.unref(appName), props.dataTable.name, vue.unref(userID)])
87
- .toArray();
88
-
89
- if (result.length) {
90
- persistentColumnInfos = result[0]?.columnInfo ?? [];
91
- }
92
-
93
- if (persistentColumnInfos.some((item) => typeof item === 'string')) {
94
- persistentColumnInfos = persistentColumnInfos.map((columnInfo) => {
95
- return typeof columnInfo === 'object'
96
- ? columnInfo
97
- : { name: columnInfo, visible: true };
98
- });
99
- }
100
-
101
- const _dataTable = props.dataTable;
102
- let dataTableColumns = _dataTable
103
- .getColumns()
104
- .slice()
105
- .filter((item) => item.settings.visible);
106
-
107
- persistentColumnInfos = persistentColumnInfos.filter(
108
- (item) =>
109
- dataTableColumns.findIndex((column) => column.name === item.name) !== -1
110
- );
111
-
112
- if (!persistentColumnInfos) {
113
- return dataTableColumns;
114
- }
115
-
116
- let sortedColumns = persistentColumnInfos
117
- .map((columnInfo) =>
118
- dataTableColumns.find((column) => column.name === columnInfo.name)
119
- )
120
- .filter(Boolean);
121
-
122
- dataTableColumns = sortedColumns.concat(
123
- dataTableColumns.filter(
124
- (column) => !sortedColumns.find((col) => column.name === col.name)
125
- )
126
- );
127
-
128
- for (const column of dataTableColumns) {
129
- const persistentItem = persistentColumnInfos.find(
130
- (item) => item.name === column.name
131
- );
132
- column.visible = persistentItem?.visible ?? column.visible;
133
- }
134
-
135
- props.dataTable.setDisplayColumns(
136
- dataTableColumns.filter((column) => column.visible)
137
- );
138
-
139
- return dataTableColumns;
140
- };
141
-
142
- const resetColumns = () => {
143
- const _dataTable = props.dataTable;
144
-
145
- _dataTable.resetColumnSort();
146
- emit('reset-columns');
147
- };
148
-
149
- const allSearchedColumns = vue.computed(() => {
150
- const _search = vue.unref(search);
151
- return vue.unref(columns).filter((column) => column.title.indexOf(_search) > -1);
152
- });
153
-
154
- const hiddenSearchedColumns = vue.computed(() =>
155
- vue.unref(allSearchedColumns).filter((item) => !item.visible)
156
- );
157
-
158
- const displaySearchedColumns = vue.computed(() => {
159
- const _search = vue.unref(search);
160
- return props.dataTable
161
- .getDisplayColumns()
162
- .filter((column) => column.settings.visible)
163
- .filter((column) => column.title.indexOf(_search) > -1);
164
- });
165
-
166
- const handleSortChange = (sort) => {
167
- const _columns = vue.unref(columns);
168
- const displayColumns = sort
169
- .map(
170
- (attrName) =>
171
- _columns.find((column) => column.attrName === attrName) ?? null
172
- )
173
- .filter(Boolean);
174
-
175
- props.dataTable.setDisplayColumns(displayColumns);
176
- const tableColumns = [...displaySearchedColumns.value,...hiddenSearchedColumns.value ];
177
- emit('column-visible-change', tableColumns);
178
- emit('sort-change', sort, displayColumns);
179
- };
180
-
181
- const scope = vue.getCurrentScope();
182
-
183
- const handleInitCompleted = async () => {
184
- const dataTableColumns = await initColumns();
185
-
186
- const subscription = props.dataTable
187
- .getDisplayColumnsSubject()
188
- .pipe(
189
- rxjs.map((displayColumns) => {
190
- const hiddenColumns = dataTableColumns.filter(
191
- (column) =>
192
- !displayColumns.find(
193
- (displayColumn) => displayColumn.attrName === column.attrName
194
- )
195
- );
196
-
197
- return [...displayColumns, ...hiddenColumns].map((column) => ({
198
- name: column.name,
199
- visible: column.visible,
200
- }));
201
- })
202
- )
203
- .subscribe({
204
- next: (columnInfo) => {
205
- db.dataModelDB.tableHeaderSettings.put({
206
- app: vue.unref(appName),
207
- tableName: props.dataTable.name,
208
- userID: vue.unref(userID),
209
- columnInfo: columnInfo,
210
- });
211
- },
212
- });
213
-
214
- scope.run(() => {
215
- vue.onScopeDispose(() => {
216
- subscription.unsubscribe();
217
- });
218
- });
219
- };
220
-
221
- if (!props.dataTable.inited) {
222
- webBaseClientVue.useEventDispatcher(props.dataTable, 'init-completed', handleInitCompleted);
223
- } else {
224
- handleInitCompleted();
225
- }
226
-
227
- return (_ctx, _cache) => {
228
- const _component_RefreshRight = vue.resolveComponent("RefreshRight");
229
- const _component_Close = vue.resolveComponent("Close");
230
-
231
- return (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElTooltip), vue.mergeProps({
232
- visible: value.value,
233
- "onUpdate:visible": _cache[1] || (_cache[1] = $event => ((value).value = $event))
234
- }, vue.unref(attrs), {
235
- effect: "light",
236
- "show-arrow": false,
237
- trigger: "click",
238
- "popper-class": vue.unref(ns).b(),
239
- "gpu-acceleration": false,
240
- placement: "bottom",
241
- "append-to": ".bwa-application"
242
- }), {
243
- content: vue.withCtx(() => [
244
- vue.createElementVNode("div", {
245
- class: vue.normalizeClass(vue.unref(ns).e('content'))
246
- }, [
247
- vue.createElementVNode("div", {
248
- class: vue.normalizeClass(vue.unref(ns).e('header'))
249
- }, [
250
- vue.createTextVNode(" 表头设置 "),
251
- vue.createElementVNode("span", {
252
- class: vue.normalizeClass(vue.unref(ns).e('tools'))
13
+ // Inject __name helper
14
+ if (typeof __name === 'undefined') {
15
+ function __name(obj, name) {
16
+ Object.defineProperty(obj, "name", {
17
+ value: name,
18
+ configurable: true
19
+ });
20
+ }
21
+ }
22
+ const __default__ = vue.defineComponent({ name: "BwaDataTableSetting" });
23
+ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
24
+ props: {
25
+ dataTable: {
26
+ type: Object,
27
+ required: true
28
+ }
29
+ },
30
+ emits: [
31
+ "reset-columns",
32
+ "sort-change",
33
+ "close",
34
+ "visible-change",
35
+ "column-visible-change"
36
+ ],
37
+ setup(__props, { emit: __emit }) {
38
+ ;
39
+ const props = __props;
40
+ const emit = __emit;
41
+ const attrs = vue.useAttrs();
42
+ const ns = webBaseClientVue.useNamespace("datatable-settings");
43
+ const value = vue.ref(false);
44
+ const handleClose = () => {
45
+ value.value = false;
46
+ emit("close");
47
+ };
48
+ const handleColumnVisibleChange = (column, visible) => {
49
+ const tableColumns = [...displaySearchedColumns.value, ...hiddenSearchedColumns.value];
50
+ emit("column-visible-change", tableColumns);
51
+ };
52
+ vue.watch(value, (newValue) => {
53
+ emit("visible-change", newValue);
54
+ });
55
+ const appName = webBaseClientVue.useValue("AppName");
56
+ const userService = webBaseClientVue.useService("UserService");
57
+ const userID = vue.computed(() => {
58
+ var _a, _b;
59
+ return ((_b = (_a = vue.unref(userService)) == null ? void 0 : _a.userInfo) == null ? void 0 : _b.id) || "";
60
+ });
61
+ const isShowResetColumn = vue.computed(
62
+ () => !props.dataTable.isDefaultColumnSort()
63
+ );
64
+ const key = vue.computed(
65
+ () => `${vue.unref(appName)}_${props.dataTable.name}_settings`
66
+ );
67
+ const search = vue.ref("");
68
+ const columns = vue.computed(
69
+ () => props.dataTable.getColumns().filter((column) => column.settings.visible).filter((column) => column.settings.visible)
70
+ );
71
+ const initColumns = async () => {
72
+ var _a, _b, _c;
73
+ let persistentColumnInfos = [];
74
+ const result = await db.dataModelDB.tableHeaderSettings.where("[app+tableName+userID]").equals([vue.unref(appName), props.dataTable.name, vue.unref(userID)]).toArray();
75
+ if (result.length) {
76
+ persistentColumnInfos = (_b = (_a = result[0]) == null ? void 0 : _a.columnInfo) != null ? _b : [];
77
+ }
78
+ if (persistentColumnInfos.some((item) => typeof item === "string")) {
79
+ persistentColumnInfos = persistentColumnInfos.map((columnInfo) => {
80
+ return typeof columnInfo === "object" ? columnInfo : { name: columnInfo, visible: true };
81
+ });
82
+ }
83
+ const _dataTable = props.dataTable;
84
+ let dataTableColumns = _dataTable.getColumns().slice().filter((item) => item.settings.visible);
85
+ persistentColumnInfos = persistentColumnInfos.filter(
86
+ (item) => dataTableColumns.findIndex((column) => column.name === item.name) !== -1
87
+ );
88
+ if (!persistentColumnInfos) {
89
+ return dataTableColumns;
90
+ }
91
+ let sortedColumns = persistentColumnInfos.map(
92
+ (columnInfo) => dataTableColumns.find((column) => column.name === columnInfo.name)
93
+ ).filter(Boolean);
94
+ dataTableColumns = sortedColumns.concat(
95
+ dataTableColumns.filter(
96
+ (column) => !sortedColumns.find((col) => column.name === col.name)
97
+ )
98
+ );
99
+ for (const column of dataTableColumns) {
100
+ const persistentItem = persistentColumnInfos.find(
101
+ (item) => item.name === column.name
102
+ );
103
+ column.visible = (_c = persistentItem == null ? void 0 : persistentItem.visible) != null ? _c : column.visible;
104
+ }
105
+ props.dataTable.setDisplayColumns(
106
+ dataTableColumns.filter((column) => column.visible)
107
+ );
108
+ return dataTableColumns;
109
+ };
110
+ const resetColumns = () => {
111
+ const _dataTable = props.dataTable;
112
+ _dataTable.resetColumnSort();
113
+ emit("reset-columns");
114
+ };
115
+ const allSearchedColumns = vue.computed(() => {
116
+ const _search = vue.unref(search);
117
+ return vue.unref(columns).filter((column) => column.title.indexOf(_search) > -1);
118
+ });
119
+ const hiddenSearchedColumns = vue.computed(
120
+ () => vue.unref(allSearchedColumns).filter((item) => !item.visible)
121
+ );
122
+ const displaySearchedColumns = vue.computed(() => {
123
+ const _search = vue.unref(search);
124
+ return props.dataTable.getDisplayColumns().filter((column) => column.settings.visible).filter((column) => column.title.indexOf(_search) > -1);
125
+ });
126
+ const handleSortChange = (sort) => {
127
+ const _columns = vue.unref(columns);
128
+ const displayColumns = sort.map(
129
+ (attrName) => {
130
+ var _a;
131
+ return (_a = _columns.find((column) => column.attrName === attrName)) != null ? _a : null;
132
+ }
133
+ ).filter(Boolean);
134
+ props.dataTable.setDisplayColumns(displayColumns);
135
+ const tableColumns = [...displaySearchedColumns.value, ...hiddenSearchedColumns.value];
136
+ emit("column-visible-change", tableColumns);
137
+ emit("sort-change", sort, displayColumns);
138
+ };
139
+ const scope = vue.getCurrentScope();
140
+ const handleInitCompleted = async () => {
141
+ const dataTableColumns = await initColumns();
142
+ const subscription = props.dataTable.getDisplayColumnsSubject().pipe(
143
+ rxjs.map((displayColumns) => {
144
+ const hiddenColumns = dataTableColumns.filter(
145
+ (column) => !displayColumns.find(
146
+ (displayColumn) => displayColumn.attrName === column.attrName
147
+ )
148
+ );
149
+ return [...displayColumns, ...hiddenColumns].map((column) => ({
150
+ name: column.name,
151
+ visible: column.visible
152
+ }));
153
+ })
154
+ ).subscribe({
155
+ next: (columnInfo) => {
156
+ db.dataModelDB.tableHeaderSettings.put({
157
+ app: vue.unref(appName),
158
+ tableName: props.dataTable.name,
159
+ userID: vue.unref(userID),
160
+ columnInfo
161
+ });
162
+ }
163
+ });
164
+ scope.run(() => {
165
+ vue.onScopeDispose(() => {
166
+ subscription.unsubscribe();
167
+ });
168
+ });
169
+ };
170
+ if (!props.dataTable.inited) {
171
+ webBaseClientVue.useEventDispatcher(props.dataTable, "init-completed", handleInitCompleted);
172
+ } else {
173
+ handleInitCompleted();
174
+ }
175
+ return (_ctx, _cache) => {
176
+ const _component_RefreshRight = vue.resolveComponent("RefreshRight");
177
+ const _component_Close = vue.resolveComponent("Close");
178
+ return vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElTooltip), vue.mergeProps({
179
+ visible: value.value,
180
+ "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => value.value = $event)
181
+ }, vue.unref(attrs), {
182
+ effect: "light",
183
+ "show-arrow": false,
184
+ trigger: "click",
185
+ "popper-class": vue.unref(ns).b(),
186
+ "gpu-acceleration": false,
187
+ placement: "bottom",
188
+ "append-to": ".bwa-application"
189
+ }), {
190
+ content: vue.withCtx(() => [
191
+ vue.createElementVNode("div", {
192
+ class: vue.normalizeClass(vue.unref(ns).e("content"))
253
193
  }, [
254
- (vue.unref(isShowResetColumn))
255
- ? (vue.openBlock(), vue.createElementBlock("span", {
194
+ vue.createElementVNode("div", {
195
+ class: vue.normalizeClass(vue.unref(ns).e("header"))
196
+ }, [
197
+ _cache[2] || (_cache[2] = vue.createTextVNode(" \u8868\u5934\u8BBE\u7F6E ", -1)),
198
+ vue.createElementVNode("span", {
199
+ class: vue.normalizeClass(vue.unref(ns).e("tools"))
200
+ }, [
201
+ isShowResetColumn.value ? (vue.openBlock(), vue.createElementBlock("span", {
256
202
  key: 0,
257
- class: vue.normalizeClass([vue.unref(ns).e('tools-item'), vue.unref(ns).e('refresh')]),
203
+ class: vue.normalizeClass([vue.unref(ns).e("tools-item"), vue.unref(ns).e("refresh")]),
258
204
  onClick: resetColumns
259
205
  }, [
260
206
  vue.createVNode(vue.unref(ElementPlus.ElTooltip), {
261
- content: "恢复默认",
207
+ content: "\u6062\u590D\u9ED8\u8BA4",
262
208
  "append-to": ".bwa-application"
263
209
  }, {
264
210
  default: vue.withCtx(() => [
@@ -266,123 +212,135 @@ return (_ctx, _cache) => {
266
212
  default: vue.withCtx(() => [
267
213
  vue.createVNode(_component_RefreshRight)
268
214
  ]),
269
- _: 1 /* STABLE */
215
+ _: 1
270
216
  })
271
217
  ]),
272
- _: 1 /* STABLE */
218
+ _: 1
273
219
  })
274
- ], 2 /* CLASS */))
275
- : vue.createCommentVNode("v-if", true),
276
- vue.createElementVNode("span", {
277
- class: vue.normalizeClass([vue.unref(ns).e('tools-item'), vue.unref(ns).e('close')]),
278
- onClick: handleClose
279
- }, [
280
- vue.createVNode(vue.unref(ElementPlus.ElTooltip), {
281
- content: "关闭",
282
- "append-to": ".bwa-application"
283
- }, {
284
- default: vue.withCtx(() => [
285
- vue.createVNode(vue.unref(ElementPlus.ElIcon), null, {
220
+ ], 2)) : vue.createCommentVNode("v-if", true),
221
+ vue.createElementVNode("span", {
222
+ class: vue.normalizeClass([vue.unref(ns).e("tools-item"), vue.unref(ns).e("close")]),
223
+ onClick: handleClose
224
+ }, [
225
+ vue.createVNode(vue.unref(ElementPlus.ElTooltip), {
226
+ content: "\u5173\u95ED",
227
+ "append-to": ".bwa-application"
228
+ }, {
286
229
  default: vue.withCtx(() => [
287
- vue.createVNode(_component_Close)
230
+ vue.createVNode(vue.unref(ElementPlus.ElIcon), null, {
231
+ default: vue.withCtx(() => [
232
+ vue.createVNode(_component_Close)
233
+ ]),
234
+ _: 1
235
+ })
288
236
  ]),
289
- _: 1 /* STABLE */
237
+ _: 1
290
238
  })
291
- ]),
292
- _: 1 /* STABLE */
293
- })
294
- ], 2 /* CLASS */)
295
- ], 2 /* CLASS */)
296
- ], 2 /* CLASS */),
297
- vue.createCommentVNode(" <div :class=\"ns.e('search')\">\r\n <ElInput\r\n v-model=\"search\"\r\n :clearable=\"true\"\r\n prefix-icon=\"Search\"\r\n placeholder=\"请输入关键词搜索\"\r\n />\r\n </div> "),
298
- vue.createVNode(vue.unref(ElementPlus.ElScrollbar), { "max-height": "500px" }, {
299
- default: vue.withCtx(() => [
300
- vue.createElementVNode("div", {
301
- class: vue.normalizeClass(vue.unref(ns).e('main'))
302
- }, [
303
- (vue.unref(displaySearchedColumns).length)
304
- ? (vue.openBlock(), vue.createElementBlock("div", {
239
+ ], 2)
240
+ ], 2)
241
+ ], 2),
242
+ vue.createCommentVNode(` <div :class="ns.e('search')">\r
243
+ <ElInput\r
244
+ v-model="search"\r
245
+ :clearable="true"\r
246
+ prefix-icon="Search"\r
247
+ placeholder="\u8BF7\u8F93\u5165\u5173\u952E\u8BCD\u641C\u7D22"\r
248
+ />\r
249
+ </div> `),
250
+ vue.createVNode(vue.unref(ElementPlus.ElScrollbar), { "max-height": "500px" }, {
251
+ default: vue.withCtx(() => [
252
+ vue.createElementVNode("div", {
253
+ class: vue.normalizeClass(vue.unref(ns).e("main"))
254
+ }, [
255
+ displaySearchedColumns.value.length ? (vue.openBlock(), vue.createElementBlock("div", {
305
256
  key: 0,
306
- class: vue.normalizeClass(vue.unref(ns).b('section'))
257
+ class: vue.normalizeClass(vue.unref(ns).b("section"))
307
258
  }, [
308
259
  vue.createElementVNode("div", {
309
- class: vue.normalizeClass(vue.unref(ns).be('section', 'header'))
310
- }, "显示字段", 2 /* CLASS */),
260
+ class: vue.normalizeClass(vue.unref(ns).be("section", "header"))
261
+ }, "\u663E\u793A\u5B57\u6BB5", 2),
311
262
  vue.createVNode(vue.unref(index.BwaDraglist), {
312
- data: vue.unref(displaySearchedColumns),
263
+ data: displaySearchedColumns.value,
313
264
  labelAttr: "title",
314
265
  idAttr: "attrName",
315
266
  onSortChange: handleSortChange
316
267
  }, {
317
268
  default: vue.withCtx(({ item }) => [
318
269
  vue.createElementVNode("div", {
319
- class: vue.normalizeClass(vue.unref(ns).be('section', 'content'))
270
+ class: vue.normalizeClass(vue.unref(ns).be("section", "content"))
320
271
  }, [
321
272
  vue.createElementVNode("div", {
322
- class: vue.normalizeClass(vue.unref(ns).e('field-item'))
273
+ class: vue.normalizeClass(vue.unref(ns).e("field-item"))
323
274
  }, [
324
- vue.createElementVNode("span", null, vue.toDisplayString(item.title), 1 /* TEXT */),
275
+ vue.createElementVNode("span", null, vue.toDisplayString(item.title), 1),
325
276
  vue.createVNode(vue.unref(ElementPlus.ElSwitch), {
326
277
  modelValue: item.visible,
327
- "onUpdate:modelValue": $event => ((item.visible) = $event),
278
+ "onUpdate:modelValue": ($event) => item.visible = $event,
328
279
  disabled: item.settings.disabled,
329
- onMousedown: _cache[0] || (_cache[0] = vue.withModifiers(() => {}, ["stop"])),
280
+ onMousedown: _cache[0] || (_cache[0] = vue.withModifiers(() => {
281
+ }, ["stop"])),
330
282
  onChange: (val) => handleColumnVisibleChange(item, val)
331
- }, null, 8 /* PROPS */, ["modelValue", "onUpdate:modelValue", "disabled", "onChange"])
332
- ], 2 /* CLASS */)
333
- ], 2 /* CLASS */)
283
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled", "onChange"])
284
+ ], 2)
285
+ ], 2)
334
286
  ]),
335
- _: 1 /* STABLE */
336
- }, 8 /* PROPS */, ["data"]),
337
- vue.createCommentVNode(" <div\r\n v-show=\"!displaySearchedColumns.length\"\r\n :class=\"ns.be('section', 'empty')\"\r\n >\r\n 暂无字段\r\n </div> ")
338
- ], 2 /* CLASS */))
339
- : vue.createCommentVNode("v-if", true),
340
- (vue.unref(hiddenSearchedColumns).length)
341
- ? (vue.openBlock(), vue.createElementBlock("div", {
287
+ _: 1
288
+ }, 8, ["data"]),
289
+ vue.createCommentVNode(` <div\r
290
+ v-show="!displaySearchedColumns.length"\r
291
+ :class="ns.be('section', 'empty')"\r
292
+ >\r
293
+ \u6682\u65E0\u5B57\u6BB5\r
294
+ </div> `)
295
+ ], 2)) : vue.createCommentVNode("v-if", true),
296
+ hiddenSearchedColumns.value.length ? (vue.openBlock(), vue.createElementBlock("div", {
342
297
  key: 1,
343
- class: vue.normalizeClass(vue.unref(ns).b('section'))
298
+ class: vue.normalizeClass(vue.unref(ns).b("section"))
344
299
  }, [
345
300
  vue.createElementVNode("div", {
346
- class: vue.normalizeClass(vue.unref(ns).be('section', 'header'))
347
- }, "未显示字段", 2 /* CLASS */),
301
+ class: vue.normalizeClass(vue.unref(ns).be("section", "header"))
302
+ }, "\u672A\u663E\u793A\u5B57\u6BB5", 2),
348
303
  vue.createElementVNode("div", {
349
- class: vue.normalizeClass(vue.unref(ns).be('section', 'content'))
304
+ class: vue.normalizeClass(vue.unref(ns).be("section", "content"))
350
305
  }, [
351
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(hiddenSearchedColumns), (column) => {
352
- return (vue.openBlock(), vue.createElementBlock("div", {
306
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(hiddenSearchedColumns.value, (column) => {
307
+ return vue.openBlock(), vue.createElementBlock("div", {
353
308
  key: column.attrName,
354
- class: vue.normalizeClass(vue.unref(ns).e('field-item'))
309
+ class: vue.normalizeClass(vue.unref(ns).e("field-item"))
355
310
  }, [
356
- vue.createElementVNode("span", null, vue.toDisplayString(column.title), 1 /* TEXT */),
311
+ vue.createElementVNode("span", null, vue.toDisplayString(column.title), 1),
357
312
  vue.createVNode(vue.unref(ElementPlus.ElSwitch), {
358
313
  modelValue: column.visible,
359
- "onUpdate:modelValue": $event => ((column.visible) = $event),
314
+ "onUpdate:modelValue": ($event) => column.visible = $event,
360
315
  disabled: column.settings.disabled,
361
316
  onChange: (val) => handleColumnVisibleChange(column, val)
362
- }, null, 8 /* PROPS */, ["modelValue", "onUpdate:modelValue", "disabled", "onChange"])
363
- ], 2 /* CLASS */))
364
- }), 128 /* KEYED_FRAGMENT */))
365
- ], 2 /* CLASS */),
366
- vue.createCommentVNode(" <div\r\n v-show=\"!hiddenSearchedColumns.length\"\r\n :class=\"ns.be('section', 'empty')\"\r\n >\r\n 暂无字段\r\n </div> ")
367
- ], 2 /* CLASS */))
368
- : vue.createCommentVNode("v-if", true)
369
- ], 2 /* CLASS */)
370
- ]),
371
- _: 1 /* STABLE */
372
- })
373
- ], 2 /* CLASS */)
374
- ]),
375
- default: vue.withCtx(() => [
376
- vue.createElementVNode("span", null, [
377
- vue.renderSlot(_ctx.$slots, "default")
378
- ])
379
- ]),
380
- _: 3 /* FORWARDED */
381
- }, 16 /* FULL_PROPS */, ["visible", "popper-class"]))
382
- }
383
- }
384
-
385
- };
386
- var DataTableSettings = /*#__PURE__*/_pluginVue_exportHelper["default"](_sfc_main, [['__file',"datatable-settings.vue"]]);
317
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "disabled", "onChange"])
318
+ ], 2);
319
+ }), 128))
320
+ ], 2),
321
+ vue.createCommentVNode(` <div\r
322
+ v-show="!hiddenSearchedColumns.length"\r
323
+ :class="ns.be('section', 'empty')"\r
324
+ >\r
325
+ \u6682\u65E0\u5B57\u6BB5\r
326
+ </div> `)
327
+ ], 2)) : vue.createCommentVNode("v-if", true)
328
+ ], 2)
329
+ ]),
330
+ _: 1
331
+ })
332
+ ], 2)
333
+ ]),
334
+ default: vue.withCtx(() => [
335
+ vue.createElementVNode("span", null, [
336
+ vue.renderSlot(_ctx.$slots, "default")
337
+ ])
338
+ ]),
339
+ _: 3
340
+ }, 16, ["visible", "popper-class"]);
341
+ };
342
+ }
343
+ });
344
+ var DataTableSettings = /* @__PURE__ */ _pluginVue_exportHelper["default"](_sfc_main, [["__file", "datatable-settings.vue"]]);
387
345
 
388
346
  exports["default"] = DataTableSettings;