Merge remote-tracking branch 'origin/sub_laptop_3' into main_laptop_1

# Conflicts:
#	B09_Estimation/B09_Estimation_UI_Page.css
This commit is contained in:
2026-10-10 13:14:03 +09:00
15 changed files with 1732 additions and 634 deletions
+17 -1
View File
@@ -15,6 +15,7 @@ import { createWorkflowLayout } from "@ui/ui_template_workflow_layout";
import {
createButton,
hideLoadingOverlay,
showConfirmDialog,
showLoadingOverlay,
showToast,
} from "@ui/ui_template_elements";
@@ -298,6 +299,21 @@ export function renderB09Estimation(root: HTMLElement): void {
void run("/estimation/prices", "POST", "단가를 지금 M01 값으로 새로 굳혔습니다."),
});
refresh.dataset.b09Refresh = "";
// 184-3 내역 초기화 — 설계내역서 덮개(user.bill) 지우고 바로 저장 → 기본 로직 내역
const reset = createButton({
label: "내역 초기화",
variant: "ghost",
onClick: () =>
void showConfirmDialog(
"설계내역서에서 고친 칸 · 더한 줄 · 지운 줄 · 차례를 모두 지우고 기본 로직 내역으로 되돌립니다. 바로 저장됩니다.",
"초기화",
).then((ok) => {
if (!ok) return;
const { bill: _bill, ...rest } = user;
void run("/estimation", "PUT", "설계내역서를 초기값으로 되돌렸습니다.", { user: rest });
}),
});
reset.dataset.b09BillReset = "";
const section = document.createElement("section");
section.className = "ui-collapsible ui-sidebar-section ui-sidebar-card";
const heading = document.createElement("h3");
@@ -306,7 +322,7 @@ export function renderB09Estimation(root: HTMLElement): void {
section.append(heading, made, refresh);
const actions = document.createElement("div");
actions.className = "ui-sidebar-actions";
actions.append(save);
actions.append(save, reset);
const left = document.createElement("div");
left.className = "ui-sidebar-panel b09-options";
left.append(section, actions);