🎯 目标
构建一个功能完善、样式统一的通用输入框组件 CommonInput
,支持以下能力:
-
左侧图标、右侧操作按钮(如清除、密码显示)
-
输入内容状态反馈(成功 / 错误 / 禁用)
-
下方提示文字(校验信息 / 占位建议)
-
可扩展:密码框、数字框、只读、maxlength、inputType 等
🧱 组件结构示意
┌───────────────────────────────┐
│ 🔍 请输入内容 ✕ │ ← 图标+清除按钮
├───────────────────────────────┤
│ ⚠ 输入内容不能为空 │ ← 提示语 / 校验信息
└───────────────────────────────┘
🧰 组件实现:CommonInput.ets
@Component
export struct CommonInput {
@Prop placeholder: string = '请输入'
@Prop icon: string = '' // 左侧图标资源路径
@Prop type: 'text' | 'password' | 'number' = 'text'
@Prop maxLength: number = 50
@Prop value: string = ''
@Prop disabled: boolean = false
@Prop errorText: string = ''
@Prop success: boolean = false
@Prop showClear: boolean = true
@State innerValue: string = this.value
@Prop onChange: (v: string) => vo