Login.cpp 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. #include "Login.h"
  2. #include "OriginalWnd/OriginalWnd.h"
  3. #include "ui_Login.h"
  4. #include <QStackedWidget>
  5. #include <qDebug>
  6. #include <QSettings>
  7. #include "Src/common/JMessageTip.h"
  8. #include "Src/common/UserManagementShared.h"
  9. Login* Login::m_instance = nullptr;
  10. Login::Login(QWidget *parent)
  11. : QMainWindow(parent)
  12. , ui(new Ui::Login)
  13. {
  14. ui->setupUi(this);
  15. initForm();
  16. }
  17. Login::~Login()
  18. {
  19. delete ui;
  20. }
  21. void Login::initForm()
  22. {
  23. QPixmap pixmap(":/images/logo.png");
  24. QPixmap scaledPixmap = pixmap.scaled(283, 40, Qt::KeepAspectRatio);
  25. ui->label_logo->setPixmap(scaledPixmap);
  26. ui->userNameLineEdit->setPlaceholderText(tr("Please enter the account number"));
  27. ui->passLineEdit->setPlaceholderText(tr("Please enter your password"));
  28. connect(ui->userNameLineEdit, &QLineEdit::textChanged, this, &Login::onUserNameChanged);
  29. }
  30. void Login::onUserNameChanged(const QString &userName)
  31. {
  32. QSettings settings("YourCompany_2", "YourAppName_2");
  33. settings.setValue("userName", userName);
  34. }
  35. void Login::on_SinginButton_clicked()
  36. {
  37. //emit SendSwitchOriginalWndSignals();
  38. //return;
  39. QString strTip;
  40. QString strUser = ui->userNameLineEdit->text().trimmed();
  41. if (!strUser.isEmpty())
  42. {
  43. QString strPass = ui->passLineEdit->text().trimmed();
  44. if (!strPass.isEmpty())
  45. {
  46. //JEncryption::Encryption();
  47. int privilege = queryUserPrivilege(strUser, strPass);
  48. if (privilege != -1) {
  49. setPrivilege(privilege);
  50. emit SendSwitchOriginalWndSignals();
  51. }
  52. /*if (QStackedWidget* parent = qobject_cast<QStackedWidget*>(this->parentWidget()))
  53. {
  54. OriginalWnd* originalWnd = new OriginalWnd(this);
  55. parent->addWidget(originalWnd);
  56. parent->setCurrentIndex(parent->indexOf(originalWnd));
  57. }*/
  58. return;
  59. }
  60. else
  61. {
  62. strTip = tr("Please enter your password", "请输入密码");
  63. }
  64. }
  65. else
  66. {
  67. strTip = tr("Please enter your username", "请输入用户名称");
  68. }
  69. JMessageTip::Message_warning(strTip);
  70. }
  71. void Login::on_ExitButton_clicked()
  72. {
  73. emit CloseMainWndSig();
  74. }
  75. Login* Login::instance(QWidget* parent)
  76. {
  77. if (!m_instance) {
  78. m_instance = new Login(parent);
  79. }
  80. return m_instance;
  81. }
  82. int Login::getPrivilege() const
  83. {
  84. return m_privilege;
  85. }
  86. void Login::setPrivilege(int privilege)
  87. {
  88. m_privilege = privilege;
  89. }
  90. int Login::queryUserPrivilege(const QString& strUser, const QString& strPass)
  91. {
  92. QSqlDatabase db = QSqlDatabase::database();
  93. if (!db.isOpen()) {
  94. qDebug() << "Database is not open.";
  95. return -1;
  96. }
  97. QSqlQuery query(db);
  98. query.prepare("SELECT Privilege FROM User WHERE UserName = :username AND PassWord = :password");
  99. query.bindValue(":username", strUser);
  100. query.bindValue(":password", strPass);
  101. if (!query.exec()) {
  102. qDebug() << "Query execution failed:" << query.lastError().text();
  103. return -1;
  104. }
  105. if (query.next()) {
  106. return query.value(0).toInt();
  107. }
  108. return -1; // 未找到用户
  109. }