feat(est): edit review summary in workflow

This commit is contained in:
2026-11-07 10:56:50 +09:00
parent cfe78e2e3b
commit db02fa9994
2 changed files with 24 additions and 1 deletions
+10 -1
View File
@@ -115,7 +115,7 @@ const EstReview = (() => {
({ row }) => editable(row) && (row.Name || row.Code),
);
byId("work-content").innerHTML =
`<div class="business-tools"><b>계약심사</b><button data-review-copy>심사 내역 사본 열기</button><button data-review-clear>심사 입력 초기화</button><span>기존 ${number(output.before)} · 심사 ${number(output.after)} · 차액 ${number(output.after - output.before)}</span></div><p>심사 수량과 비목별 단가를 직접 입력합니다. 고정금액 행은 비목별 금액을 입력합니다. 원래 내역은 유지되며 심사 사본에서 변경됩니다.</p><p class="business-note">${esc(output.errors.join(" / "))}</p><table class="sheet"><thead><tr>${["코드", "품명", "기존 수량", "심사 수량", "노무", "재료", "경비", "실적", "기존 금액", "심사 금액", "차액", "심사 사유", "작업"].map((value) => `<th>${value}</th>`).join("")}</tr></thead><tbody>${rows
`<div class="business-tools"><b>계약심사</b><button data-review-copy>심사 내역 사본 열기</button><button data-review-clear>심사 입력 초기화</button><span>기존 ${number(output.before)} · 심사 ${number(output.after)} · 차액 ${number(output.after - output.before)}</span></div><p>심사 수량과 비목별 단가를 직접 입력합니다. 고정금액 행은 비목별 금액을 입력합니다. 원래 내역은 유지되며 심사 사본에서 변경됩니다.</p><label>주요심사 내용<textarea data-review-summary rows="4" maxlength="100000" style="width:100%">${esc(project.documents?.["173"] || "")}</textarea></label><p class="business-note">${esc(output.errors.join(" / "))}</p><table class="sheet"><thead><tr>${["코드", "품명", "기존 수량", "심사 수량", "노무", "재료", "경비", "실적", "기존 금액", "심사 금액", "차액", "심사 사유", "작업"].map((value) => `<th>${value}</th>`).join("")}</tr></thead><tbody>${rows
.map(({ row, index }) => {
const key = rowKey(row, index),
input = edits[key] || {},
@@ -136,6 +136,15 @@ const EstReview = (() => {
function install() {
document.addEventListener("change", (event) => {
const node = event.target;
if (node.dataset.reviewSummary !== undefined) {
EstApp.change(() => {
const project = EstApp.state.project;
(project.documents ||= {})["173"] = node.value;
if (String(project.printSettings?.form) === "173")
project.printSettings.notes = node.value;
}, false);
return;
}
if (!node.dataset.review) return;
const field = node.dataset.review,
value = field === "Reason" ? node.value : Number(node.value),