-
+
diff --git a/packages/vue/src/select/index.less b/packages/vue/src/select/index.less
index fc7ae322..6faeab10 100644
--- a/packages/vue/src/select/index.less
+++ b/packages/vue/src/select/index.less
@@ -64,7 +64,6 @@
position: absolute;
line-height: normal;
box-sizing: border-box;
- background-color: var(--primary-background);
}
&__item {
display: inline-flex;
diff --git a/packages/vue/src/select/interface.ts b/packages/vue/src/select/interface.ts
index 611f301f..36030939 100644
--- a/packages/vue/src/select/interface.ts
+++ b/packages/vue/src/select/interface.ts
@@ -1,4 +1,4 @@
-import type { ExtractPropTypes, Ref, ComputedRef } from 'vue'
+import type { ExtractPropTypes, Ref, ComputedRef, DeepReadonly } from 'vue'
import type { ComponentInstance } from '../utils'
import { selectOptionProps, props } from './props'
@@ -9,7 +9,7 @@ interface SelectState {
export interface SelectContext {
updateSelectVisible: () => void
- parentValue: Ref
+ parentValue: DeepReadonly[>>
selectState: ComputedRef
updateDropDown: () => void
updateSelectValue: (val: string | number) => void
diff --git a/packages/vue/src/select/props.ts b/packages/vue/src/select/props.ts
index 9701eaf1..ae8d78e2 100644
--- a/packages/vue/src/select/props.ts
+++ b/packages/vue/src/select/props.ts
@@ -3,11 +3,11 @@ import type { NormalSizes } from '../utils'
export const props = {
modelValue: {
- type: [String, Number, Array] as PropType,
+ type: [String, Number, Array] as PropType,
default: ''
},
value: {
- type: [String, Number, Array] as PropType,
+ type: [String, Number, Array] as PropType,
default: ''
},
placeholder: {
diff --git a/packages/vue/src/select/select-context.ts b/packages/vue/src/select/select-context.ts
index 953f2095..a0bf370d 100644
--- a/packages/vue/src/select/select-context.ts
+++ b/packages/vue/src/select/select-context.ts
@@ -4,6 +4,6 @@ import type { SelectContext, SelectPropInstance } from './interface'
export const READONLY_SELECT_KEY: InjectionKey = Symbol('selectKey')
-export const createSelectContext = () => createProvider(READONLY_SELECT_KEY)
+export const createSelectContext = () => createProvider(READONLY_SELECT_KEY)
export const useSelectContext = () => useProvider(READONLY_SELECT_KEY)
diff --git a/packages/vue/src/select/select.tsx b/packages/vue/src/select/select.tsx
index 1859289b..e037664e 100644
--- a/packages/vue/src/select/select.tsx
+++ b/packages/vue/src/select/select.tsx
@@ -1,6 +1,6 @@
import { computed, ref, watch, defineComponent, nextTick } from 'vue'
import { useState } from '@fect-ui/vue-hooks'
-import { createName, createBem, pick, getDomRect, assign, isArray, useMounted, addUnit } from '../utils'
+import { createName, createBem, pick, getDomRect, assign, isArray, useMounted, addUnit, len } from '../utils'
import Input from '../input'
import Tooltip from '../tooltip'
import GridGroup from '../grid-group'
@@ -30,8 +30,7 @@ export default defineComponent({
const selectRef = ref()
const gridRef = ref()
const { provider, children } = createSelectContext()
-
- const [value, setValue] = useState(props.modelValue || props.value)
+ const [value, setValue] = useState>(props.modelValue || props.value)
const [visible, setVisible] = useState(false)
const [dropdownWidth, setDropdownWidth] = useState(0)
const [showClear, setShowClear] = useState(false)
@@ -66,15 +65,14 @@ export default defineComponent({
})
}
- const updateSelectValue = (val: string) => {
+ const updateSelectValue = (val: string | number) => {
setValue((pre) => {
if (props.multiple) {
const previous = isArray(pre) ? pre : [pre]
- if (!pre.includes(val)) return [...previous, val]
+ if (!previous.includes(val)) return [...previous, val]
return previous.filter((item) => item !== val)
- } else {
- return val
}
+ return val
})
}
@@ -116,7 +114,14 @@ export default defineComponent({
const { clearable } = props
const list = queryChecked.value
return (
-
+
{list.map((_) => (
multipleClearClickHandler(_.value as string)} clearable={clearable}>
{_.label}
diff --git a/packages/vue/src/swipe/interface.ts b/packages/vue/src/swipe/interface.ts
index 537de17b..f2873e06 100644
--- a/packages/vue/src/swipe/interface.ts
+++ b/packages/vue/src/swipe/interface.ts
@@ -1,9 +1,9 @@
import { ComponentInstance } from '../utils'
-import type { Ref } from 'vue'
+import type { DeepReadonly, Ref } from 'vue'
export interface SwipeContext {
- index: Ref
- size: Ref
+ index: DeepReadonly][>
+ size: DeepReadonly][>
}
export interface Shape {
diff --git a/packages/vue/src/tabs/interface.ts b/packages/vue/src/tabs/interface.ts
index 1c11a80b..e2347c39 100644
--- a/packages/vue/src/tabs/interface.ts
+++ b/packages/vue/src/tabs/interface.ts
@@ -1,4 +1,4 @@
-import type { ExtractPropTypes, Ref } from 'vue'
+import type { DeepReadonly, ExtractPropTypes, Ref } from 'vue'
import type { ComponentInstance, DomRect } from '../utils'
import { tabProps, tabsProps } from './props'
@@ -6,7 +6,7 @@ export type TabPropInstance = ComponentInstance
- checked: Ref
+ checked: DeepReadonly][>
}
export type TabsHighlightRect = DomRect & {
]