fix(admin): 转码媒资 id 按字符串传递并处理空态
This commit is contained in:
1 parent
a4893c31a2
commit
fecc3b4817
6 files changed
+82
-13
No files matched your search
@@ -100,3 +100,54 @@ Build successful. Please see dist-dev directory
|
||||
|
||||
解读:组件 props/emits、类型检查、ESLint 和开发构建全部通过;
|
||||
循环 chunk 为项目既有警告。轮询启停、接口路径、分页参数和 locales 文案未改变。
|
||||
|
||||
## 2026-10-22 转码媒资 ID 前端精度修复
|
||||
|
||||
- 分支:`feature/transcode-media-id-fix-ui`
|
||||
- 基线:`develop` / `origin/develop` = `a4893c3`
|
||||
|
||||
已复现 `Number('2113150398670966786')` 变为 `2113150398670966800`。
|
||||
本次将媒资、任务 id 全链路按字符串处理,禁止 Number 转换;没有媒资时
|
||||
禁用重新转码并显示空态。
|
||||
|
||||
```text
|
||||
$ node -e "const id='2113150398670966786'; console.log(String(Number(id)))"
|
||||
2113150398670966800
|
||||
```
|
||||
|
||||
解读:Snowflake id 超过 JS 安全整数,字符串化后的 Number 已失真。
|
||||
|
||||
### 实现
|
||||
|
||||
- `EpisodeTranscodeItem` 的 episodeId/mediaAssetId/taskId,以及 rendition/thumbnail
|
||||
相关 id 类型改为字符串。
|
||||
- 父面板使用 `detail.mediaAssetId` 原始字符串和正则校验,不再 Number 转换。
|
||||
- 手动转码与帧图分页接口原样传递字符串 id。
|
||||
- `mediaAssetId` 为空时按钮保持禁用,空态优先展示后端 errorMsg 原因。
|
||||
|
||||
静态检查确认:
|
||||
|
||||
```text
|
||||
$ rg -n "Number\([^\n]*mediaAssetId|mediaAssetId[^\n]*Number\(" \
|
||||
src/views/contentManagement/upload src/api/admin
|
||||
(无匹配)
|
||||
```
|
||||
|
||||
### 门禁
|
||||
|
||||
```text
|
||||
$ pnpm lint:eslint
|
||||
> eslint --fix --ext .js,.ts,.vue ./src
|
||||
(0 error / 0 warning)
|
||||
|
||||
$ pnpm ts:check
|
||||
> vue-tsc --noEmit --skipLibCheck
|
||||
(通过)
|
||||
|
||||
$ pnpm build:dev
|
||||
WARN Circular chunk: element-plus -> vue-chunks -> element-plus.
|
||||
Build successful. Please see dist-dev directory
|
||||
```
|
||||
|
||||
解读:字符串 id 链路、类型检查、ESLint 与开发构建均通过;
|
||||
循环 chunk 为项目既有警告。
|
||||
Reference in new issue
Block a user