m-eleplus-crud 0.0.11 → 0.0.13

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 +13 -2
  2. package/dist/index.full.min.js +5 -5
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +6 -6
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +13 -2
  7. package/es/components/crud/src/crud.d.ts +8 -0
  8. package/es/components/form/src/form.d.ts +4 -0
  9. package/es/components/search/src/search.d.ts +4 -0
  10. package/es/index.mjs +6 -6
  11. package/es/packages/components/barcode/index.mjs +2 -2
  12. package/es/packages/components/barcode/src/barcode.mjs +53 -18
  13. package/es/packages/components/barcode/src/barcode.mjs.map +1 -1
  14. package/es/packages/components/barcode/src/barcode2.mjs +18 -53
  15. package/es/packages/components/barcode/src/barcode2.mjs.map +1 -1
  16. package/es/packages/components/crud/src/crud.mjs.map +1 -1
  17. package/es/packages/components/crud/src/crud2.mjs +10 -0
  18. package/es/packages/components/crud/src/crud2.mjs.map +1 -1
  19. package/es/packages/components/dialog/index.mjs +2 -2
  20. package/es/packages/components/dialog/src/dialog.mjs +116 -75
  21. package/es/packages/components/dialog/src/dialog.mjs.map +1 -1
  22. package/es/packages/components/dialog/src/dialog2.mjs +75 -116
  23. package/es/packages/components/dialog/src/dialog2.mjs.map +1 -1
  24. package/es/packages/components/form/src/form.mjs +1 -1
  25. package/es/packages/components/form/src/form.mjs.map +1 -1
  26. package/es/packages/components/form/src/form2.mjs.map +1 -1
  27. package/es/packages/components/index.mjs +6 -6
  28. package/es/packages/components/pagination/index.mjs +2 -2
  29. package/es/packages/components/pagination/src/pagination.mjs +41 -38
  30. package/es/packages/components/pagination/src/pagination.mjs.map +1 -1
  31. package/es/packages/components/pagination/src/pagination2.mjs +38 -41
  32. package/es/packages/components/pagination/src/pagination2.mjs.map +1 -1
  33. package/es/packages/components/qrcode/index.mjs +2 -2
  34. package/es/packages/components/qrcode/src/qrcode.mjs +62 -22
  35. package/es/packages/components/qrcode/src/qrcode.mjs.map +1 -1
  36. package/es/packages/components/qrcode/src/qrcode2.mjs +22 -62
  37. package/es/packages/components/qrcode/src/qrcode2.mjs.map +1 -1
  38. package/es/packages/components/search/index.mjs +2 -2
  39. package/es/packages/components/search/src/search.mjs +438 -25
  40. package/es/packages/components/search/src/search.mjs.map +1 -1
  41. package/es/packages/components/search/src/search2.mjs +25 -437
  42. package/es/packages/components/search/src/search2.mjs.map +1 -1
  43. package/es/packages/components/table/index.mjs +2 -2
  44. package/es/packages/components/table/src/table.mjs +37 -420
  45. package/es/packages/components/table/src/table.mjs.map +1 -1
  46. package/es/packages/components/table/src/table2.mjs +420 -37
  47. package/es/packages/components/table/src/table2.mjs.map +1 -1
  48. package/lib/components/crud/src/crud.d.ts +8 -0
  49. package/lib/components/form/src/form.d.ts +4 -0
  50. package/lib/components/search/src/search.d.ts +4 -0
  51. package/lib/index.js +6 -6
  52. package/lib/packages/components/barcode/index.js +2 -2
  53. package/lib/packages/components/barcode/src/barcode.js +57 -19
  54. package/lib/packages/components/barcode/src/barcode.js.map +1 -1
  55. package/lib/packages/components/barcode/src/barcode2.js +19 -57
  56. package/lib/packages/components/barcode/src/barcode2.js.map +1 -1
  57. package/lib/packages/components/crud/src/crud.js.map +1 -1
  58. package/lib/packages/components/crud/src/crud2.js +10 -0
  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 +1 -1
  66. package/lib/packages/components/form/src/form.js.map +1 -1
  67. package/lib/packages/components/form/src/form2.js.map +1 -1
  68. package/lib/packages/components/index.js +6 -6
  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 +66 -23
  76. package/lib/packages/components/qrcode/src/qrcode.js.map +1 -1
  77. package/lib/packages/components/qrcode/src/qrcode2.js +23 -66
  78. package/lib/packages/components/qrcode/src/qrcode2.js.map +1 -1
  79. package/lib/packages/components/search/index.js +2 -2
  80. package/lib/packages/components/search/src/search.js +438 -26
  81. package/lib/packages/components/search/src/search.js.map +1 -1
  82. package/lib/packages/components/search/src/search2.js +26 -437
  83. package/lib/packages/components/search/src/search2.js.map +1 -1
  84. package/lib/packages/components/table/index.js +2 -2
  85. package/lib/packages/components/table/src/table.js +38 -425
  86. package/lib/packages/components/table/src/table.js.map +1 -1
  87. package/lib/packages/components/table/src/table2.js +425 -38
  88. package/lib/packages/components/table/src/table2.js.map +1 -1
  89. package/package.json +1 -1
  90. package/web-types.json +1 -1
@@ -1,425 +1,42 @@
1
- import { defineComponent, useSlots, ref, watch, resolveComponent, resolveDirective, openBlock, createElementBlock, withDirectives, createBlock, unref, withCtx, createElementVNode, Fragment, renderList, createSlots, createVNode, toDisplayString, renderSlot, mergeProps, createCommentVNode, withModifiers, normalizeProps } from 'vue';
2
- import Qrcode from 'qrcodejs2-fix';
3
- import JsBarcode from 'jsbarcode';
4
- import { cloneDeep } from 'lodash-unified';
5
- import { tableProps, tableEmits } from './table2.mjs';
6
- import _export_sfc from '../../../../_virtual/plugin-vue_export-helper.mjs';
7
- import { useGlobalConfig } from '../../config-provider/src/hooks/use-global-config.mjs';
8
- import { useLocale } from '../../../hooks/use-locale/index.mjs';
9
- import { debugWarn } from '../../../utils/error.mjs';
1
+ import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
2
+ import { useSizeProp } from '../../../hooks/use-size/index.mjs';
3
+ import { isArray } from '@vue/shared';
10
4
 
11
- const COMPONENT_NAME = "MTable";
12
- const __default__ = defineComponent({
13
- name: COMPONENT_NAME
14
- });
15
- const _sfc_main = defineComponent({
16
- ...__default__,
17
- props: tableProps,
18
- emits: tableEmits,
19
- setup(__props, { expose: __expose, emit: __emit }) {
20
- const props = __props;
21
- const emit = __emit;
22
- const slots = useSlots();
23
- const globalConfig = useGlobalConfig();
24
- const { t } = useLocale();
25
- const NEED_DIC_TYPE = ["select", "checkbox", "radio", "switch"];
26
- const NEED_SLOT_TYPE = [
27
- "picture",
28
- "qrcode",
29
- "barcode",
30
- "single",
31
- ...NEED_DIC_TYPE
32
- ];
33
- const tableOption = ref({
34
- menu: false,
35
- stripe: false,
36
- border: false,
37
- menuWidth: 220,
38
- menuFixed: "right",
39
- menuAlign: "center",
40
- rowKey: "id",
41
- column: []
42
- });
43
- const codePreviewDialog = ref(false);
44
- const codePreview = ref("");
45
- const tableRef = ref();
46
- const selectIndex = ref(-1);
47
- const tableKey = ref(0);
48
- const tableLoading = ref(false);
49
- const getProductPic = (pic, column) => {
50
- if (!pic) {
51
- return [];
52
- }
53
- const picArr = pic.split(column.imgSuffix || ";").map((p) => (column.imgPrefix || "") + p);
54
- return picArr;
55
- };
56
- const openPreviewCode = (text, type = 1) => {
57
- codePreviewDialog.value = true;
58
- codePreview.value = text;
59
- setTimeout(() => {
60
- if (type == 1) {
61
- JsBarcode("#barcode-preview", text, {
62
- format: "CODE128",
63
- lineColor: "#000",
64
- width: 2,
65
- height: 50,
66
- displayValue: false
67
- });
68
- } else if (type == 2) {
69
- const dom = document.querySelector("#qrcode-preview");
70
- dom.innerHTML = "";
71
- new Qrcode(dom, {
72
- text,
73
- width: 180,
74
- height: 180
75
- });
76
- }
77
- }, 0);
78
- };
79
- const selectionChange = (arrs) => {
80
- emit("update:select", cloneDeep(arrs));
81
- emit("selectionChange", arrs);
82
- };
83
- const radioSelect = (index) => {
84
- if (index == selectIndex.value) {
85
- selectIndex.value = -1;
86
- } else {
87
- selectIndex.value = index;
88
- }
89
- if (selectIndex.value == -1) {
90
- emit("update:select", []);
91
- emit("selectionChange", []);
92
- } else {
93
- emit("update:select", [cloneDeep(props.data[selectIndex.value])]);
94
- emit("selectionChange", [cloneDeep(props.data[selectIndex.value])]);
95
- }
96
- };
97
- const clearSelection = () => {
98
- tableRef.value.clearSelection();
99
- selectIndex.value = -1;
100
- };
101
- const toggleRowSelection = (index, selected, type = 2) => {
102
- if (type == 2) {
103
- const row = props.data[index];
104
- tableRef.value.toggleRowSelection(row, selected);
105
- } else {
106
- radioSelect(index);
107
- }
108
- };
109
- const refreshTable = () => {
110
- if (tableKey.value >= 9999) {
111
- tableKey.value = 0;
112
- } else {
113
- tableKey.value++;
114
- }
115
- };
116
- const getAllRemoteDics = () => {
117
- var _a, _b, _c;
118
- const hasDicUrl = (_b = (_a = tableOption.value) == null ? void 0 : _a.column) == null ? void 0 : _b.some((column) => column.dicUrl);
119
- if (hasDicUrl && !((_c = globalConfig.value) == null ? void 0 : _c.httpGet)) {
120
- debugWarn("MTable", "global config httpGet is null");
121
- return;
122
- }
123
- const updateRemoteDic = (column) => {
124
- return new Promise((resolve) => {
125
- let isSuccess = false;
126
- globalConfig.value.httpGet(column.dicUrl, column.dicQuery, column.dicHeaders).then((e) => {
127
- const { list, label, value } = column.dicFormatter(e);
128
- if (list && Array.isArray(list)) {
129
- column["dicData"] = list.map((item) => {
130
- const lastLabel = label.replace(/\{(\w+)\}/g, (match, key) => {
131
- return item[key] || match;
132
- });
133
- return {
134
- label: lastLabel,
135
- value: item[value]
136
- };
137
- });
138
- isSuccess = true;
139
- }
140
- }).finally(() => {
141
- if (!isSuccess) {
142
- column["dicData"] = [];
143
- }
144
- resolve(null);
145
- });
146
- });
147
- };
148
- const remotePromise = [];
149
- for (let i = 0; i < (tableOption.value.column || []).length; i++) {
150
- const column = tableOption.value.column[i];
151
- if (column.dicUrl) {
152
- if (!column.dicFormatter) {
153
- debugWarn("MTable", "dicUrl and dicFormatter must be used together");
154
- continue;
155
- }
156
- remotePromise.push(updateRemoteDic(column));
157
- }
158
- }
159
- if (remotePromise.length) {
160
- tableLoading.value = true;
161
- Promise.all(remotePromise).then(() => {
162
- refreshTable();
163
- tableLoading.value = false;
164
- });
165
- }
166
- };
167
- const formatDicValue = (row, column) => {
168
- let dictLabel = "";
169
- const findLabelByValue = (dicData, value) => {
170
- const dictItem = (dicData || []).find((dict) => dict.value === value);
171
- if (dictItem === void 0) {
172
- return dictLabel;
173
- }
174
- return dictItem.label;
175
- };
176
- if (column.type === "select" && column.multiple || column.type === "checkbox") {
177
- let values = [];
178
- if (row[column.prop || ""] != null && row[column.prop || ""] != void 0 && row[column.prop || ""] !== "") {
179
- if (Array.isArray(row[column.prop || ""])) {
180
- values = row[column.prop || ""];
181
- } else if (typeof row[column.prop || ""] === "string") {
182
- values = row[column.prop || ""].split(",");
183
- } else {
184
- values = [row[column.prop || ""]];
185
- }
186
- }
187
- const result = [];
188
- for (const value of values) {
189
- dictLabel = findLabelByValue(column.dicData || [], value);
190
- if (dictLabel === void 0) {
191
- break;
192
- }
193
- result.push(dictLabel);
194
- }
195
- return result.join(",");
196
- }
197
- dictLabel = findLabelByValue(column.dicData || [], row[column.prop || ""]);
198
- return dictLabel;
199
- };
200
- watch(
201
- () => props.option,
202
- (newVal) => {
203
- if (newVal) {
204
- tableOption.value = Object.assign({}, tableOption.value, newVal);
205
- if (newVal.column) {
206
- tableOption.value.column = cloneDeep(
207
- newVal.column.filter(
208
- (column) => !(props.permission[column.prop || ""] === false)
209
- )
210
- );
211
- }
212
- getAllRemoteDics();
213
- }
214
- },
215
- {
216
- immediate: true,
217
- deep: true
218
- }
219
- );
220
- __expose({
221
- clearSelection,
222
- toggleRowSelection,
223
- refreshTable
224
- });
225
- return (_ctx, _cache) => {
226
- const _component_QuestionFilled = resolveComponent("QuestionFilled");
227
- const _component_el_tooltip = resolveComponent("el-tooltip");
228
- const _component_MPicture = resolveComponent("MPicture");
229
- const _component_MQrcode = resolveComponent("MQrcode");
230
- const _component_MBarcode = resolveComponent("MBarcode");
231
- const _component_el_radio = resolveComponent("el-radio");
232
- const _component_el_table_column = resolveComponent("el-table-column");
233
- const _component_el_table = resolveComponent("el-table");
234
- const _component_MDialog = resolveComponent("MDialog");
235
- const _directive_loading = resolveDirective("loading");
236
- return openBlock(), createElementBlock("div", { class: "m-table" }, [
237
- withDirectives((openBlock(), createBlock(_component_el_table, {
238
- ref_key: "tableRef",
239
- ref: tableRef,
240
- key: tableKey.value,
241
- style: { "width": "100%" },
242
- size: _ctx.size || unref(globalConfig).size,
243
- data: _ctx.data,
244
- height: props.height,
245
- "max-height": props.maxHeight,
246
- border: tableOption.value.border,
247
- stripe: tableOption.value.stripe,
248
- "row-key": tableOption.value.rowKey,
249
- onSelectionChange: selectionChange
250
- }, {
251
- empty: withCtx(() => [
252
- createElementVNode("div", { style: { "display": "flex", "flex-direction": "column", "justify-content": "center", "align-items": "center", "padding": "16px 0", "box-sizing": "border-box" } }, [
253
- createElementVNode("img", { src: "data:image/png;base64,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" }),
254
- createElementVNode("span", { style: { "line-height": "normal" } }, "\u6682\u65E0\u6570\u636E")
255
- ])
256
- ]),
257
- default: withCtx(() => [
258
- (openBlock(true), createElementBlock(
259
- Fragment,
260
- null,
261
- renderList(tableOption.value.column, (column, columnIndex) => {
262
- return openBlock(), createBlock(_component_el_table_column, {
263
- key: columnIndex,
264
- type: ["index", "selection"].includes(column.type) ? column.type : "default",
265
- width: column.width,
266
- label: column.label,
267
- prop: column.prop,
268
- align: column.align || "center",
269
- "show-overflow-tooltip": column.overHidden,
270
- formatter: column.formatter ? (row, col, cellValue, index) => column.formatter(row, column, index) : null
271
- }, createSlots({
272
- _: 2
273
- }, [
274
- column.help ? {
275
- name: "header",
276
- fn: withCtx(() => [
277
- createVNode(_component_el_tooltip, {
278
- class: "box-item",
279
- effect: "dark",
280
- content: column.help,
281
- placement: "top"
282
- }, {
283
- default: withCtx(() => [
284
- createElementVNode("div", { class: "help-table-header" }, [
285
- createElementVNode(
286
- "span",
287
- { style: { "margin-right": "4px" } },
288
- toDisplayString(column.label),
289
- 1
290
- ),
291
- createVNode(_component_QuestionFilled, { style: { "width": "16px", "height": "16px" } })
292
- ])
293
- ]),
294
- _: 2
295
- }, 1032, ["content"])
296
- ]),
297
- key: "0"
298
- } : void 0,
299
- unref(slots)[column.prop || ""] ? {
300
- name: "default",
301
- fn: withCtx((scope) => [
302
- renderSlot(_ctx.$slots, column.prop, mergeProps({ ref_for: true }, scope))
303
- ]),
304
- key: "1"
305
- } : NEED_SLOT_TYPE.includes(column.type || "input") ? {
306
- name: "default",
307
- fn: withCtx((scope) => [
308
- createCommentVNode("\u56FE\u7247"),
309
- column.type === "picture" && scope.row[column.prop || ""] ? (openBlock(), createBlock(_component_MPicture, {
310
- key: 0,
311
- src: getProductPic(scope.row[column.prop || ""], column)[0],
312
- "preview-src-list": getProductPic(scope.row[column.prop || ""], column),
313
- "img-width": column.imgWidth,
314
- "img-height": column.imgHeight
315
- }, null, 8, ["src", "preview-src-list", "img-width", "img-height"])) : column.type === "qrcode" && scope.row[column.prop || ""] ? (openBlock(), createElementBlock(
316
- Fragment,
317
- { key: 1 },
318
- [
319
- createCommentVNode(""),
320
- createCommentVNode("\u4E8C\u7EF4\u7801"),
321
- createVNode(_component_MQrcode, {
322
- text: scope.row[column.prop || ""],
323
- "qrcode-width": column.qrcodeWidth,
324
- "qrcode-height": column.qrcodeHeight,
325
- align: "center",
326
- onClick: ($event) => openPreviewCode(scope.row[column.prop || ""], 2)
327
- }, null, 8, ["text", "qrcode-width", "qrcode-height", "onClick"])
328
- ],
329
- 2112
330
- )) : column.type === "barcode" && scope.row[column.prop || ""] ? (openBlock(), createElementBlock(
331
- Fragment,
332
- { key: 2 },
333
- [
334
- createCommentVNode(""),
335
- createCommentVNode("\u4E00\u7EF4\u7801"),
336
- createVNode(_component_MBarcode, {
337
- text: scope.row[column.prop || ""],
338
- "barcode-width": column.barcodeWith,
339
- "barcode-height": column.barcodeHeight,
340
- onClick: ($event) => openPreviewCode(scope.row[column.prop || ""], 1)
341
- }, null, 8, ["text", "barcode-width", "barcode-height", "onClick"])
342
- ],
343
- 2112
344
- )) : column.type === "single" ? (openBlock(), createElementBlock(
345
- Fragment,
346
- { key: 3 },
347
- [
348
- createCommentVNode(""),
349
- createCommentVNode("\u5355\u9009"),
350
- createVNode(_component_el_radio, {
351
- "model-value": scope.$index === selectIndex.value,
352
- value: true,
353
- onClick: withModifiers(($event) => radioSelect(scope.$index), ["prevent"])
354
- }, null, 8, ["model-value", "onClick"])
355
- ],
356
- 2112
357
- )) : NEED_DIC_TYPE.includes(column.type || "input") ? (openBlock(), createElementBlock(
358
- Fragment,
359
- { key: 4 },
360
- [
361
- createCommentVNode("\u5B57\u5178\u663E\u793A"),
362
- createElementVNode(
363
- "div",
364
- null,
365
- toDisplayString(formatDicValue(scope.row, column)),
366
- 1
367
- )
368
- ],
369
- 2112
370
- )) : createCommentVNode("v-if", true)
371
- ]),
372
- key: "2"
373
- } : void 0
374
- ]), 1032, ["type", "width", "label", "prop", "align", "show-overflow-tooltip", "formatter"]);
375
- }),
376
- 128
377
- )),
378
- tableOption.value.menu ? (openBlock(), createBlock(_component_el_table_column, {
379
- key: 0,
380
- width: tableOption.value.menuWidth,
381
- label: tableOption.value.menuTitle || unref(t)("m.table.menuTitle"),
382
- align: "center",
383
- fixed: tableOption.value.menuFixed
384
- }, {
385
- default: withCtx((scope) => [
386
- unref(slots).menu ? renderSlot(_ctx.$slots, "menu", normalizeProps(mergeProps({ key: 0 }, scope))) : createCommentVNode("v-if", true)
387
- ]),
388
- _: 3
389
- }, 8, ["width", "label", "fixed"])) : createCommentVNode("v-if", true)
390
- ]),
391
- _: 3
392
- }, 8, ["size", "data", "height", "max-height", "border", "stripe", "row-key"])), [
393
- [_directive_loading, _ctx.loading || tableLoading.value]
394
- ]),
395
- createCommentVNode("\u4E8C\u7EF4\u7801/\u4E00\u7EF4\u7801\u5F39\u7A97"),
396
- createVNode(_component_MDialog, {
397
- modelValue: codePreviewDialog.value,
398
- "onUpdate:modelValue": ($event) => codePreviewDialog.value = $event,
399
- title: unref(t)("m.table.preview"),
400
- size: _ctx.size,
401
- width: "300px",
402
- "save-btn": false,
403
- "cancel-btn": false
404
- }, {
405
- default: withCtx(() => [
406
- createElementVNode("div", { id: "qrcode-preview" }),
407
- createElementVNode("img", { id: "barcode-preview" }),
408
- createElementVNode(
409
- "div",
410
- { class: "qrcode-preview-code" },
411
- toDisplayString(codePreview.value),
412
- 1
413
- )
414
- ]),
415
- _: 1
416
- }, 8, ["modelValue", "onUpdate:modelValue", "title", "size"]),
417
- createCommentVNode("")
418
- ]);
419
- };
5
+ const tableProps = buildProps({
6
+ size: useSizeProp,
7
+ loading: {
8
+ type: Boolean,
9
+ default: false
10
+ },
11
+ data: {
12
+ required: true,
13
+ type: Array
14
+ },
15
+ select: {
16
+ required: false,
17
+ type: Array
18
+ },
19
+ option: {
20
+ type: definePropType(Object),
21
+ required: false
22
+ },
23
+ permission: {
24
+ type: Object,
25
+ default: {}
26
+ },
27
+ height: {
28
+ type: Number,
29
+ required: false
30
+ },
31
+ maxHeight: {
32
+ type: Number,
33
+ required: false
420
34
  }
421
35
  });
422
- var Table = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "table.vue"]]);
36
+ const tableEmits = {
37
+ "update:select": (arr) => isArray(arr),
38
+ selectionChange: (arr) => isArray(arr)
39
+ };
423
40
 
424
- export { Table as default };
41
+ export { tableEmits, tableProps };
425
42
  //# sourceMappingURL=table.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.mjs","sources":["../../../../../../../packages/components/table/src/table.vue"],"sourcesContent":["<script lang=\"ts\" setup>\r\nimport { ref, useSlots, watch } from 'vue'\r\n\r\n// @ts-ignore\r\nimport Qrcode from 'qrcodejs2-fix'\r\nimport JsBarcode from 'jsbarcode'\r\n\r\nimport { cloneDeep } from 'lodash-unified'\r\nimport { useGlobalConfig } from '@m-eleplus-crud/components'\r\nimport { debugWarn } from '@m-eleplus-crud/utils'\r\nimport { useLocale } from '@m-eleplus-crud/hooks'\r\nimport { tableEmits, tableProps } from './table'\r\nimport type { IDictValue } from '@m-eleplus-crud/components/common'\r\n\r\nimport type { ITableColumn, ITableOption } from './table'\r\n\r\nconst COMPONENT_NAME = 'MTable'\r\ndefineOptions({\r\n name: COMPONENT_NAME,\r\n})\r\n\r\nconst props = defineProps(tableProps)\r\nconst emit = defineEmits(tableEmits)\r\n\r\n// 插槽信息\r\nconst slots = useSlots() as any\r\n\r\n// 全局配置\r\nconst globalConfig = useGlobalConfig()\r\n\r\nconst { t } = useLocale()\r\n\r\n// 需要字典显示处理\r\nconst NEED_DIC_TYPE = ['select', 'checkbox', 'radio', 'switch']\r\n\r\n// 需要额外处理展示的类型\r\nconst NEED_SLOT_TYPE = [\r\n 'picture',\r\n 'qrcode',\r\n 'barcode',\r\n 'single',\r\n ...NEED_DIC_TYPE,\r\n]\r\n\r\n// 表格配置\r\nconst tableOption = ref<ITableOption>({\r\n // 默认显示操作栏\r\n menu: false,\r\n // 默认不显示斑马纹\r\n stripe: false,\r\n // 默认不显示边框\r\n border: false,\r\n // 操作栏宽度\r\n menuWidth: 220,\r\n // 操作栏固定右侧\r\n menuFixed: 'right',\r\n // 操作栏按钮居中\r\n menuAlign: 'center',\r\n // 表格行key\r\n rowKey: 'id',\r\n // 表格列配置\r\n column: [],\r\n})\r\n\r\n// 一维码/二维码 预览弹窗\r\nconst codePreviewDialog = ref(false)\r\n// 一维码/二维码\r\nconst codePreview = ref('')\r\n\r\n// 表格ref\r\nconst tableRef = ref<any>()\r\n\r\n// 单选选择的数据\r\nconst selectIndex = ref<number>(-1)\r\n\r\n// 表格key,用于刷新表格使用\r\nconst tableKey = ref(0)\r\n\r\n// 业务表格加载状态\r\nconst tableLoading = ref(false)\r\n\r\n/**\r\n * 解析图片\r\n * @param pic 图片url\r\n */\r\nconst getProductPic = (pic: string, column: ITableColumn) => {\r\n if (!pic) {\r\n return []\r\n }\r\n const picArr = pic\r\n .split(column.imgSuffix || ';')\r\n .map((p) => (column.imgPrefix || '') + p)\r\n\r\n return picArr\r\n}\r\n\r\n/**\r\n * 预览一维码/二维码\r\n * @param text 内容\r\n * @param type 类型 1 一维码 2 二维码\r\n */\r\nconst openPreviewCode = (text: string, type = 1) => {\r\n codePreviewDialog.value = true\r\n codePreview.value = text\r\n\r\n setTimeout(() => {\r\n if (type == 1) {\r\n // 一维码\r\n JsBarcode('#barcode-preview', text, {\r\n format: 'CODE128',\r\n lineColor: '#000',\r\n width: 2,\r\n height: 50,\r\n displayValue: false,\r\n })\r\n } else if (type == 2) {\r\n // 二维码\r\n const dom = document.querySelector('#qrcode-preview')\r\n dom!.innerHTML = ''\r\n new Qrcode(dom, {\r\n text,\r\n width: 180,\r\n height: 180,\r\n })\r\n }\r\n }, 0)\r\n}\r\n\r\n/**\r\n * 表格选择事件\r\n * @param arrs 选择数据\r\n */\r\nconst selectionChange = (arrs: any[]) => {\r\n emit('update:select', cloneDeep(arrs))\r\n emit('selectionChange', arrs)\r\n}\r\n\r\n/**\r\n * 单选选择\r\n * @param index 索引\r\n */\r\nconst radioSelect = (index: number) => {\r\n if (index == selectIndex.value) {\r\n selectIndex.value = -1\r\n } else {\r\n selectIndex.value = index\r\n }\r\n if (selectIndex.value == -1) {\r\n emit('update:select', [])\r\n emit('selectionChange', [])\r\n } else {\r\n emit('update:select', [cloneDeep(props.data[selectIndex.value])])\r\n emit('selectionChange', [cloneDeep(props.data[selectIndex.value])])\r\n }\r\n}\r\n\r\n/**\r\n * 清空选择\r\n */\r\nconst clearSelection = () => {\r\n tableRef.value.clearSelection()\r\n selectIndex.value = -1\r\n}\r\n\r\n/**\r\n * 切换选择数据\r\n * @param index 行索引\r\n * @param selected 选择状态\r\n * @param type 类型 1 单选 2 多选\r\n */\r\nconst toggleRowSelection = (index: number, selected: boolean, type = 2) => {\r\n if (type == 2) {\r\n const row = props.data[index]\r\n tableRef.value.toggleRowSelection(row, selected)\r\n } else {\r\n radioSelect(index)\r\n }\r\n}\r\n\r\n/**\r\n * 刷新表格\r\n */\r\nconst refreshTable = () => {\r\n if (tableKey.value >= 9999) {\r\n tableKey.value = 0\r\n } else {\r\n tableKey.value++\r\n }\r\n}\r\n\r\n/**\r\n * 处理需要远程获取字典的配置\r\n */\r\nconst getAllRemoteDics = () => {\r\n const hasDicUrl = tableOption.value?.column?.some((column) => column.dicUrl)\r\n if (hasDicUrl && !globalConfig.value?.httpGet) {\r\n debugWarn('MTable', 'global config httpGet is null')\r\n return\r\n }\r\n /**\r\n * 调用接口设置到dicData\r\n * @param column 列配置\r\n */\r\n const updateRemoteDic = (column: ITableColumn) => {\r\n return new Promise((resolve) => {\r\n let isSuccess = false\r\n // @ts-ignore\r\n globalConfig.value\r\n .httpGet(column.dicUrl, column.dicQuery, column.dicHeaders)\r\n .then((e: any) => {\r\n // @ts-ignore\r\n const { list, label, value } = column.dicFormatter(e)\r\n if (list && Array.isArray(list)) {\r\n column['dicData'] = list.map((item) => {\r\n const lastLabel = label.replace(/\\{(\\w+)\\}/g, (match, key) => {\r\n return item[key] || match\r\n })\r\n return {\r\n label: lastLabel,\r\n value: item[value],\r\n }\r\n })\r\n isSuccess = true\r\n }\r\n })\r\n .finally(() => {\r\n if (!isSuccess) {\r\n column['dicData'] = []\r\n }\r\n resolve(null)\r\n })\r\n })\r\n }\r\n const remotePromise: Promise<any>[] = []\r\n for (let i = 0; i < (tableOption.value.column || []).length; i++) {\r\n // @ts-ignore\r\n const column = tableOption.value.column[i]\r\n if (column.dicUrl) {\r\n if (!column.dicFormatter) {\r\n debugWarn('MTable', 'dicUrl and dicFormatter must be used together')\r\n continue\r\n }\r\n remotePromise.push(updateRemoteDic(column))\r\n }\r\n }\r\n if (remotePromise.length) {\r\n tableLoading.value = true\r\n Promise.all(remotePromise).then(() => {\r\n // 刷新表格\r\n refreshTable()\r\n tableLoading.value = false\r\n })\r\n }\r\n}\r\n\r\n/**\r\n * 解析字典并展示\r\n * @param row 行数据\r\n * @param column 列配置\r\n */\r\nconst formatDicValue = (row: any, column: ITableColumn) => {\r\n // 未拿到字典值的placeholder\r\n let dictLabel: string | undefined = ''\r\n // 查找\r\n const findLabelByValue = (dicData: IDictValue[], value: any) => {\r\n const dictItem = (dicData || []).find((dict) => dict.value === value)\r\n if (dictItem === undefined) {\r\n return dictLabel\r\n }\r\n return dictItem.label\r\n }\r\n if (\r\n (column.type === 'select' && column.multiple) ||\r\n column.type === 'checkbox'\r\n ) {\r\n // select下拉且开启多选/多选模式\r\n let values: any = []\r\n\r\n if (\r\n row[column.prop || ''] != null &&\r\n row[column.prop || ''] != undefined &&\r\n row[column.prop || ''] !== ''\r\n ) {\r\n if (Array.isArray(row[column.prop || ''])) {\r\n // 数据就是数组\r\n values = row[column.prop || '']\r\n } else if (typeof row[column.prop || ''] === 'string') {\r\n // 数据是字符串,启动字符分割,后续需要弄成从配置读取\r\n values = row[column.prop || ''].split(',')\r\n } else {\r\n // 最后情况变成数组\r\n values = [row[column.prop || '']]\r\n }\r\n }\r\n // 结果集合\r\n const result: string[] = []\r\n for (const value of values) {\r\n dictLabel = findLabelByValue(column.dicData || [], value)\r\n if (dictLabel === undefined) {\r\n break\r\n }\r\n result.push(dictLabel)\r\n }\r\n return result.join(',')\r\n }\r\n // 单模式\r\n dictLabel = findLabelByValue(column.dicData || [], row[column.prop || ''])\r\n return dictLabel\r\n}\r\n\r\nwatch(\r\n () => props.option as ITableOption,\r\n (newVal: ITableOption) => {\r\n if (newVal) {\r\n tableOption.value = Object.assign({}, tableOption.value, newVal)\r\n if (newVal.column) {\r\n tableOption.value.column = cloneDeep(\r\n newVal.column.filter(\r\n (column) => !(props.permission[column.prop || ''] === false)\r\n )\r\n )\r\n }\r\n // 处理远程字典的配置\r\n getAllRemoteDics()\r\n }\r\n },\r\n {\r\n immediate: true,\r\n deep: true,\r\n }\r\n)\r\n\r\ndefineExpose({\r\n /**\r\n * @description 清空选择\r\n */\r\n clearSelection,\r\n /**\r\n * @description 切换某行数据选择\r\n */\r\n toggleRowSelection,\r\n /**\r\n * @description 刷新表格(注意不是用于搜索等刷新表格数据的)\r\n */\r\n refreshTable,\r\n})\r\n</script>\r\n\r\n<template>\r\n <div class=\"m-table\">\r\n <el-table\r\n ref=\"tableRef\"\r\n :key=\"tableKey\"\r\n v-loading=\"loading || tableLoading\"\r\n style=\"width: 100%\"\r\n :size=\"size || globalConfig.size\"\r\n :data=\"data\"\r\n :height=\"props.height\"\r\n :max-height=\"props.maxHeight\"\r\n :border=\"tableOption.border\"\r\n :stripe=\"tableOption.stripe\"\r\n :row-key=\"tableOption.rowKey\"\r\n @selection-change=\"selectionChange\"\r\n >\r\n <template #empty>\r\n <div\r\n style=\"\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n padding: 16px 0;\r\n box-sizing: border-box;\r\n \"\r\n >\r\n <img\r\n src=\"data:image/png;base64,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\"\r\n />\r\n <span style=\"line-height: normal\">暂无数据</span>\r\n </div>\r\n </template>\r\n <el-table-column\r\n v-for=\"(column, columnIndex) in tableOption.column\"\r\n :key=\"columnIndex\"\r\n :type=\"['index', 'selection'].includes(column.type as string) ? column.type : 'default'\"\r\n :width=\"column.width\"\r\n :label=\"column.label\"\r\n :prop=\"column.prop\"\r\n :align=\"column.align || 'center'\"\r\n :show-overflow-tooltip=\"column.overHidden\"\r\n :formatter=\"column.formatter ? ((row: any, col: any, cellValue: any, index: number) => (column as any).formatter(row, column, index)) : null\"\r\n >\r\n <!--帮助信息-->\r\n <template v-if=\"column.help\" #header>\r\n <el-tooltip\r\n class=\"box-item\"\r\n effect=\"dark\"\r\n :content=\"column.help\"\r\n placement=\"top\"\r\n >\r\n <div class=\"help-table-header\">\r\n <span style=\"margin-right: 4px\">{{ column.label }}</span>\r\n <QuestionFilled style=\"width: 16px; height: 16px\" />\r\n </div>\r\n </el-tooltip>\r\n </template>\r\n <!---->\r\n <template v-if=\"slots[column.prop || '']\" #default=\"scope\">\r\n <slot :name=\"column.prop\" v-bind=\"scope\" />\r\n </template>\r\n <template\r\n v-else-if=\"NEED_SLOT_TYPE.includes(column.type || 'input')\"\r\n #default=\"scope\"\r\n >\r\n <!--图片-->\r\n <MPicture\r\n v-if=\"column.type === 'picture' && scope.row[column.prop || '']\"\r\n :src=\"getProductPic(scope.row[column.prop || ''], column)[0]\"\r\n :preview-src-list=\"\r\n getProductPic(scope.row[column.prop || ''], column)\r\n \"\r\n :img-width=\"column.imgWidth\"\r\n :img-height=\"column.imgHeight\"\r\n />\r\n <!---->\r\n <!--二维码-->\r\n <MQrcode\r\n v-else-if=\"column.type === 'qrcode' && scope.row[column.prop || '']\"\r\n :text=\"scope.row[column.prop || '']\"\r\n :qrcode-width=\"column.qrcodeWidth\"\r\n :qrcode-height=\"column.qrcodeHeight\"\r\n align=\"center\"\r\n @click=\"openPreviewCode(scope.row[column.prop || ''], 2)\"\r\n />\r\n <!---->\r\n <!--一维码-->\r\n <MBarcode\r\n v-else-if=\"\r\n column.type === 'barcode' && scope.row[column.prop || '']\r\n \"\r\n :text=\"scope.row[column.prop || '']\"\r\n :barcode-width=\"column.barcodeWith\"\r\n :barcode-height=\"column.barcodeHeight\"\r\n @click=\"openPreviewCode(scope.row[column.prop || ''], 1)\"\r\n />\r\n <!---->\r\n <!--单选-->\r\n <el-radio\r\n v-else-if=\"column.type === 'single'\"\r\n :model-value=\"scope.$index === selectIndex\"\r\n :value=\"true\"\r\n @click.prevent=\"radioSelect(scope.$index)\"\r\n />\r\n <!--字典显示-->\r\n <div v-else-if=\"NEED_DIC_TYPE.includes(column.type || 'input')\">\r\n {{ formatDicValue(scope.row, column) }}\r\n </div>\r\n </template>\r\n </el-table-column>\r\n <!--操作栏-->\r\n <el-table-column\r\n v-if=\"tableOption.menu\"\r\n :width=\"tableOption.menuWidth\"\r\n :label=\"tableOption.menuTitle || t('m.table.menuTitle')\"\r\n align=\"center\"\r\n :fixed=\"tableOption.menuFixed\"\r\n >\r\n <template #default=\"scope\">\r\n <slot v-if=\"slots.menu\" name=\"menu\" v-bind=\"scope\" />\r\n </template>\r\n </el-table-column>\r\n <!---->\r\n </el-table>\r\n <!--二维码/一维码弹窗-->\r\n <MDialog\r\n v-model=\"codePreviewDialog\"\r\n :title=\"t('m.table.preview')\"\r\n :size=\"size\"\r\n width=\"300px\"\r\n :save-btn=\"false\"\r\n :cancel-btn=\"false\"\r\n >\r\n <div id=\"qrcode-preview\" />\r\n <img id=\"barcode-preview\" />\r\n <div class=\"qrcode-preview-code\">{{ codePreview }}</div>\r\n </MDialog>\r\n <!---->\r\n </div>\r\n</template>\r\n"],"names":["DO_defineComponent"],"mappings":"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"}
1
+ {"version":3,"file":"table.mjs","sources":["../../../../../../../packages/components/table/src/table.ts"],"sourcesContent":["import { buildProps, definePropType, isArray } from '@m-eleplus-crud/utils'\r\nimport { useSizeProp } from '@m-eleplus-crud/hooks'\r\n\r\nimport { ColumnType, ICommonColumn } from '../../common'\r\n\r\nimport type { ExtractPropTypes, VNode } from 'vue'\r\n\r\n/**\r\n * @description 公开的table column配置\r\n */\r\nexport interface ITableCommonColumn {\r\n /**\r\n * @description 对齐方式\r\n */\r\n align?: 'left' | 'center' | 'right'\r\n /**\r\n * @description 超出隐藏\r\n */\r\n overHidden?: boolean\r\n /**\r\n * @description 帮助信息文本\r\n */\r\n help?: string\r\n /**\r\n * @description 格式化内容\r\n * @param row 行数据\r\n * @param column 列信息\r\n * @param index 行索引\r\n * @returns\r\n */\r\n formatter?: (row: any, column: ITableColumn, index: number) => VNode | string\r\n /**\r\n * @description 列宽度\r\n */\r\n width?: number\r\n /**\r\n * @description 二维码宽度,默认70\r\n */\r\n qrcodeWidth?: number\r\n /**\r\n * @description 二维码高度,默认70\r\n */\r\n qrcodeHeight?: number\r\n /**\r\n * 一维码宽度,默认2\r\n */\r\n barcodeWith?: number\r\n /**\r\n * 一维码高度,默认50\r\n */\r\n barcodeHeight?: number\r\n}\r\n\r\nexport interface ITableColumn extends ICommonColumn, ITableCommonColumn {\r\n /**\r\n * @description 类型\r\n */\r\n type?: ColumnType | 'index' | 'single' | 'selection'\r\n}\r\n\r\n/**\r\n * @description 公开的table配置\r\n */\r\nexport interface ITableCommonOption {\r\n /**\r\n * @description 是否显示操作栏\r\n */\r\n menu?: boolean\r\n /**\r\n * @description 是否为斑马纹\r\n */\r\n stripe?: boolean\r\n /**\r\n * @description 是否带有纵向边框\r\n */\r\n border?: boolean\r\n /**\r\n * @description 操作栏宽度\r\n */\r\n menuWidth?: number\r\n /**\r\n * @description 操作栏列冻结列 ,true 表示固定在左侧\r\n */\r\n menuFixed?: true | 'left' | 'right'\r\n /**\r\n * @description 操作栏按钮的对齐方式\r\n */\r\n menuAlign?: 'left' | 'center' | 'right'\r\n /**\r\n * @description 操作栏标题名称\r\n */\r\n menuTitle?: string\r\n /**\r\n * @description 表格rowKey\r\n */\r\n rowKey?: string\r\n}\r\n\r\nexport interface ITableOption extends ITableCommonOption {\r\n /**\r\n * @description 列配置\r\n */\r\n column: ITableColumn[]\r\n}\r\n\r\nexport const tableProps = buildProps({\r\n /**\r\n * @description 表格尺寸\r\n */\r\n size: useSizeProp,\r\n /**\r\n * @description 表格加载状态\r\n */\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n /**\r\n * @description 表格数据\r\n */\r\n data: {\r\n required: true,\r\n type: Array,\r\n },\r\n /**\r\n * @description 选择数据\r\n */\r\n select: {\r\n required: false,\r\n type: Array,\r\n },\r\n /**\r\n * @description 配置信息\r\n */\r\n option: {\r\n type: definePropType<ITableOption>(Object),\r\n required: false,\r\n },\r\n /**\r\n * @description 权限配置\r\n */\r\n permission: {\r\n type: Object,\r\n default: {},\r\n },\r\n /**\r\n * @description 表格高度\r\n */\r\n height: {\r\n type: Number,\r\n required: false,\r\n },\r\n /**\r\n * @description 表格最大高度\r\n */\r\n maxHeight: {\r\n type: Number,\r\n required: false,\r\n },\r\n} as const)\r\n\r\nexport type TableProps = ExtractPropTypes<typeof tableProps>\r\n\r\nexport const tableEmits = {\r\n 'update:select': (arr: any[]) => isArray(arr),\r\n /**\r\n * 表格选择数据触发\r\n * @param arr 选择的数据\r\n * @returns\r\n */\r\n selectionChange: (arr: any[]) => isArray(arr),\r\n}\r\nexport type TableEmits = typeof tableEmits\r\n"],"names":[],"mappings":";;;;AAyGO,MAAM,aAAa,UAAW,CAAA;AAAA,EAInC,IAAM,EAAA,WAAA;AAAA,EAIN,OAAS,EAAA;AAAA,IACP,IAAM,EAAA,OAAA;AAAA,IACN,OAAS,EAAA,KAAA;AAAA,GACX;AAAA,EAIA,IAAM,EAAA;AAAA,IACJ,QAAU,EAAA,IAAA;AAAA,IACV,IAAM,EAAA,KAAA;AAAA,GACR;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,IACV,IAAM,EAAA,KAAA;AAAA,GACR;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAA,EAAM,eAA6B,MAAM,CAAA;AAAA,IACzC,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EAIA,UAAY,EAAA;AAAA,IACV,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,EAAC;AAAA,GACZ;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AAAA,EAIA,SAAW,EAAA;AAAA,IACT,IAAM,EAAA,MAAA;AAAA,IACN,QAAU,EAAA,KAAA;AAAA,GACZ;AACF,CAAU,EAAA;AAIH,MAAM,UAAa,GAAA;AAAA,EACxB,eAAiB,EAAA,CAAC,GAAe,KAAA,OAAA,CAAQ,GAAG,CAAA;AAAA,EAM5C,eAAiB,EAAA,CAAC,GAAe,KAAA,OAAA,CAAQ,GAAG,CAAA;AAC9C;;;;"}