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:
backuppc
2025-11-27 17:25:31 +09:00
parent b57af6dad7
commit c9b5d756e1
65 changed files with 14028 additions and 467 deletions

View File

@@ -158,14 +158,15 @@ namespace Project
Console.WriteLine($"WebView2 초기화 상태: {Pub.InitWebView}");
Func_Login();
// WebView2 로그인이 아닌 경우에만 여기서 후처리 실행
// WebView2 로그인의 경우 OnLoginCompleted()에서 호출됨
if (Pub.InitWebView != 1)
{
OnLoginCompleted();
}
//if (Pub.InitWebView != 1)
//{
Menu_Dashboard();
//OnLoginCompleted();
//}
}
/// <summary>
@@ -236,22 +237,22 @@ namespace Project
Util.RunExplorer(cmd);
}
void Func_Login()
{
this.sbWeb.Text = $"WebView:{Pub.InitWebView}";
if (Pub.InitWebView == 1)
{
// WebView2 기반 대시보드 로그인
Menu_Dashboard();
}
else
{
// 기존 WinForms 로그인
using (var f = new Dialog.fLogin())
if (f.ShowDialog() != System.Windows.Forms.DialogResult.OK)
Application.ExitThread();
}
}
//void Func_Login()
//{
// this.sbWeb.Text = $"WebView:{Pub.InitWebView}";
// if (Pub.InitWebView == 1)
// {
// // WebView2 기반 대시보드 로그인
// Menu_Dashboard();
// }
// else
// {
// // 기존 WinForms 로그인
// using (var f = new Dialog.fLogin())
// if (f.ShowDialog() != System.Windows.Forms.DialogResult.OK)
// Application.ExitThread();
// }
//}
void Func_RunStartForm()
{
var menu_purchaseVisible = FCOMMON.Util.getBit(FCOMMON.info.Login.gpermission, (int)FCOMMON.eGroupPermission.menu_purchase);
@@ -658,11 +659,11 @@ namespace Project
f.Show();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
CloseAllForm();
Func_Login();
}
//private void 로그인ToolStripMenuItem_Click(object sender, EventArgs e)
//{
// CloseAllForm();
// Func_Login();
//}
void CloseAllForm()
{
@@ -675,7 +676,25 @@ namespace Project
tabControl1.TabPages.Remove(tab);
this.tabControl1.Refresh();
}
}
/// <summary>
/// MachineBridge에서 호출 가능한 public 메서드
/// </summary>
public void CloseAllFormPublic()
{
CloseAllForm();
// 상태바 정보 초기화
sbLogin.Text = "";
sbLoginUseTime.Text = "";
// 메뉴/툴바 비활성화
menuStrip1.Enabled = false;
toolStrip1.Enabled = false;
btDev.Visible = false;
Menu_Dashboard();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
@@ -1463,14 +1482,15 @@ namespace Project
}
Dialog.fDashboardNew fdashboard = null;
//Dialog.fDashboard fdashboard = null;
void Menu_Dashboard()
{
string formkey = "DASHBOARD";
if (!ShowForm(formkey))
{
if (fdashboard == null || fdashboard.IsDisposed)
fdashboard = new Dialog.fDashboardNew();
fdashboard = new Dialog.fDashboard();
AddForm(formkey, fdashboard);
}
}
@@ -1528,14 +1548,15 @@ namespace Project
f.ShowDialog();
}
Dialog.fDashboard fdashboard = null;
private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
{
if(this.tabControl1.SelectedIndex == 0)
if (this.tabControl1.SelectedIndex == 0)
{
if (fdashboard != null)
{
fdashboard.RefreshView();
Console.WriteLine( "view update");
Console.WriteLine("view update");
}
}