Merge remote-tracking branch 'origin/sub_laptop_7' into main_laptop_1
# Conflicts: # B05_Profile/B05_Profile_UI_RouteEdit.ts # ui_template/ui_template_locale_b2.ts
This commit is contained in:
@@ -7,6 +7,7 @@
|
||||
* - `reconcileStaleDesigns`: 낡은 design 일괄 재계산(B05 와 같은 창구)
|
||||
* - `syncBermSpans` : 구조물 목록의 소단을 세션 사본으로 펴기
|
||||
* - `applyPanelToAll` : 표준 횡단면 설정 [전체 반영]
|
||||
* 고친 뒤 계산 묶음 cross 입력도 다시(`pipelineCross` · 노선 초안 동안 카드 = 묶음 새 노선 상세 · 365-2).
|
||||
* ========================================================================== */
|
||||
|
||||
import {
|
||||
@@ -28,6 +29,7 @@ import type { CrossDesignChange, SectionViewController } from "./B06_Section_UI_
|
||||
import type { StructureInstance } from "../B05_Profile/B05_Profile_Api_Structures";
|
||||
import { setCrossDetailHost } from "./B06_Section_UI_Cross_Detail";
|
||||
import { useStructureIds } from "./B06_Section_Station_Keys";
|
||||
import { pipelineCross } from "../A00_Common/design/design_pipeline_page";
|
||||
|
||||
export interface DesignSyncContext {
|
||||
projectId: string | null;
|
||||
@@ -125,6 +127,7 @@ export function createDesignSync(ctx: DesignSyncContext): DesignSyncController {
|
||||
.detail()
|
||||
?.cross_sections.find((section) => Math.abs(section.chainage_m - chainageM) < 0.01)?.design;
|
||||
if (design && design.ground_type !== "soil") void reconcileStaleDesigns({ force: true });
|
||||
else if (projectId) pipelineCross(projectId);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -184,6 +187,7 @@ export function createDesignSync(ctx: DesignSyncContext): DesignSyncController {
|
||||
const detail = error instanceof Error ? ` ${error.message}` : "";
|
||||
showToast(`${L("B06_Design_Failed")}${detail}`, "error");
|
||||
}
|
||||
pipelineCross(projectId); // 세션 고침 · 표준 → 묶음(같은 입력이면 안 셈)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
* 종단 보기도 같은 가게를 듣고 같은 함수를 부름 — 먼저 부른 쪽이 갈아끼우고 다음 쪽은 「같은 목록」.
|
||||
* 노선 초안 동안(346-2 덧 3) 카드 = 묶음 새 노선 상세(`pipelineDetail` · cross 단계 결과) — 새 상세가 오면
|
||||
* 같은 길로 다시 그림 · 초안을 버리면(상세 null) 저장 노선 카드로.
|
||||
* 묶음 차례는 cross 뒤에만 다시 그림(profile 뒤 중간 상세는 안 그림 · 365-4) — 겹친 신호(갈아끼움 · 묶음 · 초안)는
|
||||
* 횡단 보기 다시 읽기가 한 번으로 묶음(`design_view_cross` refreshDetailForStructures · 최신 차례만).
|
||||
* ========================================================================== */
|
||||
|
||||
import { useDesignStore } from "../A00_Common/design/design_store";
|
||||
@@ -42,7 +44,7 @@ export function followSwaps(
|
||||
};
|
||||
}
|
||||
|
||||
/** 묶음 새 노선 상세가 바뀌면(profile · cross 단계 뒤) 부름 — 묶음은 종단 보기가 세우므로 차례 번호가 날 때 붙음. */
|
||||
/** 묶음 새 노선 상세가 바뀌면(cross 단계 뒤) 부름 — 묶음은 페이지가 세우므로 차례 번호가 날 때 붙음. */
|
||||
function followDraftDetail(projectId: string, changed: () => void): () => void {
|
||||
let pipe: DesignPipeline | null = null;
|
||||
let stopPipe = (): void => undefined;
|
||||
@@ -54,8 +56,7 @@ function followDraftDetail(projectId: string, changed: () => void): () => void {
|
||||
pipe = now;
|
||||
stopPipe =
|
||||
now?.subscribe((event) => {
|
||||
if (event.kind !== "stage" || (event.stage !== "profile" && event.stage !== "cross"))
|
||||
return;
|
||||
if (event.kind !== "stage" || event.stage !== "cross") return;
|
||||
const next = pipelineDetail(projectId);
|
||||
if (next === drawn) return;
|
||||
drawn = next;
|
||||
|
||||
Reference in New Issue
Block a user