From fdeb869c386da95150a087bc22bcebc4e57d0f76 Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Tue, 18 Mar 2025 18:16:32 +0800 Subject: [PATCH] 更新所有表单组件文档和头注释 --- forms/textarea/CTextArea.vue | 33 +++++++++++++++++++++++++++------ 1 files changed, 27 insertions(+), 6 deletions(-) diff --git a/forms/textarea/CTextArea.vue b/forms/textarea/CTextArea.vue index ef4d128..a72589e 100644 --- a/forms/textarea/CTextArea.vue +++ b/forms/textarea/CTextArea.vue @@ -1,24 +1,32 @@ /** * CTextArea + * 多行文本输入组件,用于在表单中收集用户的多行文本输入 + * 支持设置输入区域高度,可以通过行数或像素值来控制 + * 支持只读模式和自动增高功能 * @author Tevin */ <template> - <view class="c-textarea"> + <view + class="c-textarea" + :class="readOnly?'read-only':''" + > <AtInput ref="input" :name="itemRes.name" :title="itemRes.label" :required="itemRes.required" + :disabled="itemRes.disabled" :error="itemRes.error" /> <textarea ref="textarea" class="textarea" - :style="{height: areaHeight}" + :style="{minHeight: areaHeight, height: areaHeight}" :placeholder="placeholder" :value="itemRes.formData[itemRes.name]" - :autoFocus="true" + :autoFocus="false" + :autoHeight="true" @input="evt=>itemRes.onChange(evt.detail.value)" /> </view> @@ -36,19 +44,33 @@ AtInput, }, props: { + // 表单数据资源(表单组件内部机制专用) + itemRes: Object, + // 文本域输入区域高度 height: { type: Number, default: 94, }, + // 文本雨输入区行数 + rows: Number, + // 只读模式 + readOnly: { + type: Boolean, + default: false, + }, + // 占位提示 placeholder: String, - itemRes: Object, }, data() { return {}; }, computed: { areaHeight() { - return Taro.pxTransform(this.height); + if (this.rows) { + return Taro.pxTransform(this.rows * 40, 750); + } else { + return Taro.pxTransform(this.height, 750); + } }, }, methods: {}, @@ -58,7 +80,6 @@ .find('.at-input__input') .prepend(this.$refs.textarea.$el); } else if (process.env.TARO_ENV === 'weapp') { - console.log(this.$refs); $(this.$refs.input.$el) .find('.at-input__container') .append(this.$refs.textarea); -- Gitblit v1.9.1