m-eleplus-crud 0.0.12 → 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 (66) hide show
  1. package/dist/index.full.js +1 -1
  2. package/dist/index.full.min.js +1 -1
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +1 -1
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +1 -1
  7. package/es/index.mjs +5 -5
  8. package/es/packages/components/crud/index.mjs +2 -2
  9. package/es/packages/components/crud/src/crud.mjs +53 -621
  10. package/es/packages/components/crud/src/crud.mjs.map +1 -1
  11. package/es/packages/components/crud/src/crud2.mjs +621 -53
  12. package/es/packages/components/crud/src/crud2.mjs.map +1 -1
  13. package/es/packages/components/form/src/form.mjs +1 -1
  14. package/es/packages/components/form/src/form.mjs.map +1 -1
  15. package/es/packages/components/index.mjs +5 -5
  16. package/es/packages/components/picture/index.mjs +2 -2
  17. package/es/packages/components/picture/src/picture.mjs +19 -26
  18. package/es/packages/components/picture/src/picture.mjs.map +1 -1
  19. package/es/packages/components/picture/src/picture2.mjs +26 -19
  20. package/es/packages/components/picture/src/picture2.mjs.map +1 -1
  21. package/es/packages/components/qrcode/index.mjs +2 -2
  22. package/es/packages/components/qrcode/src/qrcode.mjs +62 -22
  23. package/es/packages/components/qrcode/src/qrcode.mjs.map +1 -1
  24. package/es/packages/components/qrcode/src/qrcode2.mjs +22 -62
  25. package/es/packages/components/qrcode/src/qrcode2.mjs.map +1 -1
  26. package/es/packages/components/search/index.mjs +2 -2
  27. package/es/packages/components/search/src/search.mjs +438 -25
  28. package/es/packages/components/search/src/search.mjs.map +1 -1
  29. package/es/packages/components/search/src/search2.mjs +25 -438
  30. package/es/packages/components/search/src/search2.mjs.map +1 -1
  31. package/es/packages/components/table/index.mjs +2 -2
  32. package/es/packages/components/table/src/table.mjs +37 -420
  33. package/es/packages/components/table/src/table.mjs.map +1 -1
  34. package/es/packages/components/table/src/table2.mjs +420 -37
  35. package/es/packages/components/table/src/table2.mjs.map +1 -1
  36. package/lib/index.js +5 -5
  37. package/lib/packages/components/crud/index.js +2 -2
  38. package/lib/packages/components/crud/src/crud.js +54 -621
  39. package/lib/packages/components/crud/src/crud.js.map +1 -1
  40. package/lib/packages/components/crud/src/crud2.js +621 -54
  41. package/lib/packages/components/crud/src/crud2.js.map +1 -1
  42. package/lib/packages/components/form/src/form.js +1 -1
  43. package/lib/packages/components/form/src/form.js.map +1 -1
  44. package/lib/packages/components/index.js +5 -5
  45. package/lib/packages/components/picture/index.js +2 -2
  46. package/lib/packages/components/picture/src/picture.js +20 -26
  47. package/lib/packages/components/picture/src/picture.js.map +1 -1
  48. package/lib/packages/components/picture/src/picture2.js +26 -20
  49. package/lib/packages/components/picture/src/picture2.js.map +1 -1
  50. package/lib/packages/components/qrcode/index.js +2 -2
  51. package/lib/packages/components/qrcode/src/qrcode.js +66 -23
  52. package/lib/packages/components/qrcode/src/qrcode.js.map +1 -1
  53. package/lib/packages/components/qrcode/src/qrcode2.js +23 -66
  54. package/lib/packages/components/qrcode/src/qrcode2.js.map +1 -1
  55. package/lib/packages/components/search/index.js +2 -2
  56. package/lib/packages/components/search/src/search.js +438 -26
  57. package/lib/packages/components/search/src/search.js.map +1 -1
  58. package/lib/packages/components/search/src/search2.js +26 -438
  59. package/lib/packages/components/search/src/search2.js.map +1 -1
  60. package/lib/packages/components/table/index.js +2 -2
  61. package/lib/packages/components/table/src/table.js +38 -425
  62. package/lib/packages/components/table/src/table.js.map +1 -1
  63. package/lib/packages/components/table/src/table2.js +425 -38
  64. package/lib/packages/components/table/src/table2.js.map +1 -1
  65. package/package.json +1 -1
  66. package/web-types.json +1 -1
@@ -2,433 +2,46 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- var Qrcode = require('qrcodejs2-fix');
7
- var JsBarcode = require('jsbarcode');
8
- var lodashUnified = require('lodash-unified');
9
- var table = require('./table2.js');
10
- var pluginVue_exportHelper = require('../../../../_virtual/plugin-vue_export-helper.js');
11
- var useGlobalConfig = require('../../config-provider/src/hooks/use-global-config.js');
12
- var index = require('../../../hooks/use-locale/index.js');
13
- var error = require('../../../utils/error.js');
5
+ var runtime = require('../../../utils/vue/props/runtime.js');
6
+ var index = require('../../../hooks/use-size/index.js');
7
+ var shared = require('@vue/shared');
14
8
 
15
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
-
17
- var Qrcode__default = /*#__PURE__*/_interopDefaultLegacy(Qrcode);
18
- var JsBarcode__default = /*#__PURE__*/_interopDefaultLegacy(JsBarcode);
19
-
20
- const COMPONENT_NAME = "MTable";
21
- const __default__ = vue.defineComponent({
22
- name: COMPONENT_NAME
23
- });
24
- const _sfc_main = vue.defineComponent({
25
- ...__default__,
26
- props: table.tableProps,
27
- emits: table.tableEmits,
28
- setup(__props, { expose: __expose, emit: __emit }) {
29
- const props = __props;
30
- const emit = __emit;
31
- const slots = vue.useSlots();
32
- const globalConfig = useGlobalConfig.useGlobalConfig();
33
- const { t } = index.useLocale();
34
- const NEED_DIC_TYPE = ["select", "checkbox", "radio", "switch"];
35
- const NEED_SLOT_TYPE = [
36
- "picture",
37
- "qrcode",
38
- "barcode",
39
- "single",
40
- ...NEED_DIC_TYPE
41
- ];
42
- const tableOption = vue.ref({
43
- menu: false,
44
- stripe: false,
45
- border: false,
46
- menuWidth: 220,
47
- menuFixed: "right",
48
- menuAlign: "center",
49
- rowKey: "id",
50
- column: []
51
- });
52
- const codePreviewDialog = vue.ref(false);
53
- const codePreview = vue.ref("");
54
- const tableRef = vue.ref();
55
- const selectIndex = vue.ref(-1);
56
- const tableKey = vue.ref(0);
57
- const tableLoading = vue.ref(false);
58
- const getProductPic = (pic, column) => {
59
- if (!pic) {
60
- return [];
61
- }
62
- const picArr = pic.split(column.imgSuffix || ";").map((p) => (column.imgPrefix || "") + p);
63
- return picArr;
64
- };
65
- const openPreviewCode = (text, type = 1) => {
66
- codePreviewDialog.value = true;
67
- codePreview.value = text;
68
- setTimeout(() => {
69
- if (type == 1) {
70
- JsBarcode__default["default"]("#barcode-preview", text, {
71
- format: "CODE128",
72
- lineColor: "#000",
73
- width: 2,
74
- height: 50,
75
- displayValue: false
76
- });
77
- } else if (type == 2) {
78
- const dom = document.querySelector("#qrcode-preview");
79
- dom.innerHTML = "";
80
- new Qrcode__default["default"](dom, {
81
- text,
82
- width: 180,
83
- height: 180
84
- });
85
- }
86
- }, 0);
87
- };
88
- const selectionChange = (arrs) => {
89
- emit("update:select", lodashUnified.cloneDeep(arrs));
90
- emit("selectionChange", arrs);
91
- };
92
- const radioSelect = (index) => {
93
- if (index == selectIndex.value) {
94
- selectIndex.value = -1;
95
- } else {
96
- selectIndex.value = index;
97
- }
98
- if (selectIndex.value == -1) {
99
- emit("update:select", []);
100
- emit("selectionChange", []);
101
- } else {
102
- emit("update:select", [lodashUnified.cloneDeep(props.data[selectIndex.value])]);
103
- emit("selectionChange", [lodashUnified.cloneDeep(props.data[selectIndex.value])]);
104
- }
105
- };
106
- const clearSelection = () => {
107
- tableRef.value.clearSelection();
108
- selectIndex.value = -1;
109
- };
110
- const toggleRowSelection = (index, selected, type = 2) => {
111
- if (type == 2) {
112
- const row = props.data[index];
113
- tableRef.value.toggleRowSelection(row, selected);
114
- } else {
115
- radioSelect(index);
116
- }
117
- };
118
- const refreshTable = () => {
119
- if (tableKey.value >= 9999) {
120
- tableKey.value = 0;
121
- } else {
122
- tableKey.value++;
123
- }
124
- };
125
- const getAllRemoteDics = () => {
126
- var _a, _b, _c;
127
- const hasDicUrl = (_b = (_a = tableOption.value) == null ? void 0 : _a.column) == null ? void 0 : _b.some((column) => column.dicUrl);
128
- if (hasDicUrl && !((_c = globalConfig.value) == null ? void 0 : _c.httpGet)) {
129
- error.debugWarn("MTable", "global config httpGet is null");
130
- return;
131
- }
132
- const updateRemoteDic = (column) => {
133
- return new Promise((resolve) => {
134
- let isSuccess = false;
135
- globalConfig.value.httpGet(column.dicUrl, column.dicQuery, column.dicHeaders).then((e) => {
136
- const { list, label, value } = column.dicFormatter(e);
137
- if (list && Array.isArray(list)) {
138
- column["dicData"] = list.map((item) => {
139
- const lastLabel = label.replace(/\{(\w+)\}/g, (match, key) => {
140
- return item[key] || match;
141
- });
142
- return {
143
- label: lastLabel,
144
- value: item[value]
145
- };
146
- });
147
- isSuccess = true;
148
- }
149
- }).finally(() => {
150
- if (!isSuccess) {
151
- column["dicData"] = [];
152
- }
153
- resolve(null);
154
- });
155
- });
156
- };
157
- const remotePromise = [];
158
- for (let i = 0; i < (tableOption.value.column || []).length; i++) {
159
- const column = tableOption.value.column[i];
160
- if (column.dicUrl) {
161
- if (!column.dicFormatter) {
162
- error.debugWarn("MTable", "dicUrl and dicFormatter must be used together");
163
- continue;
164
- }
165
- remotePromise.push(updateRemoteDic(column));
166
- }
167
- }
168
- if (remotePromise.length) {
169
- tableLoading.value = true;
170
- Promise.all(remotePromise).then(() => {
171
- refreshTable();
172
- tableLoading.value = false;
173
- });
174
- }
175
- };
176
- const formatDicValue = (row, column) => {
177
- let dictLabel = "";
178
- const findLabelByValue = (dicData, value) => {
179
- const dictItem = (dicData || []).find((dict) => dict.value === value);
180
- if (dictItem === void 0) {
181
- return dictLabel;
182
- }
183
- return dictItem.label;
184
- };
185
- if (column.type === "select" && column.multiple || column.type === "checkbox") {
186
- let values = [];
187
- if (row[column.prop || ""] != null && row[column.prop || ""] != void 0 && row[column.prop || ""] !== "") {
188
- if (Array.isArray(row[column.prop || ""])) {
189
- values = row[column.prop || ""];
190
- } else if (typeof row[column.prop || ""] === "string") {
191
- values = row[column.prop || ""].split(",");
192
- } else {
193
- values = [row[column.prop || ""]];
194
- }
195
- }
196
- const result = [];
197
- for (const value of values) {
198
- dictLabel = findLabelByValue(column.dicData || [], value);
199
- if (dictLabel === void 0) {
200
- break;
201
- }
202
- result.push(dictLabel);
203
- }
204
- return result.join(",");
205
- }
206
- dictLabel = findLabelByValue(column.dicData || [], row[column.prop || ""]);
207
- return dictLabel;
208
- };
209
- vue.watch(
210
- () => props.option,
211
- (newVal) => {
212
- if (newVal) {
213
- tableOption.value = Object.assign({}, tableOption.value, newVal);
214
- if (newVal.column) {
215
- tableOption.value.column = lodashUnified.cloneDeep(
216
- newVal.column.filter(
217
- (column) => !(props.permission[column.prop || ""] === false)
218
- )
219
- );
220
- }
221
- getAllRemoteDics();
222
- }
223
- },
224
- {
225
- immediate: true,
226
- deep: true
227
- }
228
- );
229
- __expose({
230
- clearSelection,
231
- toggleRowSelection,
232
- refreshTable
233
- });
234
- return (_ctx, _cache) => {
235
- const _component_QuestionFilled = vue.resolveComponent("QuestionFilled");
236
- const _component_el_tooltip = vue.resolveComponent("el-tooltip");
237
- const _component_MPicture = vue.resolveComponent("MPicture");
238
- const _component_MQrcode = vue.resolveComponent("MQrcode");
239
- const _component_MBarcode = vue.resolveComponent("MBarcode");
240
- const _component_el_radio = vue.resolveComponent("el-radio");
241
- const _component_el_table_column = vue.resolveComponent("el-table-column");
242
- const _component_el_table = vue.resolveComponent("el-table");
243
- const _component_MDialog = vue.resolveComponent("MDialog");
244
- const _directive_loading = vue.resolveDirective("loading");
245
- return vue.openBlock(), vue.createElementBlock("div", { class: "m-table" }, [
246
- vue.withDirectives((vue.openBlock(), vue.createBlock(_component_el_table, {
247
- ref_key: "tableRef",
248
- ref: tableRef,
249
- key: tableKey.value,
250
- style: { "width": "100%" },
251
- size: _ctx.size || vue.unref(globalConfig).size,
252
- data: _ctx.data,
253
- height: props.height,
254
- "max-height": props.maxHeight,
255
- border: tableOption.value.border,
256
- stripe: tableOption.value.stripe,
257
- "row-key": tableOption.value.rowKey,
258
- onSelectionChange: selectionChange
259
- }, {
260
- empty: vue.withCtx(() => [
261
- vue.createElementVNode("div", { style: { "display": "flex", "flex-direction": "column", "justify-content": "center", "align-items": "center", "padding": "16px 0", "box-sizing": "border-box" } }, [
262
- vue.createElementVNode("img", { src: "data:image/png;base64,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" }),
263
- vue.createElementVNode("span", { style: { "line-height": "normal" } }, "\u6682\u65E0\u6570\u636E")
264
- ])
265
- ]),
266
- default: vue.withCtx(() => [
267
- (vue.openBlock(true), vue.createElementBlock(
268
- vue.Fragment,
269
- null,
270
- vue.renderList(tableOption.value.column, (column, columnIndex) => {
271
- return vue.openBlock(), vue.createBlock(_component_el_table_column, {
272
- key: columnIndex,
273
- type: ["index", "selection"].includes(column.type) ? column.type : "default",
274
- width: column.width,
275
- label: column.label,
276
- prop: column.prop,
277
- align: column.align || "center",
278
- "show-overflow-tooltip": column.overHidden,
279
- formatter: column.formatter ? (row, col, cellValue, index) => column.formatter(row, column, index) : null
280
- }, vue.createSlots({
281
- _: 2
282
- }, [
283
- column.help ? {
284
- name: "header",
285
- fn: vue.withCtx(() => [
286
- vue.createVNode(_component_el_tooltip, {
287
- class: "box-item",
288
- effect: "dark",
289
- content: column.help,
290
- placement: "top"
291
- }, {
292
- default: vue.withCtx(() => [
293
- vue.createElementVNode("div", { class: "help-table-header" }, [
294
- vue.createElementVNode(
295
- "span",
296
- { style: { "margin-right": "4px" } },
297
- vue.toDisplayString(column.label),
298
- 1
299
- ),
300
- vue.createVNode(_component_QuestionFilled, { style: { "width": "16px", "height": "16px" } })
301
- ])
302
- ]),
303
- _: 2
304
- }, 1032, ["content"])
305
- ]),
306
- key: "0"
307
- } : void 0,
308
- vue.unref(slots)[column.prop || ""] ? {
309
- name: "default",
310
- fn: vue.withCtx((scope) => [
311
- vue.renderSlot(_ctx.$slots, column.prop, vue.mergeProps({ ref_for: true }, scope))
312
- ]),
313
- key: "1"
314
- } : NEED_SLOT_TYPE.includes(column.type || "input") ? {
315
- name: "default",
316
- fn: vue.withCtx((scope) => [
317
- vue.createCommentVNode("\u56FE\u7247"),
318
- column.type === "picture" && scope.row[column.prop || ""] ? (vue.openBlock(), vue.createBlock(_component_MPicture, {
319
- key: 0,
320
- src: getProductPic(scope.row[column.prop || ""], column)[0],
321
- "preview-src-list": getProductPic(scope.row[column.prop || ""], column),
322
- "img-width": column.imgWidth,
323
- "img-height": column.imgHeight
324
- }, null, 8, ["src", "preview-src-list", "img-width", "img-height"])) : column.type === "qrcode" && scope.row[column.prop || ""] ? (vue.openBlock(), vue.createElementBlock(
325
- vue.Fragment,
326
- { key: 1 },
327
- [
328
- vue.createCommentVNode(""),
329
- vue.createCommentVNode("\u4E8C\u7EF4\u7801"),
330
- vue.createVNode(_component_MQrcode, {
331
- text: scope.row[column.prop || ""],
332
- "qrcode-width": column.qrcodeWidth,
333
- "qrcode-height": column.qrcodeHeight,
334
- align: "center",
335
- onClick: ($event) => openPreviewCode(scope.row[column.prop || ""], 2)
336
- }, null, 8, ["text", "qrcode-width", "qrcode-height", "onClick"])
337
- ],
338
- 2112
339
- )) : column.type === "barcode" && scope.row[column.prop || ""] ? (vue.openBlock(), vue.createElementBlock(
340
- vue.Fragment,
341
- { key: 2 },
342
- [
343
- vue.createCommentVNode(""),
344
- vue.createCommentVNode("\u4E00\u7EF4\u7801"),
345
- vue.createVNode(_component_MBarcode, {
346
- text: scope.row[column.prop || ""],
347
- "barcode-width": column.barcodeWith,
348
- "barcode-height": column.barcodeHeight,
349
- onClick: ($event) => openPreviewCode(scope.row[column.prop || ""], 1)
350
- }, null, 8, ["text", "barcode-width", "barcode-height", "onClick"])
351
- ],
352
- 2112
353
- )) : column.type === "single" ? (vue.openBlock(), vue.createElementBlock(
354
- vue.Fragment,
355
- { key: 3 },
356
- [
357
- vue.createCommentVNode(""),
358
- vue.createCommentVNode("\u5355\u9009"),
359
- vue.createVNode(_component_el_radio, {
360
- "model-value": scope.$index === selectIndex.value,
361
- value: true,
362
- onClick: vue.withModifiers(($event) => radioSelect(scope.$index), ["prevent"])
363
- }, null, 8, ["model-value", "onClick"])
364
- ],
365
- 2112
366
- )) : NEED_DIC_TYPE.includes(column.type || "input") ? (vue.openBlock(), vue.createElementBlock(
367
- vue.Fragment,
368
- { key: 4 },
369
- [
370
- vue.createCommentVNode("\u5B57\u5178\u663E\u793A"),
371
- vue.createElementVNode(
372
- "div",
373
- null,
374
- vue.toDisplayString(formatDicValue(scope.row, column)),
375
- 1
376
- )
377
- ],
378
- 2112
379
- )) : vue.createCommentVNode("v-if", true)
380
- ]),
381
- key: "2"
382
- } : void 0
383
- ]), 1032, ["type", "width", "label", "prop", "align", "show-overflow-tooltip", "formatter"]);
384
- }),
385
- 128
386
- )),
387
- tableOption.value.menu ? (vue.openBlock(), vue.createBlock(_component_el_table_column, {
388
- key: 0,
389
- width: tableOption.value.menuWidth,
390
- label: tableOption.value.menuTitle || vue.unref(t)("m.table.menuTitle"),
391
- align: "center",
392
- fixed: tableOption.value.menuFixed
393
- }, {
394
- default: vue.withCtx((scope) => [
395
- vue.unref(slots).menu ? vue.renderSlot(_ctx.$slots, "menu", vue.normalizeProps(vue.mergeProps({ key: 0 }, scope))) : vue.createCommentVNode("v-if", true)
396
- ]),
397
- _: 3
398
- }, 8, ["width", "label", "fixed"])) : vue.createCommentVNode("v-if", true)
399
- ]),
400
- _: 3
401
- }, 8, ["size", "data", "height", "max-height", "border", "stripe", "row-key"])), [
402
- [_directive_loading, _ctx.loading || tableLoading.value]
403
- ]),
404
- vue.createCommentVNode("\u4E8C\u7EF4\u7801/\u4E00\u7EF4\u7801\u5F39\u7A97"),
405
- vue.createVNode(_component_MDialog, {
406
- modelValue: codePreviewDialog.value,
407
- "onUpdate:modelValue": ($event) => codePreviewDialog.value = $event,
408
- title: vue.unref(t)("m.table.preview"),
409
- size: _ctx.size,
410
- width: "300px",
411
- "save-btn": false,
412
- "cancel-btn": false
413
- }, {
414
- default: vue.withCtx(() => [
415
- vue.createElementVNode("div", { id: "qrcode-preview" }),
416
- vue.createElementVNode("img", { id: "barcode-preview" }),
417
- vue.createElementVNode(
418
- "div",
419
- { class: "qrcode-preview-code" },
420
- vue.toDisplayString(codePreview.value),
421
- 1
422
- )
423
- ]),
424
- _: 1
425
- }, 8, ["modelValue", "onUpdate:modelValue", "title", "size"]),
426
- vue.createCommentVNode("")
427
- ]);
428
- };
9
+ const tableProps = runtime.buildProps({
10
+ size: index.useSizeProp,
11
+ loading: {
12
+ type: Boolean,
13
+ default: false
14
+ },
15
+ data: {
16
+ required: true,
17
+ type: Array
18
+ },
19
+ select: {
20
+ required: false,
21
+ type: Array
22
+ },
23
+ option: {
24
+ type: runtime.definePropType(Object),
25
+ required: false
26
+ },
27
+ permission: {
28
+ type: Object,
29
+ default: {}
30
+ },
31
+ height: {
32
+ type: Number,
33
+ required: false
34
+ },
35
+ maxHeight: {
36
+ type: Number,
37
+ required: false
429
38
  }
430
39
  });
431
- var Table = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "table.vue"]]);
40
+ const tableEmits = {
41
+ "update:select": (arr) => shared.isArray(arr),
42
+ selectionChange: (arr) => shared.isArray(arr)
43
+ };
432
44
 
433
- exports["default"] = Table;
45
+ exports.tableEmits = tableEmits;
46
+ exports.tableProps = tableProps;
434
47
  //# sourceMappingURL=table.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","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","useSlots","useGlobalConfig","useLocale","ref","JsBarcode","Qrcode","cloneDeep","debugWarn","watch"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","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":["buildProps","useSizeProp","definePropType","isArray"],"mappings":";;;;;;;;AAyGO,MAAM,aAAaA,kBAAW,CAAA;AAAA,EAInC,IAAM,EAAAC,iBAAA;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,EAAMC,uBAA6B,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,KAAAC,cAAA,CAAQ,GAAG,CAAA;AAAA,EAM5C,eAAiB,EAAA,CAAC,GAAe,KAAAA,cAAA,CAAQ,GAAG,CAAA;AAC9C;;;;;"}