diff --git a/kernel/av/value.go b/kernel/av/value.go index fc3441476..7cdca3e8e 100644 --- a/kernel/av/value.go +++ b/kernel/av/value.go @@ -1201,7 +1201,7 @@ func (r *ValueRollup) calcContents(calc *RollupCalc, destKey *Key) { } } -func GetAttributeViewDefaultValue(valueID, keyID, blockID string, typ KeyType) (ret *Value) { +func GetAttributeViewDefaultValue(valueID, keyID, blockID string, typ KeyType, keyDateAutoFill bool) (ret *Value) { if "" == valueID { valueID = ast.NewNodeID() } @@ -1227,7 +1227,7 @@ func GetAttributeViewDefaultValue(valueID, keyID, blockID string, typ KeyType) ( case KeyTypeNumber: ret.Number = &ValueNumber{} case KeyTypeDate: - ret.Date = &ValueDate{IsNotTime: true} + ret.Date = &ValueDate{IsNotTime: !keyDateAutoFill} case KeyTypeSelect: ret.MSelect = []*ValueSelect{} case KeyTypeMSelect: diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index e5a02ba72..3545e74d5 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -233,7 +233,7 @@ func getAttrViewAddingBlockDefaultValues(attrView *av.AttributeView, view, group } } } else { - newValue = av.GetAttributeViewDefaultValue(ast.NewNodeID(), groupKey.ID, addingItemID, groupKey.Type) + newValue = av.GetAttributeViewDefaultValue(ast.NewNodeID(), groupKey.ID, addingItemID, groupKey.Type, false) newValue.MSelect = append(newValue.MSelect, &av.ValueSelect{Content: opt.Name, Color: opt.Color}) } } @@ -278,7 +278,7 @@ func getAttrViewAddingBlockDefaultValues(attrView *av.AttributeView, view, group if nil == nearItem && !filterKeyIDs[groupKey.ID] { // 没有临近项并且分组字段和过滤字段不同时,使用分组值 - newValue = av.GetAttributeViewDefaultValue(ast.NewNodeID(), groupKey.ID, addingItemID, groupKey.Type) + newValue = av.GetAttributeViewDefaultValue(ast.NewNodeID(), groupKey.ID, addingItemID, groupKey.Type, false) if av.KeyTypeText == groupView.GroupVal.Type { content := groupView.GroupVal.Text.Content switch newValue.Type { @@ -1535,7 +1535,7 @@ func GetBlockAttributeViewKeys(nodeID string) (ret []*BlockAttributeViewKeys) { keyValues = append(keyValues, kValues) } else { // 如果没有值,那么就补一个默认值 - kValues.Values = append(kValues.Values, av.GetAttributeViewDefaultValue(itemID[:14]+ast.NewNodeID()[14:], kv.Key.ID, itemID, kv.Key.Type)) + kValues.Values = append(kValues.Values, av.GetAttributeViewDefaultValue(itemID[:14]+ast.NewNodeID()[14:], kv.Key.ID, itemID, kv.Key.Type, false)) keyValues = append(keyValues, kValues) } } @@ -1651,7 +1651,7 @@ func GetBlockAttributeViewKeys(nodeID string) (ret []*BlockAttributeViewKeys) { ial = map[string]string{} } if nil == kv.Values[0].Template { - kv.Values[0] = av.GetAttributeViewDefaultValue(kv.Values[0].ID, kv.Key.ID, nodeID, kv.Key.Type) + kv.Values[0] = av.GetAttributeViewDefaultValue(kv.Values[0].ID, kv.Key.ID, nodeID, kv.Key.Type, false) } var renderErr error @@ -3156,7 +3156,7 @@ func addAttributeViewBlock(now int64, avID, dbBlockID, viewID, groupID, previous } else { if val.IsRenderAutoFill { val.CreatedAt, val.UpdatedAt = now, now+1000 - val.Date.Content, val.Date.IsNotEmpty = now, true + val.Date.Content, val.Date.IsNotEmpty, val.Date.IsNotTime = now, true, false val.IsRenderAutoFill = false } } diff --git a/kernel/sql/av.go b/kernel/sql/av.go index 7dff8e64a..aaf716ae6 100644 --- a/kernel/sql/av.go +++ b/kernel/sql/av.go @@ -314,7 +314,7 @@ func filterNotFoundAttrViewItems(keyValuesMap map[string][]*av.KeyValues) { } } -func fillAttributeViewBaseValue(baseValue *av.BaseValue, fieldID, itemID string, fieldNumberFormat av.NumberFormat, fieldTemplate string) { +func fillAttributeViewBaseValue(baseValue *av.BaseValue, fieldID, itemID string, fieldNumberFormat av.NumberFormat, fieldTemplate string, fieldDateAutoFill bool) { switch baseValue.ValueType { case av.KeyTypeNumber: // 格式化数字 if nil != baseValue.Value && nil != baseValue.Value.Number && baseValue.Value.Number.IsNotEmpty { @@ -330,7 +330,7 @@ func fillAttributeViewBaseValue(baseValue *av.BaseValue, fieldID, itemID string, } if nil == baseValue.Value { - baseValue.Value = av.GetAttributeViewDefaultValue(baseValue.ID, fieldID, itemID, baseValue.ValueType) + baseValue.Value = av.GetAttributeViewDefaultValue(baseValue.ID, fieldID, itemID, baseValue.ValueType, fieldDateAutoFill) } else { FillAttributeViewNilValue(baseValue.Value, baseValue.ValueType) } diff --git a/kernel/sql/av_gallery.go b/kernel/sql/av_gallery.go index 5fd4550c5..a373bc94e 100644 --- a/kernel/sql/av_gallery.go +++ b/kernel/sql/av_gallery.go @@ -108,7 +108,11 @@ func RenderAttributeViewGallery(attrView *av.AttributeView, view *av.View, query } galleryCard.ID = cardID - fillAttributeViewBaseValue(fieldValue.BaseValue, field.ID, cardID, field.NumberFormat, field.Template) + filedDateAutoFill := false + if nil != field.Date { + filedDateAutoFill = field.Date.AutoFillNow + } + fillAttributeViewBaseValue(fieldValue.BaseValue, field.ID, cardID, field.NumberFormat, field.Template, filedDateAutoFill) galleryCard.Values = append(galleryCard.Values, fieldValue) } diff --git a/kernel/sql/av_table.go b/kernel/sql/av_table.go index 545b7bbcb..1f1490e18 100644 --- a/kernel/sql/av_table.go +++ b/kernel/sql/av_table.go @@ -96,7 +96,11 @@ func RenderAttributeViewTable(attrView *av.AttributeView, view *av.View, query s } tableRow.ID = rowID - fillAttributeViewBaseValue(tableCell.BaseValue, col.ID, rowID, col.NumberFormat, col.Template) + filedDateAutoFill := false + if nil != col.Date { + filedDateAutoFill = col.Date.AutoFillNow + } + fillAttributeViewBaseValue(tableCell.BaseValue, col.ID, rowID, col.NumberFormat, col.Template, filedDateAutoFill) tableRow.Cells = append(tableRow.Cells, tableCell) } ret.Rows = append(ret.Rows, &tableRow)