From b6eafad1f13e81e625c2b9318c7729e6e5c7ba97 Mon Sep 17 00:00:00 2001 From: laixingyu Date: Thu, 14 Dec 2023 14:46:05 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=B8=83=E5=B1=80?= =?UTF-8?q?=E5=8F=8A=E7=95=8C=E9=9D=A2=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=8A=A8?= =?UTF-8?q?=E9=87=8F=E5=91=A8=E6=9C=9F=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TreasureFinder.pro | 9 ++-- basedatamanager.cpp | 2 +- basedatamanager.h | 2 +- main.cpp | 2 +- mainwindow.ui | 6 +-- ruoyi/ruoyidatamanager.cpp | 16 +++---- ruoyi/ruoyidatamanager.h | 2 +- structs.h | 18 ++++++++ userdata.cpp | 4 +- userdata.h | 2 +- widget/trends.cpp | 61 ++++++++++++++++++++++++ widget/trends.h | 33 +++++++++++++ widget/trends.ui | 94 +++++++++++++++++++++++++++++++++++++ widget/trendswidget.cpp | 95 -------------------------------------- widget/trendswidget.h | 30 ------------ widget/trendswidget.ui | 45 ------------------ 16 files changed, 230 insertions(+), 191 deletions(-) create mode 100644 widget/trends.cpp create mode 100644 widget/trends.h create mode 100644 widget/trends.ui delete mode 100644 widget/trendswidget.cpp delete mode 100644 widget/trendswidget.h delete mode 100644 widget/trendswidget.ui 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 - - - - - - - - - From 061cabcd2e35963d149f66d2a1415ec288cb0505 Mon Sep 17 00:00:00 2001 From: laixingyu Date: Thu, 14 Dec 2023 14:46:45 +0800 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0trendwidget?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- widget/trendwidget.cpp | 97 ++++++++++++++++++++++++++++++++++++++++++ widget/trendwidget.h | 28 ++++++++++++ widget/trendwidget.ui | 31 ++++++++++++++ 3 files changed, 156 insertions(+) create mode 100644 widget/trendwidget.cpp create mode 100644 widget/trendwidget.h create mode 100644 widget/trendwidget.ui diff --git a/widget/trendwidget.cpp b/widget/trendwidget.cpp new file mode 100644 index 0000000..e8532f2 --- /dev/null +++ b/widget/trendwidget.cpp @@ -0,0 +1,97 @@ +#include "trendwidget.h" +#include "ui_trendwidget.h" +#include + +TrendWidget::TrendWidget(QWidget *parent) : + QWidget(parent), + ui(new Ui::TrendWidget) +{ + ui->setupUi(this); + m_UserData.SetManagerType(ManagerType::Ruoyi); +} + +TrendWidget::~TrendWidget() +{ + delete ui; +} + +void TrendWidget::SetUserInfo(UserInfo user) +{ + m_UserInfo = user; +} + +void TrendWidget::LoadTrendsData(const TrendsRequestParam ¶m) +{ + if(param.period == m_TrendParam.period && param.tradeDay == m_TrendParam.tradeDay && param.token == m_TrendParam.token) + { + return; + } + if(param.period.isEmpty()) + { + return; + } + ui->tableWidget->clear(); + m_TrendParam = param; + QList > trends = m_UserData.GetTrends(param); + 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/trendwidget.h b/widget/trendwidget.h new file mode 100644 index 0000000..50c700b --- /dev/null +++ b/widget/trendwidget.h @@ -0,0 +1,28 @@ +#ifndef TRENDWIDGET_H +#define TRENDWIDGET_H + +#include +#include "userdata.h" + +namespace Ui { +class TrendWidget; +} + +class TrendWidget : public QWidget +{ + Q_OBJECT + +public: + explicit TrendWidget(QWidget *parent = nullptr); + ~TrendWidget(); + void SetUserInfo(UserInfo user); + void LoadTrendsData(const TrendsRequestParam& param); + +private: + Ui::TrendWidget *ui; + UserData m_UserData; + UserInfo m_UserInfo; + TrendsRequestParam m_TrendParam; +}; + +#endif // TRENDWIDGET_H diff --git a/widget/trendwidget.ui b/widget/trendwidget.ui new file mode 100644 index 0000000..7d997c6 --- /dev/null +++ b/widget/trendwidget.ui @@ -0,0 +1,31 @@ + + + TrendWidget + + + + 0 + 0 + 839 + 639 + + + + Form + + + + + + + 16777215 + 16777215 + + + + + + + + + From 7561975a03d0d0e4f9489fae03c6e04f81915bcb Mon Sep 17 00:00:00 2001 From: laixingyu Date: Fri, 15 Dec 2023 14:18:59 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E4=B8=BA=E5=8D=95=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mainwindow.cpp | 3 ++- mainwindow.h | 2 +- userdata.cpp | 17 +++++++++++++++++ userdata.h | 9 +++++++-- widget/addtradedialog.cpp | 2 ++ widget/logindialog.cpp | 6 +++--- widget/logindialog.h | 2 +- widget/trends.cpp | 2 +- widget/trends.h | 2 +- widget/trendwidget.cpp | 4 ++-- widget/trendwidget.h | 2 +- 11 files changed, 38 insertions(+), 13 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index 3a05ece..a3c0fa6 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -17,7 +17,8 @@ MainWindow::MainWindow(QWidget *parent) InitStyle(); this->installEventFilter(this); InitTradeTable(); - m_UserData.SetManagerType(ManagerType::Ruoyi); +// m_UserData.SetManagerType(ManagerType::Ruoyi); + m_UserData = UserData::Instanse(); } MainWindow::~MainWindow() diff --git a/mainwindow.h b/mainwindow.h index 00d62d2..134362c 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -48,7 +48,7 @@ private slots: private: Ui::MainWindow *ui; UserInfo m_UserInfo; - UserData m_UserData; + UserData* m_UserData; // TradeTableModel* m_pTradesModel; QStandardItemModel* m_pTradeStandardModel; diff --git a/userdata.cpp b/userdata.cpp index 03627fc..829d98b 100644 --- a/userdata.cpp +++ b/userdata.cpp @@ -1,11 +1,23 @@ #include "userdata.h" #include "ruoyi/ruoyidatamanager.h" +UserData* UserData::g_UserData = nullptr; + UserData::UserData() { m_pDataManager = nullptr; } +UserData *UserData::Instanse() +{ + if(g_UserData == nullptr) + { + g_UserData = new UserData; + g_UserData->SetManagerType(Ruoyi); + } + return g_UserData; +} + UserData::~UserData() { if(m_pDataManager) @@ -49,3 +61,8 @@ QList > UserData::GetTrends(const TrendsRequestParam& requestPara return m_pDataManager->GetTrends(requestParam); return QList >(); } + +void UserData::AddTradeRecord() +{ + +} diff --git a/userdata.h b/userdata.h index 7e5f3ba..f147f16 100644 --- a/userdata.h +++ b/userdata.h @@ -10,8 +10,7 @@ class UserData : public QObject { Q_OBJECT public: - UserData(); - ~UserData(); + static UserData* Instanse(); void SetManagerType(ManagerType type); //获取验证码图片;可选 QPixmap GetVerificationCode(); @@ -19,8 +18,14 @@ public: UserInfo Login(const QString& userName,const QString& password,const QString& code); //获取trends QList > GetTrends(const TrendsRequestParam& requestParam); + //添加交易记录 + void AddTradeRecord(); private: + UserData(); + ~UserData(); +private: + static UserData* g_UserData; BaseDataManager* m_pDataManager; }; diff --git a/widget/addtradedialog.cpp b/widget/addtradedialog.cpp index 5c99ee3..60f88ac 100644 --- a/widget/addtradedialog.cpp +++ b/widget/addtradedialog.cpp @@ -2,6 +2,7 @@ #include "ui_addtradedialog.h" #include #include +#include "userdata.h" AddTradeDialog::AddTradeDialog(QWidget *parent) : QDialog(parent), @@ -17,6 +18,7 @@ AddTradeDialog::~AddTradeDialog() void AddTradeDialog::on_pushButton_OK_clicked() { + UserData::Instanse()->AddTradeRecord(); this->accept(); } diff --git a/widget/logindialog.cpp b/widget/logindialog.cpp index 2699aa3..5ee43bb 100644 --- a/widget/logindialog.cpp +++ b/widget/logindialog.cpp @@ -19,7 +19,7 @@ LoginDialog::LoginDialog(QWidget *parent) : Init(); InitStyle(); this->installEventFilter(this); - m_UserData.SetManagerType(ManagerType::Ruoyi); + m_UserData = UserData::Instanse(); GetVerificationCode(); } @@ -127,13 +127,13 @@ void LoginDialog::on_btnMenu_Close_clicked() void LoginDialog::GetVerificationCode() { - QPixmap pix = m_UserData.GetVerificationCode(); + QPixmap pix = m_UserData->GetVerificationCode(); ui->label_code->setPixmap(pix.scaledToHeight(34)); } void LoginDialog::on_pushButton_login_clicked() { - m_UserInfo = m_UserData.Login(ui->username->text(),ui->password->text(),ui->code->text()); + m_UserInfo = m_UserData->Login(ui->username->text(),ui->password->text(),ui->code->text()); qDebug() << __FUNCTION__ << " login finished: "<< m_UserInfo.userName << m_UserInfo.token << m_UserInfo.uuid; if(m_UserInfo.token.isEmpty()) { diff --git a/widget/logindialog.h b/widget/logindialog.h index c45c07d..01c874e 100644 --- a/widget/logindialog.h +++ b/widget/logindialog.h @@ -43,7 +43,7 @@ private: QString &highColor); private: Ui::LoginDialog *ui; - UserData m_UserData; + UserData* m_UserData; UserInfo m_UserInfo; //根据QSS样式获取对应颜色值 diff --git a/widget/trends.cpp b/widget/trends.cpp index 6b4d28a..9e77c73 100644 --- a/widget/trends.cpp +++ b/widget/trends.cpp @@ -10,7 +10,7 @@ Trends::Trends(QWidget *parent) : ui(new Ui::Trends) { ui->setupUi(this); - m_UserData.SetManagerType(ManagerType::Ruoyi); + m_UserData = UserData::Instanse(); ui->periodCombo->addItems(QStringList() << "1" << "3" << "5" << "10" << "15" << "20" << "30"); ui->periodCombo->setCurrentText("20"); this->LoadTrendsData(); diff --git a/widget/trends.h b/widget/trends.h index 2e63bfe..c1f887c 100644 --- a/widget/trends.h +++ b/widget/trends.h @@ -25,7 +25,7 @@ private slots: private: Ui::Trends *ui; - UserData m_UserData; + UserData* m_UserData; UserInfo m_UserInfo; QMap trendsMap;// }; diff --git a/widget/trendwidget.cpp b/widget/trendwidget.cpp index e8532f2..7a69f4a 100644 --- a/widget/trendwidget.cpp +++ b/widget/trendwidget.cpp @@ -7,7 +7,7 @@ TrendWidget::TrendWidget(QWidget *parent) : ui(new Ui::TrendWidget) { ui->setupUi(this); - m_UserData.SetManagerType(ManagerType::Ruoyi); + m_UserData = UserData::Instanse(); } TrendWidget::~TrendWidget() @@ -32,7 +32,7 @@ void TrendWidget::LoadTrendsData(const TrendsRequestParam ¶m) } ui->tableWidget->clear(); m_TrendParam = param; - QList > trends = m_UserData.GetTrends(param); + QList > trends = m_UserData->GetTrends(param); int rowCount = trends.count(); int columnCount = 0; //更新到tableview中 diff --git a/widget/trendwidget.h b/widget/trendwidget.h index 50c700b..3f7e016 100644 --- a/widget/trendwidget.h +++ b/widget/trendwidget.h @@ -20,7 +20,7 @@ public: private: Ui::TrendWidget *ui; - UserData m_UserData; + UserData* m_UserData; UserInfo m_UserInfo; TrendsRequestParam m_TrendParam; };