Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LLCk2y5xE8YGVgjbTntWsY
10 KiB
10 KiB
조사 A — M02 4차 (10-8 저녁 · 읽기 전용 조사 에이전트)
M02 = M02_MasterTemplete/ · SS = A00_Common/spreadsheet/ · 「추정」 = 코드로 확인 못 한 판단.
1. 일위대가 로직 표: 옵션 줄을 구분 · 이름 · 별칭 병합 칸으로
- 현재 열: [차례(⠿+번호)][구분(+품셈)][이름][별칭 입력][수량산출 2줄][결과 단위][노무비][재료비][경비][계][순서 칸(▲▼ · 옵션|수정 · 삭제)](
Labor_Rows.ts:352-441· 머리:490-499) · 옵션 줄 =[차례 빈칸][옵션 글 colspan=9][순서 칸 빈칸](:40-41SPAN ·:444-460) · CSSLabor.css:160-198(한 줄 말줄임 · 위 줄 아래선 없앰 · hover · 고름 한 덩이 · 고른 줄 왼쪽 띠) · 좁은 칸 grid:313-446(옵션:421-431) · 같은 표 = 상세 · 카드(ItemCards.ts:313-319) · 서고(Labor_RefEdit.ts:94)는Labor_Detail.ts:192-210· 면적 패널 보기Labor_View.ts:91. - 해석(추정): 옵션 줄 높이 그대로 · 옵션 글은 구분 · 이름 · 별칭 3칸만 · 차례 · 수량산출 · 단위 · 금액 넷 · 순서 칸은 위 줄에서 rowspan=2 로 내려와 옵션 줄 자리까지 → 항목마다 약 한 줄 줄어듦.
- 고칠 자리:
Labor_Rows.ts옵션 글 있을 때만 위 줄 칸 일곱 + 순서 칸rowspan:"2"· 옵션 줄은td.m02-labrow__opt colspan=3하나 · SPAN 3 ·Labor.css:176-178 아래선 규칙은 구분 · 이름 · 별칭만 · :184-187 hover 에.m02-labrow__row:has(+ .m02-labrow__optrow:hover)· :195-198 옵션 줄 첫 칸 띠 지움 · :134-136 끌기 아래선을 위 줄 rowspan 칸에도 · 좁은 칸 grid 는 rowspan 무시(그대로). - 재사용: 끌기 묶음은
tr[data-labor-logic]다음 형제들(Labor_RowDrag.ts:36-40· 칸 구조 무관). - 시험:
ui_checks/44-6_일위대가_표.js:7,61(opt.colspan 기대 8 · 코드는 이미 9 → 3) ·ui_checks/45-7_일위대가_표_줄.js:29-61(rowspan 모름 → 고침) · 47-5 ·test_m02_card_shell.py:157·test_m02_labor_rowdrag.py:66-85통과 추정. - 위험: 하위 줄(
:243-296)이 옵션 줄 뒤 → rowspan 2 고정 · 옵션 없는 로직은 rowspan 없음(섞임) · 상세 · 카드 · 서고 · 좁은 칸 · 밝음 · 어두움. - 크기: 작음~중간.
2. 상세 머리 이동 단추: 지금 페이지 숨김 · [다시 열기]와 같은 꼴
- 현재: 머리
[back][title][nav.root][helpSlot][slot][reload][save](UI_Main.ts:156-169) · [다시 열기] =createButton({label:L("M02_Reload"), variant:"ghost"})보통 크기(UI_Main.ts:137· 글ui_template_locale_m2.ts:34) · 이동 단추createDetailNav(DetailNav.ts:33-43)size:"sm"(:35) · 지금 페이지aria-pressed(:50-54) + 강조 CSS(UI_Style.css:245-253) · 보임 조건 = 뒤로 단추(UI_Main.ts:250) · ? =helpParts(CardShell.ts:163-195· :167 ghost sm ·m02-struct__help) 카드 ? 와 공용 · 머리엔UI_Main.ts:251-253. - 고칠 자리:
DetailNav.ts:35size:"sm"지움 · :50-54 →button.hidden = on·UI_Style.css:250-253눌림 규칙 지움 · ? 는 머리에서만 키움(UI_Main.ts:252뒤help.button.classList.remove("ui-btn--sm")· 카드 ? 는 작게). - 시험:
test_m02_detail_nav.py:101-112pressed → hidden · :127 aria-pressed CSS 단정 지움 ·test_m02_structure_panel.py:218-221통과 · ⚠test_m02_layer_screen.py:307-311은 정규식에nav.root가 없어 105-4 뒤 이미 깨짐(같이 고침). - 위험: 단추 커져 좁은 창 머리 줄바꿈 늚 · 크기: 작음.
3. (재요청) 행/열 넣기 · 지우기 뒤 범위 유지 · 「도면으로 보내기 안 됨」
실제 자료(연결표 있는 구조물 전부 · 회사 층 · 프로젝트 사본은 연결표 0)
| 층 · 열 | 연결표 줄 | 이름 있는 줄 | 면적 이름정의 |
|---|---|---|---|
| 시스템 item3_2 / item3_3 / item3_3_2 | 각 1 (E7:J13 / E7:J17 / B2:H8) | 0 | 없음 |
| 개인(회사1 · 사용자10) item1 · item1_2(2장) · item2(s2) · item3 · item3_2 · item3_3 | 각 1 | 0 | 없음 |
| 개인(회사1 · 사용자3) item3_3 | 3 (T2 E7:J17 · T1 E8:I14 · T3 E7:J17) | 2 (T1 · T3) | 도면_T1 · 도면_T3 |
| 개인(회사1 · 사용자3) item3_3_2 | 1 (T1 E7:J13) | 0 | 없음 |
| 13줄 중 이름 있는 줄 2(104 합친 뒤 16:46 |
|||
| 원인(그럴듯한 차례) |
- 옛 연결(이름 없음)은 설계상 적힌 범위로 폴백 — 점선(
links.ts:182-191) · 저장(refresh_drawingM02_Area_Table.py:139-149) · 도면 열 때 비교(checkStaleAreaToDrawing.ts:289-300) 모두 고정 범위 → 행 넣어도 안 따라감 · 이름은 「도면 저장 때 파일에 없던 새 줄」에만(fresh_namesArea_Table.py:47-58) ·withLinks(AreaToDrawing.ts:377-394)는 옛 줄을 이름 없이 다시 적음 → 옛 줄은 영영 이름 없음 · 시험이 못박음(test_m02_area_table.py:303-307) · 사용자3 item3_3 은 T2(이름 없음) · T3(이름 있음)이 같은 범위라 행 넣으면 테두리 둘이 갈라짐. - 셀 삽입/삭제(밀기 · 당기기)는 이름을 안 옮김 — 칸 메뉴 「셀 삽입 ▸」(
spreadsheet_menu_items.ts:200-229) · Ctrl+Shift+= 창(spreadsheet_actions_run.ts:33-44)이 칸 명령(spreadsheet_insert_dialog.ts:54-101) — 알약만 옮기고(104-2) 이름 · 병합 · 식 참조 · 조건부서식 제자리 · 잘라 붙이기(spreadsheet_commands.ts:365-421)도 이름 · 알약 안 옮김. - 놓고 도면 [저장] 안 하면 연결 · 이름 안 생김(112 의도
Store.py:174-191· 사용자에겐 「보내기 안 됨」으로 보일 수 있음 · 추정). - 카드 도면 저장은
withLinks를 안 거침(DrawingCard.ts:133-138) → 카드에서 표를 지워도 연결표 줄이 남아 점선 계속. - 알약 모듈 늦게 로드 전 행 넣으면 알약 안 옮겨짐(
spreadsheet.ts:169-181,198-205· 드묾).
- 행열 통째 길은 문제없음(머리 우클릭 · 「행/열 삽입 ▸」 · 통째 고른 단축키 →
insertDeletespreadsheet_commands.ts:259-359·applyLinkedlinks.ts:131-145— 칸 · 식 · 메모 · 병합 · 이름 · 조건부/유효성 · 알약 모두). - 개인 · 회사 층 길 끊긴 곳 없음(보내기 owner
AreaToDrawing.ts:101-104· 저장owned()Api_Fetch.ts:74-84→_store_saveRouter_Layers.py:341-347,393-399· 프로젝트 층은 보내기 단추 없음AreaToDrawing.ts:340) · Node 번들 17:38:48 새로 만들어짐. - 참고(추정): 시스템 item3_3 알약 7개(G8
G20)가 74ab07bc9(사용자 화면 저장)에서 통째로 빠짐 · 칸 값 그대로 · 일위대가 수량 「칸」→「없음」 · 행열 길로는 안 생기는 꼴 · 일위대가 로직을 바꾼 뒤 고아 알약을 [×] · [연결 모두 해제]로 푼 것으로 보임. 고칠 자리: 원인 1(권장) — 면적 상세 열 때 화면이 이름 없는 표시범위마다중간 · 원인 4 작음.도면_{연결}이름정의를 책에 넣고 그 이름으로 점선(UI_Main.ts:298-305·sentRanges가연결도 넘김) · 고침 표시 안 켬 · 면적 [저장] 때 서버refresh_drawing이 책에 그 이름이 있으면 줄에이름적음(112 「저장 때 기록」 그대로) ·test_m02_area_table.py:303-307뒤집음 · 대안define_names(Area_Table.py:61-88)로 모든 층 한 번에 굳히는 도구 / 원인 2 —insert_dialog.tsdispatchShift(:84-101)에서 이름정의도shiftLinks(:57-82) 규칙으로 / 원인 4 — 카드 저장에서도 표 없는 연결표 줄 뺌(withLinks몸 재사용). 위험: 행 넣고 이미 저장한 옛 연결은 적힌 범위가 벌써 어긋났을 수 있음 → 굳히기 전 사용자가 점선 확인. 재현: 사용자3 item3_3 면적 → 6행 「위에 1행 삽입」 → T3 점선 E8:J18 · T2 E7:J17 그대로 → [저장] → 도면 T2 표 첫 줄 빔 · 끝 줄 빠짐 / T3 범위 안 「셀 삽입 ▸ 아래로 밀기」 → 값만 내려가고 T3 점선 그대로. 크기: 원인 1 중간 · 원인 2 작음
4. 면적 상세 「도면 연결」: 연결 여부 보이고 지우기
- 현재(「도면 연결」 = 시트 위 보낸 범위 표시로 추정): 점선 테두리 + 왼쪽 위 이름표
ss-link-range__tag「T1 도면」(links.ts:489-534· CSSspreadsheet_links.css:255-285— 10px 글 · 위만 둥근 네모라 라벨처럼) · 자료 = 같은 열 도면 연결표(sentRangesAreaToDrawing.ts:145-163· 글:85-86) · 누르면 범위 고름 + 테두리 강조(:508-514) · 지우기는 숨어 있음(우클릭 [보내기 취소]:515-531= 112 길 · 저장 때apply_cancels·refresh_drawing(unlink)Area_Table.py:91-109,118-138) · 안 보이는 것: 도면에 그 표가 실제로 있나(연결표 줄만 봄) · 값이 맞나(도면 상세 열 때checkStale알림에서만) · 아래 알약 막대(renderBarlinks.ts:360-412)엔 일위대가 알약만. - 고칠 자리:
sentRanges— 이미 읽는 구조물 문서로 「표 있음」(sheetsOf·isTable·linkOf:124-134) · 값 맞음 — 지금 책으로areaTable(spreadsheet_area_table.ts:55) →sameValues(:136)(112-1AreaDrawing.ts:117-128꼴) ·links.ts표시범위에상태(:64-71) ·renderBar에 도면 알약(글 「T1 도면 E7:J17」+ 상태 · 색 = 테두리 · × =mark.취소· 누르면 범위 고름). - 재사용:
pill()(links.ts:256-338) +.ss-link·.is-linked·.ss-link__x(spreadsheet_links.css:13-60,231-246) · 상태createTag(label, variant)(ui_template_elements.ts:217·ui-tag--success|warning|danger) · 취소 112cancel·withCancels(AreaToDrawing.ts:326-331). - 위험: 옛 연결은 값 비교도 고정 범위(3 원인 1 먼저) · 값 비교 150ms 모음 · 시험
test_m02_area_marks.py:32-35·test_m02_area_to_drawing.py·ui_checks/50-1_*.js. - 크기: 중간.
미결 (조사 에이전트 제시)
- (1) 해석 — 옵션 글은 구분 · 이름 · 별칭 병합 칸 · 오른쪽 칸은 위 줄과 두 줄 병합 · 차례 칸도 두 줄 병합.
- (2) 카드 ? 도 키울지.
- (3) 옛 연결 굳히기: 면적 열 때 화면 + 저장 때 서버(권장) vs 한 번 도구 · 이미 어긋난 옛 연결은 다시 보낼지.
- (3) 셀 밀기 · 당기기 · 잘라 붙이기에도 보낸 범위 · 병합 · 조건부서식이 따라가야 하는지.
- (3) 시스템 item3_3 알약 7개 빠짐이 의도였는지.
- (4) 「도면 연결」 = 「T1 도면」 이름표가 맞는지 · 아래 알약 막대로 옮기고 이름표 지울지 · 「도면에 없음」 줄 자동 정리.