@done-coding/admin-core 0.24.1-alpha.0 → 0.25.1-alpha.0
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/es/components/app-layout/AppPage.vue.mjs +1 -1
- package/es/components/app-layout/AppPage.vue2.mjs +42 -23
- package/es/components/app-layout/use-content-box.mjs +17 -0
- package/es/components/data-view/DataGridView.vue.mjs +1 -1
- package/es/components/data-view/DataGridView.vue2.mjs +34 -14
- package/es/components/data-view/DataListView.vue.mjs +1 -1
- package/es/components/data-view/DataListView.vue2.mjs +27 -7
- package/es/components/data-view/DataListViewItem.vue.mjs +1 -1
- package/es/components/data-view/DataListViewItem.vue2.mjs +3 -2
- package/es/components/list-layout/ListLayout.vue.mjs +1 -1
- package/es/components/list-layout/ListLayout.vue2.mjs +34 -11
- package/es/components/modal/ModalConfirm.vue.mjs +1 -1
- package/es/components/modal/ModalConfirm.vue2.mjs +67 -49
- package/es/components/page-layout/AppPageDetail.vue.mjs +7 -0
- package/es/components/page-layout/AppPageDetail.vue2.mjs +89 -0
- package/es/components/page-layout/AppPageListDetailLayout.vue.mjs +153 -0
- package/es/components/page-layout/AppPageListDetailLayout.vue2.mjs +4 -0
- package/es/components/page-layout/AppPageListDetailSheet.vue.mjs +96 -0
- package/es/components/page-layout/AppPageListDetailSheet.vue2.mjs +4 -0
- package/es/components/page-layout/AppPageListDetailSplit.vue.mjs +7 -0
- package/es/components/page-layout/AppPageListDetailSplit.vue2.mjs +83 -0
- package/es/components/page-layout/use-list-detail.mjs +110 -0
- package/es/components/panel/PanelEditSwitch.vue.mjs +1 -1
- package/es/components/table/TableMain.vue.mjs +1 -1
- package/es/components/table/TableMain.vue2.mjs +55 -5
- package/es/components/view-layout/ViewLayout.vue.mjs +1 -1
- package/es/components/view-layout/ViewLayout.vue2.mjs +34 -4
- package/es/components/view-layout/ViewLayoutNavigation.vue.mjs +7 -0
- package/es/components/view-layout/ViewLayoutNavigation.vue2.mjs +34 -0
- package/es/hooks/use-active-record.mjs +100 -0
- package/es/index.mjs +146 -141
- package/es/inject/key.mjs +4 -0
- package/es/style.css +129 -96
- package/package.json +2 -2
- package/src/components/app-layout/README.md +8 -1
- package/src/components/app-layout/docs/README-AppPage.md +48 -2
- package/src/components/data-view/docs/README-DataGridView.md +2 -1
- package/src/components/data-view/docs/README-DataListView.md +13 -4
- package/src/components/list-layout/docs/README-ListLayout.md +1 -1
- package/src/components/modal/docs/README-ModalConfirm.md +2 -0
- package/src/components/page-layout/README.md +47 -0
- package/src/components/page-layout/docs/README-AppPageDetail.md +57 -0
- package/src/components/page-layout/docs/README-AppPageListDetailLayout.md +142 -0
- package/src/components/table/docs/README-TableMain.md +1 -1
- package/src/components/view-layout/docs/README-ViewLayout.md +14 -0
- package/types/components/app-layout/AppPage.vue.d.ts +14 -0
- package/types/components/app-layout/use-content-box.d.ts +31 -0
- package/types/components/data-view/DataGridView.vue.d.ts +9 -2
- package/types/components/data-view/DataListView.vue.d.ts +10 -2
- package/types/components/data-view/DataListViewItem.vue.d.ts +4 -2
- package/types/components/data-view/types.d.ts +5 -1
- package/types/components/list-layout/ListLayout.vue.d.ts +7 -2
- package/types/components/modal/ModalConfirm.vue.d.ts +18 -0
- package/types/components/page-layout/AppPageDetail.vue.d.ts +40 -0
- package/types/components/page-layout/AppPageListDetailLayout.vue.d.ts +39 -0
- package/types/components/page-layout/AppPageListDetailSheet.vue.d.ts +44 -0
- package/types/components/page-layout/AppPageListDetailSplit.vue.d.ts +47 -0
- package/types/components/page-layout/index.d.ts +4 -0
- package/types/components/page-layout/types.d.ts +102 -0
- package/types/components/page-layout/use-list-detail.d.ts +58 -0
- package/types/components/panel/PanelEditSwitch.vue.d.ts +30 -0
- package/types/components/table/TableMain.vue.d.ts +9 -2
- package/types/components/view-layout/ViewLayoutNavigation.vue.d.ts +13 -0
- package/types/components/view-layout/types.d.ts +46 -0
- package/types/hooks/use-active-record.d.ts +64 -0
- package/types/index.d.ts +1 -0
- package/types/inject/key.d.ts +29 -0
- package/types/injectInfo.json.d.ts +1 -1
- package/types/types/utility-types.d.ts +17 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./AppPage.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const AppPage = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const AppPage = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3ef165a7"]]);
|
|
5
5
|
export {
|
|
6
6
|
AppPage as default
|
|
7
7
|
};
|
|
@@ -2,7 +2,8 @@ import { defineComponent, useCssVars, computed, useSlots, ref, shallowRef, injec
|
|
|
2
2
|
import _debounce from "lodash/debounce";
|
|
3
3
|
import _sfc_main$1 from "../modal/ModalShelf.vue.mjs";
|
|
4
4
|
import _sfc_main$2 from "../display/WatchSize.vue.mjs";
|
|
5
|
-
import { computeAppPageReducedViewportHeight,
|
|
5
|
+
import { computeAppPageReducedViewportHeight, computeAppPageReducedViewportWidth, computeAppPageContentInset, computeAppPageSlotStyles, computeAppPageSlotShimStyles } from "./app-page-geometry.mjs";
|
|
6
|
+
import { useAppPageContentBox } from "./use-content-box.mjs";
|
|
6
7
|
import { BODY_CONTENT_VIEWPORT_RECT, SCOPE_VIEWPORT_MAX_HEIGHT, BODY_CONTENT_VIEWPORT_HEIGHT, BODY_CONTENT_VIEWPORT_INSET, APP_PAGE_CONTENT_INSET } from "../../inject/key.mjs";
|
|
7
8
|
import { useActivated } from "../../hooks/activated.mjs";
|
|
8
9
|
import { SlotRegion } from "../../config/slot-region.mjs";
|
|
@@ -30,17 +31,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
30
31
|
topObserveResize: { type: Boolean, default: false },
|
|
31
32
|
bottomObserveResize: { type: Boolean, default: false },
|
|
32
33
|
leftObserveResize: { type: Boolean, default: false },
|
|
33
|
-
rightObserveResize: { type: Boolean, default: false }
|
|
34
|
+
rightObserveResize: { type: Boolean, default: false },
|
|
35
|
+
contentCentered: { type: Boolean, default: false },
|
|
36
|
+
contentMaxWidth: { default: 1200 }
|
|
34
37
|
},
|
|
35
38
|
setup(__props) {
|
|
36
39
|
useCssVars((_ctx) => ({
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
40
|
+
"v6b53f4c2": pageCssVars.value.top,
|
|
41
|
+
"v1c770cbe": pageCssVars.value.bottom,
|
|
42
|
+
"ff323606": pageCssVars.value.left,
|
|
43
|
+
"e667c834": pageCssVars.value.right,
|
|
44
|
+
"e5daf0e0": pageCssVars.value.width,
|
|
45
|
+
"v09211ec6": pageCssVars.value.height,
|
|
46
|
+
"v0bd4b228": props.nextViewportMaxHeight
|
|
44
47
|
}));
|
|
45
48
|
const props = __props;
|
|
46
49
|
const style = computed(() => {
|
|
@@ -142,17 +145,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
142
145
|
viewportMaxHeight: reducedViewportHeight,
|
|
143
146
|
parent: parentScope
|
|
144
147
|
});
|
|
145
|
-
const NO_APP_CHROME_INSET = ref({
|
|
146
|
-
top: 0,
|
|
147
|
-
bottom: 0,
|
|
148
|
-
left: 0,
|
|
149
|
-
right: 0
|
|
150
|
-
});
|
|
151
|
-
const bodyInset = inject(BODY_CONTENT_VIEWPORT_INSET, NO_APP_CHROME_INSET);
|
|
152
|
-
const contentInset = computed(
|
|
153
|
-
() => computeAppPageContentInset(bodyInset.value, slotSizes.value, props.gap)
|
|
154
|
-
);
|
|
155
|
-
provide(APP_PAGE_CONTENT_INSET, readonly(contentInset));
|
|
156
148
|
const pageBoxWidth = ref(0);
|
|
157
149
|
const measurePageWidth = () => {
|
|
158
150
|
if (appPageRef.value) pageBoxWidth.value = appPageRef.value.clientWidth;
|
|
@@ -179,6 +171,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
179
171
|
shimPadding.value
|
|
180
172
|
)
|
|
181
173
|
);
|
|
174
|
+
const { contentGutter } = useAppPageContentBox({
|
|
175
|
+
enabled: () => props.contentCentered,
|
|
176
|
+
maxWidth: () => props.contentMaxWidth,
|
|
177
|
+
availableWidth: () => reducedViewportWidth.value
|
|
178
|
+
});
|
|
179
|
+
const NO_APP_CHROME_INSET = ref({
|
|
180
|
+
top: 0,
|
|
181
|
+
bottom: 0,
|
|
182
|
+
left: 0,
|
|
183
|
+
right: 0
|
|
184
|
+
});
|
|
185
|
+
const bodyInset = inject(BODY_CONTENT_VIEWPORT_INSET, NO_APP_CHROME_INSET);
|
|
186
|
+
const contentInset = computed(() => {
|
|
187
|
+
const base = computeAppPageContentInset(
|
|
188
|
+
bodyInset.value,
|
|
189
|
+
slotSizes.value,
|
|
190
|
+
props.gap
|
|
191
|
+
);
|
|
192
|
+
const g = contentGutter.value;
|
|
193
|
+
return g ? { ...base, left: base.left + g, right: base.right + g } : base;
|
|
194
|
+
});
|
|
195
|
+
provide(APP_PAGE_CONTENT_INSET, readonly(contentInset));
|
|
182
196
|
const pageCssVars = computed(() => {
|
|
183
197
|
const inset = contentInset.value;
|
|
184
198
|
return {
|
|
@@ -186,7 +200,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
186
200
|
bottom: `${inset.bottom}px`,
|
|
187
201
|
left: `${inset.left}px`,
|
|
188
202
|
right: `${inset.right}px`,
|
|
189
|
-
width: `${
|
|
203
|
+
width: `${Math.max(
|
|
204
|
+
0,
|
|
205
|
+
reducedViewportWidth.value - contentGutter.value * 2
|
|
206
|
+
)}px`,
|
|
190
207
|
height: `${reducedViewportHeight.value}px`
|
|
191
208
|
};
|
|
192
209
|
});
|
|
@@ -204,12 +221,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
204
221
|
});
|
|
205
222
|
const shimStyle = computed(() => {
|
|
206
223
|
const sp = shimPadding.value;
|
|
224
|
+
const g = contentGutter.value;
|
|
207
225
|
const inset = (v) => `${Math.max(0, v ? v - sp : 0)}px`;
|
|
226
|
+
const insetX = (v) => `${Math.max(0, v ? v - sp : 0) + g}px`;
|
|
208
227
|
return {
|
|
209
228
|
paddingTop: inset(topH.value),
|
|
210
229
|
paddingBottom: inset(bottomH.value),
|
|
211
|
-
paddingLeft:
|
|
212
|
-
paddingRight:
|
|
230
|
+
paddingLeft: insetX(leftW.value),
|
|
231
|
+
paddingRight: insetX(rightW.value)
|
|
213
232
|
};
|
|
214
233
|
});
|
|
215
234
|
return (_ctx, _cache) => {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { computed } from "vue";
|
|
2
|
+
function computeAppPageContentGutter(availableWidth, maxWidth) {
|
|
3
|
+
return Math.max(0, (availableWidth - maxWidth) / 2);
|
|
4
|
+
}
|
|
5
|
+
function useAppPageContentBox(options) {
|
|
6
|
+
const contentGutter = computed(
|
|
7
|
+
() => options.enabled() ? computeAppPageContentGutter(
|
|
8
|
+
options.availableWidth(),
|
|
9
|
+
options.maxWidth()
|
|
10
|
+
) : 0
|
|
11
|
+
);
|
|
12
|
+
return { contentGutter };
|
|
13
|
+
}
|
|
14
|
+
export {
|
|
15
|
+
computeAppPageContentGutter,
|
|
16
|
+
useAppPageContentBox
|
|
17
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./DataGridView.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const DataGridView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const DataGridView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-16f88920"]]);
|
|
5
5
|
export {
|
|
6
6
|
DataGridView as default
|
|
7
7
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, useModel, shallowRef, ref, computed, onMounted, onActivated, watch, openBlock, createElementBlock, createBlock, unref, withCtx, createVNode, mergeProps, createCommentVNode, createElementVNode, toDisplayString, createTextVNode, normalizeStyle, Fragment, renderList, renderSlot, resolveDynamicComponent, mergeModels } from "vue";
|
|
1
|
+
import { defineComponent, useModel, shallowRef, ref, computed, onMounted, onActivated, watch, openBlock, createElementBlock, createBlock, unref, withCtx, createVNode, mergeProps, createCommentVNode, createElementVNode, toDisplayString, createTextVNode, normalizeStyle, Fragment, renderList, normalizeClass, renderSlot, resolveDynamicComponent, mergeModels } from "vue";
|
|
2
2
|
import { ElButton } from "element-plus";
|
|
3
3
|
import TableToolbar from "../table/TableToolbar.vue.mjs";
|
|
4
4
|
import _sfc_main$2 from "../table/TableEmpty.vue.mjs";
|
|
@@ -9,16 +9,18 @@ import _set from "lodash/set";
|
|
|
9
9
|
import _get from "lodash/get";
|
|
10
10
|
import InfiniteListView from "./InfiniteListView.vue.mjs";
|
|
11
11
|
import { useDataViewFieldMap } from "./use-data-view-field-map.mjs";
|
|
12
|
+
import { useActiveRecord, activeRecordValueOf } from "../../hooks/use-active-record.mjs";
|
|
12
13
|
import { resolveGridColumnsByBreakpoint, createDataListViewInstance } from "./utils.mjs";
|
|
13
14
|
import { useBreakpoint } from "../../hooks/use-breakpoint.mjs";
|
|
14
15
|
import { pickExportColumns } from "../../utils/export.mjs";
|
|
15
16
|
import { useChannelViewportHeight } from "../../hooks/use-channel-viewport-height.mjs";
|
|
16
17
|
import { APP_API_LIST_MODEL_KEY_CONFIG } from "../../config/list-model.mjs";
|
|
17
18
|
const _hoisted_1 = { class: "dc-data-grid-view data-grid-view" };
|
|
18
|
-
const _hoisted_2 =
|
|
19
|
-
const _hoisted_3 = { class: "data-grid-
|
|
20
|
-
const _hoisted_4 = { class: "data-grid-view__field-
|
|
21
|
-
const _hoisted_5 = {
|
|
19
|
+
const _hoisted_2 = ["onClick"];
|
|
20
|
+
const _hoisted_3 = { class: "data-grid-view__card" };
|
|
21
|
+
const _hoisted_4 = { class: "data-grid-view__field-label" };
|
|
22
|
+
const _hoisted_5 = { class: "data-grid-view__field-value" };
|
|
23
|
+
const _hoisted_6 = {
|
|
22
24
|
key: 0,
|
|
23
25
|
class: "data-grid-view__empty-error"
|
|
24
26
|
};
|
|
@@ -49,9 +51,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
49
51
|
"isAutoRefresh": { type: Boolean },
|
|
50
52
|
"isAutoRefreshModifiers": {},
|
|
51
53
|
"refreshInterval": {},
|
|
52
|
-
"refreshIntervalModifiers": {}
|
|
54
|
+
"refreshIntervalModifiers": {},
|
|
55
|
+
"activeId": {},
|
|
56
|
+
"activeIdModifiers": {},
|
|
57
|
+
"activeData": {},
|
|
58
|
+
"activeDataModifiers": {}
|
|
53
59
|
}),
|
|
54
|
-
emits: /* @__PURE__ */ mergeModels(["pageChange", "pageSizeChange", "dataChange", "selectionChange", "loadingChange", "pageInfoChange"], ["update:isAutoRefresh", "update:refreshInterval"]),
|
|
60
|
+
emits: /* @__PURE__ */ mergeModels(["pageChange", "pageSizeChange", "dataChange", "selectionChange", "loadingChange", "pageInfoChange"], ["update:isAutoRefresh", "update:refreshInterval", "update:activeId", "update:activeData"]),
|
|
55
61
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
56
62
|
const props = __props;
|
|
57
63
|
const emits = __emit;
|
|
@@ -209,6 +215,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
209
215
|
const rk = props.rowKey;
|
|
210
216
|
return typeof rk === "function" ? rk(row) : String(row[rk]);
|
|
211
217
|
};
|
|
218
|
+
const activeId = useModel(__props, "activeId");
|
|
219
|
+
const activeData = useModel(__props, "activeData");
|
|
220
|
+
const { isActive, setActive } = useActiveRecord({
|
|
221
|
+
// 用存量扁平数据(非 chunk 后的 gridRows)——「一项」= 一条记录
|
|
222
|
+
data: () => store.value,
|
|
223
|
+
// 出口值保原始类型(数字 id 出数字);比对由 hook 内部 String 归一,与渲染用的 keyOf 不冲突
|
|
224
|
+
keyOf: (row) => activeRecordValueOf(row, props.rowKey),
|
|
225
|
+
activeId,
|
|
226
|
+
activeData,
|
|
227
|
+
name: "DataGridView"
|
|
228
|
+
});
|
|
212
229
|
const rowKeyOfRow = (row) => row.length ? keyOf(row[0]) : "empty-row";
|
|
213
230
|
const getRenderCtxParams = () => ({
|
|
214
231
|
injectInfo: props.injectInfo || {},
|
|
@@ -262,7 +279,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
262
279
|
row,
|
|
263
280
|
index,
|
|
264
281
|
selected: isSelected(row),
|
|
265
|
-
toggleSelect: () => toggleSelect(row)
|
|
282
|
+
toggleSelect: () => toggleSelect(row),
|
|
283
|
+
active: isActive(row),
|
|
284
|
+
setActive: () => setActive(row)
|
|
266
285
|
});
|
|
267
286
|
const expose = {
|
|
268
287
|
refresh,
|
|
@@ -393,17 +412,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
393
412
|
(openBlock(true), createElementBlock(Fragment, null, renderList(item, (row, colIndex) => {
|
|
394
413
|
return openBlock(), createElementBlock("div", {
|
|
395
414
|
key: keyOf(row),
|
|
396
|
-
class: "data-grid-view__cell"
|
|
415
|
+
class: normalizeClass(["data-grid-view__cell", { "is-active": unref(isActive)(row) }]),
|
|
416
|
+
onClick: ($event) => unref(setActive)(row)
|
|
397
417
|
}, [
|
|
398
418
|
renderSlot(_ctx.$slots, "custom-view-item", mergeProps({ ref_for: true }, assertItemScope(row, index * gridColumnsFinal.value + colIndex)), () => [
|
|
399
|
-
createElementVNode("div",
|
|
419
|
+
createElementVNode("div", _hoisted_3, [
|
|
400
420
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.columns, (column) => {
|
|
401
421
|
return openBlock(), createElementBlock("div", {
|
|
402
422
|
key: column.prop ?? column.type,
|
|
403
423
|
class: "data-grid-view__field"
|
|
404
424
|
}, [
|
|
405
|
-
createElementVNode("span",
|
|
406
|
-
createElementVNode("span",
|
|
425
|
+
createElementVNode("span", _hoisted_4, toDisplayString(column.label ?? column.prop) + ":", 1),
|
|
426
|
+
createElementVNode("span", _hoisted_5, [
|
|
407
427
|
(openBlock(), createBlock(resolveDynamicComponent(unref(fieldComponentMap)[fieldKeyOf(column)]), {
|
|
408
428
|
row,
|
|
409
429
|
index: index * gridColumnsFinal.value + colIndex,
|
|
@@ -415,12 +435,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
415
435
|
}), 128))
|
|
416
436
|
])
|
|
417
437
|
], true)
|
|
418
|
-
]);
|
|
438
|
+
], 10, _hoisted_2);
|
|
419
439
|
}), 128))
|
|
420
440
|
], 4)
|
|
421
441
|
]),
|
|
422
442
|
empty: withCtx(() => [
|
|
423
|
-
error.value && !store.value.length ? (openBlock(), createElementBlock("div",
|
|
443
|
+
error.value && !store.value.length ? (openBlock(), createElementBlock("div", _hoisted_6, [
|
|
424
444
|
createElementVNode("span", null, toDisplayString(errorText.value), 1),
|
|
425
445
|
createVNode(unref(ElButton), {
|
|
426
446
|
size: "small",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./DataListView.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const DataListView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const DataListView = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-467a86a8"]]);
|
|
5
5
|
export {
|
|
6
6
|
DataListView as default
|
|
7
7
|
};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { defineComponent, computed, ref, watch, openBlock, createElementBlock, normalizeStyle, Fragment, renderList, createBlock, withCtx, renderSlot,
|
|
1
|
+
import { defineComponent, computed, useModel, ref, watch, openBlock, createElementBlock, normalizeStyle, Fragment, renderList, createBlock, unref, withCtx, renderSlot, createVNode, mergeModels } from "vue";
|
|
2
2
|
import { ElEmpty } from "element-plus";
|
|
3
3
|
import DataListViewItem from "./DataListViewItem.vue.mjs";
|
|
4
4
|
import { createDataListViewInstance } from "./utils.mjs";
|
|
5
5
|
import { useDataViewFieldMap } from "./use-data-view-field-map.mjs";
|
|
6
|
+
import { useActiveRecord, activeRecordValueOf } from "../../hooks/use-active-record.mjs";
|
|
6
7
|
const _hoisted_1 = {
|
|
7
8
|
key: 1,
|
|
8
9
|
class: "data-list-view-empty"
|
|
9
10
|
};
|
|
10
11
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
11
12
|
__name: "DataListView",
|
|
12
|
-
props: {
|
|
13
|
+
props: /* @__PURE__ */ mergeModels({
|
|
13
14
|
data: {},
|
|
14
15
|
rowKey: {},
|
|
15
16
|
columns: {},
|
|
@@ -17,8 +18,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
17
18
|
minHeight: {},
|
|
18
19
|
selectable: { type: Boolean, default: false },
|
|
19
20
|
getRenderCtxParams: {}
|
|
20
|
-
},
|
|
21
|
-
|
|
21
|
+
}, {
|
|
22
|
+
"activeId": {},
|
|
23
|
+
"activeIdModifiers": {},
|
|
24
|
+
"activeData": {},
|
|
25
|
+
"activeDataModifiers": {}
|
|
26
|
+
}),
|
|
27
|
+
emits: /* @__PURE__ */ mergeModels(["selectionChange"], ["update:activeId", "update:activeData"]),
|
|
22
28
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
23
29
|
const props = __props;
|
|
24
30
|
const emits = __emit;
|
|
@@ -37,6 +43,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
37
43
|
}
|
|
38
44
|
return Object.keys(style).length ? style : void 0;
|
|
39
45
|
});
|
|
46
|
+
const activeId = useModel(__props, "activeId");
|
|
47
|
+
const activeData = useModel(__props, "activeData");
|
|
48
|
+
const { isActive, setActive } = useActiveRecord({
|
|
49
|
+
data: () => props.data,
|
|
50
|
+
// 出口值保原始类型(数字 id 出数字);比对由 hook 内部 String 归一,与渲染用的 keyOf 不冲突
|
|
51
|
+
keyOf: (row) => activeRecordValueOf(row, props.rowKey),
|
|
52
|
+
activeId,
|
|
53
|
+
activeData,
|
|
54
|
+
name: "DataListView"
|
|
55
|
+
});
|
|
40
56
|
const selectedKeys = ref(/* @__PURE__ */ new Set());
|
|
41
57
|
const selectAll = computed(() => selectedKeys.value.size === props.data.length);
|
|
42
58
|
const isSelected = (row) => props.selectable && selectedKeys.value.has(keyOf(row));
|
|
@@ -88,7 +104,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
88
104
|
__props.data.length ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(__props.data, (row, index) => {
|
|
89
105
|
return openBlock(), createBlock(DataListViewItem, {
|
|
90
106
|
key: keyOf(row),
|
|
91
|
-
selected: isSelected(row)
|
|
107
|
+
selected: isSelected(row),
|
|
108
|
+
active: unref(isActive)(row),
|
|
109
|
+
onClick: ($event) => unref(setActive)(row)
|
|
92
110
|
}, {
|
|
93
111
|
default: withCtx(() => [
|
|
94
112
|
renderSlot(_ctx.$slots, "item", {
|
|
@@ -96,11 +114,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
96
114
|
row,
|
|
97
115
|
index,
|
|
98
116
|
selected: isSelected(row),
|
|
99
|
-
toggleSelect: () => toggleSelect(row)
|
|
117
|
+
toggleSelect: () => toggleSelect(row),
|
|
118
|
+
active: unref(isActive)(row),
|
|
119
|
+
setActive: () => unref(setActive)(row)
|
|
100
120
|
}, void 0, true)
|
|
101
121
|
]),
|
|
102
122
|
_: 2
|
|
103
|
-
}, 1032, ["selected"]);
|
|
123
|
+
}, 1032, ["selected", "active", "onClick"]);
|
|
104
124
|
}), 128)) : (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
105
125
|
renderSlot(_ctx.$slots, "empty", {}, () => [
|
|
106
126
|
createVNode(unref(ElEmpty))
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./DataListViewItem.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const DataListViewItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const DataListViewItem = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c2a6c6be"]]);
|
|
5
5
|
export {
|
|
6
6
|
DataListViewItem as default
|
|
7
7
|
};
|
|
@@ -2,12 +2,13 @@ import { defineComponent, openBlock, createElementBlock, normalizeClass, renderS
|
|
|
2
2
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
3
3
|
__name: "DataListViewItem",
|
|
4
4
|
props: {
|
|
5
|
-
selected: { type: Boolean }
|
|
5
|
+
selected: { type: Boolean },
|
|
6
|
+
active: { type: Boolean }
|
|
6
7
|
},
|
|
7
8
|
setup(__props) {
|
|
8
9
|
return (_ctx, _cache) => {
|
|
9
10
|
return openBlock(), createElementBlock("div", {
|
|
10
|
-
class: normalizeClass(["data-list-view-item", { "is-selected": __props.selected }])
|
|
11
|
+
class: normalizeClass(["data-list-view-item", { "is-selected": __props.selected, "is-active": __props.active }])
|
|
11
12
|
}, [
|
|
12
13
|
renderSlot(_ctx.$slots, "default", {}, void 0, true)
|
|
13
14
|
], 2);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _sfc_main from "./ListLayout.vue2.mjs";
|
|
2
2
|
/* empty css */
|
|
3
3
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
4
|
-
const ListLayout = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
4
|
+
const ListLayout = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-84c13797"]]);
|
|
5
5
|
export {
|
|
6
6
|
ListLayout as default
|
|
7
7
|
};
|
|
@@ -56,15 +56,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
56
56
|
"refreshInterval": {},
|
|
57
57
|
"refreshIntervalModifiers": {},
|
|
58
58
|
"customView": { type: Boolean, ...{ default: false } },
|
|
59
|
-
"customViewModifiers": {}
|
|
59
|
+
"customViewModifiers": {},
|
|
60
|
+
"activeId": {},
|
|
61
|
+
"activeIdModifiers": {},
|
|
62
|
+
"activeData": {},
|
|
63
|
+
"activeDataModifiers": {}
|
|
60
64
|
}),
|
|
61
|
-
emits: /* @__PURE__ */ mergeModels(["dataChange", "pageInfoChange"], ["update:isAutoRefresh", "update:refreshInterval", "update:customView"]),
|
|
65
|
+
emits: /* @__PURE__ */ mergeModels(["dataChange", "pageInfoChange"], ["update:isAutoRefresh", "update:refreshInterval", "update:customView", "update:activeId", "update:activeData"]),
|
|
62
66
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
63
67
|
useCssVars((_ctx) => ({
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
+
"d1ae0a92": minHeight.value,
|
|
69
|
+
"e3e22ffc": unref(searchStickyTop),
|
|
70
|
+
"v5ed78713": unref(toolbarStickyTop),
|
|
71
|
+
"v6ead0916": unref(pagerStickyBottom)
|
|
68
72
|
}));
|
|
69
73
|
const props = __props;
|
|
70
74
|
const listLayoutEmits = __emit;
|
|
@@ -80,6 +84,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
80
84
|
const isAutoRefresh = useModel(__props, "isAutoRefresh");
|
|
81
85
|
const refreshInterval = useModel(__props, "refreshInterval");
|
|
82
86
|
const customView = useModel(__props, "customView");
|
|
87
|
+
const activeId = useModel(__props, "activeId");
|
|
88
|
+
const activeData = useModel(__props, "activeData");
|
|
83
89
|
const data = ref({});
|
|
84
90
|
const query = ref(
|
|
85
91
|
{}
|
|
@@ -292,9 +298,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
292
298
|
showSearch.value = status;
|
|
293
299
|
};
|
|
294
300
|
__expose(expose);
|
|
301
|
+
const isSameListShape = (a, b) => a.length === b.length && a.every((item, i) => {
|
|
302
|
+
var _a;
|
|
303
|
+
return (item == null ? void 0 : item.key) === ((_a = b[i]) == null ? void 0 : _a.key);
|
|
304
|
+
});
|
|
295
305
|
watch(
|
|
296
306
|
() => props.list,
|
|
297
|
-
(n) => {
|
|
307
|
+
(n, o) => {
|
|
308
|
+
if (o && n !== o && isSameListShape(n, o)) {
|
|
309
|
+
console.warn(
|
|
310
|
+
'[ListLayout] `list` 引用变了但内容形状没变,已按变更重新查询一次。常见原因是模板里写了内联字面量(如 :list="[]")——父组件每次重渲染都是新数组,会反复触发查询甚至成环。[MUST] 把它提成模块级 / setup 级稳定引用(或 computed)。'
|
|
311
|
+
);
|
|
312
|
+
}
|
|
298
313
|
const fData = generateFormData(n);
|
|
299
314
|
data.value = fData;
|
|
300
315
|
if (props.initialSearch) {
|
|
@@ -383,6 +398,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
383
398
|
"onUpdate:refreshInterval": _cache[1] || (_cache[1] = ($event) => refreshInterval.value = $event),
|
|
384
399
|
"custom-view": customView.value,
|
|
385
400
|
"onUpdate:customView": _cache[2] || (_cache[2] = ($event) => customView.value = $event),
|
|
401
|
+
"active-id": activeId.value,
|
|
402
|
+
"onUpdate:activeId": _cache[3] || (_cache[3] = ($event) => activeId.value = $event),
|
|
403
|
+
"active-data": activeData.value,
|
|
404
|
+
"onUpdate:activeData": _cache[4] || (_cache[4] = ($event) => activeData.value = $event),
|
|
386
405
|
api: __props.api,
|
|
387
406
|
columns: __props.columns,
|
|
388
407
|
query: queryMerge.value,
|
|
@@ -425,14 +444,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
425
444
|
})
|
|
426
445
|
};
|
|
427
446
|
})
|
|
428
|
-
]), 1040, ["is-auto-refresh", "refresh-interval", "custom-view", "api", "columns", "query", "maxHeight", "rowKey", "toolbar", "showSwitchView", "initial-search", "injectInfo"])) : (openBlock(), createBlock(unref(DataGridView), mergeProps({
|
|
447
|
+
]), 1040, ["is-auto-refresh", "refresh-interval", "custom-view", "active-id", "active-data", "api", "columns", "query", "maxHeight", "rowKey", "toolbar", "showSwitchView", "initial-search", "injectInfo"])) : (openBlock(), createBlock(unref(DataGridView), mergeProps({
|
|
429
448
|
key: 1,
|
|
430
449
|
ref_key: "tableMain",
|
|
431
450
|
ref: tableMain,
|
|
432
451
|
"is-auto-refresh": isAutoRefresh.value,
|
|
433
|
-
"onUpdate:isAutoRefresh": _cache[
|
|
452
|
+
"onUpdate:isAutoRefresh": _cache[5] || (_cache[5] = ($event) => isAutoRefresh.value = $event),
|
|
434
453
|
"refresh-interval": refreshInterval.value,
|
|
435
|
-
"onUpdate:refreshInterval": _cache[
|
|
454
|
+
"onUpdate:refreshInterval": _cache[6] || (_cache[6] = ($event) => refreshInterval.value = $event),
|
|
455
|
+
"active-id": activeId.value,
|
|
456
|
+
"onUpdate:activeId": _cache[7] || (_cache[7] = ($event) => activeId.value = $event),
|
|
457
|
+
"active-data": activeData.value,
|
|
458
|
+
"onUpdate:activeData": _cache[8] || (_cache[8] = ($event) => activeData.value = $event),
|
|
436
459
|
api: __props.api,
|
|
437
460
|
columns: __props.columns,
|
|
438
461
|
query: queryMerge.value,
|
|
@@ -453,7 +476,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
453
476
|
renderSlot(_ctx.$slots, "custom-view-item", normalizeProps(guardReactiveProps(assertDataViewItemScope(scope))), void 0, true)
|
|
454
477
|
]),
|
|
455
478
|
_: 3
|
|
456
|
-
}, 16, ["is-auto-refresh", "refresh-interval", "api", "columns", "query", "maxHeight", "rowKey", "toolbar", "initial-search", "injectInfo", "gridColumns", "infinite-list-props"]))
|
|
479
|
+
}, 16, ["is-auto-refresh", "refresh-interval", "active-id", "active-data", "api", "columns", "query", "maxHeight", "rowKey", "toolbar", "initial-search", "injectInfo", "gridColumns", "infinite-list-props"]))
|
|
457
480
|
]),
|
|
458
481
|
_: 3
|
|
459
482
|
}, 8, ["class", "separate", "type", "gap", "aside-width", "aside-max-height"])), [
|
|
@@ -2,7 +2,7 @@ import _sfc_main from "./ModalConfirm.vue2.mjs";
|
|
|
2
2
|
/* empty css */
|
|
3
3
|
/* empty css */
|
|
4
4
|
import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
|
|
5
|
-
const ModalConfirm = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
5
|
+
const ModalConfirm = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-7ef0be5c"]]);
|
|
6
6
|
export {
|
|
7
7
|
ModalConfirm as default
|
|
8
8
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, computed, shallowRef, ref, inject, provide, openBlock, createBlock, resolveDynamicComponent, mergeProps, withCtx, createElementVNode, normalizeClass, renderSlot, createElementBlock, Fragment, createTextVNode, toDisplayString, unref, createCommentVNode, createVNode } from "vue";
|
|
1
|
+
import { defineComponent, computed, shallowRef, ref, inject, provide, openBlock, createBlock, resolveDynamicComponent, mergeProps, createSlots, withCtx, createElementVNode, normalizeClass, renderSlot, createElementBlock, Fragment, createTextVNode, toDisplayString, unref, createCommentVNode, createVNode } from "vue";
|
|
2
2
|
import { ElDrawer, ElDialog, ElButton } from "element-plus";
|
|
3
3
|
import { BODY_CONTENT_VIEWPORT_HEIGHT, SCOPE_VIEWPORT_MAX_HEIGHT } from "../../inject/key.mjs";
|
|
4
4
|
import { useActivated } from "../../hooks/activated.mjs";
|
|
@@ -21,6 +21,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
21
21
|
cancelText: { type: [String, Function], default: "取消" },
|
|
22
22
|
confirmText: { type: [String, Function], default: "确定" },
|
|
23
23
|
hiddenCancel: { type: Boolean, default: false },
|
|
24
|
+
hiddenHeader: { type: Boolean, default: false },
|
|
25
|
+
hiddenFooter: { type: Boolean, default: false },
|
|
24
26
|
width: { default: 420 },
|
|
25
27
|
reverse: { type: Boolean, default: false },
|
|
26
28
|
closeOnPressEscape: { type: Boolean, default: true },
|
|
@@ -82,7 +84,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
82
84
|
});
|
|
83
85
|
const layerComponent = computed(() => isDrawer.value ? ElDrawer : ElDialog);
|
|
84
86
|
const layerBind = computed(
|
|
85
|
-
() => isDrawer.value ? {
|
|
87
|
+
() => isDrawer.value ? {
|
|
88
|
+
size: props.width,
|
|
89
|
+
direction: props.direction,
|
|
90
|
+
// drawer 有 EP 原生开关,隐藏时节点真不渲染(优于 CSS 兜)
|
|
91
|
+
withHeader: !props.hiddenHeader
|
|
92
|
+
} : { width: props.width, alignCenter: true }
|
|
86
93
|
);
|
|
87
94
|
const showLoading = ref(false);
|
|
88
95
|
const loading = computed(() => {
|
|
@@ -122,7 +129,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
122
129
|
"confirm-modal",
|
|
123
130
|
{
|
|
124
131
|
"confirm-modal_header-divider": showHeaderDivider.value,
|
|
125
|
-
"confirm-modal_footer-divider": showFooterDivider.value
|
|
132
|
+
"confirm-modal_footer-divider": showFooterDivider.value,
|
|
133
|
+
// modal 形态用它兜 header 隐藏(EP 的 el-dialog__header 无条件渲染,见下方样式块)
|
|
134
|
+
"confirm-modal_hidden-header": __props.hiddenHeader
|
|
126
135
|
}
|
|
127
136
|
],
|
|
128
137
|
"show-close": __props.showClose,
|
|
@@ -130,50 +139,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
130
139
|
"close-on-click-modal": __props.closeOnClickModal,
|
|
131
140
|
"close-on-press-escape": __props.closeOnPressEscape,
|
|
132
141
|
onClose: closeHandler
|
|
133
|
-
}), {
|
|
134
|
-
header: withCtx(() => [
|
|
135
|
-
createElementVNode("div", _hoisted_1, [
|
|
136
|
-
renderSlot(_ctx.$slots, "title", {}, () => [
|
|
137
|
-
typeof __props.title === "function" ? (openBlock(), createBlock(resolveDynamicComponent(__props.title), { key: 0 })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
138
|
-
createTextVNode(toDisplayString(__props.title), 1)
|
|
139
|
-
], 64))
|
|
140
|
-
], true)
|
|
141
|
-
])
|
|
142
|
-
]),
|
|
143
|
-
footer: withCtx(() => [
|
|
144
|
-
createElementVNode("div", {
|
|
145
|
-
class: "confirm-modal__footer",
|
|
146
|
-
reverse: __props.reverse
|
|
147
|
-
}, [
|
|
148
|
-
renderSlot(_ctx.$slots, "footer", {
|
|
149
|
-
cancelHandler,
|
|
150
|
-
confirmHandler,
|
|
151
|
-
loading: loading.value
|
|
152
|
-
}, () => [
|
|
153
|
-
!__props.hiddenCancel ? (openBlock(), createBlock(unref(ElButton), {
|
|
154
|
-
key: 0,
|
|
155
|
-
class: "confirm-modal__cancel",
|
|
156
|
-
onClick: cancelHandler
|
|
157
|
-
}, {
|
|
158
|
-
default: withCtx(() => [
|
|
159
|
-
createTextVNode(toDisplayString(typeof __props.cancelText === "function" ? __props.cancelText() : __props.cancelText), 1)
|
|
160
|
-
]),
|
|
161
|
-
_: 1
|
|
162
|
-
})) : createCommentVNode("", true),
|
|
163
|
-
createVNode(unref(ElButton), {
|
|
164
|
-
class: "confirm-modal__confirm",
|
|
165
|
-
type: __props.type,
|
|
166
|
-
loading: loading.value,
|
|
167
|
-
onClick: confirmHandler
|
|
168
|
-
}, {
|
|
169
|
-
default: withCtx(() => [
|
|
170
|
-
createTextVNode(toDisplayString(typeof __props.confirmText === "function" ? __props.confirmText() : __props.confirmText), 1)
|
|
171
|
-
]),
|
|
172
|
-
_: 1
|
|
173
|
-
}, 8, ["type", "loading"])
|
|
174
|
-
], true)
|
|
175
|
-
], 8, _hoisted_2)
|
|
176
|
-
]),
|
|
142
|
+
}), createSlots({
|
|
177
143
|
default: withCtx(() => [
|
|
178
144
|
createElementVNode("div", {
|
|
179
145
|
ref_key: "contentRef",
|
|
@@ -189,8 +155,60 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
189
155
|
renderSlot(_ctx.$slots, "main-footer", {}, void 0, true)
|
|
190
156
|
], 2)
|
|
191
157
|
]),
|
|
192
|
-
_:
|
|
193
|
-
},
|
|
158
|
+
_: 2
|
|
159
|
+
}, [
|
|
160
|
+
!__props.hiddenHeader ? {
|
|
161
|
+
name: "header",
|
|
162
|
+
fn: withCtx(() => [
|
|
163
|
+
createElementVNode("div", _hoisted_1, [
|
|
164
|
+
renderSlot(_ctx.$slots, "title", {}, () => [
|
|
165
|
+
typeof __props.title === "function" ? (openBlock(), createBlock(resolveDynamicComponent(__props.title), { key: 0 })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
166
|
+
createTextVNode(toDisplayString(__props.title), 1)
|
|
167
|
+
], 64))
|
|
168
|
+
], true)
|
|
169
|
+
])
|
|
170
|
+
]),
|
|
171
|
+
key: "0"
|
|
172
|
+
} : void 0,
|
|
173
|
+
!__props.hiddenFooter ? {
|
|
174
|
+
name: "footer",
|
|
175
|
+
fn: withCtx(() => [
|
|
176
|
+
createElementVNode("div", {
|
|
177
|
+
class: "confirm-modal__footer",
|
|
178
|
+
reverse: __props.reverse
|
|
179
|
+
}, [
|
|
180
|
+
renderSlot(_ctx.$slots, "footer", {
|
|
181
|
+
cancelHandler,
|
|
182
|
+
confirmHandler,
|
|
183
|
+
loading: loading.value
|
|
184
|
+
}, () => [
|
|
185
|
+
!__props.hiddenCancel ? (openBlock(), createBlock(unref(ElButton), {
|
|
186
|
+
key: 0,
|
|
187
|
+
class: "confirm-modal__cancel",
|
|
188
|
+
onClick: cancelHandler
|
|
189
|
+
}, {
|
|
190
|
+
default: withCtx(() => [
|
|
191
|
+
createTextVNode(toDisplayString(typeof __props.cancelText === "function" ? __props.cancelText() : __props.cancelText), 1)
|
|
192
|
+
]),
|
|
193
|
+
_: 1
|
|
194
|
+
})) : createCommentVNode("", true),
|
|
195
|
+
createVNode(unref(ElButton), {
|
|
196
|
+
class: "confirm-modal__confirm",
|
|
197
|
+
type: __props.type,
|
|
198
|
+
loading: loading.value,
|
|
199
|
+
onClick: confirmHandler
|
|
200
|
+
}, {
|
|
201
|
+
default: withCtx(() => [
|
|
202
|
+
createTextVNode(toDisplayString(typeof __props.confirmText === "function" ? __props.confirmText() : __props.confirmText), 1)
|
|
203
|
+
]),
|
|
204
|
+
_: 1
|
|
205
|
+
}, 8, ["type", "loading"])
|
|
206
|
+
], true)
|
|
207
|
+
], 8, _hoisted_2)
|
|
208
|
+
]),
|
|
209
|
+
key: "1"
|
|
210
|
+
} : void 0
|
|
211
|
+
]), 1040, ["model-value", "class", "show-close", "close-on-click-modal", "close-on-press-escape"]);
|
|
194
212
|
};
|
|
195
213
|
}
|
|
196
214
|
});
|