feat(B02): 프로젝트 등록에서 회사 로고 칸 제거
프로젝트가 이미 회사에 매여 있어 따로 고를 이유가 없음 — 도면 표제란은 `COALESCE(프로젝트 로고, 회사 로고)` 로 조회하므로 회사 로고가 그대로 쓰임. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -20,13 +20,7 @@ import {
|
||||
showToast,
|
||||
} from "@ui/ui_template_elements";
|
||||
import { isBlank } from "@util/common_util_validate";
|
||||
import {
|
||||
fetchCompanyAssets,
|
||||
fetchCompanyMembers,
|
||||
fetchDashboardMe,
|
||||
fetchUserCompany,
|
||||
} from "../B01_Dashboard/B01_Dashboard_Api_Fetch";
|
||||
import { createAssetField } from "../B01_Dashboard/B01_Dashboard_UI_AssetPicker";
|
||||
import { fetchCompanyMembers, fetchDashboardMe } from "../B01_Dashboard/B01_Dashboard_Api_Fetch";
|
||||
import { navigateTo } from "../A00_Common/router";
|
||||
import { API_BASE_URL, CURRENT_PROJECT_ID_KEY, ROUTES } from "@config/config_frontend";
|
||||
import "./B02_ProjRegister_UI_Style.css";
|
||||
@@ -119,19 +113,12 @@ export function renderB02ProjRegister(root: HTMLElement): void {
|
||||
const fieldLeadField = person("분야별책임자 (도면 표제란)");
|
||||
const designerField = person("설계자 (도면 표제란)");
|
||||
const personSelects = [pmField.select, fieldLeadField.select, designerField.select];
|
||||
// 로고 칸은 회사 자산을 받아야 세울 수 있어 자리만 먼저 잡는다.
|
||||
const logoSlot = document.createElement("div");
|
||||
let logoValue: () => number | null = () => null;
|
||||
// 로고 칸은 두지 않는다 (2026-09-06 사용자 지시) — 프로젝트가 이미 회사에 매여 있어
|
||||
// 도면은 회사 로고를 그대로 쓴다(표제란 조회가 `COALESCE(프로젝트, 회사)`).
|
||||
|
||||
void (async () => {
|
||||
const [me, company] = await Promise.all([
|
||||
fetchDashboardMe(),
|
||||
fetchUserCompany().catch(() => null),
|
||||
]);
|
||||
const [members, assets] = await Promise.all([
|
||||
fetchCompanyMembers().catch(() => []),
|
||||
fetchCompanyAssets().catch(() => []),
|
||||
]);
|
||||
const me = await fetchDashboardMe();
|
||||
const members = await fetchCompanyMembers().catch(() => []);
|
||||
const memberText = (member: (typeof members)[number]) =>
|
||||
member.position ? `${member.name} (${member.position})` : member.name;
|
||||
const addOption = (select: HTMLSelectElement, value: string, text: string) => {
|
||||
@@ -146,19 +133,6 @@ export function renderB02ProjRegister(root: HTMLElement): void {
|
||||
// 「신규 등록…」은 없앴다 — 팀원으로 등록한 뒤 고른다.
|
||||
if (members.some((member) => member.id === me.id)) select.value = String(me.id);
|
||||
}
|
||||
if (company) {
|
||||
// 회사 대표 로고가 기본값 — 프로젝트마다 다른 로고를 쓰면 여기서 바꾼다.
|
||||
const logo = createAssetField(
|
||||
"회사 로고 (도면 표제란)",
|
||||
"LOGO",
|
||||
assets,
|
||||
company.logo_asset_id ?? null,
|
||||
company.id,
|
||||
me,
|
||||
);
|
||||
logoValue = logo.value;
|
||||
logoSlot.append(logo.root);
|
||||
}
|
||||
})();
|
||||
|
||||
const roadTypeText = (): string =>
|
||||
@@ -309,7 +283,6 @@ export function renderB02ProjRegister(root: HTMLElement): void {
|
||||
pm_user_id: idOrNull(pmField.select),
|
||||
field_lead_user_id: idOrNull(fieldLeadField.select),
|
||||
designer_user_id: idOrNull(designerField.select),
|
||||
logo_asset_id: logoValue(),
|
||||
}),
|
||||
});
|
||||
|
||||
@@ -352,7 +325,6 @@ export function renderB02ProjRegister(root: HTMLElement): void {
|
||||
pmField.root,
|
||||
fieldLeadField.root,
|
||||
designerField.root,
|
||||
logoSlot,
|
||||
);
|
||||
|
||||
const actions = document.createElement("div");
|
||||
|
||||
Reference in New Issue
Block a user