|
| 1 | +# Textarea 多行文本框 |
| 2 | + |
| 3 | +文本输入区域。 |
| 4 | + |
| 5 | +### 何时使用 |
| 6 | + |
| 7 | +需要手动输入文字,并且文字内容较多时使用。 |
| 8 | + |
| 9 | +### 基本用法 |
| 10 | + |
| 11 | +:::demo |
| 12 | + |
| 13 | +```vue |
| 14 | +<template> |
| 15 | + <h4 style="margin: 10px 0">Default</h4> |
| 16 | +
|
| 17 | + <d-textarea |
| 18 | + value="我是默认值" |
| 19 | + :autofocus="true" |
| 20 | + id="textArea" |
| 21 | + cssClass="my-text-area" |
| 22 | + ></d-textarea> |
| 23 | +
|
| 24 | + <h4 style="margin: 10px 0">Disabled</h4> |
| 25 | +
|
| 26 | + <d-textarea placeholder="我是被禁用状态" :disabled="true"></d-textarea> |
| 27 | +
|
| 28 | + <h4 style="margin: 10px 0">Error</h4> |
| 29 | +
|
| 30 | + <d-textarea placeholder="我是出错状态" :error="true"></d-textarea> |
| 31 | +</template> |
| 32 | +<style> |
| 33 | +.dinput { |
| 34 | + width: 200px; |
| 35 | +} |
| 36 | +</style> |
| 37 | +``` |
| 38 | + |
| 39 | +::: |
| 40 | + |
| 41 | +### 调整大小 |
| 42 | + |
| 43 | +:::demo |
| 44 | + |
| 45 | +```vue |
| 46 | +<template> |
| 47 | + <h4 style="margin: 10px 0">vertical</h4> |
| 48 | + <d-textarea placeholder="我可以缩放" resize="vertical"></d-textarea> |
| 49 | +
|
| 50 | + <h4 style="margin: 10px 0">horizontal</h4> |
| 51 | +
|
| 52 | + <d-textarea resize="horizontal" placeholder="请输入"></d-textarea> |
| 53 | +
|
| 54 | + <h4 style="margin: 10px 0">both</h4> |
| 55 | +
|
| 56 | + <d-textarea resize="both" placeholder="请输入"></d-textarea> |
| 57 | +
|
| 58 | + <h4 style="margin: 10px 0">none</h4> |
| 59 | +
|
| 60 | + <d-textarea resize="none" placeholder="请输入"></d-textarea> |
| 61 | +
|
| 62 | + <h4 style="margin: 10px 0">inherit</h4> |
| 63 | +
|
| 64 | + <d-textarea resize="inherit" placeholder="请输入"></d-textarea> |
| 65 | +</template> |
| 66 | +``` |
| 67 | + |
| 68 | +::: |
| 69 | + |
| 70 | +### 显示字数 |
| 71 | + |
| 72 | +:::demo |
| 73 | + |
| 74 | +```vue |
| 75 | +<template> |
| 76 | + <h4 style="margin: 10px 0">默认</h4> |
| 77 | + <d-textarea :showCount="true" placeholder="请输入"></d-textarea> |
| 78 | + <h4 style="margin: 10px 0">显示最大字数</h4> |
| 79 | + <d-textarea |
| 80 | + :showCount="true" |
| 81 | + :maxLength="20" |
| 82 | + placeholder="请输入" |
| 83 | + ></d-textarea> |
| 84 | +</template> |
| 85 | +<style> |
| 86 | +.dinput { |
| 87 | + width: 200px; |
| 88 | +} |
| 89 | +</style> |
| 90 | +``` |
| 91 | + |
| 92 | +::: |
| 93 | + |
| 94 | +### 事件响应 |
| 95 | + |
| 96 | +:::demo |
| 97 | + |
| 98 | +```vue |
| 99 | +<template> |
| 100 | + <d-textarea |
| 101 | + :showCount="true" |
| 102 | + :maxLength="20" |
| 103 | + placeholder="打开控制台输入文字看看" |
| 104 | + @update:value="onUpdate" |
| 105 | + @change="onChange" |
| 106 | + @focus="onFocus" |
| 107 | + @keydown="onKeydown" |
| 108 | + ></d-textarea> |
| 109 | +</template> |
| 110 | +<script> |
| 111 | +export default { |
| 112 | + setup() { |
| 113 | + const onUpdate = (value) => { |
| 114 | + console.log("【d-textarea update value】: ", value); |
| 115 | + }; |
| 116 | + const onChange = (value) => { |
| 117 | + console.log("【d-textarea change value】:", value); |
| 118 | + }; |
| 119 | + const onFocus = (e) => { |
| 120 | + console.log("【d-textarea onFocus】:", e); |
| 121 | + }; |
| 122 | + const onKeydown = (e) => { |
| 123 | + console.log("【d-textarea onKeydown:", e); |
| 124 | + }; |
| 125 | + return { |
| 126 | + onUpdate, |
| 127 | + onChange, |
| 128 | + onFocus, |
| 129 | + onKeydown, |
| 130 | + }; |
| 131 | + }, |
| 132 | +}; |
| 133 | +</script> |
| 134 | +``` |
| 135 | + |
| 136 | +::: |
| 137 | + |
| 138 | +### d-textarea API |
| 139 | + |
| 140 | +d-textarea 参数 |
| 141 | + |
| 142 | +| 参数 | 类型 | 默认 | 说明 | 跳转 Demo | 全局配置项 | |
| 143 | +| ----------- | --------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------ | --------------------- | ---------- | |
| 144 | +| id | string | `-` | 可选,文本框 id | [基本用法](#基本用法) | | |
| 145 | +| placeholder | string | `-` | 可选,文本框 placeholder | [基本用法](#基本用法) | | |
| 146 | +| value | string | `-` | 可选,文本框默认值 | [基本用法](#基本用法) | | |
| 147 | +| disabled | boolean | `false` | 可选,文本框是否被禁用 | [基本用法](#基本用法) | | |
| 148 | +| autoFocus | boolean | `false` | 可选,文本框是否自动获得焦点 | [基本用法](#基本用法) | | |
| 149 | +| error | boolean | `false` | 可选,文本框是否出现输入错误 | [基本用法](#基本用法) | | |
| 150 | +| resize | `'none' \|'vertical' \|'horizontal' \|'both' \|'inherit'` | `'none'` | 可选,文本框是否可调整大小,可选项:不可调整,水平调整,垂直调整,自由调整,默认继承 | [调整大小](#调整大小) | | |
| 151 | +| showCount | boolean | `false` | 可选,文本框是否是否展示字数 | [显示字数](#显示字数) | | |
| 152 | + |
| 153 | +d-textarea 事件 |
| 154 | + |
| 155 | +| 事件 | 类型 | 说明 | 跳转 Demo | |
| 156 | +| ------- | ---------------------- | ------------------------------ | --------------------- | |
| 157 | +| update | `EventEmitter<string>` | 文本框内容变化(实时触发) | [事件响应](#事件响应) | |
| 158 | +| focus | `EventEmitter<Event>` | 文本框获得焦点 | [事件响应](#事件响应) | |
| 159 | +| blur | `EventEmitter<Event>` | 文本框失去焦点 | [事件响应](#事件响应) | |
| 160 | +| change | `EventEmitter<string>` | 文本框内容变化(失去焦点触发) | [事件响应](#事件响应) | |
| 161 | +| keydown | `EventEmitter<Event>` | 文本框按下键盘 | [事件响应](#事件响应) | |
0 commit comments