123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- #include "clopPaperReport.h"
- #include "ui_clopPaperReport.h"
- #include "CAppInfo.h"
- #include <QScrollBar>
- #include "awMsgBox.h"
- clopPaperReport::clopPaperReport(__int64 nExamRecordDataId, bool bFromCache, QWidget *parent) :
- QWidget(parent),
- ui(new Ui::clopPaperReport)
- {
- ui->setupUi(this);
- setStyleSheet(g_appInfoPtr->m_sQssStr);
- qRegisterMetaType<CGetPracticeDetailInfo>("CGetPracticeDetailInfo");
- connect(g_httpBllPtr.get(), &CHttpBll::sgnGetPracticeDetailInfo, this, &clopPaperReport::onGetPracticeDetailInfo);
- CHttpRequestPackage hrp;
- hrp.sUri = QString("/api/ecs_oe_admin/client/exam/process/getPracticeDetailInfo");
- hrp.sParamList.push_back(QString("examRecordDataId,%1").arg(nExamRecordDataId));
- if(bFromCache)
- {
- hrp.sParamList.push_back(QString("fromCache,%1").arg(true));
- }
- hrp.nRequestType = RequestType::rtGetPracticeDetailInfo;
- hrp.eParamType = HttpParamType::hptUrl;
- g_httpBllPtr->post(hrp);
- }
- clopPaperReport::~clopPaperReport()
- {
- delete ui;
- }
- int clopPaperReport::setUI(const int nWidth)
- {
- ui->label_clop_tips_title->adjustSize();
- ui->label_clop_tips_title->setGeometry(g_appInfoPtr->m_fRate*30, g_appInfoPtr->m_fRate*20,
- ui->label_clop_tips_title->width(), ui->label_clop_tips_title->height());
- ui->label_clop_tips->setFixedWidth(nWidth - g_appInfoPtr->m_fRate*30*2);
- ui->label_clop_tips->adjustSize();
- ui->label_clop_tips->setGeometry(ui->label_clop_tips_title->x(), ui->label_clop_tips_title->y() + ui->label_clop_tips_title->height() + g_appInfoPtr->m_fRate*5,
- ui->label_clop_tips->width(), ui->label_clop_tips->height());
- ui->tablewt_examList->setGeometry(g_appInfoPtr->m_fRate*30, ui->label_clop_tips->y() + ui->label_clop_tips->height() + g_appInfoPtr->m_fRate*20,
- nWidth - g_appInfoPtr->m_fRate*30*2,
- (ui->tablewt_examList->rowCount() + 1)*g_appInfoPtr->m_fRate * 48);
- ui->tablewt_examList->setEditTriggers(QAbstractItemView::NoEditTriggers);
- //整行选中的方式
- ui->tablewt_examList->setSelectionBehavior(QAbstractItemView::SelectRows);
- //设置为只能选中一行
- ui->tablewt_examList->setSelectionMode(QAbstractItemView::SingleSelection);
- //隐藏列表头
- ui->tablewt_examList->verticalHeader()->setVisible(false);
- //隐藏边框
- ui->tablewt_examList->setShowGrid(false);
- //表头不高亮显示
- ui->tablewt_examList->horizontalHeader()->setHighlightSections(false);
- //设置行数
- ui->tablewt_examList->setRowCount(10);
- //设置列数
- ui->tablewt_examList->setColumnCount(5);
- ui->tablewt_examList->setHorizontalScrollMode(QTableWidget::ScrollPerPixel);
- ui->tablewt_examList->horizontalScrollBar()->setSingleStep(g_appInfoPtr->m_fRate*5);
- QStringList sHeadStr;
- sHeadStr << QString::fromLocal8Bit("题型") <<
- QString::fromLocal8Bit("题量") <<
- QString::fromLocal8Bit("正确") <<
- QString::fromLocal8Bit("错误") <<
- QString::fromLocal8Bit("未答");
- ui->tablewt_examList->setHorizontalHeaderLabels(sHeadStr);
- ui->tablewt_examList->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft | Qt::AlignVCenter);
- ui->tablewt_examList->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
- ui->tablewt_examList->verticalHeader()->setDefaultSectionSize(g_appInfoPtr->m_fRate*48);
- int nColWidth = ui->tablewt_examList->width()/5;
- ui->tablewt_examList->setColumnWidth(0, nColWidth);
- ui->tablewt_examList->setColumnWidth(1, nColWidth);
- ui->tablewt_examList->setColumnWidth(2, nColWidth);
- ui->tablewt_examList->setColumnWidth(3, nColWidth);
- ui->tablewt_examList->setColumnWidth(4, nColWidth);
- ui->tablewt_examList->horizontalHeader()->setStretchLastSection(true);
- return ui->tablewt_examList->y() + ui->tablewt_examList->height() + g_appInfoPtr->m_fRate*20;
- }
- QString clopPaperReport::getQuestionName(QString questionType)
- {
- if(questionType == QUESTION_TYPE::SingleChoice)
- {
- return QString::fromLocal8Bit("单选题");
- }
- else if(questionType == QUESTION_TYPE::MultipleChoice)
- {
- return QString::fromLocal8Bit("多选题");
- }
- else if(questionType == QUESTION_TYPE::TrueOrFalse)
- {
- return QString::fromLocal8Bit("判断题");
- }
- else if(questionType == QUESTION_TYPE::FillUp)
- {
- return QString::fromLocal8Bit("填空题");
- }
- else if(questionType == QUESTION_TYPE::Essay)
- {
- return QString::fromLocal8Bit("问答题");
- }
- }
- void clopPaperReport::onGetPracticeDetailInfo(CGetPracticeDetailInfo getPracticeDetailInfo)
- {
- if(getPracticeDetailInfo.nCode == 200)
- {
- int nSize = getPracticeDetailInfo.vPracticePaperStructList.size();
- emit objectiveAccuracy(getPracticeDetailInfo.fObjectiveAccuracy);
- ui->tablewt_examList->setRowCount(nSize);
- for(int i = 0; i < nSize; i++)
- {
- CPracticePaperStructInfo pps = getPracticeDetailInfo.vPracticePaperStructList[i];
- ui->tablewt_examList->setItem(i, 0, new QTableWidgetItem(pps.sTitle));
- ui->tablewt_examList->setItem(i, 1, new QTableWidgetItem(QString::number(pps.nQuestionCount)));
- ui->tablewt_examList->setItem(i, 2, new QTableWidgetItem(QString::number(pps.nSuccQuestionNum)));
- ui->tablewt_examList->setItem(i, 3, new QTableWidgetItem(QString::number(pps.nFailQuestionNum)));
- ui->tablewt_examList->setItem(i, 4, new QTableWidgetItem(QString::number(pps.nNotAnsweredCount)));
- }
- int nHeight = ui->tablewt_examList->y() + (nSize+1)*g_appInfoPtr->m_fRate*48 + g_appInfoPtr->m_fRate*20;
- ui->tablewt_examList->setGeometry(g_appInfoPtr->m_fRate * 30, ui->label_clop_tips->y() + ui->label_clop_tips->height() + g_appInfoPtr->m_fRate * 20,
- width() - g_appInfoPtr->m_fRate * 30 * 2,
- (ui->tablewt_examList->rowCount()+1)*g_appInfoPtr->m_fRate * 48) ;
- emit heightChange(nHeight);
- }
- else
- {
- if(getPracticeDetailInfo.sMessage.isEmpty())
- {
- ShowMsg(QString::fromLocal8Bit("获取练习信息失败"), (QWidget*)(this->parent()), MSG_ICON_TYPE::mit_error);
- }
- else
- {
- ShowMsg(getPracticeDetailInfo.sMessage, (QWidget*)(this->parent()), MSG_ICON_TYPE::mit_error);
- }
- }
- }
|