feat: React 프론트엔드 기능 대폭 확장
- 월별근무표: 휴일/근무일 관리, 자동 초기화 - 메일양식: 템플릿 CRUD, To/CC/BCC 설정 - 그룹정보: 부서 관리, 비트 연산 기반 권한 설정 - 업무일지: 수정 성공 메시지 제거, 오늘 근무시간 필터링 수정 - 웹소켓 메시지 type 충돌 버그 수정 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -191,8 +191,19 @@ namespace Project.Web
|
||||
{
|
||||
mainForm.OnLoginCompleted();
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if (form is Dialog.fDashboard dashForm)
|
||||
{
|
||||
if (dashForm.InvokeRequired)
|
||||
{
|
||||
dashForm.Invoke(new Action(() => dashForm.RefreshPage()));
|
||||
}
|
||||
else
|
||||
{
|
||||
dashForm.RefreshPage();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -258,6 +269,30 @@ namespace Project.Web
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 현재 로그인 상태 확인
|
||||
/// </summary>
|
||||
public string CheckLoginStatus()
|
||||
{
|
||||
var isLoggedIn = !string.IsNullOrEmpty(info.Login.no);
|
||||
var result = new
|
||||
{
|
||||
Success = true,
|
||||
IsLoggedIn = isLoggedIn,
|
||||
User = isLoggedIn ? new
|
||||
{
|
||||
Id = info.Login.no,
|
||||
Name = info.Login.nameK,
|
||||
NameE = info.Login.nameE,
|
||||
Dept = info.Login.dept,
|
||||
Email = info.Login.email,
|
||||
Level = info.Login.level,
|
||||
Gcode = info.Login.gcode
|
||||
} : null
|
||||
};
|
||||
return JsonConvert.SerializeObject(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 그룹 목록 조회
|
||||
/// </summary>
|
||||
@@ -288,6 +323,68 @@ namespace Project.Web
|
||||
return JsonConvert.SerializeObject(result);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 로그아웃 처리
|
||||
/// </summary>
|
||||
public string Logout()
|
||||
{
|
||||
try
|
||||
{
|
||||
// 로그인 정보 초기화
|
||||
info.Login.no = "";
|
||||
info.Login.nameK = "";
|
||||
info.Login.nameE = "";
|
||||
info.Login.dept = "";
|
||||
info.Login.email = "";
|
||||
info.Login.level = 0;
|
||||
info.Login.gcode = "";
|
||||
info.Login.hp = "";
|
||||
info.Login.tel = "";
|
||||
info.Login.title = "";
|
||||
info.Login.process = "";
|
||||
info.Login.permission = 0;
|
||||
info.Login.gpermission = 0;
|
||||
|
||||
// fMain의 CloseAllForm 호출
|
||||
CallMainFormCloseAllForm();
|
||||
|
||||
return JsonConvert.SerializeObject(new { Success = true, Message = "로그아웃 되었습니다." });
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return JsonConvert.SerializeObject(new { Success = false, Message = ex.Message });
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// fMain의 CloseAllForm() 호출
|
||||
/// </summary>
|
||||
private void CallMainFormCloseAllForm()
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (Form form in Application.OpenForms)
|
||||
{
|
||||
if (form is fMain mainForm)
|
||||
{
|
||||
if (mainForm.InvokeRequired)
|
||||
{
|
||||
mainForm.Invoke(new Action(() => mainForm.CloseAllFormPublic()));
|
||||
}
|
||||
else
|
||||
{
|
||||
mainForm.CloseAllFormPublic();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"CloseAllForm 호출 오류: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user