This commit is contained in:
Daniel 2025-07-28 10:54:51 +08:00
parent 75b2ccfe82
commit 400153319e
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
3 changed files with 22 additions and 12 deletions

View file

@ -1541,17 +1541,7 @@ func renderAttributeView(attrView *av.AttributeView, blockID, viewID, query stri
// 如果存在分组的话渲染分组视图
var groups []av.Viewable
for _, groupView := range view.Groups {
switch groupView.LayoutType {
case av.LayoutTypeTable:
groupView.Table.Columns = view.Table.Columns
case av.LayoutTypeGallery:
groupView.Gallery.CardFields = view.Gallery.CardFields
}
groupView.Filters = view.Filters
groupView.Sorts = view.Sorts
groupViewable := sql.RenderView(attrView, groupView, query)
groupViewable := sql.RenderGroupView(attrView, view, groupView)
err = renderViewableInstance(groupViewable, view, attrView, page, pageSize)
if nil != err {
return
@ -2940,7 +2930,13 @@ func addAttributeViewBlock(now int64, avID, blockID, groupID, previousBlockID, a
var nearItem av.Item // 临近项
if nil != view && ((0 < len(view.Filters) && !ignoreFillFilter) || "" != groupID) {
// 存在过滤条件或者指定分组视图时,先获取临近项备用
viewable := sql.RenderView(attrView, view, "")
targetView := view
if "" != groupID {
if groupView := view.GetGroup(groupID); nil != groupView {
targetView = groupView
}
}
viewable := sql.RenderGroupView(attrView, view, targetView)
av.Filter(viewable, attrView)
av.Sort(viewable, attrView)
items := viewable.(av.Collection).GetItems()

View file

@ -1693,6 +1693,7 @@ type Operation struct {
RemoveDest bool `json:"removeDest"` // 属性视图删除关联目标
Layout av.LayoutType `json:"layout"` // 属性视图布局类型
GroupID string `json:"groupID"` // 属性视图分组视图 ID
TargetGroupID string `json:"targetGroupID"` // 属性视图目标分组视图 ID
}
type Transaction struct {

View file

@ -32,6 +32,19 @@ import (
"github.com/siyuan-note/siyuan/kernel/util"
)
func RenderGroupView(attrView *av.AttributeView, view, groupView *av.View) (ret av.Viewable) {
switch groupView.LayoutType {
case av.LayoutTypeTable:
groupView.Table.Columns = view.Table.Columns
case av.LayoutTypeGallery:
groupView.Gallery.CardFields = view.Gallery.CardFields
}
groupView.Filters = view.Filters
groupView.Sorts = view.Sorts
return RenderView(attrView, groupView, "")
}
func RenderView(attrView *av.AttributeView, view *av.View, query string) (ret av.Viewable) {
switch view.LayoutType {
case av.LayoutTypeTable: