|
@@ -0,0 +1,150 @@
|
|
|
+#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>
|
|
|
+
|
|
|
+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::signalLogin);
|
|
|
+ connect(m_cancelButton, &PushButton::clicked, this, &EXLoginWidget::signalCancel);
|
|
|
+}
|
|
|
+
|
|
|
+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());
|
|
|
+}
|