From 4598e3237ba6b807fdea26bee4a78b775ec4a78b Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 21 Aug 2025 22:25:41 +0800 Subject: [PATCH] :art: Improve av https://github.com/siyuan-note/siyuan/issues/15593 --- kernel/av/filter.go | 18 +++++++++++++++--- kernel/model/attribute_view.go | 7 +++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/kernel/av/filter.go b/kernel/av/filter.go index 40e68092f..e83a72db3 100644 --- a/kernel/av/filter.go +++ b/kernel/av/filter.go @@ -874,15 +874,27 @@ func (filter *ViewFilter) GetAffectValue(key *Key, addingBlockID string) (ret *V case FilterOperatorIsNotEqual: ret.Date = &ValueDate{Content: util.CurrentTimeMillis(), IsNotEmpty: true} case FilterOperatorIsGreater: - ret.Date = &ValueDate{Content: filter.Value.Date.Content + 1000*60, IsNotEmpty: true} + ret.Date = &ValueDate{Content: filter.Value.Date.Content + 1000*60*60*24, IsNotEmpty: true} case FilterOperatorIsGreaterOrEqual: ret.Date = &ValueDate{Content: filter.Value.Date.Content, IsNotEmpty: true} case FilterOperatorIsLess: - ret.Date = &ValueDate{Content: filter.Value.Date.Content - 1000*60, IsNotEmpty: true} + ret.Date = &ValueDate{Content: filter.Value.Date.Content - 1000*60*60*24, IsNotEmpty: true} case FilterOperatorIsLessOrEqual: ret.Date = &ValueDate{Content: filter.Value.Date.Content, IsNotEmpty: true} case FilterOperatorIsBetween: - ret.Date = &ValueDate{Content: filter.Value.Date.Content - 1000*60, IsNotEmpty: true} + start := filter.Value.Date.Content + end := filter.Value.Date.Content2 + if start > end { + tmp := end + end = start + start = tmp + } + now := util.CurrentTimeMillis() + if start <= now && now <= end { + ret.Date = &ValueDate{Content: now, IsNotEmpty: true} + return + } + ret.Date = &ValueDate{Content: start, IsNotEmpty: true} case FilterOperatorIsEmpty: ret.Date = &ValueDate{Content: 0, IsNotEmpty: false} case FilterOperatorIsNotEmpty: diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index e47cc7bed..1bc60928b 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -148,6 +148,13 @@ func getAttrViewAddingBlockDefaultValues(attrView *av.AttributeView, view, group newValue = getNewValueByNearItem(nearItem, keyValues.Key, addingItemID) } if nil != newValue { + if av.KeyTypeDate == keyValues.Key.Type { + if nil != nearItem { + nearValue := getNewValueByNearItem(nearItem, keyValues.Key, addingItemID) + newValue.Date.IsNotTime = nearValue.Date.IsNotTime + } + } + ret[keyValues.Key.ID] = newValue } }