#include "checkwindow.h" #include "ui_checkwindow.h" #include "dialogcheckresult.h" #include <QMessageBox> #include "basecommonapi.h" CheckWindow::CheckWindow(QWidget *parent) : QWidget(parent), ui(new Ui::CheckWindow) { ui->setupUi(this); //ui->tableWidgetDevice->setColumnCount(8); //ui->tableWidgetMethod->setColumnCount(7); ui->tableWidgetDevice->verticalHeader()->setParent(nullptr); for(int i=2;i<8;i++) ui->tableWidgetDevice->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); ui->tableWidgetMethod->verticalHeader()->setParent(nullptr); //隐藏行头 for(int i=1;i<5;i++) ui->tableWidgetMethod->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); ui->tableWidgetMethod->setColumnWidth(0, 60); ui->tableWidgetMethod->setColumnWidth(5, 100); ui->tableWidget_3->verticalHeader()->setParent(nullptr); for(int i=0;i<2;i++) ui->tableWidget_3->horizontalHeader()->setSectionResizeMode(i,QHeaderView::Stretch); getCheckDevice(); //ui->stackedWidget_2->setCurrentIndex(1); //ui->tableWidgetDevice->verticalHeader()->sectionResizeMode(QHeaderView::Stretch); } CheckWindow::~CheckWindow() { myTaskList.clear(); programList.clear(); delete ui; } void CheckWindow::showMethod() { QString ids; for(int i=0;i<ui->tableWidgetDevice->rowCount();i++){ Qt::CheckState state = ui->tableWidgetDevice->item(i,0)->checkState(); if(state == Qt::Checked){ if(ids=="") ids = myTaskList[i].id; else ids +=";"+ myTaskList[i].id; //break; } } if(ids==""){ QMessageBox::warning(this, "提示", "请选择被检设备!"); }else{ qDebug() << "select ids:" << ids; ui->stackedWidget->setCurrentIndex(1); getCheckMethod(); } } void CheckWindow::showDevice() { QString sId=""; for(int i=0;i<ui->tableWidgetMethod->rowCount();i++){ Qt::CheckState state = ui->tableWidgetMethod->item(i,0)->checkState(); if(state == Qt::Checked){ sId = programList[i].id; break; } } if(sId==""){ QMessageBox::warning(this, "提示", "请选择检定程序!"); }else{ programInfo = BaseCommonApi::getVerificationProgramInfo(sId); initDeviceInfo(); ui->stackedWidget->setCurrentIndex(2); } } void CheckWindow::initDeviceInfo() { QString strStyle = QString("QLabel{image:url(%1);}").arg(programInfo.img_path); qDebug() << "strStyle:" << strStyle; ui->label_8->setStyleSheet(strStyle); ui->tableWidget_3->clearContents(); ui->tableWidget_3->setRowCount(0); QStringList idList; int rowCount=0; int row=0; if(programInfo.tested_device_id!="") { idList = programInfo.tested_device_id.split(","); for(const QString& id : idList) { QList<TestedCatDevice> result = BaseCommonApi::getTestedCatDevice(id); if(result.length()>0){ rowCount = ui->tableWidget_3->rowCount(); ui->tableWidget_3->insertRow(rowCount); ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(result[0].equipment_name)); ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem("成功")); //设置数据 row++; } } idList.clear(); } if(programInfo.standard_device_id!=""){ idList = programInfo.standard_device_id.split(","); for(const QString& id : idList) { QList<CatDeviceInfor> result = BaseCommonApi::getCatDeviceInfor(id); if(result.length()>0){ rowCount = ui->tableWidget_3->rowCount(); ui->tableWidget_3->insertRow(rowCount); ui->tableWidget_3->setItem(row, 0, new QTableWidgetItem(result[0].equipment_name)); ui->tableWidget_3->setItem(row, 1, new QTableWidgetItem("成功")); //设置数据 row++; } } idList.clear(); } } void CheckWindow::showCheck() { ui->stackedWidget_2->setCurrentIndex(1); } void CheckWindow::showMethodWidget() { ui->stackedWidget_2->setCurrentIndex(0); ui->stackedWidget->setCurrentIndex(0); getCheckDevice(); } void CheckWindow::showResult() { DialogCheckResult* dlg = new DialogCheckResult; dlg->setModal(true); dlg->show(); } void CheckWindow::getCheckDevice() { myTaskList.clear(); ui->tableWidgetDevice->clearContents(); ui->tableWidgetDevice->setRowCount(0); //模拟用户ID QString userId="1695282436182188034"; myTaskList = BaseCommonApi::getMyTasks(userId,"3"); int rowCount = 0; int row=0; QString State; for (const MyTask& myTask : myTaskList) { rowCount = ui->tableWidgetDevice->rowCount(); ui->tableWidgetDevice->insertRow(rowCount); QTableWidgetItem* p_check = new QTableWidgetItem(); p_check->setCheckState(Qt::Unchecked); //设置首列为 CheckBox 控件 ui->tableWidgetDevice->setItem(row,0,p_check); ui->tableWidgetDevice->setItem(row, 1, new QTableWidgetItem(QString::number(row+1))); //ui->tableWidget->setItem(row, 0, new QTableWidgetItem(dept.id)); ui->tableWidgetDevice->setItem(row, 2, new QTableWidgetItem(myTask.sample_name)); //设置数据 ui->tableWidgetDevice->setItem(row, 3, new QTableWidgetItem(myTask.sample_model)); //设置数据 ui->tableWidgetDevice->setItem(row, 4, new QTableWidgetItem(myTask.help_instruction)); //设置数据 ui->tableWidgetDevice->setItem(row, 5, new QTableWidgetItem(myTask.manufacture_no)); //设置数据 ui->tableWidgetDevice->setItem(row, 6, new QTableWidgetItem(myTask.manufacturer)); //设置数据 ui->tableWidgetDevice->setItem(row, 7, new QTableWidgetItem(myTask.customer_name)); //设置数据 row++; } } void CheckWindow::getCheckMethod() { programList.clear(); ui->tableWidgetMethod->clearContents(); ui->tableWidgetMethod->setRowCount(0); programList = BaseCommonApi::getVerificationProgramInfoMain(); int rowCount = 0; int row=0; for (const VerificationProgramInfo& program : programList) { rowCount = ui->tableWidgetMethod->rowCount(); ui->tableWidgetMethod->insertRow(rowCount); QTableWidgetItem* p_check = new QTableWidgetItem(); //p_check->setCheckState(Qt::Checked); //设置首列为 CheckBox 控件 p_check->setCheckState(Qt::Unchecked); ui->tableWidgetMethod->setItem(row,0,p_check); ui->tableWidgetMethod->setItem(row, 1, new QTableWidgetItem(program.program_name)); //设置数据 ui->tableWidgetMethod->setItem(row, 2, new QTableWidgetItem(program.create_name)); //设置数据 ui->tableWidgetMethod->setItem(row, 3, new QTableWidgetItem(program.create_time.toString())); //设置数据 ui->tableWidgetMethod->setItem(row, 4, new QTableWidgetItem(program.remark)); //设置数据 QPushButton *btn_1 = new QPushButton(); btn_1->setText(tr("详情")); btn_1->setStyleSheet("QPushButton{" "background-color:rgba(255,255,255,0);" "color:rgba(0,0,255,100);" "text-decoration:underline;" "}"); btn_1->setCursor(Qt::PointingHandCursor); connect(btn_1,SIGNAL(clicked()),this,SLOT(on_editButton_clicked())); btn_1->setIconSize(QSize(16,16)); btn_1->setIcon(QIcon(":/image/Index/u2324.svg")); QWidget *tmp_widget = new QWidget(); QHBoxLayout *tmp_layout = new QHBoxLayout(tmp_widget); tmp_layout->addWidget(btn_1); tmp_layout->setMargin(0); ui->tableWidgetMethod->setCellWidget(row,5,tmp_widget); row++; } } void CheckWindow::on_editButton_clicked() { } void CheckWindow::on_tableWidgetDevice_cellChanged(int row, int column) { } void CheckWindow::on_tableWidgetMethod_cellChanged(int row, int column) { Qt::CheckState state = ui->tableWidgetMethod->item(row,0)->checkState(); if(state == Qt::Checked) { for(int i=0;i<ui->tableWidgetMethod->rowCount();i++){ if(i!=row) { ui->tableWidgetMethod->item(i,0)->setCheckState(Qt::Unchecked); } } } } void CheckWindow::on_pushButton_9_clicked() { showDevice(); }