Skip to content

PromptInput 提示词输入框

AI 应用专用的输入框组件,支持自适应高度、Enter 发送、流式状态指示。

基础用法

Enter 发送消息,Shift+Enter 换行。

<script setup>
import { ref } from 'vue'
import PromptInput from '@/vue/components/PromptInput.vue'

const value = ref('')

function handleSubmit(text) {
  alert('Submitted: ' + text)
  value.value = ''
}
</script>
<template>
  <PromptInput v-model="value" @submit="handleSubmit" />
</template>

流式状态

设置 streaming 属性禁用输入并显示流式状态。

<script setup>
import { ref } from 'vue'
import PromptInput from '@/vue/components/PromptInput.vue'

const value = ref('')
</script>
<template>
  <PromptInput v-model="value" streaming />
</template>

字数限制

设置 maxLengthshowCount 显示字数统计。

<script setup>
import { ref } from 'vue'
import PromptInput from '@/vue/components/PromptInput.vue'

const value = ref('')
</script>
<template>
  <PromptInput v-model="value" :max-length="200" show-count />
</template>

React 用法

tsx
import { PromptInput } from '@bobocn/element/react'
import '@bobocn/element/style.css'

function App() {
  const [value, setValue] = useState('')

  return (
    <PromptInput
      value={value}
      onChange={setValue}
      onSubmit={(text) => {
        console.log('Submitted:', text)
        setValue('')
      }}
    />
  )
}

API

属性 (Attributes)

属性名说明类型默认值
modelValue / value输入值string''
placeholder占位符string'输入消息...'
disabled是否禁用booleanfalse
maxLength最大字数number
rows初始行数number1
autoResize自适应高度booleantrue
maxRows最大行数number6
showCount显示字数统计booleanfalse
streaming流式输出中booleanfalse
stopablestreaming 时是否显示停止按钮booleanfalse
stopText停止按钮文案string'停止'
size输入框尺寸'small' | 'default' | 'large''default'
variant输入框样式'default' | 'filled''default'
clearable是否显示清除按钮booleanfalse

事件 (Events)

事件名说明回调参数
update:modelValue / onChange输入时触发(value: string)
submit / onSubmitEnter 提交时触发(value: string)
stop / onStop点击停止生成时触发
keydown按键时触发(event: KeyboardEvent)

方法 (Exposes / Ref)

方法名说明类型
focus聚焦输入框() => void
blur失焦() => void
clear清空内容() => void
textareaReftextarea DOM 引用HTMLTextAreaElement

插槽 / Children

名称说明
actions / children自定义右侧操作按钮

基于 MIT 许可发布