loginform.cpp 2.5 KB

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