blastopepage.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #ifndef BLASTOPEPAGE_H
  2. #define BLASTOPEPAGE_H
  3. #include <QWidget>
  4. #include <QPushButton>
  5. #include <QLayout>
  6. // #include <QWebEnginePage>
  7. #include <QNetworkAccessManager>
  8. #include <QNetworkReply>
  9. // #include <QWebEngineView>
  10. #include <QJsonObject>
  11. #include <QJsonDocument>
  12. #include <QJsonArray>
  13. #include <QMessageBox>
  14. #include <QProgressBar>
  15. #include <QLayout>
  16. #include <QStandardItemModel>
  17. #include <QSet>
  18. #include "PageWidget.h"
  19. #include "hprojectdao.h"
  20. #include "fireWidget/firingwidget.h" // 包含 firingWidget 头文件
  21. #include "countdownwidget.h"
  22. #include "./serial/serialtool.h"
  23. // 自定义结构体
  24. struct ProgressBarTriple {
  25. QProgressBar* bar1;
  26. QProgressBar* bar2;
  27. QProgressBar* bar3;
  28. // 构造函数
  29. ProgressBarTriple(QProgressBar* b1, QProgressBar* b2, QProgressBar* b3)
  30. : bar1(b1), bar2(b2), bar3(b3) {}
  31. };
  32. namespace Ui {
  33. class BlastOpePage;
  34. }
  35. class BlastOpePage : public QWidget
  36. {
  37. Q_OBJECT
  38. public:
  39. explicit BlastOpePage(QWidget *parent = nullptr);
  40. ~BlastOpePage();
  41. private slots:
  42. void PageChanged(int page);
  43. void onComboBoxIndexChanged(int index);
  44. void updateProgressBar(int value,int row);
  45. void onUpdateBlastStatus(int status,int row);
  46. void changeButByMqtt(int status, int row);
  47. void showDownWidget(QString uuid,const QString &topic,const QString &message);
  48. void updateProject(QString uuid);
  49. void destroyFiringWidget(const QString &uuid);
  50. void on_btnSelect_clicked();
  51. void onItemChanged(QStandardItem *item);
  52. void handleSelect(QString uuid);
  53. void showDownWidgetSelect();
  54. void selectBlasting();
  55. void destroyFiringWidgetSelect(const QString &uuid);
  56. private:
  57. void handleFeaturePermission(QWebEnginePage *page, const QUrl &securityOrigin, QWebEnginePage::Feature feature);
  58. void RefreshData();
  59. void loadDataFromSource(int currentPage,int pageSize);
  60. void InitFace();
  61. void closeWebViewAndRestoreUI();
  62. void parseJsonString(const QJsonDocument &jsonDoc);
  63. void onUrlChanged(const QUrl &newUrl);
  64. void initPagination();
  65. QJsonObject sendPostRequest(const QUrl &url, const QJsonObject &data);
  66. QJsonObject getMetaInfo();
  67. void handleButtonClick(int row,QPushButton *button);
  68. bool checkUuidsSame();
  69. private:
  70. Ui::BlastOpePage *ui;
  71. QList<HeaderInfo> headers;
  72. QStandardItemModel *model;
  73. QMap<QString, firingWidget*> uuidWidgetMap;
  74. QWebEngineView *view;
  75. QVBoxLayout *layout;
  76. QString certifyId;
  77. PageWidget *pageWidget;
  78. QJsonArray dataArray;
  79. HProjectDao dao;
  80. QVector<ProgressBarTriple> progressBars; // 用于保存每行的两个进度条指针
  81. QMap<int, QString> uuidMap; // 用于存储行号和对应的 uuid
  82. QMap<QString, firingWidget*> uuidWidgetSMap;
  83. SerialTool* serialTool;
  84. QSet<QString> selectedUuids;
  85. QMetaObject::Connection connectionItem;
  86. int pageSize; //每页显示的记录数量
  87. int currentPage; //当前页面
  88. int totalCount;
  89. };
  90. #endif // BLASTOPEPAGE_H