@ditari/bsui 5.1.19 → 5.1.22

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 (135) hide show
  1. package/dist/cjs/components/action-bar/ActionBar.vue.cjs +10 -0
  2. package/dist/cjs/components/action-bar/ActionBar.vue.cjs.map +1 -0
  3. package/dist/cjs/components/action-bar/ActionBar.vue.d.ts +48 -0
  4. package/dist/cjs/components/action-bar/ActionBar.vue2.cjs +114 -0
  5. package/dist/cjs/components/action-bar/ActionBar.vue2.cjs.map +1 -0
  6. package/dist/cjs/components/action-bar/index.cjs +16 -0
  7. package/dist/cjs/components/action-bar/index.cjs.map +1 -0
  8. package/dist/cjs/components/action-bar/index.d.ts +4 -0
  9. package/dist/cjs/components/card/Card.cjs +8 -2
  10. package/dist/cjs/components/card/Card.cjs.map +1 -1
  11. package/dist/cjs/components/card/style.cjs +4 -2
  12. package/dist/cjs/components/card/style.cjs.map +1 -1
  13. package/dist/cjs/components/desensitize/Desensitize.cjs +99 -0
  14. package/dist/cjs/components/desensitize/Desensitize.cjs.map +1 -0
  15. package/dist/cjs/components/desensitize/Desensitize.d.ts +60 -0
  16. package/dist/cjs/components/desensitize/index.cjs +15 -0
  17. package/dist/cjs/components/desensitize/index.cjs.map +1 -0
  18. package/dist/cjs/components/desensitize/index.d.ts +4 -0
  19. package/dist/cjs/components/desensitize/style.cjs +22 -0
  20. package/dist/cjs/components/desensitize/style.cjs.map +1 -0
  21. package/dist/cjs/components/desensitize/style.d.ts +6 -0
  22. package/dist/cjs/components/dic/DicReplace.cjs +2 -1
  23. package/dist/cjs/components/dic/DicReplace.cjs.map +1 -1
  24. package/dist/cjs/components/form/FormLayout.cjs +147 -23
  25. package/dist/cjs/components/form/FormLayout.cjs.map +1 -1
  26. package/dist/cjs/components/form/FormLayout.d.ts +61 -0
  27. package/dist/cjs/components/index.cjs +6 -0
  28. package/dist/cjs/components/index.cjs.map +1 -1
  29. package/dist/cjs/components/index.d.ts +2 -0
  30. package/dist/cjs/components/layout/AppContext.cjs.map +1 -1
  31. package/dist/cjs/components/layout/AppLayout.cjs.map +1 -1
  32. package/dist/cjs/components/layout/List.cjs.map +1 -1
  33. package/dist/cjs/components/layout/Show.cjs.map +1 -1
  34. package/dist/cjs/components/layout/components/layout/RouterContentName.vue2.cjs.map +1 -1
  35. package/dist/cjs/components/layout/components/mobile/MobileList.cjs.map +1 -1
  36. package/dist/cjs/components/layout/style.cjs.map +1 -1
  37. package/dist/cjs/components/select/Select.vue2.cjs +0 -3
  38. package/dist/cjs/components/select/Select.vue2.cjs.map +1 -1
  39. package/dist/cjs/components/table-form/TableForm.cjs.map +1 -1
  40. package/dist/cjs/components/table-form/TableFormItem.cjs.map +1 -1
  41. package/dist/cjs/components/table-form/index.cjs.map +1 -1
  42. package/dist/cjs/components/table-form/interface.cjs.map +1 -1
  43. package/dist/cjs/components/table-form/style.cjs.map +1 -1
  44. package/dist/cjs/components/tools-bar/ToolsBar.vue.cjs +10 -0
  45. package/dist/cjs/components/tools-bar/ToolsBar.vue.cjs.map +1 -0
  46. package/dist/cjs/components/tools-bar/ToolsBar.vue.d.ts +27 -0
  47. package/dist/cjs/components/tools-bar/ToolsBar.vue2.cjs +124 -0
  48. package/dist/cjs/components/tools-bar/ToolsBar.vue2.cjs.map +1 -0
  49. package/dist/cjs/components/tools-bar/index.cjs +16 -0
  50. package/dist/cjs/components/tools-bar/index.cjs.map +1 -0
  51. package/dist/cjs/components/tools-bar/index.d.ts +4 -0
  52. package/dist/cjs/hooks/useDesign.cjs.map +1 -1
  53. package/dist/cjs/index.cjs +4 -0
  54. package/dist/cjs/index.cjs.map +1 -1
  55. package/dist/cjs/utils/withInstall.cjs.map +1 -1
  56. package/dist/esm/components/action-bar/ActionBar.vue.d.ts +48 -0
  57. package/dist/esm/components/action-bar/ActionBar.vue.mjs +6 -0
  58. package/dist/esm/components/action-bar/ActionBar.vue.mjs.map +1 -0
  59. package/dist/esm/components/action-bar/ActionBar.vue2.mjs +110 -0
  60. package/dist/esm/components/action-bar/ActionBar.vue2.mjs.map +1 -0
  61. package/dist/esm/components/action-bar/index.d.ts +4 -0
  62. package/dist/esm/components/action-bar/index.mjs +11 -0
  63. package/dist/esm/components/action-bar/index.mjs.map +1 -0
  64. package/dist/esm/components/card/Card.mjs +8 -2
  65. package/dist/esm/components/card/Card.mjs.map +1 -1
  66. package/dist/esm/components/card/style.mjs +4 -2
  67. package/dist/esm/components/card/style.mjs.map +1 -1
  68. package/dist/esm/components/desensitize/Desensitize.d.ts +60 -0
  69. package/dist/esm/components/desensitize/Desensitize.mjs +97 -0
  70. package/dist/esm/components/desensitize/Desensitize.mjs.map +1 -0
  71. package/dist/esm/components/desensitize/index.d.ts +4 -0
  72. package/dist/esm/components/desensitize/index.mjs +10 -0
  73. package/dist/esm/components/desensitize/index.mjs.map +1 -0
  74. package/dist/esm/components/desensitize/style.d.ts +6 -0
  75. package/dist/esm/components/desensitize/style.mjs +20 -0
  76. package/dist/esm/components/desensitize/style.mjs.map +1 -0
  77. package/dist/esm/components/dic/DicReplace.mjs +2 -1
  78. package/dist/esm/components/dic/DicReplace.mjs.map +1 -1
  79. package/dist/esm/components/form/FormLayout.d.ts +61 -0
  80. package/dist/esm/components/form/FormLayout.mjs +149 -25
  81. package/dist/esm/components/form/FormLayout.mjs.map +1 -1
  82. package/dist/esm/components/index.d.ts +2 -0
  83. package/dist/esm/components/index.mjs +4 -0
  84. package/dist/esm/components/index.mjs.map +1 -1
  85. package/dist/esm/components/layout/AppContext.mjs.map +1 -1
  86. package/dist/esm/components/layout/AppLayout.mjs.map +1 -1
  87. package/dist/esm/components/layout/List.mjs.map +1 -1
  88. package/dist/esm/components/layout/Show.mjs.map +1 -1
  89. package/dist/esm/components/layout/components/layout/RouterContentName.vue2.mjs.map +1 -1
  90. package/dist/esm/components/layout/components/mobile/MobileList.mjs.map +1 -1
  91. package/dist/esm/components/layout/style.mjs.map +1 -1
  92. package/dist/esm/components/select/Select.vue2.mjs +0 -3
  93. package/dist/esm/components/select/Select.vue2.mjs.map +1 -1
  94. package/dist/esm/components/table-form/TableForm.mjs.map +1 -1
  95. package/dist/esm/components/table-form/TableFormItem.mjs.map +1 -1
  96. package/dist/esm/components/table-form/index.mjs.map +1 -1
  97. package/dist/esm/components/table-form/interface.mjs.map +1 -1
  98. package/dist/esm/components/table-form/style.mjs.map +1 -1
  99. package/dist/esm/components/tools-bar/ToolsBar.vue.d.ts +27 -0
  100. package/dist/esm/components/tools-bar/ToolsBar.vue.mjs +6 -0
  101. package/dist/esm/components/tools-bar/ToolsBar.vue.mjs.map +1 -0
  102. package/dist/esm/components/tools-bar/ToolsBar.vue2.mjs +120 -0
  103. package/dist/esm/components/tools-bar/ToolsBar.vue2.mjs.map +1 -0
  104. package/dist/esm/components/tools-bar/index.d.ts +4 -0
  105. package/dist/esm/components/tools-bar/index.mjs +11 -0
  106. package/dist/esm/components/tools-bar/index.mjs.map +1 -0
  107. package/dist/esm/hooks/useDesign.mjs.map +1 -1
  108. package/dist/esm/index.mjs +2 -0
  109. package/dist/esm/index.mjs.map +1 -1
  110. package/dist/esm/utils/withInstall.mjs.map +1 -1
  111. package/dist/types/components/action-bar/ActionBar.vue.d.ts +48 -0
  112. package/dist/types/components/action-bar/ActionBar.vue.d.ts.map +1 -0
  113. package/dist/types/components/action-bar/index.d.ts +4 -0
  114. package/dist/types/components/action-bar/index.d.ts.map +1 -0
  115. package/dist/types/components/card/Card.d.ts.map +1 -1
  116. package/dist/types/components/card/style.d.ts.map +1 -1
  117. package/dist/types/components/desensitize/Desensitize.d.ts +60 -0
  118. package/dist/types/components/desensitize/Desensitize.d.ts.map +1 -0
  119. package/dist/types/components/desensitize/index.d.ts +4 -0
  120. package/dist/types/components/desensitize/index.d.ts.map +1 -0
  121. package/dist/types/components/desensitize/style.d.ts +6 -0
  122. package/dist/types/components/desensitize/style.d.ts.map +1 -0
  123. package/dist/types/components/dic/DicReplace.d.ts.map +1 -1
  124. package/dist/types/components/form/FormLayout.d.ts +61 -0
  125. package/dist/types/components/form/FormLayout.d.ts.map +1 -1
  126. package/dist/types/components/index.d.ts +2 -0
  127. package/dist/types/components/index.d.ts.map +1 -1
  128. package/dist/types/components/layout/components/layout/RouterContentName.vue.d.ts.map +1 -1
  129. package/dist/types/components/tools-bar/ToolsBar.vue.d.ts +27 -0
  130. package/dist/types/components/tools-bar/ToolsBar.vue.d.ts.map +1 -0
  131. package/dist/types/components/tools-bar/index.d.ts +4 -0
  132. package/dist/types/components/tools-bar/index.d.ts.map +1 -0
  133. package/dist/types/index.d.ts.map +1 -1
  134. package/package.json +2 -2
  135. package/src/index.ts +1 -0
@@ -1,6 +1,33 @@
1
+ declare const RESPONSIVE_CONFIG: {
2
+ readonly xs: {
3
+ readonly span: 24;
4
+ readonly colsPerRow: 1;
5
+ };
6
+ readonly sm: {
7
+ readonly span: 12;
8
+ readonly colsPerRow: 2;
9
+ };
10
+ readonly md: {
11
+ readonly span: 8;
12
+ readonly colsPerRow: 3;
13
+ };
14
+ readonly lg: {
15
+ readonly span: 6;
16
+ readonly colsPerRow: 4;
17
+ };
18
+ readonly xl: {
19
+ readonly span: 6;
20
+ readonly colsPerRow: 4;
21
+ };
22
+ readonly xxl: {
23
+ readonly span: 6;
24
+ readonly colsPerRow: 4;
25
+ };
26
+ };
1
27
  /**
2
28
  * 查询表单渲染
3
29
  * 展开,隐藏功能
30
+ * 支持响应式栅格布局
4
31
  */
5
32
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
33
  scheme: {
@@ -19,6 +46,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
19
46
  type: BooleanConstructor;
20
47
  default: boolean;
21
48
  };
49
+ responsiveConfig: {
50
+ type: () => Partial<typeof RESPONSIVE_CONFIG>;
51
+ default: () => {};
52
+ };
22
53
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("query" | "reset")[], "query" | "reset", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
23
54
  scheme: {
24
55
  type: () => any[] | Record<string, any>;
@@ -36,6 +67,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
36
67
  type: BooleanConstructor;
37
68
  default: boolean;
38
69
  };
70
+ responsiveConfig: {
71
+ type: () => Partial<typeof RESPONSIVE_CONFIG>;
72
+ default: () => {};
73
+ };
39
74
  }>> & Readonly<{
40
75
  onQuery?: ((...args: any[]) => any) | undefined;
41
76
  onReset?: ((...args: any[]) => any) | undefined;
@@ -44,6 +79,32 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
44
79
  scheme: any[] | Record<string, any>;
45
80
  model: Record<string, unknown>;
46
81
  labelWidth: string;
82
+ responsiveConfig: Partial<{
83
+ readonly xs: {
84
+ readonly span: 24;
85
+ readonly colsPerRow: 1;
86
+ };
87
+ readonly sm: {
88
+ readonly span: 12;
89
+ readonly colsPerRow: 2;
90
+ };
91
+ readonly md: {
92
+ readonly span: 8;
93
+ readonly colsPerRow: 3;
94
+ };
95
+ readonly lg: {
96
+ readonly span: 6;
97
+ readonly colsPerRow: 4;
98
+ };
99
+ readonly xl: {
100
+ readonly span: 6;
101
+ readonly colsPerRow: 4;
102
+ };
103
+ readonly xxl: {
104
+ readonly span: 6;
105
+ readonly colsPerRow: 4;
106
+ };
107
+ }>;
47
108
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
48
109
  export default _default;
49
110
  //# sourceMappingURL=FormLayout.d.ts.map
@@ -1,8 +1,60 @@
1
- import { defineComponent, ref, watchEffect, watch, createVNode, onMounted } from 'vue';
2
- import { Space, Button, Form, Row, Col, FormItem } from 'ant-design-vue';
1
+ import { defineComponent, ref, watchEffect, watch, createVNode, computed, onMounted, nextTick } from 'vue';
2
+ import { Grid, Space, Button, Form, Row, Col, FormItem } from 'ant-design-vue';
3
3
  import { SearchOutlined, ReloadOutlined, DoubleRightOutlined } from '@ant-design/icons-vue';
4
4
 
5
5
  "use strict";
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ const {
23
+ useBreakpoint
24
+ } = Grid;
25
+ const RESPONSIVE_CONFIG = {
26
+ xs: {
27
+ span: 24,
28
+ colsPerRow: 1
29
+ },
30
+ // < 576px - 手机
31
+ sm: {
32
+ span: 12,
33
+ colsPerRow: 2
34
+ },
35
+ // ≥ 576px - 平板竖屏
36
+ md: {
37
+ span: 8,
38
+ colsPerRow: 3
39
+ },
40
+ // ≥ 768px - 平板横屏
41
+ lg: {
42
+ span: 6,
43
+ colsPerRow: 4
44
+ },
45
+ // ≥ 992px - 小桌面
46
+ xl: {
47
+ span: 6,
48
+ colsPerRow: 4
49
+ },
50
+ // ≥ 1200px - 桌面
51
+ xxl: {
52
+ span: 6,
53
+ colsPerRow: 4
54
+ }
55
+ // ≥ 1600px - 大桌面
56
+ };
57
+ const DEFAULT_VISIBLE_ROWS = 2;
6
58
  var FormLayout = /* @__PURE__ */ defineComponent({
7
59
  name: "DQueryForm",
8
60
  props: {
@@ -21,6 +73,11 @@ var FormLayout = /* @__PURE__ */ defineComponent({
21
73
  loading: {
22
74
  type: Boolean,
23
75
  default: false
76
+ },
77
+ // 自定义响应式配置(可选)
78
+ responsiveConfig: {
79
+ type: Object,
80
+ default: () => ({})
24
81
  }
25
82
  },
26
83
  emits: ["reset", "query"],
@@ -39,6 +96,8 @@ var FormLayout = /* @__PURE__ */ defineComponent({
39
96
  const {
40
97
  rowRef,
41
98
  actionSpan,
99
+ actionPush,
100
+ currentSpan,
42
101
  onExpend,
43
102
  expendBtnVisible,
44
103
  isExpend
@@ -115,47 +174,109 @@ var FormLayout = /* @__PURE__ */ defineComponent({
115
174
  }
116
175
  function useExpand() {
117
176
  const gridCount = 24;
118
- const colSpan = 6;
119
- const colsPerRow = 4;
177
+ const screens = useBreakpoint();
178
+ const mergedConfig = computed(() => __spreadValues(__spreadValues({}, RESPONSIVE_CONFIG), props.responsiveConfig));
179
+ const currentConfig = computed(() => {
180
+ const config = mergedConfig.value;
181
+ if (screens.value.xxl) return config.xxl;
182
+ if (screens.value.xl) return config.xl;
183
+ if (screens.value.lg) return config.lg;
184
+ if (screens.value.md) return config.md;
185
+ if (screens.value.sm) return config.sm;
186
+ return config.xs;
187
+ });
188
+ const currentSpan2 = computed(() => currentConfig.value.span);
189
+ const colsPerRow = computed(() => currentConfig.value.colsPerRow);
120
190
  const actionSpan2 = ref(6);
191
+ const actionPush2 = ref(0);
121
192
  const isExpend2 = ref(false);
122
193
  const expendBtnVisible2 = ref(false);
123
194
  const rowRef2 = ref(null);
124
195
  onMounted(() => {
125
- handleShowOrHidden();
196
+ updateLayout();
197
+ });
198
+ watch(screens, () => {
199
+ nextTick(() => {
200
+ updateLayout();
201
+ });
202
+ }, {
203
+ deep: true
126
204
  });
127
205
  function onExpend2() {
128
206
  isExpend2.value = !isExpend2.value;
129
- handleShowOrHidden();
207
+ updateLayout();
130
208
  }
131
- function handleShowOrHidden() {
132
- var _a, _b;
133
- const colEl = Array.from((_b = (_a = rowRef2.value) == null ? void 0 : _a.$el) == null ? void 0 : _b.children);
209
+ function updateLayout() {
210
+ var _a;
211
+ const rowEl = (_a = rowRef2.value) == null ? void 0 : _a.$el;
212
+ if (!rowEl) return;
213
+ const colEl = Array.from(rowEl.children);
134
214
  const colElLen = colEl.length - 1;
135
- const occupiedCols = colElLen * colSpan;
136
- const fullRows = Math.ceil(colElLen / colsPerRow);
137
- const lastRowCols = occupiedCols % gridCount;
138
- const remainingCols = gridCount - lastRowCols;
139
- if (fullRows > 2) {
215
+ if (colElLen <= 0) return;
216
+ const actualSpan = currentSpan2.value;
217
+ const cols = colsPerRow.value;
218
+ colEl.forEach((col, index) => {
219
+ if (index === colElLen) return;
220
+ updateColSpan(col, actualSpan);
221
+ col.style.display = "";
222
+ });
223
+ const lastSlotIndex = cols * DEFAULT_VISIBLE_ROWS - 1;
224
+ if (colElLen > lastSlotIndex) {
140
225
  expendBtnVisible2.value = true;
226
+ if (!isExpend2.value) {
227
+ colEl.forEach((col, index) => {
228
+ if (index === colElLen) return;
229
+ if (index >= lastSlotIndex) {
230
+ col.style.display = "none";
231
+ }
232
+ });
233
+ actionSpan2.value = actualSpan;
234
+ actionPush2.value = 0;
235
+ } else {
236
+ const lastRowItems = colElLen % cols;
237
+ const lastRowOccupied = lastRowItems === 0 ? gridCount : lastRowItems * actualSpan;
238
+ const remainingCols = gridCount - lastRowOccupied;
239
+ if (remainingCols >= actualSpan) {
240
+ actionSpan2.value = remainingCols;
241
+ actionPush2.value = 0;
242
+ } else {
243
+ actionSpan2.value = actualSpan;
244
+ actionPush2.value = gridCount - actualSpan;
245
+ }
246
+ }
141
247
  } else {
142
- actionSpan2.value = remainingCols;
248
+ expendBtnVisible2.value = false;
249
+ const lastRowItems = colElLen % cols;
250
+ const lastRowOccupied = lastRowItems === 0 ? gridCount : lastRowItems * actualSpan;
251
+ const remainingCols = gridCount - lastRowOccupied;
252
+ if (remainingCols >= actualSpan) {
253
+ actionSpan2.value = remainingCols;
254
+ actionPush2.value = 0;
255
+ } else {
256
+ actionSpan2.value = actualSpan;
257
+ actionPush2.value = gridCount - actualSpan;
258
+ }
143
259
  }
144
- const lastRowStartIndex = colsPerRow * (fullRows - 1) - 1;
145
- if (expendBtnVisible2.value) {
146
- colEl.forEach((col, index) => {
147
- if (index >= lastRowStartIndex) {
148
- index !== colElLen ? col.style.display = !isExpend2.value ? "none" : "block" : null;
260
+ }
261
+ function updateColSpan(colEl, newSpan) {
262
+ const classList = colEl.classList;
263
+ for (let i = classList.length - 1; i >= 0; i--) {
264
+ const className = classList[i];
265
+ if (className.startsWith("ant-col-") && !className.includes("-offset-") && !className.includes("-push-") && !className.includes("-pull-")) {
266
+ const span = parseInt(className.replace("ant-col-", ""), 10);
267
+ if (!isNaN(span)) {
268
+ classList.remove(className);
269
+ break;
149
270
  }
150
- });
151
- }
152
- if (expendBtnVisible2.value) {
153
- isExpend2.value ? actionSpan2.value = remainingCols : actionSpan2.value = colSpan;
271
+ }
154
272
  }
273
+ classList.add(`ant-col-${newSpan}`);
155
274
  }
156
275
  return {
157
276
  rowRef: rowRef2,
158
277
  actionSpan: actionSpan2,
278
+ actionPush: actionPush2,
279
+ currentSpan: currentSpan2,
159
280
  onExpend: onExpend2,
160
281
  expendBtnVisible: expendBtnVisible2,
161
282
  isExpend: isExpend2
@@ -180,8 +301,11 @@ var FormLayout = /* @__PURE__ */ defineComponent({
180
301
  var _a;
181
302
  return [(_a = slots.default) == null ? void 0 : _a.call(slots), createVNode(Col, {
182
303
  "span": actionSpan.value,
304
+ "push": actionPush.value,
183
305
  "style": {
184
- textAlign: "right"
306
+ display: "flex",
307
+ justifyContent: "flex-end",
308
+ alignItems: "flex-start"
185
309
  }
186
310
  }, {
187
311
  default: () => [createVNode(FormItem, null, {
@@ -1 +1 @@
1
- {"version":3,"file":"FormLayout.mjs","sources":["../../../../src/components/form/FormLayout.tsx"],"sourcesContent":["import {\r\n defineComponent,\r\n onMounted,\r\n ref,\r\n watch,\r\n watchEffect\r\n} from \"vue\";\r\nimport {\r\n Button,\r\n Col,\r\n Form,\r\n FormItem,\r\n Row,\r\n Space\r\n} from \"ant-design-vue\";\r\n\r\nimport {\r\n DoubleRightOutlined,\r\n ReloadOutlined,\r\n SearchOutlined\r\n} from \"@ant-design/icons-vue\";\r\n\r\n/**\r\n * 查询表单渲染\r\n * 展开,隐藏功能\r\n */\r\nexport default defineComponent({\r\n name: \"DQueryForm\",\r\n props: {\r\n scheme: {\r\n type: [Array, Object] as unknown as () =>\r\n | any[]\r\n | Record<string, any>,\r\n default: () => []\r\n },\r\n model: {\r\n type: Object as () => Record<string, unknown>,\r\n default: () => ({})\r\n },\r\n labelWidth: {\r\n type: String,\r\n default: \"90px\"\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n emits: [\"reset\", \"query\"],\r\n setup(props, { slots, emit }) {\r\n // 表单\r\n const {\r\n loading,\r\n modelValue,\r\n formRef,\r\n onQuery,\r\n onReset,\r\n onKeyup\r\n } = useForm();\r\n // 展开\r\n const {\r\n rowRef,\r\n actionSpan,\r\n onExpend,\r\n expendBtnVisible,\r\n isExpend\r\n } = useExpand();\r\n //渲染操作列\r\n const { renderAction } = useRender();\r\n\r\n function useForm() {\r\n const loading = ref(false);\r\n const formRef = ref<any>(null);\r\n const modelValue = ref<any>({});\r\n\r\n watchEffect(() => {\r\n modelValue.value = props.model;\r\n });\r\n\r\n watch(\r\n () => props.loading,\r\n val => {\r\n loading.value = val;\r\n }\r\n );\r\n\r\n /// 监听回车事件\r\n // watch(enterKey, (v) => {\r\n // if (v) {\r\n // // 有路由名字会被keepalive进行缓存\r\n // // 用于判断当前页面是否被激活 因为页面被缓存的时候,页面切换后,回车事件依然会触发\r\n // const isActive = keepStore.list.some((name) => name === route.name);\r\n // console.log(route.name);\r\n // if (!loading.value && isActive) {\r\n // emit(\"query\", modelValue.value);\r\n // }\r\n // //TODO 逻辑有问题\r\n // if (!route.name) {\r\n // // 没有路由名字,不会被缓存\r\n // if (!loading.value) {\r\n // emit(\"query\", modelValue.value);\r\n // }\r\n // } else {\r\n //\r\n // }\r\n // }\r\n // });\r\n\r\n const onQuery = () => {\r\n emit(\"query\", modelValue.value);\r\n };\r\n\r\n const onReset = () => {\r\n formRef.value?.resetFields();\r\n emit(\"reset\");\r\n };\r\n\r\n const onKeyup = (event: any) => {\r\n if (event.keyCode === 13) {\r\n if (!loading.value) {\r\n emit(\"query\", modelValue.value);\r\n }\r\n }\r\n };\r\n return {\r\n loading,\r\n modelValue,\r\n formRef,\r\n onQuery,\r\n onReset,\r\n onKeyup\r\n };\r\n }\r\n\r\n function useRender() {\r\n /**\r\n * 操作按钮渲染\r\n */\r\n function renderAction() {\r\n return (\r\n <Space>\r\n <Button\r\n loading={loading.value}\r\n type={\"primary\"}\r\n shape={\"round\"}\r\n onClick={onQuery}\r\n >\r\n {{\r\n default: () => \"查询\",\r\n icon: () => <SearchOutlined />\r\n }}\r\n </Button>\r\n <Button\r\n disabled={loading.value}\r\n shape={\"round\"}\r\n onClick={onReset}\r\n >\r\n {{\r\n default: () => \"重置\",\r\n icon: () => <ReloadOutlined />\r\n }}\r\n </Button>\r\n {expendBtnVisible.value ? (\r\n <Button onClick={onExpend} shape={\"round\"}>\r\n {{\r\n default: () =>\r\n isExpend.value ? \"收起\" : \"展开\",\r\n icon: () => (\r\n <DoubleRightOutlined\r\n rotate={isExpend.value ? -90 : 90}\r\n />\r\n )\r\n }}\r\n </Button>\r\n ) : null}\r\n </Space>\r\n );\r\n }\r\n\r\n return {\r\n renderAction\r\n };\r\n }\r\n\r\n function useExpand() {\r\n // 为24网格布局\r\n const gridCount = 24;\r\n // 每列占6个格子\r\n const colSpan = 6;\r\n // 每行显示4列\r\n const colsPerRow = 4;\r\n // 操作按钮span\r\n const actionSpan = ref(6);\r\n // 控制展开或隐藏按钮文本\r\n const isExpend = ref(false);\r\n // 控制展开按按钮是否显示\r\n const expendBtnVisible = ref(false);\r\n // 行对象\r\n const rowRef = ref<any>(null);\r\n\r\n onMounted(() => {\r\n handleShowOrHidden();\r\n });\r\n\r\n function onExpend() {\r\n isExpend.value = !isExpend.value;\r\n handleShowOrHidden();\r\n }\r\n\r\n /**\r\n * 处理隐藏或显示\r\n */\r\n function handleShowOrHidden() {\r\n const colEl = Array.from(\r\n rowRef.value?.$el?.children\r\n );\r\n // col总条数 减掉操作栏按钮的div个数为1\r\n const colElLen = colEl.length - 1;\r\n // 已占用的网格数 = col总条数 * 每列占用的网格数\r\n const occupiedCols = colElLen * colSpan;\r\n // 总行数 = 总div数 / 每行显示的列数\r\n const fullRows = Math.ceil(colElLen / colsPerRow);\r\n // 最后一行的网格数 = 已占用的网格数 % 24\r\n const lastRowCols = occupiedCols % gridCount;\r\n // 最后一行剩余的网格数\r\n const remainingCols = gridCount - lastRowCols;\r\n\r\n // 网格行大于2才显示展开或隐藏按钮\r\n if (fullRows > 2) {\r\n expendBtnVisible.value = true;\r\n } else {\r\n // 如果没有大于两行,操作栏占用剩余的宽度\r\n actionSpan.value = remainingCols;\r\n }\r\n // 最后一行的起始索引\r\n const lastRowStartIndex =\r\n colsPerRow * (fullRows - 1) - 1;\r\n // 只有展开按钮显示时才处理\r\n if (expendBtnVisible.value) {\r\n colEl.forEach((col: any, index) => {\r\n if (index >= lastRowStartIndex) {\r\n // 最后一个元素不隐藏 是操作按钮的div\r\n index !== colElLen\r\n ? (col.style.display = !isExpend.value\r\n ? \"none\"\r\n : \"block\")\r\n : null; // 隐藏元素\r\n }\r\n });\r\n }\r\n\r\n if (expendBtnVisible.value) {\r\n // 如果是展开状态 则操作按钮占用剩余的网格数 否则占用6个网格\r\n isExpend.value\r\n ? (actionSpan.value = remainingCols)\r\n : (actionSpan.value = colSpan);\r\n }\r\n }\r\n\r\n return {\r\n rowRef,\r\n actionSpan,\r\n onExpend,\r\n expendBtnVisible,\r\n isExpend\r\n };\r\n }\r\n\r\n return () => (\r\n <div onKeyup={onKeyup}>\r\n <Form\r\n ref={formRef}\r\n colon={false}\r\n labelCol={{ style: { width: props.labelWidth } }}\r\n model={modelValue.value}\r\n >\r\n <Row ref={rowRef}>\r\n {slots.default?.()}\r\n <Col\r\n span={actionSpan.value}\r\n style={{ textAlign: \"right\" }}\r\n >\r\n <FormItem>\r\n {slots.action\r\n ? slots.action()\r\n : renderAction()}\r\n </FormItem>\r\n </Col>\r\n </Row>\r\n </Form>\r\n </div>\r\n );\r\n }\r\n});\r\n"],"names":["name","props","scheme","type","Array","Object","default","model","labelWidth","String","loading","Boolean","emits","setup","slots","emit","modelValue","formRef","onQuery","onReset","onKeyup","useForm","rowRef","actionSpan","onExpend","expendBtnVisible","isExpend","useExpand","renderAction","useRender","ref","watchEffect","value","watch","val","resetFields","event","keyCode","_createVNode","Space","Button","icon","SearchOutlined","ReloadOutlined","DoubleRightOutlined","gridCount","colSpan","colsPerRow","onMounted","handleShowOrHidden","colEl","from","$el","children","colElLen","length","occupiedCols","fullRows","Math","ceil","lastRowCols","remainingCols","lastRowStartIndex","forEach","col","index","style","display","Form","width","Row","Col","textAlign","FormItem","action"],"mappings":"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"}
1
+ {"version":3,"file":"FormLayout.mjs","sources":["../../../../src/components/form/FormLayout.tsx"],"sourcesContent":["import {\r\n computed,\r\n defineComponent,\r\n nextTick,\r\n onMounted,\r\n ref,\r\n watch,\r\n watchEffect\r\n} from \"vue\";\r\nimport {\r\n Button,\r\n Col,\r\n Form,\r\n FormItem,\r\n Grid,\r\n Row,\r\n Space\r\n} from \"ant-design-vue\";\r\n\r\nimport {\r\n DoubleRightOutlined,\r\n ReloadOutlined,\r\n SearchOutlined\r\n} from \"@ant-design/icons-vue\";\r\n\r\nconst { useBreakpoint } = Grid;\r\n\r\n// 响应式配置:不同断点下的栅格配置\r\nconst RESPONSIVE_CONFIG = {\r\n xs: { span: 24, colsPerRow: 1 }, // < 576px - 手机\r\n sm: { span: 12, colsPerRow: 2 }, // ≥ 576px - 平板竖屏\r\n md: { span: 8, colsPerRow: 3 }, // ≥ 768px - 平板横屏\r\n lg: { span: 6, colsPerRow: 4 }, // ≥ 992px - 小桌面\r\n xl: { span: 6, colsPerRow: 4 }, // ≥ 1200px - 桌面\r\n xxl: { span: 6, colsPerRow: 4 } // ≥ 1600px - 大桌面\r\n} as const;\r\n\r\n// 默认显示的行数(收起状态)\r\nconst DEFAULT_VISIBLE_ROWS = 2;\r\n\r\n/**\r\n * 查询表单渲染\r\n * 展开,隐藏功能\r\n * 支持响应式栅格布局\r\n */\r\nexport default defineComponent({\r\n name: \"DQueryForm\",\r\n props: {\r\n scheme: {\r\n type: [Array, Object] as unknown as () =>\r\n | any[]\r\n | Record<string, any>,\r\n default: () => []\r\n },\r\n model: {\r\n type: Object as () => Record<string, unknown>,\r\n default: () => ({})\r\n },\r\n labelWidth: {\r\n type: String,\r\n default: \"90px\"\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false\r\n },\r\n // 自定义响应式配置(可选)\r\n responsiveConfig: {\r\n type: Object as () => Partial<typeof RESPONSIVE_CONFIG>,\r\n default: () => ({})\r\n }\r\n },\r\n emits: [\"reset\", \"query\"],\r\n setup(props, { slots, emit }) {\r\n // 表单\r\n const {\r\n loading,\r\n modelValue,\r\n formRef,\r\n onQuery,\r\n onReset,\r\n onKeyup\r\n } = useForm();\r\n\r\n // 响应式布局\r\n const {\r\n rowRef,\r\n actionSpan,\r\n actionPush,\r\n currentSpan,\r\n onExpend,\r\n expendBtnVisible,\r\n isExpend\r\n } = useExpand();\r\n\r\n // 渲染操作列\r\n const { renderAction } = useRender();\r\n\r\n function useForm() {\r\n const loading = ref(false);\r\n const formRef = ref<any>(null);\r\n const modelValue = ref<any>({});\r\n\r\n watchEffect(() => {\r\n modelValue.value = props.model;\r\n });\r\n\r\n watch(\r\n () => props.loading,\r\n val => {\r\n loading.value = val;\r\n }\r\n );\r\n\r\n const onQuery = () => {\r\n emit(\"query\", modelValue.value);\r\n };\r\n\r\n const onReset = () => {\r\n formRef.value?.resetFields();\r\n emit(\"reset\");\r\n };\r\n\r\n const onKeyup = (event: any) => {\r\n if (event.keyCode === 13) {\r\n if (!loading.value) {\r\n emit(\"query\", modelValue.value);\r\n }\r\n }\r\n };\r\n\r\n return {\r\n loading,\r\n modelValue,\r\n formRef,\r\n onQuery,\r\n onReset,\r\n onKeyup\r\n };\r\n }\r\n\r\n function useRender() {\r\n function renderAction() {\r\n return (\r\n <Space>\r\n <Button\r\n loading={loading.value}\r\n type={\"primary\"}\r\n shape={\"round\"}\r\n onClick={onQuery}\r\n >\r\n {{\r\n default: () => \"查询\",\r\n icon: () => <SearchOutlined />\r\n }}\r\n </Button>\r\n <Button\r\n disabled={loading.value}\r\n shape={\"round\"}\r\n onClick={onReset}\r\n >\r\n {{\r\n default: () => \"重置\",\r\n icon: () => <ReloadOutlined />\r\n }}\r\n </Button>\r\n {expendBtnVisible.value ? (\r\n <Button onClick={onExpend} shape={\"round\"}>\r\n {{\r\n default: () =>\r\n isExpend.value ? \"收起\" : \"展开\",\r\n icon: () => (\r\n <DoubleRightOutlined\r\n rotate={isExpend.value ? -90 : 90}\r\n />\r\n )\r\n }}\r\n </Button>\r\n ) : null}\r\n </Space>\r\n );\r\n }\r\n\r\n return {\r\n renderAction\r\n };\r\n }\r\n\r\n function useExpand() {\r\n const gridCount = 24;\r\n const screens = useBreakpoint();\r\n\r\n // 合并默认配置和自定义配置\r\n const mergedConfig = computed(() => ({\r\n ...RESPONSIVE_CONFIG,\r\n ...props.responsiveConfig\r\n }));\r\n\r\n // 根据当前断点获取配置\r\n const currentConfig = computed(() => {\r\n const config = mergedConfig.value;\r\n // 按优先级从大到小检查\r\n if (screens.value.xxl) return config.xxl;\r\n if (screens.value.xl) return config.xl;\r\n if (screens.value.lg) return config.lg;\r\n if (screens.value.md) return config.md;\r\n if (screens.value.sm) return config.sm;\r\n return config.xs;\r\n });\r\n\r\n // 当前每个表单项占用的栅格数\r\n const currentSpan = computed(() => currentConfig.value.span);\r\n // 当前每行显示的列数\r\n const colsPerRow = computed(() => currentConfig.value.colsPerRow);\r\n\r\n // 操作按钮 span\r\n const actionSpan = ref(6);\r\n // 操作按钮 push(用于右对齐)\r\n const actionPush = ref(0);\r\n // 控制展开或隐藏按钮文本\r\n const isExpend = ref(false);\r\n // 控制展开按钮是否显示\r\n const expendBtnVisible = ref(false);\r\n // 行对象\r\n const rowRef = ref<any>(null);\r\n\r\n // 初始化和响应式更新\r\n onMounted(() => {\r\n updateLayout();\r\n });\r\n\r\n // 监听断点变化,重新计算布局\r\n watch(\r\n screens,\r\n () => {\r\n // 等待 DOM 更新后再计算\r\n nextTick(() => {\r\n updateLayout();\r\n });\r\n },\r\n { deep: true }\r\n );\r\n\r\n function onExpend() {\r\n isExpend.value = !isExpend.value;\r\n updateLayout();\r\n }\r\n\r\n /**\r\n * 更新布局(响应式)\r\n */\r\n function updateLayout() {\r\n const rowEl = rowRef.value?.$el;\r\n if (!rowEl) return;\r\n\r\n const colEl = Array.from(rowEl.children) as HTMLElement[];\r\n // col 总条数,减掉操作栏按钮的 div(个数为1)\r\n const colElLen = colEl.length - 1;\r\n\r\n if (colElLen <= 0) return;\r\n\r\n // 使用响应式配置的 span(而不是从 DOM 读取)\r\n const actualSpan = currentSpan.value;\r\n const cols = colsPerRow.value;\r\n\r\n // 动态更新所有子 Col 的 span\r\n colEl.forEach((col, index) => {\r\n if (index === colElLen) return; // 跳过操作按钮\r\n updateColSpan(col, actualSpan);\r\n col.style.display = \"\";\r\n });\r\n\r\n // 第二行最后一个位置的索引(用于收起状态下放置操作按钮)\r\n const lastSlotIndex = cols * DEFAULT_VISIBLE_ROWS - 1;\r\n\r\n // 超过默认显示行数才显示展开/收起按钮\r\n if (colElLen > lastSlotIndex) {\r\n expendBtnVisible.value = true;\r\n\r\n // 收起状态:隐藏第二行最后一格及之后的元素\r\n if (!isExpend.value) {\r\n colEl.forEach((col: any, index) => {\r\n if (index === colElLen) return;\r\n if (index >= lastSlotIndex) {\r\n col.style.display = \"none\";\r\n }\r\n });\r\n // 操作按钮占用第二行最后一格\r\n actionSpan.value = actualSpan;\r\n actionPush.value = 0;\r\n } else {\r\n // 展开状态:操作按钮在最后一行右对齐\r\n const lastRowItems = colElLen % cols;\r\n const lastRowOccupied = lastRowItems === 0 ? gridCount : lastRowItems * actualSpan;\r\n const remainingCols = gridCount - lastRowOccupied;\r\n\r\n if (remainingCols >= actualSpan) {\r\n actionSpan.value = remainingCols;\r\n actionPush.value = 0;\r\n } else {\r\n actionSpan.value = actualSpan;\r\n actionPush.value = gridCount - actualSpan;\r\n }\r\n }\r\n } else {\r\n // 不超过两行:不显示展开按钮,操作按钮在最后一行右对齐\r\n expendBtnVisible.value = false;\r\n\r\n const lastRowItems = colElLen % cols;\r\n const lastRowOccupied = lastRowItems === 0 ? gridCount : lastRowItems * actualSpan;\r\n const remainingCols = gridCount - lastRowOccupied;\r\n\r\n if (remainingCols >= actualSpan) {\r\n actionSpan.value = remainingCols;\r\n actionPush.value = 0;\r\n } else {\r\n actionSpan.value = actualSpan;\r\n actionPush.value = gridCount - actualSpan;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * 动态更新 Col 的 span(通过修改 class)\r\n */\r\n function updateColSpan(colEl: HTMLElement, newSpan: number) {\r\n const classList = colEl.classList;\r\n // 移除旧的 ant-col-{span} class\r\n for (let i = classList.length - 1; i >= 0; i--) {\r\n const className = classList[i];\r\n if (className.startsWith(\"ant-col-\") && !className.includes(\"-offset-\") && !className.includes(\"-push-\") && !className.includes(\"-pull-\")) {\r\n const span = parseInt(className.replace(\"ant-col-\", \"\"), 10);\r\n if (!isNaN(span)) {\r\n classList.remove(className);\r\n break;\r\n }\r\n }\r\n }\r\n // 添加新的 span class\r\n classList.add(`ant-col-${newSpan}`);\r\n }\r\n\r\n return {\r\n rowRef,\r\n actionSpan,\r\n actionPush,\r\n currentSpan,\r\n onExpend,\r\n expendBtnVisible,\r\n isExpend\r\n };\r\n }\r\n\r\n return () => (\r\n <div onKeyup={onKeyup}>\r\n <Form\r\n ref={formRef}\r\n colon={false}\r\n labelCol={{ style: { width: props.labelWidth } }}\r\n model={modelValue.value}\r\n >\r\n <Row ref={rowRef}>\r\n {slots.default?.()}\r\n <Col\r\n span={actionSpan.value}\r\n push={actionPush.value}\r\n style={{\r\n display: \"flex\",\r\n justifyContent: \"flex-end\",\r\n alignItems: \"flex-start\"\r\n }}\r\n >\r\n <FormItem>\r\n {slots.action\r\n ? slots.action()\r\n : renderAction()}\r\n </FormItem>\r\n </Col>\r\n </Row>\r\n </Form>\r\n </div>\r\n );\r\n }\r\n});\r\n"],"names":["useBreakpoint","Grid","RESPONSIVE_CONFIG","xs","span","colsPerRow","sm","md","lg","xl","xxl","DEFAULT_VISIBLE_ROWS","name","props","scheme","type","Array","Object","default","model","labelWidth","String","loading","Boolean","responsiveConfig","emits","setup","slots","emit","modelValue","formRef","onQuery","onReset","onKeyup","useForm","rowRef","actionSpan","actionPush","currentSpan","onExpend","expendBtnVisible","isExpend","useExpand","renderAction","useRender","ref","watchEffect","value","watch","val","resetFields","event","keyCode","_createVNode","Space","Button","icon","SearchOutlined","ReloadOutlined","DoubleRightOutlined","gridCount","screens","mergedConfig","computed","currentConfig","config","onMounted","updateLayout","nextTick","deep","rowEl","$el","colEl","from","children","colElLen","length","actualSpan","cols","forEach","col","index","updateColSpan","style","display","lastSlotIndex","lastRowItems","lastRowOccupied","remainingCols","newSpan","classList","i","className","startsWith","includes","parseInt","replace","isNaN","remove","add","Form","width","Row","Col","justifyContent","alignItems","FormItem","action"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ export * from "./action-bar";
1
2
  export * from "./card";
2
3
  export * from "./date";
3
4
  export { default as DicRep } from "./dic";
@@ -8,4 +9,5 @@ export { default as Select } from "./select";
8
9
  export { default as Tab } from "./tab";
9
10
  export { default as Table } from "./table";
10
11
  export * from "./table-form";
12
+ export * from "./tools-bar";
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,4 @@
1
+ import './action-bar/index.mjs';
1
2
  import './card/index.mjs';
2
3
  import './date/index.mjs';
3
4
  import './dic/index.mjs';
@@ -8,10 +9,12 @@ import './select/index.mjs';
8
9
  import './tab/index.mjs';
9
10
  import './table/index.mjs';
10
11
  export { TableForm } from './table-form/index.mjs';
12
+ import './tools-bar/index.mjs';
11
13
  export { default as DicRep } from './dic/DicReplace.mjs';
12
14
  export { default as Select } from './select/Select.vue2.mjs';
13
15
  export { default as Tab } from './tab/Tab.vue2.mjs';
14
16
  export { default as Table } from './table/Table.mjs';
17
+ export { default as ActionBar } from './action-bar/ActionBar.vue2.mjs';
15
18
  export { Card } from './card/Card.mjs';
16
19
  export { default as RangePicker } from './date/RangePicker.vue2.mjs';
17
20
  export { default as FormLayout } from './form/FormLayout.mjs';
@@ -27,6 +30,7 @@ export { default as List } from './layout/List.mjs';
27
30
  export { default as Show } from './layout/Show.mjs';
28
31
  export { DEFAULT_STYLES_CONFIG, tableFormItemProps, tableFormProps } from './table-form/interface.mjs';
29
32
  export { TableFormItem } from './table-form/TableFormItem.mjs';
33
+ export { default as ToolsBar } from './tools-bar/ToolsBar.vue2.mjs';
30
34
 
31
35
  "use strict";
32
36
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppContext.mjs","sources":["../../../../src/components/layout/AppContext.ts"],"sourcesContent":["import { ComputedRef, VNode } from \"vue\";\n\nexport const AppContextKey = Symbol(\"d-bsui-context\");\nexport interface AppContext {\n // 水印\n watermarkContent?: ComputedRef<{ content: string }>;\n renderMenuIcon?: (item: {\n icon: string;\n }) => VNode | VNode[];\n // 缓存方式 Name:组件名称 Path:路径缓\n keepAliveMode: \"Name\" | \"Path\";\n // 多标签重载\n onReloadPage?: (item: { [key: string]: unknown }) => void;\n // 多标签是否开启右键菜单\n enableTabContextMenu?: boolean;\n}\n"],"names":[],"mappings":";AAEO,MAAM,aAAA,GAAgB,OAAO,gBAAgB;;;;"}
1
+ {"version":3,"file":"AppContext.mjs","sources":["../../../../src/components/layout/AppContext.ts"],"sourcesContent":["import { ComputedRef, VNode } from \"vue\";\r\n\r\nexport const AppContextKey = Symbol(\"d-bsui-context\");\r\nexport interface AppContext {\r\n // 水印\r\n watermarkContent?: ComputedRef<{ content: string }>;\r\n renderMenuIcon?: (item: {\r\n icon: string;\r\n }) => VNode | VNode[];\r\n // 缓存方式 Name:组件名称 Path:路径缓\r\n keepAliveMode: \"Name\" | \"Path\";\r\n // 多标签重载\r\n onReloadPage?: (item: { [key: string]: unknown }) => void;\r\n // 多标签是否开启右键菜单\r\n enableTabContextMenu?: boolean;\r\n}\r\n"],"names":[],"mappings":";AAEO,MAAM,aAAA,GAAgB,OAAO,gBAAgB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"AppLayout.mjs","sources":["../../../../src/components/layout/AppLayout.tsx"],"sourcesContent":["import { defineComponent } from \"vue\";\nimport { storeToRefs } from \"pinia\";\n\nimport { useAppLayoutStyle } from \"./style\";\nimport { useDeviceStore } from \"@ditari/store\";\nimport { cx } from \"@emotion/css\";\n\nimport { useDesign } from \"../../hooks/useDesign\";\n\nconst DAppLayout = defineComponent({\n name: \"DAppLayout\",\n setup(_, { slots }) {\n const deviceStore = useDeviceStore();\n // 使用 storeToRefs 解构出响应式引用\n const { isMobile, isTablet, isDesktop } =\n storeToRefs(deviceStore);\n\n const { getPrefixCls } = useDesign(\"app-layout\");\n const styles = useAppLayoutStyle();\n\n return () => {\n const rootCls = getPrefixCls();\n const mobileCls = getPrefixCls(\"mobile\");\n const tabletCls = getPrefixCls(\"tablet\");\n const desktopCls = getPrefixCls(\"desktop\");\n\n let layoutContent;\n if (isMobile.value) {\n layoutContent = slots.mobile ? (\n <div class={cx(mobileCls, styles.mobile)}>\n {slots.mobile()}\n </div>\n ) : undefined;\n } else if (isTablet.value) {\n layoutContent = slots.tablet ? (\n <div class={cx(tabletCls)}>{slots.tablet()}</div>\n ) : undefined;\n } else {\n layoutContent = slots.desktop ? (\n <div class={cx(desktopCls)}>\n {slots.desktop()}\n </div>\n ) : undefined;\n }\n\n return (\n <div class={cx(rootCls, styles.appLayout)}>\n {layoutContent}\n </div>\n );\n };\n }\n});\n\nexport default DAppLayout;\n"],"names":["DAppLayout","defineComponent","name","setup","_","slots","deviceStore","useDeviceStore","isMobile","isTablet","isDesktop","storeToRefs","getPrefixCls","useDesign","styles","useAppLayoutStyle","rootCls","mobileCls","tabletCls","desktopCls","layoutContent","value","mobile","_createVNode","cx","undefined","tablet","desktop","appLayout"],"mappings":";;;;;;;;AASA,MAAMA,6BAAaC,eAAAA,CAAgB;AAAA,EACjCC,IAAAA,EAAM,YAAA;AAAA,EACNC,MAAMC,CAAAA,EAAG;AAAA,IAAEC;AAAAA,GAAM,EAAG;AAClB,IAAA,MAAMC,cAAcC,cAAAA,EAAe;AAEnC,IAAA,MAAM;AAAA,MAAEC,QAAAA;AAAAA,MAAUC,QAAAA;AAAAA,MAAUC;AAAAA,KAAU,GACpCC,YAAYL,WAAW,CAAA;AAEzB,IAAA,MAAM;AAAA,MAAEM;AAAAA,KAAa,GAAIC,UAAU,YAAY,CAAA;AAC/C,IAAA,MAAMC,SAASC,iBAAAA,EAAkB;AAEjC,IAAA,OAAO,MAAM;AACX,MAAA,MAAMC,UAAUJ,YAAAA,EAAa;AAC7B,MAAA,MAAMK,SAAAA,GAAYL,aAAa,QAAQ,CAAA;AACvC,MAAA,MAAMM,SAAAA,GAAYN,aAAa,QAAQ,CAAA;AACvC,MAAA,MAAMO,UAAAA,GAAaP,aAAa,SAAS,CAAA;AAEzC,MAAA,IAAIQ,aAAAA;AACJ,MAAA,IAAIZ,SAASa,KAAAA,EAAO;AAClBD,QAAAA,aAAAA,GAAgBf,KAAAA,CAAMiB,MAAAA,GAAMC,WAAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EACdC,EAAAA,CAAGP,SAAAA,EAAWH,MAAAA,CAAOQ,MAAM;AAAA,WAAC,CACrCjB,KAAAA,CAAMiB,MAAAA,EAAQ,KAEfG,KAAAA,CAAAA;AAAAA,MACN,CAAA,MAAA,IAAWhB,SAASY,KAAAA,EAAO;AACzBD,QAAAA,aAAAA,GAAgBf,KAAAA,CAAMqB,MAAAA,GAAMH,WAAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EACdC,GAAGN,SAAS;AAAA,WAAC,CAAGb,KAAAA,CAAMqB,MAAAA,EAAQ,KACxCD,KAAAA,CAAAA;AAAAA,MACN,CAAA,MAAO;AACLL,QAAAA,aAAAA,GAAgBf,KAAAA,CAAMsB,OAAAA,GAAOJ,WAAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EACfC,GAAGL,UAAU;AAAA,WAAC,CACvBd,KAAAA,CAAMsB,OAAAA,EAAS,KAEhBF,KAAAA,CAAAA;AAAAA,MACN;AAEA,MAAA,OAAAF,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACcC,EAAAA,CAAGR,OAAAA,EAASF,MAAAA,CAAOc,SAAS;AAAA,OAAC,EAAA,CACtCR,aAAa,CAAA,CAAA;AAAA,IAGpB,CAAA;AAAA,EACF;AACF,CAAC;;;;"}
1
+ {"version":3,"file":"AppLayout.mjs","sources":["../../../../src/components/layout/AppLayout.tsx"],"sourcesContent":["import { defineComponent } from \"vue\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useAppLayoutStyle } from \"./style\";\r\nimport { useDeviceStore } from \"@ditari/store\";\r\nimport { cx } from \"@emotion/css\";\r\n\r\nimport { useDesign } from \"../../hooks/useDesign\";\r\n\r\nconst DAppLayout = defineComponent({\r\n name: \"DAppLayout\",\r\n setup(_, { slots }) {\r\n const deviceStore = useDeviceStore();\r\n // 使用 storeToRefs 解构出响应式引用\r\n const { isMobile, isTablet, isDesktop } =\r\n storeToRefs(deviceStore);\r\n\r\n const { getPrefixCls } = useDesign(\"app-layout\");\r\n const styles = useAppLayoutStyle();\r\n\r\n return () => {\r\n const rootCls = getPrefixCls();\r\n const mobileCls = getPrefixCls(\"mobile\");\r\n const tabletCls = getPrefixCls(\"tablet\");\r\n const desktopCls = getPrefixCls(\"desktop\");\r\n\r\n let layoutContent;\r\n if (isMobile.value) {\r\n layoutContent = slots.mobile ? (\r\n <div class={cx(mobileCls, styles.mobile)}>\r\n {slots.mobile()}\r\n </div>\r\n ) : undefined;\r\n } else if (isTablet.value) {\r\n layoutContent = slots.tablet ? (\r\n <div class={cx(tabletCls)}>{slots.tablet()}</div>\r\n ) : undefined;\r\n } else {\r\n layoutContent = slots.desktop ? (\r\n <div class={cx(desktopCls)}>\r\n {slots.desktop()}\r\n </div>\r\n ) : undefined;\r\n }\r\n\r\n return (\r\n <div class={cx(rootCls, styles.appLayout)}>\r\n {layoutContent}\r\n </div>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport default DAppLayout;\r\n"],"names":["DAppLayout","defineComponent","name","setup","_","slots","deviceStore","useDeviceStore","isMobile","isTablet","isDesktop","storeToRefs","getPrefixCls","useDesign","styles","useAppLayoutStyle","rootCls","mobileCls","tabletCls","desktopCls","layoutContent","value","mobile","_createVNode","cx","undefined","tablet","desktop","appLayout"],"mappings":";;;;;;;;AASA,MAAMA,6BAAaC,eAAAA,CAAgB;AAAA,EACjCC,IAAAA,EAAM,YAAA;AAAA,EACNC,MAAMC,CAAAA,EAAG;AAAA,IAAEC;AAAAA,GAAM,EAAG;AAClB,IAAA,MAAMC,cAAcC,cAAAA,EAAe;AAEnC,IAAA,MAAM;AAAA,MAAEC,QAAAA;AAAAA,MAAUC,QAAAA;AAAAA,MAAUC;AAAAA,KAAU,GACpCC,YAAYL,WAAW,CAAA;AAEzB,IAAA,MAAM;AAAA,MAAEM;AAAAA,KAAa,GAAIC,UAAU,YAAY,CAAA;AAC/C,IAAA,MAAMC,SAASC,iBAAAA,EAAkB;AAEjC,IAAA,OAAO,MAAM;AACX,MAAA,MAAMC,UAAUJ,YAAAA,EAAa;AAC7B,MAAA,MAAMK,SAAAA,GAAYL,aAAa,QAAQ,CAAA;AACvC,MAAA,MAAMM,SAAAA,GAAYN,aAAa,QAAQ,CAAA;AACvC,MAAA,MAAMO,UAAAA,GAAaP,aAAa,SAAS,CAAA;AAEzC,MAAA,IAAIQ,aAAAA;AACJ,MAAA,IAAIZ,SAASa,KAAAA,EAAO;AAClBD,QAAAA,aAAAA,GAAgBf,KAAAA,CAAMiB,MAAAA,GAAMC,WAAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EACdC,EAAAA,CAAGP,SAAAA,EAAWH,MAAAA,CAAOQ,MAAM;AAAA,WAAC,CACrCjB,KAAAA,CAAMiB,MAAAA,EAAQ,KAEfG,KAAAA,CAAAA;AAAAA,MACN,CAAA,MAAA,IAAWhB,SAASY,KAAAA,EAAO;AACzBD,QAAAA,aAAAA,GAAgBf,KAAAA,CAAMqB,MAAAA,GAAMH,WAAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EACdC,GAAGN,SAAS;AAAA,WAAC,CAAGb,KAAAA,CAAMqB,MAAAA,EAAQ,KACxCD,KAAAA,CAAAA;AAAAA,MACN,CAAA,MAAO;AACLL,QAAAA,aAAAA,GAAgBf,KAAAA,CAAMsB,OAAAA,GAAOJ,WAAAA,CAAA,KAAA,EAAA;AAAA,UAAA,OAAA,EACfC,GAAGL,UAAU;AAAA,WAAC,CACvBd,KAAAA,CAAMsB,OAAAA,EAAS,KAEhBF,KAAAA,CAAAA;AAAAA,MACN;AAEA,MAAA,OAAAF,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACcC,EAAAA,CAAGR,OAAAA,EAASF,MAAAA,CAAOc,SAAS;AAAA,OAAC,EAAA,CACtCR,aAAa,CAAA,CAAA;AAAA,IAGpB,CAAA;AAAA,EACF;AACF,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"List.mjs","sources":["../../../../src/components/layout/List.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n inject,\n nextTick,\n onActivated,\n onDeactivated,\n onMounted,\n onUnmounted,\n ref,\n watch,\n type WatchStopHandle\n} from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport {\n Card,\n Flex,\n Space,\n Watermark\n} from \"ant-design-vue\";\nimport { storeToRefs } from \"pinia\";\nimport { useElementSize } from \"@vueuse/core\";\n\nimport { AppContext, AppContextKey } from \"./AppContext\";\nimport MobileList from \"./components/mobile/MobileList\";\nimport { useAppStore, useDeviceStore } from \"@ditari/store\";\nimport { css } from \"@emotion/css\";\n\nconst tableRootStyle = css`\n height: 100%;\n position: relative;\n overflow: hidden;\n`;\n\nconst list = defineComponent({\n name: \"DListLayout\",\n emits: [\"refresh\"],\n setup(_, { slots, emit }) {\n const appContext = inject<AppContext | null>(\n AppContextKey,\n null\n );\n\n const watermarkContent = computed(\n () => appContext?.watermarkContent?.value.content\n );\n\n const route = useRoute();\n const { refresh } = storeToRefs(useAppStore());\n const {\n tableRef,\n height,\n tableVisible,\n playTableHeight\n } = useTableHeight();\n const { formRef } = useForm();\n useReload();\n // 使用 computed 来动态计算样式\n const maskDivStyle = computed(() => {\n return css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n background: white;\n display: ${tableVisible.value ? \"block\" : \"none\"};\n `;\n });\n\n const tableWrapperStyle = css`\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: hidden;\n `;\n\n const cardStyle = css`\n box-shadow: none !important;\n `;\n\n const leftCardStyle = css`\n .ant-card-body {\n overflow-y: scroll;\n -ms-overflow-style: none; /* 对 IE 和 Edge 生效 */\n scrollbar-width: none; /* 对 Firefox 生效 */\n\n /* Webkit 浏览器 */\n\n ::-webkit-scrollbar {\n display: none;\n }\n }\n `;\n\n const listStyle = computed(\n () => css`\n padding: 10px;\n height: 100%;\n //height: calc(100vh - 44px);\n `\n );\n\n onMounted(() => {\n playTableHeight();\n });\n\n function useTableHeight() {\n const tableRef = ref();\n const height = ref(0);\n const tableVisible = ref(false);\n\n // 使用 ResizeObserver 响应式监听容器大小变化\n const containerEl = computed(() => tableRef.value?.$el);\n const { height: containerHeight } = useElementSize(containerEl);\n\n // 监听容器高度变化\n watch(\n containerHeight,\n newHeight => {\n if (newHeight > 0) {\n height.value = newHeight;\n }\n },\n { immediate: true }\n );\n\n function playTableHeight() {\n nextTick(() => {\n const el = tableRef.value?.$el;\n if (el && el.offsetHeight > 0) {\n height.value = el.offsetHeight;\n }\n });\n }\n\n return {\n tableRef,\n height,\n tableVisible,\n playTableHeight\n };\n }\n\n function useForm() {\n const formRef = ref<{ $el: HTMLElement } | null>(null);\n\n // 使用 computed 获取 DOM 元素,解决 useElementSize 需要监听 DOM 的问题\n const formEl = computed(() => formRef.value?.$el);\n const { height: formHeight } = useElementSize(formEl);\n\n watch(\n () => formHeight.value,\n () => {\n nextTick(() => {\n playTableHeight();\n });\n }\n );\n\n return {\n formRef\n };\n }\n\n // 处理标签重载\n function useReload() {\n let stopHandleWatch: WatchStopHandle;\n if (!route.name && !route.meta.keepAlive) {\n stopHandleWatch = _useWatch();\n // 卸载未缓存的组件\n onUnmounted(() => {\n stopHandleWatch?.();\n });\n } else {\n // 激活缓存页面\n onActivated(() => {\n if (refresh.value) {\n refresh.value = false;\n emit(\"refresh\");\n }\n stopHandleWatch = _useWatch();\n });\n // 离开缓存页面\n onDeactivated(() => {\n stopHandleWatch?.();\n });\n }\n\n function _useWatch() {\n //点击了标签重载图标\n return watch(\n () => refresh.value,\n val => {\n if (val) {\n // 发送刷新事件到列表页面\n emit(\"refresh\");\n }\n }\n );\n }\n }\n\n function useLayout() {\n function formLayout() {\n return () =>\n slots.form && (\n <Card\n class={cardStyle}\n ref={formRef}\n style={{ marginBottom: \"10px\" }}\n bodyStyle={{ padding: \"10px 10px 0 10px\" }}\n bordered={false}\n >\n {slots.form()}\n </Card>\n );\n }\n\n function tableLayout() {\n return () => (\n <Flex flex={1} vertical={true}>\n <Card\n class={cardStyle}\n style={{ height: \"100%\" }}\n bodyStyle={{\n height: \"100%\",\n padding: \"10px\"\n }}\n bordered={false}\n >\n <Flex\n style={{ height: \"100%\" }}\n vertical={true}\n >\n <Space style={{ marginBottom: \"6px\" }}>\n {slots.tools?.()}\n </Space>\n <Flex\n ref={tableRef}\n flex={1}\n style={{ height: \"100%\" }}\n vertical={true}\n >\n <div class={tableRootStyle}>\n <div class={maskDivStyle.value}></div>\n <div class={tableWrapperStyle}>\n {slots.table?.({\n height: height.value\n })}\n </div>\n </div>\n </Flex>\n </Flex>\n </Card>\n </Flex>\n );\n }\n\n return (\n <Watermark\n style={{ height: \"100%\" }}\n content={watermarkContent.value}\n >\n <Flex\n class={[listStyle.value, \"app-list\"]}\n gap={10}\n >\n {slots.left ? (\n <Card\n class={[cardStyle, leftCardStyle]}\n bordered={false}\n bodyStyle={{\n height: \"100%\",\n padding: \"10px\"\n }}\n >\n {slots.left?.()}\n </Card>\n ) : null}\n <Flex vertical={true} flex={1}>\n {formLayout()()}\n {tableLayout()()}\n </Flex>\n </Flex>\n {slots.extra?.()}\n </Watermark>\n );\n }\n\n return () => {\n const deviceStore = useDeviceStore();\n // 使用 storeToRefs 解构出响应式引用\n const { isMobile, isTablet, isDesktop } =\n storeToRefs(deviceStore);\n\n if (isMobile.value) {\n return (\n <MobileList>\n {{\n table: () => slots.table?.()\n }}\n </MobileList>\n );\n }\n\n if (isDesktop.value || isTablet.value) {\n return useLayout();\n }\n };\n }\n});\n\nexport default list;\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","tableRootStyle","css","list","defineComponent","name","emits","setup","_","slots","emit","appContext","inject","AppContextKey","watermarkContent","computed","value","content","route","useRoute","refresh","storeToRefs","useAppStore","tableRef","height","tableVisible","playTableHeight","useTableHeight","formRef","useForm","useReload","maskDivStyle","tableWrapperStyle","cardStyle","leftCardStyle","listStyle","onMounted","ref","containerEl","$el","containerHeight","useElementSize","watch","newHeight","immediate","nextTick","el","offsetHeight","formEl","formHeight","stopHandleWatch","meta","keepAlive","_useWatch","onUnmounted","onActivated","onDeactivated","val","useLayout","formLayout","_slot","form","_createVNode","Card","marginBottom","padding","default","tableLayout","Flex","Space","tools","table","Watermark","left","_a","extra","deviceStore","useDeviceStore","isMobile","isTablet","isDesktop","MobileList"],"mappings":"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"}
1
+ {"version":3,"file":"List.mjs","sources":["../../../../src/components/layout/List.tsx"],"sourcesContent":["import {\r\n computed,\r\n defineComponent,\r\n inject,\r\n nextTick,\r\n onActivated,\r\n onDeactivated,\r\n onMounted,\r\n onUnmounted,\r\n ref,\r\n watch,\r\n type WatchStopHandle\r\n} from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport {\r\n Card,\r\n Flex,\r\n Space,\r\n Watermark\r\n} from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\nimport { useElementSize } from \"@vueuse/core\";\r\n\r\nimport { AppContext, AppContextKey } from \"./AppContext\";\r\nimport MobileList from \"./components/mobile/MobileList\";\r\nimport { useAppStore, useDeviceStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\n\r\nconst tableRootStyle = css`\r\n height: 100%;\r\n position: relative;\r\n overflow: hidden;\r\n`;\r\n\r\nconst list = defineComponent({\r\n name: \"DListLayout\",\r\n emits: [\"refresh\"],\r\n setup(_, { slots, emit }) {\r\n const appContext = inject<AppContext | null>(\r\n AppContextKey,\r\n null\r\n );\r\n\r\n const watermarkContent = computed(\r\n () => appContext?.watermarkContent?.value.content\r\n );\r\n\r\n const route = useRoute();\r\n const { refresh } = storeToRefs(useAppStore());\r\n const {\r\n tableRef,\r\n height,\r\n tableVisible,\r\n playTableHeight\r\n } = useTableHeight();\r\n const { formRef } = useForm();\r\n useReload();\r\n // 使用 computed 来动态计算样式\r\n const maskDivStyle = computed(() => {\r\n return css`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1;\r\n background: white;\r\n display: ${tableVisible.value ? \"block\" : \"none\"};\r\n `;\r\n });\r\n\r\n const tableWrapperStyle = css`\r\n position: absolute;\r\n top: 0;\r\n right: 0;\r\n bottom: 0;\r\n left: 0;\r\n overflow: hidden;\r\n `;\r\n\r\n const cardStyle = css`\r\n box-shadow: none !important;\r\n `;\r\n\r\n const leftCardStyle = css`\r\n .ant-card-body {\r\n overflow-y: scroll;\r\n -ms-overflow-style: none; /* 对 IE 和 Edge 生效 */\r\n scrollbar-width: none; /* 对 Firefox 生效 */\r\n\r\n /* Webkit 浏览器 */\r\n\r\n ::-webkit-scrollbar {\r\n display: none;\r\n }\r\n }\r\n `;\r\n\r\n const listStyle = computed(\r\n () => css`\r\n padding: 10px;\r\n height: 100%;\r\n //height: calc(100vh - 44px);\r\n `\r\n );\r\n\r\n onMounted(() => {\r\n playTableHeight();\r\n });\r\n\r\n function useTableHeight() {\r\n const tableRef = ref();\r\n const height = ref(0);\r\n const tableVisible = ref(false);\r\n\r\n // 使用 ResizeObserver 响应式监听容器大小变化\r\n const containerEl = computed(() => tableRef.value?.$el);\r\n const { height: containerHeight } = useElementSize(containerEl);\r\n\r\n // 监听容器高度变化\r\n watch(\r\n containerHeight,\r\n newHeight => {\r\n if (newHeight > 0) {\r\n height.value = newHeight;\r\n }\r\n },\r\n { immediate: true }\r\n );\r\n\r\n function playTableHeight() {\r\n nextTick(() => {\r\n const el = tableRef.value?.$el;\r\n if (el && el.offsetHeight > 0) {\r\n height.value = el.offsetHeight;\r\n }\r\n });\r\n }\r\n\r\n return {\r\n tableRef,\r\n height,\r\n tableVisible,\r\n playTableHeight\r\n };\r\n }\r\n\r\n function useForm() {\r\n const formRef = ref<{ $el: HTMLElement } | null>(null);\r\n\r\n // 使用 computed 获取 DOM 元素,解决 useElementSize 需要监听 DOM 的问题\r\n const formEl = computed(() => formRef.value?.$el);\r\n const { height: formHeight } = useElementSize(formEl);\r\n\r\n watch(\r\n () => formHeight.value,\r\n () => {\r\n nextTick(() => {\r\n playTableHeight();\r\n });\r\n }\r\n );\r\n\r\n return {\r\n formRef\r\n };\r\n }\r\n\r\n // 处理标签重载\r\n function useReload() {\r\n let stopHandleWatch: WatchStopHandle;\r\n if (!route.name && !route.meta.keepAlive) {\r\n stopHandleWatch = _useWatch();\r\n // 卸载未缓存的组件\r\n onUnmounted(() => {\r\n stopHandleWatch?.();\r\n });\r\n } else {\r\n // 激活缓存页面\r\n onActivated(() => {\r\n if (refresh.value) {\r\n refresh.value = false;\r\n emit(\"refresh\");\r\n }\r\n stopHandleWatch = _useWatch();\r\n });\r\n // 离开缓存页面\r\n onDeactivated(() => {\r\n stopHandleWatch?.();\r\n });\r\n }\r\n\r\n function _useWatch() {\r\n //点击了标签重载图标\r\n return watch(\r\n () => refresh.value,\r\n val => {\r\n if (val) {\r\n // 发送刷新事件到列表页面\r\n emit(\"refresh\");\r\n }\r\n }\r\n );\r\n }\r\n }\r\n\r\n function useLayout() {\r\n function formLayout() {\r\n return () =>\r\n slots.form && (\r\n <Card\r\n class={cardStyle}\r\n ref={formRef}\r\n style={{ marginBottom: \"10px\" }}\r\n bodyStyle={{ padding: \"10px 10px 0 10px\" }}\r\n bordered={false}\r\n >\r\n {slots.form()}\r\n </Card>\r\n );\r\n }\r\n\r\n function tableLayout() {\r\n return () => (\r\n <Flex flex={1} vertical={true}>\r\n <Card\r\n class={cardStyle}\r\n style={{ height: \"100%\" }}\r\n bodyStyle={{\r\n height: \"100%\",\r\n padding: \"10px\"\r\n }}\r\n bordered={false}\r\n >\r\n <Flex\r\n style={{ height: \"100%\" }}\r\n vertical={true}\r\n >\r\n <Space style={{ marginBottom: \"6px\" }}>\r\n {slots.tools?.()}\r\n </Space>\r\n <Flex\r\n ref={tableRef}\r\n flex={1}\r\n style={{ height: \"100%\" }}\r\n vertical={true}\r\n >\r\n <div class={tableRootStyle}>\r\n <div class={maskDivStyle.value}></div>\r\n <div class={tableWrapperStyle}>\r\n {slots.table?.({\r\n height: height.value\r\n })}\r\n </div>\r\n </div>\r\n </Flex>\r\n </Flex>\r\n </Card>\r\n </Flex>\r\n );\r\n }\r\n\r\n return (\r\n <Watermark\r\n style={{ height: \"100%\" }}\r\n content={watermarkContent.value}\r\n >\r\n <Flex\r\n class={[listStyle.value, \"app-list\"]}\r\n gap={10}\r\n >\r\n {slots.left ? (\r\n <Card\r\n class={[cardStyle, leftCardStyle]}\r\n bordered={false}\r\n bodyStyle={{\r\n height: \"100%\",\r\n padding: \"10px\"\r\n }}\r\n >\r\n {slots.left?.()}\r\n </Card>\r\n ) : null}\r\n <Flex vertical={true} flex={1}>\r\n {formLayout()()}\r\n {tableLayout()()}\r\n </Flex>\r\n </Flex>\r\n {slots.extra?.()}\r\n </Watermark>\r\n );\r\n }\r\n\r\n return () => {\r\n const deviceStore = useDeviceStore();\r\n // 使用 storeToRefs 解构出响应式引用\r\n const { isMobile, isTablet, isDesktop } =\r\n storeToRefs(deviceStore);\r\n\r\n if (isMobile.value) {\r\n return (\r\n <MobileList>\r\n {{\r\n table: () => slots.table?.()\r\n }}\r\n </MobileList>\r\n );\r\n }\r\n\r\n if (isDesktop.value || isTablet.value) {\r\n return useLayout();\r\n }\r\n };\r\n }\r\n});\r\n\r\nexport default list;\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","tableRootStyle","css","list","defineComponent","name","emits","setup","_","slots","emit","appContext","inject","AppContextKey","watermarkContent","computed","value","content","route","useRoute","refresh","storeToRefs","useAppStore","tableRef","height","tableVisible","playTableHeight","useTableHeight","formRef","useForm","useReload","maskDivStyle","tableWrapperStyle","cardStyle","leftCardStyle","listStyle","onMounted","ref","containerEl","$el","containerHeight","useElementSize","watch","newHeight","immediate","nextTick","el","offsetHeight","formEl","formHeight","stopHandleWatch","meta","keepAlive","_useWatch","onUnmounted","onActivated","onDeactivated","val","useLayout","formLayout","_slot","form","_createVNode","Card","marginBottom","padding","default","tableLayout","Flex","Space","tools","table","Watermark","left","_a","extra","deviceStore","useDeviceStore","isMobile","isTablet","isDesktop","MobileList"],"mappings":"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"}