Skip to content
On this page

组件库文档 tmui.design

级联器(点选) Cascader

当一个数据集合有清晰的层级结构时,可通过级联选择器逐级查看并选择。


🌶️ 级联器(点选) Cascader 示例

查看模拟效果
示例模板
vue
<template>
    <tm-app color="white">
        <tm-sheet>
            <tm-text :font-size="24" _class="font-weight-b" label="基础示例,更多见文档"></tm-text>
			<tm-divider></tm-divider>
			<tm-button @click="testValue=[]"  label="清空选择"></tm-button>
			<tm-text :label="str?str:'请选择'"></tm-text>
        </tm-sheet>
       <tm-cascader @cell-click="test" v-model="testValue" :data="dlist"></tm-cascader>
        
    </tm-app>
</template>
<script lang="ts" setup>
import { ref,computed } from "vue"
import { onShow, onLoad } from "@dcloudio/uni-app";
import tmApp from "@/tmui/components/tm-app/tm-app.vue"
import tmSheet from "@/tmui/components/tm-sheet/tm-sheet.vue"
import tmText from "@/tmui/components/tm-text/tm-text.vue"
import tmButton from "@/tmui/components/tm-button/tm-button.vue"
import tmDivider from "@/tmui/components/tm-divider/tm-divider.vue"
import tmCascader from "@/tmui/components/tm-cascader/tm-cascader.vue"
const dlist = ref(loop())
const testValue = ref([])
const str = computed(()=>testValue.value.join("/"))
function loop(path = '0', level = 2) {
	const list = [];
	for (let i = 0; i < 5; i += 1) {
		const key = `${path}-${i}`;
		const treeNode = {
			text: "选项"+key,
			id:key,
			disabled:i==1
		};

		if (level > 0) {
			treeNode.children = loop(key, level - 1);
		}

		list.push(treeNode);
	}
	return list;
}
function test(item:any){
	console.log(item)
}
</script>

🌶️ 兼容性

APP-VUEAPP-NVUE小程序WEB/H5VUE3/TS
✔️✔️✔️✔️✔️

🌱 参数

本组件含有公共属性 公共属性

参数名类型默认值描述
followTheme[Boolean,String]true是否跟随主题
dataArray[]导入的数据,格式下见下方
defaultValueArray[]默认选中的数据
modelValueArray[]双向绑定输入数据,同v-model
heightNumber650高度,单位rpx
activeColorStringprimary激活状态下的颜色。
colorStringwhite背景主题
beforeTabClick[Function,Boolean]false点击tab切换之前执行的勾子函数。可以是promise.返回假时阻止切换。为true时,切换正常。方便动态加载数据。
beforeCellClick[Function,Boolean]false点击列表中项目时再自动切换到下一项时之前执行的勾子函数,方便动态加载数据。
slotTabHeigthNumber0介于tab和下面选项中间的插槽区域。如果想自定内容在这之间,可以设置高度,将会显示 。

data[]格式如下:

ts
export interface childrenData {
    id:number|string,
    text:string,
    disabled?:boolean,
    children?:Array<childrenData>
}

🌹 事件

事件名参数返回数据描述
update:modelValue-Array更新选中数据,为v-model
tab-clickindex-切换tab事件
cell-click--点击项目时触发
change-modelValue选中改变时返回当前的数据

🌽 slot插槽

默认default,介于tab和下面选项之间的区域插槽。

🥗 ref方法

提供data就是使用data,如果不提供默认的[]空数组,将使用props.data进行刷新同步。

ts
reFresh(data:Array<childrenData>=[])

💏 文档贡献

此页文档由Sunlight贡献,如果对该框架感兴趣的可以参与我们一同进步!