From d8743368ffda9bc0fb2c6818f695a9a6b1079e57 Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 19 九月 2025 18:22:15 +0800
Subject: [PATCH] laster

---
 pages/task/log-list.vue |  253 +++++++++++++-------------------------------------
 1 files changed, 66 insertions(+), 187 deletions(-)

diff --git a/pages/task/log-list.vue b/pages/task/log-list.vue
index 7d2f6d4..b1c6003 100644
--- a/pages/task/log-list.vue
+++ b/pages/task/log-list.vue
@@ -3,36 +3,35 @@
 		<view class="list-content" v-if="list.length > 0">
 			<view class="header">
 				<view class="item">
-					<view class="title">{{accumulatedDuration}}<text class="text">min</text></view>
+					<view class="title">{{totalDuration}}<text class="text">min</text></view>
 					<view class="text">绱鏃堕暱</view>
 				</view>
-				<!-- 		<view class="item">
-					<view class="title">{{accumulatedMileage}}<text class="text">m</text></view>
-					<view class="text">绱閲岀▼</view>
-				</view> -->
+
 				<view class="item">
-					<view class="title">{{cumulativeCount}}</view>
+					<view class="title">{{totalCount}}</view>
 					<view class="text">绱娆℃暟</view>
 				</view>
 			</view>
 			<view class="list">
-				<view class="task-header" v-if="fixedList.length > 0">鍥哄畾浠诲姟</view>
-				<template v-for="(group) in fixedList" :key="group.date">
+				<!-- <view class="task-header" v-if="fixedList.length > 0">鍥哄畾浠诲姟</view> -->
+				<template v-for="(group) in taskList" :key="group.date">
 					<view class="task-header">{{group.date}}</view>
 					<view class="task-list-view">
-						<TaskLogItemView class="list-item" v-for="(item,index) in group.list" :key="index" :taskData="item">
+						<TaskLogItemView class="list-item" v-for="(item,index) in group.list" :key="index"
+							:taskData="item">
 						</TaskLogItemView>
 					</view>
 				</template>
-				<view class="task-header" v-if="tempList.length > 0">涓存椂浠诲姟</view>
+				<!-- <view class="task-header" v-if="tempList.length > 0">涓存椂浠诲姟</view>
 				<template v-for="(group) in tempList" :key="group.date">
 					<view class="task-header">{{group.date}}</view>
 					<view class="task-list-view">
-						<TaskLogItemView class="list-item" v-for="(item,index) in group.list" :key="index" :taskData="item">
+						<TaskLogItemView class="list-item" v-for="(item,index) in group.list" :key="index"
+							:taskData="item">
 
 						</TaskLogItemView>
 					</view>
-				</template>
+				</template> -->
 			</view>
 		</view>
 		<view class="list-no-content" v-else>
@@ -46,7 +45,9 @@
 <script>
 	import {
 		showToast,
-		showModal
+		showModal,
+		showError,
+		showInfo
 	} from "@/comm/utils.js"
 	import TaskLogItemView from "./infos/task-log-item.vue"
 	import {
@@ -59,12 +60,35 @@
 		},
 		data() {
 			return {
-				ip:"",
+				ip: "",
 				sceneId: "",
 				list: [],
 			}
 		},
 		computed: {
+			taskList() {
+				const listRes = []
+				this.list.forEach((ele) => {
+					const dateStart = new Date(Number(ele.start_time))
+					const date = `${dateStart.getMonth()}-${dateStart.getDay()}`;
+					const curIndex = listRes.findIndex((a) => a.date == date)
+					if (curIndex < 0) {
+						let group = {
+							date,
+							list: [ele]
+						}
+						listRes.push(group)
+					} else {
+						let group = listRes[curIndex]
+						group.list.push(ele)
+					}
+
+				})
+				listRes.sort((a, b) => {
+					return a.date < b.date ? 1 : -1
+				});
+				return listRes
+			},
 			fixedList() {
 				let list = this.list.filter((a) => a.tasktype == 1)
 				let group
@@ -92,53 +116,22 @@
 				})
 				return listRes
 			},
-			tempList() {
-				let list = this.list.filter((a) => a.tasktype == 2)
-				let group
-				const listRes = []
-				list.sort((a, b) => {
-					return a.date > b.date
-				});
-				list.forEach((item) => {
-					if (group) {
-						if (item.date != group.date) {
-							group = {
-								date: item.date,
-								list: []
-							}
-							listRes.push(group)
-						}
-					} else {
-						group = {
-							date: item.date,
-							list: []
-						}
-						listRes.push(group)
-					}
-					group.list.push(item)
-				})
-				return listRes
-			},
-			accumulatedDuration() {
-				let res = 0
+			totalDuration() {
+				let d = 0
+				// this.list.forEach((item) => {
+				// 	d += item.duration || 0
+				// })
 				this.list.forEach((item) => {
-					res += item.duration || 0
+					d +=( item.end_time -  item.start_time)
 				})
-				return res
+				return Math.ceil(d / (60 * 1000))
 			},
-			accumulatedMileage() {
-				let res = 0
-				this.list.forEach((item) => {
-					res += item.accumulated_mileage || 0
-				})
-				return res
-			},
-			cumulativeCount() {
-				let res = 0
-				this.list.forEach((item) => {
-					res += item.cycleNumber || 0
-				})
-				return res
+			totalCount() {
+				 let cnt =this.list.length
+				// this.list.forEach((item) => {
+				// 	cnt += item.list.length
+				// })
+				return cnt
 			},
 		},
 		onLoad(option) {
@@ -170,87 +163,14 @@
 			},
 			async loadData() {
 				try {
-					/*this.list = [{
-						type: 0,
-						taskButton: 1,
-						name: "1鍙风珯鐐瑰埌2鍙风珯鐐�,
-						date: "5-18",
-						accumulated_duration: 5693,
-						accumulated_mileage: 6421,
-						cumulative_number: 55,
-						status: 1,
-					}, {
-						type: 0,
-						taskButton: 2,
-						name: "2鍙风珯鐐瑰埌1鍙风珯鐐�,
-						date: "5-08",
-						accumulated_duration: 888,
-						accumulated_mileage: 642,
-						cumulative_number: 31,
-						status: 2,
-					}, {
-						type: 0,
-						taskButton: 1,
-						name: "1鍙风珯鐐瑰埌2鍙风珯鐐�,
-						date: "4-28",
-						accumulated_duration: 998,
-						accumulated_mileage: 2421,
-						cumulative_number: 85,
-						status: 2,
-					}, {
-						type: 0,
-						taskButton: 2,
-						name: "2鍙风珯鐐瑰埌1鍙风珯鐐�,
-						date: "4-28",
-						accumulated_duration: 688,
-						accumulated_mileage: 1421,
-						cumulative_number: 65,
-						status: 4,
-					}, {
-						type: 1,
-						taskButton: 3,
-						name: "1鍙风珯鐐瑰埌2鍙风珯鐐�,
-						date: "5-18",
-						accumulated_duration: 5693,
-						accumulated_mileage: 6421,
-						cumulative_number: 55,
-						status: 2,
-					}, {
-						type: 1,
-						taskButton: 4,
-						name: "2鍙风珯鐐瑰埌1鍙风珯鐐�,
-						date: "5-08",
-						accumulated_duration: 888,
-						accumulated_mileage: 642,
-						cumulative_number: 31,
-						status: 2,
-					}, {
-						type: 1,
-						taskButton: 3,
-						name: "1鍙风珯鐐瑰埌2鍙风珯鐐�,
-						date: "4-28",
-						accumulated_duration: 998,
-						accumulated_mileage: 2421,
-						cumulative_number: 85,
-						status: 2,
-					}, {
-						type: 1,
-						taskButton: 4,
-						name: "2鍙风珯鐐瑰埌1鍙风珯鐐�,
-						date: "4-28",
-						accumulated_duration: 688,
-						accumulated_mileage: 1421,
-						cumulative_number: 65,
-						status: 2,
-
-					}]*/
 					this.list = await this.loadTaskLog()
 				} catch (ex) {
-					this.showError(ex)
+					showError(ex)
 				}
 			},
 			async loadTaskLog() {
 				try {
+					
 					const now = new Date();
 					const oneWeekAgo = new Date();
 					const endTimeStamp = `${now.getTime()}`
@@ -259,53 +179,16 @@
 					const res = await getTaskLog(this.ip, startTimeStamp, endTimeStamp)
 
 					const list = res?.task_info || []
-					console.log(list)
-					list.forEach((ele) => {
-
-						console.log(ele)
-						const dateStart = new Date()
-						dateStart.setTime(Number(ele.taskStartTimeStamp))
-						ele.date = `${dateStart.getMonth()}-${dateStart.getDay()}`;
-						let taskList = ele.taskList || []
-						taskList.sort((a, b) => {
-							return a.lastUpdateTimeStamp > b.lastUpdateTimeStamp
-						});
-						console.log(taskList)
-						ele.startTime = `${dateStart.getHours()}:${dateStart.getMinutes()}`;
-						ele.endTime = ele.startTime
-						ele.duration = 0;
-						ele.status = 0
-					//	console.log(ele)
-						if (taskList.length > 0) {
-							const dateEnd = new Date()
-							dateEnd.setTime(Number(taskList[taskList.length - 1].lastUpdateTimeStamp))
-							for (let i in taskList) {
-								const ele2 = taskList[i]
-								if (ele2.status == 1) {
-									ele.status = 1
-									break;
-								} else if (ele2.status == 2 || ele2.status == 4 || ele2.status == 5) {
-									ele.status = 2
-									break;
-								}
-							}
-							if (!ele.status) {
-								if (taskList.filter((a) => a.status != 3).length == 0) {
-									ele.status = 3
-								}
-							}
-							const diffInMs = dateEnd - dateStart; // 鎴栬� Math.abs(date1 - date2)
-							ele.endTime = `${dateEnd.getHours()}:${dateEnd.getMinutes()}`;
-							ele.duration = Math.round(diffInMs / (1000 * 60))
-							console.log(ele)
-						}
-					})
-					console.log(list)
+					list.sort((a, b) => {
+						return a.end_time < b.end_time ? 1 : -1
+					});
+				
+					showToast(`瑁呰浇浜�{list.length}璁板綍`)
 					return list
 				} catch (ex) {
-					this.showError(ex)
+					showError(ex)
 					return []
-				}
+				} 
 			},
 
 			clickTask(item) {
@@ -313,13 +196,7 @@
 				// 	url: "/pages/task/index"
 				// })
 			},
-			showError(ex) {
-				let exStr = JSON.stringify(ex)
-				if (exStr == "{}")
-					exStr = ex
-				let tip = typeof ex.msg == "string" ? ex.msg : exStr
-				showModal(tip, "閿欒", false,"纭畾")
-			},
+
 		}
 	}
 </script>
@@ -377,20 +254,22 @@
 				overflow: auto;
 
 				.task-header {
-					width: 100% ;
+					width: 100%;
 					padding: 10rpx;
 					font-size: 32rpx;
 				}
 
 				.task-list-view {
-					width: 100% ;
+					width: 100%;
 					border-radius: 10rpx;
 					// padding: 0 10rpx;
 					background-color: #fff;
+
 					.list-item {
-					
+
 						border-bottom: 1px solid #ddd;
 					}
+
 					.list-item:last-child {
 						border-bottom: 0;
 						/* 鍙充笅瑙�*/

--
Gitblit v1.9.1