From 26bb75bcfc1973b5a359523a1e4bdd8bdfc7f0dd Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Fri, 02 Feb 2024 16:11:35 +0800 Subject: [PATCH] 微调图片选择器显示 --- forms/input/CInput.vue | 65 +++++++++++++++++++++++++------- 1 files changed, 51 insertions(+), 14 deletions(-) diff --git a/forms/input/CInput.vue b/forms/input/CInput.vue index 67e15b8..211d760 100644 --- a/forms/input/CInput.vue +++ b/forms/input/CInput.vue @@ -1,21 +1,31 @@ /** - * CInput + * CInput - 表单项,文本输入框 * @author Tevin */ <template> - <AtInput - :name="itemRes.name" - :title="itemRes.label" - :type="type" - :placeholder="placeholder" - :required="itemRes.required" - :error="itemRes.error" - :value="itemRes.formData[itemRes.name]" - :onChange="evt=>itemRes.onChange(evt)" + <view + class="c-input" + :class="[unit?'c-input-unit':'', readOnly?'read-only':'']" > - <slot /> - </AtInput> + <AtInput + :name="itemRes.name" + :title="itemRes.label" + :type="type" + :placeholder="placeholder" + :required="itemRes.required" + :error="itemRes.error" + :cursorSpacing="0" + :value="value" + :onChange="evt => handleChange(evt)" + > + <slot v-if="!unit" /> + <text + class="c-input-unit-text" + v-if="unit" + >{{unit}}</text> + </AtInput> + </view> </template> <script> @@ -28,9 +38,36 @@ AtInput, }, props: { - type: String, - placeholder: String, + // 表单数据资源(表单组件内部机制专用) itemRes: Object, + // 输入框类型,text、number、password、phone、idcard、digit + type: String, + // 占位提示 + placeholder: String, + // 输入框单位 + unit: String, + // 只读模式 + readOnly: { + type: Boolean, + default: false, + }, + }, + computed: { + value() { + return ((this.itemRes.formData[this.itemRes.name] || '') + '').replace( + /[\n\r]/g, + '' + ); + }, + }, + methods: { + handleChange(evt) { + // 去除首尾空格,小程序中还可以粘贴换行符进来 + const changeValue = ((evt || '') + '') + .replace(/^\s+|\s+$/g, '') + .replace(/[\n\r\t]/g, ''); + this.itemRes.onChange(changeValue); + }, }, mounted() {}, }; -- Gitblit v1.9.1