From a650764c124d85e9206f8c76bd852b2a6cea0a8e Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Fri, 1 Mar 2024 10:33:25 +0800 Subject: [PATCH] :bug: Database table view sorts abnormally after deleting numeric values Fix https://github.com/siyuan-note/siyuan/issues/10476 --- kernel/av/table.go | 24 ++++++++++++++++++++++++ kernel/model/attribute_view.go | 6 +++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/kernel/av/table.go b/kernel/av/table.go index 9d618304b..fc21bd17d 100644 --- a/kernel/av/table.go +++ b/kernel/av/table.go @@ -101,6 +101,18 @@ func (value *Value) Compare(other *Value) int { } case KeyTypeNumber: if nil != value.Number && nil != other.Number { + if value.Number.IsNotEmpty { + if !other.Number.IsNotEmpty { + return 1 + } + return 0 + } else { + if other.Number.IsNotEmpty { + return -1 + } + return 0 + } + if value.Number.Content > other.Number.Content { return 1 } else if value.Number.Content < other.Number.Content { @@ -111,6 +123,18 @@ func (value *Value) Compare(other *Value) int { } case KeyTypeDate: if nil != value.Date && nil != other.Date { + if value.Date.IsNotEmpty { + if !other.Date.IsNotEmpty { + return 1 + } + return 0 + } else { + if other.Date.IsNotEmpty { + return -1 + } + return 0 + } + if value.Date.Content > other.Date.Content { return 1 } else if value.Date.Content < other.Date.Content { diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index 88b39988f..9bdc423f3 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -2534,10 +2534,14 @@ func UpdateAttributeViewCell(tx *Transaction, avID, keyID, rowID, cellID string, if av.KeyTypeNumber == val.Type { if nil != val.Number && !val.Number.IsNotEmpty { - // 删除内容为空值 val.Number.Content = 0 val.Number.FormattedContent = "" } + } else if av.KeyTypeDate == val.Type { + if nil != val.Date && !val.Date.IsNotEmpty { + val.Date.Content = 0 + val.Date.FormattedContent = "" + } } relationChangeMode := 0 // 0:不变(仅排序),1:增加,2:减少