From 3d5f6028c2b81c347ea34894864fbdb80aed0fd0 Mon Sep 17 00:00:00 2001 From: xiaoshi <115949669+xiaoshi930@users.noreply.github.com> Date: Thu, 27 Nov 2025 21:10:40 +0800 Subject: [PATCH] Update xiaoshi-device-todo-card.js --- xiaoshi-device-todo-card.js | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/xiaoshi-device-todo-card.js b/xiaoshi-device-todo-card.js index f083445..dec9b7a 100644 --- a/xiaoshi-device-todo-card.js +++ b/xiaoshi-device-todo-card.js @@ -1082,7 +1082,25 @@ class XiaoshiTodoCard extends LitElement { ${todoData.items.length === 0 ? html`
暂无待办事项
` : html` - ${todoData.items.map(item => { + ${(() => { + // 将待办事项分为有时间和无时间两组 + const itemsWithoutTime = todoData.items.filter(item => !item.due); + const itemsWithTime = todoData.items.filter(item => item.due); + + // 没有时间的按名称排序 + itemsWithoutTime.sort((a, b) => (a.summary || '').localeCompare(b.summary || '')); + + // 有时间的按时间排序 + itemsWithTime.sort((a, b) => { + const dateA = new Date(a.due); + const dateB = new Date(b.due); + return dateA - dateB; + }); + + // 合并结果:无时间的在前,有时间的在后 + const sortedItems = [...itemsWithoutTime, ...itemsWithTime]; + + return sortedItems.map(item => { const dueText = this._calculateDueDate(item.due); const isEditing = this._editingItem && this._editingItem.entityId === todoData.entity_id && this._editingItem.uid === item.uid; @@ -1185,7 +1203,8 @@ class XiaoshiTodoCard extends LitElement { `; - })} + }); + })()} ` }