Dropdown 下拉框
vue
<template>
<ta-group title="基础用法">
<ta-cell
label="基础"
isLink
id="dropdownCell"
@click=";(selector = '#dropdownCell'), (visible = true)"
/>
</ta-group>
<ta-group title="事件监听">
<ta-cell
label="visible-state-change"
id="dropdownCellEvent"
@click=";(selector = '#dropdownCellEvent'), (visibleEvent = true), (visible = true)"
/>
</ta-group>
<ta-dropdown
v-model:visible="visible"
:selector="selector"
@visibleStateChange="onVisibleStateChange"
>
</ta-dropdown>
</template>
<script lang="ts">
import { defineComponent, ref } from 'vue'
import { type PopupOnVisibleStateChange, showToast } from '@/index'
export default defineComponent({
name: 'ExpDropdown',
setup() {
const visible = ref(false)
const selector = ref('')
const visibleEvent = ref(false)
const onVisibleStateChange: PopupOnVisibleStateChange = ({ state }) => {
if (visibleEvent.value) {
showToast(`${state} 事件触发`)
console.log('visible-state-change', state)
}
if (state === 'hidden') {
visibleEvent.value = false
}
}
return {
visible,
selector,
visibleEvent,
onVisibleStateChange
}
}
})
</script>
Import
js
import { TaDropdown } from 'tantalum-ui-mobile'
具体的引入方式可以参考引入组件。
Import Type
组件导出的类型定义:
ts
import type { VisibleState, PopupOnVisibleStateChange } from 'tantalum-ui-mobile'
Props
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
v-model:visible | boolean | false | 否 | 是否显示 |
selector | string | HTMLElement | 是 | 从哪个元素展开,如果是 string,则为可以被 document.querySelector(selector) 获取到 |
Events
事件 | 描述 | 回调函数参数 | TypeScript 函数 |
---|---|---|---|
visible-state-change | 展示隐藏时触发 | payload: { state: VisibleState } | PopupOnVisibleStateChange |
VisibleState 值说明
值 | 说明 | 备注 |
---|---|---|
show | 展示时触发 | |
shown | 展示且动画结束后触发 | |
hide | 隐藏时触发 | 可能携带其他参数 cancel, maskClick, closeClick 等 |
hidden | 隐藏且动画结束后触发 | 可能携带其他参数 cancel, maskClick, closeClick 等 |
Slots
vue
<ta-dropdown>展开的内容</ta-dropdown>