Skip to content

字段 Field

字段组件。

  • 通常结合 <pure-form> 组件使用。

兼容性

  • 兼容:✅
  • 不兼容:❌
  • 未知:❔
H5安卓苹果微信支付宝百度抖音QQ快手飞书京东
小红书鸿蒙360华为快应用快应用联盟

插件市场地址

DCloud 插件市场地址

基础使用

  • 通过默认 slot 设置组件内容。
  • field 组件只用于布局,不提供任何数据绑定。
vue
<template>
  <pure-field>
    <pure-input placeholder="请输入地址" v-model="address"></pure-input>
  </pure-field>
</template>

左侧图标

  • 通过 leftIcon 属性设置左侧图标名称。
vue
<template>
  <pure-field leftIcon="__weizhi">
    <pure-input placeholder="请输入地址" v-model="address"></pure-input>
  </pure-field>
</template>

左侧标签

  • 通过 label 属性设置字段标签。
vue
<template>
  <pure-field label="地址">
    <pure-input placeholder="请输入地址" v-model="address"></pure-input>
  </pure-field>
</template>

右侧图标

  • 通过 rightIcon 属性设置右侧图标名称。
  • 通过 rotate 属性设置图标旋转角度,默认为 0
vue
<template>
  <pure-field rightIcon="__you2">
    <pure-input placeholder="请输入地址" v-model="address"></pure-input>
  </pure-field>
</template>

错误提示

  • 通过 errorTips 属性设置错误提示信息。
vue
<template>
  <pure-field
    leftIcon="__weizhi"
    label="地址"
    rightIcon="__you2"
    tips="我是错误提示:请输入地址"
  >
    <pure-input placeholder="请输入地址"></pure-input>
  </pure-field>
</template>

必填符号

  • 通过 required 属性设置为必填项。
  • 通过 requiredText 属性必填项符号,默认"*"
  • 通过辅助类设置符号的位置。
vue
<template>
  <!-- 默认星号 - 位置居左 -->
  <pure-field
    leftIcon="__weizhi"
    label="地址"
    rightIcon="__you2"
    required
    class="pure-field-required-left"
  >
    <pure-input placeholder="请输入地址" v-model="address"></pure-input>
  </pure-field>

  <!-- 默认星号 - 位置居中 -->
  <pure-field
    leftIcon="__weizhi"
    label="地址"
    rightIcon="__you2"
    required
    class="pure-field-required-middle"
  >
    <pure-input placeholder="请输入地址" v-model="address"></pure-input>
  </pure-field>

  <!-- 默认星号 - 位置居右 -->
  <pure-field
    leftIcon="__weizhi"
    label="地址"
    rightIcon="__you2"
    required
    class="pure-field-required-right"
  >
    <pure-input placeholder="请输入地址" v-model="address"></pure-input>
  </pure-field>

  <!-- 自定义符号 - 位置居右 -->
  <pure-field
    leftIcon="__weizhi"
    label="地址"
    rightIcon="__you2"
    required
    requiredText="(必填)"
    class="pure-field-required-right pure-field-required-smaller"
  >
    <pure-input placeholder="请输入地址" v-model="address"></pure-input>
  </pure-field>
</template>

前后插槽

  • 为了方便使用,该组件提供了 beforeafter 两个插槽,分别用于在内容前后添加其他内容。
vue
<template>
  <!-- Before Slot -->
  <pure-field leftIcon="__weizhi" label="地址" rightIcon="__you2">
    <template #before>
      <text>😀😀</text>
    </template>
    <pure-input placeholder="请输入地址" v-model="address"></pure-input>
  </pure-field>

  <!-- After Slot -->
  <pure-field leftIcon="__daohang_2" label="验证码" rightIcon="__you2">
    <pure-input placeholder="请填写验证码" v-model="smsCode"></pure-input>
    <template #after>
      <pure-button class="pure-button-primary" text="发送验证码"></pure-button>
    </template>
  </pure-field>
</template>

只读状态

  • 通过 readonly 属性设置为只读状态。
  • 只读状态时仍会触发点击事件。
  • 一般用于 Picker 选择时,使用 readonly 属性。
vue
<template>
  <pure-field
    leftIcon="__weizhi"
    label="地址"
    rightIcon="__you2"
    readonly
    @onClick="handleClick"
    class="fixed-left"
  >
    <template #before>
      <text>😀😀</text>
    </template>
    <pure-input placeholder="请输入地址" v-model="address"></pure-input>
  </pure-field>
</template>

禁用状态

  • 通过 disabled 属性设置为禁用状态。
  • 禁用状态时不会触发点击事件。
vue
<template>
  <pure-field
    leftIcon="__daohang_2"
    label="验证码"
    rightIcon="__you2"
    borderTop
    class="fixed-left"
    disabled
  >
    <pure-input placeholder="请填写验证码" v-model="smsCode"></pure-input>
    <template #after>
      <pure-button class="pure-button-primary" text="发送验证码"></pure-button>
    </template>
  </pure-field>
</template>

文本对齐方式

  • 通过添加对应的辅助类实现。
vue
<template>
  <!-- 默认左对齐 -->
  <pure-field
    leftIcon="__weizhi"
    label="默认左对齐"
    rightIcon="__you2"
    tips="我是错误提示:请输入地址"
    class="pure-field-text-align-left"
  >
    <pure-input placeholder="请输入地址"></pure-input>
  </pure-field>

  <!-- 右对齐 -->
  <pure-field
    leftIcon="__weizhi"
    label="右对齐"
    rightIcon="__you2"
    tips="我是错误提示:请输入地址"
    class="pure-field-text-align-right pure-border-top"
  >
    <pure-input placeholder="请输入地址"></pure-input>
  </pure-field>

  <!-- 居中对齐 -->
  <pure-field
    leftIcon="__weizhi"
    label="居中对齐"
    rightIcon="__you2"
    tips="我是错误提示:请输入地址"
    class="pure-field-text-align-center pure-border-top"
  >
    <pure-input placeholder="请输入地址"></pure-input>
  </pure-field>
</template>

垂直布局

  • 通过添加辅助类 pure-field-vertical 使用。
vue
<template>
  <pure-field
    leftIcon="__weizhi"
    label="地址"
    rightIcon="__you2"
    class="pure-field-vertical"
  >
    <pure-input placeholder="请输入地址" v-model="address"></pure-input>
  </pure-field>
</template>

Props

属性名说明类型默认值可选值版本
propform 对应的字段Stringundefined-+1.0.0
rules验证规则,结合 form 使用时有效Objectundefined-+1.0.0
required是否必填项,auto时自动计算,Boolean 时表示是或否[String, Boolean]autotrue、false+1.0.0
requiredText必填项符号String*-+1.0.0
readonly是否只读Booleanfalsetrue+1.0.0
disabled禁用状态Booleanfalsetrue+1.0.0
disabledClass禁用类名Stringpure-field-disabled-+1.0.0
leftIcon左侧图标名称,同图标组件(Icon)的 name 属性,参考String--+1.0.0
leftIconMode左侧图标的裁剪模式,同图标组件(Icon)的 mode 属性,参考StringwidthFix-+1.0.0
rightIcon右侧图标名称,同图标组件(Icon)的 name 属性,参考String--+1.0.0
rightIconMode右侧图标的裁剪模式,同图标组件(Icon)的 mode 属性,参考StringwidthFix-+1.0.0
label标签文本String--+1.0.0
rotate右侧图标旋转角度[String, Number]undefined0-360+1.0.0
tips错误提示String--+1.0.0

Event

事件名说明回调参数版本
onClick点击事件-+1.0.0

Slots

名称说明参数版本
default默认,内容-+1.0.0
label标签-+1.0.0
before内容前-+1.0.0
after内容后-+1.0.0

基于 MIT 许可发布