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 |   47 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 45 insertions(+), 2 deletions(-)

diff --git a/src/components/search/OptionTime.vue b/src/components/search/OptionTime.vue
index 29ccf19..bb11f85 100644
--- a/src/components/search/OptionTime.vue
+++ b/src/components/search/OptionTime.vue
@@ -7,20 +7,30 @@
       start-placeholder="閫夋嫨寮�濮嬫椂闂�"
       end-placeholder="閫夋嫨缁撴潫鏃堕棿"
       size="small"
+      :disabled-date="diableData"
     />
   </el-form-item>
 </template>
 
 <script>
+import moment from 'moment';
+import { ElMessage } from 'element-plus';
+
 export default {
   props: {
+    // 鏃ユ湡鍊�
     modelValue: {
       type: Array
     },
+    // 鎺т欢绫诲瀷
     type: {
       type: String,
       default: 'datetimerange'
-    }
+    },
+    // 鍏佽寮�濮嬫椂闂�
+    startDate: Date,
+    // 鍏佽缁撴潫鏃堕棿
+    endDate: Date
   },
   emits: ['update:modelValue'],
   data() {
@@ -28,7 +38,40 @@
   },
   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