#include "Login.h" #include "OriginalWnd/OriginalWnd.h" #include "ui_Login.h" #include <QStackedWidget> #include <qDebug> #include <QSettings> #include "Src/common/JMessageTip.h" #include "Src/common/UserManagementShared.h" Login* Login::m_instance = nullptr; Login::Login(QWidget *parent) : QMainWindow(parent) , ui(new Ui::Login) { ui->setupUi(this); initForm(); } Login::~Login() { delete ui; } void Login::initForm() { QPixmap pixmap(":/images/logo.png"); QPixmap scaledPixmap = pixmap.scaled(283, 40, Qt::KeepAspectRatio); ui->label_logo->setPixmap(scaledPixmap); ui->userNameLineEdit->setPlaceholderText(tr("Please enter the account number")); ui->passLineEdit->setPlaceholderText(tr("Please enter your password")); connect(ui->userNameLineEdit, &QLineEdit::textChanged, this, &Login::onUserNameChanged); } void Login::onUserNameChanged(const QString &userName) { QSettings settings("YourCompany_2", "YourAppName_2"); settings.setValue("userName", userName); } void Login::on_SinginButton_clicked() { //emit SendSwitchOriginalWndSignals(); //return; QString strTip; QString strUser = ui->userNameLineEdit->text().trimmed(); if (!strUser.isEmpty()) { QString strPass = ui->passLineEdit->text().trimmed(); if (!strPass.isEmpty()) { //JEncryption::Encryption(); int privilege = queryUserPrivilege(strUser, strPass); if (privilege != -1) { setPrivilege(privilege); emit SendSwitchOriginalWndSignals(); } /*if (QStackedWidget* parent = qobject_cast<QStackedWidget*>(this->parentWidget())) { OriginalWnd* originalWnd = new OriginalWnd(this); parent->addWidget(originalWnd); parent->setCurrentIndex(parent->indexOf(originalWnd)); }*/ return; } else { strTip = tr("Please enter your password", "请输入密码"); } } else { strTip = tr("Please enter your username", "请输入用户名称"); } JMessageTip::Message_warning(strTip); } void Login::on_ExitButton_clicked() { emit CloseMainWndSig(); } Login* Login::instance(QWidget* parent) { if (!m_instance) { m_instance = new Login(parent); } return m_instance; } int Login::getPrivilege() const { return m_privilege; } void Login::setPrivilege(int privilege) { m_privilege = privilege; } int Login::queryUserPrivilege(const QString& strUser, const QString& strPass) { QSqlDatabase db = QSqlDatabase::database(); if (!db.isOpen()) { qDebug() << "Database is not open."; return -1; } QSqlQuery query(db); query.prepare("SELECT Privilege FROM User WHERE UserName = :username AND PassWord = :password"); query.bindValue(":username", strUser); query.bindValue(":password", strPass); if (!query.exec()) { qDebug() << "Query execution failed:" << query.lastError().text(); return -1; } if (query.next()) { return query.value(0).toInt(); } return -1; // 未找到用户 }