From 858b8f2b41f272855c50d11960bceadc3c62380f Mon Sep 17 00:00:00 2001
From: chenyao <1219716595@qq.com>
Date: Thu, 10 Apr 2025 09:26:32 +0800
Subject: [PATCH] feat: 增加任务时间段和当天判断

---
 src/api/home/task.js                                       |   12 +++---------
 src/views/TaskManage/TaskIntermediateContent/AddTask.vue   |   30 ++++++++++++++++++++++++++++--
 src/views/TaskManage/TaskIntermediateContent/TaskTable.vue |   17 +++++++++--------
 3 files changed, 40 insertions(+), 19 deletions(-)

diff --git a/src/api/home/task.js b/src/api/home/task.js
index e6282ad..83a197c 100644
--- a/src/api/home/task.js
+++ b/src/api/home/task.js
@@ -86,17 +86,11 @@
 }
 
 // 获取可飞行机巢列表
-export const getFlyingNestBy = (data) => {
+export const getFlyingNestBy = (data,page) => {
 	return request({
-		url: `/drone-device-core/manage/api/v1/devices/getFlyingNestBy?current=${data.page}&size=${data.limit}`,
+		url: `/drone-device-core/manage/api/v1/devices/getFlyingNestBy?current=${page.page}&size=${page.size}`,
 		method: 'post',
-		data: {
-			wayline_id: data.wayline_id,
-			type: data.type,
-			latitude: data.latitude,
-			longitude: data.longitude,
-			polygon: data.polygon
-		},
+		data: data,
 	})
 }
 
diff --git a/src/views/TaskManage/TaskIntermediateContent/AddTask.vue b/src/views/TaskManage/TaskIntermediateContent/AddTask.vue
index a44db76..ad3f4f0 100644
--- a/src/views/TaskManage/TaskIntermediateContent/AddTask.vue
+++ b/src/views/TaskManage/TaskIntermediateContent/AddTask.vue
@@ -17,14 +17,15 @@
 							v-model="taskData"
 							format="YYYY-MM-DD"
 							value-format="YYYY-MM-DD"
+							:disabled-date="disabledDate"
 						/>
 					</div>
 					<div class="item">任务时间:
-						<!-- <el-time-picker
+						<el-time-picker
 							v-model="searchForm.execute_time_arr"
 							placeholder="选择时间"
 							format="HH:mm"
-							value-format="HH:mm"/> -->
+							value-format="HH:mm"/>
 					</div>
 					<div class="item">选择航线:
 						<el-select
@@ -113,6 +114,11 @@
 });
 const isShowAddTask = defineModel('show');
 
+// 禁用当天之前的日期
+const disabledDate = (time) => {
+  return time.getTime() < Date.now() - 8.64e7; // 86400000 = 24 * 60 * 60 * 1000
+};
+
 // 获取航线列表数据
 const routeOptions = ref([]);
 const getRouteList = async () => {
@@ -191,6 +197,26 @@
     });
     return;
   }
+	// 检查任务时间
+  if (searchForm.execute_time_arr) {
+    const now = new Date();
+    const today = now.toDateString();
+    const selectedDate = new Date(taskData.value).toDateString();
+    
+    if (today === selectedDate) {
+      const [hours, minutes] = searchForm.execute_time_arr.split(':');
+      const selectedTime = new Date();
+      selectedTime.setHours(parseInt(hours), parseInt(minutes));
+      
+      if (selectedTime < now) {
+        ElMessage({
+          message: '任务时间不能小于当前时间',
+          type: 'warning'
+        });
+        return;
+      }
+    }
+  }
 	searchForm.begin_time = `${taskData.value} 00:00:00`;
   searchForm.end_time = `${taskData.value} 23:59:59`;
 	
diff --git a/src/views/TaskManage/TaskIntermediateContent/TaskTable.vue b/src/views/TaskManage/TaskIntermediateContent/TaskTable.vue
index 4e7159d..9129de8 100644
--- a/src/views/TaskManage/TaskIntermediateContent/TaskTable.vue
+++ b/src/views/TaskManage/TaskIntermediateContent/TaskTable.vue
@@ -11,8 +11,8 @@
     </el-table>
     <div class="pagination">
       <el-pagination
-        v-model:current-page="pageParams.page"
-        v-model:page-size="pageParams.limit"
+        v-model:current-page="pagingParams.page"
+        v-model:page-size="pagingParams.size"
         :page-sizes="[10, 20, 30]"
         layout="total, sizes, prev, pager, next"
         :total="total"
@@ -54,36 +54,37 @@
   longitude: props.singlePoint.longitude,
   latitude: props.singlePoint.latitude,
   polygon: [],
+});
+let pagingParams = ref({
   page: 1,
-  limit: 10
+  size: 10
 });
 // 获取可用机巢列表数据
 const total = ref(0);
 const tableData = ref([]);
 const getNestList = async () => {
 	tableData.value = [];
-  // console.log(pageParams.value,'草草草草')
-  const res = await getFlyingNestBy(pageParams.value);
+  const res = await getFlyingNestBy(pageParams.value, pagingParams.value);
   if (res.data.code === 0) {
     tableData.value = res.data.data;
   }
 };
 // 分页大小改变
 const handleSizeChange = (val) => {
-  pageParams.value.limit = val;
+  pagingParams.value.size = val;
   getNestList();
 };
 
 // 页码改变
 const handleCurrentChange = (val) => {
-  pageParams.value.page = val;
+  pagingParams.value.page = val;
   getNestList();
 };
 
 // 刷新数据
 const refreshData = () => {
   tableData.value = [];
-  pageParams.value.page = 1;
+  pagingParams.value.page = 1;
   getNestList();
 };
 

--
Gitblit v1.9.3