代码拉取完成,页面将自动刷新
级联选择器
import { Cascade } from "@ls-design/ui-react";
const DATA = [
{
text: "浙江",
children: [
{
text: "杭州",
children: [{ text: "西湖区" }, { text: "余杭区" }],
},
{
text: "温州",
children: [{ text: "鹿城区" }, { text: "瓯海区" }],
},
],
},
{
text: "福建",
children: [
{
text: "福州",
children: [{ text: "鼓楼区" }, { text: "台江区" }],
},
{
text: "厦门",
children: [{ text: "思明区" }, { text: "海沧区" }],
},
],
},
{
text: "北京",
children: [
{
text: "",
children: [{ text: "" }],
},
],
},
];
export default () => {
const [open, setOpen] = useState(false);
const pickerRef = useRef<CascadePickerRef>(null);
const handleClose = () => setOpen(false);
const handleConfirm = () => {
const { current } = pickerRef;
const values = current
.getValues()
.map((column) => {
return column.value;
})
.join(",");
console.log(`当前选中:${values}`);
setOpen(false);
};
useEffect(() => {
// 模拟异步获取数据
setTimeout(() => {
const { current: pickerCurrent } = pickerRef;
pickerCurrent.setColumns(DATA);
}, 1000);
}, []);
const handleClick = () => setOpen(true);
return (
<div className="demo">
<div onClick={handleClick}></div>
<Cascade title="请选择地区" ref={pickerRef} open={open}>
<div slot="header" className="head-container">
<span className="cancel" onClick={handleClose}>
取消
</span>
<span className="picker-title">请选择地区</span>
<span className="ensure" onClick={handleConfirm}>
确定
</span>
</div>
</Cascade>
</div>
);
};
参数 | 说明 | 类型 | 默认值 |
---|---|---|---|
open | picker 是否显示 | boolean |
require |
title | 标题 | string |
|
bottomhidden | 是否隐藏底部按钮(通常配合自定义头部使用) | boolean |
false |
forbidmaskclick | 是否禁止遮罩层点击 | boolean |
false |
onClose | 点击遮罩或者取消按钮 | () => void |
require |
onConfirm | 确定按钮点击回调 | (e: {detail:{value: SelectedColumn[]}})=> void |
require |
onChange | picker 改变回调 | (e: {detail:{value: SelectedColumn[]}})=> void |
名称 | 说明 | 类型 |
---|---|---|
setColumns | 用于设置选择器数据 | (columns: PickerColumn[]) => void |
getValues | 获取选择器选中的数据,通常配合自定义头部时使用 | ()=> SelectedColumn[] |
type PickerColumn = {
text: string;
children: PickerColumn[];
};
type SelectedColumn = {
value: string
index: number
};
名称 | 说明 |
---|---|
header | 自定义头部 |
组件提供了以下 CSS变量,可用于自定义样式
名称 | 说明 | 默认值 |
---|---|---|
--cascadepicker-title-font-size |
标题字号 | 18px |
--cascadepicker-title-color |
标题颜色 | #242729 |
--cascadepicker-title-font-weight |
标题字重 | 500 |
--cascadepicker-title-font-family |
标题字体 | PingFangSC-Medium, PingFang SC |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。