#ifndef SYSCHARTNAVIGATION_H #define SYSCHARTNAVIGATION_H #if _MSC_VER >= 1600 #pragma execution_character_set("utf-8") #endif #include #include #include #include class TComboBox; class TSplitter; class QVBoxLayout; class TChartWidget; class TScrollArea; class QScrollArea; class TAccordion; class SysChartNavigation : public TopClassAbs { Q_OBJECT public: explicit SysChartNavigation(const QString &iModuleName = QString(""), const QVariantMap &iUrlPars = QVariantMap(), QWidget *iParent = nullptr); ~SysChartNavigation(); public slots: void onSearch(); // 搜索事件 void onClear(); // 清空输入 void onDoubleClicked(); // 图形控件的双击事件 void onExportPdfClicked(const QString &iFileStr = ""); // 导出PDF事件 void onExportExcelClicked(const QString &iFileStr = ""); // 导出Excel事件 (ExcelXS) void onExportExcelClickedOld(); // 导出Excel事件 (TExcel) void graphOnly(int iMode = 0); void setChartVisibleData(const QVariantMap &iDataMap); QVariantMap chartVisibleData(); TUiLoader *uiloader(); QString currentNaviName(); protected: void uidChangeEvent(const QString &iUidStr) override; void resizeEvent(QResizeEvent *iEvent) override; private: void initUi(); void dynamicGenerateChart(const int &pId, const QString &funcJsonData, const QVariantMap &packMap, const QString &wgtType); void configGenerateChart(const int &pId, const QString &funcJsonData, const QVariantMap &packMap, const QString &wgtType); void generateUiLoader(const int &pId, const QString &funcJsonData, const QVariantMap &packMap, const QString &wgtType); QString mapToJson(const QVariantMap &data); QVariantList listPageType(); //得到导出PDF的纸张类型 QVariantList listOpenType(); //导出PDF是否打开 QPagedPaintDevice::PageSize pageTypeToEnum(const QString &pageSize); //纸张类型转Enum int calcTreeDepth(const QVariantList &iDataList); int calcTreeDepth(const QVariantMap &iDataMap); int calcTreeLeafSize(const QVariantMap &iDataMap); private: TComboBox* mSizeComboBox = nullptr; TComboBox* mOpenComboBox = nullptr; TUiLoader* mUiLoader = nullptr; TSplitter* mSplitter = nullptr; QWidget* mChartListWgt = nullptr; QVBoxLayout* mUiLoaderLayout = nullptr; QMap mChartMap; QMap mChartAreaMap; QMap mChartParameterRemarkMap; //TChartWidget对应的graphId QMap mUiLoaderMap; QMap mUiLoaderParamRemarkMap; TScrollArea *mScrollArea = nullptr; TAccordion *mAccordion = nullptr; QVariantMap mChartVisibleData; QString mNaviName; QVariantMap mDataSrcRetCache; // 数据源函数执行结果缓存(图表) QVariantMap mDataSrcRetCacheUiLoader; // 数据源函数执行结果缓存(UiLoader) QVariantMap mDataSrcRetStrCache; }; #endif // SYSCHARTNAVIGATION_H