浏览代码

:art: Template supports numerical calculations when using rollup https://github.com/siyuan-note/siyuan/issues/10810

Daniel 1 年之前
父节点
当前提交
c559ac45be
共有 2 个文件被更改,包括 12 次插入0 次删除
  1. 7 0
      kernel/model/attribute_view.go
  2. 5 0
      kernel/treenode/node.go

+ 7 - 0
kernel/model/attribute_view.go

@@ -811,6 +811,13 @@ func renderTemplateCol(ial map[string]string, flashcard *Flashcard, rowValues []
 				dataModel[rowValue.Key.Name] = v.Number.Content
 			} else if av.KeyTypeDate == v.Type {
 				dataModel[rowValue.Key.Name] = time.UnixMilli(v.Date.Content)
+			} else if av.KeyTypeRollup == v.Type {
+				if 0 < len(v.Rollup.Contents) && av.KeyTypeNumber == v.Rollup.Contents[0].Type {
+					// 模板使用汇总时支持数字计算
+					// Template supports numerical calculations when using rollup https://github.com/siyuan-note/siyuan/issues/10810
+					// 汇总数字时仅取第一个数字填充模板
+					dataModel[rowValue.Key.Name] = v.Rollup.Contents[0].Number.Content
+				}
 			} else {
 				dataModel[rowValue.Key.Name] = v.String()
 			}

+ 5 - 0
kernel/treenode/node.go

@@ -1081,6 +1081,11 @@ func renderTemplateCol(ial map[string]string, rowValues []*av.KeyValues, tplCont
 				dataModel[rowValue.Key.Name] = v.Number.Content
 			} else if av.KeyTypeDate == v.Type {
 				dataModel[rowValue.Key.Name] = time.UnixMilli(v.Date.Content)
+			} else if av.KeyTypeRollup == v.Type {
+				if 0 < len(v.Rollup.Contents) && av.KeyTypeNumber == v.Rollup.Contents[0].Type {
+					// 汇总数字时仅取第一个数字填充模板
+					dataModel[rowValue.Key.Name] = v.Rollup.Contents[0].Number.Content
+				}
 			} else {
 				dataModel[rowValue.Key.Name] = v.String()
 			}