diff --git a/labels/EOT标注/工作数据/eot_labels.csv b/labels/EOT标注/工作数据/eot_labels.csv index e6398bc..06ac8c2 100644 --- a/labels/EOT标注/工作数据/eot_labels.csv +++ b/labels/EOT标注/工作数据/eot_labels.csv @@ -21,7 +21,7 @@ a266b9ef-5e47-4434-a04c-ce4eacd52c19,51080,迈腾2023款330豪华版2.0T。出 a266b9ef-5e47-4434-a04c-ce4eacd52c19,68313,轮胎质量问题规律,排水槽横向竖向龟裂。,0,low,mid_turn_pause,xlsx_draft cb3238dc-3946-42a5-aad8-9b9a54226363,13540,辽宁葫芦岛。,1,low,completed_answer,xlsx_draft cb3238dc-3946-42a5-aad8-9b9a54226363,27520,投诉建议。,1,low,completed_answer,xlsx_draft -cb3238dc-3946-42a5-aad8-9b9a54226363,60790,我的轮胎行驶28000公里。,0,low,unfinished_expression,xlsx_draft +cb3238dc-3946-42a5-aad8-9b9a54226363,60790,我的轮胎行驶28000,0,low,unfinished_expression,xlsx_draft cb3238dc-3946-42a5-aad8-9b9a54226363,70745,轮胎开裂,0,low,mid_turn_pause,xlsx_draft e304f740-85d4-427e-9fd6-c5474e9cd737,18842,苏州昆山。,1,low,completed_answer,xlsx_draft e304f740-85d4-427e-9fd6-c5474e9cd737,29619,投诉。,1,low,completed_answer,xlsx_draft @@ -30,7 +30,7 @@ e304f740-85d4-427e-9fd6-c5474e9cd737,54600,24年11月份购买的帕萨特,150 e304f740-85d4-427e-9fd6-c5474e9cd737,65819,四条轮胎,最近我在。,0,low,unfinished_expression,xlsx_draft 872a1e67-873a-4c49-a598-b38a670afcad,47187,帕萨特L2025款 ,0,,mid_turn_pause, 872a1e67-873a-4c49-a598-b38a670afcad,52326,我的轮胎开裂了。,0,,mid_turn_pause, -40ae686c-8196-4d7b-b7ad-3e12a427ebb6,48348,爱车型号是大众帕萨特,购车时间2023年10月份,0,,mid_turn_pause, +40ae686c-8196-4d7b-b7ad-3e12a427ebb6,48536,爱车型号是大众帕萨特,购车时间2023年10月份,0,,mid_turn_pause, 872a1e67-873a-4c49-a598-b38a670afcad,44810,帕萨特,0,,mid_turn_pause, 872a1e67-873a-4c49-a598-b38a670afcad,49500,帕萨特L2025款2025年3月购车,1,,completed_turn, 872a1e67-873a-4c49-a598-b38a670afcad,54318,行驶里程29000公里。,1,,completed_turn, diff --git a/labels/eot-studio/app/globals.css b/labels/eot-studio/app/globals.css index edf1eee..9e2235a 100644 --- a/labels/eot-studio/app/globals.css +++ b/labels/eot-studio/app/globals.css @@ -293,6 +293,18 @@ kbd { min-width: 17px; padding: 0 4px; border: 1px solid #dce5ce; border-bottom- .player-secondary { gap: 7px; } } +/* Desktop panes scroll independently: the left call list, the middle + workspace and the right editor each keep their own scrollbar. */ +@media (min-width: 901px) { + .app-shell { height: 100vh; height: 100dvh; display: flex; flex-direction: column; overflow: hidden; } + .workspace-grid { flex: 1; min-height: 0; } + .sidebar { min-height: 0; overflow: hidden; } + .call-list { flex: 1; min-height: 0; overflow-y: auto; margin-bottom: 14px; scrollbar-width: thin; scrollbar-color: #d3ddc6 transparent; } + .main-workspace { min-height: 0; overflow-y: auto; } + .annotation-sidebar { min-height: 0; overflow: hidden; } + .editor-body, .empty-editor { flex: 1; min-height: 0; overflow-y: auto; } +} + @media (max-width: 1020px) { .workspace-grid { grid-template-columns: 210px minmax(0, 1fr); } .sidebar { grid-row: span 2; } diff --git a/labels/eot-studio/app/workbench.tsx b/labels/eot-studio/app/workbench.tsx index 87703af..4d3e16d 100644 --- a/labels/eot-studio/app/workbench.tsx +++ b/labels/eot-studio/app/workbench.tsx @@ -69,6 +69,7 @@ export default function Workbench() { const objectUrls = useRef(new Set()); const versionRef = useRef(0); const originalGroupsRef = useRef(new Map()); + const callListRef = useRef(null); const notify = useCallback((message: string, kind: Notice["kind"] = "success") => setNotice({ message, kind }), []); const commit = useCallback((next: Dataset | ((current: Dataset) => Dataset)) => { @@ -109,6 +110,7 @@ export default function Workbench() { finally { setLoading(false); } }, [notify]); useEffect(() => { void loadWorkspace(); }, [loadWorkspace]); + useEffect(() => { callListRef.current?.querySelector(".call-item.selected")?.scrollIntoView({ block: "nearest" }); }, [callId]); useEffect(() => { if (!initialized || !dirty) return; const timer = setTimeout(() => { try { localStorage.setItem(DRAFT_KEY, JSON.stringify({ transcripts, annotations, updatedAt: Date.now() })); } catch { notify("浏览器草稿空间不足,请保存到项目或导出 CSV", "error"); } }, 350); @@ -350,7 +352,7 @@ export default function Workbench() {
diff --git a/labels/eot-studio/package-lock.json b/labels/eot-studio/package-lock.json index ae945c8..ad2ee5f 100644 --- a/labels/eot-studio/package-lock.json +++ b/labels/eot-studio/package-lock.json @@ -141,9 +141,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -160,9 +157,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -179,9 +173,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -198,9 +189,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -217,9 +205,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -236,9 +221,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -255,9 +237,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -274,9 +253,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "LGPL-3.0-or-later", "optional": true, "os": [ @@ -293,9 +269,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -318,9 +291,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -343,9 +313,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -368,9 +335,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -393,9 +357,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -418,9 +379,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -443,9 +401,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -468,9 +423,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "Apache-2.0", "optional": true, "os": [ @@ -623,9 +575,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -642,9 +591,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -661,9 +607,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -680,9 +623,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -749,6 +689,7 @@ "integrity": "sha512-N0rFCuH9YoxG9/m61l9MfpJKfmLOVU0em7ipIz6TRgSSkvReLB9vL85GB+yr8Bs5leqpvg96JSwF4ZS1s4viQg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -928,6 +869,7 @@ "resolved": "https://registry.npmjs.org/react/-/react-19.3.0.tgz", "integrity": "sha512-E8LUcbtBWt20bbl2YoHfx4ZDBdxVTfOKtCZn9cDSJ4l6/nuoApcpIBcj47t2wZoVX8g2ZHuMHbiShgCR1T5Sog==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -937,6 +879,7 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.3.0.tgz", "integrity": "sha512-JDk8dgif51OjFoDE70+OT9ICyYr+69HlmihNwp1+Nsfbna3t5sIiCa9ZJktDmQ4/1b/rn26hIAR2uYXDMr5r0Q==", "license": "MIT", + "peer": true, "dependencies": { "scheduler": "^0.28.0" }, diff --git a/presentations/实时语音话轮检测改造计划_20261008-20261115.docx b/presentations/实时语音话轮检测改造计划_20261008-20261115.docx new file mode 100644 index 0000000..9ee78d3 Binary files /dev/null and b/presentations/实时语音话轮检测改造计划_20261008-20261115.docx differ