跳到主要内容

表单组件

表单组件用于创建各种输入控件,包括文本输入、选择器、日期选择等。

输入组件

TextInput - 文本输入框

创建单行文本输入框,支持格式化。

基本用法

TextInput()
.placeholder("请输入内容")
.value("")
.format("text")
.onChange(handleChange)
{
// 输入框内容
}

属性列表

属性接受类型默认值说明
valuestring""输入值
defaultValuestring""默认值
placeholderstring""占位符
formatstring"text"输入格式
patternstring""自定义校验正则
minLengthint0最小长度
maxLengthint0最大长度
disabledboolfalse禁用状态
readonlyboolfalse只读状态
requiredboolfalse必填状态
errorboolfalse错误状态
loadingboolfalse加载状态
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef8内边距
marginstring, int, singlef0外边距
backgroundColorstring"#ffffff"背景颜色
colorstring"#333333"文字颜色
borderRadiusstring, int, singlef4圆角
borderstring"1px solid #d1d5db"边框
fontSizestring, int, singlef14字体大小
fontFamilystring"inherit"字体族
onChangefuncnull变化事件
onFocusfuncnull聚焦事件
onBlurfuncnull失焦事件
onClickfuncnull点击事件

输入格式值

说明
text普通文本
password密码
number数字
email邮箱
phone电话

示例

Col()
.gap(16)
{
TextInput()
.placeholder("请输入用户名")
.value("")
.format("text")
.required(true)
.onChange((value: string) => {
print("用户名: " + value);
})

TextInput()
.placeholder("请输入密码")
.value("")
.format("password")
.required(true)
.onChange((value: string) => {
print("密码: " + value);
})

TextInput()
.placeholder("请输入邮箱")
.value("")
.format("email")
.pattern("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}")
.onChange((value: string) => {
print("邮箱: " + value);
})
}

TextArea - 多行文本输入

创建多行文本输入框。

基本用法

TextArea()
.placeholder("请输入多行内容")
.value("")
.rows(4)
.onChange(handleChange)
{
// 文本区域内容
}

属性列表

属性接受类型默认值说明
valuestring""输入值
defaultValuestring""默认值
placeholderstring""占位符
rowsint3行数
colsint0列数
minLengthint0最小长度
maxLengthint0最大长度
disabledboolfalse禁用状态
readonlyboolfalse只读状态
requiredboolfalse必填状态
errorboolfalse错误状态
loadingboolfalse加载状态
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef8内边距
marginstring, int, singlef0外边距
backgroundColorstring"#ffffff"背景颜色
colorstring"#333333"文字颜色
borderRadiusstring, int, singlef4圆角
borderstring"1px solid #d1d5db"边框
fontSizestring, int, singlef14字体大小
fontFamilystring"inherit"字体族
resizestring"vertical"调整大小
onChangefuncnull变化事件
onFocusfuncnull聚焦事件
onBlurfuncnull失焦事件

调整大小值

说明
none不可调整
both双向调整
horizontal水平调整
vertical垂直调整

示例

TextArea()
.placeholder("请输入您的留言...")
.value("")
.rows(5)
.maxLength(500)
.required(true)
.onChange((value: string) => {
print("留言内容: " + value);
})

Search - 搜索输入框

创建带搜索功能的输入框。

基本用法

Search()
.placeholder("搜索...")
.value("")
.onSearch(handleSearch)
.onChange(handleChange)
{
// 搜索框内容
}

属性列表

属性接受类型默认值说明
valuestring""搜索值
defaultValuestring""默认值
placeholderstring"搜索..."占位符
disabledboolfalse禁用状态
loadingboolfalse加载状态
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef8内边距
marginstring, int, singlef0外边距
backgroundColorstring"#ffffff"背景颜色
colorstring"#333333"文字颜色
borderRadiusstring, int, singlef4圆角
borderstring"1px solid #d1d5db"边框
fontSizestring, int, singlef14字体大小
fontFamilystring"inherit"字体族
onSearchfuncnull搜索事件
onChangefuncnull变化事件
onFocusfuncnull聚焦事件
onBlurfuncnull失焦事件

示例

Search()
.placeholder("搜索产品...")
.value("")
.width("300px")
.onSearch((keyword: string) => {
print("搜索关键词: " + keyword);
})
.onChange((value: string) => {
print("输入内容: " + value);
})

选择组件

Select - 下拉选择框

创建下拉选择框。

基本用法

Select()
.options(["选项1", "选项2", "选项3"])
.value("")
.placeholder("请选择")
.onChange(handleChange)
{
// 选择框内容
}

属性列表

属性接受类型默认值说明
optionsarr[]选项列表
valuestring, int, singlef""选中值
defaultValuestring, int, singlef""默认值
placeholderstring"请选择"占位符
disabledboolfalse禁用状态
loadingboolfalse加载状态
errorboolfalse错误状态
requiredboolfalse必填状态
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef8内边距
marginstring, int, singlef0外边距
backgroundColorstring"#ffffff"背景颜色
colorstring"#333333"文字颜色
borderRadiusstring, int, singlef4圆角
borderstring"1px solid #d1d5db"边框
fontSizestring, int, singlef14字体大小
fontFamilystring"inherit"字体族
onChangefuncnull变化事件
onFocusfuncnull聚焦事件
onBlurfuncnull失焦事件

示例

Select()
.options(["北京", "上海", "广州", "深圳"])
.value("")
.placeholder("请选择城市")
.required(true)
.onChange((value: string) => {
print("选择的城市: " + value);
})

MultiSelect - 多选下拉框

创建多选下拉框。

基本用法

MultiSelect()
.options(["选项1", "选项2", "选项3"])
.value([])
.placeholder("请选择多个选项")
.onChange(handleChange)
{
// 多选框内容
}

属性列表

属性接受类型默认值说明
optionsarr[]选项列表
valuearr[]选中值数组
defaultValuearr[]默认值数组
placeholderstring"请选择多个选项"占位符
disabledboolfalse禁用状态
loadingboolfalse加载状态
errorboolfalse错误状态
requiredboolfalse必填状态
maxSelectionsint0最大选择数量
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef8内边距
marginstring, int, singlef0外边距
backgroundColorstring"#ffffff"背景颜色
colorstring"#333333"文字颜色
borderRadiusstring, int, singlef4圆角
borderstring"1px solid #d1d5db"边框
fontSizestring, int, singlef14字体大小
fontFamilystring"inherit"字体族
onChangefuncnull变化事件
onFocusfuncnull聚焦事件
onBlurfuncnull失焦事件

示例

MultiSelect()
.options(["JavaScript", "TypeScript", "Python", "Java", "C++"])
.value([])
.placeholder("请选择编程语言")
.maxSelections(3)
.onChange((values: string[]) => {
print("选择的语言: " + values.join(", "));
})

Radio - 单选按钮组

创建单选按钮组。

基本用法

Radio()
.options(["选项1", "选项2", "选项3"])
.value("")
.name("radioGroup")
.onChange(handleChange)
{
// 单选按钮组内容
}

属性列表

属性接受类型默认值说明
optionsarr[]选项列表
valuestring, int, singlef""选中值
defaultValuestring, int, singlef""默认值
namestring""组名
disabledboolfalse禁用状态
requiredboolfalse必填状态
orientationstring"vertical"排列方向
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef0内边距
marginstring, int, singlef0外边距
gapstring, int, singlef8选项间距
colorstring"#007bff"选中颜色
fontSizestring, int, singlef14字体大小
fontFamilystring"inherit"字体族
onChangefuncnull变化事件

排列方向值

说明
vertical垂直排列
horizontal水平排列

示例

Radio()
.options(["男", "女", "其他"])
.value("")
.name("gender")
.orientation("horizontal")
.required(true)
.onChange((value: string) => {
print("选择的性别: " + value);
})

Checkbox - 复选框组

创建复选框组。

基本用法

Checkbox()
.options(["选项1", "选项2", "选项3"])
.value([])
.onChange(handleChange)
{
// 复选框组内容
}

属性列表

属性接受类型默认值说明
optionsarr[]选项列表
valuearr[]选中值数组
defaultValuearr[]默认值数组
disabledboolfalse禁用状态
requiredboolfalse必填状态
orientationstring"vertical"排列方向
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef0内边距
marginstring, int, singlef0外边距
gapstring, int, singlef8选项间距
colorstring"#007bff"选中颜色
fontSizestring, int, singlef14字体大小
fontFamilystring"inherit"字体族
onChangefuncnull变化事件

示例

Checkbox()
.options(["阅读", "运动", "音乐", "旅行"])
.value([])
.orientation("vertical")
.onChange((values: string[]) => {
print("选择的爱好: " + values.join(", "));
})

Switch - 开关组件

创建开关组件。

基本用法

Switch()
.value(false)
.onChange(handleChange)
{
// 开关内容
}

属性列表

属性接受类型默认值说明
valueboolfalse开关状态
defaultValueboolfalse默认状态
disabledboolfalse禁用状态
loadingboolfalse加载状态
sizestring"medium"尺寸
colorstring"#007bff"开启颜色
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef0内边距
marginstring, int, singlef0外边距
onChangefuncnull变化事件

尺寸值

说明
small小尺寸
medium中等尺寸
large大尺寸

示例

Row()
.gap(12)
.align("center")
{
Text("启用通知")
Switch()
.value(false)
.size("medium")
.onChange((value: boolean) => {
print("通知状态: " + value.toString());
})
}

Slider - 滑块组件

创建滑块组件。

基本用法

Slider()
.value(50)
.min(0)
.max(100)
.step(1)
.onChange(handleChange)
{
// 滑块内容
}

属性列表

属性接受类型默认值说明
valueint, singlef0当前值
defaultValueint, singlef0默认值
minint, singlef0最小值
maxint, singlef100最大值
stepint, singlef1步进值
disabledboolfalse禁用状态
loadingboolfalse加载状态
orientationstring"horizontal"方向
sizestring"medium"尺寸
colorstring"#007bff"滑块颜色
trackColorstring"#e9ecef"轨道颜色
thumbColorstring"#ffffff"滑块颜色
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef0内边距
marginstring, int, singlef0外边距
onChangefuncnull变化事件

方向值

说明
horizontal水平方向
vertical垂直方向

示例

Col()
.gap(16)
{
Text("音量: 50%")
Slider()
.value(50)
.min(0)
.max(100)
.step(1)
.width("200px")
.onChange((value: number) => {
print("音量: " + value.toString() + "%");
})
}

Range - 范围选择器

创建范围选择器。

基本用法

Range()
.value([20, 80])
.min(0)
.max(100)
.step(1)
.onChange(handleChange)
{
// 范围选择器内容
}

属性列表

属性接受类型默认值说明
valuearr[0, 100]当前范围值
defaultValuearr[0, 100]默认范围值
minint, singlef0最小值
maxint, singlef100最大值
stepint, singlef1步进值
disabledboolfalse禁用状态
loadingboolfalse加载状态
orientationstring"horizontal"方向
sizestring"medium"尺寸
colorstring"#007bff"范围颜色
trackColorstring"#e9ecef"轨道颜色
thumbColorstring"#ffffff"滑块颜色
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef0内边距
marginstring, int, singlef0外边距
onChangefuncnull变化事件

示例

Col()
.gap(16)
{
Text("价格范围: 20 - 80")
Range()
.value([20, 80])
.min(0)
.max(100)
.step(5)
.width("300px")
.onChange((values: number[]) => {
print("价格范围: " + values[0].toString() + " - " + values[1].toString());
})
}

日期时间组件

DatePicker - 日期选择器

创建日期选择器。

基本用法

DatePicker()
.value("")
.placeholder("请选择日期")
.format("YYYY-MM-DD")
.onChange(handleChange)
{
// 日期选择器内容
}

属性列表

属性接受类型默认值说明
valuestring""选中日期
defaultValuestring""默认日期
placeholderstring"请选择日期"占位符
formatstring"YYYY-MM-DD"日期格式
minDatestring""最小日期
maxDatestring""最大日期
disabledboolfalse禁用状态
loadingboolfalse加载状态
errorboolfalse错误状态
requiredboolfalse必填状态
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef8内边距
marginstring, int, singlef0外边距
backgroundColorstring"#ffffff"背景颜色
colorstring"#333333"文字颜色
borderRadiusstring, int, singlef4圆角
borderstring"1px solid #d1d5db"边框
fontSizestring, int, singlef14字体大小
fontFamilystring"inherit"字体族
onChangefuncnull变化事件
onFocusfuncnull聚焦事件
onBlurfuncnull失焦事件

示例

DatePicker()
.value("")
.placeholder("请选择生日")
.format("YYYY-MM-DD")
.minDate("1900-01-01")
.maxDate("2024-12-31")
.required(true)
.onChange((date: string) => {
print("选择的日期: " + date);
})

TimePicker - 时间选择器

创建时间选择器。

基本用法

TimePicker()
.value("")
.placeholder("请选择时间")
.format("HH:mm")
.onChange(handleChange)
{
// 时间选择器内容
}

属性列表

属性接受类型默认值说明
valuestring""选中时间
defaultValuestring""默认时间
placeholderstring"请选择时间"占位符
formatstring"HH:mm"时间格式
disabledboolfalse禁用状态
loadingboolfalse加载状态
errorboolfalse错误状态
requiredboolfalse必填状态
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef8内边距
marginstring, int, singlef0外边距
backgroundColorstring"#ffffff"背景颜色
colorstring"#333333"文字颜色
borderRadiusstring, int, singlef4圆角
borderstring"1px solid #d1d5db"边框
fontSizestring, int, singlef14字体大小
fontFamilystring"inherit"字体族
onChangefuncnull变化事件
onFocusfuncnull聚焦事件
onBlurfuncnull失焦事件

示例

TimePicker()
.value("")
.placeholder("请选择会议时间")
.format("HH:mm")
.required(true)
.onChange((time: string) => {
print("选择的时间: " + time);
})

DateTimePicker - 日期时间选择器

创建日期时间选择器。

基本用法

DateTimePicker()
.value("")
.placeholder("请选择日期时间")
.format("YYYY-MM-DD HH:mm")
.onChange(handleChange)
{
// 日期时间选择器内容
}

属性列表

属性接受类型默认值说明
valuestring""选中日期时间
defaultValuestring""默认日期时间
placeholderstring"请选择日期时间"占位符
formatstring"YYYY-MM-DD HH:mm"日期时间格式
minDatestring""最小日期
maxDatestring""最大日期
disabledboolfalse禁用状态
loadingboolfalse加载状态
errorboolfalse错误状态
requiredboolfalse必填状态
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef8内边距
marginstring, int, singlef0外边距
backgroundColorstring"#ffffff"背景颜色
colorstring"#333333"文字颜色
borderRadiusstring, int, singlef4圆角
borderstring"1px solid #d1d5db"边框
fontSizestring, int, singlef14字体大小
fontFamilystring"inherit"字体族
onChangefuncnull变化事件
onFocusfuncnull聚焦事件
onBlurfuncnull失焦事件

示例

DateTimePicker()
.value("")
.placeholder("请选择预约时间")
.format("YYYY-MM-DD HH:mm")
.minDate("2024-01-01 00:00")
.maxDate("2024-12-31 23:59")
.required(true)
.onChange((datetime: string) => {
print("选择的日期时间: " + datetime);
})

文件上传组件

FileUpload - 文件上传组件

创建文件上传组件。

基本用法

FileUpload()
.accept("image/*,.pdf,.doc,.docx")
.multiple(true)
.maxSize(10485760)
.onUpload(handleUpload)
{
// 文件上传内容
}

属性列表

属性接受类型默认值说明
acceptstring"/"接受的文件类型
multipleboolfalse是否支持多文件
maxSizeint0最大文件大小(字节)
maxFilesint0最大文件数量
disabledboolfalse禁用状态
loadingboolfalse加载状态
errorboolfalse错误状态
widthstring, int, singlef"auto"宽度
heightstring, int, singlef"auto"高度
paddingstring, int, singlef16内边距
marginstring, int, singlef0外边距
backgroundColorstring"#f8f9fa"背景颜色
colorstring"#333333"文字颜色
borderRadiusstring, int, singlef8圆角
borderstring"2px dashed #d1d5db"边框
fontSizestring, int, singlef14字体大小
fontFamilystring"inherit"字体族
onUploadfuncnull上传事件
onChangefuncnull变化事件

示例

FileUpload()
.accept("image/*,.pdf,.doc,.docx")
.multiple(true)
.maxSize(10485760)
.maxFiles(5)
.width("100%")
.height("120px")
.onUpload((files: File[]) => {
print("上传文件数量: " + files.length.toString());
})

ImageUpload - 图片上传

专门用于图片文件的上传组件。

基本用法

ImageUpload() {
// 图片上传内容
}

属性列表

属性接受类型默认值说明
acceptstring"image/*"接受的文件类型
multipleboolfalse是否支持多文件
maxSizeint5242880最大文件大小(字节)
maxFilesint1最大文件数量
previewbooltrue是否显示预览
cropboolfalse是否支持裁剪
qualityint, singlef0.8图片质量
widthstring, int, singlef200预览宽度
heightstring, int, singlef200预览高度
disabledboolfalse禁用状态
loadingboolfalse加载状态
errorboolfalse错误状态
onUploadfuncnull上传事件
onChangefuncnull变化事件
onCropfuncnull裁剪事件
paddingstring, int, singlef16内边距
marginstring, int, singlef0外边距
backgroundColorstring"#f8f9fa"背景颜色
colorstring"#333333"文字颜色
borderRadiusstring, int, singlef8圆角
borderstring"2px dashed #d1d5db"边框

示例

// 单张图片上传
ImageUpload()
.accept("image/*")
.maxSize(2097152) // 2MB
.preview(true)
.width(300)
.height(200)
.onUpload((file) => {
// 上传处理
})

// 多张图片上传
ImageUpload()
.multiple(true)
.maxFiles(5)
.crop(true)
.quality(0.9)
.onCrop((croppedImage) => {
// 裁剪完成
})

DragDrop - 拖拽上传

支持拖拽上传的文件上传组件。

基本用法

DragDrop() {
// 拖拽上传内容
}

属性列表

属性接受类型默认值说明
acceptstring"/"接受的文件类型
multiplebooltrue是否支持多文件
maxSizeint0最大文件大小(字节)
maxFilesint0最大文件数量
disabledboolfalse禁用状态
loadingboolfalse加载状态
errorboolfalse错误状态
onDropfuncnull拖拽放置事件
onDragOverfuncnull拖拽悬停事件
onDragLeavefuncnull拖拽离开事件
onUploadfuncnull上传事件
onChangefuncnull变化事件
widthstring, int, singlef"100%"宽度
heightstring, int, singlef200高度
paddingstring, int, singlef24内边距
marginstring, int, singlef0外边距
backgroundColorstring"#f8f9fa"背景颜色
colorstring"#666666"文字颜色
borderRadiusstring, int, singlef8圆角
borderstring"2px dashed #d1d5db"边框
activeBorderstring"2px dashed #1890ff"激活边框

示例

// 基本拖拽上传
DragDrop()
.accept("image/*,video/*")
.maxSize(10485760) // 10MB
.height(300)
.onDrop((files) => {
// 处理拖拽文件
})

// 多文件拖拽上传
DragDrop()
.multiple(true)
.maxFiles(10)
.onDragOver(() => {
// 拖拽悬停效果
})
.onUpload((files) => {
// 批量上传
})