Input 输入框

February 27, 2026 · View on GitHub

通用输入框组件,支持多种输入类型和自动配置。

引入

import { AInput } from '@airpower/web'

Props

参数说明类型默认值必填
modelValue绑定值string | boolean | number | Array | Objectundefined
modelModifiersv-model 修饰符Object{}
modifier字段名(循环时必传)stringundefined
disabled是否禁用输入booleanfalse
readonly是否只读booleanfalse
disabledValue禁用时显示的值string | boolean | number | Array | Objectundefined
dateShowFormatter显示的格式化方式stringundefined
entity传入的实体类ITransformerConstructor<E>undefined
placeholder自定义提示文字string''
list可选数组(枚举)IEnum[]undefined
tree可选树结构ITree[]undefined
showClear是否显示清空图标booleanfalse
onSearch远程搜索回调方法Functionnull

Emits

事件名说明回调参数
blur失焦() => void
focus聚焦() => void
change值变化(value: any) => void
update:modelValuev-model 更新(value: any) => void
clear清空() => void

Slots

插槽名说明作用域参数
append后置内容-
suffix后缀图标-
prefix前缀图标-

示例

<template>
  <!-- 基础输入 -->
  <AInput v-model="value" />

  <!-- 数字输入 -->
  <AInput 
    v-model="age"
    :entity="User"
    modifier="age"
  />

  <!-- 日期选择 -->
  <AInput 
    v-model="date"
    :entity="User"
    modifier="birthday"
  />

  <!-- 下拉选择 -->
  <AInput 
    v-model="role"
    :list="roleList"
  />

  <!-- 树形选择 -->
  <AInput 
    v-model="deptId"
    :tree="departmentTree"
  />

  <!-- 开关 -->
  <AInput 
    v-model="enabled"
    :entity="User"
    modifier="enabled"
  />

  <!-- 远程搜索 -->
  <AInput 
    v-model="keyword"
    :on-search="handleRemoteSearch"
  />

  <!-- 自定义插槽 -->
  <AInput v-model="value">
    <template #append>
      <span>元</span>
    </template>
  </AInput>
</template>

<script setup lang="ts">
const value = ref('')
const age = ref(0)
const date = ref(Date.now())
const role = ref('')
const deptId = ref('')
const enabled = ref(false)
const keyword = ref('')

const roleList = ref([...])
const departmentTree = ref([...])

function handleRemoteSearch(query: string) {
  // 远程搜索逻辑
}
</script>

注意事项

  • 组件会根据 @Form 装饰器配置自动选择输入类型
  • 支持文本、数字、日期、开关、单选、多选、下拉、级联等类型
  • 数字输入会自动处理边界值和精度
  • 日期输入支持多种格式化方式
  • 远程搜索需传入 onSearch 回调函数