@sdata/web-vue 3.14.0 → 3.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/sd.css +44 -3
  2. package/dist/sd.min.css +1 -1
  3. package/es/_components/resize-trigger.vue_vue_type_script_setup_true_lang.js +6 -3
  4. package/es/_components/select-view/select-view.js +3 -1
  5. package/es/alert/alert.vue_vue_type_script_setup_true_lang.js +5 -2
  6. package/es/anchor/anchor.vue_vue_type_script_setup_true_lang.js +5 -2
  7. package/es/back-top/back-top.vue_vue_type_script_setup_true_lang.js +5 -2
  8. package/es/basic-crud-table/basic-crud-modal.js +5 -0
  9. package/es/basic-crud-table/basic-crud-modal.vue.d.ts +264 -0
  10. package/es/basic-crud-table/basic-crud-modal.vue_vue_type_script_setup_true_lang.js +139 -0
  11. package/es/basic-crud-table/basic-crud-table.js +5 -0
  12. package/es/basic-crud-table/basic-crud-table.vue.d.ts +935 -0
  13. package/es/basic-crud-table/basic-crud-table.vue_vue_type_script_setup_true_lang.js +520 -0
  14. package/es/basic-crud-table/index.d.ts +2722 -0
  15. package/es/basic-crud-table/index.js +9 -0
  16. package/es/basic-crud-table/style/css.js +2 -0
  17. package/es/basic-crud-table/style/index.css +60 -0
  18. package/es/basic-crud-table/style/index.d.ts +2 -0
  19. package/es/basic-crud-table/style/index.js +2 -0
  20. package/es/basic-crud-table/style/index.scss +54 -0
  21. package/es/basic-crud-table/style/token.scss +8 -0
  22. package/es/basic-crud-table/types.d.ts +70 -0
  23. package/es/breadcrumb/breadcrumb-item.js +4 -2
  24. package/es/breadcrumb/breadcrumb.js +3 -1
  25. package/es/calendar/components/event.vue_vue_type_script_setup_true_lang.js +1 -1
  26. package/es/calendar/components/headings-bar.vue_vue_type_script_setup_true_lang.js +1 -1
  27. package/es/card/card.d.ts +1 -1
  28. package/es/card/index.d.ts +3 -3
  29. package/es/carousel/carousel-arrow.vue_vue_type_script_setup_true_lang.js +9 -5
  30. package/es/carousel/carousel-indicator.vue_vue_type_script_setup_true_lang.js +4 -2
  31. package/es/carousel/carousel-item.vue_vue_type_script_setup_true_lang.js +4 -2
  32. package/es/carousel/carousel.js +3 -1
  33. package/es/cascader/cascader-option.js +1 -1
  34. package/es/cascader/cascader.vue_vue_type_script_setup_true_lang.js +3 -3
  35. package/es/color-picker/color-picker.js +6 -5
  36. package/es/color-picker/panel.d.ts +2 -2
  37. package/es/color-picker/panel.js +5 -4
  38. package/es/components.d.ts +1 -0
  39. package/es/config-provider/config-provider.vue.d.ts +7 -1
  40. package/es/config-provider/config-provider.vue_vue_type_script_setup_true_lang.js +7 -1
  41. package/es/config-provider/context.d.ts +4 -0
  42. package/es/config-provider/index.d.ts +25 -15
  43. package/es/copy/copy.vue_vue_type_script_setup_true_lang.js +1 -1
  44. package/es/date-picker/hooks/use-provide-datepicker-transform.js +1 -1
  45. package/es/date-picker/panels/header.vue_vue_type_script_setup_true_lang.js +1 -1
  46. package/es/date-picker/picker.vue_vue_type_script_setup_true_lang.js +3 -3
  47. package/es/date-picker/range-picker.vue_vue_type_script_setup_true_lang.js +2 -2
  48. package/es/drawer/drawer.vue_vue_type_script_setup_true_lang.js +4 -3
  49. package/es/dropdown/dropdown-button.vue_vue_type_script_setup_true_lang.js +1 -1
  50. package/es/dropdown/dropdown-panel.vue_vue_type_script_setup_true_lang.js +1 -1
  51. package/es/dropdown/dropdown-submenu.vue_vue_type_script_setup_true_lang.js +1 -1
  52. package/es/file-previewer/file-previewer.vue_vue_type_script_setup_true_lang.js +13 -9
  53. package/es/form/form-item.vue_vue_type_script_setup_true_lang.js +1 -1
  54. package/es/form/index.js +1 -1
  55. package/es/grid/grid-col.vue_vue_type_script_setup_true_lang.js +1 -1
  56. package/es/grid/grid-item.vue_vue_type_script_setup_true_lang.js +1 -1
  57. package/es/grid/grid-row.vue_vue_type_script_setup_true_lang.js +1 -1
  58. package/es/grid/grid.vue_vue_type_script_setup_true_lang.js +1 -1
  59. package/es/image/image.vue_vue_type_script_setup_true_lang.js +1 -1
  60. package/es/image/preview-arrow.vue_vue_type_script_setup_true_lang.js +1 -1
  61. package/es/image/preview.vue_vue_type_script_setup_true_lang.js +1 -1
  62. package/es/index.css +44 -3
  63. package/es/index.d.ts +2 -0
  64. package/es/index.js +55 -54
  65. package/es/index.scss +1 -0
  66. package/es/input/input.js +3 -1
  67. package/es/input-number/input-number.js +8 -6
  68. package/es/json-form/style/index.css +0 -3
  69. package/es/json-form/style/index.scss +4 -3
  70. package/es/json-form/utils.js +5 -5
  71. package/es/layout/sider.vue_vue_type_script_setup_true_lang.js +9 -7
  72. package/es/link/link.vue_vue_type_script_setup_true_lang.js +1 -1
  73. package/es/list/list.js +1 -1
  74. package/es/locale/interface.d.ts +39 -0
  75. package/es/locale/lang/ar-eg.js +38 -0
  76. package/es/locale/lang/de-de.js +38 -0
  77. package/es/locale/lang/en-us.js +38 -0
  78. package/es/locale/lang/es-es.js +38 -0
  79. package/es/locale/lang/fr-fr.js +38 -0
  80. package/es/locale/lang/id-id.js +38 -0
  81. package/es/locale/lang/it-it.js +38 -0
  82. package/es/locale/lang/ja-jp.js +38 -0
  83. package/es/locale/lang/km-kh.js +38 -0
  84. package/es/locale/lang/ko-kr.js +38 -0
  85. package/es/locale/lang/ms-my.js +38 -0
  86. package/es/locale/lang/nl-nl.js +38 -0
  87. package/es/locale/lang/pt-pt.js +38 -0
  88. package/es/locale/lang/ru-ru.js +38 -0
  89. package/es/locale/lang/th-th.js +38 -0
  90. package/es/locale/lang/vi-vn.js +38 -0
  91. package/es/locale/lang/zh-cn.js +38 -0
  92. package/es/locale/lang/zh-tw.js +38 -0
  93. package/es/menu/item.d.ts +1 -1
  94. package/es/modal/modal.vue_vue_type_script_setup_true_lang.js +4 -3
  95. package/es/page-header/page-header.vue_vue_type_script_setup_true_lang.js +8 -2
  96. package/es/pagination/page-item-ellipsis.vue_vue_type_script_setup_true_lang.js +5 -2
  97. package/es/pagination/page-item-step.vue_vue_type_script_setup_true_lang.js +5 -3
  98. package/es/pagination/page-options.vue_vue_type_script_setup_true_lang.js +3 -3
  99. package/es/pagination/pagination.js +1 -1
  100. package/es/popconfirm/popconfirm.vue_vue_type_script_setup_true_lang.js +1 -1
  101. package/es/qr-code/qr-code.vue_vue_type_script_setup_true_lang.js +4 -2
  102. package/es/rate/rate.js +3 -1
  103. package/es/sd-vue.js +54 -52
  104. package/es/secret/secret.vue_vue_type_script_setup_true_lang.js +3 -1
  105. package/es/select/select.js +3 -3
  106. package/es/statistic/statistic.vue_vue_type_script_setup_true_lang.js +1 -1
  107. package/es/steps/steps.vue_vue_type_script_setup_true_lang.js +6 -3
  108. package/es/table/index.d.ts +4 -4
  109. package/es/table/table-operation-td.js +3 -3
  110. package/es/table/table-th.d.ts +1 -1
  111. package/es/table/table-th.js +2 -2
  112. package/es/table/table.d.ts +1 -1
  113. package/es/table/table.js +2 -2
  114. package/es/tabs/tabs-button.js +1 -1
  115. package/es/tag/tag.vue_vue_type_script_setup_true_lang.js +8 -2
  116. package/es/tag-group/tag-group.vue_vue_type_script_setup_true_lang.js +2 -2
  117. package/es/textarea/textarea.vue_vue_type_script_setup_true_lang.js +5 -2
  118. package/es/time-picker/time-picker.vue_vue_type_script_setup_true_lang.js +2 -2
  119. package/es/toolbar/index.d.ts +3 -3
  120. package/es/toolbar/toolbar.vue.d.ts +2 -2
  121. package/es/toolbar/toolbar.vue_vue_type_script_setup_true_lang.js +5 -5
  122. package/es/transfer/transfer-list-item.js +3 -1
  123. package/es/transfer/transfer.vue_vue_type_script_setup_true_lang.js +7 -5
  124. package/es/tree/base-node.vue_vue_type_script_setup_true_lang.js +1 -1
  125. package/es/tree/node-switcher.vue_vue_type_script_lang.js +1 -1
  126. package/es/typography/edit-content.vue_vue_type_script_setup_true_lang.js +8 -2
  127. package/es/upload/upload-list-item.js +1 -1
  128. package/es/upload/upload-picture-item.js +5 -3
  129. package/es/verification-code/verification-code.js +4 -2
  130. package/json/vetur-attributes.json +3 -0
  131. package/json/vetur-tags.json +4 -0
  132. package/json/web-types.json +15 -1
  133. package/package.json +1 -1
  134. package/es/color-picker/colors.d.ts +0 -1
  135. package/es/color-picker/colors.js +0 -27
@@ -0,0 +1,520 @@
1
+ import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/objectSpread2.js";
2
+ import { getPrefixCls } from "../_utils/global-config.js";
3
+ import { isPromise } from "../_utils/is.js";
4
+ import { _asyncToGenerator } from "../_virtual/_@oxc-project_runtime@0.133.0/helpers/esm/asyncToGenerator.js";
5
+ import Button from "../button/index.js";
6
+ import Spin from "../spin/index.js";
7
+ import Link from "../link/index.js";
8
+ import Popconfirm from "../popconfirm/index.js";
9
+ import Space from "../space/index.js";
10
+ import Table from "../table/index.js";
11
+ import Toolbar from "../toolbar/index.js";
12
+ import basic_crud_modal_default from "./basic-crud-modal.js";
13
+ import { computed, createBlock, createCommentVNode, createElementBlock, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, onMounted, openBlock, ref, renderList, renderSlot, shallowRef, toDisplayString, unref, useModel, useSlots, withCtx } from "vue";
14
+ import { isFunction, isNil, isString, omitBy } from "es-toolkit";
15
+ //#region components/basic-crud-table/basic-crud-table.vue?vue&type=script&setup=true&lang.ts
16
+ var _hoisted_1 = ["aria-busy"];
17
+ var basic_crud_table_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, {
18
+ name: "BasicCrudTable",
19
+ inheritAttrs: false
20
+ }), {}, {
21
+ __name: "basic-crud-table",
22
+ props: /*@__PURE__*/ mergeModels({
23
+ title: {},
24
+ columns: {},
25
+ tableProps: { default: () => ({}) },
26
+ toolbarProps: { default: () => ({}) },
27
+ modalProps: { default: () => ({}) },
28
+ modalFormProps: { default: () => ({ schemas: [] }) },
29
+ fullHeight: {
30
+ type: Boolean,
31
+ default: false
32
+ },
33
+ showCreate: {
34
+ type: Boolean,
35
+ default: true
36
+ },
37
+ openCreateModal: {
38
+ type: Boolean,
39
+ default: true
40
+ },
41
+ showEdit: {
42
+ type: Boolean,
43
+ default: true
44
+ },
45
+ showDelete: {
46
+ type: Boolean,
47
+ default: true
48
+ },
49
+ showToolbar: {
50
+ type: Boolean,
51
+ default: true
52
+ },
53
+ showHeader: {
54
+ type: Boolean,
55
+ default: true
56
+ },
57
+ showTitle: {
58
+ type: Boolean,
59
+ default: true
60
+ },
61
+ showActionColumn: {
62
+ type: Boolean,
63
+ default: true
64
+ },
65
+ fetchExcludeEmptyValues: {
66
+ type: Boolean,
67
+ default: false
68
+ },
69
+ fetchTableOnMounted: {
70
+ type: Boolean,
71
+ default: true
72
+ },
73
+ actionWidth: { default: 120 },
74
+ fetchTableApi: { type: Function },
75
+ tableDataTransformer: { type: Function },
76
+ createApi: { type: Function },
77
+ updateApi: { type: Function },
78
+ detailApi: { type: Function },
79
+ valueTransformer: { type: Function },
80
+ beforeModalSubmit: { type: Function },
81
+ deleteContent: { type: [String, Function] },
82
+ deleteApi: { type: Function },
83
+ beforeDelete: { type: Function },
84
+ deleteNameKey: {}
85
+ }, {
86
+ "loading": _objectSpread2({ type: Boolean }, { default: false }),
87
+ "loadingModifiers": {},
88
+ "toolbarModel": { default: () => ({}) },
89
+ "toolbarModelModifiers": {},
90
+ "tableData": { default: () => [] },
91
+ "tableDataModifiers": {},
92
+ "modalModel": { default: () => ({}) },
93
+ "modalModelModifiers": {},
94
+ "modalVisible": _objectSpread2({ type: Boolean }, { default: false }),
95
+ "modalVisibleModifiers": {}
96
+ }),
97
+ emits: /*@__PURE__*/ mergeModels([
98
+ "create",
99
+ "edit",
100
+ "delete",
101
+ "reset",
102
+ "search",
103
+ "tableFetched",
104
+ "modalSuccess",
105
+ "modalClose",
106
+ "error"
107
+ ], [
108
+ "update:loading",
109
+ "update:toolbarModel",
110
+ "update:tableData",
111
+ "update:modalModel",
112
+ "update:modalVisible"
113
+ ]),
114
+ setup(__props, { expose: __expose, emit: __emit }) {
115
+ const emit = __emit;
116
+ const loading = useModel(__props, "loading");
117
+ const toolbarModel = useModel(__props, "toolbarModel");
118
+ const tableData = useModel(__props, "tableData");
119
+ const modalModel = useModel(__props, "modalModel");
120
+ const modalVisible = useModel(__props, "modalVisible");
121
+ const slots = useSlots();
122
+ const toolbarRef = shallowRef();
123
+ const modalRef = shallowRef();
124
+ const current = shallowRef(resolvePaginationNumber("current", "defaultCurrent", 1));
125
+ const pageSize = shallowRef(resolvePaginationNumber("pageSize", "defaultPageSize", 10));
126
+ const total = shallowRef(0);
127
+ const sorter = shallowRef({});
128
+ const fetchData = shallowRef();
129
+ const prefixCls = getPrefixCls("basic-crud-table");
130
+ const cls = computed(() => [prefixCls, {
131
+ [`${prefixCls}-full-height`]: __props.fullHeight,
132
+ [`${prefixCls}-loading`]: loading.value
133
+ }]);
134
+ const toolbarSlotNames = computed(() => getForwardedSlotNames("toolbar__", [
135
+ "default",
136
+ "action_prepend",
137
+ "action_append"
138
+ ]));
139
+ const tableSlotNames = computed(() => getForwardedSlotNames("table__", ["action_prepend", "action_append"]));
140
+ const modalSlotNames = computed(() => getForwardedSlotNames("modal__"));
141
+ const resolvedColumns = computed(() => __props.showActionColumn ? [...__props.columns, {
142
+ title: "操作",
143
+ dataIndex: "__basic_crud_action__",
144
+ slotName: "basic-crud-action",
145
+ width: __props.actionWidth,
146
+ fixed: "right"
147
+ }] : __props.columns);
148
+ const resolvedPagination = computed(() => __props.tableProps.pagination === false ? false : _objectSpread2(_objectSpread2({}, typeof __props.tableProps.pagination === "object" ? __props.tableProps.pagination : {}), {}, {
149
+ current: current.value,
150
+ pageSize: pageSize.value,
151
+ total: total.value
152
+ }));
153
+ const resolvedTableScroll = computed(() => __props.fullHeight ? _objectSpread2(_objectSpread2({}, __props.tableProps.scroll), {}, { y: "100%" }) : __props.tableProps.scroll);
154
+ const params = computed(() => _objectSpread2(_objectSpread2({
155
+ current: current.value,
156
+ pageSize: pageSize.value
157
+ }, sorter.value), toolbarModel.value));
158
+ onMounted(() => {
159
+ if (__props.fetchTableOnMounted) handleFetchData();
160
+ });
161
+ function getForwardedSlotNames(prefix, excluded = []) {
162
+ return Object.keys(slots).filter((name) => name.startsWith(prefix)).map((name) => name.slice(prefix.length)).filter((name) => !excluded.includes(name));
163
+ }
164
+ function resolvePaginationNumber(controlled, initial, fallback) {
165
+ var _ref, _pagination$controlle;
166
+ const pagination = __props.tableProps.pagination;
167
+ return typeof pagination === "object" ? Number((_ref = (_pagination$controlle = pagination[controlled]) !== null && _pagination$controlle !== void 0 ? _pagination$controlle : pagination[initial]) !== null && _ref !== void 0 ? _ref : fallback) : fallback;
168
+ }
169
+ function isObjectResult(value) {
170
+ return !!value && typeof value === "object" && Array.isArray(value.data);
171
+ }
172
+ function handleFetchData() {
173
+ return _handleFetchData.apply(this, arguments);
174
+ }
175
+ function _handleFetchData() {
176
+ _handleFetchData = _asyncToGenerator(function* (fetchParams = params.value) {
177
+ if (isNil(__props.fetchTableApi)) return;
178
+ loading.value = true;
179
+ try {
180
+ const requestParams = __props.fetchExcludeEmptyValues ? omitBy(fetchParams, (value) => value === "" || value === null || value === void 0) : fetchParams;
181
+ const response = yield __props.fetchTableApi(requestParams);
182
+ fetchData.value = response;
183
+ const result = isFunction(__props.tableDataTransformer) ? yield __props.tableDataTransformer(response) : response;
184
+ if (Array.isArray(result)) {
185
+ tableData.value = result;
186
+ total.value = result.length;
187
+ } else if (isObjectResult(result)) {
188
+ var _ref2, _result$total;
189
+ tableData.value = result.data;
190
+ total.value = (_ref2 = (_result$total = result.total) !== null && _result$total !== void 0 ? _result$total : result.count) !== null && _ref2 !== void 0 ? _ref2 : result.data.length;
191
+ } else return;
192
+ emit("tableFetched", tableData.value, result);
193
+ } catch (error) {
194
+ emit("error", error);
195
+ } finally {
196
+ loading.value = false;
197
+ }
198
+ });
199
+ return _handleFetchData.apply(this, arguments);
200
+ }
201
+ function handleSearch() {
202
+ return _handleSearch.apply(this, arguments);
203
+ }
204
+ function _handleSearch() {
205
+ _handleSearch = _asyncToGenerator(function* () {
206
+ current.value = 1;
207
+ yield handleFetchData();
208
+ emit("search", toolbarModel.value);
209
+ });
210
+ return _handleSearch.apply(this, arguments);
211
+ }
212
+ function handleReset() {
213
+ return _handleReset.apply(this, arguments);
214
+ }
215
+ function _handleReset() {
216
+ _handleReset = _asyncToGenerator(function* () {
217
+ current.value = 1;
218
+ sorter.value = {};
219
+ yield nextTick();
220
+ yield handleFetchData();
221
+ emit("reset");
222
+ });
223
+ return _handleReset.apply(this, arguments);
224
+ }
225
+ /** 仅重置工具栏筛选项,不触发列表请求。 */
226
+ function resetToolbar() {
227
+ var _toolbarRef$value;
228
+ (_toolbarRef$value = toolbarRef.value) === null || _toolbarRef$value === void 0 || _toolbarRef$value.reset(false);
229
+ }
230
+ /** 重置工具栏筛选、分页与排序,并重新请求列表。 */
231
+ function reset() {
232
+ return _reset.apply(this, arguments);
233
+ }
234
+ function _reset() {
235
+ _reset = _asyncToGenerator(function* () {
236
+ resetToolbar();
237
+ yield handleReset();
238
+ });
239
+ return _reset.apply(this, arguments);
240
+ }
241
+ function handleCreate() {
242
+ var _modalRef$value;
243
+ if (__props.openCreateModal) (_modalRef$value = modalRef.value) === null || _modalRef$value === void 0 || _modalRef$value.open();
244
+ emit("create");
245
+ }
246
+ function handleEdit(_x, _x2) {
247
+ return _handleEdit.apply(this, arguments);
248
+ }
249
+ function _handleEdit() {
250
+ _handleEdit = _asyncToGenerator(function* (row, context) {
251
+ var _modalRef$value2;
252
+ yield (_modalRef$value2 = modalRef.value) === null || _modalRef$value2 === void 0 ? void 0 : _modalRef$value2.open(row);
253
+ emit("edit", row, context);
254
+ });
255
+ return _handleEdit.apply(this, arguments);
256
+ }
257
+ const deleteConfirmContent = ref("确定要删除此条记录吗?");
258
+ const pendingDeleteRow = shallowRef();
259
+ function resolveDeleteContent(row) {
260
+ if (isString(__props.deleteContent)) return __props.deleteContent;
261
+ if (isFunction(__props.deleteContent)) return __props.deleteContent(row);
262
+ const name = __props.deleteNameKey ? row[__props.deleteNameKey] : void 0;
263
+ return name ? `确定删除【${String(name)}】吗?` : "确定要删除此条记录吗?";
264
+ }
265
+ function handleDeletePopupChange(visible, row) {
266
+ if (!visible) return;
267
+ pendingDeleteRow.value = row;
268
+ const resolved = resolveDeleteContent(row);
269
+ if (isPromise(resolved)) resolved.then((content) => {
270
+ if (pendingDeleteRow.value === row) deleteConfirmContent.value = content;
271
+ });
272
+ else deleteConfirmContent.value = resolved;
273
+ }
274
+ function executeDelete(_x3, _x4) {
275
+ return _executeDelete.apply(this, arguments);
276
+ }
277
+ function _executeDelete() {
278
+ _executeDelete = _asyncToGenerator(function* (row, context) {
279
+ if (__props.beforeDelete && (yield __props.beforeDelete(row)) === false) return false;
280
+ emit("delete", row, context);
281
+ try {
282
+ if (__props.deleteApi) yield __props.deleteApi(row);
283
+ yield handleFetchData();
284
+ return true;
285
+ } catch (error) {
286
+ emit("error", error);
287
+ return false;
288
+ }
289
+ });
290
+ return _executeDelete.apply(this, arguments);
291
+ }
292
+ function handleDeleteConfirm() {
293
+ const row = pendingDeleteRow.value;
294
+ if (!row) return Promise.resolve(false);
295
+ return executeDelete(row);
296
+ }
297
+ function handleModalSuccess(_x5, _x6) {
298
+ return _handleModalSuccess.apply(this, arguments);
299
+ }
300
+ function _handleModalSuccess() {
301
+ _handleModalSuccess = _asyncToGenerator(function* (result, context) {
302
+ yield handleFetchData();
303
+ emit("modalSuccess", result, context);
304
+ });
305
+ return _handleModalSuccess.apply(this, arguments);
306
+ }
307
+ function handlePageChange(_x7) {
308
+ return _handlePageChange.apply(this, arguments);
309
+ }
310
+ function _handlePageChange() {
311
+ _handlePageChange = _asyncToGenerator(function* (value) {
312
+ current.value = value;
313
+ yield handleFetchData();
314
+ });
315
+ return _handlePageChange.apply(this, arguments);
316
+ }
317
+ function handlePageSizeChange(_x8) {
318
+ return _handlePageSizeChange.apply(this, arguments);
319
+ }
320
+ function _handlePageSizeChange() {
321
+ _handlePageSizeChange = _asyncToGenerator(function* (value) {
322
+ pageSize.value = value;
323
+ current.value = 1;
324
+ yield handleFetchData();
325
+ });
326
+ return _handlePageSizeChange.apply(this, arguments);
327
+ }
328
+ function handleTableChange(_x9, _x10) {
329
+ return _handleTableChange.apply(this, arguments);
330
+ }
331
+ function _handleTableChange() {
332
+ _handleTableChange = _asyncToGenerator(function* (_data, extra) {
333
+ var _extra$sorter;
334
+ if (extra.type !== "sorter") return;
335
+ sorter.value = ((_extra$sorter = extra.sorter) === null || _extra$sorter === void 0 ? void 0 : _extra$sorter.field) && extra.sorter.direction ? { sort_by: extra.sorter.direction === "descend" ? `-${extra.sorter.field}` : extra.sorter.field } : {};
336
+ current.value = 1;
337
+ yield handleFetchData();
338
+ });
339
+ return _handleTableChange.apply(this, arguments);
340
+ }
341
+ __expose({
342
+ fetchTableData: handleFetchData,
343
+ search: handleSearch,
344
+ /** 重置工具栏筛选 + 分页/排序并刷新(全量重置)。 */
345
+ reset,
346
+ /** 仅重置工具栏筛选项,不刷新。 */
347
+ resetToolbar,
348
+ /** 仅重置分页/排序并刷新,不动工具栏。 */
349
+ resetTable: handleReset,
350
+ create: handleCreate,
351
+ edit: handleEdit,
352
+ delete: executeDelete,
353
+ tableData: computed(() => tableData.value),
354
+ fetchData: computed(() => fetchData.value),
355
+ isCreate: computed(() => {
356
+ var _modalRef$value3;
357
+ return ((_modalRef$value3 = modalRef.value) === null || _modalRef$value3 === void 0 ? void 0 : _modalRef$value3.type) === "create";
358
+ }),
359
+ modalRef
360
+ });
361
+ return (_ctx, _cache) => {
362
+ return openBlock(), createElementBlock("section", {
363
+ class: normalizeClass(cls.value),
364
+ "aria-busy": loading.value
365
+ }, [
366
+ __props.showHeader ? (openBlock(), createElementBlock("header", {
367
+ key: 0,
368
+ class: normalizeClass(`${unref(prefixCls)}-header`)
369
+ }, [
370
+ renderSlot(_ctx.$slots, "header__title", { title: __props.title }, () => [__props.showTitle && __props.title ? (openBlock(), createElementBlock("h3", {
371
+ key: 0,
372
+ class: normalizeClass(`${unref(prefixCls)}-title`)
373
+ }, toDisplayString(__props.title), 3)) : createCommentVNode("", true)]),
374
+ renderSlot(_ctx.$slots, "header__extra"),
375
+ !__props.showToolbar && __props.showCreate ? (openBlock(), createElementBlock("div", {
376
+ key: 0,
377
+ class: normalizeClass(`${unref(prefixCls)}-header-actions`)
378
+ }, [createVNode(unref(Button), {
379
+ type: "primary",
380
+ onClick: handleCreate
381
+ }, {
382
+ default: withCtx(() => [..._cache[5] || (_cache[5] = [createTextVNode("新建", -1)])]),
383
+ _: 1
384
+ })], 2)) : createCommentVNode("", true),
385
+ __props.showToolbar ? (openBlock(), createBlock(unref(Toolbar), mergeProps({
386
+ key: 1,
387
+ ref_key: "toolbarRef",
388
+ ref: toolbarRef,
389
+ modelValue: toolbarModel.value,
390
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => toolbarModel.value = $event)
391
+ }, __props.toolbarProps, {
392
+ loading: loading.value,
393
+ onSearch: handleSearch,
394
+ onReset: handleReset
395
+ }), createSlots({
396
+ "action-append": withCtx(() => [renderSlot(_ctx.$slots, "toolbar__action_append"), __props.showCreate ? (openBlock(), createBlock(unref(Button), {
397
+ key: 0,
398
+ type: "primary",
399
+ onClick: handleCreate
400
+ }, {
401
+ default: withCtx(() => [..._cache[6] || (_cache[6] = [createTextVNode("新建", -1)])]),
402
+ _: 1
403
+ })) : createCommentVNode("", true)]),
404
+ _: 2
405
+ }, [
406
+ _ctx.$slots.toolbar__default ? {
407
+ name: "default",
408
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "toolbar__default")]),
409
+ key: "0"
410
+ } : void 0,
411
+ _ctx.$slots.toolbar__action_prepend ? {
412
+ name: "action-prepend",
413
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "toolbar__action_prepend")]),
414
+ key: "1"
415
+ } : void 0,
416
+ renderList(toolbarSlotNames.value, (name) => {
417
+ return {
418
+ name,
419
+ fn: withCtx((data) => [renderSlot(_ctx.$slots, `toolbar__${name}`, normalizeProps(guardReactiveProps(data)))])
420
+ };
421
+ })
422
+ ]), 1040, ["modelValue", "loading"])) : createCommentVNode("", true)
423
+ ], 2)) : createCommentVNode("", true),
424
+ createVNode(unref(Spin), {
425
+ loading: loading.value,
426
+ class: normalizeClass(`${unref(prefixCls)}-body`)
427
+ }, {
428
+ default: withCtx(() => [createVNode(unref(Table), mergeProps(__props.tableProps, {
429
+ scroll: resolvedTableScroll.value,
430
+ columns: resolvedColumns.value,
431
+ data: tableData.value,
432
+ pagination: resolvedPagination.value,
433
+ onPageChange: handlePageChange,
434
+ onPageSizeChange: handlePageSizeChange,
435
+ onChange: handleTableChange
436
+ }), createSlots({
437
+ "basic-crud-action": withCtx((data) => [createVNode(unref(Space), null, {
438
+ default: withCtx(() => [
439
+ renderSlot(_ctx.$slots, "table__action_prepend", normalizeProps(guardReactiveProps(data))),
440
+ __props.showEdit ? (openBlock(), createBlock(unref(Link), {
441
+ key: 0,
442
+ ellipsis: false,
443
+ onClick: ($event) => handleEdit(data.record, data)
444
+ }, {
445
+ default: withCtx(() => [..._cache[7] || (_cache[7] = [createTextVNode(" 编辑 ", -1)])]),
446
+ _: 1
447
+ }, 8, ["onClick"])) : createCommentVNode("", true),
448
+ __props.showDelete ? (openBlock(), createBlock(unref(Popconfirm), {
449
+ key: 1,
450
+ content: deleteConfirmContent.value,
451
+ type: "warning",
452
+ "on-before-ok": handleDeleteConfirm,
453
+ onPopupVisibleChange: (visible) => handleDeletePopupChange(visible, data.record)
454
+ }, {
455
+ default: withCtx(() => [createVNode(unref(Link), {
456
+ ellipsis: false,
457
+ status: "danger"
458
+ }, {
459
+ default: withCtx(() => [..._cache[8] || (_cache[8] = [createTextVNode("删除", -1)])]),
460
+ _: 1
461
+ })]),
462
+ _: 1
463
+ }, 8, ["content", "onPopupVisibleChange"])) : createCommentVNode("", true),
464
+ renderSlot(_ctx.$slots, "table__action_append", normalizeProps(guardReactiveProps(data)))
465
+ ]),
466
+ _: 2
467
+ }, 1024)]),
468
+ _: 2
469
+ }, [renderList(tableSlotNames.value, (name) => {
470
+ return {
471
+ name,
472
+ fn: withCtx((data) => [renderSlot(_ctx.$slots, `table__${name}`, normalizeProps(guardReactiveProps(data)))])
473
+ };
474
+ })]), 1040, [
475
+ "scroll",
476
+ "columns",
477
+ "data",
478
+ "pagination"
479
+ ])]),
480
+ _: 3
481
+ }, 8, ["loading", "class"]),
482
+ createVNode(basic_crud_modal_default, {
483
+ ref_key: "modalRef",
484
+ ref: modalRef,
485
+ visible: modalVisible.value,
486
+ "onUpdate:visible": _cache[1] || (_cache[1] = ($event) => modalVisible.value = $event),
487
+ model: modalModel.value,
488
+ "onUpdate:model": _cache[2] || (_cache[2] = ($event) => modalModel.value = $event),
489
+ "modal-props": __props.modalProps,
490
+ "modal-form-props": __props.modalFormProps,
491
+ "create-api": __props.createApi,
492
+ "update-api": __props.updateApi,
493
+ "detail-api": __props.detailApi,
494
+ "value-transformer": __props.valueTransformer,
495
+ "before-submit": __props.beforeModalSubmit,
496
+ onSuccess: handleModalSuccess,
497
+ onClose: _cache[3] || (_cache[3] = ($event) => emit("modalClose")),
498
+ onError: _cache[4] || (_cache[4] = ($event) => emit("error", $event))
499
+ }, createSlots({ _: 2 }, [renderList(modalSlotNames.value, (name) => {
500
+ return {
501
+ name,
502
+ fn: withCtx((data) => [renderSlot(_ctx.$slots, `modal__${name}`, normalizeProps(guardReactiveProps(data)))])
503
+ };
504
+ })]), 1032, [
505
+ "visible",
506
+ "model",
507
+ "modal-props",
508
+ "modal-form-props",
509
+ "create-api",
510
+ "update-api",
511
+ "detail-api",
512
+ "value-transformer",
513
+ "before-submit"
514
+ ])
515
+ ], 10, _hoisted_1);
516
+ };
517
+ }
518
+ }));
519
+ //#endregion
520
+ export { basic_crud_table_vue_vue_type_script_setup_true_lang_default as default };