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