@ditari/bsui 1.1.12 → 1.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ditari/bsui
2
2
 
3
+ ## 1.1.14
4
+
5
+ ### Patch Changes
6
+
7
+ - 下拉选择修复
8
+
9
+ ## 1.1.13
10
+
11
+ ### Patch Changes
12
+
13
+ - 下拉选择添加过滤
14
+
3
15
  ## 1.1.12
4
16
 
5
17
  ### Patch Changes
@@ -30,7 +30,6 @@ declare const _default: import("vue").DefineComponent<{
30
30
  getDicByKey: (key: string) => any;
31
31
  modelValue: any;
32
32
  data: any;
33
- onSearch: (keywords: string) => void;
34
33
  onSelect: (value: any) => void;
35
34
  onChange: () => void;
36
35
  useSelect: () => {
@@ -18,7 +18,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
18
18
  setup(__props, { emit: emits }) {
19
19
  const props = __props;
20
20
  const { getDicByKey } = store.useDataDicStore();
21
- const { modelValue, data, onSearch, onSelect, onChange } = useSelect();
21
+ const { modelValue, data, onSelect, onChange } = useSelect();
22
22
  function useSelect() {
23
23
  const dicData = [...getDicByKey(props.name)];
24
24
  const data2 = vue.ref(dicData);
@@ -27,10 +27,9 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
27
27
  () => props.value,
28
28
  (val) => {
29
29
  modelValue2.value = val;
30
- initSearch(val);
31
30
  }
32
31
  );
33
- const onSearch2 = (keywords) => {
32
+ const onSearch = (keywords) => {
34
33
  sendWorkerSearch(keywords);
35
34
  };
36
35
  function sendWorkerSearch(keywords) {
@@ -42,22 +41,6 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
42
41
  data2.value = [...dicData].splice(0, 10);
43
42
  }
44
43
  }
45
- function initSearch(val) {
46
- val = val || "";
47
- const index = dicData.findIndex((item) => {
48
- return item.value.toLowerCase().indexOf(val.toLowerCase()) !== -1 || item.label.toLowerCase().includes(val);
49
- });
50
- if (index === -1) {
51
- data2.value = [...dicData].splice(0, 10);
52
- } else {
53
- data2.value = sliceArrayByIndex(dicData, index);
54
- }
55
- }
56
- function sliceArrayByIndex(arr, currentIndex) {
57
- const start = Math.max(0, currentIndex - 5);
58
- const end = Math.min(arr.length, currentIndex + 6);
59
- return arr.slice(start, end);
60
- }
61
44
  const onSelect2 = (value) => {
62
45
  emits("update:value", value);
63
46
  onSelectHandler();
@@ -71,22 +54,38 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
71
54
  const rs = dicList.find((obj) => obj.value === modelValue2.value);
72
55
  emits("select", rs);
73
56
  }
57
+ vue.watch(
58
+ () => props.include,
59
+ (val) => {
60
+ if (val.length > 0) {
61
+ data2.value = dicData.filter((item) => {
62
+ return val.some((i) => i === item.value);
63
+ });
64
+ } else {
65
+ data2.value = dicData;
66
+ }
67
+ },
68
+ {
69
+ immediate: true
70
+ }
71
+ );
74
72
  return {
75
73
  data: data2,
76
74
  modelValue: modelValue2,
77
- onSearch: onSearch2,
75
+ onSearch,
78
76
  onSelect: onSelect2,
79
77
  onChange: onChange2
80
78
  };
81
79
  }
82
80
  const onFilterOption = (inputValue, options) => {
83
- return options.label.includes(inputValue);
81
+ return options.value.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1 || options.label.toLowerCase().includes(inputValue.toLowerCase());
84
82
  };
85
83
  return (_ctx, _cache) => {
86
84
  const _component_a_select = vue.resolveComponent("a-select");
87
85
  return vue.openBlock(), vue.createBlock(_component_a_select, {
88
86
  value: vue.unref(modelValue),
89
87
  "onUpdate:value": _cache[0] || (_cache[0] = ($event) => vue.isRef(modelValue) ? modelValue.value = $event : null),
88
+ style: { "width": "100%" },
90
89
  "allow-clear": "",
91
90
  "show-search": "",
92
91
  options: vue.unref(data),
@@ -1 +1 @@
1
- {"version":3,"file":"Select.vue2.cjs","sources":["../../../src/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, watch } from \"vue\";\nimport { useDataDicStore } from \"@ditari/store\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\n// import DicWorker from \"./dic.worker?worker&inline\";\n\nconst props = defineProps({\n \"value\": { type: null, required: true, default: null },\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: [] as any }\n});\n\ninterface Emits {\n (e: \"update:value\", value: any): void;\n (e: \"change\", value: any): void;\n (e: \"select\", value: any): void;\n}\nconst emits = defineEmits([\"update:value\", \"change\", \"select\"]);\n\nconst { getDicByKey } = useDataDicStore();\n\n// const workerPool: any = inject(\"dicWorkerPool\");\n// // 获取worker\n// const workerInstance: any = workerPool.getWorker();\n\nconst { modelValue, data, onSearch, onSelect, onChange } = useSelect();\n\nfunction useSelect() {\n // 字典数据\n const dicData: any[] = [...getDicByKey(props.name)];\n const data = ref<any>(dicData);\n // 取值\n const modelValue = ref(props.value);\n\n // 监听value值的变化\n watch(\n () => props.value,\n (val) => {\n modelValue.value = val;\n initSearch(val);\n }\n );\n\n //initSearch(modelValue.value);\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: any) => {\n return (\n item.value.toLowerCase().indexOf(keywords.toLowerCase()) !== -1 ||\n item.label.toLowerCase().includes(keywords.toLowerCase())\n );\n })\n .splice(0, 10);\n if (data.value.length === 0) {\n data.value = [...dicData].splice(0, 10);\n }\n }\n\n /**\n * 初始化value的时候进行搜索\n * @param val\n */\n function initSearch(val: any) {\n val = val || \"\";\n const index = dicData.findIndex((item: any) => {\n return (\n item.value.toLowerCase().indexOf(val.toLowerCase()) !== -1 ||\n item.label.toLowerCase().includes(val)\n );\n });\n if (index === -1) {\n data.value = [...dicData].splice(0, 10);\n } else {\n data.value = sliceArrayByIndex(dicData, index);\n }\n }\n\n function sliceArrayByIndex(arr: any, currentIndex: any) {\n const start = Math.max(0, currentIndex - 5);\n const end = Math.min(arr.length, currentIndex + 6);\n\n return arr.slice(start, end);\n }\n\n //监听下拉选择事件\n const onSelect = (value: any) => {\n // 发射选择的数据\n emits(\"update:value\", value);\n // 处理下拉后返回数据的\n onSelectHandler();\n };\n\n // 监听数据改变\n const onChange = () => {\n //TODO 变化的时候 需要发送字典的所有数据\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((obj: any) => obj.value === modelValue.value);\n emits(\"select\", rs);\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 = (inputValue: any, options: any) => {\n return options.label.includes(inputValue);\n};\n</script>\n<template>\n <a-select\n v-model:value=\"modelValue\"\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<style scoped></style>\n"],"names":["useDataDicStore","data","ref","modelValue","watch","onSearch","onSelect","onChange"],"mappings":"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"}
1
+ {"version":3,"file":"Select.vue2.cjs","sources":["../../../src/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, watch } from \"vue\";\nimport { useDataDicStore } from \"@ditari/store\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\n// import DicWorker from \"./dic.worker?worker&inline\";\n\nconst props = defineProps({\n \"value\": { type: null, required: true, default: null },\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: [] as any }\n});\n\ninterface Emits {\n (e: \"update:value\", value: any): void;\n (e: \"change\", value: any): void;\n (e: \"select\", value: any): void;\n}\nconst emits = defineEmits([\"update:value\", \"change\", \"select\"]);\n\nconst { getDicByKey } = useDataDicStore();\n\nconst { modelValue, data, onSelect, onChange } = useSelect();\n\nfunction useSelect() {\n // 字典数据\n const dicData: any[] = [...getDicByKey(props.name)];\n const data = ref<any>(dicData);\n // 取值\n const modelValue = ref(props.value);\n\n // 监听value值的变化\n watch(\n () => props.value,\n (val) => {\n modelValue.value = val;\n //initSearch(val);\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: any) => {\n return (\n item.value.toLowerCase().indexOf(keywords.toLowerCase()) !== -1 ||\n item.label.toLowerCase().includes(keywords.toLowerCase())\n );\n })\n .splice(0, 10);\n if (data.value.length === 0) {\n data.value = [...dicData].splice(0, 10);\n }\n }\n\n /**\n * 初始化value的时候进行搜索\n * @param val\n */\n // function initSearch(val: any) {\n // val = val || \"\";\n // const index = dicData.findIndex((item: any) => {\n // return (\n // item.value.toLowerCase().indexOf(val.toLowerCase()) !== -1 ||\n // item.label.toLowerCase().includes(val)\n // );\n // });\n // if (index === -1) {\n // data.value = [...dicData].splice(0, 10);\n // } else {\n // data.value = sliceArrayByIndex(dicData, index);\n // }\n // }\n //\n // function sliceArrayByIndex(arr: any, currentIndex: any) {\n // const start = Math.max(0, currentIndex - 5);\n // const end = Math.min(arr.length, currentIndex + 6);\n //\n // return arr.slice(start, end);\n // }\n\n //监听下拉选择事件\n const onSelect = (value: any) => {\n // 发射选择的数据\n emits(\"update:value\", value);\n // 处理下拉后返回数据的\n onSelectHandler();\n };\n\n // 监听数据改变\n const onChange = () => {\n //TODO 变化的时候 需要发送字典的所有数据\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((obj: any) => obj.value === modelValue.value);\n emits(\"select\", rs);\n }\n\n watch(\n () => props.include,\n (val: any) => {\n if (val.length > 0) {\n // 只过滤出来include包含的数据\n data.value = dicData.filter((item: any) => {\n return val.some((i: any) => i === item.value);\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 = (inputValue: any, options: any) => {\n return (\n options.value.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1 ||\n options.label.toLowerCase().includes(inputValue.toLowerCase())\n );\n};\n</script>\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<style scoped></style>\n"],"names":["useDataDicStore","data","ref","modelValue","watch","onSelect","onChange"],"mappings":"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"}
@@ -30,7 +30,6 @@ declare const _default: import("vue").DefineComponent<{
30
30
  getDicByKey: (key: string) => any;
31
31
  modelValue: any;
32
32
  data: any;
33
- onSearch: (keywords: string) => void;
34
33
  onSelect: (value: any) => void;
35
34
  onChange: () => void;
36
35
  useSelect: () => {
@@ -14,7 +14,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
14
14
  setup(__props, { emit: emits }) {
15
15
  const props = __props;
16
16
  const { getDicByKey } = useDataDicStore();
17
- const { modelValue, data, onSearch, onSelect, onChange } = useSelect();
17
+ const { modelValue, data, onSelect, onChange } = useSelect();
18
18
  function useSelect() {
19
19
  const dicData = [...getDicByKey(props.name)];
20
20
  const data2 = ref(dicData);
@@ -23,10 +23,9 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
23
23
  () => props.value,
24
24
  (val) => {
25
25
  modelValue2.value = val;
26
- initSearch(val);
27
26
  }
28
27
  );
29
- const onSearch2 = (keywords) => {
28
+ const onSearch = (keywords) => {
30
29
  sendWorkerSearch(keywords);
31
30
  };
32
31
  function sendWorkerSearch(keywords) {
@@ -38,22 +37,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
38
37
  data2.value = [...dicData].splice(0, 10);
39
38
  }
40
39
  }
41
- function initSearch(val) {
42
- val = val || "";
43
- const index = dicData.findIndex((item) => {
44
- return item.value.toLowerCase().indexOf(val.toLowerCase()) !== -1 || item.label.toLowerCase().includes(val);
45
- });
46
- if (index === -1) {
47
- data2.value = [...dicData].splice(0, 10);
48
- } else {
49
- data2.value = sliceArrayByIndex(dicData, index);
50
- }
51
- }
52
- function sliceArrayByIndex(arr, currentIndex) {
53
- const start = Math.max(0, currentIndex - 5);
54
- const end = Math.min(arr.length, currentIndex + 6);
55
- return arr.slice(start, end);
56
- }
57
40
  const onSelect2 = (value) => {
58
41
  emits("update:value", value);
59
42
  onSelectHandler();
@@ -67,22 +50,38 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
67
50
  const rs = dicList.find((obj) => obj.value === modelValue2.value);
68
51
  emits("select", rs);
69
52
  }
53
+ watch(
54
+ () => props.include,
55
+ (val) => {
56
+ if (val.length > 0) {
57
+ data2.value = dicData.filter((item) => {
58
+ return val.some((i) => i === item.value);
59
+ });
60
+ } else {
61
+ data2.value = dicData;
62
+ }
63
+ },
64
+ {
65
+ immediate: true
66
+ }
67
+ );
70
68
  return {
71
69
  data: data2,
72
70
  modelValue: modelValue2,
73
- onSearch: onSearch2,
71
+ onSearch,
74
72
  onSelect: onSelect2,
75
73
  onChange: onChange2
76
74
  };
77
75
  }
78
76
  const onFilterOption = (inputValue, options) => {
79
- return options.label.includes(inputValue);
77
+ return options.value.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1 || options.label.toLowerCase().includes(inputValue.toLowerCase());
80
78
  };
81
79
  return (_ctx, _cache) => {
82
80
  const _component_a_select = resolveComponent("a-select");
83
81
  return openBlock(), createBlock(_component_a_select, {
84
82
  value: unref(modelValue),
85
83
  "onUpdate:value": _cache[0] || (_cache[0] = ($event) => isRef(modelValue) ? modelValue.value = $event : null),
84
+ style: { "width": "100%" },
86
85
  "allow-clear": "",
87
86
  "show-search": "",
88
87
  options: unref(data),
@@ -1 +1 @@
1
- {"version":3,"file":"Select.vue2.mjs","sources":["../../../src/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, watch } from \"vue\";\nimport { useDataDicStore } from \"@ditari/store\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\n// import DicWorker from \"./dic.worker?worker&inline\";\n\nconst props = defineProps({\n \"value\": { type: null, required: true, default: null },\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: [] as any }\n});\n\ninterface Emits {\n (e: \"update:value\", value: any): void;\n (e: \"change\", value: any): void;\n (e: \"select\", value: any): void;\n}\nconst emits = defineEmits([\"update:value\", \"change\", \"select\"]);\n\nconst { getDicByKey } = useDataDicStore();\n\n// const workerPool: any = inject(\"dicWorkerPool\");\n// // 获取worker\n// const workerInstance: any = workerPool.getWorker();\n\nconst { modelValue, data, onSearch, onSelect, onChange } = useSelect();\n\nfunction useSelect() {\n // 字典数据\n const dicData: any[] = [...getDicByKey(props.name)];\n const data = ref<any>(dicData);\n // 取值\n const modelValue = ref(props.value);\n\n // 监听value值的变化\n watch(\n () => props.value,\n (val) => {\n modelValue.value = val;\n initSearch(val);\n }\n );\n\n //initSearch(modelValue.value);\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: any) => {\n return (\n item.value.toLowerCase().indexOf(keywords.toLowerCase()) !== -1 ||\n item.label.toLowerCase().includes(keywords.toLowerCase())\n );\n })\n .splice(0, 10);\n if (data.value.length === 0) {\n data.value = [...dicData].splice(0, 10);\n }\n }\n\n /**\n * 初始化value的时候进行搜索\n * @param val\n */\n function initSearch(val: any) {\n val = val || \"\";\n const index = dicData.findIndex((item: any) => {\n return (\n item.value.toLowerCase().indexOf(val.toLowerCase()) !== -1 ||\n item.label.toLowerCase().includes(val)\n );\n });\n if (index === -1) {\n data.value = [...dicData].splice(0, 10);\n } else {\n data.value = sliceArrayByIndex(dicData, index);\n }\n }\n\n function sliceArrayByIndex(arr: any, currentIndex: any) {\n const start = Math.max(0, currentIndex - 5);\n const end = Math.min(arr.length, currentIndex + 6);\n\n return arr.slice(start, end);\n }\n\n //监听下拉选择事件\n const onSelect = (value: any) => {\n // 发射选择的数据\n emits(\"update:value\", value);\n // 处理下拉后返回数据的\n onSelectHandler();\n };\n\n // 监听数据改变\n const onChange = () => {\n //TODO 变化的时候 需要发送字典的所有数据\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((obj: any) => obj.value === modelValue.value);\n emits(\"select\", rs);\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 = (inputValue: any, options: any) => {\n return options.label.includes(inputValue);\n};\n</script>\n<template>\n <a-select\n v-model:value=\"modelValue\"\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<style scoped></style>\n"],"names":["data","modelValue","onSearch","onSelect","onChange"],"mappings":"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"}
1
+ {"version":3,"file":"Select.vue2.mjs","sources":["../../../src/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, watch } from \"vue\";\nimport { useDataDicStore } from \"@ditari/store\";\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\n// import DicWorker from \"./dic.worker?worker&inline\";\n\nconst props = defineProps({\n \"value\": { type: null, required: true, default: null },\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: [] as any }\n});\n\ninterface Emits {\n (e: \"update:value\", value: any): void;\n (e: \"change\", value: any): void;\n (e: \"select\", value: any): void;\n}\nconst emits = defineEmits([\"update:value\", \"change\", \"select\"]);\n\nconst { getDicByKey } = useDataDicStore();\n\nconst { modelValue, data, onSelect, onChange } = useSelect();\n\nfunction useSelect() {\n // 字典数据\n const dicData: any[] = [...getDicByKey(props.name)];\n const data = ref<any>(dicData);\n // 取值\n const modelValue = ref(props.value);\n\n // 监听value值的变化\n watch(\n () => props.value,\n (val) => {\n modelValue.value = val;\n //initSearch(val);\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: any) => {\n return (\n item.value.toLowerCase().indexOf(keywords.toLowerCase()) !== -1 ||\n item.label.toLowerCase().includes(keywords.toLowerCase())\n );\n })\n .splice(0, 10);\n if (data.value.length === 0) {\n data.value = [...dicData].splice(0, 10);\n }\n }\n\n /**\n * 初始化value的时候进行搜索\n * @param val\n */\n // function initSearch(val: any) {\n // val = val || \"\";\n // const index = dicData.findIndex((item: any) => {\n // return (\n // item.value.toLowerCase().indexOf(val.toLowerCase()) !== -1 ||\n // item.label.toLowerCase().includes(val)\n // );\n // });\n // if (index === -1) {\n // data.value = [...dicData].splice(0, 10);\n // } else {\n // data.value = sliceArrayByIndex(dicData, index);\n // }\n // }\n //\n // function sliceArrayByIndex(arr: any, currentIndex: any) {\n // const start = Math.max(0, currentIndex - 5);\n // const end = Math.min(arr.length, currentIndex + 6);\n //\n // return arr.slice(start, end);\n // }\n\n //监听下拉选择事件\n const onSelect = (value: any) => {\n // 发射选择的数据\n emits(\"update:value\", value);\n // 处理下拉后返回数据的\n onSelectHandler();\n };\n\n // 监听数据改变\n const onChange = () => {\n //TODO 变化的时候 需要发送字典的所有数据\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((obj: any) => obj.value === modelValue.value);\n emits(\"select\", rs);\n }\n\n watch(\n () => props.include,\n (val: any) => {\n if (val.length > 0) {\n // 只过滤出来include包含的数据\n data.value = dicData.filter((item: any) => {\n return val.some((i: any) => i === item.value);\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 = (inputValue: any, options: any) => {\n return (\n options.value.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1 ||\n options.label.toLowerCase().includes(inputValue.toLowerCase())\n );\n};\n</script>\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<style scoped></style>\n"],"names":["data","modelValue","onSelect","onChange"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  <script setup lang="ts">
2
+ import { ref } from "vue";
3
+
2
4
  import { useTable } from "./hooks";
3
5
  const { data, loading, config } = useTable();
4
6
 
@@ -6,9 +8,19 @@ setTimeout(() => {
6
8
  data.value = [];
7
9
  config.pagination.total = 0;
8
10
  }, 3000);
11
+
12
+ const declareType = ref("");
9
13
  </script>
10
14
  <template>
11
15
  <DTable :config="config" :data="data" :loading="loading"></DTable>
16
+ <div style="width: 200px">
17
+ <d-select
18
+ v-model:value="declareType"
19
+ :include="['3', '4']"
20
+ name="PRE_DEC_TYPE"
21
+ placeholder="请选择申报人类别"
22
+ ></d-select>
23
+ </div>
12
24
  </template>
13
25
  <style>
14
26
  .my-modal {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ditari/bsui",
3
- "version": "1.1.12",
3
+ "version": "1.1.14",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "author": "",
@@ -31,11 +31,7 @@ const emits = defineEmits<Emits>();
31
31
 
32
32
  const { getDicByKey } = useDataDicStore();
33
33
 
34
- // const workerPool: any = inject("dicWorkerPool");
35
- // // 获取worker
36
- // const workerInstance: any = workerPool.getWorker();
37
-
38
- const { modelValue, data, onSearch, onSelect, onChange } = useSelect();
34
+ const { modelValue, data, onSelect, onChange } = useSelect();
39
35
 
40
36
  function useSelect() {
41
37
  // 字典数据
@@ -49,12 +45,10 @@ function useSelect() {
49
45
  () => props.value,
50
46
  (val) => {
51
47
  modelValue.value = val;
52
- initSearch(val);
48
+ //initSearch(val);
53
49
  }
54
50
  );
55
51
 
56
- //initSearch(modelValue.value);
57
-
58
52
  //监听用户搜索事件
59
53
  const onSearch = (keywords: string) => {
60
54
  sendWorkerSearch(keywords);
@@ -80,27 +74,27 @@ function useSelect() {
80
74
  * 初始化value的时候进行搜索
81
75
  * @param val
82
76
  */
83
- function initSearch(val: any) {
84
- val = val || "";
85
- const index = dicData.findIndex((item: any) => {
86
- return (
87
- item.value.toLowerCase().indexOf(val.toLowerCase()) !== -1 ||
88
- item.label.toLowerCase().includes(val)
89
- );
90
- });
91
- if (index === -1) {
92
- data.value = [...dicData].splice(0, 10);
93
- } else {
94
- data.value = sliceArrayByIndex(dicData, index);
95
- }
96
- }
97
-
98
- function sliceArrayByIndex(arr: any, currentIndex: any) {
99
- const start = Math.max(0, currentIndex - 5);
100
- const end = Math.min(arr.length, currentIndex + 6);
101
-
102
- return arr.slice(start, end);
103
- }
77
+ // function initSearch(val: any) {
78
+ // val = val || "";
79
+ // const index = dicData.findIndex((item: any) => {
80
+ // return (
81
+ // item.value.toLowerCase().indexOf(val.toLowerCase()) !== -1 ||
82
+ // item.label.toLowerCase().includes(val)
83
+ // );
84
+ // });
85
+ // if (index === -1) {
86
+ // data.value = [...dicData].splice(0, 10);
87
+ // } else {
88
+ // data.value = sliceArrayByIndex(dicData, index);
89
+ // }
90
+ // }
91
+ //
92
+ // function sliceArrayByIndex(arr: any, currentIndex: any) {
93
+ // const start = Math.max(0, currentIndex - 5);
94
+ // const end = Math.min(arr.length, currentIndex + 6);
95
+ //
96
+ // return arr.slice(start, end);
97
+ // }
104
98
 
105
99
  //监听下拉选择事件
106
100
  const onSelect = (value: any) => {
@@ -126,6 +120,24 @@ function useSelect() {
126
120
  const rs = dicList.find((obj: any) => obj.value === modelValue.value);
127
121
  emits("select", rs);
128
122
  }
123
+
124
+ watch(
125
+ () => props.include,
126
+ (val: any) => {
127
+ if (val.length > 0) {
128
+ // 只过滤出来include包含的数据
129
+ data.value = dicData.filter((item: any) => {
130
+ return val.some((i: any) => i === item.value);
131
+ });
132
+ } else {
133
+ data.value = dicData;
134
+ }
135
+ },
136
+ {
137
+ immediate: true
138
+ }
139
+ );
140
+
129
141
  return {
130
142
  data,
131
143
  modelValue,
@@ -141,12 +153,16 @@ function useSelect() {
141
153
  * @param options
142
154
  */
143
155
  const onFilterOption = (inputValue: any, options: any) => {
144
- return options.label.includes(inputValue);
156
+ return (
157
+ options.value.toLowerCase().indexOf(inputValue.toLowerCase()) !== -1 ||
158
+ options.label.toLowerCase().includes(inputValue.toLowerCase())
159
+ );
145
160
  };
146
161
  </script>
147
162
  <template>
148
163
  <a-select
149
164
  v-model:value="modelValue"
165
+ style="width: 100%"
150
166
  allow-clear
151
167
  show-search
152
168
  :options="data"