#include "loginform.h" #include "ui_loginform.h" #include #include "globalinfo.h" LoginForm::LoginForm(QWidget *parent) : QWidget(parent), ui(new Ui::LoginForm),_request(nullptr) { ui->setupUi(this); connect(this,&LoginForm::loginFinish,this,&LoginForm::clear); ui->status->setVisible(false); this->setEnabled(true); } LoginForm::~LoginForm() { delete ui; } void LoginForm::on_pushLogin_clicked() { auto glo = GlobalInfo::this_(); auto uname = this->ui->lineUser->text(); auto upass = this->ui->linePass->text(); auto url = glo->config().loginUrl; QMap params; params.insert("password",uname); params.insert("username",upass); request()->post(url,params); ui->status->setVisible(true); this->setEnabled(false); } void LoginForm::clear(){ if(_request){ _request->deleteLater(); _request = nullptr; } } HttpRequest * LoginForm::request() { if(!_request){ _request = new HttpRequest(this); connect(_request,&HttpRequest::result,this,&LoginForm::result); } return _request; } void LoginForm::result(int code, const QJsonObject & body) { ui->status->setVisible(false); this->setEnabled(true); QString message = body["message"].toString(); if(body.value("code").toInt(404) != 200){ QMessageBox msg(QMessageBox::Information, "错误", " 网络异常", QMessageBox::Ok, this); msg.exec(); // ui->username->clear(); // ui->password->clear(); return; } if(message == "未找到用户"){ QMessageBox msg(QMessageBox::Information, "错误", "用户名或密码错误", QMessageBox::Ok, this); msg.exec(); return; } auto data = body.value("data").toObject(); UserInfo user; user.accountId = data["account_id"].toInt(); user.userId = data["user_id"].toInt(); user.userName = data["name"].toString(); user.headPortrait = data["head_portrait"].toString(); user.isVip = data["is_vip"].toInt(-1) == 1 ? true : false; user.acessToken = data["access_token"].toString(); GlobalInfo::this_()->setUser(user); emit loginFinish(); }