Skip to content

Select 下拉选择

下拉选择器,支持配置是否可清除、占位符、文本类名、图标类名、遮罩类名、绑定值、选项数据、下拉菜单类名等

示例

vue
<template>
	<t-page title="选择框" class="p.30-ov-h.100%">
		<t-card class="mb.30" title="Select 选择框"
			sub-title="下拉菜单展示并选择内容。列表选项采用Canvas绘制,类似虚拟滚动,只会渲染屏幕可见的选项,不会因为创建大量DOM影响性能"></t-card>
		<t-row class='p.30-tdr-tdb-h.100-mb.30'>
			<t-text>key:</t-text>
			<t-text>{{val.join('-')}}</t-text>
		</t-row>
		<t-section class="mb.30" title="默认-多选-不显示右侧图标"></t-section>
		<t-row>
			<t-select class="mb.30-tdr-tdb-ptb.10-ba-ff" :multiple="true" v-model="(val as string[])"
				:clearabled="false" rightIcon="">
				<t-select-option v-for="(item,index) in options" :key="index" :label="item.label" :value="item.value">
				</t-select-option>
			</t-select>
		</t-row>
		<t-button @click="test">修改数据</t-button>
		<t-section class="mb.30" title="主题-单选-前置图标"></t-section>
		<t-select class="mb.30-tdr-tdb" type="s" prefix-icon="map" prefix-class="c.red-s.45" :multiple="false"
			v-model="(val1 as string[])">
			<t-select-option v-for="(item,index) in options" :key="index" :label="item.label" :value="item.value"
				:disabled="item.disabled">
			</t-select-option>
		</t-select>
		<t-section class="mb.30" title="不显示图标"></t-section>
		<t-select class="mb.30-tdr-tdb" type="e" :multiple="false" :show-icon="false">
			<t-select-option v-for="(item,index) in options" :key="index" :label="item.label" :value="item.value">
			</t-select-option>
		</t-select>
		<t-section class="mb.30" title="方向(top)"></t-section>
		<t-select class="mb.30-tdr-tdb" type="e" :multiple="true" placement="top">
			<t-select-option v-for="(item,index) in options" :key="index" :label="item.label" :value="item.value">
			</t-select-option>
		</t-select>
		<t-section class="mb.30" title="自定义颜色覆盖主题"></t-section>
		<t-select class="mb.30-tdr-tdb" type="e" :multiple="true" activeColor="blue">
			<t-select-option v-for="(item,index) in options" :key="index" :label="item.label" :value="item.value">
			</t-select-option>
		</t-select>
		<t-section class="mb.30" title="插槽"></t-section>
		<t-select class="mb.30-tdr-tdb" type="s">
			<template v-slot:menu>
				<t-button class='ff'>插槽</t-button>
			</template>
			<t-select-option v-for="(item,index) in options" :key="index" :label="item.label" :value="item.value">
			</t-select-option>
		</t-select>
		<t-col class="h.3000"></t-col>
	</t-page>
</template>

<script setup>
	const val = ref<string[]>(['选项1', '选项3'])
	const val1 = ref<string[]>(['选项1', '选项3'])
	type SelectOptions = {
		value : string
		label : string
		disabled ?: boolean
	}
	const options = ref<SelectOptions[]>([])
	function test() {
		val.value = ['选项4', '选项5']
	}
	function test1() {
		console.log('测试')
	}
	onReady(() => {
		//模拟接口请求
		setTimeout(() => {
			options.value = [{
				value: '选项1',
				label: '黄金糕'
			}, {
				value: '选项2',
				label: '双皮奶',
				disabled: true
			}, {
				value: '选项3',
				label: '蚵仔煎'
			}, {
				value: '选项4',
				label: '龙须面'
			}, {
				value: '选项5',
				label: '北京烤鸭'
			}, {
				value: '选项11',
				label: '北京烤鸭1'
			}, {
				value: '选项6',
				label: '选项6'
			}, {
				value: '选项7',
				label: '选项7'
			}, {
				value: '选项8',
				label: '选项8'
			}, {
				value: '选项9',
				label: '选项9'
			}, {
				value: '选项10',
				label: '选项10'
			}] as SelectOptions[]
		}, 300)
	})
</script>

支持平台

安卓iosweb微信小程序支付宝小程序QQ小程序
xxx

Props

名称描述类型默认值
modelValue绑定值String[][]
clearabled是否可清除Booleantrue
showValueBackground是否显示值背景Booleantrue
multiple是否多选Booleanfalse
placeholder占位符String'请选择'
placeholderClass占位符类名String''
placement弹出位置String'bottom' 更多
zIndex弹出层的z-indexNumber998
activeColor自定义颜色覆盖主题String''
showIcon是否显示图标Booleantrue
clearIconClass清除图标类名String''
textClass文本类名String''
iconClass图标类名String''
maskClass遮罩层类名String''
dropDownClass下拉列表类名String''
listItemClass列表项类名String''
rightIcon右侧图标String'arrow-down'
rightIconClass右侧图标类名String''
prefixIcon前置图标String''
prefixClass前置图标类String''
border是否显示选项下边框Booleantrue

placement 配置表

名称描述
bottom显示在下方中间对齐
bottom-start显示在下方左边对齐
bottom-end显示在下方右边对齐
right显示在右边中间对齐
right-start显示在右边左边对齐
right-end显示在右边右边对齐
left显示在左边中间对齐
left-start显示在左边左边对齐
left-end显示在左边右边对齐
top显示在上方中间对齐
top-start显示在上方左边对齐
top-end显示在上方右边对齐

SelectOption Props

名称描述类型默认值
value选项的值String''
label选项的标签String''
disabled是否禁用选项Array as PropType<any | null>() => false

Events

名称描述参数
update:modelValue当绑定值更新时触发value:string[]
change当选项改变时触发value:Map<string,string>
clear当清除选项时触发-