Newer
Older
AutomaticVerification / softwareDirectory / AutoVerScheme / datasyncview.cpp
张嘉 on 22 Apr 2024 6 KB 增加数据上传
#include "datasyncview.h"
#include "ui_datasyncview.h"
#include "syncdialog.h"


QString filePath = "C:\\AutoVerScheme\\sync_info.txt";
// 获取当前时间戳
DataSyncView::DataSyncView(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::DataSyncView)
{
    ui->setupUi(this);
    this->initForm();
}

DataSyncView::~DataSyncView()
{
    delete ui;
}
void DataSyncView::initForm()
{
    ui->stackedWidget->setCurrentIndex(0);
    //设置控件的边框显示
    ui->tableWidget->setStyleSheet("QHeaderView::section {"
                                "border: 1px solid grey;"
                                "border-left:none;"
                                "border-top:none;"
                                 "background-color:white;"
                                 " color:black;"
                                   "font: bold 18px Arial, sans-serif;"
                               "}");

    ui->tableWidget->setRowCount(10); // 设置10行
    ui->tableWidget->setColumnCount(7); // 设置11列
    ui->tableWidget->setColumnWidth(0, 0); // 设置第一列的宽度为100像素
    ui->tableWidget->setColumnWidth(2, 200); // 设置第一列的宽度为100像素
    ui->tableWidget->verticalHeader()->setParent(nullptr); //隐藏行头



    //初始化TableWidget 设置列
    QStringList headers;
    headers <<"id"  << "序号" << "同步时间" << "是否同步成功" << "备注"
            <<"类型" <<"操作";
    ui->tableWidget->setHorizontalHeaderLabels(headers);
    //详情内

    //设置控件的边框显示
    ui->tableWidget_2->setStyleSheet("QHeaderView::section {"
                                "border: 1px solid grey;"
                                "border-left:none;"
                                "border-top:none;"
                                 "background-color:white;"
                                 " color:black;"
                                   "font: bold 18px Arial, sans-serif;"
                               "}");

    ui->tableWidget_2->setRowCount(10); // 设置10行
    ui->tableWidget_2->setColumnCount(3); // 设置11列
    ui->tableWidget_2->setColumnWidth(0, 80); // 设置第一列的宽度为100像素
    ui->tableWidget_2->verticalHeader()->setParent(nullptr); //隐藏行头
    ui->tableWidget_2->setColumnWidth(1, 1000); // 设置第一列的宽度为100像素

    //初始化TableWidget 设置列

    headers << "序号" << "信息" << "状态" ;
    ui->tableWidget_2->setHorizontalHeaderLabels(headers);

    //数据显示

    //先设置为行为0
    ui->tableWidget->setRowCount(0);
    int rowCount=0;
    int row=0;
   QList<zdLog> zdlog= BaseCommonApi::getzdLogByuserId("");
   for(const zdLog & zd:zdlog)
   {
       rowCount = ui->tableWidget->rowCount();
       ui->tableWidget->insertRow(rowCount);
       ui->tableWidget->setItem(row, 0, new QTableWidgetItem(zd.id));
       ui->tableWidget->setItem(row, 1, new QTableWidgetItem(QString::number(row+1)));
       ui->tableWidget->setItem(row, 2, new QTableWidgetItem(zd.sync_time.toString()));
       ui->tableWidget->setItem(row, 3, new QTableWidgetItem(zd.is_sync));
       ui->tableWidget->setItem(row, 4, new QTableWidgetItem(zd.remark));
       if(zd.type=="1")
       {
          ui->tableWidget->setItem(row, 5, new QTableWidgetItem("下载"));
       }else{ ui->tableWidget->setItem(row, 5, new QTableWidgetItem("上传")); }

       //添加操作按钮
       QPushButton *button = new QPushButton("查询信息");
       button->setIconSize(QSize(16,16));
       button->setIcon(QIcon(":/image/Index/u2327.svg"));
       ui->tableWidget->setCellWidget(row, 6, button);
       //设置按钮简单样式
       button->setStyleSheet("QPushButton {"
                               "    border: none; /* 无边框 */"
                               "    color: green; /* 文本颜色 */"
                               "    text-decoration: underline; /* 文本下划线 */"
                               "}");

        // 设置鼠标悬停时的光标样式为小手图标
        button->setCursor(Qt::PointingHandCursor);
       // 连接按钮的 clicked 信号到自定义槽函数
        connect(button, &QPushButton::clicked, this, [this, button, zd]() {
            // 获取当前行第一列的 ID

               OnButtonSelectClicked(zd);

        });
    row++;
   }
}
void DataSyncView::on_UploadDataButton_clicked()
{
        SyncDialog *syncDialog = new SyncDialog(this,"1");
         syncDialog->exec();
         this->initForm();
}
void DataSyncView::on_DownloadDataButton_clicked()
{

    SyncDialog *syncDialog = new SyncDialog(this,"0");
    syncDialog->exec(); // 显示进度条窗体并阻塞主窗口

    this->initForm();


}
void DataSyncView::OnButtonSelectClicked(zdLog log)
{
     ui->stackedWidget->setCurrentIndex(1);
     ui->tableWidget_2->setRowCount(0);
     int rowCount=0;
     int row=0;
    QList<zdDataSync> data= BaseCommonApi::getzdDataSyncByuserId(log.id);
    for(const zdDataSync & item:data)
    {
        rowCount = ui->tableWidget_2->rowCount();
        ui->tableWidget_2->insertRow(rowCount);
        ui->tableWidget_2->setItem(row, 0, new QTableWidgetItem(QString::number(row+1)));
         ui->tableWidget_2->setItem(row, 1, new QTableWidgetItem(item.remark));
         QTableWidgetItem *itemRow;
        if(item.sync_type=="0"){
           itemRow = new QTableWidgetItem("未同步");
           itemRow->setBackground(QBrush(QColor(255, 255, 192)));
        }else if (item.sync_type=="1")
        {
            itemRow = new QTableWidgetItem("同步成功");
            itemRow->setBackground(QBrush(QColor(173, 255, 47))); // 浅绿色
        }else{
            itemRow = new QTableWidgetItem("同步失败");
            itemRow->setBackground(QBrush(QColor(255, 105, 180))); // 浅红色
        }
          itemRow->setTextAlignment(Qt::AlignCenter);
          ui->tableWidget_2->setItem(row, 2, itemRow);

       row++;
    }
}

void DataSyncView::on_button_return_clicked()
{
     ui->stackedWidget->setCurrentIndex(0);
}