m-eleplus-crud 0.0.1 → 0.0.2

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