m-eleplus-crud 0.0.7 → 0.0.8

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 (90) hide show
  1. package/dist/index.full.js +35 -14
  2. package/dist/index.full.min.js +8 -8
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +8 -8
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +35 -14
  7. package/dist/locale/en.js +1 -1
  8. package/dist/locale/en.min.js +1 -1
  9. package/dist/locale/en.min.mjs +1 -1
  10. package/dist/locale/en.mjs +1 -1
  11. package/dist/locale/zh-cn.js +1 -1
  12. package/dist/locale/zh-cn.min.js +1 -1
  13. package/dist/locale/zh-cn.min.mjs +1 -1
  14. package/dist/locale/zh-cn.mjs +1 -1
  15. package/es/components/crud/src/crud.d.ts +8 -0
  16. package/es/components/form/src/form.d.ts +4 -0
  17. package/es/index.mjs +5 -5
  18. package/es/packages/components/crud/index.mjs +2 -2
  19. package/es/packages/components/crud/src/crud.mjs +611 -53
  20. package/es/packages/components/crud/src/crud.mjs.map +1 -1
  21. package/es/packages/components/crud/src/crud2.mjs +53 -598
  22. package/es/packages/components/crud/src/crud2.mjs.map +1 -1
  23. package/es/packages/components/dialog/index.mjs +2 -2
  24. package/es/packages/components/dialog/src/dialog.mjs +116 -75
  25. package/es/packages/components/dialog/src/dialog.mjs.map +1 -1
  26. package/es/packages/components/dialog/src/dialog2.mjs +75 -116
  27. package/es/packages/components/dialog/src/dialog2.mjs.map +1 -1
  28. package/es/packages/components/form/src/form.mjs.map +1 -1
  29. package/es/packages/components/form/src/form2.mjs +15 -8
  30. package/es/packages/components/form/src/form2.mjs.map +1 -1
  31. package/es/packages/components/index.mjs +5 -5
  32. package/es/packages/components/pagination/index.mjs +2 -2
  33. package/es/packages/components/pagination/src/pagination.mjs +41 -38
  34. package/es/packages/components/pagination/src/pagination.mjs.map +1 -1
  35. package/es/packages/components/pagination/src/pagination2.mjs +38 -41
  36. package/es/packages/components/pagination/src/pagination2.mjs.map +1 -1
  37. package/es/packages/components/qrcode/index.mjs +2 -2
  38. package/es/packages/components/qrcode/src/qrcode.mjs +22 -62
  39. package/es/packages/components/qrcode/src/qrcode.mjs.map +1 -1
  40. package/es/packages/components/qrcode/src/qrcode2.mjs +62 -22
  41. package/es/packages/components/qrcode/src/qrcode2.mjs.map +1 -1
  42. package/es/packages/components/search/src/search2.mjs +2 -1
  43. package/es/packages/components/search/src/search2.mjs.map +1 -1
  44. package/es/packages/components/table/index.mjs +2 -2
  45. package/es/packages/components/table/src/table.mjs +419 -37
  46. package/es/packages/components/table/src/table.mjs.map +1 -1
  47. package/es/packages/components/table/src/table2.mjs +37 -419
  48. package/es/packages/components/table/src/table2.mjs.map +1 -1
  49. package/es/version.d.ts +1 -1
  50. package/es/version.mjs +1 -1
  51. package/es/version.mjs.map +1 -1
  52. package/lib/components/crud/src/crud.d.ts +8 -0
  53. package/lib/components/form/src/form.d.ts +4 -0
  54. package/lib/index.js +5 -5
  55. package/lib/packages/components/crud/index.js +2 -2
  56. package/lib/packages/components/crud/src/crud.js +611 -54
  57. package/lib/packages/components/crud/src/crud.js.map +1 -1
  58. package/lib/packages/components/crud/src/crud2.js +54 -598
  59. package/lib/packages/components/crud/src/crud2.js.map +1 -1
  60. package/lib/packages/components/dialog/index.js +2 -2
  61. package/lib/packages/components/dialog/src/dialog.js +116 -76
  62. package/lib/packages/components/dialog/src/dialog.js.map +1 -1
  63. package/lib/packages/components/dialog/src/dialog2.js +76 -116
  64. package/lib/packages/components/dialog/src/dialog2.js.map +1 -1
  65. package/lib/packages/components/form/src/form.js.map +1 -1
  66. package/lib/packages/components/form/src/form2.js +15 -8
  67. package/lib/packages/components/form/src/form2.js.map +1 -1
  68. package/lib/packages/components/index.js +5 -5
  69. package/lib/packages/components/pagination/index.js +2 -2
  70. package/lib/packages/components/pagination/src/pagination.js +42 -38
  71. package/lib/packages/components/pagination/src/pagination.js.map +1 -1
  72. package/lib/packages/components/pagination/src/pagination2.js +38 -42
  73. package/lib/packages/components/pagination/src/pagination2.js.map +1 -1
  74. package/lib/packages/components/qrcode/index.js +2 -2
  75. package/lib/packages/components/qrcode/src/qrcode.js +23 -66
  76. package/lib/packages/components/qrcode/src/qrcode.js.map +1 -1
  77. package/lib/packages/components/qrcode/src/qrcode2.js +66 -23
  78. package/lib/packages/components/qrcode/src/qrcode2.js.map +1 -1
  79. package/lib/packages/components/search/src/search2.js +2 -1
  80. package/lib/packages/components/search/src/search2.js.map +1 -1
  81. package/lib/packages/components/table/index.js +2 -2
  82. package/lib/packages/components/table/src/table.js +424 -38
  83. package/lib/packages/components/table/src/table.js.map +1 -1
  84. package/lib/packages/components/table/src/table2.js +38 -424
  85. package/lib/packages/components/table/src/table2.js.map +1 -1
  86. package/lib/version.d.ts +1 -1
  87. package/lib/version.js +1 -1
  88. package/lib/version.js.map +1 -1
  89. package/package.json +2 -2
  90. package/web-types.json +1 -1
@@ -2,608 +2,64 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- var lodashUnified = require('lodash-unified');
7
- var crud = require('./crud.js');
8
- var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js');
9
- var index$1 = require('../../../../node_modules/.pnpm/element-plus@2.9.1_vue@3.5.13_typescript@5.5.4_/node_modules/element-plus/es/components/message-box/index.js');
10
- var useGlobalConfig = require('../../config-provider/src/hooks/use-global-config.js');
11
- var index = require('../../../hooks/use-locale/index.js');
5
+ var types = require('../../../utils/types.js');
6
+ var runtime = require('../../../utils/vue/props/runtime.js');
7
+ var index = require('../../../hooks/use-size/index.js');
8
+ var shared = require('@vue/shared');
12
9
 
13
- const COMPONENT_NAME = "MCrud";
14
- const __default__ = vue.defineComponent({
15
- name: COMPONENT_NAME
16
- });
17
- const _sfc_main = vue.defineComponent({
18
- ...__default__,
19
- props: crud.crudProps,
20
- emits: crud.crudEmits,
21
- setup(__props, { expose: __expose, emit: __emit }) {
22
- const props = __props;
23
- const emit = __emit;
24
- const slots = vue.useSlots();
25
- const globalConfig = useGlobalConfig.useGlobalConfig();
26
- const { t } = index.useLocale();
27
- const searchSlots = vue.computed(() => {
28
- const keys = Object.keys(slots);
29
- const result = {};
30
- for (const key of keys) {
31
- if (key.endsWith("Search")) {
32
- result[key.replace("Search", "")] = slots[key];
33
- }
34
- }
35
- return result;
36
- });
37
- const formSlots = vue.computed(() => {
38
- const keys = Object.keys(slots);
39
- const result = {};
40
- for (const key of keys) {
41
- if (key.endsWith("Form")) {
42
- result[key.replace("Form", "")] = slots[key];
43
- }
44
- }
45
- return result;
46
- });
47
- const tableSlots = vue.computed(() => {
48
- const whites = ["topLeft", "topRight", "addBtn"];
49
- const keys = Object.keys(slots);
50
- const result = {};
51
- for (const key of keys) {
52
- if (!whites.includes(key) && !key.endsWith("Search") && !key.endsWith("Form")) {
53
- result[key] = slots[key];
54
- }
55
- }
56
- return result;
57
- });
58
- const crudOption = vue.ref({
10
+ const crudProps = runtime.buildProps({
11
+ size: index.useSizeProp,
12
+ loading: {
13
+ type: Boolean,
14
+ default: false
15
+ },
16
+ data: {
17
+ type: Array,
18
+ required: true
19
+ },
20
+ search: {
21
+ type: Object,
22
+ default: () => ({})
23
+ },
24
+ total: {
25
+ type: Number,
26
+ default: 0
27
+ },
28
+ modelValue: {
29
+ type: Object,
30
+ required: true
31
+ },
32
+ permission: {
33
+ type: Object,
34
+ default: () => ({
59
35
  addBtn: true,
60
36
  editBtn: true,
61
- delBtn: true,
62
- addBtnText: t("m.crud.addBtnText"),
63
- addBtnIcon: "Plus",
64
- addDialogTitle: t("m.crud.addDialogTitle"),
65
- editDialogTitle: t("m.crud.editDialogTitle"),
66
- viewDialogTitle: t("m.crud.viewDialogTitle"),
67
- dialogWidth: "800px",
68
- column: []
69
- });
70
- const dialogType = vue.ref("add");
71
- const searchRef = vue.ref();
72
- const formRef = vue.ref();
73
- const tableRef = vue.ref();
74
- const dialogVisible = vue.ref(false);
75
- const tableHeight = vue.ref(void 0);
76
- const _modelForm = vue.ref();
77
- const _rowIndex = vue.ref(-1);
78
- const dialogTitle = vue.computed(() => {
79
- if (dialogType.value === "add") {
80
- return crudOption.value.addDialogTitle;
81
- }
82
- if (dialogType.value === "edit") {
83
- return crudOption.value.editDialogTitle;
84
- }
85
- return crudOption.value.viewDialogTitle;
86
- });
87
- const modelForm = vue.computed({
88
- get() {
89
- return props.modelValue;
90
- },
91
- set(value) {
92
- emit("update:modelValue", value);
93
- }
94
- });
95
- const __firstModelForm = vue.ref({});
96
- __firstModelForm.value = props.modelValue;
97
- const tableOption = vue.ref({
98
- menu: true,
99
- column: []
100
- });
101
- const searchOption = vue.ref({
102
- column: []
103
- });
104
- const formOption = vue.computed(() => {
105
- let option = {
106
- column: []
107
- };
108
- option = transFormOption(
109
- Object.assign({}, option, copyObjectExcept(crudOption.value, ["column"]))
110
- );
111
- for (let i = 0; i < crudOption.value.column.length; i++) {
112
- const item = lodashUnified.cloneDeep(crudOption.value.column[i]);
113
- const formColumn = transFormColumn(item);
114
- if (["index", "single", "selection"].includes(item.type || "")) {
115
- continue;
116
- }
117
- if (dialogType.value === "add") {
118
- if (!item.addHide) {
119
- option.column.push(formColumn);
120
- }
121
- } else if (dialogType.value === "edit") {
122
- if (!item.editHide) {
123
- option.column.push(formColumn);
124
- }
125
- } else {
126
- if (!item.viewHide) {
127
- option.column.push(formColumn);
128
- }
129
- }
130
- }
131
- return option;
132
- });
133
- const searchProxys = new Proxy(props.search, {
134
- get(target, key) {
135
- return lodashUnified.get(target, key);
136
- },
137
- set(target, key, value) {
138
- lodashUnified.set(target, key, value);
139
- return true;
140
- }
141
- });
142
- const selectData = vue.computed({
143
- get() {
144
- return props.select;
145
- },
146
- set(value) {
147
- emit("update:select", value);
148
- }
149
- });
150
- const transSearchColumn = (column) => {
151
- const result = lodashUnified.cloneDeep(column);
152
- if (column.searchOrder) {
153
- result.order = column.searchOrder;
154
- } else {
155
- delete result.order;
156
- }
157
- if (column.searchValue) {
158
- result.value = column.searchValue;
159
- } else {
160
- delete result.value;
161
- }
162
- if (column.searchPlaceholder) {
163
- result.placeholder = column.searchPlaceholder;
164
- } else {
165
- delete result.placeholder;
166
- }
167
- if (column.searchRules) {
168
- result.rules = column.searchRules;
169
- } else {
170
- delete result.rules;
171
- }
172
- if (column.searchSpan) {
173
- result.span = column.searchSpan;
174
- } else {
175
- delete result.span;
176
- }
177
- if (column.searchLabelWidth) {
178
- result.labelWidth = column.searchLabelWidth;
179
- } else {
180
- delete result.labelWidth;
181
- }
182
- return result;
183
- };
184
- const transFormColumn = (column) => {
185
- const result = lodashUnified.cloneDeep(column);
186
- if (column.formOrder) {
187
- result.order = column.formOrder;
188
- } else {
189
- delete result.order;
190
- }
191
- if (column.formValue) {
192
- result.value = column.formValue;
193
- } else {
194
- delete result.value;
195
- }
196
- if (column.formPlaceholder) {
197
- result.placeholder = column.formPlaceholder;
198
- } else {
199
- delete result.placeholder;
200
- }
201
- if (column.formRules) {
202
- result.rules = column.formRules;
203
- } else {
204
- delete result.rules;
205
- }
206
- if (column.formLabelWidth) {
207
- result.labelWidth = column.formLabelWidth;
208
- } else {
209
- delete result.labelWidth;
210
- }
211
- if (column.formSpan || column.addSpan || column.editSpan || column.viewSpan) {
212
- if (column.formSpan) {
213
- result.span = column.formSpan;
214
- }
215
- if (dialogType.value === "add" && column.addSpan) {
216
- result.span = column.addSpan;
217
- } else if (dialogType.value === "edit" && column.editSpan) {
218
- result.span = column.editSpan;
219
- } else if (dialogType.value === "view" && column.viewSpan) {
220
- result.span = column.viewSpan;
221
- }
222
- } else {
223
- delete result.span;
224
- }
225
- return result;
226
- };
227
- const transSearchOption = (option) => {
228
- const result = lodashUnified.cloneDeep(option);
229
- if (option.searchLabelWidth) {
230
- result.labelWidth = option.searchLabelWidth;
231
- } else {
232
- delete result.labelWidth;
233
- }
234
- return result;
235
- };
236
- const transFormOption = (option) => {
237
- const result = lodashUnified.cloneDeep(option);
238
- if (option.formLabelWidth) {
239
- result.labelWidth = option.formLabelWidth;
240
- } else {
241
- delete result.labelWidth;
242
- }
243
- return result;
244
- };
245
- const currentPageChange = (page) => {
246
- var _a;
247
- (_a = searchRef.value) == null ? void 0 : _a.search(page);
248
- };
249
- const pageSizeChange = (pageSize) => {
250
- var _a;
251
- searchProxys.limit = pageSize;
252
- (_a = searchRef.value) == null ? void 0 : _a.search();
253
- };
254
- const handleSearch = (form) => {
255
- var _a;
256
- (_a = tableRef.value) == null ? void 0 : _a.clearSelection();
257
- emit("search", form);
258
- };
259
- const handleReset = () => {
260
- var _a;
261
- (_a = tableRef.value) == null ? void 0 : _a.clearSelection();
262
- emit("reset");
263
- };
264
- const setTableHeight = () => {
265
- vue.nextTick(() => {
266
- var _a, _b;
267
- if (crudOption.value.height === "auto") {
268
- const tableStyle = (_a = tableRef.value) == null ? void 0 : _a.$el;
269
- const calcHeight = crudOption.value.calcHeight || ((_b = globalConfig.value) == null ? void 0 : _b.calcHeight) || 0;
270
- tableHeight.value = document.documentElement.clientHeight - ((tableStyle == null ? void 0 : tableStyle.offsetTop) || 0) - 72 - calcHeight;
271
- } else {
272
- tableHeight.value = crudOption.value.height;
273
- }
274
- });
275
- };
276
- const rowAdd = () => {
277
- dialogType.value = "add";
278
- dialogVisible.value = true;
279
- };
280
- const rowEdit = (row, index) => {
281
- _modelForm.value = lodashUnified.cloneDeep(row);
282
- _rowIndex.value = index;
283
- dialogType.value = "edit";
284
- modelForm.value = lodashUnified.cloneDeep(row);
285
- dialogVisible.value = true;
286
- };
287
- const rowView = (row, index) => {
288
- _modelForm.value = lodashUnified.cloneDeep(row);
289
- _rowIndex.value = index;
290
- dialogType.value = "view";
291
- modelForm.value = lodashUnified.cloneDeep(row);
292
- dialogVisible.value = true;
293
- };
294
- const rowDel = (row, index) => {
295
- index$1.ElMessageBox.confirm("\u6B64\u64CD\u4F5C\u5C06\u5220\u9664\u8BE5\u6570\u636E, \u662F\u5426\u7EE7\u7EED?", "\u63D0\u793A", {
296
- confirmButtonText: "\u786E\u5B9A",
297
- cancelButtonText: "\u53D6\u6D88",
298
- type: "warning"
299
- }).then(() => {
300
- emit("rowDel", row, index);
301
- }).catch(() => {
302
- });
303
- };
304
- const dialogEnter = async (done, loading) => {
305
- const valid = await formRef.value.validForm();
306
- if (!valid) {
307
- loading();
308
- return;
309
- }
310
- if (props.beforeEnter && !await props.beforeEnter()) {
311
- loading();
312
- return;
313
- }
314
- if (dialogType.value === "add") {
315
- emit("rowSave", modelForm.value, done, loading);
316
- } else if (dialogType.value === "edit") {
317
- emit("rowEdit", modelForm.value, done, loading);
318
- }
319
- };
320
- const dialogCancel = () => {
321
- emit("rowCancel", _modelForm.value || {}, _rowIndex.value, dialogType.value);
322
- };
323
- const dialogClose = () => {
324
- _modelForm.value = null;
325
- _rowIndex.value = -1;
326
- if (formRef.value) {
327
- formRef.value.clear();
328
- modelForm.value = lodashUnified.cloneDeep(__firstModelForm.value);
329
- } else {
330
- emit("update:modelValue", lodashUnified.cloneDeep(__firstModelForm.value));
331
- }
332
- };
333
- const copyObjectExcept = (sourceObj, excludeKeys = []) => {
334
- const result = {};
335
- Object.keys(sourceObj).forEach((key) => {
336
- if (!excludeKeys.includes(key)) {
337
- result[key] = sourceObj[key];
338
- }
339
- });
340
- return result;
341
- };
342
- vue.watch(
343
- () => props.option,
344
- (newVal) => {
345
- if (newVal) {
346
- crudOption.value = Object.assign({}, crudOption.value, newVal);
347
- tableOption.value = Object.assign(
348
- {},
349
- tableOption.value,
350
- copyObjectExcept(crudOption.value, ["column"])
351
- );
352
- searchOption.value = transSearchOption(
353
- Object.assign(
354
- {},
355
- searchOption.value,
356
- copyObjectExcept(crudOption.value, ["column"])
357
- )
358
- );
359
- const searchColumns = [];
360
- const tableColumns = [];
361
- if (newVal.column && newVal.column.length) {
362
- for (let i = 0; i < newVal.column.length; i++) {
363
- const item = newVal.column[i];
364
- if (item.search && !["index", "single", "selection"].includes(item.type || "")) {
365
- searchColumns.push(transSearchColumn(item));
366
- }
367
- if (!item.hide) {
368
- tableColumns.push(item);
369
- }
370
- }
371
- searchOption.value.column = searchColumns;
372
- tableOption.value.column = tableColumns;
373
- }
374
- }
375
- },
376
- {
377
- immediate: true,
378
- deep: true
379
- }
380
- );
381
- vue.onMounted(() => {
382
- if (crudOption.value.height) {
383
- setTableHeight();
384
- }
385
- });
386
- __expose({
387
- rowAdd,
388
- rowEdit,
389
- rowView,
390
- rowDel
391
- });
392
- return (_ctx, _cache) => {
393
- const _component_MSearch = vue.resolveComponent("MSearch");
394
- const _component_el_button = vue.resolveComponent("el-button");
395
- const _component_el_link = vue.resolveComponent("el-link");
396
- const _component_MTable = vue.resolveComponent("MTable");
397
- const _component_m_pagination = vue.resolveComponent("m-pagination");
398
- const _component_MForm = vue.resolveComponent("MForm");
399
- const _component_MDialog = vue.resolveComponent("MDialog");
400
- return vue.openBlock(), vue.createElementBlock("div", { class: "m-crud" }, [
401
- vue.createVNode(_component_MSearch, {
402
- ref_key: "searchRef",
403
- ref: searchRef,
404
- model: vue.unref(searchProxys),
405
- option: searchOption.value,
406
- size: _ctx.size || vue.unref(globalConfig).size,
407
- permission: _ctx.permission,
408
- onSearch: handleSearch,
409
- onReset: handleReset
410
- }, vue.createSlots({
411
- _: 2
412
- }, [
413
- vue.renderList(Object.keys(searchSlots.value), (slotKey, index) => {
414
- return {
415
- name: slotKey,
416
- fn: vue.withCtx((scope) => [
417
- vue.renderSlot(_ctx.$slots, slotKey + "Search", vue.normalizeProps(vue.guardReactiveProps(scope)))
418
- ])
419
- };
420
- })
421
- ]), 1032, ["model", "option", "size", "permission"]),
422
- vue.createCommentVNode("\u9876\u90E8\u64CD\u4F5C\u533A\u57DF"),
423
- crudOption.value.addBtn || vue.unref(slots).topLeft ? (vue.openBlock(), vue.createElementBlock("div", {
424
- key: 0,
425
- class: "m-search-top"
426
- }, [
427
- vue.createElementVNode("div", { class: "m-search-left" }, [
428
- crudOption.value.addBtn && !vue.unref(slots).addBtn && _ctx.permission["add"] !== false ? (vue.openBlock(), vue.createBlock(_component_el_button, {
429
- key: 0,
430
- size: _ctx.size || vue.unref(globalConfig).size,
431
- type: "primary",
432
- icon: crudOption.value.addBtnIcon,
433
- onClick: ($event) => rowAdd()
434
- }, {
435
- default: vue.withCtx(() => [
436
- vue.createTextVNode(
437
- vue.toDisplayString(crudOption.value.addBtnText),
438
- 1
439
- )
440
- ]),
441
- _: 1
442
- }, 8, ["size", "icon", "onClick"])) : vue.createCommentVNode("v-if", true),
443
- _ctx.permission["add"] !== false ? vue.renderSlot(_ctx.$slots, "addBtn", vue.normalizeProps(vue.mergeProps({ key: 1 }, { size: _ctx.size || vue.unref(globalConfig).size }))) : vue.createCommentVNode("v-if", true),
444
- vue.renderSlot(_ctx.$slots, "topLeft", vue.normalizeProps(vue.guardReactiveProps({ size: _ctx.size || vue.unref(globalConfig).size })))
445
- ]),
446
- vue.createElementVNode("div", { class: "m-search-right" }, [
447
- vue.renderSlot(_ctx.$slots, "topRight", vue.normalizeProps(vue.guardReactiveProps({ size: _ctx.size || vue.unref(globalConfig).size })))
448
- ])
449
- ])) : vue.createCommentVNode("v-if", true),
450
- vue.createCommentVNode(""),
451
- vue.createCommentVNode("\u8868\u683C"),
452
- vue.createVNode(_component_MTable, {
453
- ref_key: "tableRef",
454
- ref: tableRef,
455
- select: selectData.value,
456
- "onUpdate:select": ($event) => selectData.value = $event,
457
- data: _ctx.data,
458
- size: _ctx.size || vue.unref(globalConfig).size,
459
- loading: _ctx.loading,
460
- permission: _ctx.permission,
461
- option: tableOption.value,
462
- height: tableHeight.value,
463
- "max-height": tableHeight.value
464
- }, vue.createSlots({
465
- menu: vue.withCtx((scope) => [
466
- crudOption.value.editBtn && !vue.unref(slots).editBtn && _ctx.permission["edit"] !== false ? (vue.openBlock(), vue.createBlock(_component_el_link, {
467
- key: 0,
468
- class: "m-control-btns",
469
- type: "primary",
470
- size: _ctx.size || vue.unref(globalConfig).size,
471
- underline: "never",
472
- icon: "Edit",
473
- onClick: ($event) => rowEdit(scope.row, scope.$index)
474
- }, {
475
- default: vue.withCtx(() => [
476
- vue.createTextVNode(
477
- vue.toDisplayString(vue.unref(t)("m.crud.editBtnText")),
478
- 1
479
- )
480
- ]),
481
- _: 2
482
- }, 1032, ["size", "onClick"])) : vue.createCommentVNode("v-if", true),
483
- crudOption.value.editBtn && vue.unref(slots).editBtn && _ctx.permission["edit"] !== false ? vue.renderSlot(_ctx.$slots, "editBtn", vue.normalizeProps(vue.mergeProps({ key: 1 }, scope))) : vue.createCommentVNode("v-if", true),
484
- crudOption.value.delBtn && !vue.unref(slots).delBtn && _ctx.permission["del"] !== false ? (vue.openBlock(), vue.createBlock(_component_el_link, {
485
- key: 2,
486
- class: "m-control-btns",
487
- type: "primary",
488
- underline: "never",
489
- size: _ctx.size || vue.unref(globalConfig).size,
490
- icon: "Delete",
491
- onClick: ($event) => rowDel(scope.row, scope.$index)
492
- }, {
493
- default: vue.withCtx(() => [
494
- vue.createTextVNode(
495
- vue.toDisplayString(vue.unref(t)("m.crud.delBtnText")),
496
- 1
497
- )
498
- ]),
499
- _: 2
500
- }, 1032, ["size", "onClick"])) : vue.createCommentVNode("v-if", true),
501
- crudOption.value.delBtn && vue.unref(slots).delBtn && _ctx.permission["del"] !== false ? vue.renderSlot(_ctx.$slots, "delBtn", vue.normalizeProps(vue.mergeProps({ key: 3 }, scope))) : vue.createCommentVNode("v-if", true),
502
- crudOption.value.menu && vue.unref(slots).menu && !(vue.unref(slots).editBtn || vue.unref(slots).delBtn) ? vue.renderSlot(_ctx.$slots, "menu", vue.normalizeProps(vue.mergeProps({ key: 4 }, scope))) : vue.createCommentVNode("v-if", true)
503
- ]),
504
- _: 2
505
- }, [
506
- vue.renderList(Object.keys(tableSlots.value), (slotKey, index) => {
507
- return {
508
- name: slotKey,
509
- fn: vue.withCtx((scope) => [
510
- vue.renderSlot(_ctx.$slots, slotKey, vue.normalizeProps(vue.guardReactiveProps(scope)))
511
- ])
512
- };
513
- })
514
- ]), 1032, ["select", "onUpdate:select", "data", "size", "loading", "permission", "option", "height", "max-height"]),
515
- vue.createCommentVNode(""),
516
- vue.createCommentVNode("\u5206\u9875\u533A\u57DF"),
517
- vue.unref(searchProxys).page && _ctx.total ? (vue.openBlock(), vue.createElementBlock("div", {
518
- key: 1,
519
- class: "m-pagination-box"
520
- }, [
521
- vue.createVNode(_component_m_pagination, {
522
- small: (_ctx.size || vue.unref(globalConfig).size) === "small",
523
- total: _ctx.total,
524
- "current-page": vue.unref(searchProxys).page,
525
- "page-size": vue.unref(searchProxys).limit,
526
- disabled: _ctx.loading,
527
- onCurrentPage: currentPageChange,
528
- onPageSize: pageSizeChange
529
- }, null, 8, ["small", "total", "current-page", "page-size", "disabled"])
530
- ])) : vue.createCommentVNode("v-if", true),
531
- vue.createCommentVNode("\u65B0\u589E/\u7F16\u8F91/\u67E5\u770B\u5BF9\u8BDD\u6846"),
532
- vue.createVNode(_component_MDialog, {
533
- modelValue: dialogVisible.value,
534
- "onUpdate:modelValue": ($event) => dialogVisible.value = $event,
535
- size: _ctx.size || vue.unref(globalConfig).size,
536
- title: dialogTitle.value,
537
- width: crudOption.value.dialogWidth,
538
- "save-btn": dialogType.value !== "view",
539
- "cancel-btn": dialogType.value !== "view",
540
- "save-btn-text": vue.unref(t)("m.crud.dialogSaveBtnText"),
541
- "cancel-btn-text": vue.unref(t)("m.crud.dialogCancelBtnText"),
542
- "save-btn-icon": dialogType.value === "add" ? "CirclePlus" : "CircleCheck",
543
- onEnter: dialogEnter,
544
- onCancel: dialogCancel,
545
- onClose: dialogClose
546
- }, {
547
- default: vue.withCtx(({ loading }) => [
548
- vue.createCommentVNode("\u6240\u6709\u7C7B\u578B\u9876\u90E8"),
549
- vue.renderSlot(_ctx.$slots, "allTop", vue.normalizeProps(vue.guardReactiveProps({ size: _ctx.size || vue.unref(globalConfig).size, loading }))),
550
- vue.createCommentVNode(""),
551
- vue.createCommentVNode("\u65B0\u589E/\u7F16\u8F91\u7C7B\u578B\u9876\u90E8"),
552
- dialogType.value !== "view" ? vue.renderSlot(_ctx.$slots, "formTop", vue.normalizeProps(vue.mergeProps({ key: 0 }, { size: _ctx.size || vue.unref(globalConfig).size, loading }))) : vue.createCommentVNode("v-if", true),
553
- vue.createCommentVNode(""),
554
- vue.createCommentVNode("\u65B0\u589E\u7C7B\u578B\u9876\u90E8"),
555
- dialogType.value === "add" ? vue.renderSlot(_ctx.$slots, "addTop", vue.normalizeProps(vue.mergeProps({ key: 1 }, { size: _ctx.size || vue.unref(globalConfig).size, loading }))) : vue.createCommentVNode("v-if", true),
556
- vue.createCommentVNode(""),
557
- vue.createCommentVNode("\u7F16\u8F91\u7C7B\u578B\u9876\u90E8"),
558
- dialogType.value === "edit" ? vue.renderSlot(_ctx.$slots, "editTop", vue.normalizeProps(vue.mergeProps({ key: 2 }, { size: _ctx.size || vue.unref(globalConfig).size, loading }))) : vue.createCommentVNode("v-if", true),
559
- vue.createCommentVNode(""),
560
- vue.createCommentVNode("\u67E5\u770B\u7C7B\u578B\u9876\u90E8"),
561
- dialogType.value === "view" ? vue.renderSlot(_ctx.$slots, "viewTop", vue.normalizeProps(vue.mergeProps({ key: 3 }, { size: _ctx.size || vue.unref(globalConfig).size, loading }))) : vue.createCommentVNode("v-if", true),
562
- vue.createCommentVNode(""),
563
- vue.createVNode(_component_MForm, {
564
- ref_key: "formRef",
565
- ref: formRef,
566
- loading,
567
- size: _ctx.size || vue.unref(globalConfig).size,
568
- option: formOption.value,
569
- model: modelForm.value,
570
- readonly: dialogType.value === "view"
571
- }, vue.createSlots({
572
- _: 2
573
- }, [
574
- vue.renderList(Object.keys(formSlots.value), (slotKey, index) => {
575
- return {
576
- name: slotKey,
577
- fn: vue.withCtx((scope) => [
578
- vue.renderSlot(_ctx.$slots, slotKey + "Form", vue.normalizeProps(vue.guardReactiveProps(scope)))
579
- ])
580
- };
581
- })
582
- ]), 1032, ["loading", "size", "option", "model", "readonly"]),
583
- vue.createCommentVNode("\u6240\u6709\u7C7B\u578B\u5E95\u90E8"),
584
- vue.renderSlot(_ctx.$slots, "allBottom", vue.normalizeProps(vue.guardReactiveProps({ size: _ctx.size || vue.unref(globalConfig).size, loading }))),
585
- vue.createCommentVNode(""),
586
- vue.createCommentVNode("\u65B0\u589E/\u7F16\u8F91\u7C7B\u578B\u5E95\u90E8"),
587
- dialogType.value !== "view" ? vue.renderSlot(_ctx.$slots, "formBottom", vue.normalizeProps(vue.mergeProps({ key: 4 }, { size: _ctx.size || vue.unref(globalConfig).size, loading }))) : vue.createCommentVNode("v-if", true),
588
- vue.createCommentVNode(""),
589
- vue.createCommentVNode("\u65B0\u589E\u7C7B\u578B\u5E95\u90E8"),
590
- dialogType.value === "add" ? vue.renderSlot(_ctx.$slots, "addBottom", vue.normalizeProps(vue.mergeProps({ key: 5 }, { size: _ctx.size || vue.unref(globalConfig).size, loading }))) : vue.createCommentVNode("v-if", true),
591
- vue.createCommentVNode(""),
592
- vue.createCommentVNode("\u7F16\u8F91\u7C7B\u578B\u5E95\u90E8"),
593
- dialogType.value === "edit" ? vue.renderSlot(_ctx.$slots, "editBottom", vue.normalizeProps(vue.mergeProps({ key: 6 }, { size: _ctx.size || vue.unref(globalConfig).size, loading }))) : vue.createCommentVNode("v-if", true),
594
- vue.createCommentVNode(""),
595
- vue.createCommentVNode("\u67E5\u770B\u7C7B\u578B\u5E95\u90E8"),
596
- dialogType.value === "view" ? vue.renderSlot(_ctx.$slots, "viewBottom", vue.normalizeProps(vue.mergeProps({ key: 7 }, { size: _ctx.size || vue.unref(globalConfig).size, loading }))) : vue.createCommentVNode("v-if", true),
597
- vue.createCommentVNode("")
598
- ]),
599
- _: 3
600
- }, 8, ["modelValue", "onUpdate:modelValue", "size", "title", "width", "save-btn", "cancel-btn", "save-btn-text", "cancel-btn-text", "save-btn-icon"]),
601
- vue.createCommentVNode("")
602
- ]);
603
- };
37
+ delBtn: true
38
+ })
39
+ },
40
+ select: {
41
+ type: Array,
42
+ default: () => []
43
+ },
44
+ beforeEnter: {
45
+ type: Function
46
+ },
47
+ option: {
48
+ type: runtime.definePropType(Object),
49
+ required: false
604
50
  }
605
51
  });
606
- var Crud = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "crud.vue"]]);
52
+ const crudEmits = {
53
+ "update:select": (arr) => shared.isArray(arr),
54
+ "update:modelValue": (value) => shared.isObject(value),
55
+ search: (form) => shared.isObject(form),
56
+ reset: () => true,
57
+ rowSave: (form, done, loading) => shared.isObject(form) && shared.isFunction(done) && shared.isFunction(loading),
58
+ rowEdit: (form, done, loading) => shared.isObject(form) && shared.isFunction(done) && shared.isFunction(loading),
59
+ rowCancel: (form, index, type) => shared.isObject(form) && types.isNumber(index) && shared.isString(type),
60
+ rowDel: (row, index) => shared.isObject(row) && types.isNumber(index)
61
+ };
607
62
 
608
- exports["default"] = Crud;
63
+ exports.crudEmits = crudEmits;
64
+ exports.crudProps = crudProps;
609
65
  //# sourceMappingURL=crud2.js.map