From c6d0e88d664f4427fab388bef83af93784bda221 Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Mon, 25 Jul 2022 16:39:39 +0800 Subject: [PATCH] 日期选择器组件,支持清除 --- forms/datePicker/CDatePicker.vue | 38 ++++++++++++++++++++++++++++++++++---- 1 files changed, 34 insertions(+), 4 deletions(-) diff --git a/forms/datePicker/CDatePicker.vue b/forms/datePicker/CDatePicker.vue index 4f3d64c..faa4d0a 100644 --- a/forms/datePicker/CDatePicker.vue +++ b/forms/datePicker/CDatePicker.vue @@ -23,9 +23,14 @@ :placeholder="placeholder" > <view - v-show="!readOnly" + v-show="!readOnly && !showClear" class="at-icon at-icon-chevron-right" /> + <view + v-show="showClear" + class="at-icon at-icon-close" + @tap.stop="evt => handleClear()" + ></view> </AtInput> </CDateRangeAction> <CDateTimeAction @@ -43,9 +48,14 @@ :placeholder="placeholder" > <view - v-show="!readOnly" + v-show="!readOnly && !showClear" class="at-icon at-icon-chevron-right" /> + <view + v-show="showClear" + class="at-icon at-icon-close" + @tap.stop="evt => handleClear()" + ></view> </AtInput> </CDateTimeAction> <view v-else-if="mode==='date'"> @@ -65,9 +75,14 @@ :placeholder="placeholder" > <view - v-show="!readOnly" + v-show="!readOnly && !showClear" class="at-icon at-icon-chevron-right" /> + <view + v-show="showClear" + class="at-icon at-icon-close" + @tap.stop="evt => handleClear()" + ></view> </AtInput> </picker> </view> @@ -108,6 +123,11 @@ type: Boolean, default: false, }, + // 允许清除 + allowClear: { + type: Boolean, + default: false, + }, }, data() { const year = new Date().getFullYear(); @@ -116,11 +136,21 @@ pickerEnd: year + 30 + '-12-31', }; }, - computed: {}, + computed: { + showClear() { + if (!this.allowClear) { + return false; + } + return !!this.itemRes.formData[this.itemRes.name]; + }, + }, methods: { handleChange(val) { this.itemRes.onChange(val); }, + handleClear() { + this.itemRes.onChange(''); + }, }, mounted() {}, }; -- Gitblit v1.9.1