From eb675bf030837240ed5dd56724fbc1a447fa5a98 Mon Sep 17 00:00:00 2001 From: Laixingyu Date: Sun, 10 Dec 2023 18:33:44 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E5=8A=A8=E9=87=8F?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TreasureFinder.pro | 9 ++++-- basedatamanager.cpp | 4 +-- basedatamanager.h | 2 +- mainwindow.cpp | 12 ++------ mainwindow.ui | 12 ++++++-- ruoyi/ruoyidatamanager.cpp | 15 ++++++---- ruoyi/ruoyidatamanager.h | 4 ++- userdata.cpp | 5 ++-- userdata.h | 2 +- widget/trendswidget.cpp | 59 ++++++++++++++++++++++++++++++++++++++ widget/trendswidget.h | 31 ++++++++++++++++++++ widget/trendswidget.ui | 24 ++++++++++++++++ 12 files changed, 151 insertions(+), 28 deletions(-) create mode 100644 widget/trendswidget.cpp create mode 100644 widget/trendswidget.h create mode 100644 widget/trendswidget.ui diff --git a/TreasureFinder.pro b/TreasureFinder.pro index f72d3b6..a44a57a 100644 --- a/TreasureFinder.pro +++ b/TreasureFinder.pro @@ -16,7 +16,8 @@ SOURCES += \ ruoyi/ruoyidatamanager.cpp \ userdata.cpp \ widget/addtradedialog.cpp \ - widget/logindialog.cpp + widget/logindialog.cpp \ + widget/trendswidget.cpp HEADERS += \ basedatamanager.h \ @@ -26,12 +27,14 @@ HEADERS += \ structs.h \ userdata.h \ widget/addtradedialog.h \ - widget/logindialog.h + widget/logindialog.h \ + widget/trendswidget.h FORMS += \ mainwindow.ui \ widget/addtradedialog.ui \ - widget/logindialog.ui + widget/logindialog.ui \ + widget/trendswidget.ui win32-msvc2010 { SPEC = win32-msvc2010 diff --git a/basedatamanager.cpp b/basedatamanager.cpp index 5544b39..3171e14 100644 --- a/basedatamanager.cpp +++ b/basedatamanager.cpp @@ -23,7 +23,7 @@ UserInfo BaseDataManager::Login(const QString &userName, const QString &password return UserInfo(); } -void BaseDataManager::GetTrends(QDate date,const QString& token) +QList > BaseDataManager::GetTrends(QDate date,const QString& token) { - + return QList >(); } diff --git a/basedatamanager.h b/basedatamanager.h index 690745d..951accd 100644 --- a/basedatamanager.h +++ b/basedatamanager.h @@ -15,7 +15,7 @@ public: virtual QPixmap GetVerificationCode(); virtual UserInfo Login(const QString& userName,const QString& password,const QString& code); - virtual void GetTrends(QDate date,const QString& token); + virtual QList > GetTrends(QDate date,const QString& token); signals: //请求结束 ret 返回值 0成功 非0失败 diff --git a/mainwindow.cpp b/mainwindow.cpp index 179f39a..6b8a652 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -23,11 +23,12 @@ MainWindow::~MainWindow() void MainWindow::SetUserInfo(UserInfo user) { m_UserInfo = user; + ui->trends->SetUserInfo(user); } void MainWindow::LoadTrendsData() { - m_UserData.GetTrends(QDate(),m_UserInfo.token); + ui->trends->LoadTrendsData(); } void MainWindow::InitTradeTable() @@ -60,14 +61,5 @@ void MainWindow::on_addTrade_pushButton_clicked() AddTradeDialog ad; ad.setWindowTitle("添加记录"); ad.exec(); -// for (int row = 0; row < 4; ++row) -// { -// m_pTradeStandardModel->insertRow(row); -// for (int column = 0; column < 3; ++column) { -// QStandardItem *item = new QStandardItem(QString("row %0, column %1").arg(row).arg(column)); -// m_pTradeStandardModel->setItem(row, column, item); -// } -// } - } diff --git a/mainwindow.ui b/mainwindow.ui index 9f6b72f..f5f9dfe 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -18,9 +18,9 @@ - 3 + 0 - + 动量趋势 @@ -166,6 +166,14 @@ + + + TrendsWidget + QWidget +
widget/trendswidget.h
+ 1 +
+
diff --git a/ruoyi/ruoyidatamanager.cpp b/ruoyi/ruoyidatamanager.cpp index da733c1..3657f81 100644 --- a/ruoyi/ruoyidatamanager.cpp +++ b/ruoyi/ruoyidatamanager.cpp @@ -73,7 +73,7 @@ UserInfo RuoyiDataManager::Login(const QString &userName, const QString &passwor return m_userInfo; } -void RuoyiDataManager::GetTrends(QDate date,const QString& token) +QList > RuoyiDataManager::GetTrends(QDate date,const QString& token) { QNetworkRequest request; QString urlStr(m_sUrl + "/prod-api/stocksystem/trends/listSection"); @@ -100,6 +100,8 @@ void RuoyiDataManager::GetTrends(QDate date,const QString& token) QEventLoop loop; connect(this, SIGNAL(ParseReplyFinished()), &loop, SLOT(quit())); loop.exec(); + + return m_TrendsList; } void RuoyiDataManager::RequestFinished() @@ -211,7 +213,7 @@ void RuoyiDataManager::ParseTrends(QNetworkReply *reply) else { readAllArray = reply->readAll(); - qDebug() << __FUNCTION__ << readAllArray; +// qDebug() << __FUNCTION__ << readAllArray; /** * total: * rows:[{title:2级行业,sortDataList:["煤炭","营销服务"]},{title:2023-12-07,sortDataList:["1","2"]}] @@ -223,7 +225,7 @@ void RuoyiDataManager::ParseTrends(QNetworkReply *reply) QJsonDocument document = QJsonDocument::fromJson(readAllArray,&jsonError); if(jsonError.error == QJsonParseError::NoError && !document.isNull()) { - QList< QList > rowsList; +// QList< QList > rowsList; QList dates; int rowCounts = 0; QJsonObject root = document.object(); @@ -234,6 +236,7 @@ void RuoyiDataManager::ParseTrends(QNetworkReply *reply) } if(root.contains("rows")) { + m_TrendsList.clear(); QJsonArray rows = root["rows"].toArray(); for(int i = 0 ; i < rowCounts; i++) { @@ -250,12 +253,12 @@ void RuoyiDataManager::ParseTrends(QNetworkReply *reply) { datasList.append(datas[c].toString()); } - rowsList.append(datasList); + m_TrendsList.append(datasList); } } - rowsList.prepend(dates); + m_TrendsList.prepend(dates); } - qDebug() << __FUNCTION__ << rowsList; +// qDebug() << __FUNCTION__ << m_TrendsList; } else { diff --git a/ruoyi/ruoyidatamanager.h b/ruoyi/ruoyidatamanager.h index 4267d81..cc87deb 100644 --- a/ruoyi/ruoyidatamanager.h +++ b/ruoyi/ruoyidatamanager.h @@ -21,7 +21,7 @@ public: QPixmap GetVerificationCode() override; UserInfo Login(const QString& userName,const QString& password,const QString& code) override; - void GetTrends(QDate date,const QString& token) override; + QList > GetTrends(QDate date,const QString& token) override; public slots: void RequestFinished(); @@ -36,6 +36,8 @@ private: private: QNetworkAccessManager* m_pNetworkManager; QString m_sUrl; + + QList< QList > m_TrendsList; }; #endif // RUOYIDATAMANAGER_H diff --git a/userdata.cpp b/userdata.cpp index d1f94fc..e105f7c 100644 --- a/userdata.cpp +++ b/userdata.cpp @@ -43,8 +43,9 @@ UserInfo UserData::Login(const QString &userName, const QString &password, const return m_pDataManager->Login(userName,password,code); } -void UserData::GetTrends(QDate date, const QString &token) +QList > UserData::GetTrends(QDate date, const QString &token) { if(m_pDataManager != nullptr) - m_pDataManager->GetTrends(date,token); + return m_pDataManager->GetTrends(date,token); + return QList >(); } diff --git a/userdata.h b/userdata.h index c1cda15..2aae7c4 100644 --- a/userdata.h +++ b/userdata.h @@ -18,7 +18,7 @@ public: //登录 获取用户信息,同步等待 UserInfo Login(const QString& userName,const QString& password,const QString& code); //获取trends - void GetTrends(QDate date,const QString& token); + QList > GetTrends(QDate date,const QString& token); private: BaseDataManager* m_pDataManager; diff --git a/widget/trendswidget.cpp b/widget/trendswidget.cpp new file mode 100644 index 0000000..f4b4cea --- /dev/null +++ b/widget/trendswidget.cpp @@ -0,0 +1,59 @@ +#include "trendswidget.h" +#include "ui_trendswidget.h" +#include + +TrendsWidget::TrendsWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::TrendsWidget) +{ + ui->setupUi(this); + m_UserData.SetManagerType(ManagerType::Ruoyi); + model = new QStandardItemModel; + ui->tableView->setModel(model); +} + +TrendsWidget::~TrendsWidget() +{ + delete ui; +} + +void TrendsWidget::SetUserData() +{ + +} + +void TrendsWidget::SetUserInfo(UserInfo user) +{ + m_UserInfo = user; +} + +void TrendsWidget::LoadTrendsData() +{ +// QList > trends = m_UserData.GetTrends(QDate(),m_UserInfo.token); +// int rowCount = trends.count(); +// int columnCount = 0; +// //更新到tableview中 +// if(rowCount > 2) +// { +// model->insertRow(0); +// QList columns = trends[0]; +// columnCount = columns.count(); +// for (int column = 0; column < columnCount; ++column) { +// QStandardItem *item = new QStandardItem(columns[column]); +// model->setItem(0, column, item); +// } +// } +// rowCount = trends[1].count(); +// QList row1List = trends[1]; +// qDebug() << __FUNCTION__ << trends[1]; +// for(int row = 1 ; row < rowCount; row++) +// { +// model->insertRow(row); +// for(int col = 0; col < columnCount; col++) +// { +// qDebug() << __FUNCTION__ << trends[row][col]; +// QStandardItem *item = new QStandardItem(trends[row][col]); +// model->setItem(col, row, item); +// } +// } +} diff --git a/widget/trendswidget.h b/widget/trendswidget.h new file mode 100644 index 0000000..3b3d42f --- /dev/null +++ b/widget/trendswidget.h @@ -0,0 +1,31 @@ +#ifndef TRENDSWIDGET_H +#define TRENDSWIDGET_H + +#include +#include "userdata.h" +#include + +namespace Ui { +class TrendsWidget; +} + +class TrendsWidget : public QWidget +{ + Q_OBJECT + +public: + explicit TrendsWidget(QWidget *parent = nullptr); + ~TrendsWidget(); + //临时使用,后续需要重新创建 + void SetUserData(); + void SetUserInfo(UserInfo user); + void LoadTrendsData(); + +private: + Ui::TrendsWidget *ui; + UserData m_UserData; + UserInfo m_UserInfo; + QStandardItemModel* model; +}; + +#endif // TRENDSWIDGET_H diff --git a/widget/trendswidget.ui b/widget/trendswidget.ui new file mode 100644 index 0000000..9327cd5 --- /dev/null +++ b/widget/trendswidget.ui @@ -0,0 +1,24 @@ + + + TrendsWidget + + + + 0 + 0 + 983 + 647 + + + + Form + + + + + + + + + +