bm-admin-ui 1.0.92-alpha → 1.0.93-alpha

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 (37) hide show
  1. package/es/components/cascader/index.js +2 -2
  2. package/es/components/form-create/index.js +389 -98
  3. package/es/components/form-designer/index.js +180 -122
  4. package/es/components/search-filter/index.d.ts +28 -0
  5. package/es/components/search-filter/index.js +70 -17
  6. package/es/components/search-filter/src/form-select-all.vue.d.ts +15 -0
  7. package/es/components/search-filter/src/search-filter.d.ts +16 -0
  8. package/es/components/search-filter/src/search-filter.vue.d.ts +28 -0
  9. package/es/components/search-filter/src/search-reset-btn.vue.d.ts +26 -0
  10. package/es/components/select-all/index.d.ts +2 -0
  11. package/es/components/select-all/index.js +33 -15
  12. package/es/components/select-all/src/selectAll.vue.d.ts +2 -0
  13. package/es/utils/uniqueId.js +2 -2
  14. package/lib/components/cascader/index.js +2 -2
  15. package/lib/components/form-create/index.js +389 -98
  16. package/lib/components/form-designer/index.js +174 -116
  17. package/lib/components/search-filter/index.d.ts +28 -0
  18. package/lib/components/search-filter/index.js +71 -17
  19. package/lib/components/search-filter/src/form-select-all.vue.d.ts +15 -0
  20. package/lib/components/search-filter/src/search-filter.d.ts +16 -0
  21. package/lib/components/search-filter/src/search-filter.vue.d.ts +28 -0
  22. package/lib/components/search-filter/src/search-reset-btn.vue.d.ts +26 -0
  23. package/lib/components/select-all/index.d.ts +2 -0
  24. package/lib/components/select-all/index.js +32 -14
  25. package/lib/components/select-all/src/selectAll.vue.d.ts +2 -0
  26. package/lib/utils/uniqueId.js +2 -2
  27. package/package.json +1 -1
  28. package/theme-chalk/form-designer.css +1 -1
  29. package/theme-chalk/index.css +1 -1
  30. package/theme-chalk/select-all.css +1 -1
  31. package/types/components/search-filter/index.d.ts +28 -0
  32. package/types/components/search-filter/src/form-select-all.vue.d.ts +15 -0
  33. package/types/components/search-filter/src/search-filter.d.ts +16 -0
  34. package/types/components/search-filter/src/search-filter.vue.d.ts +28 -0
  35. package/types/components/search-filter/src/search-reset-btn.vue.d.ts +26 -0
  36. package/types/components/select-all/index.d.ts +2 -0
  37. package/types/components/select-all/src/selectAll.vue.d.ts +2 -0
@@ -31,6 +31,14 @@ declare const BmSearchFilter: import("bm-admin-ui/es/utils/with-install").SFCWit
31
31
  type: StringConstructor;
32
32
  default: string;
33
33
  };
34
+ setDefaultConfirm: {
35
+ type: BooleanConstructor;
36
+ default: boolean;
37
+ };
38
+ setDefaultConfirmConfig: {
39
+ type: ObjectConstructor;
40
+ default(): {};
41
+ };
34
42
  gutter: {
35
43
  type: import("vue").PropType<number[]>;
36
44
  default(): number[];
@@ -99,6 +107,14 @@ declare const BmSearchFilter: import("bm-admin-ui/es/utils/with-install").SFCWit
99
107
  type: StringConstructor;
100
108
  default: string;
101
109
  };
110
+ setDefaultConfirm: {
111
+ type: BooleanConstructor;
112
+ default: boolean;
113
+ };
114
+ setDefaultConfirmConfig: {
115
+ type: ObjectConstructor;
116
+ default(): {};
117
+ };
102
118
  gutter: {
103
119
  type: import("vue").PropType<number[]>;
104
120
  default(): number[];
@@ -151,6 +167,8 @@ declare const BmSearchFilter: import("bm-admin-ui/es/utils/with-install").SFCWit
151
167
  showSetDefaultBtn: boolean;
152
168
  setDefaultText: string;
153
169
  setDefaultId: string;
170
+ setDefaultConfirm: boolean;
171
+ setDefaultConfirmConfig: Record<string, any>;
154
172
  collapseText: string;
155
173
  gutter: number[];
156
174
  loading: boolean;
@@ -219,6 +237,14 @@ declare const BmSearchFilter: import("bm-admin-ui/es/utils/with-install").SFCWit
219
237
  type: StringConstructor;
220
238
  default: string;
221
239
  };
240
+ setDefaultConfirm: {
241
+ type: BooleanConstructor;
242
+ default: boolean;
243
+ };
244
+ setDefaultConfirmConfig: {
245
+ type: ObjectConstructor;
246
+ default(): {};
247
+ };
222
248
  gutter: {
223
249
  type: import("vue").PropType<number[]>;
224
250
  default(): number[];
@@ -271,6 +297,8 @@ declare const BmSearchFilter: import("bm-admin-ui/es/utils/with-install").SFCWit
271
297
  showSetDefaultBtn: boolean;
272
298
  setDefaultText: string;
273
299
  setDefaultId: string;
300
+ setDefaultConfirm: boolean;
301
+ setDefaultConfirmConfig: Record<string, any>;
274
302
  gutter: number[];
275
303
  userRule: unknown[];
276
304
  ruleSpan: Record<string, any>;
@@ -4,6 +4,7 @@ import FormCreateCtr from '@form-create/ant-design-vue';
4
4
  import { UpOutlined, DownOutlined, SearchOutlined } from '@ant-design/icons-vue';
5
5
  import ASelect from 'ant-design-vue/lib/select';
6
6
  import { cloneDeep } from 'lodash-es';
7
+ import Modal from 'ant-design-vue/lib/modal';
7
8
 
8
9
  const searchResetBtnProps = {
9
10
  showExpandBtn: {
@@ -38,6 +39,16 @@ const searchResetBtnProps = {
38
39
  type: String,
39
40
  default: '',
40
41
  },
42
+ setDefaultConfirm: {
43
+ type: Boolean,
44
+ default: true,
45
+ },
46
+ setDefaultConfirmConfig: {
47
+ type: Object,
48
+ default() {
49
+ return {};
50
+ },
51
+ },
41
52
  gutter: {
42
53
  type: Array,
43
54
  default() {
@@ -164,14 +175,19 @@ const _hoisted_3 = ["onClick"];
164
175
  const _hoisted_4 = /* @__PURE__ */ createElementVNode("span", { class: "checkbox-label" }, "\u5168\u9009", -1);
165
176
  const _hoisted_5 = ["onClick"];
166
177
  const _hoisted_6 = /* @__PURE__ */ createElementVNode("span", { class: "checkbox-label" }, "\u53CD\u9009", -1);
167
- const _hoisted_7 = { class: "blue" };
178
+ const _hoisted_7 = { key: 0 };
179
+ const _hoisted_8 = { class: "blue" };
168
180
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
169
181
  __name: "form-select-all",
170
182
  props: {
171
183
  modelValue: {
172
184
  type: Array || String || Number || void 0
173
185
  },
174
- disabled: Boolean
186
+ disabled: Boolean,
187
+ showSelectAll: {
188
+ type: Boolean,
189
+ default: true
190
+ }
175
191
  },
176
192
  emits: ["onSelectAll", "onChange", "update:modelValue"],
177
193
  setup(__props, { emit }) {
@@ -181,7 +197,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
181
197
  search: {
182
198
  indeterminate: false,
183
199
  checkedAll: false,
184
- checkedReverse: false
200
+ checkedReverse: false,
201
+ searchList: []
185
202
  }
186
203
  });
187
204
  let selectValue = ref([]);
@@ -193,7 +210,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
193
210
  state.search = {
194
211
  indeterminate: false,
195
212
  checkedAll: false,
196
- checkedReverse: false
213
+ checkedReverse: false,
214
+ searchList: []
197
215
  };
198
216
  }
199
217
  },
@@ -203,17 +221,20 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
203
221
  );
204
222
  const selectAll = (e) => {
205
223
  let key = "value";
224
+ let list = [];
206
225
  if (instance?.attrs.fieldNames || instance?.attrs["field-names"])
207
226
  key = (instance?.attrs).fieldNames?.value || (instance?.attrs)["field-names"].value;
208
227
  state.search.checkedAll = !state.search.checkedAll;
209
228
  state.search.indeterminate = false;
210
229
  state.search.checkedReverse = false;
230
+ if (state.search.searchList.length > 0)
231
+ list = state.search.searchList;
232
+ else
233
+ list = instance?.attrs.options;
211
234
  if (state.search.checkedAll) {
212
- selectValue.value = (instance?.attrs.options).map(
213
- (v) => {
214
- return v[key];
215
- }
216
- );
235
+ selectValue.value = list.map((v) => {
236
+ return v[key];
237
+ });
217
238
  } else {
218
239
  selectValue.value = [];
219
240
  }
@@ -256,6 +277,15 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
256
277
  option
257
278
  });
258
279
  };
280
+ const onSearch = (val) => {
281
+ if (val) {
282
+ const key = (instance?.attrs).optionFilterProp || (instance?.attrs)["option-filter-prop"] || "value";
283
+ const list = (instance?.attrs).options.filter((ele) => {
284
+ return String(ele[key]).indexOf(String(val)) > -1;
285
+ });
286
+ state.search.searchList = list;
287
+ }
288
+ };
259
289
  const VNodes = (_, { attrs }) => {
260
290
  return h(attrs.vnodes);
261
291
  };
@@ -268,10 +298,12 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
268
298
  class: "bm-select search"
269
299
  }, _ctx.$attrs, {
270
300
  mode: "multiple",
301
+ class: { w200: !props.showSelectAll },
271
302
  disabled: props.disabled,
272
303
  placeholder: unref(instance)?.attrs.placeholder ? unref(instance)?.attrs.placeholder : "\u8BF7\u9009\u62E9",
273
304
  "get-popup-container": (nodes) => nodes.parentNode,
274
- onChange
305
+ onChange,
306
+ onSearch
275
307
  }), {
276
308
  dropdownRender: withCtx(({ menuNode: menu }) => [
277
309
  createElementVNode("div", _hoisted_1, [
@@ -303,16 +335,16 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
303
335
  ]),
304
336
  _: 1
305
337
  }),
306
- createElementVNode("div", null, [
338
+ __props.showSelectAll ? (openBlock(), createElementBlock("div", _hoisted_7, [
307
339
  createTextVNode(" \u5DF2\u9009\u62E9 "),
308
- createElementVNode("span", _hoisted_7, toDisplayString(unref(selectValue)?.length || 0), 1),
340
+ createElementVNode("span", _hoisted_8, toDisplayString(unref(selectValue)?.length || 0), 1),
309
341
  createTextVNode(" \u9879 ")
310
- ])
342
+ ])) : createCommentVNode("v-if", true)
311
343
  ]),
312
344
  createVNode(VNodes, { vnodes: menu }, null, 8, ["vnodes"])
313
345
  ]),
314
346
  _: 1
315
- }, 16, ["value", "disabled", "placeholder", "get-popup-container"]);
347
+ }, 16, ["value", "class", "disabled", "placeholder", "get-popup-container"]);
316
348
  };
317
349
  }
318
350
  });
@@ -347,6 +379,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
347
379
  showSetDefaultBtn: props.showSetDefaultBtn,
348
380
  setDefaultText: props.setDefaultText,
349
381
  setDefaultId: props.setDefaultId,
382
+ setDefaultConfirm: props.setDefaultConfirm,
383
+ setDefaultConfirmConfig: props.setDefaultConfirmConfig,
350
384
  collapseText: props.collapseText,
351
385
  gutter: props.gutter,
352
386
  loading: props.loading
@@ -364,14 +398,33 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
364
398
  emits("expand", value);
365
399
  },
366
400
  setDefault() {
367
- if (props.setDefaultId) {
401
+ if (!props.setDefaultId) {
402
+ throw new Error("\u8BF7\u5148\u8BBE\u7F6E\u5B58\u50A8\u7684ID\uFF0C\u5426\u5219\u65E0\u6CD5\u5B58\u50A8\u5230 LocalStorage\uFF01");
403
+ }
404
+ function setDefault() {
368
405
  window.localStorage.setItem(
369
406
  props.setDefaultId,
370
407
  JSON.stringify(fApi.value.formData())
371
408
  );
409
+ emits("setDefault", fApi.value.formData());
410
+ updateRulesDefault(fApi.value.formData());
411
+ }
412
+ if (props.setDefaultConfirm) {
413
+ let defaultConfig = {
414
+ title: "\u786E\u5B9A\u8BBE\u7F6E\u5F53\u524D\u67E5\u8BE2\u6761\u4EF6\u4E3A\u9ED8\u8BA4\u67E5\u8BE2\u5417\uFF1F",
415
+ okText: "\u786E\u8BA4",
416
+ cancelText: "\u53D6\u6D88"
417
+ };
418
+ Modal.confirm({
419
+ ...defaultConfig,
420
+ ...props.setDefaultConfirmConfig,
421
+ onOk() {
422
+ setDefault();
423
+ }
424
+ });
425
+ } else {
426
+ setDefault();
372
427
  }
373
- emits("setDefault", fApi.value.formData());
374
- updateRulesDefault(fApi.value.formData());
375
428
  }
376
429
  }
377
430
  }
@@ -3,6 +3,10 @@ declare const _default: import("vue").DefineComponent<{
3
3
  type: ArrayConstructor;
4
4
  };
5
5
  disabled: BooleanConstructor;
6
+ showSelectAll: {
7
+ type: BooleanConstructor;
8
+ default: boolean;
9
+ };
6
10
  }, {
7
11
  instance: import("vue").ComponentInternalInstance | null;
8
12
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
@@ -10,6 +14,10 @@ declare const _default: import("vue").DefineComponent<{
10
14
  type: ArrayConstructor;
11
15
  };
12
16
  disabled: BooleanConstructor;
17
+ showSelectAll: {
18
+ type: BooleanConstructor;
19
+ default: boolean;
20
+ };
13
21
  }>> & {
14
22
  onOnChange?: ((...args: any[]) => any) | undefined;
15
23
  onOnSelectAll?: ((...args: any[]) => any) | undefined;
@@ -20,6 +28,7 @@ declare const _default: import("vue").DefineComponent<{
20
28
  indeterminate: boolean;
21
29
  checkedAll: boolean;
22
30
  checkedReverse: boolean;
31
+ searchList: never[];
23
32
  };
24
33
  };
25
34
  emit: (event: "onChange" | "onSelectAll" | "update:modelValue", ...args: any[]) => void;
@@ -27,6 +36,7 @@ declare const _default: import("vue").DefineComponent<{
27
36
  selectAll: (e: any) => void;
28
37
  reverseAll: (e: any) => false | undefined;
29
38
  onChange: (value: any, option: any) => void;
39
+ onSearch: (val: string | number) => void;
30
40
  VNodes: (_: any, { attrs }: {
31
41
  attrs: any;
32
42
  }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
@@ -731,11 +741,16 @@ declare const _default: import("vue").DefineComponent<{
731
741
  type: ArrayConstructor;
732
742
  };
733
743
  disabled: BooleanConstructor;
744
+ showSelectAll: {
745
+ type: BooleanConstructor;
746
+ default: boolean;
747
+ };
734
748
  }>> & {
735
749
  onOnChange?: ((...args: any[]) => any) | undefined;
736
750
  onOnSelectAll?: ((...args: any[]) => any) | undefined;
737
751
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
738
752
  }, {
739
753
  disabled: boolean;
754
+ showSelectAll: boolean;
740
755
  }>;
741
756
  export default _default;
@@ -32,6 +32,14 @@ export declare const searchResetBtnProps: {
32
32
  type: StringConstructor;
33
33
  default: string;
34
34
  };
35
+ setDefaultConfirm: {
36
+ type: BooleanConstructor;
37
+ default: boolean;
38
+ };
39
+ setDefaultConfirmConfig: {
40
+ type: ObjectConstructor;
41
+ default(): {};
42
+ };
35
43
  gutter: {
36
44
  type: PropType<number[]>;
37
45
  default(): number[];
@@ -74,6 +82,14 @@ export declare const searchFilterProps: {
74
82
  type: StringConstructor;
75
83
  default: string;
76
84
  };
85
+ setDefaultConfirm: {
86
+ type: BooleanConstructor;
87
+ default: boolean;
88
+ };
89
+ setDefaultConfirmConfig: {
90
+ type: ObjectConstructor;
91
+ default(): {};
92
+ };
77
93
  gutter: {
78
94
  type: PropType<number[]>;
79
95
  default(): number[];
@@ -31,6 +31,14 @@ declare const _default: import("vue").DefineComponent<{
31
31
  type: StringConstructor;
32
32
  default: string;
33
33
  };
34
+ setDefaultConfirm: {
35
+ type: BooleanConstructor;
36
+ default: boolean;
37
+ };
38
+ setDefaultConfirmConfig: {
39
+ type: ObjectConstructor;
40
+ default(): {};
41
+ };
34
42
  gutter: {
35
43
  type: import("vue").PropType<number[]>;
36
44
  default(): number[];
@@ -99,6 +107,14 @@ declare const _default: import("vue").DefineComponent<{
99
107
  type: StringConstructor;
100
108
  default: string;
101
109
  };
110
+ setDefaultConfirm: {
111
+ type: BooleanConstructor;
112
+ default: boolean;
113
+ };
114
+ setDefaultConfirmConfig: {
115
+ type: ObjectConstructor;
116
+ default(): {};
117
+ };
102
118
  gutter: {
103
119
  type: import("vue").PropType<number[]>;
104
120
  default(): number[];
@@ -151,6 +167,8 @@ declare const _default: import("vue").DefineComponent<{
151
167
  showSetDefaultBtn: boolean;
152
168
  setDefaultText: string;
153
169
  setDefaultId: string;
170
+ setDefaultConfirm: boolean;
171
+ setDefaultConfirmConfig: Record<string, any>;
154
172
  collapseText: string;
155
173
  gutter: number[];
156
174
  loading: boolean;
@@ -219,6 +237,14 @@ declare const _default: import("vue").DefineComponent<{
219
237
  type: StringConstructor;
220
238
  default: string;
221
239
  };
240
+ setDefaultConfirm: {
241
+ type: BooleanConstructor;
242
+ default: boolean;
243
+ };
244
+ setDefaultConfirmConfig: {
245
+ type: ObjectConstructor;
246
+ default(): {};
247
+ };
222
248
  gutter: {
223
249
  type: import("vue").PropType<number[]>;
224
250
  default(): number[];
@@ -271,6 +297,8 @@ declare const _default: import("vue").DefineComponent<{
271
297
  showSetDefaultBtn: boolean;
272
298
  setDefaultText: string;
273
299
  setDefaultId: string;
300
+ setDefaultConfirm: boolean;
301
+ setDefaultConfirmConfig: Record<string, any>;
274
302
  gutter: number[];
275
303
  userRule: unknown[];
276
304
  ruleSpan: Record<string, any>;
@@ -31,6 +31,14 @@ declare const _default: import("vue").DefineComponent<{
31
31
  type: StringConstructor;
32
32
  default: string;
33
33
  };
34
+ setDefaultConfirm: {
35
+ type: BooleanConstructor;
36
+ default: boolean;
37
+ };
38
+ setDefaultConfirmConfig: {
39
+ type: ObjectConstructor;
40
+ default(): {};
41
+ };
34
42
  gutter: {
35
43
  type: import("vue").PropType<number[]>;
36
44
  default(): number[];
@@ -73,6 +81,14 @@ declare const _default: import("vue").DefineComponent<{
73
81
  type: StringConstructor;
74
82
  default: string;
75
83
  };
84
+ setDefaultConfirm: {
85
+ type: BooleanConstructor;
86
+ default: boolean;
87
+ };
88
+ setDefaultConfirmConfig: {
89
+ type: ObjectConstructor;
90
+ default(): {};
91
+ };
76
92
  gutter: {
77
93
  type: import("vue").PropType<number[]>;
78
94
  default(): number[];
@@ -133,6 +149,14 @@ declare const _default: import("vue").DefineComponent<{
133
149
  type: StringConstructor;
134
150
  default: string;
135
151
  };
152
+ setDefaultConfirm: {
153
+ type: BooleanConstructor;
154
+ default: boolean;
155
+ };
156
+ setDefaultConfirmConfig: {
157
+ type: ObjectConstructor;
158
+ default(): {};
159
+ };
136
160
  gutter: {
137
161
  type: import("vue").PropType<number[]>;
138
162
  default(): number[];
@@ -156,6 +180,8 @@ declare const _default: import("vue").DefineComponent<{
156
180
  showSetDefaultBtn: boolean;
157
181
  setDefaultText: string;
158
182
  setDefaultId: string;
183
+ setDefaultConfirm: boolean;
184
+ setDefaultConfirmConfig: Record<string, any>;
159
185
  gutter: number[];
160
186
  }>;
161
187
  export default _default;
@@ -28,6 +28,7 @@ declare const BmSelectAll: import("bm-admin-ui/es/utils/with-install").SFCWithIn
28
28
  indeterminate: boolean;
29
29
  checkedAll: boolean;
30
30
  checkedReverse: boolean;
31
+ searchList: never[];
31
32
  };
32
33
  };
33
34
  emit: (event: "onChange" | "update:value" | "onSelectAll", ...args: any[]) => void;
@@ -35,6 +36,7 @@ declare const BmSelectAll: import("bm-admin-ui/es/utils/with-install").SFCWithIn
35
36
  selectAll: (e: any) => void;
36
37
  reverseAll: (e: any) => false | undefined;
37
38
  onChange: (value: any, option: any) => void;
39
+ onSearch: (val: string | number) => void;
38
40
  VNodes: (_: any, { attrs }: {
39
41
  attrs: any;
40
42
  }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
@@ -1,5 +1,5 @@
1
1
  import { withInstall } from 'bm-admin-ui/es/utils/with-install';
2
- import { defineComponent, getCurrentInstance, reactive, ref, watch, resolveComponent, openBlock, createBlock, unref, mergeProps, isRef, withCtx, createElementVNode, withModifiers, createVNode, createTextVNode, toDisplayString, h } from 'vue';
2
+ import { defineComponent, getCurrentInstance, reactive, ref, watch, resolveComponent, openBlock, createBlock, unref, mergeProps, isRef, withCtx, createElementVNode, withModifiers, createVNode, createElementBlock, createTextVNode, toDisplayString, createCommentVNode, h } from 'vue';
3
3
  import ASelect from 'ant-design-vue/lib/select';
4
4
 
5
5
  var _export_sfc = (sfc, props) => {
@@ -16,7 +16,8 @@ const _hoisted_3 = ["onClick"];
16
16
  const _hoisted_4 = /* @__PURE__ */ createElementVNode("span", { class: "checkbox-label" }, "\u5168\u9009", -1);
17
17
  const _hoisted_5 = ["onClick"];
18
18
  const _hoisted_6 = /* @__PURE__ */ createElementVNode("span", { class: "checkbox-label" }, "\u53CD\u9009", -1);
19
- const _hoisted_7 = { class: "blue" };
19
+ const _hoisted_7 = { key: 0 };
20
+ const _hoisted_8 = { class: "blue" };
20
21
  const _sfc_main = /* @__PURE__ */ defineComponent({
21
22
  __name: "selectAll",
22
23
  props: {
@@ -26,7 +27,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
26
27
  },
27
28
  showSelectAll: {
28
29
  type: Boolean,
29
- default: false
30
+ default: true
30
31
  }
31
32
  },
32
33
  emits: ["onSelectAll", "update:value", "onChange"],
@@ -37,7 +38,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
37
38
  search: {
38
39
  indeterminate: false,
39
40
  checkedAll: false,
40
- checkedReverse: false
41
+ checkedReverse: false,
42
+ searchList: []
41
43
  }
42
44
  });
43
45
  let selectValue = ref([]);
@@ -49,7 +51,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
49
51
  state.search = {
50
52
  indeterminate: false,
51
53
  checkedAll: false,
52
- checkedReverse: false
54
+ checkedReverse: false,
55
+ searchList: []
53
56
  };
54
57
  }
55
58
  },
@@ -59,17 +62,20 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
59
62
  );
60
63
  const selectAll = (e) => {
61
64
  let key = "value";
65
+ let list = [];
62
66
  if (instance?.attrs.fieldNames || instance?.attrs["field-names"])
63
67
  key = (instance?.attrs).fieldNames?.value || (instance?.attrs)["field-names"].value;
64
68
  state.search.checkedAll = !state.search.checkedAll;
65
69
  state.search.indeterminate = false;
66
70
  state.search.checkedReverse = false;
71
+ if (state.search.searchList.length > 0)
72
+ list = state.search.searchList;
73
+ else
74
+ list = instance?.attrs.options;
67
75
  if (state.search.checkedAll) {
68
- selectValue.value = (instance?.attrs.options).map(
69
- (v) => {
70
- return v[key];
71
- }
72
- );
76
+ selectValue.value = list.map((v) => {
77
+ return v[key];
78
+ });
73
79
  } else {
74
80
  selectValue.value = [];
75
81
  }
@@ -112,6 +118,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
112
118
  option
113
119
  });
114
120
  };
121
+ const onSearch = (val) => {
122
+ if (val) {
123
+ const key = (instance?.attrs).optionFilterProp || (instance?.attrs)["option-filter-prop"] || "value";
124
+ console.log(key);
125
+ const list = (instance?.attrs).options.filter((ele) => {
126
+ return String(ele[key]).indexOf(String(val)) > -1;
127
+ });
128
+ state.search.searchList = list;
129
+ }
130
+ };
115
131
  const VNodes = (_, { attrs }) => {
116
132
  return h(attrs.vnodes);
117
133
  };
@@ -122,10 +138,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
122
138
  "onUpdate:value": _cache[4] || (_cache[4] = ($event) => isRef(selectValue) ? selectValue.value = $event : selectValue = $event),
123
139
  class: "bm-select"
124
140
  }, _ctx.$attrs, {
141
+ class: { w200: !props.showSelectAll },
125
142
  mode: "multiple",
126
143
  placeholder: unref(instance)?.attrs.placeholder ? unref(instance)?.attrs.placeholder : "\u8BF7\u9009\u62E9",
127
144
  "get-popup-container": (nodes) => nodes.parentNode,
128
- onChange
145
+ onChange,
146
+ onSearch
129
147
  }), {
130
148
  dropdownRender: withCtx(({ menuNode: menu }) => [
131
149
  createElementVNode("div", _hoisted_1, [
@@ -152,16 +170,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
152
170
  _hoisted_6
153
171
  ], 40, _hoisted_5)
154
172
  ]),
155
- createElementVNode("div", null, [
173
+ __props.showSelectAll ? (openBlock(), createElementBlock("div", _hoisted_7, [
156
174
  createTextVNode(" \u5DF2\u9009\u62E9 "),
157
- createElementVNode("span", _hoisted_7, toDisplayString(unref(selectValue)?.length || 0), 1),
175
+ createElementVNode("span", _hoisted_8, toDisplayString(unref(selectValue)?.length || 0), 1),
158
176
  createTextVNode(" \u9879 ")
159
- ])
177
+ ])) : createCommentVNode("v-if", true)
160
178
  ]),
161
179
  createVNode(VNodes, { vnodes: menu }, null, 8, ["vnodes"])
162
180
  ]),
163
181
  _: 1
164
- }, 16, ["value", "placeholder", "get-popup-container"]);
182
+ }, 16, ["value", "class", "placeholder", "get-popup-container"]);
165
183
  };
166
184
  }
167
185
  });
@@ -28,6 +28,7 @@ declare const _default: import("vue").DefineComponent<{
28
28
  indeterminate: boolean;
29
29
  checkedAll: boolean;
30
30
  checkedReverse: boolean;
31
+ searchList: never[];
31
32
  };
32
33
  };
33
34
  emit: (event: "onChange" | "update:value" | "onSelectAll", ...args: any[]) => void;
@@ -35,6 +36,7 @@ declare const _default: import("vue").DefineComponent<{
35
36
  selectAll: (e: any) => void;
36
37
  reverseAll: (e: any) => false | undefined;
37
38
  onChange: (value: any, option: any) => void;
39
+ onSearch: (val: string | number) => void;
38
40
  VNodes: (_: any, { attrs }: {
39
41
  attrs: any;
40
42
  }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
@@ -1,5 +1,5 @@
1
1
  let id = 0;
2
2
  export default function uniqueId() {
3
- return (Math.random().toString(36).substring(3, 6) +
4
- Number(`${Date.now()}${++id}`).toString(36));
3
+ return `bm${Math.random().toString(36).substring(3, 6) +
4
+ Number(`${Date.now()}${++id}`).toString(36)}`;
5
5
  }
@@ -15,7 +15,7 @@ var _export_sfc = (sfc, props) => {
15
15
  };
16
16
 
17
17
  const _sfc_main = vue.defineComponent({
18
- name: 'BmLabelSelect',
18
+ name: 'BmCascader',
19
19
  components: { DownOutlined: iconsVue.DownOutlined },
20
20
  props: {
21
21
  tipType: {
@@ -81,7 +81,7 @@ const _sfc_main = vue.defineComponent({
81
81
  });
82
82
 
83
83
  const _hoisted_1 = {
84
- ref: "BmLabelSelect",
84
+ ref: "BmCascader",
85
85
  class: "bm-label-select"
86
86
  };
87
87
  const _hoisted_2 = { style: {"margin":"8px 0 0 0"} };