@ithinkdt/ui 4.0.0-700 → 4.0.0-801
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/{components-Yo5FKzwp.js → components-BqDuqv2P.js} +622 -635
- package/dist/components.js +1 -1
- package/dist/directives-pc2Vi93X.js +240 -0
- package/dist/directives.js +1 -1
- package/dist/index.js +333 -333
- package/dist/page.js +426 -329
- package/dist/{use-style-DrH-89qR.js → use-style-BGq0HdRK.js} +2 -2
- package/dist/use-style.js +1 -1
- package/esm/components.d.ts +25 -7
- package/esm/design.d.ts +1 -1
- package/esm/page.d.ts +18 -4
- package/locale.d.ts +1 -0
- package/package.json +9 -9
- package/dist/directives-RPqFovTo.js +0 -237
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as useI18n } from "./use-i18n-D-AJ8KbA.js";
|
|
2
|
-
import { g as useStyle, h as useMergedClsPrefix, i as cM, n as cB, r as cE, t as c } from "./use-style-
|
|
3
|
-
import { i as vTooltip } from "./directives-
|
|
2
|
+
import { g as useStyle, h as useMergedClsPrefix, i as cM, n as cB, r as cE, t as c } from "./use-style-BGq0HdRK.js";
|
|
3
|
+
import { i as vTooltip } from "./directives-pc2Vi93X.js";
|
|
4
4
|
import { Fragment, computed, createTextVNode, createVNode, defineComponent, h, inject, isVNode, markRaw, mergeProps, nextTick, reactive, ref, shallowRef, toRaw, toRef, toValue, unref, useTemplateRef, watch, withDirectives } from "vue";
|
|
5
|
-
import { toReactive, unrefElement, until
|
|
6
|
-
import { NAnchor, NAnchorLink, NAvatar, NAvatarGroup, NButton, NCard, NCheckbox, NCheckboxGroup, NDataTable, NDropdown, NEllipsis, NEmpty, NFlex, NForm, NFormItem, NGi, NGrid,
|
|
5
|
+
import { toReactive, unrefElement, until } from "@vueuse/core";
|
|
6
|
+
import { NAnchor, NAnchorLink, NAvatar, NAvatarGroup, NButton, NCard, NCheckbox, NCheckboxGroup, NDataTable, NDropdown, NEllipsis, NEmpty, NFlex, NForm, NFormItem, NGi, NGrid, NIcon, NInput, NList, NListItem, NPagination, NPopover, NRadio, NRadioButton, NRadioGroup, NSelect, NSpin, NTag, NText, NTooltip, NTransfer, NTree, NTreeSelect, dataTableProps, formProps, useDialog } from "ithinkdt-ui";
|
|
7
7
|
import { nanoid } from "nanoid";
|
|
8
8
|
import { VOverflow, VResizeObserver } from "vueuc";
|
|
9
9
|
import { Sortable } from "sortablejs/modular/sortable.core.esm.js";
|
|
@@ -67,37 +67,37 @@ const NCheckboxes = /* @__PURE__ */ defineComponent({
|
|
|
67
67
|
"update:modelValue": () => !0,
|
|
68
68
|
updateModelValue: () => !0
|
|
69
69
|
},
|
|
70
|
-
setup(
|
|
71
|
-
let { t:
|
|
72
|
-
watch(() =>
|
|
73
|
-
let
|
|
74
|
-
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
},
|
|
70
|
+
setup(t, { emit: n, attrs: r }) {
|
|
71
|
+
let { t: i } = useI18n(), a = computed(() => t.default ? t.default === !0 ? i("common.all") : typeof t.default == "string" ? t.default : t.default?.[t.labelField] ?? i("common.all") : ""), o = ref([]);
|
|
72
|
+
watch(() => t.modelValue, (e) => o.value = e, { immediate: !0 });
|
|
73
|
+
let s = (e) => {
|
|
74
|
+
n("update:modelValue", e), n("updateModelValue", e);
|
|
75
|
+
}, l = () => {
|
|
76
|
+
s(o.value?.length === t.options.length ? [] : t.options.map((e) => e[t.valueField]));
|
|
77
|
+
}, d = computed(() => t.options.length > o.value?.length && o.value?.length > 0), f = computed(() => ({ "--n-label-padding": t.labelPadding }));
|
|
78
78
|
return () => {
|
|
79
|
-
let e = createVNode(NCheckboxGroup, mergeProps(
|
|
80
|
-
value:
|
|
81
|
-
onUpdateValue:
|
|
79
|
+
let e = createVNode(NCheckboxGroup, mergeProps(r, {
|
|
80
|
+
value: o.value,
|
|
81
|
+
onUpdateValue: s
|
|
82
82
|
}), { default: () => [createVNode(NFlex, {
|
|
83
|
-
size:
|
|
84
|
-
vertical:
|
|
85
|
-
style: !
|
|
86
|
-
}, { default: () => [
|
|
87
|
-
value: e[
|
|
88
|
-
disabled: e[
|
|
89
|
-
style:
|
|
90
|
-
}, { default: () => [e[
|
|
91
|
-
return
|
|
92
|
-
size:
|
|
93
|
-
vertical:
|
|
94
|
-
style:
|
|
83
|
+
size: t.gap ?? (t.vertical ? void 0 : "small"),
|
|
84
|
+
vertical: t.vertical,
|
|
85
|
+
style: !t.default && t.vertical ? { padding: "6px 0 0" } : {}
|
|
86
|
+
}, { default: () => [t.options?.map((e) => createVNode(NCheckbox, {
|
|
87
|
+
value: e[t.valueField],
|
|
88
|
+
disabled: e[t.disabledField],
|
|
89
|
+
style: f.value
|
|
90
|
+
}, { default: () => [e[t.labelField]] }))] })] });
|
|
91
|
+
return t.default ? createVNode(NFlex, {
|
|
92
|
+
size: t.gap ?? (t.vertical ? void 0 : "small"),
|
|
93
|
+
vertical: t.vertical,
|
|
94
|
+
style: t.vertical ? { padding: "6px 0 0" } : {}
|
|
95
95
|
}, { default: () => [createVNode("span", null, [createVNode(NCheckbox, {
|
|
96
|
-
indeterminate:
|
|
97
|
-
checked:
|
|
98
|
-
onUpdateChecked:
|
|
99
|
-
style:
|
|
100
|
-
}, { default: () => [
|
|
96
|
+
indeterminate: d.value,
|
|
97
|
+
checked: o.value?.length > 0,
|
|
98
|
+
onUpdateChecked: l,
|
|
99
|
+
style: f.value
|
|
100
|
+
}, { default: () => [a.value] })]), e] }) : e;
|
|
101
101
|
};
|
|
102
102
|
}
|
|
103
103
|
}), IHelp = (e) => createVNode("svg", mergeProps({
|
|
@@ -289,16 +289,16 @@ const NCheckboxes = /* @__PURE__ */ defineComponent({
|
|
|
289
289
|
default: () => []
|
|
290
290
|
} },
|
|
291
291
|
setup(e) {
|
|
292
|
-
let
|
|
293
|
-
|
|
294
|
-
},
|
|
295
|
-
|
|
296
|
-
},
|
|
297
|
-
e || (
|
|
298
|
-
},
|
|
292
|
+
let t = ref(), n = !0, r = () => {
|
|
293
|
+
n ? n = !1 : t.value?.sync({ showAllItemsBeforeCalculate: !0 });
|
|
294
|
+
}, i = ref(), a = () => i.value, o = ref(-1), s = (t) => {
|
|
295
|
+
o.value = e.options.length - t;
|
|
296
|
+
}, l = (e) => {
|
|
297
|
+
e || (o.value = -1);
|
|
298
|
+
}, d = () => {}, f = computed(() => o.value === -1 ? [] : e.options.slice(o.value).map((e) => ({
|
|
299
299
|
...e,
|
|
300
300
|
key: e.text
|
|
301
|
-
}))),
|
|
301
|
+
}))), p = (e) => createVNode(NButton, {
|
|
302
302
|
type: e.color === "danger" ? "error" : [
|
|
303
303
|
"default",
|
|
304
304
|
"tertiary",
|
|
@@ -309,15 +309,15 @@ const NCheckboxes = /* @__PURE__ */ defineComponent({
|
|
|
309
309
|
"error"
|
|
310
310
|
].includes(e.color) ? e.color : "primary",
|
|
311
311
|
text: !0
|
|
312
|
-
}, { default: () => [e.text] }),
|
|
313
|
-
|
|
312
|
+
}, { default: () => [e.text] }), m = (e, t) => {
|
|
313
|
+
t.onClick?.();
|
|
314
314
|
};
|
|
315
|
-
return () => createVNode(VResizeObserver, { onResize:
|
|
316
|
-
ref:
|
|
317
|
-
getCounter:
|
|
318
|
-
onUpdateCount:
|
|
319
|
-
onUpdateOverflow:
|
|
320
|
-
updateCounter:
|
|
315
|
+
return () => createVNode(VResizeObserver, { onResize: r }, { default: () => [createVNode(VOverflow, {
|
|
316
|
+
ref: t,
|
|
317
|
+
getCounter: a,
|
|
318
|
+
onUpdateCount: s,
|
|
319
|
+
onUpdateOverflow: l,
|
|
320
|
+
updateCounter: d,
|
|
321
321
|
style: "margin-top: 2px"
|
|
322
322
|
}, {
|
|
323
323
|
default: () => e.options.map((e) => createVNode(NButton, {
|
|
@@ -335,12 +335,12 @@ const NCheckboxes = /* @__PURE__ */ defineComponent({
|
|
|
335
335
|
onClick: e.onClick
|
|
336
336
|
}, { default: () => [e.text] })),
|
|
337
337
|
counter: () => createVNode("span", {
|
|
338
|
-
ref:
|
|
338
|
+
ref: i,
|
|
339
339
|
style: "position: absolute"
|
|
340
340
|
}, [createVNode(NDropdown, {
|
|
341
|
-
options:
|
|
342
|
-
renderLabel:
|
|
343
|
-
onSelect:
|
|
341
|
+
options: f.value,
|
|
342
|
+
renderLabel: p,
|
|
343
|
+
onSelect: m
|
|
344
344
|
}, { default: () => [createVNode(NButton, {
|
|
345
345
|
quaternary: !0,
|
|
346
346
|
size: "small"
|
|
@@ -361,9 +361,9 @@ var DataCustomItem = /* @__PURE__ */ defineComponent({
|
|
|
361
361
|
fixed: [Boolean, String]
|
|
362
362
|
},
|
|
363
363
|
emits: ["update-hidden", "update-fixed"],
|
|
364
|
-
setup(e, { emit:
|
|
364
|
+
setup(e, { emit: t }) {
|
|
365
365
|
return () => {
|
|
366
|
-
let
|
|
366
|
+
let n;
|
|
367
367
|
return createVNode(NFlex, {
|
|
368
368
|
align: "center",
|
|
369
369
|
wrap: !1,
|
|
@@ -377,17 +377,17 @@ var DataCustomItem = /* @__PURE__ */ defineComponent({
|
|
|
377
377
|
createVNode(NCheckbox, {
|
|
378
378
|
checked: !e.hidden,
|
|
379
379
|
disabled: e.disabled,
|
|
380
|
-
onUpdateChecked: (e) =>
|
|
380
|
+
onUpdateChecked: (e) => t("update-hidden", !e)
|
|
381
381
|
}, null),
|
|
382
|
-
createVNode(NEllipsis, { style: "flex: 1 1 auto" }, _isSlot$7(
|
|
382
|
+
createVNode(NEllipsis, { style: "flex: 1 1 auto" }, _isSlot$7(n = toValue(e.label)) ? n : { default: () => [n] }),
|
|
383
383
|
e.showFixed ? [createVNode(NButton, {
|
|
384
384
|
text: !0,
|
|
385
385
|
type: e.fixed === "left" ? "primary" : void 0,
|
|
386
|
-
onClick: () =>
|
|
386
|
+
onClick: () => t("update-fixed", e.fixed === "left" ? !1 : "left")
|
|
387
387
|
}, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(ILeft2, null, null)] })] }), createVNode(NButton, {
|
|
388
388
|
text: !0,
|
|
389
389
|
type: e.fixed === "right" ? "primary" : void 0,
|
|
390
|
-
onClick: () =>
|
|
390
|
+
onClick: () => t("update-fixed", e.fixed === "right" ? !1 : "right")
|
|
391
391
|
}, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IRight2, null, null)] })] })] : void 0
|
|
392
392
|
] });
|
|
393
393
|
};
|
|
@@ -424,9 +424,9 @@ const DataCustom = /* @__PURE__ */ defineComponent({
|
|
|
424
424
|
type: String,
|
|
425
425
|
default: "disabled"
|
|
426
426
|
},
|
|
427
|
-
|
|
427
|
+
visibleField: {
|
|
428
428
|
type: String,
|
|
429
|
-
default: "
|
|
429
|
+
default: "visible"
|
|
430
430
|
},
|
|
431
431
|
tooltip: [String, Object],
|
|
432
432
|
size: {
|
|
@@ -436,24 +436,24 @@ const DataCustom = /* @__PURE__ */ defineComponent({
|
|
|
436
436
|
type: { type: String }
|
|
437
437
|
},
|
|
438
438
|
emits: { custom: () => !0 },
|
|
439
|
-
setup(
|
|
440
|
-
let { t:
|
|
441
|
-
function
|
|
442
|
-
|
|
443
|
-
key: e[
|
|
444
|
-
[
|
|
439
|
+
setup(t, { emit: n }) {
|
|
440
|
+
let { t: r } = useI18n();
|
|
441
|
+
function i(e, r, i) {
|
|
442
|
+
n("custom", {
|
|
443
|
+
key: e[t.keyField],
|
|
444
|
+
[r]: i
|
|
445
445
|
});
|
|
446
446
|
}
|
|
447
|
-
let
|
|
448
|
-
return watch(
|
|
447
|
+
let a = ref();
|
|
448
|
+
return watch(a, (e) => {
|
|
449
449
|
e.$el && Sortable.create(e.$el, {
|
|
450
450
|
animation: 150,
|
|
451
451
|
ghostClass: "ghost",
|
|
452
452
|
handle: ".icon-drag",
|
|
453
453
|
filter: ".disabled",
|
|
454
454
|
onEnd(e) {
|
|
455
|
-
let
|
|
456
|
-
|
|
455
|
+
let r = t.data.map((e) => e[t.keyField]), [i] = r.splice(e.oldIndex, 1);
|
|
456
|
+
r.splice(e.newIndex, 0, i), n("custom", r);
|
|
457
457
|
}
|
|
458
458
|
});
|
|
459
459
|
}), () => createVNode(NPopover, {
|
|
@@ -465,27 +465,27 @@ const DataCustom = /* @__PURE__ */ defineComponent({
|
|
|
465
465
|
}, {
|
|
466
466
|
trigger: () => withDirectives(createVNode(NButton, {
|
|
467
467
|
text: !0,
|
|
468
|
-
type:
|
|
469
|
-
}, { default: () => [createVNode(NIcon, { size:
|
|
468
|
+
type: t.type
|
|
469
|
+
}, { default: () => [createVNode(NIcon, { size: t.size }, { default: () => [createVNode(ICustom, null, null)] })] }), [[vTooltip, t.tooltip ?? r("common.page.custom.tooltip")]]),
|
|
470
470
|
default: () => {
|
|
471
|
-
let e,
|
|
472
|
-
return createVNode(NFlex, { vertical: !0 }, { default: () => [createVNode(NFlex, { justify: "space-between" }, { default: () => [createVNode("div", { style: "font-weight: bold" }, [
|
|
471
|
+
let e, o;
|
|
472
|
+
return createVNode(NFlex, { vertical: !0 }, { default: () => [createVNode(NFlex, { justify: "space-between" }, { default: () => [createVNode("div", { style: "font-weight: bold" }, [t.tooltip ?? r("common.page.custom.tooltip")]), createVNode(NButton, {
|
|
473
473
|
text: !0,
|
|
474
474
|
type: "primary",
|
|
475
475
|
size: "small",
|
|
476
|
-
onClick: () =>
|
|
477
|
-
}, _isSlot$7(e =
|
|
478
|
-
ref:
|
|
476
|
+
onClick: () => n("custom", !0)
|
|
477
|
+
}, _isSlot$7(e = r("common.page.custom.reset")) ? e : { default: () => [e] })] }), createVNode(NFlex, {
|
|
478
|
+
ref: a,
|
|
479
479
|
vertical: !0
|
|
480
|
-
}, _isSlot$7(
|
|
481
|
-
key: e[
|
|
482
|
-
label: e[
|
|
483
|
-
hidden: e[
|
|
484
|
-
fixed: e[
|
|
485
|
-
showFixed:
|
|
486
|
-
onUpdateHidden: (
|
|
487
|
-
onUpdateFixed: (
|
|
488
|
-
}, null))) ?
|
|
480
|
+
}, _isSlot$7(o = t.data.filter((e) => e[t.visibleField] !== !1).map((e) => createVNode(DataCustomItem, {
|
|
481
|
+
key: e[t.keyField],
|
|
482
|
+
label: e[t.labelField],
|
|
483
|
+
hidden: e[t.hiddenField],
|
|
484
|
+
fixed: e[t.fixedField],
|
|
485
|
+
showFixed: t.showFixed,
|
|
486
|
+
onUpdateHidden: (t) => i(e, "hidden", t),
|
|
487
|
+
onUpdateFixed: (t) => i(e, "fixed", t)
|
|
488
|
+
}, null))) ? o : { default: () => [o] })] });
|
|
489
489
|
}
|
|
490
490
|
});
|
|
491
491
|
}
|
|
@@ -493,31 +493,31 @@ const DataCustom = /* @__PURE__ */ defineComponent({
|
|
|
493
493
|
function _isSlot$6(e) {
|
|
494
494
|
return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
|
|
495
495
|
}
|
|
496
|
-
function renderLabel(e,
|
|
497
|
-
return typeof e == "function" ? e(
|
|
496
|
+
function renderLabel(e, t) {
|
|
497
|
+
return typeof e == "function" ? e(t) : e;
|
|
498
498
|
}
|
|
499
|
-
function renderAnchorLink(e,
|
|
499
|
+
function renderAnchorLink(e, t) {
|
|
500
500
|
return e.isGroup ? (e.__children ??= e.children?.filter((e) => e.isGroup) ?? [], createVNode(NAnchorLink, { href: `#${e.prop}` }, {
|
|
501
|
-
title: () => renderLabel(e.label,
|
|
502
|
-
default: e.__children?.length ? () => e.__children.map((e) => renderAnchorLink(e,
|
|
501
|
+
title: () => renderLabel(e.label, t),
|
|
502
|
+
default: e.__children?.length ? () => e.__children.map((e) => renderAnchorLink(e, t)) : void 0
|
|
503
503
|
})) : null;
|
|
504
504
|
}
|
|
505
|
-
function getSpan(e,
|
|
506
|
-
return typeof e == "function" ? e(
|
|
505
|
+
function getSpan(e, t, n) {
|
|
506
|
+
return typeof e == "function" ? e(t, n) : e;
|
|
507
507
|
}
|
|
508
|
-
function renderItem(e,
|
|
508
|
+
function renderItem(e, t, n, r) {
|
|
509
509
|
return e.isGroup ? createVNode("div", {
|
|
510
510
|
key: e.prop,
|
|
511
|
-
class: `${
|
|
511
|
+
class: `${r}__group`,
|
|
512
512
|
id: e.prop
|
|
513
|
-
}, [createVNode("div", { class: `${
|
|
513
|
+
}, [createVNode("div", { class: `${r}__title` }, [renderLabel(e.label, n)]), createVNode("div", { class: `${r}__wrapper` }, [e.children?.map((e) => renderItem(e, t, n, r))])]) : createVNode("div", {
|
|
514
514
|
key: e.prop,
|
|
515
|
-
class: `${
|
|
515
|
+
class: `${r}__item`,
|
|
516
516
|
style: {
|
|
517
|
-
"--descriptions-col-span": getSpan(e.colSpan,
|
|
518
|
-
"--descriptions-row-span": getSpan(e.rowSpan,
|
|
517
|
+
"--descriptions-col-span": getSpan(e.colSpan, t, n) ?? 1,
|
|
518
|
+
"--descriptions-row-span": getSpan(e.rowSpan, t, n) ?? 1
|
|
519
519
|
}
|
|
520
|
-
}, [e.label ? createVNode("div", { class: `${
|
|
520
|
+
}, [e.label ? createVNode("div", { class: `${r}__label` }, [renderLabel(e.label, n)]) : void 0, createVNode("div", { class: `${r}__content` }, [(n ? e.render ? e.render(n) : n[e.prop] : void 0) ?? createVNode("span", { class: `${r}__nothing` }, [createTextVNode("--")])])]);
|
|
521
521
|
}
|
|
522
522
|
const DataDescriptions = /* @__PURE__ */ defineComponent({
|
|
523
523
|
name: "DataDescriptions",
|
|
@@ -538,29 +538,29 @@ const DataDescriptions = /* @__PURE__ */ defineComponent({
|
|
|
538
538
|
}
|
|
539
539
|
},
|
|
540
540
|
setup(e) {
|
|
541
|
-
let
|
|
542
|
-
useStyle("-data-descriptions", style$1,
|
|
543
|
-
let
|
|
541
|
+
let r = useMergedClsPrefix(), i = `${r.value}-data-descriptions`;
|
|
542
|
+
useStyle("-data-descriptions", style$1, r);
|
|
543
|
+
let a = ref();
|
|
544
544
|
watch(() => e.items, () => {
|
|
545
|
-
location.hash && until(
|
|
545
|
+
location.hash && until(a).toBeTruthy().then((e) => {
|
|
546
546
|
e.scrollTo(location.hash);
|
|
547
547
|
});
|
|
548
548
|
}, { immediate: !0 });
|
|
549
|
-
let
|
|
550
|
-
ref:
|
|
551
|
-
class: `${
|
|
549
|
+
let o = computed(() => ({ "--descriptions-cols": e.cols })), s = computed(() => mergeProps({
|
|
550
|
+
ref: a,
|
|
551
|
+
class: `${i}__anchor`,
|
|
552
552
|
showBackground: !1,
|
|
553
553
|
affix: !0
|
|
554
554
|
}, e.anchor && typeof e.anchor == "object" ? e.anchor : {}));
|
|
555
555
|
return () => {
|
|
556
|
-
let
|
|
556
|
+
let t, { cols: n, title: r, data: a, items: l, anchor: u } = e, d = isNullish(r) ? void 0 : createVNode("div", { class: `${i}__header` }, [typeof r == "string" ? createVNode("span", null, [r]) : r(a ?? void 0)]), f = l.filter((e) => !e.hiddden).map((e) => renderItem(e, n, a, i)), m = u === !1 ? void 0 : createVNode(NAnchor, s.value, _isSlot$6(t = l.map((e) => h(renderAnchorLink(e, a), { key: e.prop }))) ? t : { default: () => [t] });
|
|
557
557
|
return createVNode("div", {
|
|
558
|
-
class:
|
|
559
|
-
style:
|
|
558
|
+
class: i,
|
|
559
|
+
style: o.value
|
|
560
560
|
}, [
|
|
561
|
-
|
|
562
|
-
createVNode("div", { class: `${
|
|
563
|
-
|
|
561
|
+
d,
|
|
562
|
+
createVNode("div", { class: `${i}__wrapper` }, [f]),
|
|
563
|
+
m
|
|
564
564
|
]);
|
|
565
565
|
};
|
|
566
566
|
}
|
|
@@ -681,43 +681,43 @@ const dataFormActionsProps = {
|
|
|
681
681
|
"reset",
|
|
682
682
|
"cancel"
|
|
683
683
|
],
|
|
684
|
-
setup(
|
|
685
|
-
let { t:
|
|
686
|
-
|
|
687
|
-
},
|
|
688
|
-
|
|
689
|
-
},
|
|
690
|
-
|
|
691
|
-
}, { mergedDisabledRef:
|
|
684
|
+
setup(t, { emit: n, slots: r }) {
|
|
685
|
+
let { t: i } = useI18n(), a = () => {
|
|
686
|
+
n("submit");
|
|
687
|
+
}, o = () => {
|
|
688
|
+
n("reset");
|
|
689
|
+
}, s = () => {
|
|
690
|
+
n("cancel");
|
|
691
|
+
}, { mergedDisabledRef: l, mergedSizeRef: u } = useFormItem(t);
|
|
692
692
|
return () => {
|
|
693
|
-
let e =
|
|
694
|
-
return createVNode(NFlex, { size:
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
attrType:
|
|
693
|
+
let e = u.value, n = l.value, { gap: d = e === "small" ? 8 : e === "medium" ? 12 : 16, submitText: f, resetText: p, cancelText: m, submitDisabled: g, submitLoading: _, showSubmitBtn: v, showResetBtn: y, showCancelBtn: b, succeeded: x, successText: S = f, failureText: C = f, nativeButtonType: w } = t;
|
|
694
|
+
return createVNode(NFlex, { size: d === void 0 ? e : d }, { default: () => [
|
|
695
|
+
r.prefix?.(),
|
|
696
|
+
v === !1 ? void 0 : createVNode(NButton, {
|
|
697
|
+
attrType: w ? "submit" : "button",
|
|
698
698
|
size: e,
|
|
699
|
-
type:
|
|
700
|
-
disabled:
|
|
701
|
-
loading:
|
|
702
|
-
onClick:
|
|
699
|
+
type: x ? "success" : x === !1 ? "error" : "primary",
|
|
700
|
+
disabled: x !== void 0 || n || g || _,
|
|
701
|
+
loading: _,
|
|
702
|
+
onClick: w ? void 0 : a
|
|
703
703
|
}, {
|
|
704
|
-
default: () => (
|
|
705
|
-
icon: () =>
|
|
704
|
+
default: () => (x ? S : x === !1 ? C : f) || i("common.page.form.submitText"),
|
|
705
|
+
icon: () => x ? createVNode(NIcon, null, { default: () => [createVNode(ICheck, null, null)] }) : x === !1 ? createVNode(NIcon, null, { default: () => [createVNode(IClose, null, null)] }) : void 0
|
|
706
706
|
}),
|
|
707
|
-
|
|
708
|
-
size:
|
|
709
|
-
attrType:
|
|
710
|
-
disabled:
|
|
711
|
-
type:
|
|
712
|
-
secondary:
|
|
713
|
-
onClick:
|
|
714
|
-
}, { default: () => [
|
|
715
|
-
|
|
707
|
+
y === !1 ? void 0 : createVNode(NButton, {
|
|
708
|
+
size: u.value,
|
|
709
|
+
attrType: w ? "reset" : "button",
|
|
710
|
+
disabled: n || _ || x,
|
|
711
|
+
type: b ? "primary" : "default",
|
|
712
|
+
secondary: b,
|
|
713
|
+
onClick: w ? void 0 : o
|
|
714
|
+
}, { default: () => [p || i("common.page.form.resetText")] }),
|
|
715
|
+
b === !1 || x ? void 0 : createVNode(NButton, {
|
|
716
716
|
attrType: "button",
|
|
717
|
-
disabled:
|
|
718
|
-
onClick:
|
|
719
|
-
}, { default: () => [
|
|
720
|
-
|
|
717
|
+
disabled: n || _,
|
|
718
|
+
onClick: s
|
|
719
|
+
}, { default: () => [m || i("common.page.form.cancelText")] }),
|
|
720
|
+
r.suffix?.()
|
|
721
721
|
] });
|
|
722
722
|
};
|
|
723
723
|
}
|
|
@@ -783,114 +783,103 @@ const DataForm = /* @__PURE__ */ defineComponent({
|
|
|
783
783
|
"reset",
|
|
784
784
|
"cancel"
|
|
785
785
|
],
|
|
786
|
-
setup(e, { emit:
|
|
787
|
-
let
|
|
788
|
-
|
|
789
|
-
},
|
|
790
|
-
e?.preventDefault?.(),
|
|
791
|
-
},
|
|
792
|
-
e?.preventDefault?.(),
|
|
793
|
-
},
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
786
|
+
setup(e, { emit: t, slots: n }) {
|
|
787
|
+
let r = (n) => {
|
|
788
|
+
n?.preventDefault?.(), t("submit", { ...toRaw(e.model) }, n);
|
|
789
|
+
}, i = (e) => {
|
|
790
|
+
e?.preventDefault?.(), t("reset");
|
|
791
|
+
}, a = (e) => {
|
|
792
|
+
e?.preventDefault?.(), t("cancel");
|
|
793
|
+
}, o = ref(), s = ({ overflow: t }) => {
|
|
794
|
+
if (n.action) return n.action({
|
|
795
|
+
overflow: t,
|
|
796
|
+
grid: o.value
|
|
797
797
|
});
|
|
798
|
-
|
|
799
|
-
immediate: !0,
|
|
800
|
-
debounce: 1e3 / 20
|
|
801
|
-
});
|
|
802
|
-
let j = 0, M = ({ overflow: x }) => {
|
|
803
|
-
if (S.action) return S.action({
|
|
804
|
-
cols: D.value,
|
|
805
|
-
spans: j,
|
|
806
|
-
overflow: x
|
|
807
|
-
});
|
|
808
|
-
let { loading: C, showSubmitBtn: w, showResetBtn: E, showCancelBtn: O, actionAlign: k, actionJustify: A, actionGap: M, submitDisabled: N, submitText: P, resetText: F, cancelText: I, succeeded: L, successText: R, failureText: z } = e;
|
|
798
|
+
let { loading: r, showSubmitBtn: i, showResetBtn: s, showCancelBtn: l, actionAlign: u, actionJustify: d, actionGap: f, submitDisabled: p, submitText: m, resetText: g, cancelText: _, succeeded: v, successText: y, failureText: b } = e;
|
|
809
799
|
return createVNode(NFormItem, {
|
|
810
|
-
label:
|
|
800
|
+
label: d === "start" ? " " : void 0,
|
|
811
801
|
showLabel: e.labelPlacement !== "top",
|
|
812
802
|
style: "padding-top: 16px"
|
|
813
803
|
}, { default: () => [createVNode(DataFormActions, {
|
|
814
|
-
align:
|
|
815
|
-
justify:
|
|
816
|
-
gap:
|
|
817
|
-
showSubmitBtn:
|
|
818
|
-
showResetBtn:
|
|
819
|
-
showCancelBtn:
|
|
820
|
-
submitText:
|
|
821
|
-
resetText:
|
|
822
|
-
cancelText:
|
|
823
|
-
submitDisabled:
|
|
824
|
-
submitLoading:
|
|
825
|
-
succeeded:
|
|
826
|
-
successText:
|
|
827
|
-
failureText:
|
|
804
|
+
align: u,
|
|
805
|
+
justify: d,
|
|
806
|
+
gap: f,
|
|
807
|
+
showSubmitBtn: i,
|
|
808
|
+
showResetBtn: s,
|
|
809
|
+
showCancelBtn: l,
|
|
810
|
+
submitText: m,
|
|
811
|
+
resetText: g,
|
|
812
|
+
cancelText: _,
|
|
813
|
+
submitDisabled: p,
|
|
814
|
+
submitLoading: r,
|
|
815
|
+
succeeded: v,
|
|
816
|
+
successText: y,
|
|
817
|
+
failureText: b,
|
|
828
818
|
nativeButtonType: !0,
|
|
829
|
-
onCancel:
|
|
819
|
+
onCancel: a
|
|
830
820
|
}, {
|
|
831
|
-
prefix: () =>
|
|
832
|
-
suffix: () =>
|
|
821
|
+
prefix: () => n.actionPrefix?.(),
|
|
822
|
+
suffix: () => n.actionSuffix?.()
|
|
833
823
|
})] });
|
|
834
|
-
},
|
|
835
|
-
let { items:
|
|
836
|
-
return
|
|
837
|
-
if (
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
}, z), {
|
|
824
|
+
}, u = () => {
|
|
825
|
+
let { items: t, validation: r, showAction: i } = e;
|
|
826
|
+
return createVNode(Fragment, null, [t.map(({ hidden: t, name: n, render: i, label: a, showColon: o, span: s = 6, rowSpan: l, offset: u = 0, tooltip: f, tooltipPlacement: p = e.tooltipPlacement, validationStatus: m = r[n]?.errors?.length ? "error" : r[n]?.warnings?.length ? "warnings" : r[n] ? "success" : void 0, readonly: g = e.readonly, showRequireMark: _ = !g, showTooltipWhenReadonly: y = !1, ...b }) => {
|
|
827
|
+
if (t) return;
|
|
828
|
+
let x;
|
|
829
|
+
return x = n[0] === "$" ? i({}) : createVNode(NFormItem, mergeProps({
|
|
830
|
+
path: n,
|
|
831
|
+
validationStatus: m,
|
|
832
|
+
showRequireMark: b.required && _
|
|
833
|
+
}, b), {
|
|
845
834
|
label: () => createVNode(NText, {
|
|
846
835
|
depth: e.readonly ? 3 : 2,
|
|
847
836
|
style: "display: inline-flex; align-items: flex-start; gap: 1px"
|
|
848
837
|
}, { default: () => [
|
|
849
|
-
createVNode("span", null, [toValue(
|
|
850
|
-
|
|
851
|
-
default: () => toValue(
|
|
838
|
+
createVNode("span", null, [toValue(a)]),
|
|
839
|
+
p === "icon" ? createVNode(NTooltip, null, {
|
|
840
|
+
default: () => toValue(f),
|
|
852
841
|
trigger: () => createVNode(NButton, {
|
|
853
842
|
text: !0,
|
|
854
843
|
style: "font-size: 1.25em; opacity: 0.8"
|
|
855
844
|
}, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IHelp, null, null)] })] })
|
|
856
845
|
}) : void 0,
|
|
857
|
-
e.showColon &&
|
|
846
|
+
e.showColon && o !== !1 ? createVNode("span", { style: "place-self: center" }, [createTextVNode(":")]) : void 0
|
|
858
847
|
] }),
|
|
859
848
|
default: () => {
|
|
860
|
-
let
|
|
849
|
+
let t, n = createVNode("div", { style: "width: 100%; font-size: calc(1rem - 2px); min-height: 32px; display: flex; align-items: center" }, [i({
|
|
861
850
|
disabled: e.disabled,
|
|
862
851
|
size: e.size,
|
|
863
852
|
readonly: e.readonly
|
|
864
853
|
})]);
|
|
865
|
-
return
|
|
854
|
+
return f && p === "bottom" && (!e.readonly || y) ? createVNode("div", { style: "width: 100%; display: flex; flex-direction: column" }, [n, createVNode(NText, {
|
|
866
855
|
depth: 3,
|
|
867
856
|
style: "font-size: calc(1rem - 3px); margin-top: 6px"
|
|
868
|
-
}, _isSlot$5(
|
|
857
|
+
}, _isSlot$5(t = toValue(f)) ? t : { default: () => [t] })]) : n;
|
|
869
858
|
},
|
|
870
|
-
feedback: () =>
|
|
871
|
-
}), e.grid === !1 ?
|
|
872
|
-
key:
|
|
873
|
-
offset:
|
|
874
|
-
span:
|
|
875
|
-
style:
|
|
876
|
-
}, _isSlot$5(
|
|
877
|
-
}),
|
|
859
|
+
feedback: () => r[n]?.errors?.[0] ?? r[n]?.warnings?.[0]
|
|
860
|
+
}), e.grid === !1 ? x : createVNode(NGi, {
|
|
861
|
+
key: n,
|
|
862
|
+
offset: u,
|
|
863
|
+
span: s,
|
|
864
|
+
style: l ? { gridRowEnd: `span ${l}` } : void 0
|
|
865
|
+
}, _isSlot$5(x) ? x : { default: () => [x] });
|
|
866
|
+
}), i === !1 || e.readonly === !0 && !n.action ? void 0 : createVNode(NGi, mergeProps({
|
|
878
867
|
key: "action",
|
|
879
868
|
span: 2 ** 53 - 1
|
|
880
|
-
}, typeof e.showAction == "object" ? e.showAction : {}), { default:
|
|
869
|
+
}, typeof e.showAction == "object" ? e.showAction : {}), { default: s })]);
|
|
881
870
|
};
|
|
882
871
|
return () => {
|
|
883
|
-
let { items:
|
|
872
|
+
let { items: t, loading: n, validation: a, showColon: s, tooltipPlacement: l, showFeedback: d, labelWidth: f = "7.2em", labelAlign: p = e.labelPlacement === "top" ? "left" : "right", grid: m, showAction: g, showSubmitBtn: _, showResetBtn: y, showCancelBtn: b, actionAlign: x, actionJustify: S, actionGap: C, submitDisabled: w, submitText: T, resetText: E, cancelText: D, succeeded: O, successText: k, failureText: A, ...j } = e, M = !e.readonly && d !== !1;
|
|
884
873
|
return createVNode(NForm, mergeProps({
|
|
885
|
-
labelWidth:
|
|
886
|
-
labelAlign:
|
|
887
|
-
onReset:
|
|
888
|
-
onSubmit:
|
|
889
|
-
showFeedback:
|
|
890
|
-
},
|
|
891
|
-
ref:
|
|
874
|
+
labelWidth: f,
|
|
875
|
+
labelAlign: p,
|
|
876
|
+
onReset: i,
|
|
877
|
+
onSubmit: r,
|
|
878
|
+
showFeedback: M
|
|
879
|
+
}, j), { default: () => [createVNode(NGrid, mergeProps({
|
|
880
|
+
ref: o,
|
|
892
881
|
itemResponsive: !0
|
|
893
|
-
},
|
|
882
|
+
}, m, { yGap: M ? 0 : m?.yGap ?? 24 }), { default: u })] });
|
|
894
883
|
};
|
|
895
884
|
}
|
|
896
885
|
}), DataFilter = /* @__PURE__ */ defineComponent({
|
|
@@ -945,7 +934,8 @@ const DataForm = /* @__PURE__ */ defineComponent({
|
|
|
945
934
|
type: Boolean,
|
|
946
935
|
required: !1,
|
|
947
936
|
default: !0
|
|
948
|
-
}
|
|
937
|
+
},
|
|
938
|
+
collapsedRows: Number
|
|
949
939
|
},
|
|
950
940
|
emits: [
|
|
951
941
|
"filter",
|
|
@@ -953,94 +943,95 @@ const DataForm = /* @__PURE__ */ defineComponent({
|
|
|
953
943
|
"custom",
|
|
954
944
|
"collapse"
|
|
955
945
|
],
|
|
956
|
-
setup(
|
|
957
|
-
let { t:
|
|
958
|
-
|
|
959
|
-
},
|
|
960
|
-
|
|
961
|
-
},
|
|
962
|
-
|
|
946
|
+
setup(t, { expose: n, emit: r }) {
|
|
947
|
+
let { t: i } = useI18n(), a = (e) => {
|
|
948
|
+
r("filter", t.model, e);
|
|
949
|
+
}, o = (e) => {
|
|
950
|
+
r("reset", e), t.filterOnReset && r("filter", t.model, e);
|
|
951
|
+
}, s = ref(t.defaultCollapsed), l = (e) => {
|
|
952
|
+
s.value = e;
|
|
963
953
|
};
|
|
964
|
-
|
|
965
|
-
let
|
|
954
|
+
n({ collapse: l });
|
|
955
|
+
let u = reactive({
|
|
966
956
|
span: 6,
|
|
967
957
|
suffix: !0
|
|
968
958
|
});
|
|
969
959
|
return () => {
|
|
970
|
-
let { filterOnReset: e, filterText:
|
|
960
|
+
let { filterOnReset: e, filterText: n, resetText: f, customizable: p, defaultCollapsed: m, collapsible: g, grid: _, collapsedRows: b, ...x } = t;
|
|
971
961
|
return createVNode(DataForm, mergeProps({ grid: {
|
|
972
962
|
cols: "12 768:18 1280:24 1536:30",
|
|
973
963
|
yGap: 20,
|
|
974
964
|
xGap: 8,
|
|
975
|
-
...
|
|
976
|
-
collapsed:
|
|
977
|
-
|
|
965
|
+
..._,
|
|
966
|
+
collapsed: s.value,
|
|
967
|
+
collapsedRows: b
|
|
968
|
+
} }, x, {
|
|
978
969
|
showFeedback: !1,
|
|
979
|
-
showAction:
|
|
980
|
-
onSubmit:
|
|
981
|
-
onReset:
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
}, {
|
|
986
|
-
|
|
970
|
+
showAction: u,
|
|
971
|
+
onSubmit: a,
|
|
972
|
+
onReset: o,
|
|
973
|
+
style: "position: relative"
|
|
974
|
+
}), { action: ({ grid: e }) => (nextTick(() => {
|
|
975
|
+
u.suffix = e?.collapsedOverflow || e?.contentEl.children.item(e?.contentEl.children.length - 1).offsetTop > 0;
|
|
976
|
+
}), createVNode("div", { style: "display: flex; gap: 12px; align-items: center; justify-content: " + (u.suffix ? "flex-end" : "flex-start") }, [
|
|
977
|
+
u.suffix ? void 0 : createVNode("span", null, [createTextVNode("\xA0\xA0\xA0\xA0")]),
|
|
987
978
|
createVNode(NButton, {
|
|
988
979
|
attrType: "submit",
|
|
989
980
|
type: "primary",
|
|
990
|
-
disabled:
|
|
991
|
-
loading:
|
|
992
|
-
}, { default: () => [
|
|
981
|
+
disabled: t.disabled,
|
|
982
|
+
loading: t.loading
|
|
983
|
+
}, { default: () => [n || i("common.page.filter.submitText")] }),
|
|
993
984
|
createVNode(NButton, {
|
|
994
985
|
attrType: "reset",
|
|
995
|
-
disabled:
|
|
996
|
-
}, { default: () => [
|
|
997
|
-
|
|
986
|
+
disabled: t.disabled || t.loading
|
|
987
|
+
}, { default: () => [f || i("common.page.form.resetText")] }),
|
|
988
|
+
p ? createVNode(DataCustom, {
|
|
998
989
|
keyField: "name",
|
|
999
990
|
showFixed: !1,
|
|
1000
|
-
data:
|
|
991
|
+
data: x.items,
|
|
1001
992
|
size: 18,
|
|
1002
993
|
type: "primary",
|
|
1003
|
-
onCustom: (e) =>
|
|
994
|
+
onCustom: (e) => r("custom", e)
|
|
1004
995
|
}, null) : void 0,
|
|
1005
|
-
|
|
996
|
+
g && e?.collapsedOverflow ? createVNode(NButton, {
|
|
1006
997
|
text: !0,
|
|
1007
998
|
type: "primary",
|
|
1008
999
|
iconPlacement: "right",
|
|
1009
|
-
renderIcon:
|
|
1010
|
-
onClick: () =>
|
|
1011
|
-
}, { default: () => [
|
|
1012
|
-
]
|
|
1000
|
+
renderIcon: s.value ? IDown : IUp,
|
|
1001
|
+
onClick: () => l(!s.value)
|
|
1002
|
+
}, { default: () => [s.value ? i("common.page.filter.expand") : i("common.page.filter.collapse")] }) : void 0
|
|
1003
|
+
])) });
|
|
1013
1004
|
};
|
|
1014
1005
|
}
|
|
1015
1006
|
});
|
|
1016
1007
|
function _isSlot$4(e) {
|
|
1017
1008
|
return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
|
|
1018
1009
|
}
|
|
1019
|
-
function useLocaleEdit(
|
|
1020
|
-
let { t:
|
|
1021
|
-
title:
|
|
1010
|
+
function useLocaleEdit(t, n, r = 1) {
|
|
1011
|
+
let { t: i } = useI18n(), a = ref(!1), o = [], { open: s, reinit: l } = useFormModal({
|
|
1012
|
+
title: t,
|
|
1022
1013
|
showColon: !0,
|
|
1023
|
-
submitText:
|
|
1024
|
-
items: ({ it: e }) =>
|
|
1014
|
+
submitText: i("common.confirm.defaultOk"),
|
|
1015
|
+
items: ({ it: e }) => o.map((t) => e(t.value, t.label, "input", {
|
|
1025
1016
|
span: 24,
|
|
1026
|
-
required:
|
|
1017
|
+
required: t.required,
|
|
1027
1018
|
inputProps: {
|
|
1028
|
-
readonly:
|
|
1019
|
+
readonly: a,
|
|
1029
1020
|
clearable: !0,
|
|
1030
1021
|
type: "textarea",
|
|
1031
1022
|
showCount: !0,
|
|
1032
1023
|
autosize: {
|
|
1033
|
-
minRows: unref(
|
|
1034
|
-
maxRows: Math.max(unref(
|
|
1024
|
+
minRows: unref(r),
|
|
1025
|
+
maxRows: Math.max(unref(r), 5)
|
|
1035
1026
|
}
|
|
1036
1027
|
}
|
|
1037
1028
|
})),
|
|
1038
|
-
onSubmit:
|
|
1029
|
+
onSubmit: n
|
|
1039
1030
|
});
|
|
1040
1031
|
return {
|
|
1041
|
-
open: (e,
|
|
1032
|
+
open: (e, t = !1) => (a.value = t, s(e)),
|
|
1042
1033
|
setSupports: (e) => {
|
|
1043
|
-
|
|
1034
|
+
o = e, l();
|
|
1044
1035
|
}
|
|
1045
1036
|
};
|
|
1046
1037
|
}
|
|
@@ -1085,102 +1076,102 @@ const DataLocaleInput = /* @__PURE__ */ defineComponent({
|
|
|
1085
1076
|
}
|
|
1086
1077
|
},
|
|
1087
1078
|
emits: ["update:modelValue", "updateModelValue"],
|
|
1088
|
-
setup(e, { emit:
|
|
1089
|
-
let
|
|
1090
|
-
|
|
1079
|
+
setup(e, { emit: t }) {
|
|
1080
|
+
let n = (n, r = e.showLang ?? e.defaultLang) => {
|
|
1081
|
+
n = {
|
|
1091
1082
|
...e.modelValue,
|
|
1092
|
-
[
|
|
1093
|
-
},
|
|
1094
|
-
}, { open:
|
|
1095
|
-
|
|
1096
|
-
}, toRef(e, "defaultRows")),
|
|
1083
|
+
[r]: n
|
|
1084
|
+
}, t("update:modelValue", n), t("updateModelValue", n);
|
|
1085
|
+
}, { open: r, setSupports: i } = useLocaleEdit(computed(() => toValue(e.label)), (e) => {
|
|
1086
|
+
t("update:modelValue", e), t("updateModelValue", e);
|
|
1087
|
+
}, toRef(e, "defaultRows")), a = ref(e.defaultExpanded);
|
|
1097
1088
|
watch(() => e.defaultExpanded, (e) => {
|
|
1098
|
-
|
|
1089
|
+
a.value = e;
|
|
1099
1090
|
});
|
|
1100
|
-
let
|
|
1091
|
+
let o = () => createVNode(NButton, {
|
|
1101
1092
|
quaternary: !0,
|
|
1102
1093
|
onClick: () => {
|
|
1103
|
-
|
|
1094
|
+
a.value = !a.value;
|
|
1104
1095
|
},
|
|
1105
1096
|
style: "--n-padding: 0 8px"
|
|
1106
1097
|
}, { default: () => [createVNode(NIcon, {
|
|
1107
1098
|
size: "20",
|
|
1108
1099
|
depth: "3"
|
|
1109
|
-
}, { default: () => [
|
|
1110
|
-
let
|
|
1111
|
-
return e.supports.some((e) => e.value !==
|
|
1112
|
-
},
|
|
1100
|
+
}, { default: () => [a.value ? createVNode(ILangCollapse, null, null) : createVNode(ILangExpand, null, null)] })] }), l = (t) => {
|
|
1101
|
+
let n = t.split("-")[0];
|
|
1102
|
+
return e.supports.some((e) => e.value !== t && e.value.startsWith(n)) ? t : n;
|
|
1103
|
+
}, d = `__slots${nanoid(6)}`;
|
|
1113
1104
|
watch(() => e.supports, (e) => {
|
|
1114
|
-
|
|
1115
|
-
let
|
|
1116
|
-
for (let [
|
|
1117
|
-
let e =
|
|
1118
|
-
|
|
1105
|
+
i(e);
|
|
1106
|
+
let t = 0;
|
|
1107
|
+
for (let [n, r] of e.entries()) {
|
|
1108
|
+
let e = l(r.value);
|
|
1109
|
+
t = Math.max(t, measureText(e, "monospace")), r[d] = markRaw({
|
|
1119
1110
|
prefix: () => createVNode("div", { style: {
|
|
1120
|
-
width: `${
|
|
1111
|
+
width: `${t + 4}px`,
|
|
1121
1112
|
height: "100%",
|
|
1122
1113
|
opacity: .5,
|
|
1123
1114
|
fontSize: "12px",
|
|
1124
1115
|
fontFamily: "monospace",
|
|
1125
|
-
color:
|
|
1116
|
+
color: r.required ? "var(--color-danger)" : void 0
|
|
1126
1117
|
} }, [e]),
|
|
1127
|
-
suffix:
|
|
1118
|
+
suffix: n === 0 ? o : void 0
|
|
1128
1119
|
});
|
|
1129
1120
|
}
|
|
1130
1121
|
}, { immediate: !0 });
|
|
1131
|
-
let
|
|
1132
|
-
let
|
|
1133
|
-
return [
|
|
1134
|
-
}),
|
|
1122
|
+
let f = computed(() => {
|
|
1123
|
+
let t = l(e.showLang ?? e.defaultLang);
|
|
1124
|
+
return [t, measureText(t, "monospace")];
|
|
1125
|
+
}), p = {
|
|
1135
1126
|
prefix: () => createVNode("div", { style: {
|
|
1136
|
-
width: `${
|
|
1127
|
+
width: `${f.value[1] + 4}px`,
|
|
1137
1128
|
height: "100%",
|
|
1138
1129
|
opacity: .5,
|
|
1139
1130
|
fontSize: "12px",
|
|
1140
1131
|
fontFamily: "monospace"
|
|
1141
|
-
} }, [
|
|
1132
|
+
} }, [f.value[0]]),
|
|
1142
1133
|
suffix: () => createVNode(NButton, {
|
|
1143
1134
|
quaternary: !0,
|
|
1144
|
-
onClick: () =>
|
|
1135
|
+
onClick: () => r(e.modelValue, e.disabled),
|
|
1145
1136
|
style: "--n-padding: 0 8px"
|
|
1146
1137
|
}, { default: () => [createVNode(NIcon, {
|
|
1147
1138
|
size: "20",
|
|
1148
1139
|
depth: "3"
|
|
1149
1140
|
}, { default: () => [createVNode(ILanguage, null, null)] })] })
|
|
1150
|
-
},
|
|
1141
|
+
}, m = { "--n-padding-right": "0" };
|
|
1151
1142
|
return () => {
|
|
1152
|
-
let
|
|
1143
|
+
let t;
|
|
1153
1144
|
return e.mode === "dialog" ? createVNode(NInput, {
|
|
1154
1145
|
value: e.modelValue?.[e.showLang ?? e.defaultLang] ?? e.modelValue?.[e.defaultLang],
|
|
1155
|
-
onUpdateValue:
|
|
1146
|
+
onUpdateValue: n,
|
|
1156
1147
|
disabled: e.disabled,
|
|
1157
1148
|
clearable: !0,
|
|
1158
|
-
style:
|
|
1149
|
+
style: m,
|
|
1159
1150
|
type: e.defaultRows > 1 ? "textarea" : "text",
|
|
1160
1151
|
rows: e.defaultRows
|
|
1161
|
-
}, _isSlot$4(
|
|
1152
|
+
}, _isSlot$4(p) ? p : { default: () => [p] }) : createVNode(NFlex, {
|
|
1162
1153
|
vertical: !0,
|
|
1163
1154
|
wrap: !1,
|
|
1164
1155
|
style: "width: 100%"
|
|
1165
|
-
}, _isSlot$4(
|
|
1166
|
-
if (!
|
|
1167
|
-
let
|
|
1156
|
+
}, _isSlot$4(t = e.supports.map((t, r) => {
|
|
1157
|
+
if (!a.value && r !== 0) return;
|
|
1158
|
+
let i = r == 0;
|
|
1168
1159
|
return withDirectives(createVNode(NInput, {
|
|
1169
|
-
key:
|
|
1170
|
-
value: e.modelValue?.[
|
|
1171
|
-
onUpdateValue: (e) =>
|
|
1160
|
+
key: t.value,
|
|
1161
|
+
value: e.modelValue?.[t.value],
|
|
1162
|
+
onUpdateValue: (e) => n(e, t.value),
|
|
1172
1163
|
disabled: e.disabled,
|
|
1173
1164
|
clearable: !0,
|
|
1174
|
-
style:
|
|
1165
|
+
style: i ? m : void 0,
|
|
1175
1166
|
type: e.defaultRows > 1 ? "textarea" : "text",
|
|
1176
1167
|
rows: e.defaultRows
|
|
1177
|
-
},
|
|
1168
|
+
}, t[d]), [[
|
|
1178
1169
|
vTooltip,
|
|
1179
|
-
|
|
1170
|
+
t.label,
|
|
1180
1171
|
void 0,
|
|
1181
1172
|
{ left: !0 }
|
|
1182
1173
|
]]);
|
|
1183
|
-
})) ?
|
|
1174
|
+
})) ? t : { default: () => [t] });
|
|
1184
1175
|
};
|
|
1185
1176
|
}
|
|
1186
1177
|
}), DataPagination = /* @__PURE__ */ defineComponent({
|
|
@@ -1193,6 +1184,10 @@ const DataLocaleInput = /* @__PURE__ */ defineComponent({
|
|
|
1193
1184
|
currentPage: { type: Number },
|
|
1194
1185
|
pageSize: { type: Number },
|
|
1195
1186
|
page: { type: Object },
|
|
1187
|
+
resetPageOnSizeChange: {
|
|
1188
|
+
type: Boolean,
|
|
1189
|
+
default: !0
|
|
1190
|
+
},
|
|
1196
1191
|
pageSizes: {
|
|
1197
1192
|
type: Array,
|
|
1198
1193
|
default: () => [
|
|
@@ -1204,27 +1199,27 @@ const DataLocaleInput = /* @__PURE__ */ defineComponent({
|
|
|
1204
1199
|
}
|
|
1205
1200
|
},
|
|
1206
1201
|
emits: { change: () => !0 },
|
|
1207
|
-
setup(
|
|
1208
|
-
let { t:
|
|
1209
|
-
pageSize:
|
|
1202
|
+
setup(t, { emit: n }) {
|
|
1203
|
+
let { t: r } = useI18n(), i = (e) => n("change", {
|
|
1204
|
+
pageSize: t.pageSize ?? t.page?.pageSize ?? 0,
|
|
1210
1205
|
currentPage: e
|
|
1211
|
-
}),
|
|
1206
|
+
}), a = (e) => n("change", {
|
|
1212
1207
|
pageSize: e,
|
|
1213
|
-
currentPage:
|
|
1208
|
+
currentPage: t.resetPageOnSizeChange ? 1 : t.currentPage ?? t.page?.currentPage ?? 1
|
|
1214
1209
|
});
|
|
1215
1210
|
return () => createVNode(NPagination, {
|
|
1216
|
-
page:
|
|
1217
|
-
itemCount:
|
|
1218
|
-
pageSize:
|
|
1219
|
-
onUpdatePage:
|
|
1220
|
-
onUpdatePageSize:
|
|
1221
|
-
pageSizes:
|
|
1211
|
+
page: t.currentPage ?? t.page?.currentPage,
|
|
1212
|
+
itemCount: t.total,
|
|
1213
|
+
pageSize: t.pageSize ?? t.page?.pageSize,
|
|
1214
|
+
onUpdatePage: i,
|
|
1215
|
+
onUpdatePageSize: a,
|
|
1216
|
+
pageSizes: t.pageSizes,
|
|
1222
1217
|
showQuickJumper: !0,
|
|
1223
1218
|
showSizePicker: !0,
|
|
1224
1219
|
style: "justify-content: flex-end"
|
|
1225
1220
|
}, {
|
|
1226
|
-
prefix: () =>
|
|
1227
|
-
suffix: () =>
|
|
1221
|
+
prefix: () => r("common.page.pagination.prefix", { total: t.total }),
|
|
1222
|
+
suffix: () => r("common.page.pagination.suffix")
|
|
1228
1223
|
});
|
|
1229
1224
|
}
|
|
1230
1225
|
});
|
|
@@ -1247,28 +1242,28 @@ const DataSelection = /* @__PURE__ */ defineComponent({
|
|
|
1247
1242
|
"update:modelValue": () => !0,
|
|
1248
1243
|
clear: () => !0
|
|
1249
1244
|
},
|
|
1250
|
-
setup(
|
|
1251
|
-
let { t:
|
|
1245
|
+
setup(t, { emit: n }) {
|
|
1246
|
+
let { t: r } = useI18n();
|
|
1252
1247
|
return () => {
|
|
1253
1248
|
let e;
|
|
1254
|
-
return
|
|
1249
|
+
return t.modelValue !== "selection" && t.count === 0 ? createVNode("div", null, null) : createVNode("div", null, [createVNode(NFlex, {
|
|
1255
1250
|
align: "center",
|
|
1256
1251
|
"wrap-item": !1
|
|
1257
1252
|
}, { default: () => [
|
|
1258
|
-
createVNode("span", null, [
|
|
1253
|
+
createVNode("span", null, [r("common.page.selection.countText", { count: t.count })]),
|
|
1259
1254
|
createVNode(NButton, {
|
|
1260
1255
|
text: !0,
|
|
1261
1256
|
type: "primary",
|
|
1262
1257
|
onClick: () => {
|
|
1263
|
-
|
|
1258
|
+
n("update:modelValue", t.modelValue === "all" ? "selection" : "all");
|
|
1264
1259
|
}
|
|
1265
|
-
}, { default: () => [
|
|
1260
|
+
}, { default: () => [t.modelValue === "all" ? r("common.page.selection.view") : r("common.page.selection.back")] }),
|
|
1266
1261
|
createVNode(NButton, {
|
|
1267
1262
|
text: !0,
|
|
1268
1263
|
onClick: () => {
|
|
1269
|
-
|
|
1264
|
+
n("clear"), n("update:modelValue", "all");
|
|
1270
1265
|
}
|
|
1271
|
-
}, _isSlot$3(e =
|
|
1266
|
+
}, _isSlot$3(e = r("common.page.selection.clear")) ? e : { default: () => [e] })
|
|
1272
1267
|
] })]);
|
|
1273
1268
|
};
|
|
1274
1269
|
}
|
|
@@ -1276,13 +1271,13 @@ const DataSelection = /* @__PURE__ */ defineComponent({
|
|
|
1276
1271
|
function _isSlot$2(e) {
|
|
1277
1272
|
return typeof e == "function" || Object.prototype.toString.call(e) === "[object Object]" && !isVNode(e);
|
|
1278
1273
|
}
|
|
1279
|
-
function _map(e,
|
|
1274
|
+
function _map(e, t) {
|
|
1280
1275
|
return (e ?? []).map((e) => {
|
|
1281
|
-
let
|
|
1276
|
+
let n = {
|
|
1282
1277
|
csvTitle: e.exportTitle,
|
|
1283
1278
|
...e,
|
|
1284
1279
|
title: () => {
|
|
1285
|
-
let
|
|
1280
|
+
let t = toValue(e.title), n = t && withDirectives(createVNode("div", null, [t]), [[
|
|
1286
1281
|
vTooltip,
|
|
1287
1282
|
() => toValue(e.title),
|
|
1288
1283
|
void 0,
|
|
@@ -1293,26 +1288,26 @@ function _map(e, x) {
|
|
|
1293
1288
|
wrap: !1,
|
|
1294
1289
|
inline: !0,
|
|
1295
1290
|
style: "max-width: 100%"
|
|
1296
|
-
}, { default: () => [
|
|
1291
|
+
}, { default: () => [n, createVNode(NTooltip, null, {
|
|
1297
1292
|
default: toValue(e.tooltip),
|
|
1298
1293
|
trigger: () => createVNode(NButton, {
|
|
1299
1294
|
text: !0,
|
|
1300
1295
|
style: "font-size: 1.25em; opacity: 0.8"
|
|
1301
1296
|
}, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IHelp, null, null)] })] })
|
|
1302
|
-
})] }) :
|
|
1297
|
+
})] }) : n;
|
|
1303
1298
|
}
|
|
1304
1299
|
};
|
|
1305
|
-
if (e.children?.length)
|
|
1300
|
+
if (e.children?.length) n.children = _map(e.children, t);
|
|
1306
1301
|
else {
|
|
1307
|
-
e.hidden !== !0 && (
|
|
1308
|
-
let
|
|
1309
|
-
e.ellipsis !== !1 && (
|
|
1310
|
-
let
|
|
1311
|
-
return
|
|
1312
|
-
return
|
|
1313
|
-
})(),
|
|
1302
|
+
e.hidden !== !0 && (n.width ??= 100, t.value += Number(n.width));
|
|
1303
|
+
let r = e.render ?? ((e) => e);
|
|
1304
|
+
e.ellipsis !== !1 && (n.ellipsis = !1, n.render = (...t) => {
|
|
1305
|
+
let n = r(...t);
|
|
1306
|
+
return n && (isVNode(n) || ((function() {
|
|
1307
|
+
return n;
|
|
1308
|
+
})(), n = createVNode("span", null, [n])), withDirectives(n, [[
|
|
1314
1309
|
vTooltip,
|
|
1315
|
-
() => e.ellipsisTooltip ? e.ellipsisTooltip(...
|
|
1310
|
+
() => e.ellipsisTooltip ? e.ellipsisTooltip(...t) : n,
|
|
1316
1311
|
void 0,
|
|
1317
1312
|
{
|
|
1318
1313
|
auto: !0,
|
|
@@ -1320,14 +1315,14 @@ function _map(e, x) {
|
|
|
1320
1315
|
[`ell${e.ellipsis}`]: !0
|
|
1321
1316
|
}
|
|
1322
1317
|
]]));
|
|
1323
|
-
}, e.ellipsisTooltip === !0 && (
|
|
1318
|
+
}, e.ellipsisTooltip === !0 && (n.ellipsisTooltip = r)), Object.assign(n, {
|
|
1324
1319
|
resizable: e.resizable !== !1,
|
|
1325
1320
|
sorter: e.sortable,
|
|
1326
1321
|
type: ["selection", "expand"].includes(e.type) ? e.type : void 0,
|
|
1327
|
-
disabled: e.selectable ? (
|
|
1322
|
+
disabled: e.selectable ? (t) => e.selectable(t) === !1 : void 0
|
|
1328
1323
|
});
|
|
1329
1324
|
}
|
|
1330
|
-
return
|
|
1325
|
+
return n.key === "$actions" && (n.cellProps ??= () => ({ style: { padding: "0 2px" } })), n;
|
|
1331
1326
|
}).filter((e) => e?.hidden !== !0);
|
|
1332
1327
|
}
|
|
1333
1328
|
const DataTable = /* @__PURE__ */ defineComponent({
|
|
@@ -1371,94 +1366,94 @@ const DataTable = /* @__PURE__ */ defineComponent({
|
|
|
1371
1366
|
"custom",
|
|
1372
1367
|
"highlight"
|
|
1373
1368
|
],
|
|
1374
|
-
setup(e, { slots:
|
|
1375
|
-
let { keyField:
|
|
1376
|
-
useStyle("-datatable", style,
|
|
1377
|
-
let
|
|
1378
|
-
e ==
|
|
1369
|
+
setup(e, { slots: r, emit: i, expose: a }) {
|
|
1370
|
+
let { keyField: o } = inject(PAGE_INJECTION), s = useMergedClsPrefix(), l = `${s.value}-datatable`;
|
|
1371
|
+
useStyle("-datatable", style, s);
|
|
1372
|
+
let d = useTemplateRef("table-ref"), f = ({ sortField: e, sortOrder: t } = {}, n) => {
|
|
1373
|
+
e == n?.sortField && t == n?.sortOrder || d.value?.sort(e, t ? t + "end" : !1);
|
|
1379
1374
|
};
|
|
1380
|
-
watch(() => ({ ...e.sorter }),
|
|
1381
|
-
let
|
|
1382
|
-
let
|
|
1383
|
-
return (e) => e[
|
|
1384
|
-
}),
|
|
1375
|
+
watch(() => ({ ...e.sorter }), f, { deep: !0 });
|
|
1376
|
+
let p = computed(() => {
|
|
1377
|
+
let t = e.keyField || o || "key";
|
|
1378
|
+
return (e) => e[t];
|
|
1379
|
+
}), g = shallowRef({
|
|
1385
1380
|
cache: [],
|
|
1386
1381
|
scrollToView(...e) {
|
|
1387
1382
|
this.cache.push(e);
|
|
1388
1383
|
}
|
|
1389
1384
|
});
|
|
1390
|
-
until(
|
|
1391
|
-
|
|
1392
|
-
let
|
|
1393
|
-
|
|
1394
|
-
let
|
|
1395
|
-
if (
|
|
1396
|
-
let
|
|
1397
|
-
|
|
1398
|
-
top:
|
|
1385
|
+
until(d).changed().then(() => {
|
|
1386
|
+
f(e.sorter);
|
|
1387
|
+
let t = g.value.cache;
|
|
1388
|
+
g.value = d.value, g.value.scrollToView = (t) => {
|
|
1389
|
+
let n = e.data.findIndex((e) => p.value(e) === t);
|
|
1390
|
+
if (n === -1) return;
|
|
1391
|
+
let r = d.value.$el.querySelector(`.${l}__row-marker:nth-child(${n + 1})`);
|
|
1392
|
+
d.value.scrollTo({
|
|
1393
|
+
top: r.offsetTop,
|
|
1399
1394
|
behavior: "smooth"
|
|
1400
1395
|
});
|
|
1401
1396
|
};
|
|
1402
|
-
for (let e of
|
|
1403
|
-
}),
|
|
1404
|
-
let
|
|
1397
|
+
for (let e of t) g.value.scrollToView(...e);
|
|
1398
|
+
}), a(toReactive(g));
|
|
1399
|
+
let _ = ref(0), v = shallowRef([]);
|
|
1405
1400
|
watch(() => e.columns, () => {
|
|
1406
|
-
|
|
1401
|
+
_.value = 0, v.value = _map(e.columns, _);
|
|
1407
1402
|
}, {
|
|
1408
1403
|
immediate: !0,
|
|
1409
1404
|
deep: 1
|
|
1410
1405
|
});
|
|
1411
|
-
let
|
|
1406
|
+
let y = ref();
|
|
1412
1407
|
watch(() => e.highlight, (e) => {
|
|
1413
|
-
|
|
1408
|
+
y.value = typeof e == "boolean" ? null : e ?? null;
|
|
1414
1409
|
}, { immediate: !0 });
|
|
1415
|
-
let
|
|
1416
|
-
e.rowClassName?.(
|
|
1417
|
-
`${
|
|
1418
|
-
|
|
1419
|
-
].join(" ")),
|
|
1420
|
-
let
|
|
1410
|
+
let b = computed(() => (t, n) => [
|
|
1411
|
+
e.rowClassName?.(t, n) || "",
|
|
1412
|
+
`${l}__row-marker`,
|
|
1413
|
+
y.value != null && p.value(t) === y.value ? `${l}__row-highlight` : ""
|
|
1414
|
+
].join(" ")), C = computed(() => (t, n) => {
|
|
1415
|
+
let r = e.rowProps?.(t, n);
|
|
1421
1416
|
return {
|
|
1422
|
-
...
|
|
1423
|
-
onClick: (
|
|
1424
|
-
let
|
|
1425
|
-
e.highlight === !0 && (
|
|
1417
|
+
...r,
|
|
1418
|
+
onClick: (n) => {
|
|
1419
|
+
let a = p.value(t);
|
|
1420
|
+
e.highlight === !0 && (y.value = a), i("highlight", a), r?.onClick?.(n);
|
|
1426
1421
|
}
|
|
1427
1422
|
};
|
|
1428
|
-
}),
|
|
1423
|
+
}), w = (t) => {
|
|
1429
1424
|
if (e.sorter) {
|
|
1430
|
-
let { sortField:
|
|
1431
|
-
if (
|
|
1425
|
+
let { sortField: n, sortOrder: r } = e.sorter;
|
|
1426
|
+
if (t?.columnKey == n && (t?.order ? t.order === r + "end" : !r)) return;
|
|
1432
1427
|
}
|
|
1433
|
-
|
|
1434
|
-
sortField:
|
|
1435
|
-
sortOrder:
|
|
1428
|
+
i("sort", {
|
|
1429
|
+
sortField: t?.order ? t?.columnKey : void 0,
|
|
1430
|
+
sortOrder: t?.order ? t.order.replace("end", "") : void 0
|
|
1436
1431
|
});
|
|
1437
|
-
},
|
|
1438
|
-
|
|
1439
|
-
},
|
|
1440
|
-
|
|
1441
|
-
key:
|
|
1432
|
+
}, T = (e) => {
|
|
1433
|
+
i("select", e);
|
|
1434
|
+
}, E = (e, t, n) => {
|
|
1435
|
+
i("custom", {
|
|
1436
|
+
key: n.key,
|
|
1442
1437
|
width: e
|
|
1443
1438
|
});
|
|
1444
1439
|
};
|
|
1445
1440
|
return () => createVNode(NDataTable, {
|
|
1446
|
-
class: [
|
|
1441
|
+
class: [l, e.appear === "sticky" ? `${l}--sticky` : ""],
|
|
1447
1442
|
data: e.data,
|
|
1448
|
-
columns:
|
|
1449
|
-
rowKey:
|
|
1443
|
+
columns: v.value,
|
|
1444
|
+
rowKey: p.value,
|
|
1450
1445
|
tableLayout: "fixed",
|
|
1451
1446
|
ref: "table-ref",
|
|
1452
|
-
scrollX:
|
|
1453
|
-
rowClassName:
|
|
1454
|
-
rowProps:
|
|
1447
|
+
scrollX: _.value,
|
|
1448
|
+
rowClassName: b.value,
|
|
1449
|
+
rowProps: C.value,
|
|
1455
1450
|
checkedRowKeys: e.selectedKeys,
|
|
1456
1451
|
style: { "--n-tr-highlight-color": e.highlightColor },
|
|
1457
1452
|
maxHeight: e.maxHeight ?? (e.appear === "sticky" ? "auto" : void 0),
|
|
1458
|
-
onUpdateSorter:
|
|
1459
|
-
onUpdateCheckedRowKeys:
|
|
1460
|
-
onUnstableColumnResize:
|
|
1461
|
-
}, _isSlot$2(
|
|
1453
|
+
onUpdateSorter: w,
|
|
1454
|
+
onUpdateCheckedRowKeys: T,
|
|
1455
|
+
onUnstableColumnResize: E
|
|
1456
|
+
}, _isSlot$2(r) ? r : { default: () => [r] });
|
|
1462
1457
|
}
|
|
1463
1458
|
});
|
|
1464
1459
|
var style = /* @__PURE__ */ cB("datatable", [cE("row-highlight", [c("& > td", { backgroundColor: "var(--n-tr-highlight-color, var(--n-merged-border-color)) !important" })]), cM("sticky", [
|
|
@@ -1480,31 +1475,28 @@ var style = /* @__PURE__ */ cB("datatable", [cE("row-highlight", [c("& > td", {
|
|
|
1480
1475
|
overflowX: "auto"
|
|
1481
1476
|
}),
|
|
1482
1477
|
c(".n-data-table-td > *", {
|
|
1483
|
-
lineHeight: "1",
|
|
1484
1478
|
verticalAlign: "middle",
|
|
1485
1479
|
contentVisibility: "auto"
|
|
1486
|
-
})
|
|
1487
|
-
c(".n-data-table-td > .n-checkbox--inside-table", { lineHeight: "16px" }),
|
|
1488
|
-
c(".n-data-table-td > .n-tooltip-expanded", { lineHeight: "1.25" })
|
|
1480
|
+
})
|
|
1489
1481
|
])]);
|
|
1490
|
-
function useDataTableDrag(e, { data:
|
|
1491
|
-
watch([ref(
|
|
1482
|
+
function useDataTableDrag(e, { data: t, onSort: n, ...r }) {
|
|
1483
|
+
watch([ref(t), e], async ([e, t]) => {
|
|
1492
1484
|
if (e.length === 0) return;
|
|
1493
1485
|
await nextTick();
|
|
1494
|
-
let
|
|
1495
|
-
if (!
|
|
1496
|
-
let
|
|
1486
|
+
let i = unrefElement(t)?.querySelector(".n-data-table-base-table-body .n-data-table-tbody");
|
|
1487
|
+
if (!i) return;
|
|
1488
|
+
let a = Sortable$1.create(i, {
|
|
1497
1489
|
animation: 150,
|
|
1498
|
-
...
|
|
1490
|
+
...r,
|
|
1499
1491
|
onSort(e) {
|
|
1500
|
-
|
|
1492
|
+
n({
|
|
1501
1493
|
from: e.oldIndex,
|
|
1502
1494
|
to: e.newIndex
|
|
1503
1495
|
});
|
|
1504
1496
|
}
|
|
1505
1497
|
});
|
|
1506
1498
|
return () => {
|
|
1507
|
-
|
|
1499
|
+
a.destroy();
|
|
1508
1500
|
};
|
|
1509
1501
|
}, { immediate: !0 });
|
|
1510
1502
|
}
|
|
@@ -1563,39 +1555,39 @@ const NRadios = /* @__PURE__ */ defineComponent({
|
|
|
1563
1555
|
"update:modelValue": () => !0,
|
|
1564
1556
|
updateModelValue: () => !0
|
|
1565
1557
|
},
|
|
1566
|
-
setup(
|
|
1567
|
-
let { t:
|
|
1558
|
+
setup(t, { emit: n }) {
|
|
1559
|
+
let { t: r } = useI18n(), i = computed(() => t.default === !1 ? "" : t.default === !0 ? r("common.all") : typeof t.default == "string" ? t.default : t.default?.[t.labelField] ?? r("common.all")), a = computed(() => t.type === "button-primary" ? {
|
|
1568
1560
|
"--n-button-color-active": "var(--color-primary)",
|
|
1569
1561
|
"--n-button-text-color-active": "var(--color-base)"
|
|
1570
|
-
} : {}),
|
|
1571
|
-
|
|
1562
|
+
} : {}), o = (e) => {
|
|
1563
|
+
n("update:modelValue", e), n("updateModelValue", e);
|
|
1572
1564
|
};
|
|
1573
1565
|
return () => {
|
|
1574
|
-
let e =
|
|
1575
|
-
let
|
|
1566
|
+
let e = t.type === "button" ? NRadioButton : NRadio, n = createVNode(Fragment, null, [t.default ? createVNode(e, { value: typeof t.default == "object" ? t.default?.[t.valueField] : null }, { default: () => [i.value] }) : void 0, t.options?.map((n) => {
|
|
1567
|
+
let r = typeof n[t.labelField] == "string" ? n[t.labelField] : n[t.labelField]?.();
|
|
1576
1568
|
return createVNode(e, {
|
|
1577
|
-
value:
|
|
1578
|
-
disabled:
|
|
1579
|
-
style:
|
|
1580
|
-
paddingLeft:
|
|
1581
|
-
paddingRight:
|
|
1569
|
+
value: n[t.valueField],
|
|
1570
|
+
disabled: n[t.disabledField],
|
|
1571
|
+
style: t.padding ? {
|
|
1572
|
+
paddingLeft: t.padding,
|
|
1573
|
+
paddingRight: t.padding
|
|
1582
1574
|
} : {}
|
|
1583
|
-
}, { default: () => [
|
|
1584
|
-
default: () =>
|
|
1585
|
-
trigger: () =>
|
|
1586
|
-
}) :
|
|
1575
|
+
}, { default: () => [n.tip ? createVNode(NTooltip, null, {
|
|
1576
|
+
default: () => n.tip,
|
|
1577
|
+
trigger: () => r
|
|
1578
|
+
}) : r] });
|
|
1587
1579
|
})]);
|
|
1588
1580
|
return createVNode(NRadioGroup, {
|
|
1589
|
-
style:
|
|
1590
|
-
...
|
|
1581
|
+
style: t.vertical ? {
|
|
1582
|
+
...a.value,
|
|
1591
1583
|
padding: "6px 0 0"
|
|
1592
|
-
} :
|
|
1593
|
-
value:
|
|
1594
|
-
onUpdateValue:
|
|
1595
|
-
}, { default: () => [
|
|
1596
|
-
size:
|
|
1597
|
-
vertical:
|
|
1598
|
-
}, _isSlot$1(
|
|
1584
|
+
} : a.value,
|
|
1585
|
+
value: t.modelValue,
|
|
1586
|
+
onUpdateValue: o
|
|
1587
|
+
}, { default: () => [t.type === "radio" ? createVNode(NFlex, {
|
|
1588
|
+
size: t.vertical ? void 0 : "small",
|
|
1589
|
+
vertical: t.vertical
|
|
1590
|
+
}, _isSlot$1(n) ? n : { default: () => [n] }) : n] });
|
|
1599
1591
|
};
|
|
1600
1592
|
}
|
|
1601
1593
|
});
|
|
@@ -1666,281 +1658,275 @@ const DtUserDept = /* @__PURE__ */ defineComponent({
|
|
|
1666
1658
|
type: Function,
|
|
1667
1659
|
default: () => []
|
|
1668
1660
|
},
|
|
1669
|
-
valueField: { type: String }
|
|
1661
|
+
valueField: { type: String },
|
|
1662
|
+
renderUserInfo: Function
|
|
1670
1663
|
},
|
|
1671
1664
|
emits: ["update:modelValue", "updateModelValue"],
|
|
1672
|
-
setup(
|
|
1673
|
-
let { t:
|
|
1674
|
-
if (
|
|
1675
|
-
let e =
|
|
1665
|
+
setup(t, { emit: n, attrs: r }) {
|
|
1666
|
+
let { t: i } = useI18n(), { localeRef: a } = useLocale("Popconfirm"), o = computed(() => t.valueField || (t.type === "user" ? "username" : "code")), s = computed(() => {
|
|
1667
|
+
if (t.multiple) return t.modelValue || [];
|
|
1668
|
+
let e = t.modelValue?.trim();
|
|
1676
1669
|
return e ? [e] : [];
|
|
1677
|
-
}),
|
|
1678
|
-
watch(() =>
|
|
1670
|
+
}), d = /* @__PURE__ */ new Map(), f = computed(() => (d.clear(), t.users.map((e) => (e = reactive(e), e.label = e.nickname + e.username, e.value = e[o.value], e.type = "user", d.set(e[o.value], e), e)))), p = shallowRef([]);
|
|
1671
|
+
watch(() => t.depts, (e) => {
|
|
1679
1672
|
walkTree(e, (e) => {
|
|
1680
|
-
e.label = e.name, e.value = e[
|
|
1681
|
-
}),
|
|
1673
|
+
e.label = e.name, e.value = e[o.value], e.type = "dept", e.children?.length || delete e.children;
|
|
1674
|
+
}), p.value = flattenTree(e);
|
|
1682
1675
|
}, { immediate: !0 });
|
|
1683
|
-
let
|
|
1684
|
-
...
|
|
1685
|
-
...
|
|
1676
|
+
let m = computed(() => [
|
|
1677
|
+
...t.depts,
|
|
1678
|
+
...t.groups.map((e) => ({
|
|
1686
1679
|
label: e.name,
|
|
1687
1680
|
value: e.code,
|
|
1688
1681
|
type: "group"
|
|
1689
1682
|
})),
|
|
1690
|
-
...
|
|
1691
|
-
]),
|
|
1692
|
-
let
|
|
1693
|
-
for (let e of
|
|
1694
|
-
|
|
1695
|
-
let
|
|
1696
|
-
return
|
|
1683
|
+
...f.value
|
|
1684
|
+
]), g = ref([]), _ = ref(), C = async (e) => {
|
|
1685
|
+
let n = await (e.type === "group" ? t.getUsersByGroup(e.value) : t.getUsersByDept(e.value));
|
|
1686
|
+
for (let e of f.value) e.disabled = !0;
|
|
1687
|
+
_.value = [...e.type === "dept" ? e.children ?? [] : [], ...n.map((e) => {
|
|
1688
|
+
let t = d.get(e[o.value]);
|
|
1689
|
+
return t && (t.disabled = !1), {
|
|
1697
1690
|
...e,
|
|
1698
1691
|
label: e.nickname + e.username,
|
|
1699
|
-
value: e[
|
|
1692
|
+
value: e[o.value],
|
|
1700
1693
|
type: "user"
|
|
1701
1694
|
};
|
|
1702
1695
|
})];
|
|
1703
|
-
},
|
|
1704
|
-
let
|
|
1705
|
-
if (
|
|
1706
|
-
data:
|
|
1696
|
+
}, w = /* @__PURE__ */ new WeakMap(), T = (e, n, r) => {
|
|
1697
|
+
let a;
|
|
1698
|
+
if (t.type === "dept") return createVNode(NTree, {
|
|
1699
|
+
data: t.depts,
|
|
1707
1700
|
keyField: "value",
|
|
1708
1701
|
labelField: "name",
|
|
1709
|
-
defaultExpandAll:
|
|
1710
|
-
checkable:
|
|
1711
|
-
selectable: !
|
|
1702
|
+
defaultExpandAll: t.defaultExpandAll,
|
|
1703
|
+
checkable: t.multiple,
|
|
1704
|
+
selectable: !t.multiple,
|
|
1712
1705
|
multiple: !1,
|
|
1713
1706
|
blockLine: !0,
|
|
1714
1707
|
checkOnClick: !0,
|
|
1715
|
-
pattern:
|
|
1716
|
-
filter: (e,
|
|
1717
|
-
checkedKeys:
|
|
1718
|
-
selectedKeys:
|
|
1708
|
+
pattern: r,
|
|
1709
|
+
filter: (e, t) => t.label.includes(e) || t.value.includes(e),
|
|
1710
|
+
checkedKeys: t.multiple ? e : void 0,
|
|
1711
|
+
selectedKeys: t.multiple ? void 0 : e,
|
|
1719
1712
|
onUpdateCheckedKeys: (e) => {
|
|
1720
|
-
|
|
1713
|
+
t.max && e?.length > t.max || n(e);
|
|
1721
1714
|
},
|
|
1722
1715
|
onUpdateSelectedKeys: (e) => {
|
|
1723
|
-
|
|
1716
|
+
n(e);
|
|
1724
1717
|
}
|
|
1725
1718
|
}, null);
|
|
1726
|
-
let
|
|
1727
|
-
if (e && !
|
|
1728
|
-
let
|
|
1729
|
-
|
|
1730
|
-
let
|
|
1731
|
-
return createVNode(Fragment, null, [createVNode("div", { style: "margin: 12px 16px; display: flex; justify-content: space-between; align-items: center" }, [
|
|
1732
|
-
|
|
1719
|
+
let o = e ? w.get(e) : /* @__PURE__ */ new Set();
|
|
1720
|
+
if (e && !o && (o = new Set(e), w.set(e, o)), _.value === !1) return createVNode(NSpin, { show: !0 }, null);
|
|
1721
|
+
let s = _.value || m.value;
|
|
1722
|
+
r = r?.trim(), r && (s = s?.filter((e) => e.label.includes(r) || e.value.includes(r)));
|
|
1723
|
+
let u = g.value;
|
|
1724
|
+
return createVNode(Fragment, null, [createVNode("div", { style: "margin: 12px 16px; display: flex; justify-content: space-between; align-items: center" }, [u.length > 0 ? createVNode(Fragment, null, [createVNode("span", { style: "display: flex; align-items: center" }, [
|
|
1725
|
+
u.length >= 2 ? u.at(-2).label : i("common.all"),
|
|
1733
1726
|
createVNode("span", { style: "padding: 0 4px" }, [createVNode(IRight, null, null)]),
|
|
1734
|
-
|
|
1727
|
+
u.at(-1).label
|
|
1735
1728
|
]), createVNode(NButton, {
|
|
1736
1729
|
text: !0,
|
|
1737
1730
|
type: "warning",
|
|
1738
1731
|
onClick: () => {
|
|
1739
|
-
if (
|
|
1740
|
-
else for (let e of
|
|
1732
|
+
if (u.pop(), _.value = u.length > 0 ? !1 : void 0, u.length > 0) C(u.at(-1));
|
|
1733
|
+
else for (let e of f.value) e.disabled = !1;
|
|
1741
1734
|
}
|
|
1742
|
-
}, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(ILeft, null, null)] }),
|
|
1735
|
+
}, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(ILeft, null, null)] }), i("common.back")] })]) : createVNode("span", null, [i("common.all")])]), s?.length ? createVNode(NList, {
|
|
1743
1736
|
showDivider: !1,
|
|
1744
1737
|
style: "padding: 0 16px"
|
|
1745
|
-
}, _isSlot(
|
|
1746
|
-
let
|
|
1738
|
+
}, _isSlot(a = s.map((r) => {
|
|
1739
|
+
let i, a;
|
|
1747
1740
|
return createVNode(NListItem, {
|
|
1748
|
-
key:
|
|
1741
|
+
key: r.type + "_" + r.value,
|
|
1749
1742
|
style: "padding: 6px 0"
|
|
1750
|
-
}, { default: () => [
|
|
1751
|
-
checked:
|
|
1752
|
-
onUpdateChecked: (
|
|
1753
|
-
if (
|
|
1754
|
-
let
|
|
1755
|
-
if (
|
|
1743
|
+
}, { default: () => [r.type === "user" ? t.multiple ? createVNode(NCheckbox, {
|
|
1744
|
+
checked: o.has(r.value) || !1,
|
|
1745
|
+
onUpdateChecked: (i) => {
|
|
1746
|
+
if (i && t.max && e.length >= t.max) return;
|
|
1747
|
+
let a = [...e || []];
|
|
1748
|
+
if (i) a.push(r.value);
|
|
1756
1749
|
else {
|
|
1757
|
-
let e =
|
|
1758
|
-
|
|
1750
|
+
let e = a.indexOf(r.value);
|
|
1751
|
+
a.splice(e, 1);
|
|
1759
1752
|
}
|
|
1760
|
-
|
|
1753
|
+
n(a);
|
|
1761
1754
|
},
|
|
1762
1755
|
style: "margin-left: 3px"
|
|
1763
|
-
}, _isSlot(
|
|
1756
|
+
}, _isSlot(i = renderUsers([r], {
|
|
1764
1757
|
max: 1,
|
|
1765
1758
|
size: 24,
|
|
1766
1759
|
placement: "right",
|
|
1767
1760
|
tooltip: !1,
|
|
1768
|
-
username: !0
|
|
1769
|
-
|
|
1770
|
-
|
|
1761
|
+
username: !0,
|
|
1762
|
+
renderInfo: t.renderUserInfo
|
|
1763
|
+
})) ? i : { default: () => [i] }) : createVNode(NRadio, {
|
|
1764
|
+
checked: o.has(r.value) || !1,
|
|
1771
1765
|
onUpdateChecked: (e) => {
|
|
1772
|
-
|
|
1766
|
+
n(e ? [r.value] : []);
|
|
1773
1767
|
},
|
|
1774
1768
|
style: "margin-left: 3px;"
|
|
1775
|
-
}, _isSlot(
|
|
1769
|
+
}, _isSlot(a = renderUsers([r], {
|
|
1776
1770
|
max: 1,
|
|
1777
1771
|
size: 24,
|
|
1778
1772
|
placement: "right",
|
|
1779
1773
|
tooltip: !1,
|
|
1780
|
-
username: !0
|
|
1781
|
-
|
|
1774
|
+
username: !0,
|
|
1775
|
+
renderInfo: t.renderUserInfo
|
|
1776
|
+
})) ? a : { default: () => [a] }) : createVNode("div", {
|
|
1782
1777
|
onClick: () => {
|
|
1783
|
-
|
|
1778
|
+
_.value = !1, g.value.push(r), C(r);
|
|
1784
1779
|
},
|
|
1785
1780
|
style: "cursor: pointer; display: flex; align-items: center; gap: 8px"
|
|
1786
1781
|
}, [
|
|
1787
|
-
|
|
1782
|
+
r.type === "dept" ? createVNode(NAvatar, {
|
|
1788
1783
|
size: 24,
|
|
1789
1784
|
style: "background-color: red"
|
|
1790
1785
|
}, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IDept, null, null)] })] }) : createVNode(NAvatar, {
|
|
1791
1786
|
size: 24,
|
|
1792
1787
|
style: "background-color: green"
|
|
1793
1788
|
}, { default: () => [createVNode(NIcon, null, { default: () => [createVNode(IGroup, null, null)] })] }),
|
|
1794
|
-
createVNode("span", { style: "flex: 1 1 auto" }, [
|
|
1789
|
+
createVNode("span", { style: "flex: 1 1 auto" }, [r.label]),
|
|
1795
1790
|
createVNode(NIcon, null, { default: () => [createVNode(IRight, null, null)] })
|
|
1796
1791
|
])] });
|
|
1797
|
-
})) ?
|
|
1798
|
-
},
|
|
1792
|
+
})) ? a : { default: () => [a] }) : createVNode(NEmpty, null, null)]);
|
|
1793
|
+
}, E = () => createVNode(NEmpty, { description: t.placeholder }, null), D = ({ option: e }) => e.type === "user" ? createVNode("span", null, [e.nickname, createVNode("span", { style: {
|
|
1799
1794
|
opacity: .4,
|
|
1800
1795
|
marginLeft: "8px"
|
|
1801
|
-
} }, [e.username])]) : createVNode("span", null, [e.label]),
|
|
1802
|
-
key:
|
|
1803
|
-
options:
|
|
1804
|
-
renderSourceList: ({ onCheck: e, pattern:
|
|
1805
|
-
renderTargetList:
|
|
1806
|
-
renderTargetLabel:
|
|
1807
|
-
sourceFilterable:
|
|
1808
|
-
size:
|
|
1809
|
-
disabled:
|
|
1810
|
-
value:
|
|
1811
|
-
filter: (e,
|
|
1796
|
+
} }, [e.username])]) : createVNode("span", null, [e.label]), k = (e, n, r, i, a) => createVNode(NTransfer, mergeProps(e, {
|
|
1797
|
+
key: t.type,
|
|
1798
|
+
options: n,
|
|
1799
|
+
renderSourceList: ({ onCheck: e, pattern: t }) => T(r, e, t),
|
|
1800
|
+
renderTargetList: t.placeholder?.trim() && !t.modelValue?.length ? E : void 0,
|
|
1801
|
+
renderTargetLabel: D,
|
|
1802
|
+
sourceFilterable: t.filterable,
|
|
1803
|
+
size: t.size,
|
|
1804
|
+
disabled: t.disabled || void 0,
|
|
1805
|
+
value: r,
|
|
1806
|
+
filter: (e, t) => t.label.includes(e) || t.value.includes(e),
|
|
1812
1807
|
"onUpdate:value": (e) => {
|
|
1813
|
-
|
|
1808
|
+
i?.(e);
|
|
1814
1809
|
},
|
|
1815
1810
|
onUpdateValue: (e) => {
|
|
1816
|
-
|
|
1811
|
+
a?.(e);
|
|
1817
1812
|
}
|
|
1818
|
-
}), null),
|
|
1819
|
-
type:
|
|
1813
|
+
}), null), A = ({ option: e, handleClose: n }) => createVNode(NTag, {
|
|
1814
|
+
type: t.type === "user" ? "primary" : "info",
|
|
1820
1815
|
closable: !0,
|
|
1821
1816
|
onMousedown: (e) => e.preventDefault(),
|
|
1822
1817
|
onClose: (e) => {
|
|
1823
|
-
e.stopPropagation(),
|
|
1818
|
+
e.stopPropagation(), n();
|
|
1824
1819
|
}
|
|
1825
|
-
}, { default: () => [e.label] }),
|
|
1826
|
-
|
|
1827
|
-
},
|
|
1828
|
-
if (
|
|
1829
|
-
|
|
1830
|
-
let e = shallowRef([...
|
|
1831
|
-
|
|
1820
|
+
}, { default: () => [e.label] }), j = (e, r = "updateModelValue") => {
|
|
1821
|
+
t.multiple ? n(r, e) : n(r, e?.[0]);
|
|
1822
|
+
}, M = ref(), N = !1, P = useDialog(), F = () => {
|
|
1823
|
+
if (N) return;
|
|
1824
|
+
N = !0;
|
|
1825
|
+
let e = shallowRef([...s.value || []]);
|
|
1826
|
+
P.create({
|
|
1832
1827
|
showIcon: !1,
|
|
1833
|
-
title:
|
|
1828
|
+
title: t.placeholder,
|
|
1834
1829
|
style: { width: "700px" },
|
|
1835
|
-
content: () => createVNode("div", { style: { height: "550px" } }, [
|
|
1836
|
-
positiveText:
|
|
1837
|
-
negativeText:
|
|
1830
|
+
content: () => createVNode("div", { style: { height: "550px" } }, [k({ style: { height: "100%" } }, t.type === "user" ? f.value : p.value, e.value, (t) => e.value = t)]),
|
|
1831
|
+
positiveText: a.value.positiveText,
|
|
1832
|
+
negativeText: a.value.negativeText,
|
|
1838
1833
|
onPositiveClick() {
|
|
1839
|
-
|
|
1834
|
+
j(e.value, "update:modelValue"), j(e.value, "updateModelValue");
|
|
1840
1835
|
},
|
|
1841
1836
|
onAfterLeave() {
|
|
1842
1837
|
nextTick(() => {
|
|
1843
|
-
|
|
1838
|
+
M.value?.blur(), N = !1;
|
|
1844
1839
|
});
|
|
1845
1840
|
}
|
|
1846
1841
|
});
|
|
1847
|
-
},
|
|
1842
|
+
}, I = { arrow: () => createVNode(NIcon, null, { default: () => [t.type === "user" ? createVNode(IGroup, null, null) : createVNode(IDept, null, null)] }) };
|
|
1848
1843
|
return () => {
|
|
1849
|
-
let e =
|
|
1850
|
-
if (
|
|
1844
|
+
let e = t.type === "user" ? f.value : p.value;
|
|
1845
|
+
if (t.selectType === "dropdown" && t.type === "dept") return createVNode(NTreeSelect, {
|
|
1851
1846
|
options: e,
|
|
1852
1847
|
keyField: "value",
|
|
1853
|
-
defaultExpandAll:
|
|
1854
|
-
checkable:
|
|
1855
|
-
multiple:
|
|
1856
|
-
filter: (e,
|
|
1857
|
-
value:
|
|
1848
|
+
defaultExpandAll: t.defaultExpandAll,
|
|
1849
|
+
checkable: t.multiple,
|
|
1850
|
+
multiple: t.multiple,
|
|
1851
|
+
filter: (e, t) => t.label.includes(e) || t.value.includes(e),
|
|
1852
|
+
value: t.modelValue,
|
|
1858
1853
|
onUpdateValue: (e) => {
|
|
1859
|
-
|
|
1854
|
+
t.multiple && t.max && e?.length > t.max || n("updateModelValue", e);
|
|
1860
1855
|
},
|
|
1861
1856
|
"onUpdate:value": (e) => {
|
|
1862
|
-
|
|
1857
|
+
t.multiple && t.max && e?.length > t.max || n("update:modelValue", e);
|
|
1863
1858
|
}
|
|
1864
|
-
}, _isSlot(
|
|
1865
|
-
if (
|
|
1866
|
-
let
|
|
1867
|
-
return createVNode(NSelect, mergeProps(
|
|
1868
|
-
key:
|
|
1869
|
-
ref:
|
|
1870
|
-
show:
|
|
1871
|
-
filterable:
|
|
1859
|
+
}, _isSlot(I) ? I : { default: () => [I] });
|
|
1860
|
+
if (t.selectType === "transfer") return k(r, e, s.value, (e) => j(e, "update:modelValue"), (e) => j(e, "updateModelValue"));
|
|
1861
|
+
let i = t.selectType === "dropdown";
|
|
1862
|
+
return createVNode(NSelect, mergeProps(r, {
|
|
1863
|
+
key: t.type,
|
|
1864
|
+
ref: M,
|
|
1865
|
+
show: i ? void 0 : !1,
|
|
1866
|
+
filterable: i ? t.filterable : !1,
|
|
1872
1867
|
options: e,
|
|
1873
|
-
multiple:
|
|
1874
|
-
size:
|
|
1875
|
-
placeholder:
|
|
1876
|
-
disabled:
|
|
1877
|
-
value:
|
|
1878
|
-
renderTag:
|
|
1879
|
-
onFocus:
|
|
1868
|
+
multiple: t.multiple,
|
|
1869
|
+
size: t.size,
|
|
1870
|
+
placeholder: t.placeholder,
|
|
1871
|
+
disabled: t.disabled || void 0,
|
|
1872
|
+
value: t.modelValue,
|
|
1873
|
+
renderTag: t.multiple ? A : void 0,
|
|
1874
|
+
onFocus: i ? void 0 : F,
|
|
1880
1875
|
onUpdateValue: (e) => {
|
|
1881
|
-
|
|
1876
|
+
n("updateModelValue", e);
|
|
1882
1877
|
},
|
|
1883
1878
|
"onUpdate:value": (e) => {
|
|
1884
|
-
|
|
1879
|
+
n("update:modelValue", e);
|
|
1885
1880
|
}
|
|
1886
|
-
}), _isSlot(
|
|
1881
|
+
}), _isSlot(I) ? I : { default: () => [I] });
|
|
1887
1882
|
};
|
|
1888
1883
|
}
|
|
1889
1884
|
});
|
|
1890
|
-
function renderUser(e,
|
|
1891
|
-
let
|
|
1892
|
-
|
|
1885
|
+
function renderUser(e, t, { placement: n = "left", size: r = 24, tooltip: i = !0, username: a = !1, renderInfo: o }) {
|
|
1886
|
+
let s = e.nickname.split(" ").at(-1), l = s;
|
|
1887
|
+
if (/^[\u4E00-\u9FA5]+$/.test(s)) {
|
|
1888
|
+
let e = s.length;
|
|
1889
|
+
l = e === 3 || e === 4 ? s.slice(-2) : e > 4 ? s.slice(0, 1) : s;
|
|
1890
|
+
} else s.length > 4 && (l = createVNode(NIcon, null, { default: () => [createVNode(IAccount, null, null)] }));
|
|
1891
|
+
let u = (e) => createVNode(NAvatar, {
|
|
1892
|
+
color: "var(--color-primary)",
|
|
1893
|
+
round: !0,
|
|
1894
|
+
size: e
|
|
1895
|
+
}, _isSlot(l) ? l : { default: () => [l] });
|
|
1896
|
+
return createVNode(NPopover, {
|
|
1893
1897
|
key: e.username,
|
|
1894
1898
|
raw: !0,
|
|
1895
|
-
placement:
|
|
1896
|
-
disabled:
|
|
1899
|
+
placement: n,
|
|
1900
|
+
disabled: i === !1
|
|
1897
1901
|
}, {
|
|
1898
1902
|
default: () => createVNode(NCard, {
|
|
1899
|
-
style: "width: 200px",
|
|
1903
|
+
style: "min-width: 200px",
|
|
1900
1904
|
size: "small"
|
|
1901
|
-
}, { default: () => [createVNode(
|
|
1905
|
+
}, { default: () => [createVNode("div", { style: "display: flex; align-items: center; gap: 12px" }, [u(48), createVNode("div", null, [createVNode("div", { style: "font-size: 16px; font-weight: 500;" }, [e.nickname]), createVNode("div", { style: "font-size: 14px; color: #999" }, [e.username])])]), o?.(e)] }),
|
|
1902
1906
|
trigger: () => {
|
|
1903
|
-
let
|
|
1904
|
-
|
|
1905
|
-
round: !0,
|
|
1906
|
-
size: C,
|
|
1907
|
-
style: x ? {
|
|
1908
|
-
position: "absolute",
|
|
1909
|
-
bottom: -(C - 16) / 2 + "px"
|
|
1910
|
-
} : ""
|
|
1911
|
-
}, _isSlot(D) ? D : { default: () => [D] });
|
|
1912
|
-
return x ? createVNode("div", { style: x ? {
|
|
1913
|
-
display: "inline-flex",
|
|
1914
|
-
itemsAlign: "center",
|
|
1915
|
-
whiteSpace: "nowrap",
|
|
1916
|
-
minWidth: C + "px",
|
|
1917
|
-
height: C + "px"
|
|
1918
|
-
} : "" }, [S, x ? createVNode(Fragment, null, [createVNode("span", { style: { marginLeft: C + 6 + "px" } }, [e.nickname]), T ? createVNode("span", { style: {
|
|
1919
|
-
marginLeft: "8px",
|
|
1920
|
-
opacity: .4
|
|
1921
|
-
} }, [e.username]) : void 0]) : void 0]) : S;
|
|
1907
|
+
let n = u(r);
|
|
1908
|
+
return t ? createVNode("div", { style: "max-width: 100%; overflow: hidden; display: inline-flex; align-items: center; gap: 6px" }, [n, createVNode("div", { style: "overflow: hidden; white-space: nowrap; text-overflow: ellipsis" }, [createVNode("span", null, [e.nickname]), a ? createVNode("span", { style: "margin-left: 8px; opacity: 0.4" }, [e.username]) : void 0])]) : n;
|
|
1922
1909
|
}
|
|
1923
1910
|
});
|
|
1924
1911
|
}
|
|
1925
|
-
function renderUsers(e,
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
return e.length <= 1 ? createVNode("span", { style: "position: relative" }, [e.map((e) => renderUser(e, !0, x))]) : createVNode("span", { style: {
|
|
1912
|
+
function renderUsers(e, t = {}) {
|
|
1913
|
+
let { max: n = 4, size: r = 24 } = t;
|
|
1914
|
+
return e.length <= 1 ? e[0] ? renderUser(e[0], !0, t) : null : createVNode("span", { style: {
|
|
1929
1915
|
display: "inline-block",
|
|
1930
|
-
height:
|
|
1916
|
+
height: r + "px"
|
|
1931
1917
|
} }, [createVNode(NAvatarGroup, {
|
|
1932
1918
|
options: e,
|
|
1933
|
-
size:
|
|
1934
|
-
max:
|
|
1919
|
+
size: r,
|
|
1920
|
+
max: n || 4,
|
|
1935
1921
|
style: "top: -2px"
|
|
1936
1922
|
}, {
|
|
1937
|
-
avatar: ({ option: e }) => renderUser(e, !1,
|
|
1938
|
-
rest: ({ options: e, rest:
|
|
1923
|
+
avatar: ({ option: e }) => renderUser(e, !1, t),
|
|
1924
|
+
rest: ({ options: e, rest: t }) => createVNode(NDropdown, {
|
|
1939
1925
|
options: e,
|
|
1940
1926
|
keyField: "username",
|
|
1941
1927
|
labelField: "nickname",
|
|
1942
|
-
renderOption: ({ option:
|
|
1943
|
-
}, { default: () => [createVNode(NAvatar, null, { default: () => [createTextVNode("+"),
|
|
1928
|
+
renderOption: ({ option: t }) => renderUser(t, !1, e)
|
|
1929
|
+
}, { default: () => [createVNode(NAvatar, null, { default: () => [createTextVNode("+"), t] })] })
|
|
1944
1930
|
})]);
|
|
1945
1931
|
}
|
|
1946
1932
|
const DtDeptRender = /* @__PURE__ */ defineComponent({
|
|
@@ -1951,18 +1937,18 @@ const DtDeptRender = /* @__PURE__ */ defineComponent({
|
|
|
1951
1937
|
getDeptsByCode: Function
|
|
1952
1938
|
},
|
|
1953
1939
|
setup(e) {
|
|
1954
|
-
let
|
|
1955
|
-
return watch([() => e.modelValue, () => e.multiple], ([
|
|
1956
|
-
|
|
1957
|
-
let
|
|
1958
|
-
for (let [e,
|
|
1959
|
-
code:
|
|
1960
|
-
name:
|
|
1961
|
-
}),
|
|
1962
|
-
|
|
1963
|
-
for (let
|
|
1940
|
+
let t = ref([]), n = {};
|
|
1941
|
+
return watch([() => e.modelValue, () => e.multiple], ([r, i]) => {
|
|
1942
|
+
t.value = [];
|
|
1943
|
+
let a = r ? i ? Array.isArray(r) ? r : r.trim() ? r.trim().split(",") : [] : [r] : [], o = [];
|
|
1944
|
+
for (let [e, r] of a.entries()) n[r] || (n[r] = reactive({
|
|
1945
|
+
code: r,
|
|
1946
|
+
name: r
|
|
1947
|
+
}), o.push(r)), t.value[e] = n[r];
|
|
1948
|
+
o.length > 0 && e.getDeptsByCode(o).then((e) => {
|
|
1949
|
+
for (let t of e) Object.assign(n[t.code], t);
|
|
1964
1950
|
});
|
|
1965
|
-
}, { immediate: !0 }), () =>
|
|
1951
|
+
}, { immediate: !0 }), () => t.value.map((e) => createVNode(NTag, { key: e.code }, { default: () => [e.name] }));
|
|
1966
1952
|
}
|
|
1967
1953
|
}), DtUserRender = /* @__PURE__ */ defineComponent({
|
|
1968
1954
|
name: "UserRender",
|
|
@@ -1972,21 +1958,22 @@ const DtDeptRender = /* @__PURE__ */ defineComponent({
|
|
|
1972
1958
|
max: Number,
|
|
1973
1959
|
size: Number,
|
|
1974
1960
|
placement: String,
|
|
1975
|
-
getUsersByUsername: Function
|
|
1961
|
+
getUsersByUsername: Function,
|
|
1962
|
+
renderInfo: Function
|
|
1976
1963
|
},
|
|
1977
1964
|
setup(e) {
|
|
1978
|
-
let
|
|
1979
|
-
return watch([() => e.
|
|
1980
|
-
|
|
1981
|
-
let
|
|
1982
|
-
for (let [e,
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
}),
|
|
1986
|
-
|
|
1987
|
-
for (let
|
|
1965
|
+
let t = ref([]), n = {};
|
|
1966
|
+
return watch([() => e.value, () => e.multiple], ([r, i]) => {
|
|
1967
|
+
t.value = [];
|
|
1968
|
+
let a = r ? i ? Array.isArray(r) ? r : r.trim() ? r.trim().split(",") : [] : [r] : [], o = [];
|
|
1969
|
+
for (let [e, r] of a.entries()) n[r] || (n[r] = reactive({
|
|
1970
|
+
username: r,
|
|
1971
|
+
nickname: r
|
|
1972
|
+
}), o.push(r)), t.value[e] = n[r];
|
|
1973
|
+
o.length > 0 && e.getUsersByUsername(o).then((e) => {
|
|
1974
|
+
for (let t of e) Object.assign(n[t.username], t);
|
|
1988
1975
|
});
|
|
1989
|
-
}, { immediate: !0 }), () => renderUsers(
|
|
1976
|
+
}, { immediate: !0 }), () => renderUsers(t.value, e);
|
|
1990
1977
|
}
|
|
1991
1978
|
}), StateButtonProps = {
|
|
1992
1979
|
disabled: {
|
|
@@ -2020,15 +2007,15 @@ const DtDeptRender = /* @__PURE__ */ defineComponent({
|
|
|
2020
2007
|
}, NStateButton = /* @__PURE__ */ defineComponent({
|
|
2021
2008
|
name: "StateButton",
|
|
2022
2009
|
props: StateButtonProps,
|
|
2023
|
-
setup(e, { slots:
|
|
2010
|
+
setup(e, { slots: t }) {
|
|
2024
2011
|
return () => {
|
|
2025
|
-
let { type:
|
|
2012
|
+
let { type: n, disabled: r, succeeded: i, successText: a, failureText: o } = e;
|
|
2026
2013
|
return createVNode(NButton, {
|
|
2027
|
-
type:
|
|
2028
|
-
disabled: typeof
|
|
2014
|
+
type: i ? "success" : i === !1 ? "error" : n,
|
|
2015
|
+
disabled: typeof i == "boolean" ? !0 : r
|
|
2029
2016
|
}, {
|
|
2030
|
-
default: () => (
|
|
2031
|
-
icon: () =>
|
|
2017
|
+
default: () => (i ? t.success ? t.success() : a : i === !1 ? t.failure ? t.failure() : o : t.default?.()) ?? t.default(),
|
|
2018
|
+
icon: () => i ? t.successIcon ? t.successIcon() : createVNode(NIcon, null, { default: () => [createVNode(ICheck, null, null)] }) : i === !1 ? t.failureIcon ? t.failureIcon() : createVNode(NIcon, null, { default: () => [createVNode(IClose, null, null)] }) : t.icon?.()
|
|
2032
2019
|
});
|
|
2033
2020
|
};
|
|
2034
2021
|
}
|