feat(z01): 열 제목 눌러 차례 — 누르기 전엔 표시 없음(원본 차례) · 오름→내림→원본 · 세우기는 서버 몫(sort·desc 보냄 · 서버가 거절하면 누른 표시 지움) · 제목은 서버가 준 sortable 열만 눌림(눌렀는데 그대로인 화면 막음)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016VBGFXB9AbJBwXP19z75Qq
This commit is contained in:
2026-09-16 10:59:36 +09:00
co-authored by Claude Opus 5
parent d4aa466b60
commit 3a61d4c158
5 changed files with 79 additions and 4 deletions
+8 -1
View File
@@ -6,7 +6,7 @@
* ========================================================================== */
import { API_BASE_URL } from "@config/config_frontend";
import type { MasterColumn, OverrideState, TableMeta } from "./Z01_MasterData_UI_Cells";
import type { MasterColumn, OverrideState, SortOrder, TableMeta } from "./Z01_MasterData_UI_Cells";
export interface MasterTable {
id: string;
@@ -43,6 +43,8 @@ export interface RowsQuery {
page: number;
size: number;
q: string;
/** 열 제목을 눌렀을 때만 — 없으면 서버가 원본 차례로 줌 */
sort?: SortOrder | null;
}
/** 기초단가 다섯 — 고친 값은 원본이 아니라 덮개 파일에 쌓임(품셈이 갱신돼도 안 날아감). */
@@ -68,6 +70,11 @@ const pageParams = (query: RowsQuery): Record<string, string> => ({
export function fetchBasePrices(kind: BasePriceKind, query: RowsQuery): Promise<MasterRows> {
const params = new URLSearchParams(pageParams(query));
// 안 누르면 sort 를 안 보냄 — 서버가 원본 차례로 줌(요율·기계는 차례가 뜻을 담음).
if (query.sort) {
params.set("sort", query.sort.key);
params.set("desc", query.sort.desc ? "1" : "0");
}
return request<MasterRows>(`/master-data/base-prices/${kind}?${params}`);
}