123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- #include "EXLoginWidget.h"
- #include "EXConfig.h"
- #include <dbService/ClassSet.h>
- #include <Widgets/LineEdit.h>
- #include <Widgets/CheckBox.h>
- #include <Widgets/Button.h>
- #include <QBoxLayout>
- #include <QLabel>
- #include <QPainter>
- #include <QDebug>
- #include "MainWindow.h"
- EXLoginWidget::EXLoginWidget(QWidget *parent) : QWidget(parent)
- {
- initialize();
- initLayout();
- connectSignalsAndSlots();
- loadAccount();
- resize(500, 500);
- }
- void EXLoginWidget::paintEvent(QPaintEvent *event)
- {
- QWidget::paintEvent(event);
- QPainter painter(this);
- QPixmap pixmap(":/resource/background/8.jpg");
- painter.drawPixmap(0, 0,
- pixmap.scaled(width(), height(), Qt::KeepAspectRatioByExpanding, Qt::SmoothTransformation));
- }
- void EXLoginWidget::setTitle(const QString title)
- {
- m_titleLabel->setText(title);
- }
- const QString EXLoginWidget::account() const
- {
- return m_accLineEdit->text();
- }
- const QString EXLoginWidget::password() const
- {
- return m_pwLineEdit->text();
- }
- bool EXLoginWidget::rememberPassword() const
- {
- return m_remCheckBox->isChecked();
- }
- void EXLoginWidget::saveAccountConfig() const
- {
- bool rem = m_remCheckBox->isChecked();
- EXConfig::setRememberPassword(rem);
- if (rem) {
- EXConfig::setUsername(m_accLineEdit->text());
- EXConfig::setPassword(m_pwLineEdit->text());
- }
- }
- void EXLoginWidget::initialize()
- {
- m_vBoxLayout = new QVBoxLayout(this);
- m_titleLabel = new QLabel(this);
- m_titleLabel->setStyleSheet("color:#ffffff;");
- QFont ft;
- ft.setPointSize(15);
- ft.setBold(true);
- m_titleLabel->setFont(ft);
- m_accLineEdit = new LineEdit(this);
- m_accLineEdit->setIsClearButtonEnabled(true);
- m_accLineEdit->setPlaceholderText("请输入账号");
- m_accLineEdit->setFixedWidth(250);
- m_pwLineEdit = new PasswordLineEdit(this);
- m_pwLineEdit->setPlaceholderText("请输入密码");
- m_pwLineEdit->setFixedWidth(250);
- m_remLayout = new QHBoxLayout();
- m_remCheckBox = new CheckBox("记住密码", this);
- m_remCheckBox->setHidden(true);
- const QString &s = m_remCheckBox->styleSheet() + "CheckBox {color:white}";
- m_remCheckBox->setStyleSheet(s);
- m_buttonLayout = new QHBoxLayout();
- m_loginButton = new PushButton("登录", this);
- m_cancelButton = new PushButton("取消", this);
- m_adminTips = new QLabel(this);
- m_adminTips->setText("默认管理员账号密码是admin/admin");
- m_adminTips->setStyleSheet("color:#dddddd");
- }
- void EXLoginWidget::initLayout()
- {
- setLayout(m_vBoxLayout);
- m_vBoxLayout->setAlignment(Qt::AlignCenter);
- m_vBoxLayout->addWidget(m_titleLabel);
- m_vBoxLayout->addSpacing(20);
- m_vBoxLayout->addWidget(m_accLineEdit);
- m_vBoxLayout->addSpacing(20);
- m_vBoxLayout->addWidget(m_pwLineEdit);
- m_vBoxLayout->addSpacing(20);
- m_vBoxLayout->addLayout(m_remLayout);
- m_remLayout->addWidget(m_remCheckBox);
- m_remLayout->addSpacing(30);
- m_vBoxLayout->addSpacing(40);
- m_vBoxLayout->addLayout(m_buttonLayout);
- m_buttonLayout->addWidget(m_loginButton);
- m_buttonLayout->addSpacing(20);
- m_buttonLayout->addWidget(m_cancelButton);
- m_vBoxLayout->addSpacing(10);
- m_vBoxLayout->addWidget(m_adminTips);
- }
- void EXLoginWidget::connectSignalsAndSlots()
- {
- connect(m_loginButton, &PushButton::clicked, this, &EXLoginWidget::slotLogin);
- connect(m_cancelButton, &PushButton::clicked, this, &EXLoginWidget::slotCancelLogin);
- }
- void EXLoginWidget::loadAccount()
- {
- int roleType = EXConfig::roleType();
- if (roleType == QFUser::SuperAdmin) {
- setTitle("管理员登录");
- } else {
- setTitle("专家登录");
- }
- // bool rem = EXConfig::rememberPassword();
- // m_remCheckBox->setChecked(rem);
- // if (rem) {
- // m_accLineEdit->setText(EXConfig::username());
- // m_pwLineEdit->setText(EXConfig::password());
- // }
- m_adminTips->setHidden(EXConfig::passwordModified());
- }
- void EXLoginWidget::slotCancelLogin()
- {
- exit(0);
- }
- void EXLoginWidget::slotLogin()
- {
- QString account = m_accLineEdit->text();
- QString password = m_pwLineEdit->text();
- QFUser user(account, password);
- int code = user.login();
- qDebug() << __FUNCTION__ << __LINE__ << "login code:" << account << password << code;
- if ((code == QF_CODE_SUCCEEDED || code == QF_CODE_ALREADY_LOGIN) && QFUser::currentUser() != nullptr) {
- MainWindow *m = new MainWindow(user.projectId.toInt(), nullptr);
- m->setAttribute(Qt::WA_DeleteOnClose);
- m->show();
- this->close();
- // this->close();
- } else {
- qDebug() << "-----------失败";
- // QFDAlert::showAlertWithCode(code, this);
- }
- }
|