mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-17 23:20:13 +01:00
🎨 Database grouping by field https://github.com/siyuan-note/siyuan/issues/10964
This commit is contained in:
parent
eafe42fe59
commit
99db625cf7
5 changed files with 24 additions and 17 deletions
|
|
@ -192,13 +192,19 @@ type View struct {
|
|||
Gallery *LayoutGallery `json:"gallery,omitempty"` // 卡片布局
|
||||
ItemIDs []string `json:"itemIds,omitempty"` // 项目 ID 列表,用于维护所有项目
|
||||
|
||||
Groups []*View `json:"groups,omitempty"` // 分组视图列表
|
||||
GroupItemIDs []string `json:"groupItemIds,omitempty"` // 分组项目 ID 列表,用于维护分组中的所有项目
|
||||
GroupCalcSum bool `json:"groupCalcSum,omitempty"` // 分组是否计算总和
|
||||
GroupName string `json:"groupName,omitempty"` // 分组名称
|
||||
GroupFolded bool `json:"groupFolded,omitempty"` // 分组是否折叠
|
||||
GroupHidden bool `json:"groupHidden,omitempty"` // 分组是否隐藏
|
||||
GroupDefault bool `json:"groupDefault,omitempty"` // 是否为默认分组
|
||||
Groups []*View `json:"groups,omitempty"` // 分组视图列表
|
||||
GroupItemIDs []string `json:"groupItemIds,omitempty"` // 分组项目 ID 列表,用于维护分组中的所有项目
|
||||
GroupCalc *GroupCalc `json:"groupCalc,omitempty"` // 分组计算规则
|
||||
GroupName string `json:"groupName,omitempty"` // 分组名称
|
||||
GroupFolded bool `json:"groupFolded,omitempty"` // 分组是否折叠
|
||||
GroupHidden bool `json:"groupHidden,omitempty"` // 分组是否隐藏
|
||||
GroupDefault bool `json:"groupDefault,omitempty"` // 是否为默认分组
|
||||
}
|
||||
|
||||
// GroupCalc 描述了分组计算规则和结果的结构。
|
||||
type GroupCalc struct {
|
||||
Field string `json:"field"` // 字段 ID
|
||||
FieldCalc `json:"calc"` // 计算规则和结果
|
||||
}
|
||||
|
||||
// LayoutType 描述了视图布局类型。
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
|
||||
package av
|
||||
|
||||
// ColumnCalc 描述了列(字段)计算操作和结果的结构。
|
||||
type ColumnCalc struct {
|
||||
// FieldCalc 描述了字段计算操作和结果的结构。
|
||||
type FieldCalc struct {
|
||||
Operator CalcOperator `json:"operator"` // 计算操作符
|
||||
Result *Value `json:"result"` // 计算结果
|
||||
}
|
||||
|
|
|
|||
|
|
@ -67,7 +67,8 @@ type BaseInstance struct {
|
|||
Folded bool `json:"folded,omitempty"` // 是否折叠
|
||||
Hidden bool `json:"hidden,omitempty"` // 是否隐藏
|
||||
|
||||
Groups []Viewable `json:"groups,omitempty"` // 分组实例列表
|
||||
Groups []Viewable `json:"groups,omitempty"` // 分组实例列表
|
||||
GroupCalc *GroupCalc `json:"groupCalc,omitempty"` // 分组计算规则和结果
|
||||
}
|
||||
|
||||
func (baseInstance *BaseInstance) GetSorts() []*ViewSort {
|
||||
|
|
|
|||
|
|
@ -45,9 +45,9 @@ func NewLayoutTable() *LayoutTable {
|
|||
type ViewTableColumn struct {
|
||||
*BaseField
|
||||
|
||||
Pin bool `json:"pin"` // 是否固定
|
||||
Width string `json:"width"` // 列宽度
|
||||
Calc *ColumnCalc `json:"calc,omitempty"` // 计算
|
||||
Pin bool `json:"pin"` // 是否固定
|
||||
Width string `json:"width"` // 列宽度
|
||||
Calc *FieldCalc `json:"calc,omitempty"` // 计算规则
|
||||
}
|
||||
|
||||
// Table 描述了表格视图实例的结构。
|
||||
|
|
@ -63,9 +63,9 @@ type Table struct {
|
|||
type TableColumn struct {
|
||||
*BaseInstanceField
|
||||
|
||||
Pin bool `json:"pin"` // 是否固定
|
||||
Width string `json:"width"` // 列宽度
|
||||
Calc *ColumnCalc `json:"calc"` // 计算
|
||||
Pin bool `json:"pin"` // 是否固定
|
||||
Width string `json:"width"` // 列宽度
|
||||
Calc *FieldCalc `json:"calc"` // 计算规则和结果
|
||||
}
|
||||
|
||||
// TableRow 描述了表格实例行的结构。
|
||||
|
|
|
|||
|
|
@ -2346,7 +2346,7 @@ func setAttributeViewColumnCalc(operation *Operation) (err error) {
|
|||
return
|
||||
}
|
||||
|
||||
calc := &av.ColumnCalc{}
|
||||
calc := &av.FieldCalc{}
|
||||
switch view.LayoutType {
|
||||
case av.LayoutTypeTable:
|
||||
if err = gulu.JSON.UnmarshalJSON(data, calc); err != nil {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue