Admin 元件

Textarea

參考
多行文字輸入。可搭配字數限制。

安裝

Terminal
pnpm dlx shadcn-vue add @admin/textarea
import {  AdminTextarea,  AdminTextareaWordLimit,} from '@/components/admin/textarea'

用法

<script setup lang="ts">import { ref } from 'vue'import { AdminTextarea } from '@/components/admin/textarea'​const value = ref('')</script>​<template>  <admin-textarea v-model="value" class="w-64" placeholder="Write something..." /></template>

場景

帶字數限制

<script setup lang="ts">import { ref } from 'vue'import { AdminTextarea, AdminTextareaWordLimit } from '@/components/admin/textarea'​const value = ref('')</script>​<template>  <admin-textarea v-model="value" class="w-72" placeholder="最多 120 個字" :maxlength="120">    <template #footer>      <admin-textarea-word-limit />    </template>  </admin-textarea></template>

停用狀態

<script setup lang="ts">import { AdminTextarea } from '@/components/admin/textarea'</script>​<template>  <admin-textarea    class="w-72"    model-value="這個欄位目前被停用,無法編輯。"    placeholder="停用狀態"    disabled  /></template>

錯誤狀態

<script setup lang="ts">import { ref } from 'vue'import { AdminTextarea } from '@/components/admin/textarea'​const value = ref('錯誤內容')</script>​<template>  <admin-textarea v-model="value" class="w-64" placeholder="Write something..." is-error /></template>

API 參考

組成

<template>  <admin-textarea v-model="value" placeholder="輸入內容" :maxlength="200">    <admin-textarea-word-limit />  </admin-textarea></template>

admin-textarea

Props

名稱型別預設值說明
defaultValuestring | undefined—初始值(非控制模式)
modelValuestring | undefined—受控值,以 `v-model` 綁定
placeholderstring | undefined—預設提示文字
disabledboolean | undefined—設為 `true` 時禁用輸入並套用視覺停用樣式
maxlengthnumber | undefined—限制最大字元數(並由 `admin-textarea-word-limit` 顯示計數)
classClassValue—根元素之自訂 class
isErrorboolean | undefinedfalse設為 `true` 時套用錯誤狀態樣式與 `aria-invalid`
idstring | undefined—透傳至內層 `textarea` 之 `id`;純透傳,未提供時不自動生成
namestring | undefined—透傳至內層 `textarea` 之 `name`,供原生表單提交使用

Events

名稱Payload說明
blurFocusEvent內層 `textarea` 失焦時轉發之原生事件
changeEvent內層 `textarea` 觸發原生 `change`(值變更並 commit)時轉發之原生事件
inputEvent內層 `textarea` 觸發原生 `input`(每次輸入)時轉發之原生事件
update:modelValuestring—

Slots

名稱Bindings說明
footer{}—

Expose

名稱簽名說明
textareaRefHTMLTextAreaElement | null內部原生 textarea 元素之 template ref,可用於程式化 focus / blur / select 等操作

admin-textarea-word-limit

Props

名稱型別預設值說明
classunknown——

更新紀錄

  • fix: 補上 Vue 核心 API 的顯式 import3c2c030
  • BREAKING feat!: v-model 型別由 string | number 收窄為 string9e38c56
  • fix: 補上 index.ts 遺漏之 Ref / ComputedRef 型別 importd1ef789
  • feat: 表單元件補原生 id/name 屬性與 input/blur/change 事件2003547