From d5bceca2a42f2f5804665223528260919a3cb641 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Thu, 3 Aug 2023 23:21:11 +0800 Subject: [PATCH] :art: Attribute View number column format https://github.com/siyuan-note/siyuan/issues/8764 --- kernel/av/av.go | 3 ++- kernel/av/table.go | 3 ++- kernel/model/attribute_view.go | 23 +++++++++++++---------- kernel/model/transaction.go | 1 + 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/kernel/av/av.go b/kernel/av/av.go index 92bfb819c..920ae7820 100644 --- a/kernel/av/av.go +++ b/kernel/av/av.go @@ -76,7 +76,8 @@ type Key struct { // 以下是某些列类型的特有属性 - Options []*KeySelectOption `json:"options,omitempty"` // 选项列表 + Options []*KeySelectOption `json:"options,omitempty"` // 选项列表 + NumberFormat NumberFormat `json:"numberFormat"` // 列数字格式化 } func NewKey(id, name string, keyType KeyType) *Key { diff --git a/kernel/av/table.go b/kernel/av/table.go index a9cdfe34c..1ef6712a1 100644 --- a/kernel/av/table.go +++ b/kernel/av/table.go @@ -353,7 +353,8 @@ type TableColumn struct { // 以下是某些列类型的特有属性 - Options []*KeySelectOption `json:"options,omitempty"` // 选项列表 + Options []*KeySelectOption `json:"options,omitempty"` // 选项列表 + NumberFormat NumberFormat `json:"numberFormat"` // 列数字格式化 } type TableRow struct { diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index c8242e73a..c2b3db758 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -158,15 +158,16 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a } ret.Columns = append(ret.Columns, &av.TableColumn{ - ID: key.ID, - Name: key.Name, - Type: key.Type, - Icon: key.Icon, - Options: key.Options, - Wrap: col.Wrap, - Hidden: col.Hidden, - Width: col.Width, - Calc: col.Calc, + ID: key.ID, + Name: key.Name, + Type: key.Type, + Icon: key.Icon, + Options: key.Options, + NumberFormat: key.NumberFormat, + Wrap: col.Wrap, + Hidden: col.Hidden, + Width: col.Width, + Calc: col.Calc, }) } @@ -213,7 +214,8 @@ func renderAttributeViewTable(attrView *av.AttributeView, view *av.View) (ret *a tableRow.ID = rowID // 格式化数字 - if av.KeyTypeNumber == tableCell.ValueType && nil != tableCell.Value && nil != tableCell.Value.Number { + if av.KeyTypeNumber == tableCell.ValueType && nil != tableCell.Value && nil != tableCell.Value.Number && av.NumberFormatNone != col.NumberFormat { + tableCell.Value.Number.Format = col.NumberFormat tableCell.Value.Number.FormatNumber() } @@ -773,6 +775,7 @@ func updateAttributeViewColumn(operation *Operation) (err error) { if keyValues.Key.ID == operation.ID { keyValues.Key.Name = operation.Name keyValues.Key.Type = colType + keyValues.Key.NumberFormat = av.NumberFormat(operation.Format) break } } diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index 50d106975..041325f83 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -1091,6 +1091,7 @@ type Operation struct { SrcIDs []string `json:"srcIDs"` // 用于将块拖拽到属性视图中 Name string `json:"name"` // 属性视图列名 Typ string `json:"type"` // 属性视图列类型 + Format string `json:"format"` // 属性视图列格式化 KeyID string `json:"keyID"` // 属性视列 ID RowID string `json:"rowID"` // 属性视图行 ID