@hbdlzy/ui-core 0.1.3 → 0.1.4
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/components.manifest.json +35 -1
- package/dist/components/BaseDialog/BaseDialog.types.d.ts +25 -0
- package/dist/components/BaseDialog/BaseDialog.vue.d.ts +100 -0
- package/dist/components/BaseDialog/index.d.ts +3 -0
- package/dist/components/BaseEChart/BaseEChart.vue.d.ts +1 -1
- package/dist/components/BaseExportButton/BaseExportButton.vue.d.ts +4 -4
- package/dist/components/BaseSearchForm/BaseSearchForm.types.d.ts +42 -0
- package/dist/components/BaseSearchForm/BaseSearchForm.utils.d.ts +5 -0
- package/dist/components/BaseSearchForm/BaseSearchForm.vue.d.ts +88 -0
- package/dist/components/BaseSearchForm/index.d.ts +4 -0
- package/dist/components/BaseTable/BaseTable.types.d.ts +1 -1
- package/dist/components/OutlinedCascader/OutlinedCascader.vue.d.ts +1 -1
- package/dist/components/OutlinedTimePicker/OutlinedTimePicker.vue.d.ts +2 -2
- package/dist/components/OutlinedTreeSelect/OutlinedTreeSelect.vue.d.ts +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +527 -140
- package/dist/style.css +1 -1
- package/package.json +3 -1
- package/src/components/BaseDialog/BaseDialog.types.ts +28 -0
- package/src/components/BaseDialog/BaseDialog.vue +158 -0
- package/src/components/BaseDialog/README.md +69 -0
- package/src/components/BaseDialog/index.ts +10 -0
- package/src/components/BaseExportButton/BaseExportButton.vue +3 -1
- package/src/components/BaseSearchForm/BaseSearchForm.types.ts +46 -0
- package/src/components/BaseSearchForm/BaseSearchForm.utils.ts +41 -0
- package/src/components/BaseSearchForm/BaseSearchForm.vue +267 -0
- package/src/components/BaseSearchForm/README.md +66 -0
- package/src/components/BaseSearchForm/index.ts +20 -0
- package/src/components/BaseTable/BaseTable.types.ts +1 -1
- package/src/index.ts +4 -0
- package/src/components/BaseCard/BaseCard.types.d.ts +0 -36
- package/src/components/BaseCard/BaseCard.vue.d.ts +0 -122
- package/src/components/BaseCard/index.d.ts +0 -3
- package/src/components/BaseEChart/BaseEChart.types.d.ts +0 -26
- package/src/components/BaseEChart/BaseEChart.vue.d.ts +0 -66
- package/src/components/BaseEChart/index.d.ts +0 -3
- package/src/components/BaseExportButton/BaseExportButton.types.d.ts +0 -21
- package/src/components/BaseExportButton/BaseExportButton.utils.d.ts +0 -4
- package/src/components/BaseExportButton/BaseExportButton.vue.d.ts +0 -128
- package/src/components/BaseExportButton/index.d.ts +0 -5
- package/src/components/BaseTable/BaseTable.types.d.ts +0 -163
- package/src/components/BaseTable/BaseTable.vue.d.ts +0 -157
- package/src/components/BaseTable/index.d.ts +0 -3
- package/src/components/OutlinedCascader/OutlinedCascader.types.d.ts +0 -25
- package/src/components/OutlinedCascader/OutlinedCascader.vue.d.ts +0 -85
- package/src/components/OutlinedCascader/index.d.ts +0 -3
- package/src/components/OutlinedDatePicker/OutlinedDatePicker.types.d.ts +0 -27
- package/src/components/OutlinedDatePicker/OutlinedDatePicker.vue.d.ts +0 -88
- package/src/components/OutlinedDatePicker/index.d.ts +0 -3
- package/src/components/OutlinedDateTimePicker/OutlinedDateTimePicker.types.d.ts +0 -26
- package/src/components/OutlinedDateTimePicker/OutlinedDateTimePicker.vue.d.ts +0 -97
- package/src/components/OutlinedDateTimePicker/index.d.ts +0 -3
- package/src/components/OutlinedInput/OutlinedInput.types.d.ts +0 -29
- package/src/components/OutlinedInput/OutlinedInput.vue.d.ts +0 -97
- package/src/components/OutlinedInput/index.d.ts +0 -3
- package/src/components/OutlinedSelect/OutlinedSelect.types.d.ts +0 -38
- package/src/components/OutlinedSelect/OutlinedSelect.vue.d.ts +0 -116
- package/src/components/OutlinedSelect/index.d.ts +0 -3
- package/src/components/OutlinedTimePicker/OutlinedTimePicker.types.d.ts +0 -28
- package/src/components/OutlinedTimePicker/OutlinedTimePicker.vue.d.ts +0 -94
- package/src/components/OutlinedTimePicker/index.d.ts +0 -3
- package/src/components/OutlinedTreeSelect/OutlinedTreeSelect.types.d.ts +0 -46
- package/src/components/OutlinedTreeSelect/OutlinedTreeSelect.vue.d.ts +0 -137
- package/src/components/OutlinedTreeSelect/index.d.ts +0 -3
- package/src/echarts/index.d.ts +0 -9
- package/src/excel/exportExcel.d.ts +0 -18
- package/src/index.d.ts +0 -26
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as echarts from "echarts";
|
|
2
2
|
export { echarts };
|
|
3
|
-
import { defineComponent, useSlots, computed, openBlock, createElementBlock, normalizeStyle, createElementVNode, createCommentVNode, renderSlot, toDisplayString, ref,
|
|
3
|
+
import { defineComponent, useSlots, computed, openBlock, createElementBlock, normalizeStyle, createElementVNode, createCommentVNode, renderSlot, toDisplayString, ref, watch, resolveComponent, createVNode, withModifiers, withCtx, Fragment, renderList, createBlock, mergeProps, withKeys, createTextVNode, createSlots, reactive, onMounted, resolveDirective, withDirectives, normalizeClass, shallowRef, nextTick, onUnmounted, useAttrs, normalizeProps, guardReactiveProps } from "vue";
|
|
4
4
|
import { ElMessage } from "element-plus";
|
|
5
|
-
import ExcelJS from "exceljs";
|
|
6
5
|
import { saveAs } from "file-saver";
|
|
6
|
+
import ExcelJS from "exceljs";
|
|
7
7
|
var BaseCard_vue_vue_type_style_index_0_scoped_true_lang = "";
|
|
8
8
|
var _export_sfc = (sfc, props) => {
|
|
9
9
|
const target = sfc.__vccOpts || sfc;
|
|
@@ -12,11 +12,11 @@ var _export_sfc = (sfc, props) => {
|
|
|
12
12
|
}
|
|
13
13
|
return target;
|
|
14
14
|
};
|
|
15
|
-
const _hoisted_1$
|
|
15
|
+
const _hoisted_1$5 = {
|
|
16
16
|
key: 0,
|
|
17
17
|
class: "base-card__header"
|
|
18
18
|
};
|
|
19
|
-
const _hoisted_2$
|
|
19
|
+
const _hoisted_2$3 = { class: "base-card__header-left" };
|
|
20
20
|
const _hoisted_3$1 = {
|
|
21
21
|
key: 0,
|
|
22
22
|
class: "base-card__title-wrap"
|
|
@@ -44,7 +44,7 @@ const _hoisted_10$1 = {
|
|
|
44
44
|
class: "base-card__tip"
|
|
45
45
|
};
|
|
46
46
|
const _hoisted_11$1 = { class: "base-card__content" };
|
|
47
|
-
const _sfc_main$
|
|
47
|
+
const _sfc_main$c = defineComponent({
|
|
48
48
|
...{
|
|
49
49
|
name: "BaseCard"
|
|
50
50
|
},
|
|
@@ -140,8 +140,8 @@ const _sfc_main$a = defineComponent({
|
|
|
140
140
|
class: "base-card",
|
|
141
141
|
style: normalizeStyle(cardStyles.value)
|
|
142
142
|
}, [
|
|
143
|
-
shouldRenderHeader.value ? (openBlock(), createElementBlock("div", _hoisted_1$
|
|
144
|
-
createElementVNode("div", _hoisted_2$
|
|
143
|
+
shouldRenderHeader.value ? (openBlock(), createElementBlock("div", _hoisted_1$5, [
|
|
144
|
+
createElementVNode("div", _hoisted_2$3, [
|
|
145
145
|
hasTitleBlock.value ? (openBlock(), createElementBlock("div", _hoisted_3$1, [
|
|
146
146
|
__props.showTitleMarker ? (openBlock(), createElementBlock("span", _hoisted_4$1)) : createCommentVNode("", true),
|
|
147
147
|
_ctx.$slots["title-label"] ? renderSlot(_ctx.$slots, "title-label", { key: 1 }, void 0, true) : (openBlock(), createElementBlock("h4", _hoisted_5$1, toDisplayString(__props.title), 1))
|
|
@@ -172,7 +172,386 @@ const _sfc_main$a = defineComponent({
|
|
|
172
172
|
};
|
|
173
173
|
}
|
|
174
174
|
});
|
|
175
|
-
var BaseCard = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
175
|
+
var BaseCard = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-6bfddf1c"]]);
|
|
176
|
+
function cloneSearchFormModel(model) {
|
|
177
|
+
return { ...model || {} };
|
|
178
|
+
}
|
|
179
|
+
function getVisibleSearchFields(fields, collapsed) {
|
|
180
|
+
return fields.filter((field) => {
|
|
181
|
+
if (field.hidden) {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
return !collapsed || !field.collapsed;
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
function resetSearchFormModel(fields) {
|
|
188
|
+
return fields.reduce((model, field) => {
|
|
189
|
+
if (field.type === "dateRange") {
|
|
190
|
+
model[field.key] = [];
|
|
191
|
+
return model;
|
|
192
|
+
}
|
|
193
|
+
model[field.key] = "";
|
|
194
|
+
return model;
|
|
195
|
+
}, {});
|
|
196
|
+
}
|
|
197
|
+
function toSearchFormCssValue(value) {
|
|
198
|
+
if (value === void 0 || value === null || value === "") {
|
|
199
|
+
return void 0;
|
|
200
|
+
}
|
|
201
|
+
return typeof value === "number" ? `${value}px` : value;
|
|
202
|
+
}
|
|
203
|
+
var BaseSearchForm_vue_vue_type_style_index_0_scoped_true_lang = "";
|
|
204
|
+
const _hoisted_1$4 = { class: "base-search-form" };
|
|
205
|
+
const _hoisted_2$2 = { class: "base-search-form__actions" };
|
|
206
|
+
const _sfc_main$b = defineComponent({
|
|
207
|
+
...{
|
|
208
|
+
name: "BaseSearchForm"
|
|
209
|
+
},
|
|
210
|
+
__name: "BaseSearchForm",
|
|
211
|
+
props: {
|
|
212
|
+
modelValue: { default: () => ({}) },
|
|
213
|
+
fields: {},
|
|
214
|
+
collapsed: { type: Boolean, default: true },
|
|
215
|
+
showCollapse: { type: Boolean, default: true },
|
|
216
|
+
columns: { default: 4 },
|
|
217
|
+
labelWidth: { default: 80 },
|
|
218
|
+
fieldWidth: { default: void 0 },
|
|
219
|
+
gutter: { default: 16 },
|
|
220
|
+
submitText: { default: "\u67E5\u8BE2" },
|
|
221
|
+
resetText: { default: "\u91CD\u7F6E" },
|
|
222
|
+
expandText: { default: "\u5C55\u5F00" },
|
|
223
|
+
collapseText: { default: "\u6536\u8D77" }
|
|
224
|
+
},
|
|
225
|
+
emits: ["update:modelValue", "search", "reset", "field-change"],
|
|
226
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
227
|
+
const props = __props;
|
|
228
|
+
const emit = __emit;
|
|
229
|
+
const innerModel = ref(cloneSearchFormModel(props.modelValue));
|
|
230
|
+
const isCollapsed = ref(props.collapsed);
|
|
231
|
+
watch(
|
|
232
|
+
() => props.modelValue,
|
|
233
|
+
(value) => {
|
|
234
|
+
innerModel.value = cloneSearchFormModel(value);
|
|
235
|
+
},
|
|
236
|
+
{ deep: true }
|
|
237
|
+
);
|
|
238
|
+
watch(
|
|
239
|
+
() => props.collapsed,
|
|
240
|
+
(value) => {
|
|
241
|
+
isCollapsed.value = value;
|
|
242
|
+
}
|
|
243
|
+
);
|
|
244
|
+
const visibleFields = computed(() => getVisibleSearchFields(props.fields, isCollapsed.value));
|
|
245
|
+
const hasCollapsedFields = computed(() => props.fields.some((field) => field.collapsed && !field.hidden));
|
|
246
|
+
const normalizedLabelWidth = computed(() => toSearchFormCssValue(props.labelWidth));
|
|
247
|
+
const gridStyle = computed(() => ({
|
|
248
|
+
gridTemplateColumns: `repeat(${Math.max(1, props.columns)}, minmax(0, 1fr))`,
|
|
249
|
+
gap: `${props.gutter}px`
|
|
250
|
+
}));
|
|
251
|
+
function getFieldStyle(field) {
|
|
252
|
+
return {
|
|
253
|
+
gridColumn: field.span ? `span ${Math.max(1, field.span)}` : void 0,
|
|
254
|
+
"--base-search-form-field-width": toSearchFormCssValue(props.fieldWidth)
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
function emitModelUpdate() {
|
|
258
|
+
emit("update:modelValue", cloneSearchFormModel(innerModel.value));
|
|
259
|
+
}
|
|
260
|
+
function handleFieldChange(key, value) {
|
|
261
|
+
setFieldValue(key, value);
|
|
262
|
+
emit("field-change", key, value, cloneSearchFormModel(innerModel.value));
|
|
263
|
+
}
|
|
264
|
+
function setFieldValue(key, value) {
|
|
265
|
+
innerModel.value = {
|
|
266
|
+
...innerModel.value,
|
|
267
|
+
[key]: value
|
|
268
|
+
};
|
|
269
|
+
emitModelUpdate();
|
|
270
|
+
}
|
|
271
|
+
function submit() {
|
|
272
|
+
emit("search", cloneSearchFormModel(innerModel.value));
|
|
273
|
+
}
|
|
274
|
+
function reset() {
|
|
275
|
+
innerModel.value = resetSearchFormModel(props.fields);
|
|
276
|
+
emitModelUpdate();
|
|
277
|
+
emit("reset", cloneSearchFormModel(innerModel.value));
|
|
278
|
+
}
|
|
279
|
+
function toggleCollapsed() {
|
|
280
|
+
isCollapsed.value = !isCollapsed.value;
|
|
281
|
+
}
|
|
282
|
+
function getModel() {
|
|
283
|
+
return cloneSearchFormModel(innerModel.value);
|
|
284
|
+
}
|
|
285
|
+
__expose({
|
|
286
|
+
submit,
|
|
287
|
+
reset,
|
|
288
|
+
setFieldValue,
|
|
289
|
+
getModel
|
|
290
|
+
});
|
|
291
|
+
return (_ctx, _cache) => {
|
|
292
|
+
const _component_el_option = resolveComponent("el-option");
|
|
293
|
+
const _component_el_select = resolveComponent("el-select");
|
|
294
|
+
const _component_el_date_picker = resolveComponent("el-date-picker");
|
|
295
|
+
const _component_el_input = resolveComponent("el-input");
|
|
296
|
+
const _component_el_form_item = resolveComponent("el-form-item");
|
|
297
|
+
const _component_el_button = resolveComponent("el-button");
|
|
298
|
+
const _component_el_form = resolveComponent("el-form");
|
|
299
|
+
return openBlock(), createElementBlock("div", _hoisted_1$4, [
|
|
300
|
+
createVNode(_component_el_form, {
|
|
301
|
+
class: "base-search-form__form",
|
|
302
|
+
model: innerModel.value,
|
|
303
|
+
"label-width": normalizedLabelWidth.value,
|
|
304
|
+
onSubmit: withModifiers(submit, ["prevent"])
|
|
305
|
+
}, {
|
|
306
|
+
default: withCtx(() => [
|
|
307
|
+
createElementVNode("div", {
|
|
308
|
+
class: "base-search-form__grid",
|
|
309
|
+
style: normalizeStyle(gridStyle.value)
|
|
310
|
+
}, [
|
|
311
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(visibleFields.value, (field) => {
|
|
312
|
+
return openBlock(), createBlock(_component_el_form_item, {
|
|
313
|
+
key: field.key,
|
|
314
|
+
class: "base-search-form__item",
|
|
315
|
+
label: field.label,
|
|
316
|
+
style: normalizeStyle(getFieldStyle(field))
|
|
317
|
+
}, {
|
|
318
|
+
default: withCtx(() => {
|
|
319
|
+
var _a, _b;
|
|
320
|
+
return [
|
|
321
|
+
field.type === "slot" ? renderSlot(_ctx.$slots, field.key, {
|
|
322
|
+
key: 0,
|
|
323
|
+
field,
|
|
324
|
+
model: innerModel.value,
|
|
325
|
+
value: innerModel.value[field.key],
|
|
326
|
+
setValue: (value) => setFieldValue(field.key, value)
|
|
327
|
+
}, void 0, true) : field.type === "select" ? (openBlock(), createBlock(_component_el_select, mergeProps({
|
|
328
|
+
key: 1,
|
|
329
|
+
class: "base-search-form__control",
|
|
330
|
+
"model-value": innerModel.value[field.key],
|
|
331
|
+
placeholder: field.placeholder || field.label,
|
|
332
|
+
clearable: field.clearable !== false,
|
|
333
|
+
disabled: field.disabled
|
|
334
|
+
}, { ref_for: true }, field.props, {
|
|
335
|
+
"onUpdate:modelValue": (value) => handleFieldChange(field.key, value)
|
|
336
|
+
}), {
|
|
337
|
+
default: withCtx(() => [
|
|
338
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(field.options || [], (option) => {
|
|
339
|
+
return openBlock(), createBlock(_component_el_option, {
|
|
340
|
+
key: String(option.value),
|
|
341
|
+
label: option.label,
|
|
342
|
+
value: option.value,
|
|
343
|
+
disabled: option.disabled
|
|
344
|
+
}, null, 8, ["label", "value", "disabled"]);
|
|
345
|
+
}), 128))
|
|
346
|
+
]),
|
|
347
|
+
_: 2
|
|
348
|
+
}, 1040, ["model-value", "placeholder", "clearable", "disabled", "onUpdate:modelValue"])) : field.type === "date" || field.type === "dateRange" ? (openBlock(), createBlock(_component_el_date_picker, mergeProps({
|
|
349
|
+
key: 2,
|
|
350
|
+
class: "base-search-form__control",
|
|
351
|
+
"model-value": innerModel.value[field.key],
|
|
352
|
+
type: field.type === "dateRange" ? "daterange" : "date",
|
|
353
|
+
placeholder: field.placeholder || field.label,
|
|
354
|
+
"start-placeholder": ((_a = field.props) == null ? void 0 : _a.startPlaceholder) || "\u5F00\u59CB\u65E5\u671F",
|
|
355
|
+
"end-placeholder": ((_b = field.props) == null ? void 0 : _b.endPlaceholder) || "\u7ED3\u675F\u65E5\u671F",
|
|
356
|
+
clearable: field.clearable !== false,
|
|
357
|
+
disabled: field.disabled
|
|
358
|
+
}, { ref_for: true }, field.props, {
|
|
359
|
+
"onUpdate:modelValue": (value) => handleFieldChange(field.key, value)
|
|
360
|
+
}), null, 16, ["model-value", "type", "placeholder", "start-placeholder", "end-placeholder", "clearable", "disabled", "onUpdate:modelValue"])) : (openBlock(), createBlock(_component_el_input, mergeProps({
|
|
361
|
+
key: 3,
|
|
362
|
+
class: "base-search-form__control",
|
|
363
|
+
"model-value": innerModel.value[field.key],
|
|
364
|
+
placeholder: field.placeholder || field.label,
|
|
365
|
+
clearable: field.clearable !== false,
|
|
366
|
+
disabled: field.disabled
|
|
367
|
+
}, { ref_for: true }, field.props, {
|
|
368
|
+
"onUpdate:modelValue": (value) => handleFieldChange(field.key, value),
|
|
369
|
+
onKeyup: withKeys(submit, ["enter"])
|
|
370
|
+
}), null, 16, ["model-value", "placeholder", "clearable", "disabled", "onUpdate:modelValue"]))
|
|
371
|
+
];
|
|
372
|
+
}),
|
|
373
|
+
_: 2
|
|
374
|
+
}, 1032, ["label", "style"]);
|
|
375
|
+
}), 128)),
|
|
376
|
+
createElementVNode("div", _hoisted_2$2, [
|
|
377
|
+
renderSlot(_ctx.$slots, "actions-before", { model: innerModel.value }, void 0, true),
|
|
378
|
+
createVNode(_component_el_button, {
|
|
379
|
+
type: "primary",
|
|
380
|
+
onClick: submit
|
|
381
|
+
}, {
|
|
382
|
+
default: withCtx(() => [
|
|
383
|
+
createTextVNode(toDisplayString(__props.submitText), 1)
|
|
384
|
+
]),
|
|
385
|
+
_: 1
|
|
386
|
+
}),
|
|
387
|
+
createVNode(_component_el_button, { onClick: reset }, {
|
|
388
|
+
default: withCtx(() => [
|
|
389
|
+
createTextVNode(toDisplayString(__props.resetText), 1)
|
|
390
|
+
]),
|
|
391
|
+
_: 1
|
|
392
|
+
}),
|
|
393
|
+
__props.showCollapse && hasCollapsedFields.value ? (openBlock(), createBlock(_component_el_button, {
|
|
394
|
+
key: 0,
|
|
395
|
+
link: "",
|
|
396
|
+
type: "primary",
|
|
397
|
+
onClick: toggleCollapsed
|
|
398
|
+
}, {
|
|
399
|
+
default: withCtx(() => [
|
|
400
|
+
createTextVNode(toDisplayString(isCollapsed.value ? __props.expandText : __props.collapseText), 1)
|
|
401
|
+
]),
|
|
402
|
+
_: 1
|
|
403
|
+
})) : createCommentVNode("", true),
|
|
404
|
+
renderSlot(_ctx.$slots, "actions-after", { model: innerModel.value }, void 0, true)
|
|
405
|
+
])
|
|
406
|
+
], 4)
|
|
407
|
+
]),
|
|
408
|
+
_: 3
|
|
409
|
+
}, 8, ["model", "label-width"])
|
|
410
|
+
]);
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
});
|
|
414
|
+
var BaseSearchForm = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-52b1fbc7"]]);
|
|
415
|
+
var BaseDialog_vue_vue_type_style_index_0_scoped_true_lang = "";
|
|
416
|
+
const _hoisted_1$3 = { class: "base-dialog__body" };
|
|
417
|
+
const _hoisted_2$1 = { class: "base-dialog__footer" };
|
|
418
|
+
const _sfc_main$a = defineComponent({
|
|
419
|
+
...{
|
|
420
|
+
name: "BaseDialog"
|
|
421
|
+
},
|
|
422
|
+
__name: "BaseDialog",
|
|
423
|
+
props: {
|
|
424
|
+
modelValue: { type: Boolean, default: false },
|
|
425
|
+
title: { default: "" },
|
|
426
|
+
width: { default: "560px" },
|
|
427
|
+
top: { default: "12vh" },
|
|
428
|
+
fullscreen: { type: Boolean, default: false },
|
|
429
|
+
appendToBody: { type: Boolean, default: false },
|
|
430
|
+
destroyOnClose: { type: Boolean, default: false },
|
|
431
|
+
closeOnClickModal: { type: Boolean, default: false },
|
|
432
|
+
closeOnPressEscape: { type: Boolean, default: true },
|
|
433
|
+
showClose: { type: Boolean, default: true },
|
|
434
|
+
showFooter: { type: Boolean, default: true },
|
|
435
|
+
confirmText: { default: "\u786E\u5B9A" },
|
|
436
|
+
cancelText: { default: "\u53D6\u6D88" },
|
|
437
|
+
confirmLoading: { type: Boolean, default: false },
|
|
438
|
+
confirmDisabled: { type: Boolean, default: false },
|
|
439
|
+
beforeConfirm: { type: Function, default: void 0 }
|
|
440
|
+
},
|
|
441
|
+
emits: ["update:modelValue", "open", "opened", "close", "closed", "cancel", "confirm"],
|
|
442
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
443
|
+
const props = __props;
|
|
444
|
+
const emit = __emit;
|
|
445
|
+
const innerConfirmLoading = ref(false);
|
|
446
|
+
const normalizedWidth = computed(() => toCssValue(props.width));
|
|
447
|
+
const mergedConfirmLoading = computed(() => props.confirmLoading || innerConfirmLoading.value);
|
|
448
|
+
function toCssValue(value) {
|
|
449
|
+
if (value === void 0 || value === null || value === "") {
|
|
450
|
+
return void 0;
|
|
451
|
+
}
|
|
452
|
+
return typeof value === "number" ? `${value}px` : value;
|
|
453
|
+
}
|
|
454
|
+
function handleModelValueUpdate(value) {
|
|
455
|
+
emit("update:modelValue", value);
|
|
456
|
+
}
|
|
457
|
+
function open() {
|
|
458
|
+
emit("update:modelValue", true);
|
|
459
|
+
}
|
|
460
|
+
function close() {
|
|
461
|
+
emit("update:modelValue", false);
|
|
462
|
+
}
|
|
463
|
+
function cancel() {
|
|
464
|
+
emit("cancel");
|
|
465
|
+
close();
|
|
466
|
+
}
|
|
467
|
+
async function confirm() {
|
|
468
|
+
var _a;
|
|
469
|
+
if (mergedConfirmLoading.value || props.confirmDisabled) {
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
472
|
+
innerConfirmLoading.value = true;
|
|
473
|
+
try {
|
|
474
|
+
const result = await ((_a = props.beforeConfirm) == null ? void 0 : _a.call(props));
|
|
475
|
+
if (result === false) {
|
|
476
|
+
return;
|
|
477
|
+
}
|
|
478
|
+
emit("confirm");
|
|
479
|
+
} finally {
|
|
480
|
+
innerConfirmLoading.value = false;
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
__expose({
|
|
484
|
+
open,
|
|
485
|
+
close,
|
|
486
|
+
confirm
|
|
487
|
+
});
|
|
488
|
+
return (_ctx, _cache) => {
|
|
489
|
+
const _component_el_button = resolveComponent("el-button");
|
|
490
|
+
const _component_el_dialog = resolveComponent("el-dialog");
|
|
491
|
+
return openBlock(), createBlock(_component_el_dialog, {
|
|
492
|
+
class: "base-dialog",
|
|
493
|
+
"model-value": __props.modelValue,
|
|
494
|
+
title: __props.title,
|
|
495
|
+
width: normalizedWidth.value,
|
|
496
|
+
top: __props.top,
|
|
497
|
+
fullscreen: __props.fullscreen,
|
|
498
|
+
"append-to-body": __props.appendToBody,
|
|
499
|
+
"destroy-on-close": __props.destroyOnClose,
|
|
500
|
+
"close-on-click-modal": __props.closeOnClickModal,
|
|
501
|
+
"close-on-press-escape": __props.closeOnPressEscape,
|
|
502
|
+
"show-close": __props.showClose,
|
|
503
|
+
"onUpdate:modelValue": handleModelValueUpdate,
|
|
504
|
+
onOpen: _cache[0] || (_cache[0] = ($event) => emit("open")),
|
|
505
|
+
onOpened: _cache[1] || (_cache[1] = ($event) => emit("opened")),
|
|
506
|
+
onClose: _cache[2] || (_cache[2] = ($event) => emit("close")),
|
|
507
|
+
onClosed: _cache[3] || (_cache[3] = ($event) => emit("closed"))
|
|
508
|
+
}, createSlots({
|
|
509
|
+
default: withCtx(() => [
|
|
510
|
+
createElementVNode("div", _hoisted_1$3, [
|
|
511
|
+
renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
512
|
+
])
|
|
513
|
+
]),
|
|
514
|
+
_: 2
|
|
515
|
+
}, [
|
|
516
|
+
_ctx.$slots.header ? {
|
|
517
|
+
name: "header",
|
|
518
|
+
fn: withCtx(() => [
|
|
519
|
+
renderSlot(_ctx.$slots, "header", {}, void 0, true)
|
|
520
|
+
]),
|
|
521
|
+
key: "0"
|
|
522
|
+
} : void 0,
|
|
523
|
+
__props.showFooter ? {
|
|
524
|
+
name: "footer",
|
|
525
|
+
fn: withCtx(() => [
|
|
526
|
+
renderSlot(_ctx.$slots, "footer", {}, () => [
|
|
527
|
+
createElementVNode("div", _hoisted_2$1, [
|
|
528
|
+
createVNode(_component_el_button, { onClick: cancel }, {
|
|
529
|
+
default: withCtx(() => [
|
|
530
|
+
createTextVNode(toDisplayString(__props.cancelText), 1)
|
|
531
|
+
]),
|
|
532
|
+
_: 1
|
|
533
|
+
}),
|
|
534
|
+
createVNode(_component_el_button, {
|
|
535
|
+
type: "primary",
|
|
536
|
+
loading: mergedConfirmLoading.value,
|
|
537
|
+
disabled: __props.confirmDisabled,
|
|
538
|
+
onClick: confirm
|
|
539
|
+
}, {
|
|
540
|
+
default: withCtx(() => [
|
|
541
|
+
createTextVNode(toDisplayString(__props.confirmText), 1)
|
|
542
|
+
]),
|
|
543
|
+
_: 1
|
|
544
|
+
}, 8, ["loading", "disabled"])
|
|
545
|
+
])
|
|
546
|
+
], true)
|
|
547
|
+
]),
|
|
548
|
+
key: "1"
|
|
549
|
+
} : void 0
|
|
550
|
+
]), 1032, ["model-value", "title", "width", "top", "fullscreen", "append-to-body", "destroy-on-close", "close-on-click-modal", "close-on-press-escape", "show-close"]);
|
|
551
|
+
};
|
|
552
|
+
}
|
|
553
|
+
});
|
|
554
|
+
var BaseDialog = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-37bcb779"]]);
|
|
176
555
|
var BaseTable_vue_vue_type_style_index_0_scoped_true_lang = "";
|
|
177
556
|
const _hoisted_1$2 = { class: "base-table" };
|
|
178
557
|
const _hoisted_2 = {
|
|
@@ -1390,136 +1769,6 @@ const _sfc_main$8 = defineComponent({
|
|
|
1390
1769
|
}
|
|
1391
1770
|
});
|
|
1392
1771
|
var BaseEChart = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-51bc4772"]]);
|
|
1393
|
-
const DEFAULT_SHEET_NAME = "Sheet1";
|
|
1394
|
-
const DEFAULT_COLUMN_WIDTH = 16;
|
|
1395
|
-
const EXCEL_MIME_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
|
1396
|
-
function getLeafCount(column) {
|
|
1397
|
-
var _a;
|
|
1398
|
-
if (!((_a = column.children) == null ? void 0 : _a.length)) {
|
|
1399
|
-
return 1;
|
|
1400
|
-
}
|
|
1401
|
-
return column.children.reduce((count, child) => count + getLeafCount(child), 0);
|
|
1402
|
-
}
|
|
1403
|
-
function getMaxDepth(columns, depth = 1) {
|
|
1404
|
-
return columns.reduce((maxDepth, column) => {
|
|
1405
|
-
var _a;
|
|
1406
|
-
if (!((_a = column.children) == null ? void 0 : _a.length)) {
|
|
1407
|
-
return Math.max(maxDepth, depth);
|
|
1408
|
-
}
|
|
1409
|
-
return Math.max(maxDepth, getMaxDepth(column.children, depth + 1));
|
|
1410
|
-
}, depth);
|
|
1411
|
-
}
|
|
1412
|
-
function getDisplayLength(value) {
|
|
1413
|
-
const text = `${value != null ? value : ""}`;
|
|
1414
|
-
return Array.from(text).reduce((length, char) => {
|
|
1415
|
-
return length + (char.charCodeAt(0) > 255 ? 2 : 1);
|
|
1416
|
-
}, 0);
|
|
1417
|
-
}
|
|
1418
|
-
function getValueByPath(source, path) {
|
|
1419
|
-
if (!path) {
|
|
1420
|
-
return "";
|
|
1421
|
-
}
|
|
1422
|
-
return path.split(".").reduce((current, key) => {
|
|
1423
|
-
if (current === null || current === void 0) {
|
|
1424
|
-
return void 0;
|
|
1425
|
-
}
|
|
1426
|
-
return current[key];
|
|
1427
|
-
}, source);
|
|
1428
|
-
}
|
|
1429
|
-
function getCellValue(row, rowIndex, column) {
|
|
1430
|
-
if (typeof column.formatter === "function") {
|
|
1431
|
-
return column.formatter(row, rowIndex, column);
|
|
1432
|
-
}
|
|
1433
|
-
return getValueByPath(row, column.key);
|
|
1434
|
-
}
|
|
1435
|
-
function buildHeaderMatrix(columns) {
|
|
1436
|
-
const maxDepth = getMaxDepth(columns);
|
|
1437
|
-
const totalLeafCount = columns.reduce((count, column) => count + getLeafCount(column), 0);
|
|
1438
|
-
const headerRows = Array.from({ length: maxDepth }, () => Array.from({ length: totalLeafCount }).fill(""));
|
|
1439
|
-
const merges = [];
|
|
1440
|
-
const leafColumns = [];
|
|
1441
|
-
let currentColumnIndex = 0;
|
|
1442
|
-
const fillHeaders = (column, depth) => {
|
|
1443
|
-
var _a;
|
|
1444
|
-
const startColumnIndex = currentColumnIndex;
|
|
1445
|
-
const leafCount = getLeafCount(column);
|
|
1446
|
-
headerRows[depth][startColumnIndex] = column.label;
|
|
1447
|
-
if ((_a = column.children) == null ? void 0 : _a.length) {
|
|
1448
|
-
column.children.forEach((child) => fillHeaders(child, depth + 1));
|
|
1449
|
-
if (leafCount > 1) {
|
|
1450
|
-
merges.push({
|
|
1451
|
-
s: { r: depth, c: startColumnIndex },
|
|
1452
|
-
e: { r: depth, c: startColumnIndex + leafCount - 1 }
|
|
1453
|
-
});
|
|
1454
|
-
}
|
|
1455
|
-
return;
|
|
1456
|
-
}
|
|
1457
|
-
leafColumns.push(column);
|
|
1458
|
-
currentColumnIndex += 1;
|
|
1459
|
-
if (depth < maxDepth - 1) {
|
|
1460
|
-
merges.push({
|
|
1461
|
-
s: { r: depth, c: startColumnIndex },
|
|
1462
|
-
e: { r: maxDepth - 1, c: startColumnIndex }
|
|
1463
|
-
});
|
|
1464
|
-
}
|
|
1465
|
-
};
|
|
1466
|
-
columns.forEach((column) => fillHeaders(column, 0));
|
|
1467
|
-
return {
|
|
1468
|
-
headerRows,
|
|
1469
|
-
leafColumns,
|
|
1470
|
-
merges
|
|
1471
|
-
};
|
|
1472
|
-
}
|
|
1473
|
-
function buildColumnWidths(leafColumns, dataRows, defaultColumnWidth, autoWidth) {
|
|
1474
|
-
return leafColumns.map((column, columnIndex) => {
|
|
1475
|
-
var _a;
|
|
1476
|
-
const headerWidth = getDisplayLength(column.label);
|
|
1477
|
-
const dataWidth = dataRows.reduce((maxWidth, row) => {
|
|
1478
|
-
return Math.max(maxWidth, getDisplayLength(row[columnIndex]));
|
|
1479
|
-
}, 0);
|
|
1480
|
-
const targetWidth = (_a = column.width) != null ? _a : autoWidth ? Math.max(defaultColumnWidth, headerWidth, dataWidth) : defaultColumnWidth;
|
|
1481
|
-
return targetWidth;
|
|
1482
|
-
});
|
|
1483
|
-
}
|
|
1484
|
-
function normalizeFileName(fileName) {
|
|
1485
|
-
return fileName.endsWith(".xlsx") ? fileName : `${fileName}.xlsx`;
|
|
1486
|
-
}
|
|
1487
|
-
function applyColumnWidths(worksheet, columnWidths) {
|
|
1488
|
-
columnWidths.forEach((width, index) => {
|
|
1489
|
-
worksheet.getColumn(index + 1).width = width;
|
|
1490
|
-
});
|
|
1491
|
-
}
|
|
1492
|
-
function applyMerges(worksheet, merges) {
|
|
1493
|
-
merges.forEach((range) => {
|
|
1494
|
-
worksheet.mergeCells(range.s.r + 1, range.s.c + 1, range.e.r + 1, range.e.c + 1);
|
|
1495
|
-
});
|
|
1496
|
-
}
|
|
1497
|
-
async function exportExcel(options) {
|
|
1498
|
-
const {
|
|
1499
|
-
fileName,
|
|
1500
|
-
sheetName = DEFAULT_SHEET_NAME,
|
|
1501
|
-
data,
|
|
1502
|
-
autoWidth = true,
|
|
1503
|
-
defaultColumnWidth = DEFAULT_COLUMN_WIDTH
|
|
1504
|
-
} = options;
|
|
1505
|
-
const columns = options.columns.filter((column) => !!column);
|
|
1506
|
-
if (!columns.length) {
|
|
1507
|
-
throw new Error("Excel export columns can not be empty.");
|
|
1508
|
-
}
|
|
1509
|
-
const { headerRows, leafColumns, merges } = buildHeaderMatrix(columns);
|
|
1510
|
-
const dataRows = data.map((row, rowIndex) => leafColumns.map((column) => getCellValue(row, rowIndex, column)));
|
|
1511
|
-
const columnWidths = buildColumnWidths(leafColumns, dataRows, defaultColumnWidth, autoWidth);
|
|
1512
|
-
const workbook = new ExcelJS.Workbook();
|
|
1513
|
-
const worksheet = workbook.addWorksheet(sheetName);
|
|
1514
|
-
[...headerRows, ...dataRows].forEach((row) => {
|
|
1515
|
-
worksheet.addRow(row);
|
|
1516
|
-
});
|
|
1517
|
-
applyMerges(worksheet, merges);
|
|
1518
|
-
applyColumnWidths(worksheet, columnWidths);
|
|
1519
|
-
const buffer = await workbook.xlsx.writeBuffer();
|
|
1520
|
-
const blob = new Blob([buffer], { type: EXCEL_MIME_TYPE });
|
|
1521
|
-
saveAs(blob, normalizeFileName(fileName));
|
|
1522
|
-
}
|
|
1523
1772
|
const DEFAULT_EXPORT_FILE_NAME = "export-file";
|
|
1524
1773
|
function getHeaderValue(headers, headerName) {
|
|
1525
1774
|
var _a;
|
|
@@ -1655,7 +1904,10 @@ const _sfc_main$7 = defineComponent({
|
|
|
1655
1904
|
emit("start");
|
|
1656
1905
|
try {
|
|
1657
1906
|
if (exportMode.value === "excel" && props.excelOptions) {
|
|
1658
|
-
await
|
|
1907
|
+
const { exportExcel: exportExcel2 } = await Promise.resolve().then(function() {
|
|
1908
|
+
return exportExcel$1;
|
|
1909
|
+
});
|
|
1910
|
+
await exportExcel2(props.excelOptions);
|
|
1659
1911
|
if (props.autoMessage) {
|
|
1660
1912
|
ElMessage.success(props.successMessage);
|
|
1661
1913
|
}
|
|
@@ -3573,4 +3825,139 @@ const _sfc_main = defineComponent({
|
|
|
3573
3825
|
}
|
|
3574
3826
|
});
|
|
3575
3827
|
var OutlinedTreeSelect = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8403e6ea"]]);
|
|
3576
|
-
|
|
3828
|
+
const DEFAULT_SHEET_NAME = "Sheet1";
|
|
3829
|
+
const DEFAULT_COLUMN_WIDTH = 16;
|
|
3830
|
+
const EXCEL_MIME_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
|
3831
|
+
function getLeafCount(column) {
|
|
3832
|
+
var _a;
|
|
3833
|
+
if (!((_a = column.children) == null ? void 0 : _a.length)) {
|
|
3834
|
+
return 1;
|
|
3835
|
+
}
|
|
3836
|
+
return column.children.reduce((count, child) => count + getLeafCount(child), 0);
|
|
3837
|
+
}
|
|
3838
|
+
function getMaxDepth(columns, depth = 1) {
|
|
3839
|
+
return columns.reduce((maxDepth, column) => {
|
|
3840
|
+
var _a;
|
|
3841
|
+
if (!((_a = column.children) == null ? void 0 : _a.length)) {
|
|
3842
|
+
return Math.max(maxDepth, depth);
|
|
3843
|
+
}
|
|
3844
|
+
return Math.max(maxDepth, getMaxDepth(column.children, depth + 1));
|
|
3845
|
+
}, depth);
|
|
3846
|
+
}
|
|
3847
|
+
function getDisplayLength(value) {
|
|
3848
|
+
const text = `${value != null ? value : ""}`;
|
|
3849
|
+
return Array.from(text).reduce((length, char) => {
|
|
3850
|
+
return length + (char.charCodeAt(0) > 255 ? 2 : 1);
|
|
3851
|
+
}, 0);
|
|
3852
|
+
}
|
|
3853
|
+
function getValueByPath(source, path) {
|
|
3854
|
+
if (!path) {
|
|
3855
|
+
return "";
|
|
3856
|
+
}
|
|
3857
|
+
return path.split(".").reduce((current, key) => {
|
|
3858
|
+
if (current === null || current === void 0) {
|
|
3859
|
+
return void 0;
|
|
3860
|
+
}
|
|
3861
|
+
return current[key];
|
|
3862
|
+
}, source);
|
|
3863
|
+
}
|
|
3864
|
+
function getCellValue(row, rowIndex, column) {
|
|
3865
|
+
if (typeof column.formatter === "function") {
|
|
3866
|
+
return column.formatter(row, rowIndex, column);
|
|
3867
|
+
}
|
|
3868
|
+
return getValueByPath(row, column.key);
|
|
3869
|
+
}
|
|
3870
|
+
function buildHeaderMatrix(columns) {
|
|
3871
|
+
const maxDepth = getMaxDepth(columns);
|
|
3872
|
+
const totalLeafCount = columns.reduce((count, column) => count + getLeafCount(column), 0);
|
|
3873
|
+
const headerRows = Array.from({ length: maxDepth }, () => Array.from({ length: totalLeafCount }).fill(""));
|
|
3874
|
+
const merges = [];
|
|
3875
|
+
const leafColumns = [];
|
|
3876
|
+
let currentColumnIndex = 0;
|
|
3877
|
+
const fillHeaders = (column, depth) => {
|
|
3878
|
+
var _a;
|
|
3879
|
+
const startColumnIndex = currentColumnIndex;
|
|
3880
|
+
const leafCount = getLeafCount(column);
|
|
3881
|
+
headerRows[depth][startColumnIndex] = column.label;
|
|
3882
|
+
if ((_a = column.children) == null ? void 0 : _a.length) {
|
|
3883
|
+
column.children.forEach((child) => fillHeaders(child, depth + 1));
|
|
3884
|
+
if (leafCount > 1) {
|
|
3885
|
+
merges.push({
|
|
3886
|
+
s: { r: depth, c: startColumnIndex },
|
|
3887
|
+
e: { r: depth, c: startColumnIndex + leafCount - 1 }
|
|
3888
|
+
});
|
|
3889
|
+
}
|
|
3890
|
+
return;
|
|
3891
|
+
}
|
|
3892
|
+
leafColumns.push(column);
|
|
3893
|
+
currentColumnIndex += 1;
|
|
3894
|
+
if (depth < maxDepth - 1) {
|
|
3895
|
+
merges.push({
|
|
3896
|
+
s: { r: depth, c: startColumnIndex },
|
|
3897
|
+
e: { r: maxDepth - 1, c: startColumnIndex }
|
|
3898
|
+
});
|
|
3899
|
+
}
|
|
3900
|
+
};
|
|
3901
|
+
columns.forEach((column) => fillHeaders(column, 0));
|
|
3902
|
+
return {
|
|
3903
|
+
headerRows,
|
|
3904
|
+
leafColumns,
|
|
3905
|
+
merges
|
|
3906
|
+
};
|
|
3907
|
+
}
|
|
3908
|
+
function buildColumnWidths(leafColumns, dataRows, defaultColumnWidth, autoWidth) {
|
|
3909
|
+
return leafColumns.map((column, columnIndex) => {
|
|
3910
|
+
var _a;
|
|
3911
|
+
const headerWidth = getDisplayLength(column.label);
|
|
3912
|
+
const dataWidth = dataRows.reduce((maxWidth, row) => {
|
|
3913
|
+
return Math.max(maxWidth, getDisplayLength(row[columnIndex]));
|
|
3914
|
+
}, 0);
|
|
3915
|
+
const targetWidth = (_a = column.width) != null ? _a : autoWidth ? Math.max(defaultColumnWidth, headerWidth, dataWidth) : defaultColumnWidth;
|
|
3916
|
+
return targetWidth;
|
|
3917
|
+
});
|
|
3918
|
+
}
|
|
3919
|
+
function normalizeFileName(fileName) {
|
|
3920
|
+
return fileName.endsWith(".xlsx") ? fileName : `${fileName}.xlsx`;
|
|
3921
|
+
}
|
|
3922
|
+
function applyColumnWidths(worksheet, columnWidths) {
|
|
3923
|
+
columnWidths.forEach((width, index) => {
|
|
3924
|
+
worksheet.getColumn(index + 1).width = width;
|
|
3925
|
+
});
|
|
3926
|
+
}
|
|
3927
|
+
function applyMerges(worksheet, merges) {
|
|
3928
|
+
merges.forEach((range) => {
|
|
3929
|
+
worksheet.mergeCells(range.s.r + 1, range.s.c + 1, range.e.r + 1, range.e.c + 1);
|
|
3930
|
+
});
|
|
3931
|
+
}
|
|
3932
|
+
async function exportExcel(options) {
|
|
3933
|
+
const {
|
|
3934
|
+
fileName,
|
|
3935
|
+
sheetName = DEFAULT_SHEET_NAME,
|
|
3936
|
+
data,
|
|
3937
|
+
autoWidth = true,
|
|
3938
|
+
defaultColumnWidth = DEFAULT_COLUMN_WIDTH
|
|
3939
|
+
} = options;
|
|
3940
|
+
const columns = options.columns.filter((column) => !!column);
|
|
3941
|
+
if (!columns.length) {
|
|
3942
|
+
throw new Error("Excel export columns can not be empty.");
|
|
3943
|
+
}
|
|
3944
|
+
const { headerRows, leafColumns, merges } = buildHeaderMatrix(columns);
|
|
3945
|
+
const dataRows = data.map((row, rowIndex) => leafColumns.map((column) => getCellValue(row, rowIndex, column)));
|
|
3946
|
+
const columnWidths = buildColumnWidths(leafColumns, dataRows, defaultColumnWidth, autoWidth);
|
|
3947
|
+
const workbook = new ExcelJS.Workbook();
|
|
3948
|
+
const worksheet = workbook.addWorksheet(sheetName);
|
|
3949
|
+
[...headerRows, ...dataRows].forEach((row) => {
|
|
3950
|
+
worksheet.addRow(row);
|
|
3951
|
+
});
|
|
3952
|
+
applyMerges(worksheet, merges);
|
|
3953
|
+
applyColumnWidths(worksheet, columnWidths);
|
|
3954
|
+
const buffer = await workbook.xlsx.writeBuffer();
|
|
3955
|
+
const blob = new Blob([buffer], { type: EXCEL_MIME_TYPE });
|
|
3956
|
+
saveAs(blob, normalizeFileName(fileName));
|
|
3957
|
+
}
|
|
3958
|
+
var exportExcel$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3959
|
+
__proto__: null,
|
|
3960
|
+
exportExcel,
|
|
3961
|
+
"default": exportExcel
|
|
3962
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
3963
|
+
export { BaseCard, BaseDialog, BaseEChart, _sfc_main$7 as BaseExportButton, BaseSearchForm, BaseTable, OutlinedCascader, OutlinedDatePicker, OutlinedDateTimePicker, OutlinedInput, OutlinedSelect, OutlinedTimePicker, OutlinedTreeSelect, cloneSearchFormModel, downloadExportResponse, exportExcel, extractFileNameFromDisposition, getVisibleSearchFields, normalizeExportFileName, resetSearchFormModel, toSearchFormCssValue };
|