From 93042d189d0c817dda671210c932adefe9b33f22 Mon Sep 17 00:00:00 2001 From: hskwon Date: Tue, 12 Aug 2025 13:20:31 +0900 Subject: [PATCH] =?UTF-8?q?fix=20:=20Front=20Page=20[Ver=200.1]=20-=20?= =?UTF-8?q?=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85=20=EC=98=B5=EC=85=98=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/tenant/inc/navi.php | 2 + public/tenant/order/estimate_form.php | 18 +- public/tenant/settings/member_fields.php | 320 +++++++++++++++++ public/tenant/settings/option_groups.php | 422 ++++++++++++++++++++++ public/tenant/tenant/option.php | 430 +++++++++++++++++++++++ 5 files changed, 1183 insertions(+), 9 deletions(-) create mode 100644 public/tenant/settings/member_fields.php create mode 100644 public/tenant/settings/option_groups.php create mode 100644 public/tenant/tenant/option.php diff --git a/public/tenant/inc/navi.php b/public/tenant/inc/navi.php index 9320eb5..28e7900 100644 --- a/public/tenant/inc/navi.php +++ b/public/tenant/inc/navi.php @@ -72,6 +72,7 @@ ['라벨'=>'회사 선택','href'=>'/tenant/member/tenant_select.php'], ['라벨'=>'내정보 수정','href'=>'/tenant/member/profile_edit.php'], ['라벨'=>'탈퇴','href'=>'/tenant/member/withdraw.php'], + ['라벨'=>'회원가입 컬럼설정','href'=>'/tenant/settings/member_fields.php'], ], ], 'permission' => [ @@ -104,6 +105,7 @@ ['라벨'=>'부서 관리','href'=>'/tenant/tenant/department_list.php'], ['라벨'=>'역할 관리','href'=>'/tenant/tenant/role_list.php'], ['라벨'=>'유저 관리','href'=>'/tenant/tenant/user_list.php'], + ['라벨'=>'옵션 관리','href'=>'/tenant/tenant/option.php'], ], ], ]; diff --git a/public/tenant/order/estimate_form.php b/public/tenant/order/estimate_form.php index 7003530..6a599a3 100644 --- a/public/tenant/order/estimate_form.php +++ b/public/tenant/order/estimate_form.php @@ -78,7 +78,7 @@
- +
@@ -99,25 +99,25 @@
- + × - +
- + × - +
-
-
-
+
+
+
@@ -131,7 +131,7 @@
-
세부 항목 (읽기전용)
+
세부 항목
diff --git a/public/tenant/settings/member_fields.php b/public/tenant/settings/member_fields.php new file mode 100644 index 0000000..af28c08 --- /dev/null +++ b/public/tenant/settings/member_fields.php @@ -0,0 +1,320 @@ + +'name','label'=>'이름','data_type'=>'string','input_type'=>'text','option_source'=>null], + ['field_key'=>'email','label'=>'이메일','data_type'=>'string','input_type'=>'text','option_source'=>null], + ['field_key'=>'phone','label'=>'전화번호','data_type'=>'string','input_type'=>'text','option_source'=>null], + ['field_key'=>'department','label'=>'부서','data_type'=>'string','input_type'=>'select','option_source'=>'tenant_list'], + ['field_key'=>'position','label'=>'직급','data_type'=>'string','input_type'=>'select','option_source'=>'tenant_list'], + ['field_key'=>'job_title','label'=>'직책','data_type'=>'string','input_type'=>'select','option_source'=>'tenant_list'], + ['field_key'=>'manager_id','label'=>'직속 상급자','data_type'=>'bigint','input_type'=>'select_user','option_source'=>null], + ['field_key'=>'hire_date','label'=>'입사일','data_type'=>'date','input_type'=>'date','option_source'=>null], + ['field_key'=>'employment_type','label'=>'고용형태','data_type'=>'string','input_type'=>'select','option_source'=>'tenant_list'], + ['field_key'=>'work_location','label'=>'근무지','data_type'=>'string','input_type'=>'select','option_source'=>'tenant_list'], + ['field_key'=>'work_type','label'=>'근무형태','data_type'=>'string','input_type'=>'select','option_source'=>'tenant_list'], + ['field_key'=>'gender','label'=>'성별','data_type'=>'string','input_type'=>'select','option_source'=>'tenant_list'], + ['field_key'=>'bank_name','label'=>'은행','data_type'=>'string','input_type'=>'select','option_source'=>'tenant_list'], + ['field_key'=>'bank_account','label'=>'계좌번호','data_type'=>'string','input_type'=>'text','option_source'=>null], + ['field_key'=>'employee_no','label'=>'사번','data_type'=>'string','input_type'=>'text','option_source'=>null], + ['field_key'=>'profile_photo','label'=>'프로필 사진','data_type'=>'file','input_type'=>'file','option_source'=>null], +]; + +// tenant_option_groups (id, name) — select 항목에서 선택할 그룹 +$OPTION_GROUPS = [ + ['id'=>101,'group_key'=>'department','name'=>'부서 그룹'], + ['id'=>102,'group_key'=>'position','name'=>'직급 그룹'], + ['id'=>103,'group_key'=>'job_title','name'=>'직책 그룹'], + ['id'=>104,'group_key'=>'employment_type','name'=>'고용형태 그룹'], + ['id'=>105,'group_key'=>'work_location','name'=>'근무지 그룹'], + ['id'=>106,'group_key'=>'work_type','name'=>'근무형태 그룹'], + ['id'=>107,'group_key'=>'gender','name'=>'성별 그룹'], + ['id'=>108,'group_key'=>'bank_name','name'=>'은행 그룹'], +]; + +// tenant_field_settings (샘플: enabled/required/sort/order/group) +// key = field_key +$SETTINGS = [ + 'name' => ['enabled'=>1,'required'=>1,'sort_order'=>10,'option_group_id'=>null], + 'email' => ['enabled'=>1,'required'=>1,'sort_order'=>20,'option_group_id'=>null], + 'phone' => ['enabled'=>1,'required'=>0,'sort_order'=>30,'option_group_id'=>null], + 'department' => ['enabled'=>1,'required'=>1,'sort_order'=>40,'option_group_id'=>101], + 'position' => ['enabled'=>1,'required'=>0,'sort_order'=>50,'option_group_id'=>102], + 'job_title' => ['enabled'=>0,'required'=>0,'sort_order'=>60,'option_group_id'=>103], + 'manager_id' => ['enabled'=>0,'required'=>0,'sort_order'=>70,'option_group_id'=>null], + 'hire_date' => ['enabled'=>1,'required'=>0,'sort_order'=>80,'option_group_id'=>null], + 'employment_type' => ['enabled'=>1,'required'=>0,'sort_order'=>90,'option_group_id'=>104], + 'work_location' => ['enabled'=>1,'required'=>0,'sort_order'=>100,'option_group_id'=>105], + 'work_type' => ['enabled'=>0,'required'=>0,'sort_order'=>110,'option_group_id'=>106], + 'gender' => ['enabled'=>0,'required'=>0,'sort_order'=>120,'option_group_id'=>107], + 'bank_name' => ['enabled'=>0,'required'=>0,'sort_order'=>130,'option_group_id'=>108], + 'bank_account' => ['enabled'=>0,'required'=>0,'sort_order'=>140,'option_group_id'=>null], + 'employee_no' => ['enabled'=>1,'required'=>0,'sort_order'=>150,'option_group_id'=>null], + 'profile_photo' => ['enabled'=>0,'required'=>0,'sort_order'=>160,'option_group_id'=>null], +]; + +// helper: 옵션그룹 셀렉트 HTML +function render_group_select($field_key,$sel,$groups,$def){ + if (!($def['input_type']==='select' && $def['option_source']==='tenant_list')) return ''; + $html = ''; + return $html; +} + +// 기존 render_group_select() 제거하고 ↓로 교체 +function group_name_by_id($id, $groups) +{ + foreach ($groups as $g) { + if ((string)$g['id'] === (string)$id) return $g['name']; + } + return null; +} + +function render_group_label($field_key, $sel_id, $groups, $def) +{ + // select + tenant_list 타입만 노출, 그 외는 대시 + if (!($def['input_type'] === 'select' && $def['option_source'] === 'tenant_list')) { + return ''; + } + if (!$sel_id) return '미지정'; + $name = htmlspecialchars(group_name_by_id($sel_id, $groups) ?: '알 수 없음'); + // 필요하면 관리 링크 표시 + return '' . $name . '' + . ' 관리'; +} + +?> +
+ + +
+
+
회원가입 필드 설정
+
+ + + +
+
+
+
미리보기 · 회원가입 화면 노출 순서
+
+
+
+ + +
+
+
+ + + + + + + + + + + + + $sb; + }); + + foreach($FIELD_DEFS as $def): + $key = $def['field_key']; + $set = $SETTINGS[$key] ?? ['enabled'=>0,'required'=>0,'sort_order'=>9999,'option_group_id'=>null]; + $enabled = (int)$set['enabled']; + $required = (int)$set['required']; + $order = (int)$set['sort_order']; + $groupId = $set['option_group_id']; + ?> + + + + + + + + + + + +
순서필드입력유형옵션 그룹필수사용관리
+
+ + + +
+
+
+
·
+
+
+ > +
+
+
+ > +
+
+ + +
+
+
+
+ + + + + diff --git a/public/tenant/settings/option_groups.php b/public/tenant/settings/option_groups.php new file mode 100644 index 0000000..d982bfe --- /dev/null +++ b/public/tenant/settings/option_groups.php @@ -0,0 +1,422 @@ + + +
+ + +
+
옵션 그룹 관리
+
+ + + +
+
+ +
+ +
+
+
+ 그룹 목록 + +
+
+ + + + + + + + +
ID그룹키이름관리
+
+
+
+ + +
+
+
+
+ 항목 값 + 선택된 그룹 없음 +
+
+ + + +
+
+
+ + + + + + + + + + +
IDvalue_key라벨정렬사용관리
+
+
+
+
+
+ + + + + + + + + + + diff --git a/public/tenant/tenant/option.php b/public/tenant/tenant/option.php new file mode 100644 index 0000000..5fa44cb --- /dev/null +++ b/public/tenant/tenant/option.php @@ -0,0 +1,430 @@ + + +
+
+
+
공통코드 / 옵션 관리
+
+ + + +
+
+ +
+ +
+
+
+ 그룹 목록 +
+
+
+ + + +
ID그룹키이름관리
+
+
+
+ + +
+
+
+
+ 항목 목록 + 선택된 그룹이 없습니다 +
+
+ + + +
+
+ +
+ + + + + + + + + + + + +
ID코드(value_key)라벨(value_label)정렬사용관리
+
+
+
+
+
+
+ + + + + + + + + + + + + + +