LAPTOP-SNT8I5JK\Boounion
2024-12-02 aedb3b85fed48cb2cf0abb5fafa8e7591644c9f4
SourceCode/Bond/BondEq/View/LoginDlg.cpp
@@ -5,7 +5,6 @@
#include "BondEq.h"
#include "afxdialogex.h"
#include "LoginDlg.h"
#include "UserManager.h"
#include "ChangePasswordDlg.h"
@@ -24,11 +23,11 @@
void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
   CDialogEx::DoDataExchange(pDX);
   DDX_Control(pDX, IDC_EDIT_USERNAME, m_editUsername);
   DDX_Control(pDX, IDC_EDIT_PASSWORD, m_editPassword);
   DDX_Control(pDX, IDC_COMBO_ROLE, m_comboRole);
   DDX_Control(pDX, IDC_CHECK_REMEMBER_PASSWORD, m_checkRememberPassword);
    CDialogEx::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_STATIC_IMAGE, m_staticImage);
    DDX_Control(pDX, IDC_EDIT_USERNAME, m_editUsername);
    DDX_Control(pDX, IDC_EDIT_PASSWORD, m_editPassword);
    DDX_Control(pDX, IDC_CHECK_REMEMBER_PASSWORD, m_checkRememberPassword);
}
@@ -47,10 +46,24 @@
    // 设置窗口标题和初始值
    SetWindowText(_T("登录"));
   m_comboRole.AddString(_T("管理员"));
   m_comboRole.AddString(_T("工程师"));
    m_comboRole.AddString(_T("操作员"));
    m_comboRole.SetCurSel(0);
    CString strIconPath;
    strIconPath.Format(_T("%s\\Res\\Operator_High_32.ico"), (LPTSTR)(LPCTSTR)theApp.m_strAppDir);
    // 加载图标
    HICON hIcon = (HICON)::LoadImage(
        nullptr,
        strIconPath,
        IMAGE_ICON,
        32, // 图标宽度
        32, // 图标高度
        LR_LOADFROMFILE);
    if (hIcon) {
        // 设置 CStatic 控件为图标样式
        m_staticImage.ModifyStyle(0xF, SS_ICON);
        m_staticImage.SetIcon(hIcon);
    }
    // 添加SS_NOTIFY样式
    CStatic* pStatic = (CStatic*)GetDlgItem(IDC_STATIC_CHANGE_PASSWORD);
@@ -60,11 +73,6 @@
    UserManager& userManager = UserManager::getInstance();
   if (userManager.isLoggedIn()) {
      int nRole = (int)userManager.getCurrentUserRole();
        if (nRole <= m_comboRole.GetCount()) {
            m_comboRole.SetCurSel(nRole);
        }
        if (userManager.isRememberMe()) {
            m_checkRememberPassword.SetCheck(BST_CHECKED);
        }
@@ -82,7 +90,6 @@
    CString username, password, role;
    m_editUsername.GetWindowText(username);
    m_editPassword.GetWindowText(password);
    m_comboRole.GetLBText(m_comboRole.GetCurSel(), role);
    if (username.IsEmpty() || password.IsEmpty()) {
        AfxMessageBox(_T("请输入用户名和密码。"));
@@ -98,12 +105,14 @@
#endif
    UserManager& userManager = UserManager::getInstance();
    SystemLogManager& logManager = SystemLogManager::getInstance();
    if (!userManager.login(strUsername, strPassword, (m_checkRememberPassword.GetCheck() == BST_CHECKED))) {
        AfxMessageBox(_T("登录失败。"));
        return;
    }
    EndDialog(IDOK);
    logManager.log(SystemLogManager::LogType::Info, _T("登录成功..."));
}
void CLoginDlg::OnBnClickedChangePassword()