#ifndef BLASTPROJECTPAGE_H #define BLASTPROJECTPAGE_H #include #include #include #include #include "../PageWidget.h" #include "../mqtt/mqttclient.h" #include "../utils/httpClient.h" #include "hprojectdao.h" #include "projectdialog.h" namespace Ui { class BlastProjectPage; } class BlastProjectPage : public QWidget { Q_OBJECT public: explicit BlastProjectPage(QWidget *parent = nullptr); ~BlastProjectPage(); private slots: void PageChanged(int page); void onComboBoxIndexChanged(int index); void on_pushButton_clicked(); void messageAndTopicReceived(const QByteArray &message, const QMqttTopicName &topic); void updateProjectUUId(QString uuid); private: void refreshData(); void loadDataFromSource(int currentPage, int pageSize); void initUserAndDialogOptions(const QJsonArray &arrayData); void addressOptions(const QJsonArray &jsonArray); void parseJsonString(const QJsonDocument &jsonDoc); void fillComboBox(QComboBox *comboBox, const QJsonArray &jsonArray); void createProject(const QMap &data); void updateButtonClicked(const HProject &project); void updateProject(const QMap &data); void deleteButtonClicked(const HProject &project); void publishAllPendingBlastProjects(); private: Ui::BlastProjectPage *ui; PageWidget *pageWidget; ProjectDialog *m_dialog; HttpClient *m_httpClient; HProjectDao dao; QJsonArray dataArray; QJsonArray dataArrayAddress; QMap m_userNameById; int pageSize; // 每页显示的记录数量 int currentPage; // 当前页面 int totalCount; int updateId; QString getUserNameByIds(const QStringList &userIds); QJsonArray getUserInfoByIds(const QStringList &userIds); }; #endif // BLASTPROJECTPAGE_H