diff --git a/app/Http/Controllers/ESign/EsignApiController.php b/app/Http/Controllers/ESign/EsignApiController.php index 59bf0da6..ad071884 100644 --- a/app/Http/Controllers/ESign/EsignApiController.php +++ b/app/Http/Controllers/ESign/EsignApiController.php @@ -37,9 +37,11 @@ public function searchPartners(Request $request): JsonResponse $query = User::where('is_active', true) ->whereHas('userRoles', function ($w) use ($tenantId) { $w->where('tenant_id', $tenantId) - ->whereHas('role', fn($r) => $r->where('name', 'sales')); + ->whereHas('role', fn($r) => $r->whereIn('name', ['sales', 'manager'])); }) - ->with('salesPartner'); + ->with(['salesPartner', 'userRoles' => function ($q) use ($tenantId) { + $q->where('tenant_id', $tenantId)->with('role'); + }]); if ($q !== '') { $query->where(function ($w) use ($q) { @@ -51,8 +53,11 @@ public function searchPartners(Request $request): JsonResponse $users = $query->orderBy('name')->limit(20)->get(); - $data = $users->map(function ($user) { + $roleLabels = ['sales' => '영업파트너', 'manager' => '상담매니저']; + + $data = $users->map(function ($user) use ($roleLabels) { $sp = $user->salesPartner; + $roles = $user->userRoles->map(fn($ur) => $roleLabels[$ur->role?->name] ?? null)->filter()->values(); return [ 'id' => $user->id, 'name' => $user->name, @@ -61,6 +66,7 @@ public function searchPartners(Request $request): JsonResponse 'company_name' => $sp?->company_name, 'biz_no' => $sp?->biz_no, 'address' => $sp?->address, + 'position' => $roles->implode('/'), ]; }); diff --git a/resources/views/esign/create.blade.php b/resources/views/esign/create.blade.php index 8a950249..46bd23e8 100644 --- a/resources/views/esign/create.blade.php +++ b/resources/views/esign/create.blade.php @@ -328,7 +328,10 @@ className="w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring onMouseEnter={() => setActiveIdx(i)} className={`w-full text-left px-3 py-2.5 rounded-lg mb-1 transition-colors ${i === activeIdx ? 'bg-blue-50 ring-1 ring-blue-200' : 'hover:bg-gray-50'}`}>
- {p.name} +
+ {p.name} + {p.position && {p.position}} +
{p.company_name && {p.company_name}}
@@ -450,6 +453,7 @@ className={`w-full text-left px-3 py-2.5 rounded-lg mb-1 transition-colors ${i = address: partner.address, biz_no: partner.biz_no, company_name: partner.company_name, + position: partner.position, }; // label 기반 fallback 매핑 const labelMap = { @@ -458,6 +462,9 @@ className={`w-full text-left px-3 py-2.5 rounded-lg mb-1 transition-colors ${i = '주소': partner.address, '사업자등록번호': partner.biz_no, '상호': partner.company_name, + '포지션': partner.position, + '직책': partner.position, + '역할': partner.position, }; setMetadata(prev => {