@ctzy-web-client/plugin-component-vue 1.0.0 → 1.0.1

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 (272) hide show
  1. package/es/_virtual/_plugin-vue_export-helper.mjs +9 -0
  2. package/es/advance-select/advance-operation.mjs +43 -0
  3. package/es/advance-select/advance-option.mjs +125 -0
  4. package/es/advance-select/advance-select.mjs +359 -0
  5. package/es/advance-select/events-helpers.mjs +29 -0
  6. package/es/advance-select/index.mjs +13 -0
  7. package/es/advance-select/use-advance-option.mjs +43 -0
  8. package/es/advance-select/use-advance-select.mjs +117 -0
  9. package/es/application-slot/application-slot.mjs +51 -0
  10. package/es/application-slot/breadcrumb-item.mjs +23 -0
  11. package/es/application-slot/header-tools-item.mjs +23 -0
  12. package/es/application-slot/index.mjs +16 -0
  13. package/es/breadcrumb-select/breadcrumb-select.mjs +155 -0
  14. package/es/breadcrumb-select/index.mjs +6 -0
  15. package/es/components.mjs +22 -0
  16. package/es/contextmenu/contextmenu-item.mjs +21 -0
  17. package/es/contextmenu/contextmenu.mjs +64 -0
  18. package/es/contextmenu/index.mjs +10 -0
  19. package/es/contextmenu/use-contextmenu.mjs +85 -0
  20. package/es/data-form/data-form-item.mjs +53 -0
  21. package/es/data-form/data-form.mjs +175 -0
  22. package/es/data-form/dynamic-component.mjs +23 -0
  23. package/es/data-form/form-components/Blots/AtBlot.mjs +25 -0
  24. package/es/data-form/form-components/bwa-date-picker.mjs +45 -0
  25. package/es/data-form/form-components/bwa-date-time-picker.mjs +50 -0
  26. package/es/data-form/form-components/bwa-input-float.mjs +43 -0
  27. package/es/data-form/form-components/bwa-input-integer.mjs +56 -0
  28. package/es/data-form/form-components/bwa-input.mjs +38 -0
  29. package/es/data-form/form-components/bwa-multi-select.mjs +35 -0
  30. package/es/data-form/form-components/bwa-rich-text-tinymce.mjs +234 -0
  31. package/es/data-form/form-components/bwa-rich-text.mjs +325 -0
  32. package/es/data-form/form-components/bwa-select.mjs +76 -0
  33. package/es/data-form/form-components/bwa-textarea.mjs +33 -0
  34. package/es/data-form/form-components/bwa-upload.mjs +159 -0
  35. package/es/data-form/form-components/bwa-user-multi-select.mjs +30 -0
  36. package/es/data-form/form-components/bwa-user-select.mjs +69 -0
  37. package/es/data-form/index.mjs +34 -0
  38. package/es/data-table/data-column-view.mjs +131 -0
  39. package/es/data-table/data-table-card.mjs +118 -0
  40. package/es/data-table/data-table-column.mjs +56 -0
  41. package/es/data-table/data-table.mjs +369 -0
  42. package/es/data-table/dynamic-component.mjs +48 -0
  43. package/es/data-table/index.mjs +13 -0
  44. package/es/data-table/use-datatable-drag.mjs +110 -0
  45. package/es/datatable-settings/datatable-settings.mjs +309 -0
  46. package/es/datatable-settings/index.mjs +6 -0
  47. package/es/date-range/date-picker.mjs +128 -0
  48. package/es/date-range/date-range.mjs +181 -0
  49. package/es/date-range/index.mjs +6 -0
  50. package/es/drag-list/constants.mjs +3 -0
  51. package/es/drag-list/drag-item.mjs +49 -0
  52. package/es/drag-list/drag-list.mjs +56 -0
  53. package/es/drag-list/index.mjs +6 -0
  54. package/es/drag-list/use-drag-list.mjs +154 -0
  55. package/es/dragable/constants.mjs +4 -0
  56. package/es/dragable/dragable-item.mjs +25 -0
  57. package/es/dragable/dragable-operation.mjs +32 -0
  58. package/es/dragable/dragable.mjs +31 -0
  59. package/es/dragable/index.mjs +15 -0
  60. package/es/dragable/use-dragable.mjs +134 -0
  61. package/es/filter-panel/conditions/condition.mjs +30 -0
  62. package/es/filter-panel/conditions/date-range-condition.mjs +46 -0
  63. package/es/filter-panel/conditions/department-condition/department-condition.mjs +81 -0
  64. package/es/filter-panel/conditions/department-condition/department-node.mjs +74 -0
  65. package/es/filter-panel/conditions/index.mjs +21 -0
  66. package/es/filter-panel/conditions/input-condition.mjs +83 -0
  67. package/es/filter-panel/conditions/multi-user-condition.mjs +64 -0
  68. package/es/filter-panel/conditions/multiple-menu-condition.mjs +41 -0
  69. package/es/filter-panel/conditions/single-menu-condition.mjs +68 -0
  70. package/es/filter-panel/conditions/single-user-condition.mjs +64 -0
  71. package/es/filter-panel/filter-panel-item.mjs +47 -0
  72. package/es/filter-panel/filter-panel.mjs +180 -0
  73. package/es/filter-panel/index.mjs +15 -0
  74. package/es/filter-panel/use-filter-panel-item.mjs +52 -0
  75. package/es/filter-panel/use-filter-panel.mjs +135 -0
  76. package/es/hooks/use-data/index.mjs +152 -0
  77. package/es/index.mjs +27 -0
  78. package/es/layout/index.mjs +6 -0
  79. package/es/layout/layout.mjs +86 -0
  80. package/es/make-installer.mjs +34 -0
  81. package/es/math/Rectangle.mjs +25 -0
  82. package/es/menu/index.mjs +6 -0
  83. package/es/menu/menu-item.mjs +75 -0
  84. package/es/menu/menu.mjs +60 -0
  85. package/es/node_modules/.pnpm/@vueuse_core@9.6.0_vue@3.2.41/node_modules/@vueuse/core/index.mjs +6372 -0
  86. package/es/node_modules/.pnpm/@vueuse_shared@9.6.0_vue@3.2.41/node_modules/@vueuse/shared/index.mjs +1517 -0
  87. package/es/panel/index.mjs +6 -0
  88. package/es/panel/panel.mjs +55 -0
  89. package/es/panel-tabs/index.mjs +6 -0
  90. package/es/panel-tabs/panel-tabs.mjs +66 -0
  91. package/es/pct-filter-panel/index.mjs +10 -0
  92. package/es/pct-filter-panel/pct-compents/index.mjs +10 -0
  93. package/es/pct-filter-panel/pct-compents/pct-Input-condition.mjs +71 -0
  94. package/es/pct-filter-panel/pct-compents/pct-date-range-condition.mjs +74 -0
  95. package/es/pct-filter-panel/pct-compents/pct-multiple-menu-condition.mjs +186 -0
  96. package/es/pct-filter-panel/pct-compents/pct-multiple-menu-condition2.mjs +147 -0
  97. package/es/pct-filter-panel/pct-filter-panel-item.mjs +48 -0
  98. package/es/pct-filter-panel/pct-filter-panel.mjs +251 -0
  99. package/es/pct-filter-panel/use-filter-panel-item.mjs +56 -0
  100. package/es/pct-filter-panel/use-filter-panel.mjs +127 -0
  101. package/es/plugins.mjs +5 -0
  102. package/es/progress/index.mjs +10 -0
  103. package/es/progress/progress-item.mjs +68 -0
  104. package/es/progress/progress.mjs +74 -0
  105. package/es/progress/use-progress.mjs +46 -0
  106. package/es/utils/db.mjs +9 -0
  107. package/es/utils.mjs +99 -0
  108. package/es/where-filter-panel/index.mjs +1 -0
  109. package/es/where-filter-panel/use-where-filter-panel.mjs +18 -0
  110. package/es/where-filter-panel/where-filter-panel.mjs +17 -0
  111. package/lib/_virtual/_plugin-vue_export-helper.js +13 -0
  112. package/lib/advance-select/advance-operation.js +47 -0
  113. package/lib/advance-select/advance-option.js +129 -0
  114. package/lib/advance-select/advance-select.js +363 -0
  115. package/lib/advance-select/events-helpers.js +33 -0
  116. package/lib/advance-select/index.js +20 -0
  117. package/lib/advance-select/use-advance-option.js +47 -0
  118. package/lib/advance-select/use-advance-select.js +122 -0
  119. package/lib/application-slot/application-slot.js +55 -0
  120. package/lib/application-slot/breadcrumb-item.js +27 -0
  121. package/lib/application-slot/header-tools-item.js +27 -0
  122. package/lib/application-slot/index.js +23 -0
  123. package/lib/breadcrumb-select/breadcrumb-select.js +159 -0
  124. package/lib/breadcrumb-select/index.js +11 -0
  125. package/lib/components.js +26 -0
  126. package/lib/contextmenu/contextmenu-item.js +25 -0
  127. package/lib/contextmenu/contextmenu.js +68 -0
  128. package/lib/contextmenu/index.js +16 -0
  129. package/lib/contextmenu/use-contextmenu.js +89 -0
  130. package/lib/data-form/data-form-item.js +57 -0
  131. package/lib/data-form/data-form.js +179 -0
  132. package/lib/data-form/dynamic-component.js +27 -0
  133. package/lib/data-form/form-components/Blots/AtBlot.js +31 -0
  134. package/lib/data-form/form-components/bwa-date-picker.js +49 -0
  135. package/lib/data-form/form-components/bwa-date-time-picker.js +54 -0
  136. package/lib/data-form/form-components/bwa-input-float.js +47 -0
  137. package/lib/data-form/form-components/bwa-input-integer.js +60 -0
  138. package/lib/data-form/form-components/bwa-input.js +42 -0
  139. package/lib/data-form/form-components/bwa-multi-select.js +39 -0
  140. package/lib/data-form/form-components/bwa-rich-text-tinymce.js +242 -0
  141. package/lib/data-form/form-components/bwa-rich-text.js +333 -0
  142. package/lib/data-form/form-components/bwa-select.js +80 -0
  143. package/lib/data-form/form-components/bwa-textarea.js +37 -0
  144. package/lib/data-form/form-components/bwa-upload.js +163 -0
  145. package/lib/data-form/form-components/bwa-user-multi-select.js +34 -0
  146. package/lib/data-form/form-components/bwa-user-select.js +73 -0
  147. package/lib/data-form/index.js +40 -0
  148. package/lib/data-table/data-column-view.js +135 -0
  149. package/lib/data-table/data-table-card.js +122 -0
  150. package/lib/data-table/data-table-column.js +60 -0
  151. package/lib/data-table/data-table.js +373 -0
  152. package/lib/data-table/dynamic-component.js +56 -0
  153. package/lib/data-table/index.js +20 -0
  154. package/lib/data-table/use-datatable-drag.js +114 -0
  155. package/lib/datatable-settings/datatable-settings.js +313 -0
  156. package/lib/datatable-settings/index.js +11 -0
  157. package/lib/date-range/date-picker.js +136 -0
  158. package/lib/date-range/date-range.js +189 -0
  159. package/lib/date-range/index.js +11 -0
  160. package/lib/drag-list/constants.js +7 -0
  161. package/lib/drag-list/drag-item.js +53 -0
  162. package/lib/drag-list/drag-list.js +60 -0
  163. package/lib/drag-list/index.js +11 -0
  164. package/lib/drag-list/use-drag-list.js +158 -0
  165. package/lib/dragable/constants.js +9 -0
  166. package/lib/dragable/dragable-item.js +29 -0
  167. package/lib/dragable/dragable-operation.js +36 -0
  168. package/lib/dragable/dragable.js +35 -0
  169. package/lib/dragable/index.js +22 -0
  170. package/lib/dragable/use-dragable.js +138 -0
  171. package/lib/filter-panel/conditions/condition.js +34 -0
  172. package/lib/filter-panel/conditions/date-range-condition.js +50 -0
  173. package/lib/filter-panel/conditions/department-condition/department-condition.js +85 -0
  174. package/lib/filter-panel/conditions/department-condition/department-node.js +78 -0
  175. package/lib/filter-panel/conditions/index.js +26 -0
  176. package/lib/filter-panel/conditions/input-condition.js +87 -0
  177. package/lib/filter-panel/conditions/multi-user-condition.js +68 -0
  178. package/lib/filter-panel/conditions/multiple-menu-condition.js +45 -0
  179. package/lib/filter-panel/conditions/single-menu-condition.js +72 -0
  180. package/lib/filter-panel/conditions/single-user-condition.js +68 -0
  181. package/lib/filter-panel/filter-panel-item.js +51 -0
  182. package/lib/filter-panel/filter-panel.js +184 -0
  183. package/lib/filter-panel/index.js +20 -0
  184. package/lib/filter-panel/use-filter-panel-item.js +56 -0
  185. package/lib/filter-panel/use-filter-panel.js +139 -0
  186. package/lib/hooks/use-data/index.js +157 -0
  187. package/lib/index.js +60 -0
  188. package/lib/layout/index.js +11 -0
  189. package/lib/layout/layout.js +90 -0
  190. package/lib/make-installer.js +62 -0
  191. package/lib/math/Rectangle.js +29 -0
  192. package/lib/menu/index.js +11 -0
  193. package/lib/menu/menu-item.js +79 -0
  194. package/lib/menu/menu.js +64 -0
  195. package/lib/node_modules/.pnpm/@vueuse_core@9.6.0_vue@3.2.41/node_modules/@vueuse/core/index.js +6635 -0
  196. package/lib/node_modules/.pnpm/@vueuse_shared@9.6.0_vue@3.2.41/node_modules/@vueuse/shared/index.js +1628 -0
  197. package/lib/panel/index.js +11 -0
  198. package/lib/panel/panel.js +59 -0
  199. package/lib/panel-tabs/index.js +11 -0
  200. package/lib/panel-tabs/panel-tabs.js +70 -0
  201. package/lib/pct-filter-panel/index.js +14 -0
  202. package/lib/pct-filter-panel/pct-compents/index.js +16 -0
  203. package/lib/pct-filter-panel/pct-compents/pct-Input-condition.js +75 -0
  204. package/lib/pct-filter-panel/pct-compents/pct-date-range-condition.js +78 -0
  205. package/lib/pct-filter-panel/pct-compents/pct-multiple-menu-condition.js +190 -0
  206. package/lib/pct-filter-panel/pct-compents/pct-multiple-menu-condition2.js +151 -0
  207. package/lib/pct-filter-panel/pct-filter-panel-item.js +52 -0
  208. package/lib/pct-filter-panel/pct-filter-panel.js +255 -0
  209. package/lib/pct-filter-panel/use-filter-panel-item.js +60 -0
  210. package/lib/pct-filter-panel/use-filter-panel.js +131 -0
  211. package/lib/plugins.js +9 -0
  212. package/lib/progress/index.js +16 -0
  213. package/lib/progress/progress-item.js +72 -0
  214. package/lib/progress/progress.js +78 -0
  215. package/lib/progress/use-progress.js +51 -0
  216. package/lib/utils/db.js +17 -0
  217. package/lib/utils.js +110 -0
  218. package/lib/where-filter-panel/index.js +2 -0
  219. package/lib/where-filter-panel/use-where-filter-panel.js +22 -0
  220. package/lib/where-filter-panel/where-filter-panel.js +21 -0
  221. package/package.json +1 -1
  222. package/style/advance-select.css +1 -0
  223. package/style/breadcrumb-select.css +1 -0
  224. package/style/common.css +1 -0
  225. package/style/contextmenu.css +1 -0
  226. package/style/data-form.css +1 -0
  227. package/style/data-table.css +1 -0
  228. package/style/datatable-settings.css +1 -0
  229. package/style/date-range.css +1 -0
  230. package/style/department-condition.css +1 -0
  231. package/style/drag-list.css +1 -0
  232. package/style/dragable.css +1 -0
  233. package/style/filter-panel.css +1 -0
  234. package/style/index.css +1 -0
  235. package/style/input-condition.css +1 -0
  236. package/style/layout.css +1 -0
  237. package/style/menu.css +1 -0
  238. package/style/panel-tabs.css +1 -0
  239. package/style/panel.css +1 -0
  240. package/style/pct-filter-panel.css +1 -0
  241. package/style/progress.css +1 -0
  242. package/style/rich-text.css +1 -0
  243. package/style/var.css +1 -0
  244. /package/style/{advance-select.scss → src/advance-select.scss} +0 -0
  245. /package/style/{breadcrumb-select.scss → src/breadcrumb-select.scss} +0 -0
  246. /package/style/{common → src/common}/var.scss +0 -0
  247. /package/style/{common.scss → src/common.scss} +0 -0
  248. /package/style/{contextmenu.scss → src/contextmenu.scss} +0 -0
  249. /package/style/{data-form.scss → src/data-form.scss} +0 -0
  250. /package/style/{data-table.scss → src/data-table.scss} +0 -0
  251. /package/style/{datatable-settings.scss → src/datatable-settings.scss} +0 -0
  252. /package/style/{date-range.scss → src/date-range.scss} +0 -0
  253. /package/style/{department-condition.scss → src/department-condition.scss} +0 -0
  254. /package/style/{drag-list.scss → src/drag-list.scss} +0 -0
  255. /package/style/{dragable.scss → src/dragable.scss} +0 -0
  256. /package/style/{filter-panel.scss → src/filter-panel.scss} +0 -0
  257. /package/style/{index.scss → src/index.scss} +0 -0
  258. /package/style/{input-condition.scss → src/input-condition.scss} +0 -0
  259. /package/style/{layout.scss → src/layout.scss} +0 -0
  260. /package/style/{menu.scss → src/menu.scss} +0 -0
  261. /package/style/{mixins → src/mixins}/_var.scss +0 -0
  262. /package/style/{mixins → src/mixins}/config.scss +0 -0
  263. /package/style/{mixins → src/mixins}/function.scss +0 -0
  264. /package/style/{mixins → src/mixins}/mixins.scss +0 -0
  265. /package/style/{panel-tabs.scss → src/panel-tabs.scss} +0 -0
  266. /package/style/{panel.scss → src/panel.scss} +0 -0
  267. /package/style/{pct-filter-panel.scss → src/pct-filter-panel.scss} +0 -0
  268. /package/style/{progress.scss → src/progress.scss} +0 -0
  269. /package/style/{rich-text.scss → src/rich-text.scss} +0 -0
  270. /package/style/{theme → src/theme}/theme.scss +0 -0
  271. /package/style/{theme → src/theme}/var.scss +0 -0
  272. /package/style/{var.scss → src/var.scss} +0 -0
@@ -0,0 +1,373 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var ElementPlus = require('element-plus');
7
+ var webBaseClientVue = require('web-base-client-vue');
8
+ var dynamicComponent = require('./dynamic-component.js');
9
+ var dataTableColumn = require('./data-table-column.js');
10
+ var useDatatableDrag = require('./use-datatable-drag.js');
11
+ var lodash = require('lodash');
12
+ var rxjs = require('rxjs');
13
+ var _pluginVue_exportHelper = require('../_virtual/_plugin-vue_export-helper.js');
14
+
15
+ const _hoisted_1 = /* @__PURE__ */ vue.createElementVNode("i", { class: "ptp-icon ptp-buzhou-yidong" }, null, -1);
16
+ const __default__ = vue.defineComponent({ name: "BwaDataTable" });
17
+ const _sfc_main = /* @__PURE__ */ Object.assign(__default__, {
18
+ props: {
19
+ dataTable: {
20
+ type: Object,
21
+ required: true
22
+ },
23
+ autoLoad: {
24
+ type: Boolean,
25
+ default: true
26
+ },
27
+ showIndex: {
28
+ type: Boolean,
29
+ default: false
30
+ },
31
+ indexColumnLabel: {
32
+ type: String,
33
+ default: "\u7F16\u53F7"
34
+ },
35
+ selection: {
36
+ type: Boolean,
37
+ default: false
38
+ },
39
+ paginationLayout: {
40
+ type: String,
41
+ default: "sizes, prev, pager, next, jumper"
42
+ },
43
+ paginationPageSizes: {
44
+ type: Array,
45
+ default: () => [10, 20, 50, 100, 200]
46
+ },
47
+ showPagination: {
48
+ type: Boolean,
49
+ default: true
50
+ },
51
+ whereParamName: {
52
+ type: String,
53
+ default: ""
54
+ },
55
+ showDrag: {
56
+ type: Boolean,
57
+ default: false
58
+ },
59
+ border: {
60
+ type: Boolean,
61
+ default: true
62
+ }
63
+ },
64
+ emits: ["drag"],
65
+ setup(__props, { emit }) {
66
+ var _a;
67
+ const props = __props;
68
+ const attrs = vue.useAttrs();
69
+ const userService = webBaseClientVue.useService("UserService");
70
+ const elTable = vue.ref(null);
71
+ const dataTable = props.dataTable;
72
+ dataTable._userService = (_a = userService.value) == null ? void 0 : _a.getUserList;
73
+ const dataTableEl = vue.ref(null);
74
+ const displayColumns = vue.computed(
75
+ () => vue.unref(dataTable).getDisplayColumns() || []
76
+ );
77
+ vue.watch(
78
+ vue.computed(() => props.whereParamName),
79
+ (whereParamName) => {
80
+ dataTable.setWhereParamName(whereParamName || "");
81
+ },
82
+ { immediate: true, flush: "sync" }
83
+ );
84
+ const searchParams = vue.computed(() => props.searchParams);
85
+ const debounceDelay = webBaseClientVue.useGlobalConfig("debounceDelay", 500);
86
+ vue.provide(
87
+ webBaseClientVue.dataTableKey,
88
+ vue.reactive({
89
+ dataTable,
90
+ displayColumns
91
+ })
92
+ );
93
+ const ns = webBaseClientVue.useNamespace("datatable");
94
+ const { barRectangle } = useDatatableDrag.useDataTableDrag(
95
+ dataTableEl,
96
+ ".bwa-datatable__drag",
97
+ ".el-table__row",
98
+ { emit }
99
+ );
100
+ const processing = vue.ref(false);
101
+ const data = vue.computed(() => {
102
+ return props.dataTable.data;
103
+ });
104
+ webBaseClientVue.useEventDispatcher(dataTable, "load-successfully", async (res) => {
105
+ if (res.code != 0) {
106
+ return;
107
+ }
108
+ const _userService = vue.unref(userService);
109
+ if (!_userService) {
110
+ return;
111
+ }
112
+ let columns = dataTable.getColumns();
113
+ const componentNames = ["BwaUserSelect", "BwaUserMultiSelect"];
114
+ columns = columns.filter((column) => componentNames.includes(column.formComponent)).filter((column) => column.visible).filter((column) => column.isExtend);
115
+ if (!columns.length) {
116
+ return;
117
+ }
118
+ processing.value = true;
119
+ const data2 = res.data;
120
+ let ids = data2.reduce((result, item) => {
121
+ return result.concat(
122
+ columns.reduce((result2, column) => {
123
+ let value = lodash.get(item, column.fullAttrName);
124
+ value = Array.isArray(value) ? value : value ? [value] : [];
125
+ return result2.concat(value);
126
+ }, [])
127
+ );
128
+ }, []).map((id) => id + "");
129
+ ids = [...new Set(ids)];
130
+ try {
131
+ const userListResult = await _userService.getUserListByIds(ids);
132
+ if (userListResult.code != 0) {
133
+ return;
134
+ }
135
+ for (const column of columns) {
136
+ column.componentProps = column.componentProps || {};
137
+ column.componentProps.options = (userListResult.data || []).map(
138
+ (item) => ({
139
+ label: item.label,
140
+ value: item.value
141
+ })
142
+ );
143
+ }
144
+ console.log(userListResult);
145
+ } finally {
146
+ processing.value = false;
147
+ }
148
+ });
149
+ const sortHandle = (column, prop, order) => {
150
+ let sortColumn2 = "";
151
+ let sortType = "";
152
+ if (column.order) {
153
+ sortColumn2 = column.prop;
154
+ sortType = column.order == "descending" ? 0 : 1;
155
+ dataTable.setParam("sortColumn", sortColumn2);
156
+ dataTable.setParam("sortType", sortType);
157
+ } else {
158
+ dataTable.setParam("sortColumn", sortColumn2);
159
+ dataTable.setParam("sortType", sortType);
160
+ }
161
+ dataTable.load();
162
+ };
163
+ webBaseClientVue.useEventDispatcher(dataTable, "load-successfully", (res) => {
164
+ if (!elTable.value) {
165
+ return;
166
+ }
167
+ vue.unref(elTable).store.updateSelectionByRowKey();
168
+ if (res.code != 0) {
169
+ ElementPlus.ElMessage.error(res.msg);
170
+ }
171
+ });
172
+ function sortColumn(array) {
173
+ array.forEach((item) => {
174
+ var _a2, _b;
175
+ item.no = (_a2 = item.getColumnIndex) == null ? void 0 : _a2.call(item);
176
+ if ((_b = item.children) == null ? void 0 : _b.length) {
177
+ sortColumn(item.children);
178
+ }
179
+ });
180
+ array.sort((cur, pre) => cur.no - pre.no);
181
+ }
182
+ const tableSelectSubject = new rxjs.Subject();
183
+ const selectionChange = tableSelectSubject.next.bind(tableSelectSubject);
184
+ const totalPage = vue.computed(() => dataTable.getTotalPage());
185
+ const tableSelectSubscription = tableSelectSubject.pipe(rxjs.debounceTime(debounceDelay)).subscribe(vue.unref(dataTable).setSelection.bind(vue.unref(dataTable)));
186
+ const selectChangeAPIObservable = new rxjs.Observable(
187
+ (observer) => webBaseClientVue.useEventDispatcher(
188
+ props.dataTable,
189
+ "select-change",
190
+ observer.next.bind(observer)
191
+ )
192
+ ).pipe(
193
+ rxjs.filter((selection) => {
194
+ if (!vue.unref(elTable)) {
195
+ return false;
196
+ }
197
+ const selectionRows = vue.unref(elTable).getSelectionRows();
198
+ if (selectionRows.length !== selection.length) {
199
+ return true;
200
+ }
201
+ const primaryKey = dataTable.primaryKey;
202
+ return !selectionRows.every(
203
+ (item) => selection.find((itm) => item[primaryKey] === item[primaryKey])
204
+ );
205
+ })
206
+ ).subscribe((selection) => {
207
+ vue.unref(elTable).clearSelection();
208
+ for (const item of selection) {
209
+ vue.unref(elTable).toggleRowSelection(item, true);
210
+ }
211
+ });
212
+ if (props.autoLoad) {
213
+ dataTable.load();
214
+ }
215
+ const searchParamsSubscription = new rxjs.Observable(
216
+ (observer) => webBaseClientVue.useEventDispatcher(
217
+ props.dataTable.filterPanel,
218
+ "params-change",
219
+ observer.next.bind(observer)
220
+ )
221
+ ).pipe(
222
+ rxjs.filter(() => props.dataTable.filterPanel.ready),
223
+ rxjs.debounceTime(vue.unref(debounceDelay))
224
+ ).subscribe(() => {
225
+ props.dataTable.load();
226
+ });
227
+ const subscription = props.dataTable.getDisplayColumnsSubject().pipe(
228
+ rxjs.map(() => vue.unref(elTable)),
229
+ rxjs.delayWhen(() => rxjs.from(vue.nextTick())),
230
+ rxjs.map((elTable2) => elTable2 == null ? void 0 : elTable2.store),
231
+ rxjs.skipWhile((store) => !store)
232
+ ).subscribe((store) => {
233
+ sortColumn(vue.unref(store.states._columns));
234
+ store.updateColumns();
235
+ store.scheduleLayout();
236
+ });
237
+ vue.onUnmounted(() => {
238
+ selectChangeAPIObservable.unsubscribe();
239
+ subscription.unsubscribe();
240
+ tableSelectSubscription.unsubscribe();
241
+ searchParamsSubscription.unsubscribe();
242
+ });
243
+ return (_ctx, _cache) => {
244
+ return vue.openBlock(), vue.createElementBlock("div", {
245
+ class: vue.normalizeClass(vue.unref(ns).b()),
246
+ ref_key: "dataTableEl",
247
+ ref: dataTableEl
248
+ }, [
249
+ vue.renderSlot(_ctx.$slots, "default", { dataTable: vue.unref(dataTable) }, () => [
250
+ vue.createVNode(vue.unref(ElementPlus.ElTable), vue.mergeProps({
251
+ class: "content",
252
+ height: "100%",
253
+ ref_key: "elTable",
254
+ ref: elTable,
255
+ data: vue.unref(data),
256
+ "row-key": vue.unref(dataTable).primaryKey,
257
+ "show-header": "",
258
+ stripe: ""
259
+ }, vue.unref(attrs), {
260
+ onSelectionChange: vue.unref(selectionChange),
261
+ onSortChange: sortHandle,
262
+ border: __props.border
263
+ }), {
264
+ empty: vue.withCtx(() => [
265
+ vue.renderSlot(_ctx.$slots, "empty-table")
266
+ ]),
267
+ default: vue.withCtx(() => [
268
+ __props.showDrag ? (vue.openBlock(), vue.createBlock(vue.unref(ElementPlus.ElTableColumn), {
269
+ key: 0,
270
+ width: "40px"
271
+ }, {
272
+ default: vue.withCtx(() => [
273
+ vue.createElementVNode("div", {
274
+ class: vue.normalizeClass(vue.unref(ns).e("drag"))
275
+ }, [
276
+ vue.renderSlot(_ctx.$slots, "default", {}, () => [
277
+ _hoisted_1
278
+ ])
279
+ ], 2)
280
+ ]),
281
+ _: 3
282
+ })) : vue.createCommentVNode("v-if", true),
283
+ __props.selection ? vue.renderSlot(_ctx.$slots, "selection", { key: 1 }, () => [
284
+ vue.createVNode(vue.unref(ElementPlus.ElTableColumn), {
285
+ type: "selection",
286
+ align: "center",
287
+ width: "56",
288
+ "reserve-selection": true
289
+ })
290
+ ]) : vue.createCommentVNode("v-if", true),
291
+ __props.showIndex ? vue.renderSlot(_ctx.$slots, "index", { key: 2 }, () => [
292
+ vue.createVNode(vue.unref(ElementPlus.ElTableColumn), {
293
+ type: "index",
294
+ width: "60",
295
+ align: "center",
296
+ label: __props.indexColumnLabel
297
+ }, null, 8, ["label"])
298
+ ]) : vue.createCommentVNode("v-if", true),
299
+ vue.renderSlot(_ctx.$slots, "table-columns", { dataTable: vue.unref(dataTable) }, () => [
300
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(displayColumns), (item) => {
301
+ return vue.openBlock(), vue.createBlock(dataTableColumn["default"], vue.mergeProps({
302
+ "column-key": item.attrName,
303
+ key: item.attrName,
304
+ label: item.title,
305
+ prop: item.fullAttrName,
306
+ "min-width": item.width,
307
+ align: item.align
308
+ }, item.componentProps, {
309
+ sortable: item.sortable == "custom"
310
+ }), {
311
+ header: vue.withCtx(() => [
312
+ vue.renderSlot(_ctx.$slots, `table-header-col-${item.attrName}`, {}, () => [
313
+ vue.createTextVNode(vue.toDisplayString(item.title), 1)
314
+ ])
315
+ ]),
316
+ default: vue.withCtx(({ row, $index }) => [
317
+ vue.unref(data).length ? vue.renderSlot(_ctx.$slots, "table-col-" + item.attrName, {
318
+ key: 0,
319
+ row,
320
+ index: $index,
321
+ column: item,
322
+ dataTable: vue.unref(dataTable)
323
+ }, () => [
324
+ vue.createVNode(vue.unref(dynamicComponent["default"]), {
325
+ column: item,
326
+ record: row
327
+ }, null, 8, ["column", "record"])
328
+ ]) : vue.createCommentVNode("v-if", true)
329
+ ]),
330
+ _: 2
331
+ }, 1040, ["column-key", "label", "prop", "min-width", "align", "sortable"]);
332
+ }), 128))
333
+ ]),
334
+ vue.renderSlot(_ctx.$slots, "column-append")
335
+ ]),
336
+ _: 3
337
+ }, 16, ["data", "row-key", "onSelectionChange", "border"])
338
+ ]),
339
+ __props.showPagination ? (vue.openBlock(), vue.createElementBlock("div", {
340
+ key: 0,
341
+ class: vue.normalizeClass(vue.unref(ns).e("pagination"))
342
+ }, [
343
+ vue.createElementVNode("div", {
344
+ class: vue.normalizeClass(vue.unref(ns).e("pagination-info"))
345
+ }, " \u5171" + vue.toDisplayString(vue.unref(totalPage)) + "\u9875\uFF0C" + vue.toDisplayString(vue.unref(dataTable).totalRecCount) + "\u6761 ", 3),
346
+ vue.createVNode(vue.unref(ElementPlus.ElPagination), {
347
+ currentPage: vue.unref(dataTable).pageNum,
348
+ "page-sizes": __props.paginationPageSizes,
349
+ "page-size": vue.unref(dataTable).pageSize,
350
+ layout: __props.paginationLayout,
351
+ total: vue.unref(dataTable).totalRecCount,
352
+ onSizeChange: _cache[0] || (_cache[0] = ($event) => vue.unref(dataTable).setPageSize($event)),
353
+ onCurrentChange: _cache[1] || (_cache[1] = ($event) => vue.unref(dataTable).pageTo($event)),
354
+ teleported: false
355
+ }, null, 8, ["currentPage", "page-sizes", "page-size", "layout", "total"])
356
+ ], 2)) : vue.createCommentVNode("v-if", true),
357
+ vue.unref(barRectangle) ? (vue.openBlock(), vue.createElementBlock("div", {
358
+ key: 1,
359
+ class: vue.normalizeClass(vue.unref(ns).e("dragbar")),
360
+ style: vue.normalizeStyle({
361
+ left: vue.unref(barRectangle).left + "px",
362
+ top: vue.unref(barRectangle).top + "px",
363
+ width: vue.unref(barRectangle).width + "px",
364
+ height: vue.unref(barRectangle).height + "px"
365
+ })
366
+ }, null, 6)) : vue.createCommentVNode("v-if", true)
367
+ ], 2);
368
+ };
369
+ }
370
+ });
371
+ var DataTable = /* @__PURE__ */ _pluginVue_exportHelper["default"](_sfc_main, [["__file", "data-table.vue"]]);
372
+
373
+ exports["default"] = DataTable;
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var get = require('lodash/get');
7
+ var utils = require('../utils.js');
8
+
9
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
+
11
+ var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
12
+
13
+ const formatValue = (column, value) => {
14
+ const options = column.componentProps.options || [];
15
+ const _value = Array.isArray(value) ? value : [value];
16
+ const labels = _value.map((v) => {
17
+ var _a;
18
+ return (_a = options.find((option) => option.value === v)) != null ? _a : null;
19
+ });
20
+ if (labels.includes(null)) {
21
+ return null;
22
+ }
23
+ return labels.map((item) => item.label).join(",");
24
+ };
25
+ var DynamicComponent = {
26
+ props: {
27
+ column: Object,
28
+ record: Object
29
+ },
30
+ emits: ["on-change"],
31
+ setup(props, context) {
32
+ const {
33
+ component,
34
+ params
35
+ } = utils.useDynamicComponent(props, context, "BwaDataColumnView", "fullAttrName");
36
+ const viewType = vue.computed(() => props.column.formComponent === "BwaRichText" ? "html" : "");
37
+ return () => {
38
+ var _a;
39
+ let value = get__default["default"](props.record, props.column.fullAttrName);
40
+ if (Array.isArray((_a = props.column.componentProps) == null ? void 0 : _a.options)) {
41
+ value = formatValue(props.column, value) || value;
42
+ }
43
+ return vue.h(vue.unref(component), {
44
+ ...vue.unref(params),
45
+ value,
46
+ type: props.column.type,
47
+ align: props.column.align,
48
+ rule: props.column.rule,
49
+ template: props.column.template,
50
+ defaultValue: props.column.default || "-"
51
+ });
52
+ };
53
+ }
54
+ };
55
+
56
+ exports["default"] = DynamicComponent;
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var install = require('element-plus/es/utils/vue/install');
6
+ var dataTable = require('./data-table.js');
7
+ var dataTableColumn = require('./data-table-column.js');
8
+ var dataColumnView = require('./data-column-view.js');
9
+
10
+ const BwaDataTable = install.withInstall(dataTable["default"], {
11
+ DataTableColumn: dataTableColumn["default"],
12
+ DataColumnView: dataColumnView["default"]
13
+ });
14
+ const BwaDataTableColumn = install.withInstall(dataTableColumn["default"]);
15
+ const BwaDataColumnView = install.withInstall(dataColumnView["default"]);
16
+
17
+ exports.BwaDataColumnView = BwaDataColumnView;
18
+ exports.BwaDataTable = BwaDataTable;
19
+ exports.BwaDataTableColumn = BwaDataTableColumn;
20
+ exports["default"] = BwaDataTable;
@@ -0,0 +1,114 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ var rxjs = require('rxjs');
7
+ var Rectangle = require('../math/Rectangle.js');
8
+
9
+ const useDataTableDrag = (el, dragClass, itemClass, context) => {
10
+ let mousedownSubscription = null;
11
+ let barRectangle = vue.ref(null);
12
+ vue.onMounted(() => {
13
+ let mouseDownObservable = rxjs.fromEvent(vue.unref(el), "mousedown");
14
+ let mousemoveObservable = rxjs.fromEvent(vue.unref(document), "mousemove");
15
+ let mouseupObservable = rxjs.fromEvent(vue.unref(document), "mouseup");
16
+ let rectangles = [];
17
+ let cloneEl = null;
18
+ let offsetX = 0;
19
+ let offsetY = 0;
20
+ let targetIndex = -1;
21
+ mousedownSubscription = mouseDownObservable.pipe(rxjs.filter((event) => {
22
+ const list = Array.from(vue.unref(el).querySelectorAll(dragClass));
23
+ const item = list.find((item2) => item2.contains(event.target));
24
+ if (item) {
25
+ event.index = list.indexOf(item);
26
+ const row = Array.from(vue.unref(el).querySelectorAll(itemClass)).find((row2) => row2.contains(item));
27
+ const _cloneEl = row.cloneNode(true);
28
+ const boundary = row.getBoundingClientRect();
29
+ cloneEl = document.createElement("div");
30
+ cloneEl.className = "bwa-datatable";
31
+ const tableEl = document.createElement("table");
32
+ tableEl.className = "el-table";
33
+ const tbodyEl = document.createElement("tbody");
34
+ cloneEl.append(tableEl);
35
+ tableEl.appendChild(tbodyEl);
36
+ tbodyEl.appendChild(_cloneEl);
37
+ offsetX = event.x - boundary.left;
38
+ offsetY = event.y - boundary.top;
39
+ console.log();
40
+ Object.assign(cloneEl.style, {
41
+ position: "absolute",
42
+ left: event.clientX - offsetX + "px",
43
+ top: event.clientY - offsetY + "px",
44
+ zIndex: "9999",
45
+ height: boundary.height + "px",
46
+ width: boundary.width + "px",
47
+ opacity: "0.6",
48
+ pointerEvents: "none"
49
+ });
50
+ document.body.appendChild(cloneEl);
51
+ document.body.style.cursor = "move";
52
+ document.body.style.userSelect = "none";
53
+ }
54
+ return !!item;
55
+ }), rxjs.tap(() => {
56
+ rectangles = Array.from(vue.unref(el).querySelectorAll(itemClass)).map((item) => {
57
+ const {
58
+ x,
59
+ y,
60
+ width,
61
+ height
62
+ } = item.getBoundingClientRect();
63
+ return new Rectangle.Rectangle(x, y, width, height);
64
+ });
65
+ }), rxjs.map((event) => {
66
+ return {
67
+ index: event.index,
68
+ x: event.clientX,
69
+ y: event.clientY
70
+ };
71
+ }), rxjs.switchMap(({
72
+ index,
73
+ x,
74
+ y
75
+ }) => {
76
+ return mousemoveObservable.pipe(rxjs.takeUntil(mouseupObservable.pipe(rxjs.tap(() => {
77
+ if (targetIndex !== -1) {
78
+ context.emit("drag", index, targetIndex);
79
+ }
80
+ cloneEl == null ? void 0 : cloneEl.remove();
81
+ rectangles = [];
82
+ offsetX = offsetY = 0;
83
+ document.body.style.cursor = "";
84
+ document.body.style.userSelect = "";
85
+ barRectangle.value = null;
86
+ targetIndex = -1;
87
+ }))), rxjs.map((event) => {
88
+ Object.assign(cloneEl.style, {
89
+ left: event.clientX - offsetX + "px",
90
+ top: event.clientY - offsetY + "px"
91
+ });
92
+ const rectangle = rectangles.find((rectangle2) => rectangle2.pointIn(event.x, event.y));
93
+ if (!rectangle) {
94
+ targetIndex = -1;
95
+ barRectangle.value = null;
96
+ return;
97
+ }
98
+ targetIndex = rectangles.indexOf(rectangle);
99
+ const direction = event.clientY >= rectangle.cy ? "after" : "before";
100
+ targetIndex = targetIndex + (direction === "after" ? 1 : 0);
101
+ barRectangle.value = new Rectangle.Rectangle(rectangle.left, direction === "after" ? rectangle.bottom : rectangle.top, rectangle.width, 2);
102
+ }));
103
+ })).subscribe((info) => {
104
+ });
105
+ });
106
+ vue.onBeforeUnmount(() => {
107
+ mousedownSubscription == null ? void 0 : mousedownSubscription.unsubscribe();
108
+ });
109
+ return {
110
+ barRectangle
111
+ };
112
+ };
113
+
114
+ exports.useDataTableDrag = useDataTableDrag;