123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227 |
- #include "cloeUploadFile.h"
- #include "ui_cloeUploadFile.h"
- #include "CAppInfo.h"
- #include "awMsgBox.h"
- #include "CCommonTools.h"
- #include <QDesktopWidget>
- #include <QFileDialog>
- cloeUploadFile::cloeUploadFile(__int64 nExamRecordDataId, std::vector<QString> vFileTypes, QWidget *parent) :
- QWidget(parent),
- ui(new Ui::cloeUploadFile), m_nExamRecordDataId(nExamRecordDataId)
- {
- ui->setupUi(this);
- setStyleSheet(g_appInfoPtr->m_sQssStr);
-
- ui->rdoBtn_zip->setVisible(false);
- ui->rdoBtn_pdf->setVisible(false);
- ui->rdoBtn_picture->setVisible(false);
- for(QString sType : vFileTypes)
- {
- if(sType == "ZIP")
- {
- ui->rdoBtn_zip->setVisible(true);
- }
- if(sType == "PDF")
- {
- ui->rdoBtn_pdf->setVisible(true);
- }
- if(sType == "IMAGE")
- {
- ui->rdoBtn_picture->setVisible(true);
- }
- }
- initUI();
- qRegisterMetaType<CSubmitOfflinePaper>("CSubmitOfflinePaper");
- connect(g_httpBllPtr.get(), &CHttpBll::sgnSubmitOfflinePaper, this, &cloeUploadFile::onSubmitOfflinePaper);
- }
- cloeUploadFile::~cloeUploadFile()
- {
- delete ui;
- }
- void cloeUploadFile::initUI()
- {
- QDesktopWidget *dekwiget = QApplication::desktop();
- setGeometry(0, 0, dekwiget->width(), dekwiget->height());
- ui->widget_mask->setGeometry(0, 0, dekwiget->width(), dekwiget->height());
- ui->widget_cloe_BG->setGeometry((width() - g_appInfoPtr->m_fRate*490)/2, (height() - g_appInfoPtr->m_fRate*295)/2,
- g_appInfoPtr->m_fRate*490, g_appInfoPtr->m_fRate*295);
- ui->label_fc_title->adjustSize();
- ui->label_fc_title->setGeometry(g_appInfoPtr->m_fRate*20, g_appInfoPtr->m_fRate*16,
- ui->label_fc_title->width(), ui->label_fc_title->height());
- ui->btn_fc_close->setGeometry(ui->widget_cloe_BG->width() - g_appInfoPtr->m_fRate*(20 + 16),
- g_appInfoPtr->m_fRate*16, g_appInfoPtr->m_fRate*16, g_appInfoPtr->m_fRate*16);
- ui->label_HLine->setGeometry(0, ui->label_fc_title->y() + ui->label_fc_title->height() + g_appInfoPtr->m_fRate*16,
- ui->widget_cloe_BG->width(), g_appInfoPtr->m_fRate*1);
- ui->label_cloe_selFileType->adjustSize();
- ui->label_cloe_selFileType->setGeometry(g_appInfoPtr->m_fRate*30, ui->label_HLine->y() + ui->label_HLine->height() + g_appInfoPtr->m_fRate*30,
- ui->label_cloe_selFileType->width(), ui->label_cloe_selFileType->height());
- int nLeftRadio = ui->label_cloe_selFileType->x() + ui->label_cloe_selFileType->width() + g_appInfoPtr->m_fRate*26;
- ui->rdoBtn_zip->adjustSize();
- ui->rdoBtn_zip->setGeometry(nLeftRadio,
- ui->label_cloe_selFileType->y() + (ui->label_cloe_selFileType->height() - ui->rdoBtn_zip->height())/2,
- ui->rdoBtn_zip->width(), ui->rdoBtn_zip->height());
- nLeftRadio = ui->rdoBtn_zip->x() + ui->rdoBtn_zip->width() + g_appInfoPtr->m_fRate*20;
- ui->rdoBtn_pdf->adjustSize();
- ui->rdoBtn_pdf->setGeometry(nLeftRadio,
- ui->rdoBtn_zip->y(), ui->rdoBtn_pdf->width(), ui->rdoBtn_pdf->height());
- nLeftRadio = ui->rdoBtn_pdf->x() + ui->rdoBtn_pdf->width() + g_appInfoPtr->m_fRate*30;
-
- ui->rdoBtn_picture->adjustSize();
- ui->rdoBtn_picture->setGeometry(nLeftRadio,
- ui->rdoBtn_zip->y(), ui->rdoBtn_picture->width(), ui->rdoBtn_picture->height());
- ui->edt_cloe_file->setGeometry(ui->label_cloe_selFileType->x(), ui->label_cloe_selFileType->y() + ui->label_cloe_selFileType->height() + g_appInfoPtr->m_fRate*20,
- g_appInfoPtr->m_fRate*360, g_appInfoPtr->m_fRate*40);
- ui->btn_cloe_selFile->setGeometry(ui->edt_cloe_file->x() + ui->edt_cloe_file->width() + g_appInfoPtr->m_fRate*10,
- ui->edt_cloe_file->y() + (ui->edt_cloe_file->height() - g_appInfoPtr->m_fRate*36)/2,
- g_appInfoPtr->m_fRate*60, g_appInfoPtr->m_fRate*36);
- ui->btn_comfirmUpload->setGeometry(ui->widget_cloe_BG->width() - g_appInfoPtr->m_fRate*(30+120), ui->widget_cloe_BG->height() - g_appInfoPtr->m_fRate*(30+40),
- g_appInfoPtr->m_fRate*120, g_appInfoPtr->m_fRate*40);
- ui->btn_cancelUpload->setGeometry(ui->btn_comfirmUpload->x() - g_appInfoPtr->m_fRate*10 - ui->btn_comfirmUpload->width(),
- ui->btn_comfirmUpload->y(), ui->btn_comfirmUpload->width(), ui->btn_comfirmUpload->height());
- }
- void cloeUploadFile::showEvent(QShowEvent *)
- {
- int nLeftRadio = ui->label_cloe_selFileType->x() + ui->label_cloe_selFileType->width() + g_appInfoPtr->m_fRate * 26;
- if (ui->rdoBtn_zip->isVisible())
- {
- nLeftRadio = ui->rdoBtn_zip->x() + ui->rdoBtn_zip->width() + g_appInfoPtr->m_fRate * 20;
- }
- if (ui->rdoBtn_pdf->isVisible())
- {
- ui->rdoBtn_pdf->setGeometry(nLeftRadio,
- ui->rdoBtn_zip->y(), ui->rdoBtn_pdf->width(), ui->rdoBtn_pdf->height());
- nLeftRadio = ui->rdoBtn_pdf->x() + ui->rdoBtn_pdf->width() + g_appInfoPtr->m_fRate * 30;
- }
- if (ui->rdoBtn_picture->isVisible())
- {
- ui->rdoBtn_picture->setGeometry(nLeftRadio,
- ui->rdoBtn_zip->y(), ui->rdoBtn_picture->width(), ui->rdoBtn_picture->height());
- }
- }
- void cloeUploadFile::on_btn_cloe_selFile_clicked()
- {
- QString sTitle = "";
- QString sExt = "";
- if(ui->rdoBtn_zip->isChecked())
- {
- sTitle = QString::fromLocal8Bit("选择ZIP文件");
- sExt = QString::fromLocal8Bit("WinRAR ZIP 压缩文件(*.zip)");
- }
- else if(ui->rdoBtn_pdf->isChecked())
- {
- sTitle = QString::fromLocal8Bit("选择PDF文件");
- sExt = QString::fromLocal8Bit("PDF文件(*.pdf)");
- }
- else if(ui->rdoBtn_picture->isChecked())
- {
- sTitle = QString::fromLocal8Bit("选择图片文件");
- sExt = QString::fromLocal8Bit("图片文件(*.jpeg;*.jpg;*.png)");
- }
- else
- {
- ShowMsg(QString::fromLocal8Bit("请先选择文件类型"), this);
- return;
- }
-
- if (ui->rdoBtn_picture->isChecked())
- {
- QStringList fileNames = QFileDialog::getOpenFileNames(this,
- sTitle,
- ".",
- sExt);
- ui->edt_cloe_file->setText(fileNames.join(";"));
- }
- else
- {
- QString fileName = QFileDialog::getOpenFileName(this,
- sTitle,
- ".",
- sExt);
- ui->edt_cloe_file->setText(fileName);
- }
-
- }
- void cloeUploadFile::on_btn_cancelUpload_clicked()
- {
- emit cancel();
- }
- void cloeUploadFile::on_btn_comfirmUpload_clicked()
- {
- if (ui->edt_cloe_file->text().isEmpty())
- {
- ShowMsg(QString::fromLocal8Bit("请先选择文件,再上传"), this);
- return;
- }
-
- QString sType = "";
- if (ui->rdoBtn_zip->isChecked())
- {
- sType = "ZIP";
- }
- else if (ui->rdoBtn_pdf->isChecked())
- {
- sType = "PDF";
- }
- else if (ui->rdoBtn_picture->isChecked())
- {
- sType = "IMAGE";
- }
- QString sFileNames = ui->edt_cloe_file->text();
- QStringList sFileList = sFileNames.split(";");
- CHttpRequestPackage hrp;
- hrp.sUri = "/api/ecs_oe_admin/client/exam/process/batchSubmitPaper";
- hrp.nRequestType = RequestType::rtSubmitOfflinePaper;
- hrp.sParamList.push_back(QString("examRecordDataId,%1").arg(m_nExamRecordDataId));
- for (QString sFile : sFileList)
- {
- hrp.sParamList.push_back(QString("formdataFileType,fileArray,%1").arg(sFile));
- hrp.sParamList.push_back(QString("fileMd5Array,%1").arg(CCommonTools::fileMd5(sFile)));
- }
-
- hrp.sParamList.push_back(QString("fileType,%1").arg(sType));
- hrp.eParamType = HttpParamType::hptFormdata;
- g_httpBllPtr->post(hrp);
- }
- void cloeUploadFile::onSubmitOfflinePaper(CSubmitOfflinePaper submitOfflinePaper)
- {
- if (submitOfflinePaper.nCode == 200)
- {
- ShowMsg(QString::fromLocal8Bit("上传答案完成"), this);
- emit uploadSucceed();
- }
- else
- {
- if(submitOfflinePaper.sMessage.isEmpty())
- {
- ShowMsg(QString::fromLocal8Bit("上传答案失败"), (QWidget*)(this->parent()));
- }
- else
- {
- ShowMsg(submitOfflinePaper.sMessage, (QWidget*)(this->parent()));
- }
- }
- }
- void cloeUploadFile::on_btn_fc_close_clicked()
- {
- emit cancel();
- }
|