# 选择器
# 单选选择器
请选择云解决方案+0
请选择云产品+0
<template>
<div class="demo-block-column">
<div class="demo-select-row" style="width: 320px">
<!-- 方式一:使用 options 输出下拉选项。优先级高于 t-option-->
<t-select v-model="value1" :options="options1" placeholder="请选择云解决方案" />
</div>
<div class="demo-select-row" style="width: 320px">
<!-- 方式二:使用 t-option 输出下拉选项。options 和 t-option 两种实现方式二选一即可 -->
<t-select v-model="value2" placeholder="请选择云产品">
<t-option v-for="item in options2" :value="item.value" :label="item.label" :key="item.value"></t-option>
</t-select>
</div>
</div>
</template>
<script>
export default {
data() {
return {
value1: '',
value2: '',
// 如果此处数据字段不是 label 和 value,而是 name 和 id,则可以传入参数 `keys` 定义别名
// 示例: <t-select :options="options1" :keys="{ label: 'name', value: 'id' }" />
options1: [
{ label: '架构云', value: '1' },
{ label: '大数据', value: '2' },
{ label: '区块链', value: '3' },
{ label: '物联网', value: '4', disabled: true },
{ label: '人工智能', value: '5' },
// 可以使用渲染函数自定义下拉选项内容和样式
{
label: '计算场景',
value: '6',
// eslint-disable-next-line @typescript-eslint/no-unused-vars
content: (h) => <span>计算场景(高性能计算)</span>,
},
],
options2: [
{ label: '云服务器', value: '1' },
{ label: '云数据库', value: '2' },
{ label: '域名注册', value: '3' },
{ label: '网站备案', value: '4' },
{ label: '对象存储', value: '5' },
{ label: '低代码平台', value: '6' },
],
};
},
};
</script>
显示代码 复制代码 复制代码
# 自定义选择器中的选择器
选项四
选项五
选项六
选项七
+4
+4
<template>
<div class="demo-block-column">
<div class="demo-select-row" style="width: 520px">
<!-- 自定义选中项内容,valueDisplay 为 插槽(slot) -->
<t-select v-model="value2" :options="options" placeholder="请选择" multiple clearable class="care-select__multiple">
<template #valueDisplay="{ value, onClose }">
<t-tag v-for="(item, index) in value" :key="index" :closable="true" :onClose="() => onClose(index)">
{{ item.label }}
</t-tag>
</template>
</t-select>
</div>
<div class="demo-select-row" style="width: 520px">
<!-- 自定义选中项内容,valueDisplay 为 插槽(slot) -->
<t-select v-model="value2" :options="options" placeholder="请选择" multiple clearable class="care-select__multiple">
<template #valueDisplay="{ value, onClose }">
<t-checkbox v-for="(item, index) in value" :key="index" :closable="true" :onClose="() => onClose(index)" :checked="true">
{{ item.label }}
</t-checkbox>
</template>
</t-select>
</div>
</div>
</template>
<script>
export default {
data() {
return {
value2: ['4', '5', '6', '7'],
options: [
{ label: '小型标签', value: '1' },
{ label: '选项二', value: '2' },
{ label: '选项三', value: '3' },
{ label: '选项四', value: '4' },
{ label: '选项五', value: '5' },
{ label: '选项六', value: '6' },
{ label: '选项七', value: '7' },
{ label: '选项八', value: '8' },
{ label: '选项九', value: '9' },
],
};
}
};
</script>
显示代码 复制代码 复制代码
# 自定义选择器中的选择器
+0已选择的选项
<template>
<div class="demo-block-column">
<div class="demo-select-row" style="width: 520px">
<t-select
v-model="value"
:bordered="false"
style="width: 200px;"
placeholder="-请选择-"
clearable
:options="options"
/>
</div>
</div>
</template>
<script>
export default {
data() {
return {
options: [
{
label: '已选择的选项',
value: '1',
},
{
label: '短的选项二',
value: '2',
},
{
label: '选项内容过长的选择器选项',
value: '3',
},
],
value: '1',
};
},
};
</script>
显示代码 复制代码 复制代码