feat(z01): 서버가 주는 거르기 상자 — 표에 filters 가 오면 찾기 칸 옆에 고르기 상자를 세우고 고른 값만 key=value 로 보냄
- 이름·선택지·줄 수·기본값도, 어느 줄을 거를지 판정도 서버 것(화면은 판정 안 함 · 2026-09-17 브레인) - 안 골랐으면 서버 default 를 보임 — 첫 선택지를 보이면 「전부」로 보이며 걸러진 목록이 뜸 - 고르면 1쪽부터 · 다른 표로 가면 고른 것 비움 · filters 없는 표(산림 등)는 상자 없음 - 화면 확인: 진짜 건설 공종 축 위에 가짜 filters 얹어 기본 「임도가 쓰는 것」 → 「전부」 전환 · 산림 상자 없음 - 시험: 기본값 = 서버 default(첫 선택지 아님) · 고르면 고른 값 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
This commit is contained in:
@@ -134,8 +134,26 @@ export function boldSegments(text: string): { text: string; bold: boolean }[] {
|
||||
.filter((part) => part.text !== "");
|
||||
}
|
||||
|
||||
/**
|
||||
* 서버가 주는 거르기 한 벌(건설품셈 「임도가 쓰는 것」 따위) — 이름·선택지·줄 수·기본값 모두 서버 것.
|
||||
* 어느 줄을 거를지도 서버가 판정함 — 화면은 고른 값을 `key=value` 로 보내기만(2026-09-17 브레인).
|
||||
*/
|
||||
export interface TableFilter {
|
||||
key: string;
|
||||
label: string;
|
||||
options: { value: string; label: string; rows?: number }[];
|
||||
/** 값을 안 보냈을 때 서버가 쓴 선택지 — 화면이 이것을 보여야 보이는 것과 걸린 것이 같음 */
|
||||
default: string;
|
||||
}
|
||||
|
||||
/** 거르기 상자에 보일 값 — 사람이 고른 것 · 안 골랐으면 서버가 이미 건 기본값. */
|
||||
export function filterValue(filter: TableFilter, picked: Record<string, string>): string {
|
||||
return picked[filter.key] ?? filter.default;
|
||||
}
|
||||
|
||||
/** 기초단가 표 머리 — 열 하나에 한 문장이라 표에 한 번만 옴(2026-09-15 브레인 ④). */
|
||||
export interface TableMeta {
|
||||
filters?: TableFilter[];
|
||||
/** 한 표가 모은 원본마다 한 줄 */
|
||||
source?: TableSource[];
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user