loginform.cpp 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #include "loginform.h"
  2. #include "ui_loginform.h"
  3. #include <QMessageBox>
  4. #include "globalinfo.h"
  5. LoginForm::LoginForm(QWidget *parent) :
  6. QWidget(parent),
  7. ui(new Ui::LoginForm),_request(nullptr)
  8. {
  9. ui->setupUi(this);
  10. connect(this,&LoginForm::loginFinish,this,&LoginForm::clear);
  11. ui->status->setVisible(false);
  12. this->setEnabled(true);
  13. ui->linePass->setEchoMode(QLineEdit::Password);
  14. }
  15. LoginForm::~LoginForm()
  16. {
  17. delete ui;
  18. }
  19. void LoginForm::on_pushLogin_clicked()
  20. {
  21. QFileInfo fileInfo(QCoreApplication::applicationDirPath() + "/Config.ini");
  22. if(!fileInfo.exists()){
  23. qDebug()<<"配置文件不存在";
  24. QMessageBox::information(this,"注意","请设置配置");
  25. return;
  26. }
  27. auto glo = GlobalInfo::this_();
  28. auto uname = this->ui->lineUser->text();
  29. auto upass = this->ui->linePass->text();
  30. auto url = glo->config().baseUrl+"/v1/signin";
  31. QMap<QString,QString> params;
  32. params.insert("password",uname);
  33. params.insert("username",upass);
  34. request()->post(url,params);
  35. ui->status->setVisible(true);
  36. this->setEnabled(false);
  37. }
  38. void LoginForm::clear(){
  39. if(_request){
  40. _request->deleteLater();
  41. _request = nullptr;
  42. }
  43. }
  44. HttpRequest * LoginForm::request()
  45. {
  46. if(!_request){
  47. _request = new HttpRequest(this);
  48. connect(_request,&HttpRequest::result,this,&LoginForm::result);
  49. }
  50. return _request;
  51. }
  52. void LoginForm::result(int code, const QJsonObject & body)
  53. {
  54. ui->status->setVisible(false);
  55. this->setEnabled(true);
  56. QString message = body["message"].toString();
  57. if(body.value("code").toInt(404) != 200){
  58. QMessageBox msg(QMessageBox::Information, "错误", " 网络异常", QMessageBox::Ok, this);
  59. msg.exec();
  60. // ui->username->clear();
  61. // ui->password->clear();
  62. return;
  63. }
  64. if(message == "未找到用户"){
  65. QMessageBox msg(QMessageBox::Information, "错误", "用户名或密码错误", QMessageBox::Ok, this);
  66. msg.exec();
  67. return;
  68. }
  69. auto data = body.value("data").toObject();
  70. UserInfo user;
  71. user.accountId = data["account_id"].toInt();
  72. user.userId = data["user_id"].toInt();
  73. user.userName = data["name"].toString();
  74. user.headPortrait = data["head_portrait"].toString();
  75. user.isVip = data["is_vip"].toInt(-1) == 1 ? true : false;
  76. user.acessToken = data["access_token"].toString();
  77. GlobalInfo::this_()->setUser(user);
  78. emit loginFinish();
  79. }
  80. void LoginForm::on_pushButton_2_clicked()
  81. {
  82. emit SettingsClicked();
  83. }