From b0ccd2d131b2e3df5d901385e38ed0077b8d0fbc Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Mon, 14 Apr 2025 12:31:31 +0800
Subject: [PATCH] feat:修改任务管理内容

---
 src/components/CommonDateTime.vue |   53 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 42 insertions(+), 11 deletions(-)

diff --git a/src/components/CommonDateTime.vue b/src/components/CommonDateTime.vue
index efd1c5a..07202e5 100644
--- a/src/components/CommonDateTime.vue
+++ b/src/components/CommonDateTime.vue
@@ -1,33 +1,64 @@
 <template>
   <div class="common-date-time">
     <el-date-picker
-      v-model="newTime"
+      v-model="model"
       type="daterange"
+      value-format="YYYY-MM-DD"
       range-separator="-"
       start-placeholder="开始日期"
       end-placeholder="结束日期"
-    >
-    </el-date-picker>
+      @change="change"
+      disabled
+    />
     <div class="time-card">
       <div
         class="card-item"
-        :class="item == checked ? 'active' : ''"
-        v-for="item in timeList"
-        @click="timeClick(item)"
+        :class="item === checked ? 'active' : ''"
+        v-for="(item, index) in timeList"
+        @click="timeClick(item,index)"
       >
-        {{ item }}
+        {{ timeListStr[index] }}
       </div>
     </div>
   </div>
 </template>
 
 <script setup>
-const newTime = ref([]);
-let timeList = ['今日', '本周', '本月', '本年'];
+import dayjs from 'dayjs';
+import { ref, defineEmits } from 'vue';
 
-let checked = ref('今日');
-let timeClick = item => {
+const emit = defineEmits(['change']);
+
+const model = defineModel();
+
+let timeList = ['today', 'week', 'month', 'year'];
+let timeListStr = ['今日', '本周', '本月', '本年'];
+let timeListEnum = ['TODAY', 'CURRENT_WEEK', 'CURRENT_MONTH', 'CURRENT_YEAR'];
+let checked = ref('today');
+
+const getDateRange = unit => {
+  if (unit === 'today') {
+    return [dayjs().format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')];
+  }
+  return [dayjs().startOf(unit).format('YYYY-MM-DD'), dayjs().endOf(unit).format('YYYY-MM-DD')];
+};
+
+const dateRanges = {
+  today: getDateRange('today'),
+  week: getDateRange('week'),
+  month: getDateRange('month'),
+  year: getDateRange('year'),
+};
+
+const change = value => {
+  // todo 待对接
+  // emit('change', value);
+};
+
+let timeClick = (item,index) => {
   checked.value = item;
+  model.value = dateRanges[item];
+  emit('change', dateRanges[item],timeListEnum[index]);
 };
 </script>
 

--
Gitblit v1.9.3