Appearance
公共数据结构
API Types
公共数据结构
这里整理素材、目录、搜索、创建素材和上传凭证等常用类型。服务端接口多使用下划线字段,manager 或组件层会把部分字段转换成驼峰字段。
快速索引
| 类型 | 用途 | 常见使用位置 |
|---|---|---|
AssetTypeEnum | 素材类型枚举 | 素材选择、素材创建、搜索筛选 |
AssetManagementModel | 基础素材模型 | 素材管理弹窗、素材列表、上传态 |
MediaAssetModel | 图片/视频素材模型 | AssetModal、素材管理、编辑器素材 |
MusicAssetModel | 音乐素材模型 | MusicModal、音乐列表 |
FolderModel | 素材目录模型 | 目录树、素材管理弹窗 |
AssetListResponse | 服务端素材列表返回 | 服务接口、manager 转换 |
IAssetSearch | 素材搜索请求参数 | 搜索、筛选、AI 搜索 |
IAssetCreate | 创建素材请求参数 | 上传完成后创建素材 |
StsTokenResponse | OSS 上传凭证 | 上传管理、OSS 上传 |
AssetTypeEnum
ts
export enum AssetTypeEnum {
sticker = 6,
caption = 11,
image = 50,
video = 51,
music = 54,
script = 55,
}| 枚举 | 值 | 说明 |
|---|---|---|
sticker | 6 | 贴纸 |
caption | 11 | 字幕 |
image | 50 | 图片 |
video | 51 | 视频 |
music | 54 | 音乐 |
script | 55 | 脚本 |
AssetManagementModel
ts
interface AssetManagementModel {
id: string
assetType: number | string
assetId: string
assetStyle: number
assetVersion: number
name: string
url: string
coverUrl: string
attr: number
status: number
duration: number
createTime: number
updateTime: number
folderId?: string
showCheckbox?: boolean
retry?: boolean
uploading?: boolean
editing?: boolean
checked?: boolean
progress?: number
file?: File
}| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 业务记录 id。 |
assetId | string | 素材 id。 |
assetType | number | string | 素材类型。 |
name | string | 素材名称。 |
url | string | 素材地址。 |
coverUrl | string | 封面地址。 |
duration | number | 时长,常用于音视频。 |
folderId | string | 所属目录。 |
checked | boolean | 是否被选中。 |
uploading | boolean | 是否处于上传态。 |
progress | number | 上传进度。 |
file | File | 本地文件对象。 |
MediaAssetModel
ts
interface MediaAssetModel extends AssetManagementModel {
width: number
height: number
ratio: number
color?: string
previewUrl: string
downloadUrl: string
size: number
}| 字段 | 类型 | 说明 |
|---|---|---|
width | number | 媒体宽度。 |
height | number | 媒体高度。 |
ratio | number | 宽高比。 |
previewUrl | string | 预览地址。 |
downloadUrl | string | 下载地址。 |
size | number | 文件大小。 |
MusicAssetModel
ts
interface MusicAssetModel extends AssetManagementModel {
sample?: string
volume?: number
style?: string[]
bpm?: number
size?: number
}| 字段 | 类型 | 说明 |
|---|---|---|
sample | string | 音频试听地址。 |
volume | number | 音量。 |
style | string[] | 音乐风格标签。 |
bpm | number | BPM。 |
size | number | 文件大小。 |
FolderModel
ts
interface FolderModel {
id: string
name: string
parentId?: string
count: number
children?: FolderModel[]
images: string[]
}| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 目录 id。 |
name | string | 目录名称。 |
parentId | string | 父目录 id。 |
count | number | 目录下素材数量。 |
children | FolderModel[] | 子目录。 |
images | string[] | 目录预览图。 |
服务端素材列表返回
ts
interface AssetListResponse {
list: {
asset_id: string
asset_style: number
asset_type: number
asset_version: number
cover_url: string
create_time: number
dir_id: number
duration: number
height: number
id: string
name: string
size: number
status: number
update_time: number
url: string
width: number
tag: string[]
}[]
page: number
page_size: number
total: number
}服务接口使用下划线字段,manager 层会转成驼峰字段。
| 字段 | 类型 | 说明 |
|---|---|---|
list | Array<object> | 素材列表。 |
list[].asset_id | string | 素材 id。 |
list[].asset_type | number | 素材类型。 |
list[].cover_url | string | 封面地址。 |
list[].url | string | 素材地址。 |
list[].dir_id | number | 目录 id。 |
list[].duration | number | 时长。 |
list[].width | number | 宽度。 |
list[].height | number | 高度。 |
list[].tag | string[] | 标签。 |
page | number | 当前页。 |
page_size | number | 每页数量。 |
total | number | 总数。 |
IAssetSearch
素材搜索请求参数:
ts
interface IAssetSearch {
asset_cate: number
asset_group?: string
asset_type: number | number[]
asset_style?: number
dir_id?: string
name?: string
order_field?: string
order_type?: number
page: number
page_size: number
cid?: string[] | string
industry_id?: string
scale?: number[]
replaceable_elements_number?: number
searchType?: string
searchRange?: string
aiSearchCount?: number
judgeAiSearch?: () => boolean
tag_id_list?: string[]
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
asset_cate | number | 是 | 素材分类。 |
asset_type | number | number[] | 是 | 素材类型。 |
page | number | 是 | 页码。 |
page_size | number | 是 | 每页数量。 |
asset_group | string | 否 | 素材分组。 |
asset_style | number | 否 | 素材样式。 |
dir_id | string | 否 | 目录 id。 |
name | string | 否 | 搜索关键词。 |
order_field | string | 否 | 排序字段。 |
order_type | number | 否 | 排序方式。 |
cid | string[] | string | 否 | 分类 id。 |
industry_id | string | 否 | 行业 id。 |
scale | number[] | 否 | 比例筛选。 |
searchType | string | 否 | AI 搜索类型。 |
searchRange | string | 否 | AI 搜索范围。 |
tag_id_list | string[] | 否 | 标签 id 列表。 |
IAssetCreate
创建素材请求参数:
ts
interface IAssetCreate {
asset_style: number
asset_type: number
dir_id?: number
name: string
status?: number
url: string
rotate?: number
from: 1 | 2
is_need_rotate?: boolean
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
asset_style | number | 是 | 素材样式。 |
asset_type | number | 是 | 素材类型。 |
name | string | 是 | 素材名称。 |
url | string | 是 | 素材地址。 |
from | 1 | 2 | 是 | 素材来源。 |
dir_id | number | 否 | 目录 id。 |
status | number | 否 | 素材状态。 |
rotate | number | 否 | 是否旋转/旋转标识。 |
is_need_rotate | boolean | 否 | 是否需要旋转。 |
StsTokenResponse
OSS 上传凭证:
ts
interface StsTokenResponse {
token: {
access_key_id: string
access_key_secret: string
bucket: string
domain: string
duration: number
expiration: string
file_names: string[]
path_prefix: string
region: string
security_token: string
callback: {
callback_body: string
callback_url: string
content_type: string
custom_value: string[]
}
}
}| 字段 | 类型 | 说明 |
|---|---|---|
token.access_key_id | string | OSS access key id。 |
token.access_key_secret | string | OSS access key secret。 |
token.security_token | string | 临时安全 token。 |
token.bucket | string | OSS bucket。 |
token.domain | string | 访问域名。 |
token.expiration | string | token 过期时间。 |
token.file_names | string[] | 服务端分配的文件名。 |
token.path_prefix | string | 上传路径前缀。 |
token.region | string | OSS region。 |
token.callback | object | OSS 回调配置。 |