@done-coding/admin-core 0.19.0 → 0.19.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.
Files changed (55) hide show
  1. package/es/components/display/TabsTile.vue.mjs +1 -1
  2. package/es/components/list-layout/ListLayout.vue.mjs +7 -0
  3. package/es/components/{list-page/ListPage.vue2.mjs → list-layout/ListLayout.vue2.mjs} +16 -16
  4. package/es/components/{list-page/use-sticky.mjs → list-layout/use-list-layout-sticky.mjs} +2 -2
  5. package/es/components/misc/AutoRefreshGroup.vue.mjs +1 -1
  6. package/es/components/misc/AutoRefreshGroup.vue2.mjs +2 -1
  7. package/es/components/modal/ModalConfirm.vue.mjs +1 -1
  8. package/es/components/panel/PanelMain.vue.mjs +1 -1
  9. package/es/components/panel/PanelMain.vue2.mjs +2 -2
  10. package/es/components/table/TableMain.vue.mjs +1 -1
  11. package/es/components/table/TableMain.vue2.mjs +1 -1
  12. package/es/components/view-layout/ViewLayout.vue.mjs +7 -0
  13. package/es/components/view-layout/ViewLayout.vue2.mjs +117 -0
  14. package/es/helpers/list-helper.mjs +1 -1
  15. package/es/index.mjs +17 -14
  16. package/es/style.css +49 -31
  17. package/package.json +2 -2
  18. package/src/components/README.md +8 -7
  19. package/src/components/app-layout/README.md +1 -1
  20. package/src/components/app-layout/docs/README-AppPage.md +3 -3
  21. package/src/components/data-view/README.md +1 -1
  22. package/src/components/data-view/docs/README-DataListView.md +2 -2
  23. package/src/components/display/docs/README-ActionBtnGroup.md +1 -1
  24. package/src/components/display/docs/README-HeightProvider.md +2 -2
  25. package/src/components/display/docs/README-TabsMain.md +1 -1
  26. package/src/components/display/docs/README-WatchSize.md +1 -1
  27. package/src/components/form/docs/README-FormSearch.md +6 -6
  28. package/src/components/list-layout/README.md +16 -0
  29. package/src/components/{list-page/docs/README-ListPage.md → list-layout/docs/README-ListLayout.md} +18 -17
  30. package/src/components/misc/docs/README-AutoRefreshGroup.md +1 -1
  31. package/src/components/modal/docs/README-ModalDetail.md +5 -5
  32. package/src/components/modal/docs/README-ModalPorter.md +1 -1
  33. package/src/components/panel/README.md +1 -1
  34. package/src/components/panel/docs/README-PanelMain.md +5 -5
  35. package/src/components/slot-layout/docs/README-SlotLayoutFlowAside.md +3 -3
  36. package/src/components/table/docs/README-TableMain.md +4 -4
  37. package/src/components/view-layout/README.md +11 -0
  38. package/src/components/view-layout/docs/README-ViewLayout.md +81 -0
  39. package/types/components/app-layout/app-page-geometry.d.ts +1 -1
  40. package/types/components/form/types.d.ts +1 -1
  41. package/types/components/{list-page/ListPage.vue.d.ts → list-layout/ListLayout.vue.d.ts} +6 -6
  42. package/types/components/list-layout/index.d.ts +5 -0
  43. package/types/components/{list-page → list-layout}/types.d.ts +13 -7
  44. package/types/components/{list-page/use-sticky.d.ts → list-layout/use-list-layout-sticky.d.ts} +10 -10
  45. package/types/components/table/types.d.ts +1 -1
  46. package/types/components/view-layout/ViewLayout.vue.d.ts +19 -0
  47. package/types/components/view-layout/index.d.ts +2 -0
  48. package/types/components/view-layout/types.d.ts +36 -0
  49. package/types/helpers/list-helper.d.ts +1 -1
  50. package/types/index.d.ts +2 -1
  51. package/types/inject/key.d.ts +2 -2
  52. package/types/injectInfo.json.d.ts +1 -1
  53. package/es/components/list-page/ListPage.vue.mjs +0 -7
  54. package/src/components/list-page/README.md +0 -16
  55. package/types/components/list-page/index.d.ts +0 -3
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./TabsTile.vue2.mjs";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const TabsTile = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0843fa11"]]);
4
+ const TabsTile = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-efffefb9"]]);
5
5
  export {
6
6
  TabsTile as default
7
7
  };
@@ -0,0 +1,7 @@
1
+ import _sfc_main from "./ListLayout.vue2.mjs";
2
+ /* empty css */
3
+ import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
+ const ListLayout = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5301293b"]]);
5
+ export {
6
+ ListLayout as default
7
+ };
@@ -2,7 +2,7 @@ import { defineComponent, useCssVars, unref, useSlots, computed, useModel, ref,
2
2
  import { vLoading } from "element-plus";
3
3
  import FormSearch from "../form/FormSearch.vue.mjs";
4
4
  import { generateFormData, stringifyFormData } from "../form/utils.mjs";
5
- import { useListPageSticky } from "./use-sticky.mjs";
5
+ import { useListLayoutSticky } from "./use-list-layout-sticky.mjs";
6
6
  import _sfc_main$1 from "../display/WatchSize.vue.mjs";
7
7
  import TableMain from "../table/TableMain.vue.mjs";
8
8
  import SlotLayoutFlowAside from "../slot-layout/SlotLayoutFlowAside.vue.mjs";
@@ -10,7 +10,7 @@ import _pick from "lodash/pick";
10
10
  import _cloneDeep from "lodash/cloneDeep";
11
11
  import { useChannelViewportHeight } from "../../hooks/use-channel-viewport-height.mjs";
12
12
  const _sfc_main = /* @__PURE__ */ defineComponent({
13
- __name: "ListPage",
13
+ __name: "ListLayout",
14
14
  props: /* @__PURE__ */ mergeModels({
15
15
  staticQuery: { default: () => ({}) },
16
16
  formSearchProps: {},
@@ -47,13 +47,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
47
47
  emits: /* @__PURE__ */ mergeModels(["dataChange", "pageInfoChange"], ["update:isAutoRefresh", "update:refreshInterval", "update:customView"]),
48
48
  setup(__props, { expose: __expose, emit: __emit }) {
49
49
  useCssVars((_ctx) => ({
50
- "v9b019db8": minHeight.value,
51
- "v676bd8af": unref(searchStickyTop),
52
- "v9dcea7f4": unref(toolbarStickyTop),
53
- "v82e6163c": unref(pagerStickyBottom)
50
+ "ee852864": minHeight.value,
51
+ "v6179ebd9": unref(searchStickyTop),
52
+ "v0e6603c8": unref(toolbarStickyTop),
53
+ "v6d62e58c": unref(pagerStickyBottom)
54
54
  }));
55
55
  const props = __props;
56
- const listPageEmits = __emit;
56
+ const listLayoutEmits = __emit;
57
57
  const slots = useSlots();
58
58
  const hasHeader = computed(() => !!slots.header);
59
59
  const hasOperation = computed(() => !!slots.operation);
@@ -94,7 +94,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
94
94
  searchStickyTop,
95
95
  toolbarStickyTop,
96
96
  pagerStickyBottom
97
- } = useListPageSticky({
97
+ } = useListLayoutSticky({
98
98
  searchSticky: () => props.searchSticky,
99
99
  toolbarSticky: () => props.toolbarSticky,
100
100
  pagerSticky: () => props.pagerSticky,
@@ -158,10 +158,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
158
158
  };
159
159
  };
160
160
  const onDataChange = (d) => {
161
- listPageEmits("dataChange", d);
161
+ listLayoutEmits("dataChange", d);
162
162
  };
163
163
  const onPageInfoChange = (info) => {
164
- listPageEmits("pageInfoChange", info);
164
+ listLayoutEmits("pageInfoChange", info);
165
165
  };
166
166
  const onLoadingChange = (value) => {
167
167
  loading.value = value;
@@ -272,10 +272,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
272
272
  return withDirectives((openBlock(), createBlock(unref(SlotLayoutFlowAside), {
273
273
  ref_key: "layoutRoot",
274
274
  ref: layoutRoot,
275
- class: normalizeClass(["dc-list-page list-page", {
276
- "list-page_search-sticky": unref(searchStickyActive),
277
- "list-page_toolbar-sticky": unref(toolbarStickyActive),
278
- "list-page_pager-sticky": unref(pagerStickyActive)
275
+ class: normalizeClass(["dc-list-page list-page list-layout", {
276
+ "list-layout_search-sticky": unref(searchStickyActive),
277
+ "list-layout_toolbar-sticky": unref(toolbarStickyActive),
278
+ "list-layout_pager-sticky": unref(pagerStickyActive)
279
279
  }]),
280
280
  separate: __props.separateSearch,
281
281
  type: (_a = __props.separateSearchConfig) == null ? void 0 : _a.type,
@@ -286,7 +286,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
286
286
  aside: withCtx(() => [
287
287
  hasHeader.value ? (openBlock(), createBlock(unref(_sfc_main$1), {
288
288
  key: 0,
289
- class: "list-page-header",
289
+ class: "list-layout-header",
290
290
  "observe-resize": __props.headerObserveResize,
291
291
  onHeightChange: onHeaderHeightChange
292
292
  }, {
@@ -317,7 +317,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
317
317
  ]), 1040, ["list", "data", "compact"]),
318
318
  hasOperation.value ? (openBlock(), createBlock(unref(_sfc_main$1), {
319
319
  key: 1,
320
- class: "list-page-operation",
320
+ class: "list-layout-operation",
321
321
  "observe-resize": __props.operationObserveResize,
322
322
  onHeightChange: onOperateHeightChange
323
323
  }, {
@@ -2,7 +2,7 @@ import { computed, shallowRef, inject, watch, nextTick } from "vue";
2
2
  import { APP_PAGE_CONTENT_INSET } from "../../inject/key.mjs";
3
3
  import { useActivated } from "../../hooks/activated.mjs";
4
4
  import { domClosestStickyScrollport } from "../../utils/dom.mjs";
5
- function useListPageSticky(options) {
5
+ function useListLayoutSticky(options) {
6
6
  const searchStickyActive = computed(
7
7
  () => options.searchSticky() && !options.separateSearch()
8
8
  );
@@ -49,5 +49,5 @@ function useListPageSticky(options) {
49
49
  };
50
50
  }
51
51
  export {
52
- useListPageSticky
52
+ useListLayoutSticky
53
53
  };
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./AutoRefreshGroup.vue2.mjs";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const AutoRefreshGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b4bb0cd5"]]);
4
+ const AutoRefreshGroup = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0ebeb4c7"]]);
5
5
  export {
6
6
  AutoRefreshGroup as default
7
7
  };
@@ -23,7 +23,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
23
23
  const refreshInterval = useModel(__props, "interval");
24
24
  return (_ctx, _cache) => {
25
25
  return openBlock(), createBlock(unref(_sfc_main$1), {
26
- disabled: !__props.needRootNode
26
+ disabled: !__props.needRootNode,
27
+ class: "auto-refresh-group-root"
27
28
  }, {
28
29
  default: withCtx(() => [
29
30
  __props.showAutoRefresh ? (openBlock(), createBlock(AutoRefresh, {
@@ -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-3d9e58a4"]]);
5
+ const ModalConfirm = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-fca575ec"]]);
6
6
  export {
7
7
  ModalConfirm as default
8
8
  };
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./PanelMain.vue2.mjs";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const PanelMain = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-9e060e8b"]]);
4
+ const PanelMain = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e74d05c3"]]);
5
5
  export {
6
6
  PanelMain as default
7
7
  };
@@ -18,7 +18,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
18
18
  emits: ["submitSuccess"],
19
19
  setup(__props, { emit: __emit }) {
20
20
  useCssVars((_ctx) => ({
21
- "v6dd4af74": cardLastMarginBottom.value
21
+ "v0799966c": cardLastMarginBottom.value
22
22
  }));
23
23
  const props = __props;
24
24
  const emits = __emit;
@@ -30,7 +30,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
30
30
  () => `panel-main-item-col-wrap_${itemWrapTag.value === ElCard ? "card" : "plain"}`
31
31
  );
32
32
  const cardLastMarginBottom = computed(
33
- () => typeof props.itemCard === "object" && props.itemCard.lastMarginBottom ? props.itemCard.lastMarginBottom : 0
33
+ () => typeof props.itemCard === "object" && props.itemCard.lastMarginBottom !== void 0 ? props.itemCard.lastMarginBottom : "10px"
34
34
  );
35
35
  const isHidden = (config) => {
36
36
  const { hide } = config;
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./TableMain.vue2.mjs";
2
2
  /* empty css */
3
3
  import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
- const TableMain = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-eae8d23b"]]);
4
+ const TableMain = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-54ab0e8e"]]);
5
5
  export {
6
6
  TableMain as default
7
7
  };
@@ -51,7 +51,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
51
51
  emits: /* @__PURE__ */ mergeModels(["pageChange", "pageSizeChange", "dataChange", "loadingChange", "pageInfoChange"], ["update:isAutoRefresh", "update:refreshInterval", "update:customView"]),
52
52
  setup(__props, { expose: __expose, emit: __emit }) {
53
53
  useCssVars((_ctx) => ({
54
- "v0d0c522f": unref(fillMinHeightCss)
54
+ "v6df3e765": unref(fillMinHeightCss)
55
55
  }));
56
56
  const props = __props;
57
57
  const emits = __emit;
@@ -0,0 +1,7 @@
1
+ import _sfc_main from "./ViewLayout.vue2.mjs";
2
+ /* empty css */
3
+ import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
+ const ViewLayout = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5e8f862f"]]);
5
+ export {
6
+ ViewLayout as default
7
+ };
@@ -0,0 +1,117 @@
1
+ import { defineComponent, shallowRef, ref, computed, provide, watch, openBlock, createElementBlock, createBlock, unref, withCtx, createElementVNode, normalizeStyle, renderSlot, createVNode, Fragment } from "vue";
2
+ import AutoRefreshGroup from "../misc/AutoRefreshGroup.vue.mjs";
3
+ import _sfc_main$1 from "../display/HeightProvider.vue.mjs";
4
+ import { useChannelViewportHeight } from "../../hooks/use-channel-viewport-height.mjs";
5
+ import { useActivated } from "../../hooks/activated.mjs";
6
+ import { SCOPE_VIEWPORT_MAX_HEIGHT } from "../../inject/key.mjs";
7
+ const _hoisted_1 = { class: "dc-view-layout view-layout" };
8
+ const _hoisted_2 = { class: "view-layout-toolbar" };
9
+ const _hoisted_3 = { class: "view-layout-toolbar" };
10
+ const _hoisted_4 = { class: "view-layout-content" };
11
+ const _sfc_main = /* @__PURE__ */ defineComponent({
12
+ __name: "ViewLayout",
13
+ props: {
14
+ api: {},
15
+ params: {},
16
+ refine: { type: Boolean, default: true },
17
+ viewportHeight: {},
18
+ channel: {},
19
+ parentChannel: {},
20
+ minHeight: { default: 100 },
21
+ showAutoRefresh: { type: Boolean, default: true },
22
+ showRefresh: { type: Boolean, default: true }
23
+ },
24
+ setup(__props) {
25
+ const props = __props;
26
+ const { viewportHeightFinal, nearestScope } = useChannelViewportHeight(props);
27
+ const data = shallowRef(void 0);
28
+ const loading = ref(false);
29
+ const fetch = async () => {
30
+ loading.value = true;
31
+ try {
32
+ data.value = await props.api(props.params);
33
+ } finally {
34
+ loading.value = false;
35
+ }
36
+ };
37
+ const refresh = fetch;
38
+ useActivated((info) => {
39
+ if (info.isActivated) void fetch();
40
+ });
41
+ const heightProviderViewportHeight = computed(() => viewportHeightFinal.value);
42
+ const contentStyle = (available) => ({
43
+ maxHeight: `${available}px`
44
+ });
45
+ const childViewportHeightChange = ref(0);
46
+ const onChildViewportHeightChange = (value) => {
47
+ childViewportHeightChange.value = value;
48
+ };
49
+ if (props.refine) {
50
+ provide(SCOPE_VIEWPORT_MAX_HEIGHT, {
51
+ scope: props.channel,
52
+ viewportMaxHeight: computed(() => childViewportHeightChange.value),
53
+ parent: nearestScope
54
+ });
55
+ }
56
+ watch(
57
+ // eslint-disable-next-line vue/no-setup-props-destructure
58
+ () => props.channel,
59
+ () => console.error("[ViewLayout] channel 不支持响应式变更,当前值已忽略。")
60
+ );
61
+ return (_ctx, _cache) => {
62
+ return openBlock(), createElementBlock("div", _hoisted_1, [
63
+ __props.refine ? (openBlock(), createBlock(unref(_sfc_main$1), {
64
+ key: 0,
65
+ viewportHeight: heightProviderViewportHeight.value,
66
+ minHeight: __props.minHeight,
67
+ onChildViewportHeightChange
68
+ }, {
69
+ header: withCtx(() => [
70
+ createElementVNode("div", _hoisted_2, [
71
+ createVNode(unref(AutoRefreshGroup), {
72
+ refreshFn: fetch,
73
+ loading: loading.value,
74
+ showAutoRefresh: __props.showAutoRefresh,
75
+ showRefresh: __props.showRefresh
76
+ }, null, 8, ["loading", "showAutoRefresh", "showRefresh"])
77
+ ])
78
+ ]),
79
+ default: withCtx(({ viewportHeight }) => [
80
+ createElementVNode("div", {
81
+ class: "view-layout-content",
82
+ style: normalizeStyle(contentStyle(viewportHeight))
83
+ }, [
84
+ renderSlot(_ctx.$slots, "default", {
85
+ data: data.value,
86
+ loading: loading.value,
87
+ refresh: unref(refresh),
88
+ viewportHeight
89
+ }, void 0, true)
90
+ ], 4)
91
+ ]),
92
+ _: 3
93
+ }, 8, ["viewportHeight", "minHeight"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
94
+ createElementVNode("div", _hoisted_3, [
95
+ createVNode(unref(AutoRefreshGroup), {
96
+ refreshFn: fetch,
97
+ loading: loading.value,
98
+ showAutoRefresh: __props.showAutoRefresh,
99
+ showRefresh: __props.showRefresh
100
+ }, null, 8, ["loading", "showAutoRefresh", "showRefresh"])
101
+ ]),
102
+ createElementVNode("div", _hoisted_4, [
103
+ renderSlot(_ctx.$slots, "default", {
104
+ data: data.value,
105
+ loading: loading.value,
106
+ refresh: unref(refresh),
107
+ viewportHeight: void 0
108
+ }, void 0, true)
109
+ ])
110
+ ], 64))
111
+ ]);
112
+ };
113
+ }
114
+ });
115
+ export {
116
+ _sfc_main as default
117
+ };
@@ -1,4 +1,4 @@
1
- const DEFAULT_PAGE_SIZE = 200;
1
+ const DEFAULT_PAGE_SIZE = 100;
2
2
  const DEFAULT_LIMIT = 1e4;
3
3
  async function fetchListAll(api, baseParams, opts) {
4
4
  var _a;
package/es/index.mjs CHANGED
@@ -46,15 +46,16 @@ import { default as default41 } from "./components/form/FormMain.vue.mjs";
46
46
  import { default as default42 } from "./components/form/FormSearch.vue.mjs";
47
47
  import { default as default43 } from "./components/form/FormSubmitPanel.vue.mjs";
48
48
  import { default as default44 } from "./components/form/FormVerifyImage.vue.mjs";
49
- import { default as default45 } from "./components/list-page/ListPage.vue.mjs";
50
- import { default as default46 } from "./components/panel/PanelEditSwitch.vue.mjs";
51
- import { default as default47 } from "./components/panel/PanelItem.vue.mjs";
52
- import { default as default48 } from "./components/panel/PanelItemNestForm.vue.mjs";
53
- import { default as default49 } from "./components/panel/PanelMain.vue.mjs";
49
+ import { default as default45, default as default46 } from "./components/list-layout/ListLayout.vue.mjs";
50
+ import { default as default47 } from "./components/panel/PanelEditSwitch.vue.mjs";
51
+ import { default as default48 } from "./components/panel/PanelItem.vue.mjs";
52
+ import { default as default49 } from "./components/panel/PanelItemNestForm.vue.mjs";
53
+ import { default as default50 } from "./components/panel/PanelMain.vue.mjs";
54
54
  import { ROUTE_MODULE_LEVEL, TabsMainReplaceQueryKey } from "./config/route.mjs";
55
- import { default as default50 } from "./components/slot-layout/SlotLayoutFlowAside.vue.mjs";
55
+ import { default as default51 } from "./components/slot-layout/SlotLayoutFlowAside.vue.mjs";
56
56
  import { TABLE_COLUMN_KEY_OPERATE, TABLE_COLUMN_KEY_SELECTION } from "./components/table/constants.mjs";
57
- import { default as default51 } from "./components/table/TableMain.vue.mjs";
57
+ import { default as default52 } from "./components/table/TableMain.vue.mjs";
58
+ import { default as default53 } from "./components/view-layout/ViewLayout.vue.mjs";
58
59
  import { buildRhythmCss, useCoreThemeApply } from "./hooks/use-theme-apply.mjs";
59
60
  import { checkLogin } from "./router/guard/login.mjs";
60
61
  import { checkPermission } from "./router/guard/permission.mjs";
@@ -136,7 +137,8 @@ export {
136
137
  default13 as FormVerifyCode,
137
138
  default44 as FormVerifyImage,
138
139
  default14 as HeightProvider,
139
- default45 as ListPage,
140
+ default45 as ListLayout,
141
+ default46 as ListPage,
140
142
  default15 as MenuItemSub,
141
143
  default16 as MenuTree,
142
144
  default38 as ModalConfirm,
@@ -147,23 +149,24 @@ export {
147
149
  NEST_LAYOUT_SCALE_KEY,
148
150
  NEST_LAYOUT_TIERS,
149
151
  OPERATE_COLUMN_PROP,
150
- default46 as PanelEditSwitch,
151
- default47 as PanelItem,
152
- default48 as PanelItemNestForm,
152
+ default47 as PanelEditSwitch,
153
+ default48 as PanelItem,
154
+ default49 as PanelItemNestForm,
153
155
  default19 as PanelItemNestPanel,
154
- default49 as PanelMain,
156
+ default50 as PanelMain,
155
157
  ROUTE_MODULE_LEVEL,
156
158
  SCOPE_VIEWPORT_MAX_HEIGHT,
157
159
  default20 as SelectModule,
158
- default50 as SlotLayoutFlowAside,
160
+ default51 as SlotLayoutFlowAside,
159
161
  default21 as SlotLayoutTemplate,
160
162
  TABLE_COLUMN_KEY_OPERATE,
161
163
  TABLE_COLUMN_KEY_SELECTION,
162
164
  TABS_MAIN_VISUAL_LEVEL,
163
- default51 as TableMain,
165
+ default52 as TableMain,
164
166
  default22 as TabsMain,
165
167
  TabsMainReplaceQueryKey,
166
168
  default23 as TriggerAutoImport,
169
+ default53 as ViewLayout,
167
170
  default24 as WatchSize,
168
171
  buildRhythmCss,
169
172
  ceilToTier,
package/es/style.css CHANGED
@@ -1,11 +1,11 @@
1
- .confirm-modal__title[data-v-3d9e58a4] {
1
+ .confirm-modal__title[data-v-fca575ec] {
2
2
  font-size: 16px;
3
3
  font-weight: 600;
4
4
  line-height: 24px;
5
5
  color: var(--el-text-color-primary);
6
6
  text-align: left;
7
7
  }
8
- .confirm-modal__content[data-v-3d9e58a4] {
8
+ .confirm-modal__content[data-v-fca575ec] {
9
9
  overflow-x: hidden;
10
10
  overflow-y: auto;
11
11
  max-height: calc(100vh - 200px);
@@ -15,20 +15,20 @@
15
15
  text-align: left;
16
16
  word-break: break-word;
17
17
  }
18
- .confirm-modal__content_drawer[data-v-3d9e58a4] {
18
+ .confirm-modal__content_drawer[data-v-fca575ec] {
19
19
  max-height: none;
20
20
  height: 100%;
21
21
  }
22
- .confirm-modal__footer[data-v-3d9e58a4] {
22
+ .confirm-modal__footer[data-v-fca575ec] {
23
23
  display: flex;
24
24
  justify-content: flex-end;
25
25
  align-items: center;
26
26
  gap: 8px;
27
27
  }
28
- .confirm-modal__footer[data-v-3d9e58a4] .el-button {
28
+ .confirm-modal__footer[data-v-fca575ec] .el-button {
29
29
  min-width: 72px;
30
30
  }
31
- .confirm-modal__footer[reverse="true"][data-v-3d9e58a4] {
31
+ .confirm-modal__footer[reverse="true"][data-v-fca575ec] {
32
32
  flex-direction: row-reverse;
33
33
  }
34
34
  .dc-confirm-modal.el-drawer .el-drawer__header {
@@ -164,8 +164,8 @@
164
164
  padding-right: 0;
165
165
  padding-bottom: 4px;
166
166
  }
167
- .panel-main-item-col:not(:last-of-type) .panel-main-item-col-wrap_card[data-v-9e060e8b] {
168
- margin-bottom: var(--v6dd4af74);
167
+ .panel-main-item-col:not(:last-of-type) .panel-main-item-col-wrap_card[data-v-e74d05c3] {
168
+ margin-bottom: var(--v0799966c);
169
169
  }
170
170
  .form-search_show[data-v-b96e10f6] {
171
171
  margin-bottom: 10px;
@@ -300,23 +300,23 @@
300
300
  color: var(--dc-core-primary-color);
301
301
  font-weight: 600;
302
302
  }
303
- .dc-tabs-tile--nav-absolute[data-v-0843fa11],
304
- .dc-tabs-tile--nav-fixed[data-v-0843fa11] {
303
+ .dc-tabs-tile--nav-absolute[data-v-efffefb9],
304
+ .dc-tabs-tile--nav-fixed[data-v-efffefb9] {
305
305
  position: relative;
306
306
  }
307
- .dc-tabs-tile--nav-sticky[data-v-0843fa11] {
307
+ .dc-tabs-tile--nav-sticky[data-v-efffefb9] {
308
308
  display: flex;
309
309
  flex-direction: column;
310
310
  }
311
- .dc-tabs-tile__scroll[data-v-0843fa11] {
311
+ .dc-tabs-tile__scroll[data-v-efffefb9] {
312
312
  display: flex;
313
313
  flex-direction: column;
314
314
  gap: 12px;
315
315
  }
316
- .dc-tabs-tile__card[data-v-0843fa11] {
316
+ .dc-tabs-tile__card[data-v-efffefb9] {
317
317
  width: 100%;
318
318
  }
319
- .dc-tabs-tile__nav[data-v-0843fa11] {
319
+ .dc-tabs-tile__nav[data-v-efffefb9] {
320
320
  z-index: 2;
321
321
  max-height: 60%;
322
322
  overflow: auto;
@@ -551,10 +551,16 @@
551
551
  color: var(--el-text-color-regular);
552
552
  margin-bottom: 8px;
553
553
  }
554
- .auto-refresh-group-icon--rotating[data-v-b4bb0cd5] {
555
- animation: auto-refresh-rotating-b4bb0cd5 1s linear infinite;
554
+ /* 有根节点时(needRootNode)按钮组横向排列 + 间距(参照 TableToolbar 按钮组内 gap:10px) */
555
+ .auto-refresh-group-root[data-v-0ebeb4c7] {
556
+ display: flex;
557
+ align-items: center;
558
+ gap: 10px;
559
+ }
560
+ .auto-refresh-group-icon--rotating[data-v-0ebeb4c7] {
561
+ animation: auto-refresh-rotating-0ebeb4c7 1s linear infinite;
556
562
  }
557
- @keyframes auto-refresh-rotating-b4bb0cd5 {
563
+ @keyframes auto-refresh-rotating-0ebeb4c7 {
558
564
  from {
559
565
  transform: rotate(0deg);
560
566
  }
@@ -686,13 +692,13 @@ to {
686
692
  min-height: 60px;
687
693
  grid-column: 1 / -1;
688
694
  }
689
- .table-main-pagination[data-v-eae8d23b] {
695
+ .table-main-pagination[data-v-54ab0e8e] {
690
696
  margin-top: 10px;
691
697
  display: flex;
692
698
  justify-content: flex-end;
693
699
  }
694
- .table-main_fill[data-v-eae8d23b] .el-table__body-wrapper {
695
- min-height: var(--v0d0c522f);
700
+ .table-main_fill[data-v-54ab0e8e] .el-table__body-wrapper {
701
+ min-height: var(--v6df3e765);
696
702
  }
697
703
  .dc-slot-layout-flow-aside_separate[data-v-5c6ef74b] {
698
704
  position: relative;
@@ -722,40 +728,40 @@ to {
722
728
  .dc-slot-layout-flow-aside-main[data-v-5c6ef74b] {
723
729
  width: var(--v7e1d11ca);
724
730
  }
725
- .list-page[data-v-1ae6f01e] {
726
- min-height: var(--v9b019db8);
731
+ .list-layout[data-v-5301293b] {
732
+ min-height: var(--ee852864);
727
733
  }
728
- .list-page-header[data-v-1ae6f01e] {
734
+ .list-layout-header[data-v-5301293b] {
729
735
  margin-bottom: 10px;
730
736
  }
731
- .list-page-operation[data-v-1ae6f01e] {
737
+ .list-layout-operation[data-v-5301293b] {
732
738
  margin-bottom: 10px;
733
739
  }
734
- .list-page_search-sticky[data-v-1ae6f01e] .form-search {
740
+ .list-layout_search-sticky[data-v-5301293b] .form-search {
735
741
  position: sticky;
736
- top: var(--v676bd8af);
742
+ top: var(--v6179ebd9);
737
743
  z-index: 10;
738
744
  background: var(--dc-core-surface, var(--el-bg-color));
739
745
  box-shadow: 0 1px 0 0 var(--dc-core-border-color, var(--el-border-color-lighter));
740
746
  }
741
- .list-page_toolbar-sticky[data-v-1ae6f01e] .dc-table-main__toolbar {
747
+ .list-layout_toolbar-sticky[data-v-5301293b] .dc-table-main__toolbar {
742
748
  position: sticky;
743
- top: var(--v9dcea7f4);
749
+ top: var(--v0e6603c8);
744
750
  z-index: 9;
745
751
  padding-top: 10px;
746
752
  background: var(--dc-core-surface, var(--el-bg-color));
747
753
  box-shadow: 0 1px 0 0 var(--dc-core-border-color, var(--el-border-color-lighter));
748
754
  }
749
- .list-page_pager-sticky[data-v-1ae6f01e] .dc-table-main__pagination {
755
+ .list-layout_pager-sticky[data-v-5301293b] .dc-table-main__pagination {
750
756
  position: sticky;
751
- bottom: var(--v82e6163c);
757
+ bottom: var(--v6d62e58c);
752
758
  z-index: 9;
753
759
  margin-top: 0;
754
760
  padding-top: 10px;
755
761
  background: var(--dc-core-surface, var(--el-bg-color));
756
762
  box-shadow: 0 -1px 0 0 var(--dc-core-border-color, var(--el-border-color-lighter));
757
763
  }
758
- .list-page[data-v-1ae6f01e] .el-loading-mask {
764
+ .list-layout[data-v-5301293b] .el-loading-mask {
759
765
  left: -10px;
760
766
  top: -10px;
761
767
  right: -10px;
@@ -767,3 +773,15 @@ to {
767
773
  gap: 8px;
768
774
  margin-top: 8px;
769
775
  }
776
+ .view-layout[data-v-5e8f862f] {
777
+ display: flex;
778
+ flex-direction: column;
779
+ gap: 8px;
780
+ }
781
+ .view-layout-toolbar[data-v-5e8f862f] {
782
+ display: flex;
783
+ justify-content: flex-end;
784
+ }
785
+ .view-layout-content[data-v-5e8f862f] {
786
+ overflow: auto;
787
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@done-coding/admin-core",
3
- "version": "0.19.0",
3
+ "version": "0.19.1-alpha.0",
4
4
  "description": "内部前端库",
5
5
  "private": false,
6
6
  "main": "es/index.mjs",
@@ -80,5 +80,5 @@
80
80
  "node": ">=18.0.0",
81
81
  "pnpm": ">=9.0.0"
82
82
  },
83
- "gitHead": "69b4030b6af2d515778245f56ea2382090b5083a"
83
+ "gitHead": "a18e4ec70e2ca8652f6a8b8a5a2ea0be298d9601"
84
84
  }