diff --git a/packages/devui-vue/devui/select/hooks/use-cache-options.ts b/packages/devui-vue/devui/select/hooks/use-cache-options.ts index 0f27abd3a1..1f469d6af9 100644 --- a/packages/devui-vue/devui/select/hooks/use-cache-options.ts +++ b/packages/devui-vue/devui/select/hooks/use-cache-options.ts @@ -2,7 +2,9 @@ import { ComputedRef, computed } from 'vue'; import { OptionObjectItem } from '../src/use-select'; import { KeyType } from '../src/utils'; -export default function (mergeOptions: ComputedRef): any { +type GetValueOptionFunc = (values: KeyType[]) => (OptionObjectItem | undefined)[]; + +export default function (mergeOptions: ComputedRef): GetValueOptionFunc{ const cacheOptions = computed(() => { const map = new Map, OptionObjectItem>(); mergeOptions.value.forEach((item) => { diff --git a/packages/devui-vue/devui/select/index.ts b/packages/devui-vue/devui/select/index.ts index d2550f5e48..1457d14069 100644 --- a/packages/devui-vue/devui/select/index.ts +++ b/packages/devui-vue/devui/select/index.ts @@ -1,10 +1,6 @@ import type { App } from 'vue'; import Select from './src/select'; -Select.install = function(app: App) { - app.component(Select.name, Select); -}; - export { Select }; export default { @@ -12,6 +8,6 @@ export default { category: '数据录入', status: '10%', install(app: App): void { - app.use(Select as any); - } + app.component(Select.name, Select); + }, }; diff --git a/packages/devui-vue/devui/select/src/select.tsx b/packages/devui-vue/devui/select/src/select.tsx index a937a8ba54..3f6447e91e 100644 --- a/packages/devui-vue/devui/select/src/select.tsx +++ b/packages/devui-vue/devui/select/src/select.tsx @@ -31,7 +31,6 @@ export default defineComponent({ if (typeof item === 'object') { option = { name: item.name ? item.name : item.value + '', - value: item.value, _checked: false, ...item, }; @@ -64,7 +63,7 @@ export default defineComponent({ const inputValue = computed(() => { if (props.multiple && Array.isArray(props.modelValue)) { const selectedOptions = getValuesOption(props.modelValue); - return selectedOptions.map((item) => item.name).join(','); + return selectedOptions.map((item) => item?.name || '').join(','); } else if (!Array.isArray(props.modelValue)) { return getValuesOption([props.modelValue])[0]?.name || ''; } @@ -82,8 +81,8 @@ export default defineComponent({ if (multiple) { item._checked = !item._checked; modelValue = mergeOptions.value - .filter((item) => item._checked) - .map((item) => item.value); + .filter((item1) => item1._checked) + .map((item2) => item2.value); ctx.emit('update:modelValue', modelValue); } else { ctx.emit('update:modelValue', item.value); diff --git a/packages/devui-vue/devui/select/src/use-select.ts b/packages/devui-vue/devui/select/src/use-select.ts index 71044c3f37..20e715a967 100644 --- a/packages/devui-vue/devui/select/src/use-select.ts +++ b/packages/devui-vue/devui/select/src/use-select.ts @@ -4,7 +4,7 @@ export interface OptionObjectItem { name: string; value: string | number; _checked: boolean; - [key: string]: any; + [key: string]: unknown; } export type OptionItem =