From 1788c96aea9247cc36ef8b82734997f1a6a92fb4 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期五, 23 八月 2024 11:07:42 +0800 Subject: [PATCH] 新增新版本。静安区特供版 --- src/components/search/OptionTime.vue | 62 ++++++++++++++++++++++++++----- 1 files changed, 52 insertions(+), 10 deletions(-) diff --git a/src/components/search/OptionTime.vue b/src/components/search/OptionTime.vue index 24a1d9f..bb11f85 100644 --- a/src/components/search/OptionTime.vue +++ b/src/components/search/OptionTime.vue @@ -1,35 +1,77 @@ <template> - <el-form-item label="鏃堕棿"> + <el-form-item label="鏃堕棿" prop="timeArray"> <el-date-picker - v-model="date" - @change="handleChange" + :model-value="modelValue" + @update:model-value="handleChange" :type="type" start-placeholder="閫夋嫨寮�濮嬫椂闂�" end-placeholder="閫夋嫨缁撴潫鏃堕棿" size="small" - class="w-150" + :disabled-date="diableData" /> </el-form-item> </template> <script> +import moment from 'moment'; +import { ElMessage } from 'element-plus'; + export default { props: { - modelValue: Array, + // 鏃ユ湡鍊� + modelValue: { + type: Array + }, + // 鎺т欢绫诲瀷 type: { type: String, default: 'datetimerange' - } + }, + // 鍏佽寮�濮嬫椂闂� + startDate: Date, + // 鍏佽缁撴潫鏃堕棿 + endDate: Date }, emits: ['update:modelValue'], data() { - return { - date: this.modelValue - }; + return {}; }, methods: { handleChange(value) { - this.$emit('update:modelValue', value); + // 鏃堕棿涓嶈兘瓒呰繃璁惧畾鐨勫紑濮嬬粨鏉熸椂闂� + let outRange = false; + if (this.startDate) { + outRange = + outRange || + moment(value[0]).isBefore(this.startDate) || + moment(value[1]).isBefore(this.startDate); + } + if (this.endDate) { + outRange = + outRange || + moment(value[0]).isAfter(this.endDate) || + moment(value[1]).isAfter(this.endDate); + } + if (outRange) { + ElMessage({ + message: '鎵�閫夋椂闂翠笉鑳借秴杩囪蛋鑸换鍔℃椂闂磋寖鍥�', + type: 'warning' + }); + } else { + this.$emit('update:modelValue', value); + } + }, + diableData(date) { + const time = moment(date); + let result1 = false; + let result2 = false; + if (this.startDate) { + result1 = time.isBefore(this.startDate); + } + if (this.endDate) { + result2 = time.isAfter(this.endDate); + } + return result1 || result2; } }, mounted() { -- Gitblit v1.9.3