diff --git a/kernel/sql/av.go b/kernel/sql/av.go index 8ea161904..d0890cef7 100644 --- a/kernel/sql/av.go +++ b/kernel/sql/av.go @@ -222,6 +222,32 @@ func filterNotFoundAttrViewItems(keyValuesMap *map[string][]*av.KeyValues) { } } +func fillAttributeViewBaseValue(baseValue *av.BaseValue, fieldID, itemID string, fieldNumberFormat av.NumberFormat, fieldTemplate string) { + switch baseValue.ValueType { + case av.KeyTypeNumber: // 格式化数字 + if nil != baseValue.Value && nil != baseValue.Value.Number && baseValue.Value.Number.IsNotEmpty { + baseValue.Value.Number.Format = fieldNumberFormat + baseValue.Value.Number.FormatNumber() + } + case av.KeyTypeTemplate: // 渲染模板字段 + baseValue.Value = &av.Value{ID: baseValue.ID, KeyID: fieldID, BlockID: itemID, Type: av.KeyTypeTemplate, Template: &av.ValueTemplate{Content: fieldTemplate}} + case av.KeyTypeCreated: // 填充创建时间字段值,后面再渲染 + baseValue.Value = &av.Value{ID: baseValue.ID, KeyID: fieldID, BlockID: itemID, Type: av.KeyTypeCreated} + case av.KeyTypeUpdated: // 填充更新时间字段值,后面再渲染 + baseValue.Value = &av.Value{ID: baseValue.ID, KeyID: fieldID, BlockID: itemID, Type: av.KeyTypeUpdated} + case av.KeyTypeRelation: // 清空关联字段值,后面再渲染 https://ld246.com/article/1703831044435 + if nil != baseValue.Value && nil != baseValue.Value.Relation { + baseValue.Value.Relation.Contents = nil + } + } + + if nil == baseValue.Value { + baseValue.Value = av.GetAttributeViewDefaultValue(baseValue.ID, fieldID, itemID, baseValue.ValueType) + } else { + fillAttributeViewNilValue(baseValue.Value, baseValue.ValueType) + } +} + func fillAttributeViewNilValue(value *av.Value, typ av.KeyType) { value.Type = typ switch typ { diff --git a/kernel/sql/av_gallery.go b/kernel/sql/av_gallery.go index e8167355b..732014106 100644 --- a/kernel/sql/av_gallery.go +++ b/kernel/sql/av_gallery.go @@ -94,30 +94,7 @@ func RenderAttributeViewGallery(attrView *av.AttributeView, view *av.View, query } galleryCard.ID = cardID - switch fieldValue.ValueType { - case av.KeyTypeNumber: // 格式化数字 - if nil != fieldValue.Value && nil != fieldValue.Value.Number && fieldValue.Value.Number.IsNotEmpty { - fieldValue.Value.Number.Format = field.NumberFormat - fieldValue.Value.Number.FormatNumber() - } - case av.KeyTypeTemplate: // 渲染模板字段 - fieldValue.Value = &av.Value{ID: fieldValue.ID, KeyID: field.ID, BlockID: cardID, Type: av.KeyTypeTemplate, Template: &av.ValueTemplate{Content: field.Template}} - case av.KeyTypeCreated: // 填充创建时间字段值,后面再渲染 - fieldValue.Value = &av.Value{ID: fieldValue.ID, KeyID: field.ID, BlockID: cardID, Type: av.KeyTypeCreated} - case av.KeyTypeUpdated: // 填充更新时间字段值,后面再渲染 - fieldValue.Value = &av.Value{ID: fieldValue.ID, KeyID: field.ID, BlockID: cardID, Type: av.KeyTypeUpdated} - case av.KeyTypeRelation: // 清空关联字段值,后面再渲染 https://ld246.com/article/1703831044435 - if nil != fieldValue.Value && nil != fieldValue.Value.Relation { - fieldValue.Value.Relation.Contents = nil - } - } - - if nil == fieldValue.Value { - fieldValue.Value = av.GetAttributeViewDefaultValue(fieldValue.ID, field.ID, cardID, fieldValue.ValueType) - } else { - fillAttributeViewNilValue(fieldValue.Value, fieldValue.ValueType) - } - + fillAttributeViewBaseValue(fieldValue.BaseValue, field.ID, cardID, field.NumberFormat, field.Template) galleryCard.Values = append(galleryCard.Values, fieldValue) } diff --git a/kernel/sql/av_table.go b/kernel/sql/av_table.go index 56f9741d0..4dd5d9117 100644 --- a/kernel/sql/av_table.go +++ b/kernel/sql/av_table.go @@ -101,30 +101,7 @@ func RenderAttributeViewTable(attrView *av.AttributeView, view *av.View, query s } tableRow.ID = rowID - switch tableCell.ValueType { - case av.KeyTypeNumber: // 格式化数字 - if nil != tableCell.Value && nil != tableCell.Value.Number && tableCell.Value.Number.IsNotEmpty { - tableCell.Value.Number.Format = col.NumberFormat - tableCell.Value.Number.FormatNumber() - } - case av.KeyTypeTemplate: // 渲染模板列 - tableCell.Value = &av.Value{ID: tableCell.ID, KeyID: col.ID, BlockID: rowID, Type: av.KeyTypeTemplate, Template: &av.ValueTemplate{Content: col.Template}} - case av.KeyTypeCreated: // 填充创建时间列值,后面再渲染 - tableCell.Value = &av.Value{ID: tableCell.ID, KeyID: col.ID, BlockID: rowID, Type: av.KeyTypeCreated} - case av.KeyTypeUpdated: // 填充更新时间列值,后面再渲染 - tableCell.Value = &av.Value{ID: tableCell.ID, KeyID: col.ID, BlockID: rowID, Type: av.KeyTypeUpdated} - case av.KeyTypeRelation: // 清空关联列值,后面再渲染 https://ld246.com/article/1703831044435 - if nil != tableCell.Value && nil != tableCell.Value.Relation { - tableCell.Value.Relation.Contents = nil - } - } - - if nil == tableCell.Value { - tableCell.Value = av.GetAttributeViewDefaultValue(tableCell.ID, col.ID, rowID, tableCell.ValueType) - } else { - fillAttributeViewNilValue(tableCell.Value, tableCell.ValueType) - } - + fillAttributeViewBaseValue(tableCell.BaseValue, col.ID, rowID, col.NumberFormat, col.Template) tableRow.Cells = append(tableRow.Cells, tableCell) } ret.Rows = append(ret.Rows, &tableRow)