@ditari/bsui 5.1.19 → 5.1.20

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 (67) 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 +47 -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/form/FormLayout.cjs +147 -23
  10. package/dist/cjs/components/form/FormLayout.cjs.map +1 -1
  11. package/dist/cjs/components/form/FormLayout.d.ts +61 -0
  12. package/dist/cjs/components/index.cjs +6 -0
  13. package/dist/cjs/components/index.cjs.map +1 -1
  14. package/dist/cjs/components/index.d.ts +2 -0
  15. package/dist/cjs/components/select/Select.vue2.cjs +0 -3
  16. package/dist/cjs/components/select/Select.vue2.cjs.map +1 -1
  17. package/dist/cjs/components/tools-bar/ToolsBar.vue.cjs +10 -0
  18. package/dist/cjs/components/tools-bar/ToolsBar.vue.cjs.map +1 -0
  19. package/dist/cjs/components/tools-bar/ToolsBar.vue.d.ts +27 -0
  20. package/dist/cjs/components/tools-bar/ToolsBar.vue2.cjs +124 -0
  21. package/dist/cjs/components/tools-bar/ToolsBar.vue2.cjs.map +1 -0
  22. package/dist/cjs/components/tools-bar/index.cjs +16 -0
  23. package/dist/cjs/components/tools-bar/index.cjs.map +1 -0
  24. package/dist/cjs/components/tools-bar/index.d.ts +4 -0
  25. package/dist/cjs/index.cjs +5 -0
  26. package/dist/cjs/index.cjs.map +1 -1
  27. package/dist/esm/components/action-bar/ActionBar.vue.d.ts +47 -0
  28. package/dist/esm/components/action-bar/ActionBar.vue.mjs +6 -0
  29. package/dist/esm/components/action-bar/ActionBar.vue.mjs.map +1 -0
  30. package/dist/esm/components/action-bar/ActionBar.vue2.mjs +110 -0
  31. package/dist/esm/components/action-bar/ActionBar.vue2.mjs.map +1 -0
  32. package/dist/esm/components/action-bar/index.d.ts +4 -0
  33. package/dist/esm/components/action-bar/index.mjs +11 -0
  34. package/dist/esm/components/action-bar/index.mjs.map +1 -0
  35. package/dist/esm/components/form/FormLayout.d.ts +61 -0
  36. package/dist/esm/components/form/FormLayout.mjs +149 -25
  37. package/dist/esm/components/form/FormLayout.mjs.map +1 -1
  38. package/dist/esm/components/index.d.ts +2 -0
  39. package/dist/esm/components/index.mjs +4 -0
  40. package/dist/esm/components/index.mjs.map +1 -1
  41. package/dist/esm/components/select/Select.vue2.mjs +0 -3
  42. package/dist/esm/components/select/Select.vue2.mjs.map +1 -1
  43. package/dist/esm/components/tools-bar/ToolsBar.vue.d.ts +27 -0
  44. package/dist/esm/components/tools-bar/ToolsBar.vue.mjs +6 -0
  45. package/dist/esm/components/tools-bar/ToolsBar.vue.mjs.map +1 -0
  46. package/dist/esm/components/tools-bar/ToolsBar.vue2.mjs +120 -0
  47. package/dist/esm/components/tools-bar/ToolsBar.vue2.mjs.map +1 -0
  48. package/dist/esm/components/tools-bar/index.d.ts +4 -0
  49. package/dist/esm/components/tools-bar/index.mjs +11 -0
  50. package/dist/esm/components/tools-bar/index.mjs.map +1 -0
  51. package/dist/esm/index.mjs +3 -0
  52. package/dist/esm/index.mjs.map +1 -1
  53. package/dist/types/components/action-bar/ActionBar.vue.d.ts +47 -0
  54. package/dist/types/components/action-bar/ActionBar.vue.d.ts.map +1 -0
  55. package/dist/types/components/action-bar/index.d.ts +4 -0
  56. package/dist/types/components/action-bar/index.d.ts.map +1 -0
  57. package/dist/types/components/form/FormLayout.d.ts +61 -0
  58. package/dist/types/components/form/FormLayout.d.ts.map +1 -1
  59. package/dist/types/components/index.d.ts +2 -0
  60. package/dist/types/components/index.d.ts.map +1 -1
  61. package/dist/types/components/tools-bar/ToolsBar.vue.d.ts +27 -0
  62. package/dist/types/components/tools-bar/ToolsBar.vue.d.ts.map +1 -0
  63. package/dist/types/components/tools-bar/index.d.ts +4 -0
  64. package/dist/types/components/tools-bar/index.d.ts.map +1 -0
  65. package/dist/types/index.d.ts.map +1 -1
  66. package/package.json +3 -3
  67. package/src/index.ts +2 -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -46,9 +46,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
46
46
  (name) => name === route.name
47
47
  );
48
48
  const fetchDic = inject("fetchDic", (name) => __async(null, null, function* () {
49
- console.warn(
50
- `fetchDic \u672A\u6CE8\u5165\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u5B9E\u73B0\uFF0Cname: ${name}`
51
- );
52
49
  return [];
53
50
  }));
54
51
  let dicData = [...getDicByKey(props.name)];
@@ -1 +1 @@
1
- {"version":3,"file":"Select.vue2.mjs","sources":["../../../../src/components/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n inject,\n onActivated,\n onMounted,\n ref,\n watch\n} from \"vue\";\nimport { useRoute } from \"vue-router\";\n\nimport {\n useDicStore,\n useKeepAliveStore\n} from \"@ditari/store\";\n\ninterface DicItem {\n value: string | number;\n label: string;\n}\n\nconst props = defineProps({\n value: { required: true, default: undefined },\n name: { type: String, required: true, default: \"\" },\n disabled: { type: Boolean, required: false, default: false },\n placeholder: { type: String, required: false, default: \"请填写默认占位符啊!\" },\n include: { type: Array, required: false, default: () => [] }\n});\n\nconst emits = defineEmits([\"update:value\", \"change\", \"select\"]);\n\nconst { getDicByKey } = useDicStore();\nconst { get: keepNames } = useKeepAliveStore();\n\nconst { modelValue, data, onSelect, onChange } =\n useSelect();\n\nfunction useSelect() {\n const route = useRoute();\n const loadingStatus = ref(false);\n // 判断使用组件的页面是否被缓存\n const isKeepAlive = keepNames.some(\n (name: string) => name === route.name\n );\n // 注入 fetchDic,提供默认值\n const fetchDic = inject<\n (name: string) => Promise<unknown[]>\n >(\"fetchDic\", async (name: string) => {\n console.warn(\n `fetchDic 未注入,使用默认实现,name: ${name}`\n );\n return [];\n });\n\n // 字典数据\n let dicData: DicItem[] = [...getDicByKey(props.name)];\n const data = ref<DicItem[]>(dicData);\n\n // 取值\n const modelValue = ref<string | number | undefined>(\n props.value\n );\n\n onActivated(() => {\n // 缓存页面被激活的时候调用\n loadDicData();\n });\n\n onMounted(() => {\n if (!isKeepAlive) {\n // 未缓存页面 挂载的时候调用\n loadDicData();\n }\n });\n\n // 监听value值的变化\n watch(\n () => props.value,\n val => {\n modelValue.value = val;\n }\n );\n\n setTimeout(() => {\n if (!loadingStatus.value) {\n loadDicData();\n }\n }, 1000);\n\n // 请求字典数据的函数\n async function loadDicData() {\n try {\n loadingStatus.value = true;\n // 调用注入进来的fetchDic方法\n await fetchDic(props.name);\n dicData = [...getDicByKey(props.name)];\n\n if (props.include.length > 0) {\n data.value = dicData.filter((item: DicItem) => {\n return props.include.some(\n (i: string | number) => i === item.value\n );\n });\n } else {\n data.value = dicData;\n }\n } catch (error) {\n console.error(\"获取字典数据失败:\", error);\n }\n }\n\n // 监听用户搜索事件\n const onSearch = (keywords: string) => {\n sendWorkerSearch(keywords);\n };\n\n // 发送搜索到webworker\n function sendWorkerSearch(keywords: string) {\n keywords = keywords ?? \"\";\n data.value = dicData\n .filter((item: DicItem) => {\n return (\n item.value\n .toString()\n .toLowerCase()\n .indexOf(keywords.toLowerCase()) !== -1 ||\n item.label\n .toLowerCase()\n .includes(keywords.toLowerCase())\n );\n })\n .slice(0, 10);\n if (data.value.length === 0) {\n data.value = [...dicData].slice(0, 10);\n }\n }\n\n // 监听下拉选择事件\n const onSelect = (value: string | number) => {\n // 发射选择的数据\n emits(\"update:value\", value);\n // 处理下拉后返回数据的\n onSelectHandler();\n };\n\n // 监听数据改变\n const onChange = () => {\n emits(\"update:value\", modelValue.value);\n emits(\"change\", modelValue.value);\n };\n\n /**\n * 根据当前选中的value匹配对应的整条数据\n * 然后返回给父组件\n */\n function onSelectHandler() {\n const dicList = getDicByKey(props.name);\n const rs = dicList.find(\n (obj: DicItem) => obj.value === modelValue.value\n );\n emits(\"select\", rs);\n }\n\n watch(\n () => props.include,\n (val: Array<string | number>) => {\n if (val.length > 0) {\n // 只过滤出来include包含的数据\n data.value = dicData.filter((item: DicItem) => {\n return val.some(\n (i: string | number) => i === item.value\n );\n });\n } else {\n data.value = dicData;\n }\n },\n {\n immediate: true\n }\n );\n\n return {\n data,\n modelValue,\n onSearch,\n onSelect,\n onChange\n };\n}\n\n/**\n * 过滤筛选\n * @param inputValue\n * @param options\n */\nconst onFilterOption = (\n inputValue: string,\n options: DicItem\n) => {\n return (\n options.value\n .toString()\n .toLowerCase()\n .indexOf(inputValue.toLowerCase()) !== -1 ||\n options.label\n .toLowerCase()\n .includes(inputValue.toLowerCase())\n );\n};\n</script>\n\n<template>\n <a-select\n v-model:value=\"modelValue\"\n style=\"width: 100%\"\n allow-clear\n show-search\n :options=\"data\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :filter-option=\"onFilterOption\"\n @select=\"onSelect\"\n @change=\"onChange\"\n >\n </a-select>\n</template>\n\n<style scoped></style>\n"],"names":["data","modelValue","onSelect","onChange","_createBlock","_unref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAQd,IAAA,MAAM,KAAA,GAAQ,MAAA;AAEd,IAAA,MAAM,EAAE,WAAA,EAAY,GAAI,WAAA,EAAY;AACpC,IAAA,MAAM,EAAE,GAAA,EAAK,SAAA,EAAU,GAAI,iBAAA,EAAkB;AAE7C,IAAA,MAAM,EAAE,UAAA,EAAY,IAAA,EAAM,QAAA,EAAU,QAAA,KAClC,SAAA,EAAU;AAEZ,IAAA,SAAS,SAAA,GAAY;AACnB,MAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,MAAA,MAAM,aAAA,GAAgB,IAAI,KAAK,CAAA;AAE/B,MAAA,MAAM,cAAc,SAAA,CAAU,IAAA;AAAA,QAC5B,CAAC,IAAA,KAAiB,IAAA,KAAS,KAAA,CAAM;AAAA,OACnC;AAEA,MAAA,MAAM,QAAA,GAAW,MAAA,CAEf,UAAA,EAAY,CAAO,IAAA,KAAiB,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACpC,QAAA,OAAA,CAAQ,IAAA;AAAA,UACN,oFAA6B,IAAI,CAAA;AAAA,SACnC;AACA,QAAA,OAAO,EAAC;AAAA,MACV,CAAA,CAAC,CAAA;AAGD,MAAA,IAAI,UAAqB,CAAC,GAAG,WAAA,CAAY,KAAA,CAAM,IAAI,CAAC,CAAA;AACpD,MAAA,MAAMA,KAAAA,GAAO,IAAe,OAAO,CAAA;AAGnC,MAAA,MAAMC,WAAAA,GAAa,GAAA;AAAA,QACjB,KAAA,CAAM;AAAA,OACR;AAEA,MAAA,WAAA,CAAY,MAAM;AAEhB,QAAA,WAAA,EAAY;AAAA,MACd,CAAC,CAAA;AAED,MAAA,SAAA,CAAU,MAAM;AACd,QAAA,IAAI,CAAC,WAAA,EAAa;AAEhB,UAAA,WAAA,EAAY;AAAA,QACd;AAAA,MACF,CAAC,CAAA;AAGD,MAAA,KAAA;AAAA,QACE,MAAM,KAAA,CAAM,KAAA;AAAA,QACZ,CAAA,GAAA,KAAO;AACL,UAAAA,YAAW,KAAA,GAAQ,GAAA;AAAA,QACrB;AAAA,OACF;AAEA,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,IAAI,CAAC,cAAc,KAAA,EAAO;AACxB,UAAA,WAAA,EAAY;AAAA,QACd;AAAA,MACF,GAAG,GAAI,CAAA;AAGP,MAAA,SAAe,WAAA,GAAc;AAAA,QAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC3B,UAAA,IAAI;AACF,YAAA,aAAA,CAAc,KAAA,GAAQ,IAAA;AAEtB,YAAA,MAAM,QAAA,CAAS,MAAM,IAAI,CAAA;AACzB,YAAA,OAAA,GAAU,CAAC,GAAG,WAAA,CAAY,KAAA,CAAM,IAAI,CAAC,CAAA;AAErC,YAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,MAAA,GAAS,CAAA,EAAG;AAC5B,cAAAD,KAAAA,CAAK,KAAA,GAAQ,OAAA,CAAQ,MAAA,CAAO,CAAC,IAAA,KAAkB;AAC7C,gBAAA,OAAO,MAAM,OAAA,CAAQ,IAAA;AAAA,kBACnB,CAAC,CAAA,KAAuB,CAAA,KAAM,IAAA,CAAK;AAAA,iBACrC;AAAA,cACF,CAAC,CAAA;AAAA,YACH,CAAA,MAAO;AACL,cAAAA,MAAK,KAAA,GAAQ,OAAA;AAAA,YACf;AAAA,UACF,SAAS,KAAA,EAAO;AACd,YAAA,OAAA,CAAQ,KAAA,CAAM,qDAAa,KAAK,CAAA;AAAA,UAClC;AAAA,QACF,CAAA,CAAA;AAAA,MAAA;AAGA,MAAA,MAAM,QAAA,GAAW,CAAC,QAAA,KAAqB;AACrC,QAAA,gBAAA,CAAiB,QAAQ,CAAA;AAAA,MAC3B,CAAA;AAGA,MAAA,SAAS,iBAAiB,QAAA,EAAkB;AAC1C,QAAA,QAAA,GAAW,QAAA,IAAA,IAAA,GAAA,QAAA,GAAY,EAAA;AACvB,QAAAA,KAAAA,CAAK,KAAA,GAAQ,OAAA,CACV,MAAA,CAAO,CAAC,IAAA,KAAkB;AACzB,UAAA,OACE,KAAK,KAAA,CACF,QAAA,GACA,WAAA,EAAY,CACZ,QAAQ,QAAA,CAAS,WAAA,EAAa,CAAA,KAAM,CAAA,CAAA,IACvC,KAAK,KAAA,CACF,WAAA,GACA,QAAA,CAAS,QAAA,CAAS,aAAa,CAAA;AAAA,QAEtC,CAAC,CAAA,CACA,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AACd,QAAA,IAAIA,KAAAA,CAAK,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG;AAC3B,UAAAA,KAAAA,CAAK,QAAQ,CAAC,GAAG,OAAO,CAAA,CAAE,KAAA,CAAM,GAAG,EAAE,CAAA;AAAA,QACvC;AAAA,MACF;AAGA,MAAA,MAAME,SAAAA,GAAW,CAAC,KAAA,KAA2B;AAE3C,QAAA,KAAA,CAAM,gBAAgB,KAAK,CAAA;AAE3B,QAAA,eAAA,EAAgB;AAAA,MAClB,CAAA;AAGA,MAAA,MAAMC,YAAW,MAAM;AACrB,QAAA,KAAA,CAAM,cAAA,EAAgBF,YAAW,KAAK,CAAA;AACtC,QAAA,KAAA,CAAM,QAAA,EAAUA,YAAW,KAAK,CAAA;AAAA,MAClC,CAAA;AAMA,MAAA,SAAS,eAAA,GAAkB;AACzB,QAAA,MAAM,OAAA,GAAU,WAAA,CAAY,KAAA,CAAM,IAAI,CAAA;AACtC,QAAA,MAAM,KAAK,OAAA,CAAQ,IAAA;AAAA,UACjB,CAAC,GAAA,KAAiB,GAAA,CAAI,KAAA,KAAUA,WAAAA,CAAW;AAAA,SAC7C;AACA,QAAA,KAAA,CAAM,UAAU,EAAE,CAAA;AAAA,MACpB;AAEA,MAAA,KAAA;AAAA,QACE,MAAM,KAAA,CAAM,OAAA;AAAA,QACZ,CAAC,GAAA,KAAgC;AAC/B,UAAA,IAAI,GAAA,CAAI,SAAS,CAAA,EAAG;AAElB,YAAAD,KAAAA,CAAK,KAAA,GAAQ,OAAA,CAAQ,MAAA,CAAO,CAAC,IAAA,KAAkB;AAC7C,cAAA,OAAO,GAAA,CAAI,IAAA;AAAA,gBACT,CAAC,CAAA,KAAuB,CAAA,KAAM,IAAA,CAAK;AAAA,eACrC;AAAA,YACF,CAAC,CAAA;AAAA,UACH,CAAA,MAAO;AACL,YAAAA,MAAK,KAAA,GAAQ,OAAA;AAAA,UACf;AAAA,QACF,CAAA;AAAA,QACA;AAAA,UACE,SAAA,EAAW;AAAA;AACb,OACF;AAEA,MAAA,OAAO;AAAA,QACL,IAAA,EAAAA,KAAAA;AAAA,QACA,UAAA,EAAAC,WAAAA;AAAA,QACA,QAAA;AAAA,QACA,QAAA,EAAAC,SAAAA;AAAA,QACA,QAAA,EAAAC;AAAA,OACF;AAAA,IACF;AAOA,IAAA,MAAM,cAAA,GAAiB,CACrB,UAAA,EACA,OAAA,KACG;AACH,MAAA,OACE,QAAQ,KAAA,CACL,QAAA,GACA,WAAA,EAAY,CACZ,QAAQ,UAAA,CAAW,WAAA,EAAa,CAAA,KAAM,CAAA,CAAA,IACzC,QAAQ,KAAA,CACL,WAAA,GACA,QAAA,CAAS,UAAA,CAAW,aAAa,CAAA;AAAA,IAExC,CAAA;;;0BAIEC,WAAA,CAYW,mBAAA,EAAA;AAAA,QAXD,KAAA,EAAOC,MAAA,UAAA,CAAA;AAAA,oFAAA,UAAA,CAAU,QAAA,MAAA,GAAA,IAAA,CAAA;AAAA,QACzB,KAAA,EAAA,EAAA,OAAA,EAAA,MAAA,EAAA;AAAA,QACA,aAAA,EAAA,EAAA;AAAA,QACA,aAAA,EAAA,EAAA;AAAA,QACC,OAAA,EAASA,MAAA,IAAA,CAAA;AAAA,QACT,aAAa,OAAA,CAAA,WAAA;AAAA,QACb,UAAU,OAAA,CAAA,QAAA;AAAA,QACV,eAAA,EAAe,cAAA;AAAA,QACf,QAAA,EAAQA,MAAA,QAAA,CAAA;AAAA,QACR,QAAA,EAAQA,MAAA,QAAA;AAAA;;;;;;;"}
1
+ {"version":3,"file":"Select.vue2.mjs","sources":["../../../../src/components/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n inject,\n onActivated,\n onMounted,\n ref,\n watch\n} from \"vue\";\nimport { useRoute } from \"vue-router\";\n\nimport {\n useDicStore,\n useKeepAliveStore\n} from \"@ditari/store\";\n\ninterface DicItem {\n value: string | number;\n label: string;\n}\n\nconst props = defineProps({\n value: { required: true, default: undefined },\n name: { type: String, required: true, default: \"\" },\n disabled: { type: Boolean, required: false, default: false },\n placeholder: { type: String, required: false, default: \"请填写默认占位符啊!\" },\n include: { type: Array, required: false, default: () => [] }\n});\n\nconst emits = defineEmits([\"update:value\", \"change\", \"select\"]);\n\nconst { getDicByKey } = useDicStore();\nconst { get: keepNames } = useKeepAliveStore();\n\nconst { modelValue, data, onSelect, onChange } =\n useSelect();\n\nfunction useSelect() {\n const route = useRoute();\n const loadingStatus = ref(false);\n // 判断使用组件的页面是否被缓存\n const isKeepAlive = keepNames.some(\n (name: string) => name === route.name\n );\n // 注入 fetchDic,提供默认值\n const fetchDic = inject<\n (name: string) => Promise<unknown[]>\n >(\"fetchDic\", async (name: string) => {\n // console.warn(\n // `fetchDic 未注入,使用默认实现,name: ${name}`\n // );\n return [];\n });\n\n // 字典数据\n let dicData: DicItem[] = [...getDicByKey(props.name)];\n const data = ref<DicItem[]>(dicData);\n\n // 取值\n const modelValue = ref<string | number | undefined>(\n props.value\n );\n\n onActivated(() => {\n // 缓存页面被激活的时候调用\n loadDicData();\n });\n\n onMounted(() => {\n if (!isKeepAlive) {\n // 未缓存页面 挂载的时候调用\n loadDicData();\n }\n });\n\n // 监听value值的变化\n watch(\n () => props.value,\n val => {\n modelValue.value = val;\n }\n );\n\n setTimeout(() => {\n if (!loadingStatus.value) {\n loadDicData();\n }\n }, 1000);\n\n // 请求字典数据的函数\n async function loadDicData() {\n try {\n loadingStatus.value = true;\n // 调用注入进来的fetchDic方法\n await fetchDic(props.name);\n dicData = [...getDicByKey(props.name)];\n\n if (props.include.length > 0) {\n data.value = dicData.filter((item: DicItem) => {\n return props.include.some(\n (i: string | number) => i === item.value\n );\n });\n } else {\n data.value = dicData;\n }\n } catch (error) {\n console.error(\"获取字典数据失败:\", error);\n }\n }\n\n // 监听用户搜索事件\n const onSearch = (keywords: string) => {\n sendWorkerSearch(keywords);\n };\n\n // 发送搜索到webworker\n function sendWorkerSearch(keywords: string) {\n keywords = keywords ?? \"\";\n data.value = dicData\n .filter((item: DicItem) => {\n return (\n item.value\n .toString()\n .toLowerCase()\n .indexOf(keywords.toLowerCase()) !== -1 ||\n item.label\n .toLowerCase()\n .includes(keywords.toLowerCase())\n );\n })\n .slice(0, 10);\n if (data.value.length === 0) {\n data.value = [...dicData].slice(0, 10);\n }\n }\n\n // 监听下拉选择事件\n const onSelect = (value: string | number) => {\n // 发射选择的数据\n emits(\"update:value\", value);\n // 处理下拉后返回数据的\n onSelectHandler();\n };\n\n // 监听数据改变\n const onChange = () => {\n emits(\"update:value\", modelValue.value);\n emits(\"change\", modelValue.value);\n };\n\n /**\n * 根据当前选中的value匹配对应的整条数据\n * 然后返回给父组件\n */\n function onSelectHandler() {\n const dicList = getDicByKey(props.name);\n const rs = dicList.find(\n (obj: DicItem) => obj.value === modelValue.value\n );\n emits(\"select\", rs);\n }\n\n watch(\n () => props.include,\n (val: Array<string | number>) => {\n if (val.length > 0) {\n // 只过滤出来include包含的数据\n data.value = dicData.filter((item: DicItem) => {\n return val.some(\n (i: string | number) => i === item.value\n );\n });\n } else {\n data.value = dicData;\n }\n },\n {\n immediate: true\n }\n );\n\n return {\n data,\n modelValue,\n onSearch,\n onSelect,\n onChange\n };\n}\n\n/**\n * 过滤筛选\n * @param inputValue\n * @param options\n */\nconst onFilterOption = (\n inputValue: string,\n options: DicItem\n) => {\n return (\n options.value\n .toString()\n .toLowerCase()\n .indexOf(inputValue.toLowerCase()) !== -1 ||\n options.label\n .toLowerCase()\n .includes(inputValue.toLowerCase())\n );\n};\n</script>\n\n<template>\n <a-select\n v-model:value=\"modelValue\"\n style=\"width: 100%\"\n allow-clear\n show-search\n :options=\"data\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :filter-option=\"onFilterOption\"\n @select=\"onSelect\"\n @change=\"onChange\"\n >\n </a-select>\n</template>\n\n<style scoped></style>\n"],"names":["data","modelValue","onSelect","onChange","_createBlock","_unref"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { type VNode } from "vue";
2
+ interface ButtonItem {
3
+ title: string;
4
+ onClick?: () => void;
5
+ icon?: string | (() => VNode);
6
+ isUpload?: boolean;
7
+ attrs?: Record<string, unknown>;
8
+ uploadAttrs?: Record<string, unknown>;
9
+ }
10
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
11
+ buttonGroups: {
12
+ type: ArrayConstructor;
13
+ required: true;
14
+ };
15
+ }>, {
16
+ props: any;
17
+ getIconContent: (item: ButtonItem) => VNode<import("vue").RendererNode, import("vue").RendererElement, {
18
+ [key: string]: any;
19
+ }> | null;
20
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
21
+ buttonGroups: {
22
+ type: ArrayConstructor;
23
+ required: true;
24
+ };
25
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
26
+ export default _default;
27
+ //# sourceMappingURL=ToolsBar.vue.d.ts.map
@@ -0,0 +1,6 @@
1
+ import _sfc_main from './ToolsBar.vue2.mjs';
2
+
3
+ "use strict";
4
+
5
+ export { _sfc_main as default };
6
+ //# sourceMappingURL=ToolsBar.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolsBar.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}