feat(745-1): 고르기 창 미리 고름 점 — 「다른 점」 1위 + 출처 같음만 · 누르기는 사용자 · 낡은 시험 하나 고침
- 서버 후보 묶음(`_grouped`)에 `미리` 칸 — 판정 「다른 점」 1위가 엑셀 인용 조항 = 기초 조항이면 · 「후보」 줄 점 없음 - 고르기 창 후보 줄 앞에 점 + 「미리 고름」 글 · 체크 · 선택은 그대로 비어 있음 - 북부청 표본(임도 · 사방) 다른 점 28 줄 전부 점 · 1위 맞음 28/28 - 시험 — 점 규칙 한 건 추가(test_m02_hopyo_match) · test_m02_precombo_scope 낡음 고침(735 뒤 삭제 확인이 askLibraryDelete 로 바뀜) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -309,7 +309,12 @@ def _grouped(got: dict, line: dict, ctx: Ctx) -> dict:
|
||||
return {**c, "뜻겹침": hm.near(mine, one["words"]), "출처같음": same, "책": book}
|
||||
|
||||
named = [mark(c) for c in hm.name_cands(line, ctx.got)]
|
||||
return {**got, "후보": [mark(c) for c in got.get("후보") or []], "이름후보": named}
|
||||
cands = [mark(c) for c in got.get("후보") or []]
|
||||
# 745-1 미리 고름 점 — 「다른 점」 1위 + 출처 같음 · 누르기는 사용자
|
||||
top = cands[0] if cands else {}
|
||||
if top.get("판정") == "다른 점" and top.get("출처같음"):
|
||||
top["미리"] = True
|
||||
return {**got, "후보": cands, "이름후보": named}
|
||||
|
||||
|
||||
def _ledger_off(entry: dict | None, alias: dict) -> bool:
|
||||
|
||||
@@ -110,6 +110,8 @@ export interface HopyoTarget {
|
||||
/** 묶음 표시(358-1 · 로직 후보만) — 품명 뜻 낱말 겹침 · 엑셀 출처 조항 같음(≥ 0.9) · 책(산림품셈 · 건설품셈) */
|
||||
뜻겹침?: boolean;
|
||||
출처같음?: boolean;
|
||||
/** 745-1 미리 고름 점 — 「다른 점」 1위 + 출처 같음(서버) · 자동 확정 아님 · 만들기는 사용자가 누름 */
|
||||
미리?: boolean;
|
||||
책?: string;
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
* 저장 안 함 — 고른 것은 부르는 쪽 캐시(확인 창)로만 감.
|
||||
* ========================================================================== */
|
||||
|
||||
import { createBadge } from "@ui/ui_template_badge";
|
||||
import { createButton, el } from "@ui/ui_template_elements";
|
||||
import { openModal } from "@ui/ui_template_modal";
|
||||
import type {
|
||||
@@ -30,6 +31,7 @@ const FOLD_TEXT: Record<string, string> = {
|
||||
"지역 변형": "하나 고르면 그 지역 · 「전국」으로 되돌림은 위",
|
||||
숫자: "이름 · 출처 안 닮음 · 숫자 지문만",
|
||||
};
|
||||
const PRE_TIP = "미리 고름 — 엑셀 인용 조항 = 1위 기초 조항 · 누르기는 사용자";
|
||||
const note = (text: string): HTMLElement =>
|
||||
el("span", { className: "ui-text ui-text--muted", text, attrs: { "data-text": "14" } });
|
||||
const num = (v: number): string => String(Math.round(v * 10000) / 10000);
|
||||
@@ -270,8 +272,12 @@ export function openHopyoChoose(opt: ChooseOptions): void {
|
||||
const tag = basisTag(c.근거);
|
||||
return el("div", {
|
||||
className: `m02-hopyo__cand${weakCand(c) ? " is-weak" : ""}`,
|
||||
attrs: { "data-cand": c.로직 ?? c.자재 ?? (c.전국 ? "전국" : "") },
|
||||
attrs: {
|
||||
"data-cand": c.로직 ?? c.자재 ?? (c.전국 ? "전국" : ""),
|
||||
...(c.미리 ? { "data-pre": "" } : {}),
|
||||
},
|
||||
children: [
|
||||
...(c.미리 ? [createBadge(PRE_TIP, "accent", { kind: "dot" })] : []),
|
||||
box,
|
||||
createButton({
|
||||
label: candText(c, twins),
|
||||
@@ -287,6 +293,7 @@ export function openHopyoChoose(opt: ChooseOptions): void {
|
||||
}),
|
||||
]
|
||||
: []),
|
||||
...(c.미리 ? [note("미리 고름")] : []),
|
||||
...(c.글 ? [note(c.글)] : []),
|
||||
...(weakCand(c) ? [note("이름 뜻 안 겹침")] : []),
|
||||
...(tag && c.근거
|
||||
|
||||
Reference in New Issue
Block a user