From 615f30689fc55c0e38b83d188ecc39b9537aa6df Mon Sep 17 00:00:00 2001 From: coder77 <2293444075@qq.com> Date: Wed, 02 Apr 2025 17:03:53 +0800 Subject: [PATCH] fix: CTextArea组件增加maxLength,高度恢复原逻辑 --- forms/textarea/CTextArea.vue | 31 ++++++++++--------------------- 1 files changed, 10 insertions(+), 21 deletions(-) diff --git a/forms/textarea/CTextArea.vue b/forms/textarea/CTextArea.vue index 8260c98..c0afdba 100644 --- a/forms/textarea/CTextArea.vue +++ b/forms/textarea/CTextArea.vue @@ -1,13 +1,16 @@ /** * CTextArea * 多行文本输入组件,用于在表单中收集用户的多行文本输入 - * 支持设置输入区域高度,可以通过字数、行数或像素值来控制 + * 支持设置输入区域高度,可以通过行数或像素值来控制 * 支持只读模式和自动增高功能 * @author Tevin */ - + <template> - <view class="c-textarea" :class="readOnly ? 'read-only' : ''"> + <view + class="c-textarea" + :class="readOnly?'read-only':''" + > <AtInput ref="input" :name="itemRes.name" @@ -19,16 +22,13 @@ <textarea ref="textarea" class="textarea" - :style="{ - minHeight: minHeight, - maxHeight: maxHeight, - }" + :style="{minHeight: areaHeight, height: areaHeight}" :placeholder="placeholder" :value="itemRes.formData[itemRes.name]" :maxlength="maxLength" :autoFocus="false" :autoHeight="true" - @input="evt => itemRes.onChange(evt.detail.value)" + @input="evt=>itemRes.onChange(evt.detail.value)" /> </view> </template> @@ -68,21 +68,10 @@ return {}; }, computed: { - minHeight() { - // 默认最小高度为2行 - const defaultRows = 2; - return Taro.pxTransform(defaultRows * 40, 750); - }, - maxHeight() { - if (this.maxLength > 0) { - // maxLength 优先级最高 - const estimatedRows = Math.ceil(this.maxLength / 25); - return Taro.pxTransform(estimatedRows * 40, 750); - } else if (this.rows) { - // 其次是 rows + areaHeight() { + if (this.rows) { return Taro.pxTransform(this.rows * 40, 750); } else { - // 最后是 height return Taro.pxTransform(this.height, 750); } }, -- Gitblit v1.9.1