- 왼쪽 줄 쌓기(항목 · 줄 일곱 종류 · 공식 틀 셋 · 식으로 풀기 · 틀로 저장 · 표에서 고르기 · 끌어 순서) · 오른쪽 경쟁사 꼴 산출근거(분수 기호식 = 값식 = 결과 · 소계 · 합계) · 아래 비목 상자 · 엑셀 글 붙여넣기 · 저장 = localStorage - 견본 셋 금액 = 거창 파일 원 단위(5,323 · 52,796 · 94,215 비목 넷) · 확인 = node tools/line-stack-test/check.mjs - 접근 = main.py 정적 마운트 /tools/line-stack-test · vite 프록시 한 줄(개발 포트에서 열림) · M01 왼쪽 패널 맨 아래 「시험: 줄 쌓기」 새 탭 - 라이브러리 0(분수 = CSS) · 지우기 = 폴더 + 표시 주석 셋 덩이 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
222 lines
7.2 KiB
JavaScript
222 lines
7.2 KiB
JavaScript
// 줄 쌓기 단가산출 시험 — 견본 자원 · 공식 틀 · 견본 표 · 견본 단가산출(거창 산불 출력 「단가산출」 시트 1 · 41 · 15 번)
|
||
|
||
export const LABOR = [
|
||
{ name: "보통인부", price: 172068 },
|
||
{ name: "형틀목공", price: 275790 },
|
||
{ name: "석공", price: 268908 },
|
||
];
|
||
|
||
export const MATERIAL = [
|
||
{ name: "합판(내수),대전 (12t×1220×2440mm)", price: 11455 },
|
||
{ name: "외송각재,대전 (30×30×3600mm)", price: 586824 },
|
||
{ name: "치즐(0.7㎥)", price: 223000 },
|
||
];
|
||
|
||
/** 기계 = 시간당 기계경비 노무 · 재료 · 경비 */
|
||
export const MACHINE = [
|
||
{ name: "굴삭기(무한궤도) (0.7㎥)", l: 59020, m: 19473, e: 24554 },
|
||
{ name: "굴삭기(무한궤도) (0.6㎥+부착용집게)", l: 59020, m: 16280, e: 29209 },
|
||
{ name: "덤프트럭 (15Ton)", l: 59020, m: 30192, e: 20659 },
|
||
];
|
||
|
||
/** 다른 단가산출 = 그 단산의 노무 · 재료 · 경비 */
|
||
export const SANGEUN = [
|
||
{ no: 13, name: "뒷채움돌 기초잡석 채집운반(Φ150m/m) [㎡]", l: 9889, m: 2262, e: 3858 },
|
||
{ no: 28, name: "기초다짐및뒷채움(소형장비사용) [㎥]", l: 11206, m: 1077, e: 1259 },
|
||
{ no: 1, name: "측구터파기(토사) [㎥]", l: 3442, m: 832, e: 1049 },
|
||
];
|
||
|
||
const row = (n, x, u = "", d) => (d === undefined ? { n, x, u } : { n, x, u, d });
|
||
|
||
/** 공식 틀 — 「이름 = 값」 · 「이름 = 식」 줄 묶음 */
|
||
export const TEMPLATES = [
|
||
{
|
||
id: "excavator",
|
||
name: "굴삭기 Q (품셈 8-2-3)",
|
||
rows: [
|
||
row("q", "0.7", "㎥"),
|
||
row("K", "0.55"),
|
||
row("f", "1 / 1.325"),
|
||
row("E", "0.45"),
|
||
row("Cm", "20", "sec ( 135 ˚ )"),
|
||
row("Q", "3600 × q × K × f × E / Cm", "㎥ / hr"),
|
||
],
|
||
},
|
||
{
|
||
id: "dump",
|
||
name: "덤프 Q (q · K 는 위 굴삭기 것)",
|
||
rows: [
|
||
row("L", "0.1", "km"),
|
||
row("V1", "7", "km / hr"),
|
||
row("V2", "8", "km / hr"),
|
||
row("T", "15", "ton"),
|
||
row("rt", "1.9", "ton / ㎥"),
|
||
row("E", "0.9"),
|
||
row("qt", "T ÷ rt", "㎥"),
|
||
row("f", "0.89"),
|
||
row("Cms", "22"),
|
||
row("Es", "0.35"),
|
||
row("n", "qt / (q × K)"),
|
||
row("t1", "Cms × n / (60 × Es)"),
|
||
row("t2", "(L / V1 + L / V2) × 60", "분 ( 왕복 )"),
|
||
row("t3", "1.1", "분 ( 적하 )"),
|
||
row("t4", "0.7", "분 ( 대기 )"),
|
||
row("Cm", "t1 + t2 + t3 + t4", "분"),
|
||
row("QH", "(Cm - t1) / Cm"),
|
||
row("Q", "60 × qt × f × E / Cm", "㎥ / hr"),
|
||
],
|
||
},
|
||
{ id: "directQ", name: "직접 Q", rows: [row("Q", "0.35")] },
|
||
];
|
||
|
||
/** 견본 표 하나 — [표에서 고르기] (표준품셈 8-2-3 굴착기 2. 작업효율 E) */
|
||
export const TABLE_E = {
|
||
title: "굴착기 작업효율 E (표준품셈 8-2-3)",
|
||
head: ["토질", "자연 양호", "자연 보통", "자연 불량", "흐트 양호", "흐트 보통", "흐트 불량"],
|
||
rows: [
|
||
["모래, 사질토", 0.85, 0.7, 0.55, 0.9, 0.75, 0.6],
|
||
["자갈섞인 흙, 점성토", 0.75, 0.6, 0.45, 0.8, 0.65, 0.5],
|
||
["파쇄암", null, null, null, null, 0.45, 0.35],
|
||
],
|
||
};
|
||
|
||
const op = (o, v, u = "") => ({ op: o, v, u });
|
||
const tplRows = (id) => structuredClone(TEMPLATES.find((t) => t.id === id).rows);
|
||
|
||
export const SAMPLES = [
|
||
{
|
||
key: "s1",
|
||
label: "① 측구터파기(토사)",
|
||
expect: { l: 3442, m: 832, e: 1049, sum: 5323 },
|
||
doc: {
|
||
name: "측구터파기(토사)",
|
||
unit: "㎥",
|
||
items: [
|
||
{
|
||
title: "기 계 ( 100 % ) : 굴삭기(무한궤도) (0.7㎥)",
|
||
lines: [
|
||
{ k: "formula", tpl: "excavator", rows: tplRows("excavator") },
|
||
{ k: "mach", res: { ...MACHINE[0] }, ops: [op("÷", "Q")] },
|
||
],
|
||
},
|
||
{
|
||
title: "보조인부 ( 1 일당 1 인 )",
|
||
lines: [{ k: "labor", res: { ...LABOR[0] }, ops: [op("÷", "8"), op("÷", "Q")] }],
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
key: "s41",
|
||
label: "② 합판거푸집(4회)",
|
||
expect: { l: 38290, m: 14506, e: 0, sum: 52796 },
|
||
doc: {
|
||
name: "합판거푸집(4회)",
|
||
unit: "㎡",
|
||
items: [
|
||
{
|
||
title: "",
|
||
lines: [
|
||
{ k: "text", text: "< 토목품셈 6-3-1 합판거푸집(2022개정) >" },
|
||
{ k: "text", text: "※ 사용횟수 4 회 : 보통" },
|
||
],
|
||
},
|
||
{
|
||
title: "재료비",
|
||
lines: [
|
||
{
|
||
k: "mat",
|
||
col: "m",
|
||
res: { ...MATERIAL[0] },
|
||
ops: [op("×", "1.03", "㎡"), op("×", "38", "%")],
|
||
},
|
||
{
|
||
k: "mat",
|
||
col: "m",
|
||
res: { ...MATERIAL[1] },
|
||
ops: [op("×", "0.038", "㎥"), op("×", "38", "%")],
|
||
},
|
||
{
|
||
k: "rate",
|
||
name: "소모자재 ( 박리재등 )",
|
||
of: "주자재비",
|
||
baseName: "주자재",
|
||
baseCol: "m",
|
||
scope: "item",
|
||
rate: "9",
|
||
col: "m",
|
||
},
|
||
],
|
||
},
|
||
{
|
||
title: "인건비 ( 24 년 품셈 개정 )",
|
||
lines: [
|
||
{ k: "labor", res: { ...LABOR[1] }, ops: [op("×", "5", "인"), op("/", "45", "㎡")] },
|
||
{ k: "labor", res: { ...LABOR[0] }, ops: [op("×", "2", "인"), op("/", "45", "㎡")] },
|
||
{
|
||
k: "rate",
|
||
name: "공구손료 및 경장비 기계경비",
|
||
of: "노무비",
|
||
baseName: "인부",
|
||
baseCol: "l",
|
||
scope: "item",
|
||
rate: "1",
|
||
col: "m",
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
key: "s15",
|
||
label: "③ 전석 메쌓기",
|
||
expect: { l: 74880, m: 7029, e: 12306, sum: 94215 },
|
||
doc: {
|
||
name: "전석 메쌓기",
|
||
unit: "㎡",
|
||
items: [
|
||
{ title: "전석 구입운반 : 별산", lines: [] },
|
||
{
|
||
title: "뒷채움돌 운반 및 채집 : 뒷채움돌기초잡석채집운반 (Φ150m/m) [㎡] * 단산 13 참조 *",
|
||
lines: [
|
||
{ k: "formula", tpl: "directQ", rows: [row("Q", "0.35")] },
|
||
{ k: "ref", res: { ...SANGEUN[0] }, ops: [op("×", "Q")] },
|
||
],
|
||
},
|
||
{
|
||
title: "뒤채움돌 다짐 기초다짐및뒷채움 (소형장비사용) [㎥] * 단산 28 참조 *",
|
||
lines: [
|
||
{ k: "formula", tpl: "directQ", rows: [row("Q", "0.35")] },
|
||
{ k: "ref", res: { ...SANGEUN[1] }, ops: [op("×", "Q")] },
|
||
],
|
||
},
|
||
{
|
||
title: "전석쌓기 기계: 굴삭기(무한궤도) (0.6㎥+부착용집게)",
|
||
lines: [
|
||
{ k: "formula", tpl: "directQ", rows: [row("Q", "0.36", "㎥ / hr")] },
|
||
{ k: "mach", res: { ...MACHINE[1] }, ops: [op("×", "Q")] },
|
||
],
|
||
},
|
||
{
|
||
title: "전석쌓기 인부",
|
||
lines: [
|
||
{ k: "labor", res: { ...LABOR[2] }, ops: [op("×", "0.14", "인")] },
|
||
{ k: "labor", res: { ...LABOR[0] }, ops: [op("×", "0.05", "인")] },
|
||
],
|
||
},
|
||
],
|
||
},
|
||
},
|
||
{
|
||
key: "new",
|
||
label: "④ 새 공식",
|
||
expect: null,
|
||
doc: {
|
||
name: "새 단가산출",
|
||
unit: "",
|
||
items: [{ title: "", lines: [{ k: "formula", tpl: null, rows: [row("", "")] }] }],
|
||
},
|
||
},
|
||
];
|