From 52d85dd31975600ba8c412ae0a24dd82bf3109ce Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Fri, 27 Nov 2020 11:32:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=81=9A=E4=BA=86=E4=B8=80=E4=BA=9B=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...C端导入模板(客户经理版).xlsx | Bin 0 -> 15001 bytes .../PC端导入模板(管理员版).xlsx | Bin 0 -> 15599 bytes .../car_dealer_util/car_dealer_util.vcxproj | 4 +- .../car_dealer_util.vcxproj.filters | 12 +- .../DataManipulation/Excel/LoadFromExcel.cpp | 7 +- .../DataManipulation/Excel/LoadFromExcel.h | 10 +- .../RepairRecommandationRecord.cpp | 2 + ...nRecord.h => RepairRecommandationRecord.h} | 32 +-- .../RepairSuggestionRecord.cpp | 0 .../QCarDealerAchievementWidget.cpp | 76 +++---- .../QCarDealerAchievementWidget.ui | 15 ++ .../QCarDealerSchemaWidget.cpp | 1 + .../QCarDealerSchemaWidget.ui | 18 ++ .../QRepairRecommendationWidget.cpp | 55 ++++- .../QRepairRecommendationWidget.h | 17 +- .../QRepairRecommendationWidget.ui | 194 ++++++++++++++++-- .../source/Widgets/MainFrame/QMainFrame.ui | 2 +- 17 files changed, 356 insertions(+), 89 deletions(-) create mode 100644 code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/PC端导入模板(客户经理版).xlsx create mode 100644 code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/PC端导入模板(管理员版).xlsx create mode 100644 code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairRecommandationRecord.cpp rename code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/{RepairSuggestionRecord.h => RepairRecommandationRecord.h} (84%) delete mode 100644 code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairSuggestionRecord.cpp diff --git a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/PC端导入模板(客户经理版).xlsx b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/PC端导入模板(客户经理版).xlsx new file mode 100644 index 0000000000000000000000000000000000000000..a7fbbc872a4ac222bb88a22ee0d5fc50c14b5a0a GIT binary patch literal 15001 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 literal 0 HcmV?d00001 diff --git a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/PC端导入模板(管理员版).xlsx b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/PC端导入模板(管理员版).xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e58b1aceda4fcd65190f8b2f97b5d28f3a63d682 GIT binary patch literal 15599 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 literal 0 HcmV?d00001 diff --git a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj index 6fc3dce..d1a5dbf 100644 --- a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj +++ b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj @@ -27,7 +27,7 @@ - + @@ -71,7 +71,7 @@ - + diff --git a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj.filters b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj.filters index 3b6739b..7084774 100644 --- a/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj.filters +++ b/code/cpp/car_dealer_util/proj/vs2019/car_dealer_util/car_dealer_util.vcxproj.filters @@ -187,9 +187,6 @@ 窗口\内容窗口\数据管理\车商业绩表 - - 数据\数据结构\送返修推荐表 - 数据\数据结构\新送返修监控报表 @@ -205,6 +202,9 @@ 数据\数据结构\车商 + + 数据\数据结构\送返修推荐表 + @@ -310,9 +310,6 @@ 数据\数据管理\导入导出\直接导入导出 - - 数据\数据结构\送返修推荐表 - 数据\数据结构\新送返修监控报表 @@ -328,5 +325,8 @@ 数据\数据结构\车商 + + 数据\数据结构\送返修推荐表 + \ No newline at end of file diff --git a/code/cpp/car_dealer_util/source/Data/DataManipulation/Excel/LoadFromExcel.cpp b/code/cpp/car_dealer_util/source/Data/DataManipulation/Excel/LoadFromExcel.cpp index aaea631..61b7ea9 100644 --- a/code/cpp/car_dealer_util/source/Data/DataManipulation/Excel/LoadFromExcel.cpp +++ b/code/cpp/car_dealer_util/source/Data/DataManipulation/Excel/LoadFromExcel.cpp @@ -3,6 +3,7 @@ #include "LoadFromExcel.h" #include "../../excel/excel.h" #include "../../Data/Datastructure/CarDealer/CarDealerMap.h" +#include "../../Datastructure/RepairSuggestion/RepairRecommandationRecord.h" using namespace std; using namespace libxl; @@ -418,10 +419,10 @@ void LoadRepairOrderFromXlsx( const std::wstring & filePath, pBook->release(); } -void LoadRepairSuggestionFromXlsx( const std::wstring & filePath, +void LoadRepairRecommandationFromXlsx( const std::wstring & filePath, unsigned sheetIndex, unsigned startRowIndex, - std::vector & recordVector ) + std::vector & recordVector ) { Book * pBook = xlCreateXMLBookW(); Sheet * pSheet = nullptr; @@ -474,7 +475,7 @@ void LoadRepairSuggestionFromXlsx( const std::wstring & filePat wstring messageSendingDate = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true ); wstring dataSource = ReadCellStringFromXlsx( pBook, sheetIndex, rowIndex, colunmIndex++, true ); - RepairSuggestionRecord record( orderNo, + RepairRecommandationRecord record( orderNo, orderType, notifyNo, suggestedCarDealerCode, diff --git a/code/cpp/car_dealer_util/source/Data/DataManipulation/Excel/LoadFromExcel.h b/code/cpp/car_dealer_util/source/Data/DataManipulation/Excel/LoadFromExcel.h index 7258ee6..b4b2410 100644 --- a/code/cpp/car_dealer_util/source/Data/DataManipulation/Excel/LoadFromExcel.h +++ b/code/cpp/car_dealer_util/source/Data/DataManipulation/Excel/LoadFromExcel.h @@ -5,7 +5,7 @@ #include "../../Datastructure/CarDealerScheme/CarDealerScheme.h" #include "../../Datastructure/CarDealerAchievement/CarDealerAchievement.h" #include "../../Datastructure/RepairOrder/RepairOrder.h" -#include "../../Datastructure/RepairSuggestion/RepairSuggestionRecord.h" +#include "../../Datastructure/RepairSuggestion/RepairRecommandationRecord.h" #include "../../Datastructure/新送返修监控报表/新送返修监控报表.h" /************************************************ @@ -56,10 +56,10 @@ void LoadRepairOrderFromXlsx( const std::wstring & filePath, * \param startRowIndex * \param recordVector ************************************************/ -void LoadRepairSuggestionFromXlsx( const std::wstring & filePath, - unsigned int sheetIndex, - unsigned int startRowIndex, - std::vector & recordVector ); +void LoadRepairRecommandationFromXlsx( const std::wstring & filePath, + unsigned int sheetIndex, + unsigned int startRowIndex, + std::vector & recordVector ); /************************************************ diff --git a/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairRecommandationRecord.cpp b/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairRecommandationRecord.cpp new file mode 100644 index 0000000..cc2a491 --- /dev/null +++ b/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairRecommandationRecord.cpp @@ -0,0 +1,2 @@ + +#include "RepairRecommandationRecord.h" \ No newline at end of file diff --git a/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairSuggestionRecord.h b/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairRecommandationRecord.h similarity index 84% rename from code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairSuggestionRecord.h rename to code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairRecommandationRecord.h index f932279..6b17186 100644 --- a/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairSuggestionRecord.h +++ b/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairRecommandationRecord.h @@ -6,20 +6,20 @@ /************************************************ * \brief 送返修推荐表记录 ************************************************/ -class RepairSuggestionRecord +class RepairRecommandationRecord { public: - RepairSuggestionRecord( std::wstring orderNo, - std::wstring orderType, - std::wstring notifyNo, - std::wstring suggestedCarDealerCode, - std::wstring suggestedCarDealerName, - std::wstring damageDate, - std::wstring plateNumber, - std::wstring brandName, - std::wstring messageType, - std::wstring messageSendingDate, - std::wstring dataSource ) + RepairRecommandationRecord( std::wstring orderNo, + std::wstring orderType, + std::wstring notifyNo, + std::wstring suggestedCarDealerCode, + std::wstring suggestedCarDealerName, + std::wstring damageDate, + std::wstring plateNumber, + std::wstring brandName, + std::wstring messageType, + std::wstring messageSendingDate, + std::wstring dataSource ) : orderNo_( std::move( orderNo ) ), orderType_( std::move( orderType ) ), notifyNo_( std::move( notifyNo ) ), @@ -34,7 +34,7 @@ public: { } - RepairSuggestionRecord( const RepairSuggestionRecord & other ) + RepairRecommandationRecord( const RepairRecommandationRecord & other ) : orderNo_( other.orderNo_ ), orderType_( other.orderType_ ), notifyNo_( other.notifyNo_ ), @@ -49,7 +49,7 @@ public: { } - RepairSuggestionRecord( RepairSuggestionRecord && other ) + RepairRecommandationRecord( RepairRecommandationRecord && other ) : orderNo_( std::move( other.orderNo_ ) ), orderType_( std::move( other.orderType_ ) ), notifyNo_( std::move( other.notifyNo_ ) ), @@ -64,7 +64,7 @@ public: { } - RepairSuggestionRecord & operator=( const RepairSuggestionRecord & other ) + RepairRecommandationRecord & operator=( const RepairRecommandationRecord & other ) { if ( this == &other ) return *this; @@ -82,7 +82,7 @@ public: return *this; } - RepairSuggestionRecord & operator=( RepairSuggestionRecord && other ) + RepairRecommandationRecord & operator=( RepairRecommandationRecord && other ) { if ( this == &other ) return *this; diff --git a/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairSuggestionRecord.cpp b/code/cpp/car_dealer_util/source/Data/Datastructure/RepairSuggestion/RepairSuggestionRecord.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerAchievementWidget/QCarDealerAchievementWidget.cpp b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerAchievementWidget/QCarDealerAchievementWidget.cpp index 9eab222..c734a9e 100644 --- a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerAchievementWidget/QCarDealerAchievementWidget.cpp +++ b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerAchievementWidget/QCarDealerAchievementWidget.cpp @@ -50,7 +50,7 @@ void QCarDealerAchievementWidget::onImport() try { ImportCarDealerAchievementToOracleCpp( userName, password, tnsName, achievementVector ); - + showCarDealerAchievement(); } catch ( runtime_error & error ) @@ -65,80 +65,80 @@ void QCarDealerAchievementWidget::onImport() void QCarDealerAchievementWidget::showCarDealerAchievement() { + QTableWidgetItem * pItem = nullptr; + int rowIndex = 0; + int columnIndex = 0; + ui.pTableWidgetAchievement->clearContents(); - - QTableWidgetItem * pItem = nullptr; - int rowIndex = 0; - int columnIndex = 0; - - ui.pTableWidgetAchievement->setRowCount(achievementVector.size()); + ui.pTableWidgetAchievement->setRowCount( achievementVector.size() ); + ui.pTableWidgetAchievement->horizontalHeader()->setHighlightSections( false ); for ( auto iter = achievementVector.begin(); iter != achievementVector.end(); ++iter, ++rowIndex ) { //年度 - pItem = new QTableWidgetItem(QString::fromStdWString(iter->getTheYear())); - pItem->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter); + pItem = new QTableWidgetItem( QString::fromStdWString( iter->getTheYear() ) ); + pItem->setTextAlignment( Qt::AlignVCenter | Qt::AlignHCenter ); - ui.pTableWidgetAchievement->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetAchievement->setItem( rowIndex, columnIndex++, pItem ); //月份 - pItem = new QTableWidgetItem(QString::fromStdWString(iter->getTheMonth())); - pItem->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter); + pItem = new QTableWidgetItem( QString::fromStdWString( iter->getTheMonth() ) ); + pItem->setTextAlignment( Qt::AlignVCenter | Qt::AlignHCenter ); - ui.pTableWidgetAchievement->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetAchievement->setItem( rowIndex, columnIndex++, pItem ); //车商代码 - pItem = new QTableWidgetItem(QString::fromStdWString(iter->getCarDealerCode())); - pItem->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter); + pItem = new QTableWidgetItem( QString::fromStdWString( iter->getCarDealerCode() ) ); + pItem->setTextAlignment( Qt::AlignVCenter | Qt::AlignHCenter ); - ui.pTableWidgetAchievement->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetAchievement->setItem( rowIndex, columnIndex++, pItem ); //车商名称 - pItem = new QTableWidgetItem(QString::fromStdWString(iter->getCarDealerCode())); - pItem->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter); + pItem = new QTableWidgetItem( QString::fromStdWString( iter->getCarDealerCode() ) ); + pItem->setTextAlignment( Qt::AlignVCenter | Qt::AlignHCenter ); - ui.pTableWidgetAchievement->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetAchievement->setItem( rowIndex, columnIndex++, pItem ); //店内双签产值 - pItem = new QTableWidgetItem(QString::number(iter->getCheckedAchievement(), 'g', -1)); - pItem->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter); + pItem = new QTableWidgetItem( QString::number( iter->getCheckedAchievement(), 'g', -1 ) ); + pItem->setTextAlignment( Qt::AlignVCenter | Qt::AlignHCenter ); - ui.pTableWidgetAchievement->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetAchievement->setItem( rowIndex, columnIndex++, pItem ); //店内新车开票数 - pItem = new QTableWidgetItem(QString::number(iter->getPolicyAmount(),10)); - pItem->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter); + pItem = new QTableWidgetItem( QString::number( iter->getPolicyAmount(), 10 ) ); + pItem->setTextAlignment( Qt::AlignVCenter | Qt::AlignHCenter ); - ui.pTableWidgetAchievement->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetAchievement->setItem( rowIndex, columnIndex++, pItem ); //我司新车签单台次 - pItem = new QTableWidgetItem(QString::number(iter->getCpicAmount())); - pItem->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter); + pItem = new QTableWidgetItem( QString::number( iter->getCpicAmount() ) ); + pItem->setTextAlignment( Qt::AlignVCenter | Qt::AlignHCenter ); - ui.pTableWidgetAchievement->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetAchievement->setItem( rowIndex, columnIndex++, pItem ); //人保新车签单台次 - pItem = new QTableWidgetItem(QString::number(iter->getPiccAmount())); - pItem->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter); + pItem = new QTableWidgetItem( QString::number( iter->getPiccAmount() ) ); + pItem->setTextAlignment( Qt::AlignVCenter | Qt::AlignHCenter ); - ui.pTableWidgetAchievement->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetAchievement->setItem( rowIndex, columnIndex++, pItem ); //平安新车签单台次 - pItem = new QTableWidgetItem(QString::number(iter->getPinganAmount())); - pItem->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter); + pItem = new QTableWidgetItem( QString::number( iter->getPinganAmount() ) ); + pItem->setTextAlignment( Qt::AlignVCenter | Qt::AlignHCenter ); - ui.pTableWidgetAchievement->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetAchievement->setItem( rowIndex, columnIndex++, pItem ); //其他保险公司 - pItem = new QTableWidgetItem(QString::number(iter->getOthersAmount())); - pItem->setTextAlignment(Qt::AlignVCenter | Qt::AlignHCenter); + pItem = new QTableWidgetItem( QString::number( iter->getOthersAmount() ) ); + pItem->setTextAlignment( Qt::AlignVCenter | Qt::AlignHCenter ); - ui.pTableWidgetAchievement->setItem(rowIndex, columnIndex++, pItem); + ui.pTableWidgetAchievement->setItem( rowIndex, columnIndex++, pItem ); } - resizeTableWidgetTab(ui.pTableWidgetAchievement, 10); + resizeTableWidgetTab( ui.pTableWidgetAchievement, 10 ); } void QCarDealerAchievementWidget::init() diff --git a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerAchievementWidget/QCarDealerAchievementWidget.ui b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerAchievementWidget/QCarDealerAchievementWidget.ui index 0f5141c..6365b73 100644 --- a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerAchievementWidget/QCarDealerAchievementWidget.ui +++ b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerAchievementWidget/QCarDealerAchievementWidget.ui @@ -72,6 +72,21 @@ + + QAbstractItemView::NoEditTriggers + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + 年度 diff --git a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerSchemaWidget/QCarDealerSchemaWidget.cpp b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerSchemaWidget/QCarDealerSchemaWidget.cpp index 6627e67..cc8d7e7 100644 --- a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerSchemaWidget/QCarDealerSchemaWidget.cpp +++ b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerSchemaWidget/QCarDealerSchemaWidget.cpp @@ -86,6 +86,7 @@ void QCarDealerSchemaWidget::showCarDealerSchema() { ui.pTableWidgetSchema->clearContents(); ui.pTableWidgetSchema->setRowCount( schemeVector.size() ); + ui.pTableWidgetSchema->horizontalHeader()->setHighlightSections(false); int rowIndex = 0; int columnIndex = 0; diff --git a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerSchemaWidget/QCarDealerSchemaWidget.ui b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerSchemaWidget/QCarDealerSchemaWidget.ui index 5e50eea..ed86d6f 100644 --- a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerSchemaWidget/QCarDealerSchemaWidget.ui +++ b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QCarDealerSchemaWidget/QCarDealerSchemaWidget.ui @@ -72,6 +72,24 @@ + + QAbstractItemView::NoEditTriggers + + + false + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + 年度 diff --git a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.cpp b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.cpp index 57b94dc..3b59c3a 100644 --- a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.cpp +++ b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.cpp @@ -1,11 +1,60 @@ +#include #include "QRepairRecommendationWidget.h" -QRepairRecommendationWidget::QRepairRecommendationWidget(QWidget *parent) - : QWidget(parent) +QRepairRecommendationWidget::QRepairRecommendationWidget( QWidget * parent ) + : QWidget( parent ) { - ui.setupUi(this); + ui.setupUi( this ); } QRepairRecommendationWidget::~QRepairRecommendationWidget() { } + +void QRepairRecommendationWidget::onImport() +{ + //打开文件 + QString dir = QString::fromLocal8Bit( "." ); + QString filter = QString::fromLocal8Bit( "Excel文件(*.xlsx)" ); + + QStringList fileList = QFileDialog::getOpenFileNames( this, + QString::fromLocal8Bit( "请选择要导入的数据文件" ), + dir, + filter ); + + //清理旧数据 + recommandationVector.clear(); + + //遍历文件列表,导入每一个文件 + for ( auto iterFile = fileList.begin(); + iterFile != fileList.end(); + ++iterFile ) + { + + } +} + +void QRepairRecommendationWidget::init() +{ + initData(); + initWidgets(); + initSignal(); +} + +void QRepairRecommendationWidget::initData() +{ +} + +void QRepairRecommendationWidget::initWidgets() +{ + setLayout( ui.pLayoutMain ); +} + +void QRepairRecommendationWidget::initSignal() +{ + connect( ui.pButtonImport, SIGNAL( clicked() ), this, SLOT( onImport() ) ); +} + +void QRepairRecommendationWidget::showRepairRecommandation() +{ +} diff --git a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.h b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.h index 9f4d9a6..b002306 100644 --- a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.h +++ b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.h @@ -1,7 +1,9 @@ -#pragma once +#pragma once #include +#include #include "ui_QRepairRecommendationWidget.h" +#include "../../Data/Datastructure/RepairSuggestion/RepairRecommandationRecord.h" class QRepairRecommendationWidget : public QWidget { @@ -11,6 +13,19 @@ public: QRepairRecommendationWidget(QWidget *parent = Q_NULLPTR); ~QRepairRecommendationWidget(); +protected Q_SLOTS: + void onImport(); + +private: + void init(); + void initData(); + void initWidgets(); + void initSignal(); + + void showRepairRecommandation(); private: Ui::QRepairRecommendationWidget ui; + + //数据 + std::vector recommandationVector; }; diff --git a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.ui b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.ui index 622e9a4..7c4bd7e 100644 --- a/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.ui +++ b/code/cpp/car_dealer_util/source/Widgets/ContentWidget/QRepairRecommendationWidget/QRepairRecommendationWidget.ui @@ -1,23 +1,189 @@ - + + QRepairRecommendationWidget - - - QRepairRecommendationWidget - - + + - 0 - 0 - 400 - 300 + 0 + 0 + 774 + 514 - + QRepairRecommendationWidget + + + + 150 + 70 + 258 + 240 + + + + + 5 + + + 5 + + + 5 + + + + + + + 导入 + + + + :/QMainFrame/Resources/excel.png + + + + + 32 + 32 + + + + Qt::ToolButtonTextBesideIcon + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + QAbstractItemView::NoEditTriggers + + + false + + + true + + + QAbstractItemView::SingleSelection + + + QAbstractItemView::SelectRows + + + false + + + + 工单号 + + + AlignCenter + + + + + 工单类型 + + + AlignCenter + + + + + 报案号 + + + AlignCenter + + + + + 推荐车商代码 + + + AlignCenter + + + + + 推荐车商名称 + + + AlignCenter + + + + + 出险日期 + + + AlignCenter + + + + + 车牌号 + + + AlignCenter + + + + + 品牌名称 + + + AlignCenter + + + + + 短信类型 + + + AlignCenter + + + + + 发送时间 + + + AlignCenter + + + + + 数据来源 + + + AlignCenter + + + + + + - - + - + diff --git a/code/cpp/car_dealer_util/source/Widgets/MainFrame/QMainFrame.ui b/code/cpp/car_dealer_util/source/Widgets/MainFrame/QMainFrame.ui index ad4e40a..9404e41 100644 --- a/code/cpp/car_dealer_util/source/Widgets/MainFrame/QMainFrame.ui +++ b/code/cpp/car_dealer_util/source/Widgets/MainFrame/QMainFrame.ui @@ -11,7 +11,7 @@ - QMainFrame + 起个啥名呢?