Files
HIS-GUI/gui/dialogs/payment_management_dialog.h
2026-04-07 17:18:33 +08:00

88 lines
2.0 KiB
C++

#ifndef PAYMENT_MANAGEMENT_DIALOG_H
#define PAYMENT_MANAGEMENT_DIALOG_H
#include <QDialog>
#include <QString>
#include <QTableWidget>
#include <memory>
// Forward declarations
class QPushButton;
class QTabWidget;
class QLabel;
class QLineEdit;
class QTreeWidget;
class QTreeWidgetItem;
class QChartView;
class QChart;
class QBarSeries;
class QPieSeries;
class QSplineSeries;
namespace core {
class HisCore;
}
/**
* 支付管理对话框
* 供管理员查看和管理所有的支付记录
*/
class PaymentManagementDialog : public QDialog {
Q_OBJECT
public:
explicit PaymentManagementDialog(core::HisCore& core, QWidget* parent = nullptr);
private slots:
void onRefreshPayments();
void onRefundPayment();
void onGenerateDailyReport();
void onGenerateMonthlyReport();
void onGenerateRevenueReport();
void onPaymentSelectionChanged();
void onFilterByStatus();
void onTabChanged(int index);
void onSearchSettlements();
private:
void setupUI();
void loadPaymentRecords();
void loadSettlementRecords();
void updateStatistics();
void displayStatistics(const QString& title, const QString& content);
void updateDailyChart();
void updateMonthlyChart();
void updateRevenueChart();
core::HisCore& core_;
// UI Components
QTabWidget* tabWidget_;
// Payment Tab
QTableWidget* paymentTable_;
QPushButton* refreshButton_;
QPushButton* refundButton_;
QLabel* statisticsLabel_;
QLineEdit* statusFilterEdit_;
// Settlement Tab
QTreeWidget* settlementTree_;
QPushButton* settlementRefreshButton_;
QLineEdit* settlementSearchEdit_;
QPushButton* settlementSearchButton_;
// Reports Tab
QPushButton* dailyReportButton_;
QPushButton* monthlyReportButton_;
QPushButton* revenueReportButton_;
QLabel* reportLabel_;
// Chart components
QWidget* dailyChartWidget_;
QWidget* monthlyChartWidget_;
QWidget* revenueChartWidget_;
};
#endif