From c1d2051abc8ca88cd07f0d7c56c0dbf8165d5c33 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 18 九月 2025 17:02:22 +0800
Subject: [PATCH] 2025.9.18 数据产品(待完成)

---
 src/components/search-option/FYOptionTime.vue |   66 +++++++++++++++-----------------
 1 files changed, 31 insertions(+), 35 deletions(-)

diff --git a/src/components/search-option/FYOptionTime.vue b/src/components/search-option/FYOptionTime.vue
index 9a6ba6f..9008260 100644
--- a/src/components/search-option/FYOptionTime.vue
+++ b/src/components/search-option/FYOptionTime.vue
@@ -1,18 +1,25 @@
 <template>
-  <el-form-item label="鏃堕棿">
+  <el-form-item :label="label" :prop="prop">
     <el-date-picker
-      v-model="selectedOptions"
-      type="month"
+      v-model="date"
+      @change="handleChange"
+      :type="type"
       placeholder="閫夋嫨鏃堕棿"
+      start-placeholder="閫夋嫨寮�濮嬫椂闂�"
+      end-placeholder="閫夋嫨缁撴潫鏃堕棿"
       style="width: 150px"
+      v-bind="$attrs"
     />
   </el-form-item>
 </template>
 
 <script>
-import dayjs from 'dayjs'
+import dayjs from 'dayjs';
 
-const MONTH = 'month'
+const MONTH = 'month';
+const DATE = 'date';
+const RANGE = 'datetimerange';
+const RANGE2 = 'daterange';
 
 export default {
   props: {
@@ -21,50 +28,39 @@
       default: MONTH
     },
     // 杩斿洖缁撴灉
-    value: Date,
+    value: Date || Array,
     // 鏄惁榛樿杩斿洖鍒濆閫夐」
     initValue: {
       type: Boolean,
       default: true
+    },
+    label: {
+      type: String,
+      default: '鏃堕棿'
+    },
+    prop: {
+      type: String,
+      default: 'time'
     }
   },
-  emits: ['update:value'],
+  emits: ['update:value', 'change'],
   data() {
     return {
-      selectedOptions: ''
-    }
+      date: this.value
+    };
   },
-  watch: {
-    selectedOptions: {
-      handler(nVal, oVal) {
-        if (nVal != oVal) {
-          this.$emit('update:value', nVal)
-        }
-      }
-    },
-    value: {
-      handler(nVal, oVal) {
-        if (nVal != oVal) {
-          this.selectedOptions = nVal
-        }
-      },
-      immediate: true
-    }
-  },
+  computed: {},
   methods: {
-    timeFormat() {
-      switch (this.type) {
-        case MONTH:
-          return 'YYYY-MM'
-        default:
-          return 'YYYY-MM'
-      }
+    handleChange(value) {
+      this.$emit('update:value', value);
+      this.$emit('change', value);
     }
   },
   mounted() {
     if (this.initValue) {
-      this.selectedOptions = new Date()
+      this.date = new Date();
+      this.handleChange(this.date);
     }
   }
-}
+};
 </script>

--
Gitblit v1.9.3