m-eleplus-crud 0.0.7 → 0.0.9
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.
- package/dist/index.full.js +48 -20
- package/dist/index.full.min.js +9 -9
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +8 -8
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +48 -20
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/zh-cn.js +1 -1
- package/dist/locale/zh-cn.min.js +1 -1
- package/dist/locale/zh-cn.min.mjs +1 -1
- package/dist/locale/zh-cn.mjs +1 -1
- package/es/components/crud/src/crud.d.ts +8 -0
- package/es/components/form/src/form.d.ts +4 -0
- package/es/index.mjs +5 -5
- package/es/packages/components/crud/src/crud.mjs.map +1 -1
- package/es/packages/components/crud/src/crud2.mjs +17 -4
- package/es/packages/components/crud/src/crud2.mjs.map +1 -1
- package/es/packages/components/form/index.mjs +2 -2
- package/es/packages/components/form/src/form.mjs +640 -25
- package/es/packages/components/form/src/form.mjs.map +1 -1
- package/es/packages/components/form/src/form2.mjs +25 -633
- package/es/packages/components/form/src/form2.mjs.map +1 -1
- package/es/packages/components/index.mjs +5 -5
- package/es/packages/components/picture/index.mjs +2 -2
- package/es/packages/components/picture/src/picture.mjs +19 -26
- package/es/packages/components/picture/src/picture.mjs.map +1 -1
- package/es/packages/components/picture/src/picture2.mjs +26 -19
- package/es/packages/components/picture/src/picture2.mjs.map +1 -1
- package/es/packages/components/qrcode/index.mjs +2 -2
- package/es/packages/components/qrcode/src/qrcode.mjs +22 -62
- package/es/packages/components/qrcode/src/qrcode.mjs.map +1 -1
- package/es/packages/components/qrcode/src/qrcode2.mjs +62 -22
- package/es/packages/components/qrcode/src/qrcode2.mjs.map +1 -1
- package/es/packages/components/search/index.mjs +2 -2
- package/es/packages/components/search/src/search.mjs +431 -25
- package/es/packages/components/search/src/search.mjs.map +1 -1
- package/es/packages/components/search/src/search2.mjs +25 -423
- package/es/packages/components/search/src/search2.mjs.map +1 -1
- package/es/packages/components/table/index.mjs +2 -2
- package/es/packages/components/table/src/table.mjs +419 -37
- package/es/packages/components/table/src/table.mjs.map +1 -1
- package/es/packages/components/table/src/table2.mjs +37 -419
- package/es/packages/components/table/src/table2.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/crud/src/crud.d.ts +8 -0
- package/lib/components/form/src/form.d.ts +4 -0
- package/lib/index.js +5 -5
- package/lib/packages/components/crud/src/crud.js.map +1 -1
- package/lib/packages/components/crud/src/crud2.js +16 -3
- package/lib/packages/components/crud/src/crud2.js.map +1 -1
- package/lib/packages/components/form/index.js +2 -2
- package/lib/packages/components/form/src/form.js +640 -26
- package/lib/packages/components/form/src/form.js.map +1 -1
- package/lib/packages/components/form/src/form2.js +26 -633
- package/lib/packages/components/form/src/form2.js.map +1 -1
- package/lib/packages/components/index.js +5 -5
- package/lib/packages/components/picture/index.js +2 -2
- package/lib/packages/components/picture/src/picture.js +20 -26
- package/lib/packages/components/picture/src/picture.js.map +1 -1
- package/lib/packages/components/picture/src/picture2.js +26 -20
- package/lib/packages/components/picture/src/picture2.js.map +1 -1
- package/lib/packages/components/qrcode/index.js +2 -2
- package/lib/packages/components/qrcode/src/qrcode.js +23 -66
- package/lib/packages/components/qrcode/src/qrcode.js.map +1 -1
- package/lib/packages/components/qrcode/src/qrcode2.js +66 -23
- package/lib/packages/components/qrcode/src/qrcode2.js.map +1 -1
- package/lib/packages/components/search/index.js +2 -2
- package/lib/packages/components/search/src/search.js +431 -26
- package/lib/packages/components/search/src/search.js.map +1 -1
- package/lib/packages/components/search/src/search2.js +26 -423
- package/lib/packages/components/search/src/search2.js.map +1 -1
- package/lib/packages/components/table/index.js +2 -2
- package/lib/packages/components/table/src/table.js +424 -38
- package/lib/packages/components/table/src/table.js.map +1 -1
- package/lib/packages/components/table/src/table2.js +38 -424
- package/lib/packages/components/table/src/table2.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/web-types.json +1 -1
|
@@ -1,42 +1,424 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
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';
|
|
4
10
|
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
+
}, {
|
|
384
|
+
default: withCtx((scope) => [
|
|
385
|
+
unref(slots).menu ? renderSlot(_ctx.$slots, "menu", normalizeProps(mergeProps({ key: 0 }, scope))) : createCommentVNode("v-if", true)
|
|
386
|
+
]),
|
|
387
|
+
_: 3
|
|
388
|
+
}, 8, ["width", "label"])) : createCommentVNode("v-if", true)
|
|
389
|
+
]),
|
|
390
|
+
_: 3
|
|
391
|
+
}, 8, ["size", "data", "height", "max-height", "border", "stripe", "row-key"])), [
|
|
392
|
+
[_directive_loading, _ctx.loading || tableLoading.value]
|
|
393
|
+
]),
|
|
394
|
+
createCommentVNode("\u4E8C\u7EF4\u7801/\u4E00\u7EF4\u7801\u5F39\u7A97"),
|
|
395
|
+
createVNode(_component_MDialog, {
|
|
396
|
+
modelValue: codePreviewDialog.value,
|
|
397
|
+
"onUpdate:modelValue": ($event) => codePreviewDialog.value = $event,
|
|
398
|
+
title: unref(t)("m.table.preview"),
|
|
399
|
+
size: _ctx.size,
|
|
400
|
+
width: "300px",
|
|
401
|
+
"save-btn": false,
|
|
402
|
+
"cancel-btn": false
|
|
403
|
+
}, {
|
|
404
|
+
default: withCtx(() => [
|
|
405
|
+
createElementVNode("div", { id: "qrcode-preview" }),
|
|
406
|
+
createElementVNode("img", { id: "barcode-preview" }),
|
|
407
|
+
createElementVNode(
|
|
408
|
+
"div",
|
|
409
|
+
{ class: "qrcode-preview-code" },
|
|
410
|
+
toDisplayString(codePreview.value),
|
|
411
|
+
1
|
|
412
|
+
)
|
|
413
|
+
]),
|
|
414
|
+
_: 1
|
|
415
|
+
}, 8, ["modelValue", "onUpdate:modelValue", "title", "size"]),
|
|
416
|
+
createCommentVNode("")
|
|
417
|
+
]);
|
|
418
|
+
};
|
|
34
419
|
}
|
|
35
420
|
});
|
|
36
|
-
|
|
37
|
-
"update:select": (arr) => isArray(arr),
|
|
38
|
-
selectionChange: (arr) => isArray(arr)
|
|
39
|
-
};
|
|
421
|
+
var Table = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "table.vue"]]);
|
|
40
422
|
|
|
41
|
-
export {
|
|
423
|
+
export { Table as default };
|
|
42
424
|
//# sourceMappingURL=table.mjs.map
|
|
@@ -1 +1 @@
|
|
|
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;;;;"}
|
|
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 >\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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"}
|