Admin 元件

Number Field

參考API
數字輸入。含增減控制。

安裝

Terminal
pnpm dlx shadcn-vue add @admin/number-field
import {  AdminNumberField,  AdminNumberFieldContent,  AdminNumberFieldDecrement,  AdminNumberFieldIncrement,  AdminNumberFieldInput,} from '@/components/admin/number-field'

用法

<script setup lang="ts">import { ref } from 'vue'import {  AdminNumberField,  AdminNumberFieldContent,  AdminNumberFieldDecrement,  AdminNumberFieldIncrement,  AdminNumberFieldInput} from '@/components/admin/number-field'​const value = ref(1)</script>​<template>  <admin-number-field v-model="value" :max="10" :min="0">    <admin-number-field-content>      <admin-number-field-decrement />      <admin-number-field-input />      <admin-number-field-increment />    </admin-number-field-content>  </admin-number-field></template>

場景

自訂 step

<script setup lang="ts">import { ref } from 'vue'import {  AdminNumberField,  AdminNumberFieldContent,  AdminNumberFieldDecrement,  AdminNumberFieldIncrement,  AdminNumberFieldInput} from '@/components/admin/number-field'​const value = ref(10)</script>​<template>  <admin-number-field v-model="value" :max="100" :min="0" :step="5">    <admin-number-field-content>      <admin-number-field-decrement />      <admin-number-field-input />      <admin-number-field-increment />    </admin-number-field-content>  </admin-number-field></template>

停用狀態

<script setup lang="ts">import { ref } from 'vue'import {  AdminNumberField,  AdminNumberFieldContent,  AdminNumberFieldDecrement,  AdminNumberFieldIncrement,  AdminNumberFieldInput} from '@/components/admin/number-field'​const value = ref(5)</script>​<template>  <admin-number-field v-model="value" disabled>    <admin-number-field-content>      <admin-number-field-decrement />      <admin-number-field-input />      <admin-number-field-increment />    </admin-number-field-content>  </admin-number-field></template>

錯誤狀態

<script setup lang="ts">import { ref } from 'vue'import {  AdminNumberField,  AdminNumberFieldContent,  AdminNumberFieldDecrement,  AdminNumberFieldIncrement,  AdminNumberFieldInput} from '@/components/admin/number-field'​const value = ref(1)</script>​<template>  <admin-number-field v-model="value" is-error :max="10" :min="0">    <admin-number-field-content>      <admin-number-field-decrement />      <admin-number-field-input />      <admin-number-field-increment />    </admin-number-field-content>  </admin-number-field></template>

API 參考

組成

<template>  <admin-number-field v-model="value">    <admin-number-field-content>      <admin-number-field-decrement />      <admin-number-field-input />      <admin-number-field-increment />    </admin-number-field-content>  </admin-number-field></template>

admin-number-field

Props

名稱型別預設值說明
defaultValuenumber | undefined——
modelValuenumber | null | undefined——
minnumber | undefined—The smallest value allowed for the input.
maxnumber | undefined—The largest value allowed for the input.
stepnumber | undefined—The amount that the input value changes with each increment or decrement "tick".
stepSnappingboolean | undefined—When `false`, prevents the value from snapping to the nearest increment of the step value
focusOnChangeboolean | undefined—When `true`, the input will be focused when the value changes.
formatOptionsIntl.NumberFormatOptions | undefined—Formatting options for the value displayed in the number field. This also affects what characters are allowed to be typed by the user.
localestring | undefined—The locale to use for formatting and currencies
disabledboolean | undefined—When `true`, prevents the user from interacting with the Number Field.
readonlyboolean | undefined—When `true`, the Number Field is read-only.
disableWheelChangeboolean | undefined—When `true`, prevents the value from changing on wheel scroll.
invertWheelChangeboolean | undefined—When `true`, inverts the direction of the wheel change.
idstring | undefined—Id of the element
asChildboolean | undefined—Change the default rendered element for the one passed as a child, merging their props and behavior. Read our [Composition](https://www.reka-ui.com/docs/guides/composition) guide for more details.
asglobalThis.Component | AsTag | undefined"div"The element or component this component should render as. Can be overwritten by `asChild`.
namestring | undefined—The name of the field. Submitted with its owning form as part of a name/value pair.
requiredboolean | undefined—When `true`, indicates that the user must set the value before the owning form can be submitted.
classClassValue—根元素之自訂 class
isErrorboolean | undefined—設為 `true` 時掛上 `data-is-error` 屬性供樣式 hook

Events

名稱Payload說明
update:modelValuenumber—

Slots

名稱Bindings說明
default{ modelValue: number | undefined; textValue: string; readonly: boolean; }—

admin-number-field-content

Props

名稱型別預設值說明
classClassValue—根元素之自訂 class

Slots

名稱Bindings說明
default{}—

admin-number-field-input

Props

名稱型別預設值說明
classClassValue—根元素之自訂 class

admin-number-field-increment

Props

名稱型別預設值說明
disabledboolean | undefined——
asChildboolean | undefined—Change the default rendered element for the one passed as a child, merging their props and behavior. Read our [Composition](https://www.reka-ui.com/docs/guides/composition) guide for more details.
asglobalThis.Component | AsTag | undefined"div"The element or component this component should render as. Can be overwritten by `asChild`.
classClassValue—根元素之自訂 class

Slots

名稱Bindings說明
default{}—

admin-number-field-decrement

Props

名稱型別預設值說明
disabledboolean | undefined——
asChildboolean | undefined—Change the default rendered element for the one passed as a child, merging their props and behavior. Read our [Composition](https://www.reka-ui.com/docs/guides/composition) guide for more details.
asglobalThis.Component | AsTag | undefined"div"The element or component this component should render as. Can be overwritten by `asChild`.
classClassValue—根元素之自訂 class

Slots

名稱Bindings說明
default{}—

更新紀錄

  • fix: 補上 Vue 核心 API 的顯式 import3c2c030
  • fix: 修正 error 邊框被 focus 蓋過並統一 data-slot 命名aa0d7d4