跳到主要内容

级联 Cascade

用于联动选择。

安装使用

import { TiCascade } from '@titian-design/mobile-vue';

用法示例

静态数据
codesanbox
copy
code

动态数据

备注

getOptions 属性传入一个异步接口,有 3 种做法:

  1. 该接口返回全部层级的数据。
  2. 该接口可以返回单层数据;选择时,会再次调用该接口,获取下一层级数据。
  3. 该接口可以搭配静态 options 数据;当在 options 内找不到下一层数据时,会尝试调用 getOptions 接口,拿到下一层级数据。
<template>
<TiCascade :get-options="asyncGetOptionAPI"/>
</template>

<script lang="ts" setup>
import { TiCascade } from '@titian-design/mobile-vue';

const asyncGetOptionAPI = async (value: any) => {
let rawResponse;
if (value) {
rawResponse = await fetch('api3/address/tmp/getAreasByCityId', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ areaCode: value.areaCode }),
});
} else {
rawResponse = await fetch('api3/address/tmp/getProvinceCity', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({}),
});
}
const { data } = await rawResponse.json();
return data;
};
</script>

TiCascade API

属性 Properties

名称类型必填默认值说明备注
titlebarbooleantrue-
titlestring'选择地址'标题-
sub-titlestring-副标题-
codestring'code'列标识-
labelstring'label'文案字段-
valuearray[]结果-
options { [key: string | number]: unknown }[] []数据源-
activenumber0当前展示项-
get-optionsfunction-获取列数据-
cascadestringchildren级联字段-
ext-header-stylestring | Record<string, string>header 样式-
ext-tab-stylestring | Record<string, string>tab 样式-
ext-option-item-stylestring | Record<string, string>当前项样式-

事件 Events

名称参数列表描述备注
changee: CustomEvent<{ value: unknown[]; options: CascadeOption[];active: number;}> => void当前选中项,见 级联项 CascadeOption-
changeSwiper`e: CustomEvent<{ current: number; source: 'touch''';}> => void`切换当前活动项目
close关闭-

CSS 变量 CSS Variable

变量默认值说明
--cascade-header-padding-vtheme.spacing.vertical.v0header 垂直方向的内边距
--cascade-header-padding-htheme.spacing.horizontal.h3header 水平方向的内边距
--cascade-tab-padding-vtheme.spacing.vertical.v7tab 垂直方向的内边距
--cascade-tab-padding-htheme.spacing.horizontal.h7tab 水平方向的内边距
--cascade-tab-font-sizetheme.fontSize.t6tab 字体大小
--cascade-tab-colortheme.color.gray.texticon.250tab 字体颜色
--cascade-tab-line-heighttheme.lineHeight.multiline.t2tab 文字行高
--cascade-tab-selected-colortheme.color.gray.texticon.550tab 选中字体颜色
--cascade-tab-active-colortheme.color.gray.texticon.900tab 活动状态字体颜色
--cascade-tab-active-font-weighttheme.fontWeight.semiboldtab 活动状态字体 weight
--cascade-content-height750rpx内容区高度
--cascade-item-padding-vtheme.spacing.vertical.v8内容区单项垂直方向的内边距
--cascade-item-padding-htheme.spacing.horizontal.h10内容区单项水平方向的内边距
--cascade-item-font-sizetheme.fontSize.t6内容区单项字体大小
--cascade-item-font-weighttheme.fontWeight.regular内容区单项字体 weight
--cascade-item-colortheme.color.gray.texticon.900内容区单项字体颜色
--cascade-item-checkbox-checked-colortheme.color.brand.1000每一个具体地址选项,选中后右侧对勾颜色

数据结构 Data Structure

级联项 CascadeOption

type CascadeOption = { [key: string | number]: unknown }