feat: 优化编辑器 UI 和文件名显示,支持全屏编辑模式

This commit is contained in:
2026-01-04 18:21:19 +08:00
parent 5fd33745b3
commit 5496c776df
4 changed files with 32 additions and 14 deletions

View File

@@ -248,7 +248,8 @@ func (s *common) CompleteUpload(ctx context.Context, userID int64, form *common_
ObjectKey: objectKey,
Hash: hash,
Meta: types.NewJSONType(fields.MediaAssetMeta{
Size: totalSize,
Filename: meta.Filename,
Size: totalSize,
}),
}
}
@@ -384,7 +385,8 @@ func (s *common) Upload(
ObjectKey: objectKey,
Hash: hash,
Meta: types.NewJSONType(fields.MediaAssetMeta{
Size: size,
Filename: file.Filename,
Size: size,
}),
}
}
@@ -398,10 +400,14 @@ func (s *common) Upload(
func (s *common) composeUploadResult(asset *models.MediaAsset) *common_dto.UploadResult {
url := s.GetAssetURL(asset.ObjectKey)
filename := filepath.Base(asset.ObjectKey)
// Try to get original filename if stored? Currently objectKey has UUID prefix.
// We can store original filename in Meta if needed. For now, just return valid result.
// Meta is JSONType wrapper.
filename := asset.Meta.Data().Filename
if filename == "" {
filename = filepath.Base(asset.ObjectKey)
// Try to strip UUID prefix (36 chars + 1 underscore = 37)
if len(filename) > 37 && filename[36] == '_' {
filename = filename[37:]
}
}
size := asset.Meta.Data().Size
return &common_dto.UploadResult{

View File

@@ -370,7 +370,18 @@ func (s *creator) GetContent(ctx context.Context, userID int64, id string) (*cre
for _, ca := range c.ContentAssets {
if ca.Asset != nil {
sizeBytes := ca.Asset.Meta.Data().Size
meta := ca.Asset.Meta.Data()
name := meta.Filename
if name == "" {
// Fallback: strip UUID prefix (36 chars + 1 underscore = 37)
if len(ca.Asset.ObjectKey) > 37 && ca.Asset.ObjectKey[36] == '_' {
name = ca.Asset.ObjectKey[37:]
} else {
name = ca.Asset.ObjectKey
}
}
sizeBytes := meta.Size
sizeMB := float64(sizeBytes) / 1024.0 / 1024.0
sizeStr := cast.ToString(float64(int(sizeMB*100))/100.0) + " MB"
@@ -379,7 +390,7 @@ func (s *creator) GetContent(ctx context.Context, userID int64, id string) (*cre
Role: string(ca.Role),
Type: string(ca.Asset.Type),
URL: Common.GetAssetURL(ca.Asset.ObjectKey),
Name: ca.Asset.ObjectKey, // Simple fallback
Name: name,
Size: sizeStr,
Sort: int(ca.Sort),
})