diff --git a/TreasureFinder.pro b/TreasureFinder.pro index 40f401e..c62e47d 100644 --- a/TreasureFinder.pro +++ b/TreasureFinder.pro @@ -17,10 +17,11 @@ SOURCES += \ mainwindow.cpp \ model/tradetablemodel.cpp \ ruoyi/ruoyidatamanager.cpp \ + widget/trendwidget.cpp \ userdata.cpp \ widget/addtradedialog.cpp \ widget/logindialog.cpp \ - widget/trendswidget.cpp + widget/trends.cpp HEADERS += \ basedatamanager.h \ @@ -28,16 +29,18 @@ HEADERS += \ model/tradetablemodel.h \ ruoyi/ruoyidatamanager.h \ structs.h \ + widget/trendwidget.h \ userdata.h \ widget/addtradedialog.h \ widget/logindialog.h \ - widget/trendswidget.h + widget/trends.h FORMS += \ mainwindow.ui \ + widget/trendwidget.ui \ widget/addtradedialog.ui \ widget/logindialog.ui \ - widget/trendswidget.ui + widget/trends.ui win32-msvc2010 { SPEC = win32-msvc2010 diff --git a/basedatamanager.cpp b/basedatamanager.cpp index 3171e14..10cae2b 100644 --- a/basedatamanager.cpp +++ b/basedatamanager.cpp @@ -23,7 +23,7 @@ UserInfo BaseDataManager::Login(const QString &userName, const QString &password return UserInfo(); } -QList > BaseDataManager::GetTrends(QDate date,const QString& token) +QList > BaseDataManager::GetTrends(const TrendsRequestParam& requestParam) { return QList >(); } diff --git a/basedatamanager.h b/basedatamanager.h index 951accd..e037b53 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 QList > GetTrends(QDate date,const QString& token); + virtual QList > GetTrends(const TrendsRequestParam& requestParam); signals: //请求结束 ret 返回值 0成功 非0失败 diff --git a/main.cpp b/main.cpp index 8e276fc..ac46b75 100644 --- a/main.cpp +++ b/main.cpp @@ -26,7 +26,7 @@ int main(int argc, char *argv[]) { MainWindow w; w.SetUserInfo(login.GetUserInfo()); - w.LoadTrendsData(); +// w.LoadTrendsData(); QUIHelper::setFormInCenter(&login); w.show(); return app.exec(); diff --git a/mainwindow.ui b/mainwindow.ui index 373bdbd..e170b61 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -443,7 +443,7 @@ - + @@ -461,9 +461,9 @@ - TrendsWidget + Trends QWidget -
widget/trendswidget.h
+
widget/trends.h
1
diff --git a/ruoyi/ruoyidatamanager.cpp b/ruoyi/ruoyidatamanager.cpp index b29c3e6..b160db5 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; } -QList > RuoyiDataManager::GetTrends(QDate date,const QString& token) +QList > RuoyiDataManager::GetTrends(const TrendsRequestParam& requestParam) { QNetworkRequest request; QString urlStr(m_sUrl + "/prod-api/stocksystem/trends/listSection"); @@ -81,17 +81,17 @@ QList > RuoyiDataManager::GetTrends(QDate date,const QString& tok QUrl url = QUrl(urlStr); QUrlQuery query; - query.addQueryItem("Token", token.toUtf8()); - query.addQueryItem("pageNum", "1"); - query.addQueryItem("pageSize", "10"); - query.addQueryItem("tradeDay", "2023-12-07"); - query.addQueryItem("type", "20"); + query.addQueryItem("Token", requestParam.token.toUtf8()); + query.addQueryItem("pageNum", requestParam.pageNum); + query.addQueryItem("pageSize", requestParam.pageSize); + query.addQueryItem("tradeDay", requestParam.tradeDay); + query.addQueryItem("type", requestParam.period); url.setQuery(query); request.setUrl(url); request.setHeader(QNetworkRequest::ContentTypeHeader,"application/json;charset=UTF-8"); - request.setRawHeader("Authorization",QString("Bearer %1").arg(token).toLocal8Bit()); - qDebug() << __FUNCTION__ << " rawHeader: " << QString("Bearer %1").arg(token).toLocal8Bit(); + request.setRawHeader("Authorization",QString("Bearer %1").arg(requestParam.token).toLocal8Bit()); + qDebug() << __FUNCTION__ << " rawHeader: " << QString("Bearer %1").arg(requestParam.token).toLocal8Bit(); QNetworkReply *reply = m_pNetworkManager->get(request); reply->setProperty("msgType",QVariant(int(GETTRENDS))); diff --git a/ruoyi/ruoyidatamanager.h b/ruoyi/ruoyidatamanager.h index cc87deb..73f6446 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; - QList > GetTrends(QDate date,const QString& token) override; + QList > GetTrends(const TrendsRequestParam& requestParam) override; public slots: void RequestFinished(); diff --git a/structs.h b/structs.h index ee09904..393b8c0 100644 --- a/structs.h +++ b/structs.h @@ -19,4 +19,22 @@ typedef struct tagUserInfo QPixmap codePix; }UserInfo; +typedef struct tagTrendsRequstParam +{ + QString period;//"1","3","5","10","15","20,"30",查询周期 + QString tradeDay;//交易日 + QString token; + QString pageNum;//页码 + QString pageSize;//页数量 + + tagTrendsRequstParam() + { + period = ""; + tradeDay = "2023-12-01"; + token = ""; + pageNum = "1"; + pageSize = "10"; + } +}TrendsRequestParam; + #endif // STRUCTS_H diff --git a/userdata.cpp b/userdata.cpp index e105f7c..03627fc 100644 --- a/userdata.cpp +++ b/userdata.cpp @@ -43,9 +43,9 @@ UserInfo UserData::Login(const QString &userName, const QString &password, const return m_pDataManager->Login(userName,password,code); } -QList > UserData::GetTrends(QDate date, const QString &token) +QList > UserData::GetTrends(const TrendsRequestParam& requestParam) { if(m_pDataManager != nullptr) - return m_pDataManager->GetTrends(date,token); + return m_pDataManager->GetTrends(requestParam); return QList >(); } diff --git a/userdata.h b/userdata.h index 2aae7c4..7e5f3ba 100644 --- a/userdata.h +++ b/userdata.h @@ -18,7 +18,7 @@ public: //登录 获取用户信息,同步等待 UserInfo Login(const QString& userName,const QString& password,const QString& code); //获取trends - QList > GetTrends(QDate date,const QString& token); + QList > GetTrends(const TrendsRequestParam& requestParam); private: BaseDataManager* m_pDataManager; diff --git a/widget/trends.cpp b/widget/trends.cpp new file mode 100644 index 0000000..6b4d28a --- /dev/null +++ b/widget/trends.cpp @@ -0,0 +1,61 @@ +#include "trends.h".h" +#include "ui_trends.h" +#include +#include +#include +#include "trendwidget.h" + +Trends::Trends(QWidget *parent) : + QWidget(parent), + ui(new Ui::Trends) +{ + ui->setupUi(this); + m_UserData.SetManagerType(ManagerType::Ruoyi); + ui->periodCombo->addItems(QStringList() << "1" << "3" << "5" << "10" << "15" << "20" << "30"); + ui->periodCombo->setCurrentText("20"); + this->LoadTrendsData(); + connect(ui->periodCombo,SIGNAL(currentIndexChanged(int)),this,SLOT(periodCombo_currentIndexChanged(int))); +} + +Trends::~Trends() +{ + delete ui; +} + +void Trends::SetUserInfo(UserInfo user) +{ + m_UserInfo = user; +} + +void Trends::LoadTrendsData() +{ + TrendsRequestParam param; + param.token = m_UserInfo.token; + param.period = ui->periodCombo->currentText(); + param.tradeDay = ui->tradeDay->text(); + if(param.period.isEmpty() || param.token.isEmpty() || param.tradeDay.isEmpty()) + { + return; + } + TrendWidget* trend; + if(trendsMap.contains(param.period)) + { + ui->stackedWidget->setCurrentWidget(trendsMap[param.period]); + trend = trendsMap[param.period]; + } + else + { + //创建新的 + trend = new TrendWidget; + trend->setObjectName(param.period); + trendsMap.insert(param.period,trend); + ui->stackedWidget->addWidget(trend); + } + trend->LoadTrendsData(param); +} + +void Trends::periodCombo_currentIndexChanged(int index) +{ + LoadTrendsData(); +} + diff --git a/widget/trends.h b/widget/trends.h new file mode 100644 index 0000000..2e63bfe --- /dev/null +++ b/widget/trends.h @@ -0,0 +1,33 @@ +#ifndef TRENDS_H +#define TRENDS_H + +#include +#include "userdata.h" +#include + +namespace Ui { +class Trends; +} + +class TrendWidget; +class Trends : public QWidget +{ + Q_OBJECT + +public: + explicit Trends(QWidget *parent = nullptr); + ~Trends(); + void SetUserInfo(UserInfo user); + void LoadTrendsData(); + +private slots: + void periodCombo_currentIndexChanged(int index); + +private: + Ui::Trends *ui; + UserData m_UserData; + UserInfo m_UserInfo; + QMap trendsMap;// +}; + +#endif // TRENDS_H diff --git a/widget/trends.ui b/widget/trends.ui new file mode 100644 index 0000000..07c1af8 --- /dev/null +++ b/widget/trends.ui @@ -0,0 +1,94 @@ + + + Trends + + + + 0 + 0 + 1440 + 647 + + + + Form + + + + + + + + + + + + period + + + + + + + + + + trade_date + + + + + + + + 2023 + 12 + 1 + + + + yyyy-MM-dd + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + + Tab 1 + + + + + Tab 2 + + + + + + + + + diff --git a/widget/trendswidget.cpp b/widget/trendswidget.cpp deleted file mode 100644 index 17e7eaa..0000000 --- a/widget/trendswidget.cpp +++ /dev/null @@ -1,95 +0,0 @@ -#include "trendswidget.h" -#include "ui_trendswidget.h" -#include -#include -#include - -TrendsWidget::TrendsWidget(QWidget *parent) : - QWidget(parent), - ui(new Ui::TrendsWidget) -{ - ui->setupUi(this); - m_UserData.SetManagerType(ManagerType::Ruoyi); -} - -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) - { - qDebug() << __FUNCTION__ << " trends[0]: " << trends[0]; - QStringList headText; - QList columns = trends[0]; - QList rows0 = trends[1]; - QList rows1 = trends[2]; - qDebug() << __FUNCTION__ << " trends[1]: " << trends[1]; - qDebug() << __FUNCTION__ << " trends[2]: " << trends[2]; - columnCount = columns.count(); - ui->tableWidget->setRowCount(trends[1].count()); - ui->tableWidget->setColumnCount(columnCount); - for (int column = 0; column < columnCount; ++column) { - headText << columns[column]; - } - - ui->tableWidget->setHorizontalHeaderLabels(headText); - ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); - ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); - ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); - ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); - ui->tableWidget->setAlternatingRowColors(true); - ui->tableWidget->verticalHeader()->setVisible(false); -// ui->tableWidget->horizontalHeader()->setStretchLastSection(true); - } - - //设置首列 - int tableRows = trends[1].count(); - for(int row = 0; row < tableRows; row++) - { - ui->tableWidget->setRowHeight(row, 24); - QTableWidgetItem *item = new QTableWidgetItem(trends[1][row]); - ui->tableWidget->setItem(row, 0, item); - - } - for(int datarow = 2, col = 1; datarow < rowCount; datarow++,col++) - { - for(int tablerow = 0 ; tablerow < tableRows; tablerow++) - { - QTableWidgetItem *item = new QTableWidgetItem(trends[datarow][tablerow]); - if(item->text().toInt() <= 3 && item->text().toInt() > 0) - { - item->setTextColor(Qt::white); - item->setBackground(QBrush(Qt::red)); - } - else if(item->text().toInt() <= 6 && item->text().toInt() > 3) - { - item->setTextColor(Qt::white); - item->setBackground(QBrush(QColor(255,157,0))); - } - else if(item->text().toInt() <= 10 && item->text().toInt() > 6) - { - item->setTextColor(Qt::white); - item->setBackground(QBrush(QColor(255,208,0))); - } - ui->tableWidget->setItem(tablerow, col, item); - } - } -} diff --git a/widget/trendswidget.h b/widget/trendswidget.h deleted file mode 100644 index 7b37bcd..0000000 --- a/widget/trendswidget.h +++ /dev/null @@ -1,30 +0,0 @@ -#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; -}; - -#endif // TRENDSWIDGET_H diff --git a/widget/trendswidget.ui b/widget/trendswidget.ui deleted file mode 100644 index e85f81c..0000000 --- a/widget/trendswidget.ui +++ /dev/null @@ -1,45 +0,0 @@ - - - TrendsWidget - - - - 0 - 0 - 1440 - 647 - - - - Form - - - - - - - 16777215 - 16777215 - - - - - - - - - Tab 1 - - - - - Tab 2 - - - - - - - - -