#include "formmain.h" #include "ui_formmain.h" #include "respgetuserinfo.h" #include "respsubminpnum.h" #include "respgetdealinfo.h" #include "respcancelbatch.h" #include "respgetcostinfo.h" #include "respgetchargeinfo.h" #include "respgetfinishedinfo.h" #include "respdlresultfile.h" #include "respgetservertime.h" #include "respencrypt.h" #include "sncdatabase.h" #include "zip.h" #include "dialogsubmit.h" #include "respgetuserblance.h" #include "dialogsubmitresponsedetail.h" FormMain::FormMain(QWidget *parent) : QWidget(parent), ui(new Ui::FormMain) { ui->setupUi(this); initVariables(); initUI(); resetUI(); setAccountAreaUI(NotLogin); } FormMain::~FormMain() { if(m_timer) { m_timer->stop(); delete m_timer; } if(m_numChkWs) { m_numChkWs->abort(); delete m_numChkWs; } if(m_ssoWs) { m_ssoWs->abort(); delete m_ssoWs; } if(m_upload) { m_upload->abort(); m_upload->wait(); delete m_upload; } if(m_sync) { m_sync->abort(); m_sync->wait(); delete m_sync; } if(m_movie) { m_movie->stop(); delete m_movie; } delete ui; qDebug()<pushButtonCharge->setProperty("class","txt-green"); ui->pushButtonLogin->setProperty("class","txt-green"); ui->pushButtonPay->setProperty("class","txt-green"); ui->labelToPay->setStyleSheet("QLabel{color:red}"); ui->pushButtonRefreshUserState->setProperty("class","txt-green"); ui->pushButtonSelect->setProperty("class","txt-green-autowidth"); ui->widgetExactCheck->setProperty("class","lowframe2"); //初始化预检测 实号、空、停、关机对应的显示图片exact_result_bg.jpg QPixmap exact_result_bg(":/exact_result_bg.jpg"); int nHeight = exact_result_bg.height()/10; int nWidth = exact_result_bg.width(); ui->labelBarShiHao->setPixmap(exact_result_bg.copy(QRect(0 , 2 * nHeight, nWidth, nHeight))); ui->labelBarKong->setPixmap(exact_result_bg.copy(QRect(0 , 3 * nHeight, nWidth, nHeight))); ui->labelBarTing->setPixmap(exact_result_bg.copy(QRect(0 , 4 * nHeight, nWidth, nHeight))); ui->labelBarGuan->setPixmap(exact_result_bg.copy(QRect(0 , 5 * nHeight, nWidth, nHeight))); ui->labelBarHrxz->setPixmap(exact_result_bg.copy(QRect(0 , 6 * nHeight, nWidth, nHeight))); ui->labelBarWfjt->setPixmap(exact_result_bg.copy(QRect(0 , 7 * nHeight, nWidth, nHeight))); ui->labelBarLdtx->setPixmap(exact_result_bg.copy(QRect(0 , 8 * nHeight, nWidth, nHeight))); ui->labelBarOther->setPixmap(exact_result_bg.copy(QRect(0 , 9 * nHeight, nWidth, nHeight))); //初始化图例图标实号、空、停、关机对应的显示图片sample_small.jpg QPixmap sample_small(":/sample_small.jpg"); nHeight = sample_small.height(); nWidth = sample_small.width()/10; ui->labelSampleShiHao->setPixmap(sample_small.copy(QRect(2 * nWidth , 0 , nWidth, nHeight))); ui->labelSampleKong->setPixmap(sample_small.copy(QRect(3 * nWidth , 0 , nWidth, nHeight))); ui->labelSampleTing->setPixmap(sample_small.copy(QRect(4 * nWidth , 0 , nWidth, nHeight))); ui->labelSampleGuan->setPixmap(sample_small.copy(QRect(5 * nWidth , 0 , nWidth, nHeight))); ui->labelSampleHrxz->setPixmap(sample_small.copy(QRect(6 * nWidth , 0 , nWidth, nHeight))); ui->labelSampleWfjt->setPixmap(sample_small.copy(QRect(7 * nWidth , 0 , nWidth, nHeight))); ui->labelSampleLdtx->setPixmap(sample_small.copy(QRect(8 * nWidth , 0 , nWidth, nHeight))); ui->labelSampleOther->setPixmap(sample_small.copy(QRect(9 * nWidth , 0 , nWidth, nHeight))); ui->widgetTip->setProperty("class","silverbg"); ui->pushButtonQueryFinishedAll->setProperty("class","txt-green-autowidth"); ui->pushButtonQueryDown->setProperty("class","txt-green-autowidth"); ui->pushButtonQueryToDown->setProperty("class","txt-green-autowidth"); } void FormMain::initVariables() { //ui->tableWidgetFinished->installEventFilter(this); ui->tableWidgetDealing->installEventFilter(this); ui->tableWidgetCost->installEventFilter(this); ui->tableWidgetCharge->installEventFilter(this); //ui->tableWidgetFinished->installEventFilter(this); int intervals = 5; m_movie = new QMovie(":/working.gif"); m_movie->start(); m_upload = new AutoUploadFile(); m_sync = new AutoSyncData(); connect(m_upload,SIGNAL(uploadFailed()),this,SLOT(onUploadFailed())); connect(m_upload,SIGNAL(uploadSucceed()),this,SLOT(onUploadSucceed())); connect(m_upload,SIGNAL(uploadProgressUpdated()),this,SLOT(onUploadProgressUpdated())); connect(m_sync,SIGNAL(dataSync()),this,SLOT(onDataSync())); m_timer = new QTimer(); connect(m_timer,SIGNAL(timeout()),this,SLOT(onTimeOut())); m_timer->start(intervals*1000); m_isQueryDealing = false; m_isQueryFinished = false; m_userHash = ""; m_ssoHash = ""; m_host = ""; m_port = ""; m_userCode = ""; m_clientName = ""; m_numChkWs = new WSNumChk(); m_ssoWs = new WSSSO(); } void FormMain::resetDealingDataAreaUI() { resetDealingDataListInfo(); } void FormMain::resetDealingDataListInfo() { resetDealingTableWidget(16); ui->tableWidgetDealing->setEnabled(false); QTableWidgetItem *item = new QTableWidgetItem(); item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter); item->setText("暂无信息"); ui->tableWidgetDealing->setItem(7,5,item); ui->tableWidgetDealing->setEnabled(false); } void FormMain::resetDealingTableWidget(int rows) { QStringList headers; headers.append("文件ID"); headers.append("状态"); headers.append("文件类型"); headers.append("文件名"); headers.append("文件路径"); headers.append("备注"); headers.append("提交时间"); headers.append("进度"); headers.append("返回信息"); headers.append("返回详情"); headers.append("是否审核"); headers.append("服务端操作状态"); headers.append("进度"); headers.append("处理详情"); ui->tableWidgetDealing->setRowCount(0); ui->tableWidgetDealing->setColumnCount(0); ui->tableWidgetDealing->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tableWidgetDealing->setColumnCount(14); ui->tableWidgetDealing->setHorizontalHeaderLabels(headers); ui->tableWidgetDealing->setRowCount(rows); ui->tableWidgetDealing->setShowGrid(false); ui->tableWidgetDealing->setAlternatingRowColors(true); ui->tableWidgetDealing->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableWidgetDealing->setSelectionMode(QAbstractItemView::SingleSelection); ui->tableWidgetDealing->setColumnWidth(0,0); ui->tableWidgetDealing->setColumnWidth(1,40); ui->tableWidgetDealing->setColumnWidth(2,80);// ui->tableWidgetDealing->setColumnWidth(3,170); ui->tableWidgetDealing->setColumnWidth(4,0); ui->tableWidgetDealing->setColumnWidth(5,0);// ui->tableWidgetDealing->setColumnWidth(6,150); ui->tableWidgetDealing->setColumnWidth(7,0); ui->tableWidgetDealing->setColumnWidth(8,0); ui->tableWidgetDealing->setColumnWidth(9,0); ui->tableWidgetDealing->setColumnWidth(10,0); ui->tableWidgetDealing->setColumnWidth(11,0); ui->tableWidgetDealing->setColumnWidth(12,150); ui->tableWidgetDealing->setColumnWidth(13,85); ui->tableWidgetDealing->hideColumn(0); ui->tableWidgetDealing->hideColumn(4); ui->tableWidgetDealing->hideColumn(5); ui->tableWidgetDealing->hideColumn(7); ui->tableWidgetDealing->hideColumn(8); ui->tableWidgetDealing->hideColumn(9); ui->tableWidgetDealing->hideColumn(10); ui->tableWidgetDealing->hideColumn(11); ui->tableWidgetDealing->verticalHeader()->setVisible(false); ui->tableWidgetDealing->horizontalHeader()->setStyleSheet("font:12px"); ui->tableWidgetDealing->horizontalHeader()->setResizeMode(QHeaderView::Fixed); ui->tableWidgetDealing->verticalHeader()->setResizeMode(QHeaderView::Fixed); ui->tableWidgetDealing->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); ui->tableWidgetDealing->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); ui->tableWidgetDealing->verticalHeader()->setFixedWidth(30); ui->tableWidgetDealing->setSortingEnabled(true); } void FormMain::fetchDealingList(QMultiMap map, int rowCount) { resetDealingDataListInfo(); if(rowCount==0) { return ; } resetDealingTableWidget(rowCount); ui->tableWidgetDealing->setEnabled(true); QStringList keys; keys<<"fileid"<<"filestate"<<"filetype"<<"filename"<<"filepath"; keys<<"memo"<<"srvrtime"<<"percent"<<"errmsg"<<"errdetail"<<"isverify"<<"optstatus"; for(int col=0;colsetTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter); QString display = rows.at(row); QString tooltip = display; if(keys.at(col)=="filetype") { if(rows.at(row)=="1") display = "号码文件"; else if(rows.at(row)=="2") display = "号段文件"; else display = "未知"; tooltip = display; } else if(keys.at(col)=="filename") { item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter); } if(keys.at(col)=="filestate") { delete item; QLabel *lbl = new QLabel(this); lbl->setAlignment(Qt::AlignCenter|Qt::AlignHCenter); int v = display.toInt(); if(v<0) lbl->setPixmap(QPixmap(":/wrong.png")); else if(v>=0 && v<=3) lbl->setMovie(m_movie); else lbl->setPixmap(QPixmap(":/right.png")); ui->tableWidgetDealing->setCellWidget(row,col,lbl); ui->tableWidgetDealing->item(row,0)->setData(Qt::UserRole,v); } else { item->setData(Qt::DisplayRole,display); item->setData(Qt::UserRole,rows.at(row)); item->setData(Qt::ToolTipRole,tooltip); ui->tableWidgetDealing->setItem(row,col,item); } } } //显示进度条 for(int row=0;rowtableWidgetDealing->item(row,7)->data(Qt::UserRole).toDouble(); int filestate = ui->tableWidgetDealing->item(row,0)->data(Qt::UserRole).toInt(); QString optstatus = ui->tableWidgetDealing->item(row,11)->data(Qt::UserRole).toString(); QString isverify =ui->tableWidgetDealing->item(row,10)->data(Qt::UserRole).toString(); if(filestate<3) { XProgressBar *progress = new XProgressBar(); progress->setProgress(filestate,percent); ui->tableWidgetDealing->setCellWidget(row,12,progress); } else { if(isverify=="0") { QTableWidgetItem *item = new QTableWidgetItem(); item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter); item->setData(Qt::DisplayRole,"待审核"); ui->tableWidgetDealing->setItem(row,12,item); } else if(isverify=="2") { QTableWidgetItem *item = new QTableWidgetItem(); item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter); item->setData(Qt::DisplayRole,"审核未通过"); ui->tableWidgetDealing->setItem(row,12,item); } else { QString errmsg = ""; if (optstatus=="0") { errmsg = "停止"; } else if (optstatus=="1") { errmsg = "暂停"; } else if (optstatus=="2") { errmsg = "检测中"; filestate = 4; } else if (optstatus=="3") { errmsg = "处理中"; filestate = 5; } else if (optstatus=="4") { errmsg = "用户删除"; } else if (optstatus=="5") { errmsg = "异常并停止"; } else if (optstatus=="5") { errmsg = "多次异常,任务终止"; } else { errmsg = "未知状态"; } if(optstatus=="3" || optstatus == "2") { XProgressBar *progress = new XProgressBar(); progress->setProgress(filestate,percent); ui->tableWidgetDealing->setCellWidget(row,12,progress); } else { QTableWidgetItem *item = new QTableWidgetItem(); item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter); item->setData(Qt::DisplayRole,errmsg); ui->tableWidgetDealing->setItem(row,12,item); } } } } //显示文件信息 for(int row=0;rowtableWidgetDealing->item(row,4)->data(Qt::UserRole).toString(); QString fileMemo = ui->tableWidgetDealing->item(row,5)->data(Qt::UserRole).toString(); QString tooltip = QString("文件:%1\r\n备注:%2").arg(filePath).arg(fileMemo); ui->tableWidgetDealing->item(row,3)->setData(Qt::ToolTipRole,tooltip); } //显示查看详情信息 for(int row=0;rowsetText("查看"); button->setProperty("class","txt-green"); button->setCursor(Qt::PointingHandCursor); connect(button,SIGNAL(clicked()),this,SLOT(onPushButtonViewsClicked())); QTableWidgetItem *item = ui->tableWidgetDealing->item(row,8); if(item) { if(item->data(Qt::UserRole).toString().isEmpty()) { button->setEnabled(false); } } ui->tableWidgetDealing->setCellWidget(row,13,button); } ui->tableWidgetDealing->sortByColumn(0); ui->tableWidgetDealing->sortByColumn(0); } void FormMain::queryDealing() { QMultiMap list = SNCDataBase::getAllUpload("bzjc",m_clientID,m_userCode); int cols = list.uniqueKeys().size(); int rows = 0; if(cols!=0) rows = list.size()/cols; fetchDealingList(list,rows); } void FormMain::resetFinishedDataAreaUI() { resetFinishedDataListInfo(); resetFinishedDataDetailInfo(); } void FormMain::resetFinishedDataListInfo() { resetFinishedTableWidget(10); ui->tableWidgetFinished->setEnabled(false); QTableWidgetItem *item = new QTableWidgetItem(); item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter); item->setText(" 暂无信息"); ui->tableWidgetFinished->setItem(5,5,item); ui->tableWidgetFinished->setEnabled(false); } void FormMain::resetFinishedDataDetailInfo() { ui->labelShiHao->setText("实号"); ui->labelKong->setText("空号"); ui->labelTing->setText("停机"); ui->labelGuan->setText("关机"); ui->labelWfjt->setText("无法接通"); ui->labelLdtx->setText("来电提醒"); ui->labelHrxz->setText("呼入限制"); ui->labelOther->setText("其他"); //设置上述状态比例的默认宽度为0 ui->labelBarShiHao->setFixedWidth(0); ui->labelBarKong->setFixedWidth(0); ui->labelBarTing->setFixedWidth(0); ui->labelBarGuan->setFixedWidth(0); ui->labelBarWfjt->setFixedWidth(0); ui->labelBarLdtx->setFixedWidth(0); ui->labelBarHrxz->setFixedWidth(0); ui->labelBarOther->setFixedWidth(0); } void FormMain::resetFinishedTableWidget(int rows) { QStringList headers; headers.append("选择"); headers.append("类型"); headers.append("详情"); headers.append("统计"); headers.append("提交时间"); headers.append("完成时间"); headers.append("已检测"); headers.append("费用"); headers.append("赠送消耗"); headers.append("状态"); headers.append("放行"); headers.append("下载"); ui->tableWidgetFinished->setRowCount(0); ui->tableWidgetFinished->setColumnCount(0); ui->tableWidgetFinished->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tableWidgetFinished->setColumnCount(12); ui->tableWidgetFinished->setHorizontalHeaderLabels(headers); ui->tableWidgetFinished->setRowCount(rows); ui->tableWidgetFinished->setShowGrid(false); ui->tableWidgetFinished->setAlternatingRowColors(true); ui->tableWidgetFinished->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableWidgetFinished->setSelectionMode(QAbstractItemView::SingleSelection); ui->tableWidgetFinished->setColumnWidth(0,30); ui->tableWidgetFinished->setColumnWidth(1,40); ui->tableWidgetFinished->setColumnWidth(2,35); ui->tableWidgetFinished->setColumnWidth(3,40); ui->tableWidgetFinished->setColumnWidth(4,125); ui->tableWidgetFinished->setColumnWidth(5,125); ui->tableWidgetFinished->setColumnWidth(6,65); ui->tableWidgetFinished->setColumnWidth(7,75); ui->tableWidgetFinished->setColumnWidth(8,60); ui->tableWidgetFinished->setColumnWidth(9,30); ui->tableWidgetFinished->setColumnWidth(10,30); ui->tableWidgetFinished->setColumnWidth(11,60); ui->tableWidgetFinished->hideColumn(3); ui->tableWidgetFinished->verticalHeader()->setVisible(false); ui->tableWidgetFinished->horizontalHeader()->setStyleSheet("font:12px"); ui->tableWidgetFinished->horizontalHeader()->setResizeMode(QHeaderView::Fixed); ui->tableWidgetFinished->verticalHeader()->setResizeMode(QHeaderView::Fixed); ui->tableWidgetFinished->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); ui->tableWidgetFinished->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); ui->tableWidgetFinished->verticalHeader()->setFixedWidth(30); ui->tableWidgetFinished->setSortingEnabled(true); } void FormMain::fetchFinishedList(QMultiMap map, int rowCount) { resetFinishedDataListInfo(); if(rowCount==0) { return ; } resetFinishedTableWidget(rowCount); ui->tableWidgetFinished->setEnabled(true); QStringList keys; keys<<"batchid"<<"batchtype"<<"detail"<<"resulttj"<<"submittime"<<"finishtime"; keys<<"finishcount"<<"settlefee"<<"giftfee"<<"optstatus"<<"ispass"<<"isdeliver"; for(int col=0;colsetTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter); QLabel *lbl ; lbl = new QLabel(this); lbl->setAlignment(Qt::AlignCenter|Qt::AlignHCenter); if(keys.at(col)=="batchid") { //item->setData(Qt::DisplayRole,display.toInt()); item->setCheckState(Qt::Unchecked); } else if(keys.at(col)=="finishcount") { item->setData(Qt::DisplayRole,display.toInt()); } else if(keys.at(col)=="settlefee") { item->setData(Qt::DisplayRole,display.toDouble()); } else if(keys.at(col)=="giftfee") { item->setData(Qt::DisplayRole,display.toDouble()); } else if(keys.at(col)=="detail") { if(display.isEmpty()) lbl->setPixmap(QPixmap(":/no-information.png")); else lbl->setPixmap(QPixmap(":/information.png")); lbl->setToolTip(tooltip); } else if(keys.at(col)=="ispass") { if(display=="0") { lbl->setPixmap(QPixmap(":/reject.png")); tooltip = "未放行"; } else { lbl->setPixmap(QPixmap(":/accept.png")); tooltip = "已放行"; } lbl->setToolTip(tooltip); } else if(keys.at(col)=="optstatus") { if(rows.at(row)=="0") { tooltip = "停止"; lbl->setPixmap(QPixmap(":/stop.png")); } else if(rows.at(row)=="1") { tooltip = "暂停"; lbl->setPixmap(QPixmap(":/pause.png")); } else if(rows.at(row)=="2") { tooltip = "处理中"; lbl->setPixmap(QPixmap(":/play.png")); } else if(rows.at(row)=="3") { tooltip = "处理完毕"; lbl->setPixmap(QPixmap(":/accept.png")); } else if(rows.at(row)=="4") { tooltip = "用户删除"; lbl->setPixmap(QPixmap(":/delete.png")); } else if(rows.at(row)=="5") { tooltip = "异常并终止"; lbl->setPixmap(QPixmap(":/error.png")); } else if(rows.at(row)=="6") { tooltip = "多次异常"; lbl->setPixmap(QPixmap(":/error.png")); } else { lbl->setText("其他"); tooltip = "其他"; } lbl->setToolTip(tooltip); } else if(keys.at(col)=="isdeliver") { if(rows.at(row)=="0") { tooltip = "未下载"; lbl->setPixmap(QPixmap(":/todown.png")); } else { tooltip = "已下载"; lbl->setPixmap(QPixmap(":/down.png")); } lbl->setToolTip(tooltip); } else if(keys.at(col)=="batchtype") { if(rows.at(row)=="1") display = "正常"; else if(rows.at(row)=="2") display = "重测"; else if(rows.at(row)=="3") display = "测试"; else display = "其他"; item->setData(Qt::DisplayRole,display); } else { item->setData(Qt::DisplayRole,display); } item->setData(Qt::UserRole,rows.at(row)); item->setData(Qt::ToolTipRole,tooltip); if(keys.at(col)=="detail" || keys.at(col)=="optstatus" || keys.at(col)=="ispass") { delete item; ui->tableWidgetFinished->setCellWidget(row,col,lbl); } else if(keys.at(col)=="isdeliver") { delete item; delete lbl; QPushButton *btn = new QPushButton(this); btn->setText(""); btn->setCursor(Qt::PointingHandCursor); btn->setProperty("class","imagebutton"); connect(btn,SIGNAL(clicked()),this,SLOT(onSingleDownloadClick())); ui->tableWidgetFinished->setCellWidget(row,col,btn); } else { delete lbl; ui->tableWidgetFinished->setItem(row,col,item); } } } ui->tableWidgetFinished->sortByColumn(0); ui->tableWidgetFinished->sortByColumn(0); } void FormMain::queryFinished(QString isdeliver) { QMultiMap list = SNCDataBase::getBzjcCheckFinishInfos(m_userCode,m_clientID,isdeliver); int cols = list.uniqueKeys().size(); int rows = 0; if(cols!=0) rows = list.size()/cols; fetchFinishedList(list,rows); } void FormMain::download() { } void FormMain::setAccountInfo(QMap info) { m_userHash = info.value("userhash"); m_userCode = info.value("usercode"); m_ssoHash = info.value("ssohash"); //m_upload->setUserInfo("bzjc",m_clientID,m_userCode,m_userHash,m_host,m_port); //m_sync->setUserInfo("bzjc",m_clientID,m_userCode,m_userHash,m_host,m_port); ui->tabWidget->setTabText(1,"下载检测结果"); ui->tabWidget->setTabIcon(1,QIcon("")); if(!m_timer->isActive()) m_timer->start(); if(!m_ssoHash.isEmpty()) { if(!m_userHash.isEmpty()) { setAccountAreaUI(LoginOk); } else { if(!m_userCode.isEmpty()) { setAccountAreaUI(LoginError); } else { setAccountAreaUI(NotBind); } resetUI(); } } else { resetUI(); setAccountAreaUI(NotLogin); } } void FormMain::stopService() { if(m_timer) { m_timer->stop(); } if(m_sync) { m_sync->abort(); m_sync->wait(); } if(m_upload) { m_upload->abort(); m_upload->wait(); } } void FormMain::setHost(QString host,QString port) { m_host = host; m_port = port; m_numChkWs->setHost(m_host,m_port); } void FormMain::setClientName(QString name) { m_clientName = name; } void FormMain::setClientID(QString clientID) { m_clientID = clientID; } void FormMain::updateUserState() { refreshAccountInfo(); } void FormMain::resetUI() { resetDealingDataAreaUI(); resetFinishedDataAreaUI(); resetCostDataAreaUI(); resetChargeDataAreaUI(); ui->tabWidget->setCurrentIndex(0); ui->tabWidget->setStyleSheet("font:12px"); } bool FormMain::eventFilter(QObject *object, QEvent *event) { if( event->type() == QEvent::KeyPress) { QKeyEvent * pKeyEvent = static_cast(event); if (pKeyEvent->key() == Qt::Key_Control||pKeyEvent->key() == Qt::Key_Shift) { //ui->tableWidgetDealing->setSelectionMode(QAbstractItemView::ExtendedSelection); //ui->tableWidgetFinished->setSelectionMode(QAbstractItemView::ExtendedSelection); return true; } } else if( event->type() == QEvent::KeyRelease) { QKeyEvent * pKeyEvent = static_cast(event); if (pKeyEvent->key() == Qt::Key_Control||pKeyEvent->key() == Qt::Key_Shift) { //ui->tableWidgetDealing->setSelectionMode(QAbstractItemView::MultiSelection); //ui->tableWidgetFinished->setSelectionMode(QAbstractItemView::MultiSelection); return true; } } return QWidget::eventFilter(object, event); } bool FormMain::addFileToZip(QString zipName, QStringList files) { Zip::ErrorCode ec; Zip uz; QFile file(zipName); if(!file.open(QIODevice::WriteOnly)){ return false ; } file.close(); ec = uz.createArchive(zipName); if (ec != Zip::Ok) { return false; } ec = uz.addFiles(files); if (ec != Zip::Ok) { uz.closeArchive(); return false; } if (uz.closeArchive() != Zip::Ok) { return false; } return true; } void FormMain::displaySelected(QString detail) { QStringList list = detail.split("\r\n"); if(list.size()!=8) { resetFinishedDataDetailInfo(); return; } int i=0; QStringList rates; for(int i=0;i0) { QString match = rx.capturedTexts().at(1); rates<labelKong->setText(list.at(i++)); ui->labelTing->setText(list.at(i++)); ui->labelGuan->setText(list.at(i++)); ui->labelHrxz->setText(list.at(i++)); ui->labelWfjt->setText(list.at(i++)); ui->labelLdtx->setText(list.at(i++)); ui->labelShiHao->setText(list.at(i++)); ui->labelOther->setText(list.at(i++)); i = 0; int barLength = 650; ui->labelBarKong->setFixedWidth(rates.at(i++).toDouble()*barLength/100); ui->labelBarTing->setFixedWidth(rates.at(i++).toDouble()*barLength/100); ui->labelBarGuan->setFixedWidth(rates.at(i++).toDouble()*barLength/100); ui->labelBarWfjt->setFixedWidth(rates.at(i++).toDouble()*barLength/100); ui->labelBarHrxz->setFixedWidth(rates.at(i++).toDouble()*barLength/100); ui->labelBarLdtx->setFixedWidth(rates.at(i++).toDouble()*barLength/100); ui->labelBarShiHao->setFixedWidth(rates.at(i++).toDouble()*barLength/100); ui->labelBarOther->setFixedWidth(rates.at(i++).toDouble()*barLength/100); } void FormMain::resetCostDataAreaUI() { resetCostDataListInfo(); ui->dateEditStart->setDate(QDate::currentDate().addDays(-7)); ui->dateEditEnd->setDate(QDate::currentDate()); ui->dateEditEnd->setMaximumDate(QDate::currentDate()); ui->dateEditStart->setMinimumDate(QDate::currentDate().addDays(-7)); } void FormMain::resetCostDataListInfo() { resetCostTableWidget(16); ui->tableWidgetCost->setEnabled(false); QTableWidgetItem *item = new QTableWidgetItem(); item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter); item->setText(" 暂无信息"); ui->tableWidgetCost->setItem(7,3,item); ui->tableWidgetCost->setEnabled(false); } void FormMain::resetCostTableWidget(int rows) { QStringList headers; headers.append("编号"); headers.append("所属用户"); headers.append("提交时间"); headers.append("完成时间"); headers.append("提交数"); headers.append("已检测"); headers.append("单价"); headers.append("费用"); headers.append("赠送消耗"); ui->tableWidgetCost->setRowCount(0); ui->tableWidgetCost->setColumnCount(0); ui->tableWidgetCost->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tableWidgetCost->setColumnCount(9); ui->tableWidgetCost->setHorizontalHeaderLabels(headers); ui->tableWidgetCost->setRowCount(rows); ui->tableWidgetCost->setShowGrid(false); ui->tableWidgetCost->setAlternatingRowColors(true); ui->tableWidgetCost->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableWidgetCost->setSelectionMode(QAbstractItemView::SingleSelection); ui->tableWidgetCost->setColumnWidth(0,50); ui->tableWidgetCost->setColumnWidth(1,115); ui->tableWidgetCost->setColumnWidth(2,140); ui->tableWidgetCost->setColumnWidth(3,125); ui->tableWidgetCost->setColumnWidth(4,45); ui->tableWidgetCost->setColumnWidth(5,45); ui->tableWidgetCost->setColumnWidth(6,50); ui->tableWidgetCost->setColumnWidth(7,50); ui->tableWidgetCost->setColumnWidth(8,55); ui->tableWidgetCost->horizontalHeader()->setStyleSheet("font:12px"); ui->tableWidgetCost->horizontalHeader()->setResizeMode(QHeaderView::Fixed); ui->tableWidgetCost->verticalHeader()->setVisible(false); ui->tableWidgetCost->verticalHeader()->setResizeMode(QHeaderView::Fixed); ui->tableWidgetCost->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); ui->tableWidgetCost->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); ui->tableWidgetCost->verticalHeader()->setFixedWidth(30); ui->tableWidgetCost->setSortingEnabled(true); } void FormMain::fetchCostList(QMultiMap map, int rowCount) { resetCostDataListInfo(); if(rowCount==0) { return ; } resetCostTableWidget(rowCount); ui->tableWidgetCost->setEnabled(true); QStringList keys; keys<<"batchid"<<"usercode"<<"submittime"<<"finishtime"<<"numcount"; keys<<"finishcount"<<"price"<<"settlefee"<<"giftfee"; for(int col=0;colsetData(Qt::DisplayRole,display.toInt()); else if(keys.at(col)=="numcount") item->setData(Qt::DisplayRole,display.toInt()); else if(keys.at(col)=="finishcount") item->setData(Qt::DisplayRole,display.toInt()); else if(keys.at(col)=="price") item->setData(Qt::DisplayRole,display.toDouble()); else if(keys.at(col)=="settlefee") item->setData(Qt::DisplayRole,display.toDouble()); else if(keys.at(col)=="giftfee") item->setData(Qt::DisplayRole,display.toDouble()); else item->setData(Qt::DisplayRole,display); } item->setData(Qt::UserRole,rows.at(row)); item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter); ui->tableWidgetCost->setItem(row,col,item); } } ui->tableWidgetCost->sortByColumn(0); ui->tableWidgetCost->sortByColumn(0); } void FormMain::queryCost(bool display) { QString dateStart = ui->dateEditStart_2->text(); QString dateEnd = ui->dateEditEnd_2->text(); QString json = m_numChkWs->getCostInfo(dateStart,dateEnd,m_userHash); if(!json.isEmpty()){ RespGetCostInfo response(json); if(response.getRtnCode()<0) showMessage(response.getRtnCode(),display); else fetchCostList(response.getRs(),response.getRsCount()); } else { showMessage(0,display); } } void FormMain::resetChargeDataAreaUI() { resetChargeDataListInfo(); ui->dateEditStart_2->setDate(QDate::currentDate().addDays(-30)); ui->dateEditEnd_2->setDate(QDate::currentDate()); } void FormMain::resetChargeDataListInfo() { resetChargeTableWidget(16); ui->tableWidgetCharge->setEnabled(false); QTableWidgetItem *item = new QTableWidgetItem(); item->setTextAlignment(Qt::AlignLeft|Qt::AlignVCenter); item->setText(" 暂无信息"); ui->tableWidgetCharge->setItem(7,3,item); ui->tableWidgetCharge->setEnabled(false); } void FormMain::resetChargeTableWidget(int rows) { QStringList headers; headers.append("编号"); headers.append("所属用户"); headers.append("充值时间"); headers.append("充值金额"); headers.append("赠送金额"); ui->tableWidgetCharge->setRowCount(0); ui->tableWidgetCharge->setColumnCount(0); ui->tableWidgetCharge->setEditTriggers(QAbstractItemView::NoEditTriggers); ui->tableWidgetCharge->setColumnCount(5); ui->tableWidgetCharge->setHorizontalHeaderLabels(headers); ui->tableWidgetCharge->setRowCount(rows); ui->tableWidgetCharge->setShowGrid(false); ui->tableWidgetCharge->setAlternatingRowColors(true); ui->tableWidgetCharge->setSelectionBehavior(QAbstractItemView::SelectRows); ui->tableWidgetCharge->setSelectionMode(QAbstractItemView::SingleSelection); ui->tableWidgetCharge->setColumnWidth(0,50); ui->tableWidgetCharge->setColumnWidth(1,115); ui->tableWidgetCharge->setColumnWidth(2,140); ui->tableWidgetCharge->setColumnWidth(3,195); ui->tableWidgetCharge->setColumnWidth(4,175); ui->tableWidgetCharge->verticalHeader()->setVisible(false); ui->tableWidgetCharge->horizontalHeader()->setStyleSheet("font:12px"); ui->tableWidgetCharge->horizontalHeader()->setResizeMode(QHeaderView::Fixed); ui->tableWidgetCharge->verticalHeader()->setResizeMode(QHeaderView::Fixed); ui->tableWidgetCharge->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); ui->tableWidgetCharge->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); ui->tableWidgetCharge->verticalHeader()->setFixedWidth(30); ui->tableWidgetCharge->setSortingEnabled(true); } void FormMain::fetchChargeList(QMultiMap map, int rowCount) { resetChargeDataListInfo(); if(rowCount==0) { return ; } resetChargeTableWidget(rowCount); ui->tableWidgetCharge->setEnabled(true); QStringList keys; keys<<"chargeid"<<"usercode"<<"chargetime"<<"chargemoney"; keys<<"giftmoney"; for(int col=0;colsetData(Qt::UserRole,rows.at(row)); if(!display.isEmpty()) { if(keys.at(col)=="chargeid") item->setData(Qt::DisplayRole,display.toInt()); else if(keys.at(col)=="chargemoney") item->setData(Qt::DisplayRole,display.toDouble()); else if(keys.at(col)=="giftmoney") item->setData(Qt::DisplayRole,display.toDouble()); else item->setData(Qt::DisplayRole,display); } item->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter); ui->tableWidgetCharge->setItem(row,col,item); } } ui->tableWidgetCharge->sortByColumn(0); ui->tableWidgetCharge->sortByColumn(0); } void FormMain::queryCharge(bool display) { QString dateStart = ui->dateEditStart_2->text(); QString dateEnd = ui->dateEditEnd_2->text(); QString json = m_numChkWs->getChargeInfo(dateStart,dateEnd,m_userHash); if(!json.isEmpty()) { RespGetChargeInfo response(json); if(response.getRtnCode()==-1) showMessage(-1,display); else fetchChargeList(response.getRs(),response.getRsCount()); } else { showMessage(0,display); } } QString FormMain::getSaveZipFileName() { QFileDialog::Options options; QString selectedFilter; QString exportDir = SNCDataBase::getExportDir(); QString defaultZipFileName = QString(m_clientName); int count = 0; QString str =""; QString download = ""; for(int i=0;itableWidgetFinished->rowCount();i++) { QTableWidgetItem *item = ui->tableWidgetFinished->item(i,0); if(item) { if(item->checkState()==Qt::Checked) { count++; str += "_" + item->text(); QWidget *widget = ui->tableWidgetFinished->cellWidget(i,10); if(widget) { QLabel *lbl = qobject_cast(widget); if(lbl->toolTip()!="已放行") { download += item->data(Qt::UserRole).toString()+ " "; } } } } } if(count==0) return ""; if(!download.isEmpty()) { QMessageBox::critical(this,"提示","您选择的单子" + download + "现在还没有放行,暂时无法下载,请稍候再试!",QMessageBox::Ok); return ""; } defaultZipFileName += "_" + QString::number(count) + str ; QString saveZipFileName = QFileDialog::getSaveFileName(this,"另存为",exportDir + "\\" + defaultZipFileName, tr("ZIP Files (*.zip)"), &selectedFilter, options); if(!saveZipFileName.isEmpty()) { QFileInfo fileInfo(saveZipFileName); exportDir = fileInfo.absolutePath(); SNCDataBase::updateExportDir(exportDir); } return saveZipFileName; } QString FormMain::getSaveFileName(QString id) { QFileDialog::Options options; QString selectedFilter; QString exportDir = SNCDataBase::getExportDir(); QString defaultZipFileName = m_clientName + "_" + id ; QString saveZipFileName = QFileDialog::getSaveFileName(this,"另存为",exportDir + "\\" + defaultZipFileName, tr("ZIP Files (*.zip)"), &selectedFilter, options); if(!saveZipFileName.isEmpty()) { QFileInfo fileInfo(saveZipFileName); exportDir = fileInfo.absolutePath(); SNCDataBase::updateExportDir(exportDir); } return saveZipFileName; } void FormMain::setAccountAreaUI(AccountLoginState state) { m_state = state; switch(state) { case LoginOk: ui->labelTip->setText("空号检测服务已经连接!"); ui->widgetAccountInfo->setVisible(true); ui->pushButtonLogin->setVisible(false); ui->labelTip2->setText(""); refreshAccountInfo(); break; case NotLogin: ui->labelTip->setText("您需要"); ui->widgetAccountInfo->setVisible(false); ui->pushButtonLogin->setVisible(true); ui->widgetToPay->setVisible(false); ui->labelTip2->setText("才可以使用该功能!"); break; case NotBind: ui->labelTip->setText("空号检测服务尚未开通!"); ui->widgetAccountInfo->setVisible(false); ui->pushButtonLogin->setVisible(false); ui->widgetToPay->setVisible(false); ui->labelTip2->setText(""); break; case LoginError: ui->labelTip->setText("空号检测服务无法连接!"); ui->widgetAccountInfo->setVisible(false); ui->pushButtonLogin->setVisible(false); ui->widgetToPay->setVisible(false); ui->labelTip2->setText(""); break; } changeImage(state); } void FormMain::changeImage(AccountLoginState state) { QPixmap pixamp(":/service_state.png"); int nHeight = pixamp.height(); int nWidth = pixamp.width()/4; ui->labelStateImage->setPixmap(pixamp.copy(QRect(state * nWidth , 0, nWidth, nHeight))); } void FormMain::refreshAccountInfo() { bool succeed =false; QString json = m_numChkWs->getUserBalance(m_userHash); if(!json.isEmpty()){ RespGetUserBlance response (json); if(response.getRtnCode()==1){ ui->labelGiftBalance->setText("¥" + response.getGiftMoney()); ui->labelUserBlance->setText("¥" + response.getBlance()); ui->labelValidNum->setText(response.getValidNum()); ui->labelToPay->setText(QString(" 待付总金额:¥%1 ").arg(response.getToPayMoney())); succeed = true; if(response.getToPayMoney().toDouble()==0) { ui->widgetToPay->setVisible(false); } else { ui->widgetToPay->setVisible(true); } } } if(!succeed) { ui->labelGiftBalance->setText("N/A"); ui->labelUserBlance->setText("N/A"); ui->labelValidNum->setText("N/A"); ui->labelToPay->setText("N/A"); ui->widgetToPay->setVisible(false); } } bool FormMain::chkAccountState(AccountLoginState state) { bool ret = false; switch(state) { case NotLogin: QMessageBox::critical(this,"提示","您现在还没有登录系统,请登录后再操作!",QMessageBox::Ok); break; case NotBind: QMessageBox::critical(this,"提示","此项服务尚未开通,请开通后再操作!",QMessageBox::Ok); break; case LoginError: QMessageBox::critical(this,"提示","此项服务暂时无法连接,请稍候重试!",QMessageBox::Ok); break; default: ret = true; } return ret; } void FormMain::showMessage(int type, bool display) { QString msg = ""; switch(type) { case 0: msg = "网络无法连接!"; break; case -1: msg = "登录超时,请重新登录!"; break; case -2: msg = "查询日期间隔超过限制!"; break; case -3: msg = "查询到的记录数超过限制 (请缩小查询日期范围)!"; break; default: break; } if(display) { QMessageBox::critical(this,"提示",msg,QMessageBox::Ok); } } void FormMain::on_pushButtonUpload_clicked() { if(!chkAccountState(m_state)) return; DialogSubmit dialog(this); connect(&dialog,SIGNAL(dataUpdated()),this,SLOT(onDataUpdated())); dialog.setUserCode(m_userCode); dialog.setClientID(m_clientID); dialog.exec(); queryDealing(); } void FormMain::on_pushButtonQueryCharge_clicked() { if(!chkAccountState(m_state)) return; if(!checkLastClickTime(sender())) return ; ui->labelQueryCharge->setText("正在查询,请稍候..."); ui->labelQueryCharge->setStyleSheet("QLabel{color:#08a61b;font:12px;font-weight: bold;}"); ui->pushButtonQueryCharge->setEnabled(false); setCursor(Qt::WaitCursor); queryCharge(true); setCursor(Qt::ArrowCursor); ui->labelQueryCharge->setText(""); ui->pushButtonQueryCharge->setEnabled(true); } void FormMain::on_pushButtonQueryCost_clicked() { if(!chkAccountState(m_state)) return; if(!checkLastClickTime(sender())) return ; ui->labelQueryCost->setText("正在查询,请稍候..."); ui->labelQueryCost->setStyleSheet("QLabel{color:#08a61b;font:12px;font-weight: bold;}"); ui->pushButtonQueryCost->setEnabled(false); setCursor(Qt::WaitCursor); queryCost(true); setCursor(Qt::ArrowCursor); ui->labelQueryCost->setText(""); ui->pushButtonQueryCost->setEnabled(true); } void FormMain::on_pushButtonDownload_clicked() { if(!chkAccountState(m_state)) return; bool nodata = false; for(int i=0;itableWidgetFinished->rowCount();i++) { if(!ui->tableWidgetFinished->item(i,0)) { nodata = true; break; } } if(nodata) { QMessageBox::critical(this,"提示","没有可以下载的数据!",QMessageBox::Ok); return ; } QString saveZipFileName = getSaveZipFileName(); if(saveZipFileName.isEmpty()) return ; QDir dir; if(!dir.exists(QDir::tempPath()+"/speednumcube")) { dir.mkdir(QDir::tempPath()+"/speednumcube"); } QString tmpDir = QDir::tempPath()+"/speednumcube/"; QStringList files; ui->pushButtonDownload->setEnabled(false); for(int i=0;itableWidgetFinished->rowCount();i++) { QTableWidgetItem *item = ui->tableWidgetFinished->item(i,0); if(item->checkState()==Qt::Checked) { QString json = m_numChkWs->dlResultFile(item->data(Qt::UserRole).toString(),m_userHash); if(!json.isEmpty()){ RespDlResultFile response(json); if(response.getRtnCode()==2) { QString fileName = tmpDir + response.getFileName(); files.append(fileName); QString fileContent = response.getFileContent(); QByteArray array = QByteArray::fromBase64(fileContent.toAscii()); QFile file(fileName); file.open(QIODevice::WriteOnly); file.write(array); file.close(); } else if(response.getRtnCode()==-1) { showMessage(-1,true); break; } else { QMessageBox::critical(this,"结果",response.getRtnMemo(),QMessageBox::Ok); } } else { showMessage(0,true); break; } } } if(files.size()>0) { if(addFileToZip(saveZipFileName,files)) { QMessageBox::information(this,"结果",QString("%0个检测结果文件下载成功!").arg(files.size()),QMessageBox::Ok); QFileInfo fileinfo(saveZipFileName); SNCDataBase::updateExportDir(fileinfo.absolutePath()); } else { QMessageBox::critical(this,"结果","检测结果文件下载失败!",QMessageBox::Ok); } } else { QMessageBox::critical(this,"结果","检测结果文件下载失败!",QMessageBox::Ok); } ui->pushButtonDownload->setEnabled(true); } void FormMain::onTimeOut() { if(m_userHash.isEmpty()) return ; if(!m_upload->isRunning()) { m_upload->start(); } if(!m_sync->isRunning()) { m_sync->start(); } } void FormMain::on_pushButtonCharge_clicked() { if(!chkAccountState(m_state)) return; if(!checkLastClickTime(sender())) return ; QString json = m_ssoWs->encrypt(m_ssoHash); RespEncrypt resp1(json); QString data = resp1.getEncryptData(); json = m_ssoWs->getServerTime(); RespGetServerTime resp2(json); QString authCode; QByteArray ba; QString str = SNCDataBase::getAuthCodeUrl().arg(resp2.getServerTime().mid(0,16)); ba = QCryptographicHash::hash ( str.toAscii(), QCryptographicHash::Md5 ); authCode.append(ba.toHex()); QString url = SNCDataBase::getSSOPayUrl() + "?s=mf&r="+authCode+"&u="+data+"&p=zxcz_"+m_clientID; QDesktopServices::openUrl(QUrl(url)); } void FormMain::on_tableWidgetFinished_cellClicked(int row, int column) { if(row>=0&&column>=0) { QString detail = ui->tableWidgetFinished->item(row,3)->data(Qt::UserRole).toString(); displaySelected(detail); } } void FormMain::on_pushButtonLogin_clicked() { emit buttonLoginClick(); } void FormMain::on_pushButtonRefreshUserState_clicked() { if(!checkLastClickTime(sender())) return ; setCursor(Qt::WaitCursor); refreshAccountInfo(); setCursor(Qt::ArrowCursor); } void FormMain::onSingleDownloadClick() { QPushButton *btn = qobject_cast(sender()); QString ispass = ""; QString optstatus = ""; QString id = ""; for(int i=0;itableWidgetFinished->rowCount();i++) { QWidget *widget = ui->tableWidgetFinished->cellWidget(i,13); if(widget) { if(btn==qobject_cast(widget)) { QTableWidgetItem *item; item = ui->tableWidgetFinished->item(i,0); if(item) { id = item->data(Qt::UserRole).toString(); } QWidget *widget = ui->tableWidgetFinished->cellWidget(i,10); if(widget) { QLabel *lbl = qobject_cast(widget); ispass = lbl->toolTip(); } widget = ui->tableWidgetFinished->cellWidget(i,9); if(widget) { QLabel *lbl = qobject_cast(widget); optstatus = lbl->toolTip(); } break; } } } if(id.isEmpty()) { QMessageBox::critical(this,"结果","未能获取有效的文件编号!",QMessageBox::Ok); return ; } if(ispass!="已放行") { QMessageBox::critical(this,"结果","单子还未放行!",QMessageBox::Ok); return ; } QString saveFile = getSaveFileName(id); if(saveFile.isEmpty()) return ; QString json = m_numChkWs->dlResultFile(id,m_userHash); if(!json.isEmpty()) { RespDlResultFile response(json); if(response.getRtnCode()==2) { QString fileName = saveFile; QString fileContent = response.getFileContent(); QByteArray array = QByteArray::fromBase64(fileContent.toAscii()); QFile file(fileName); file.open(QIODevice::WriteOnly); file.write(array); file.close(); QMessageBox::information(this,"结果","单子下载成功",QMessageBox::Ok); } else { QMessageBox::critical(this,"结果",response.getRtnMemo(),QMessageBox::Ok); } } else { showMessage(0,true); } } void FormMain::on_pushButtonSelect_clicked() { Qt::CheckState state; QTableWidgetItem *item = ui->tableWidgetFinished->item(0,0); if(item) { state = item->checkState(); if(state==Qt::Checked) { state = Qt::Unchecked; } else { state = Qt::Checked; } } else { return ; } for(int i=0;itableWidgetFinished->rowCount();i++) { QTableWidgetItem *item = ui->tableWidgetFinished->item(i,0); if(item) { item->setCheckState(state); } } } bool FormMain::checkLastClickTime(QObject *button) { QPushButton *btn = qobject_cast(button); QDateTime lasttime = m_clickTime.value(btn->objectName()); if(!lasttime.isNull()) { if(lasttime.addSecs(30)>QDateTime::currentDateTime()) { QMessageBox::critical(this,"提示","您不可以频繁点击!",QMessageBox::Ok); return false; } } m_clickTime.insert(btn->objectName(),QDateTime::currentDateTime()); return true; } void FormMain::showMessage(int row) { QTableWidgetItem *itemMsg = ui->tableWidgetDealing->item(row,8); QTableWidgetItem *itemDetail = ui->tableWidgetDealing->item(row,9); QString errMsg = ""; QString errDetail = ""; if(itemMsg) { errMsg = itemMsg->data(Qt::UserRole).toString(); } if(itemDetail) { errDetail = itemDetail->data(Qt::UserRole).toString(); } if(errDetail.isEmpty()) { if(!errMsg.isEmpty()) { QMessageBox::critical(this,"提示",errMsg,QMessageBox::Ok); } } else { DialogSubmitResponseDetail dialog; dialog.setDetailText(errDetail); dialog.exec(); } } void FormMain::on_pushButtonPay_clicked() { if(!chkAccountState(m_state)) return; if(!checkLastClickTime(sender())) return ; QString json = m_ssoWs->encrypt(m_ssoHash); RespEncrypt resp1(json); QString data = resp1.getEncryptData(); json = m_ssoWs->getServerTime(); RespGetServerTime resp2(json); QString authCode; QByteArray ba; QString str = SNCDataBase::getAuthCodeUrl().arg(resp2.getServerTime().mid(0,16)); ba = QCryptographicHash::hash ( str.toAscii(), QCryptographicHash::Md5 ); authCode.append(ba.toHex()); QString url = SNCDataBase::getSSOPayUrl() + "?s=mf&r="+authCode+"&u="+data+"&p=fk_"+m_clientID; QDesktopServices::openUrl(QUrl(url)); } void FormMain::onPushButtonViewsClicked() { QPushButton *btn = qobject_cast(sender()); for(int i=0;itableWidgetDealing->rowCount();i++) { QWidget *widget = ui->tableWidgetDealing->cellWidget(i,13); if(widget) { if(btn==qobject_cast(widget)) { showMessage(i); break; } } } } void FormMain::on_pushButtonQueryFinishedAll_clicked() { queryFinished(""); } void FormMain::on_pushButtonQueryToDown_clicked() { queryFinished("0"); } void FormMain::on_pushButtonQueryDown_clicked() { queryFinished("1"); } void FormMain::onUploadFailed() { queryDealing(); } void FormMain::onUploadFileCreated() { queryDealing(); } void FormMain::onUploadSucceed() { queryDealing(); refreshAccountInfo(); } void FormMain::onDataSync() { queryFinished(""); queryDealing(); int count = SNCDataBase::getBzjcToDown(m_userCode,m_clientID); if(count>0) { ui->tabWidget->setTabText(1,QString("下载检测结果(%1)").arg(count)); ui->tabWidget->setTabIcon(1,QIcon(":/todown.png")); } else { ui->tabWidget->setTabText(1,QString("下载检测结果").arg(count)); } } void FormMain::onUploadProgressUpdated() { queryDealing(); } void FormMain::on_tableWidgetDealing_cellDoubleClicked(int row, int column) { showMessage(row); } void FormMain::on_tableWidgetFinished_cellDoubleClicked(int row, int column) { QString ispass = ""; QString optstatus = ""; QString id = ""; QTableWidgetItem *item; item = ui->tableWidgetFinished->item(row,0); if(item) { id = item->data(Qt::UserRole).toString(); } QWidget *widget = ui->tableWidgetFinished->cellWidget(row,10); if(widget) { QLabel *lbl = qobject_cast(widget); ispass = lbl->toolTip(); } widget = ui->tableWidgetFinished->cellWidget(row,9); if(widget) { QLabel *lbl = qobject_cast(widget); optstatus = lbl->toolTip(); } if(id.isEmpty()) { QMessageBox::critical(this,"结果","未能获取有效的文件编号!",QMessageBox::Ok); return ; } if(ispass!="已放行") { QMessageBox::critical(this,"结果","单子还未放行!",QMessageBox::Ok); return ; } QString saveFile = getSaveFileName(id); if(saveFile.isEmpty()) return ; QString json = m_numChkWs->dlResultFile(id,m_userHash); if(!json.isEmpty()) { RespDlResultFile response(json); if(response.getRtnCode()==2) { QString fileName = saveFile; QString fileContent = response.getFileContent(); QByteArray array = QByteArray::fromBase64(fileContent.toAscii()); QFile file(fileName); file.open(QIODevice::WriteOnly); file.write(array); file.close(); QMessageBox::information(this,"结果","单子下载成功",QMessageBox::Ok); } else { QMessageBox::critical(this,"结果",response.getRtnMemo(),QMessageBox::Ok); } } else { showMessage(0,true); } }