fix(paperjs): fix scale bug

This commit is contained in:
2026-03-04 10:36:24 +08:00
parent 448a64df3b
commit 19010c4b41
3 changed files with 325 additions and 140 deletions

View File

@@ -72,6 +72,8 @@ type Action =
const initialState: LabelState = new Map()
const operationTypeList = [101, 102, 103, 104]
let latestProjectDetailRequestSeq = 0
let latestTaskDetailRequestSeq = 0
// utils
const getRectPoints = ([sx, sy, w, h]: number[]) => {
@@ -200,8 +202,17 @@ const LabelPage = ({
const asyncGetProjectDetail = useCallback(async () => {
if (projectId) {
const requestSeq = ++latestProjectDetailRequestSeq
try {
const res = await getProjectDetail(projectId)
if (requestSeq !== latestProjectDetailRequestSeq) {
console.warn("[LabelNossr] ignore stale project detail response", {
projectId,
requestSeq,
latestRequestSeq: latestProjectDetailRequestSeq,
})
return
}
setProjectDetail(res)
let operations: Project.LabelSchemaList[] = []
let textOperations: Project.LabelSchemaList[] = []
@@ -362,6 +373,7 @@ const LabelPage = ({
const asyncGetTaskDetail = useCallback(async () => {
if (taskId) {
const requestSeq = ++latestTaskDetailRequestSeq
try {
usePaperStore.getState().setLoadingData(true)
// 获取当前任务全量数据
@@ -371,8 +383,24 @@ const LabelPage = ({
page_number: 1,
page_size: 1,
})
if (requestSeq !== latestTaskDetailRequestSeq) {
console.warn("[LabelNossr] ignore stale task list response", {
taskId,
requestSeq,
latestRequestSeq: latestTaskDetailRequestSeq,
})
return
}
let detail = res.task_list[0]
detail = await normalizeVideoTaskData(detail)
if (requestSeq !== latestTaskDetailRequestSeq) {
console.warn("[LabelNossr] ignore stale normalized task response", {
taskId,
requestSeq,
latestRequestSeq: latestTaskDetailRequestSeq,
})
return
}
setTaskDetail(detail)
// 帧列表
useBottomToolsStore
@@ -383,6 +411,14 @@ const LabelPage = ({
let turn1time = 1
let turn2time = 1
const flowRes = await getTaskWorkFlow(taskId)
if (requestSeq !== latestTaskDetailRequestSeq) {
console.warn("[LabelNossr] ignore stale workflow response", {
taskId,
requestSeq,
latestRequestSeq: latestTaskDetailRequestSeq,
})
return
}
flowRes.forEach((item) => {
if (item.task_status_src !== 4 && item.task_status_dst === 4) {
flowCommentArr.push({
@@ -424,6 +460,14 @@ const LabelPage = ({
})
// 获取并处理当前任务标注结果数据
const dataRes = await getLabelResult(taskId)
if (requestSeq !== latestTaskDetailRequestSeq) {
console.warn("[LabelNossr] ignore stale label result response", {
taskId,
requestSeq,
latestRequestSeq: latestTaskDetailRequestSeq,
})
return
}
const { results } = dataRes
const resultImageEntries = results.flatMap((item) =>
expandLabelResultImages(item)
@@ -714,6 +758,7 @@ const LabelPage = ({
useDescToolsStore.getState().updateFlag(true)
useRightToolsStore.getState().setPathGroupMap(pathGroupData)
} catch (err) {
if (requestSeq !== latestTaskDetailRequestSeq) return
console.log(err)
setOldWorkLoad(null)
setTaskDetail(undefined)
@@ -729,7 +774,9 @@ const LabelPage = ({
})
}
} finally {
usePaperStore.getState().setLoadingData(false)
if (requestSeq === latestTaskDetailRequestSeq) {
usePaperStore.getState().setLoadingData(false)
}
}
}
}, [