在 ElInput
組件的 type="textarea"
模式下,你可以使用 autosize
屬性來實現內容高度自適應。當沒有內容時默認顯示 3 行,當有內容時根據內容動態調整高度。
代碼:
<el-form-item v-if="item.type === 'textarea'" :rules="checkoutRules(item.rules, item)" :label="item.name":label-width="item.labelWidth || ''" :prop="item.label"><el-input v-model="form[item.label]"type="textarea":autosize="{ minRows: 3, maxRows: 10 }"clearable:maxlength="item.maxlength || 500":placeholder="`請輸入${item.name}`"@input="changeAct(item.label, form[item.label], item)"show-word-limit></el-input>
</el-form-item>
解釋
autosize
接受一個對象:minRows: 3
→ 最小顯示 3 行maxRows: 10
→ 最大高度為 10 行,超過后顯示滾動條
- 這樣,初始時高度為 3 行,輸入內容后高度會隨內容增加,最多擴展到 10 行。
這樣就能實現 無內容時 3 行,有內容時根據內容自動調整高度 的效果。